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
.