I am working with Protege and trying to return a DL Query of all instances without a specific property.
For example, i can return the instances of number (eg. number1, number2, etc) with the property initialValue by using initialValue some Values
How do i make a DL QUERY in Protege that returns the instances of number that dont have the property intialValue?
Thanks in advance
I am not pretty sure, but I don't think this can be done. I think the issue is with the Open World Assumption OWA that is applied in the semantic web and ontologies. Beriefly, we cannot say that something is wrong just because we don't know it. When something is unknown, it is just unknown.
In you case
instances of number that don't have the property intialValue
. When anumber
has aninitialValue Value
that is explicitly stated, then it is clear that it has it. Now, consider that we havenumber1
andnumber2
instances ofNumber
without assigninginitialValue Value
to them. This will NOT make the reasoner infer thatnumber1
andnumber2
don't haveinitialValue Value
.To clarify it:
Will return nothing, it's OWA!
I think what you can do as a workaround, you can assert negative property assertions in Protege, which may help but not solve it. Consider we have
v1
, instance ofValue
. You can state (using Protege for example) thatnumber3
doesn't haveinitialValue v1
, then you can query:This will retrieve
number3
.