Protege DL Query - Instances without a certain ObjectProperty

471 Views Asked by At

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

1

There are 1 best solutions below

0
On

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 a number has an initialValue Value that is explicitly stated, then it is clear that it has it. Now, consider that we have number1 and number2 instances of Number without assigning initialValue Value to them. This will NOT make the reasoner infer that number1 and number2 don't have initialValue Value.

To clarify it:

Number that not (initialValue some Value)

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 of Value. You can state (using Protege for example) that number3 doesn't have initialValue v1, then you can query:

 Number that not (initialValue value v1)

This will retrieve number3.