Imagine a little world where there is two balls ("Ball1" and "Ball2") and a box ("Box1"). Then, i know that there is a ball in the box, but i do not know which one. I want to be able to ask the following question: what is in "Box1" and have the answer "Ball", but i encountered some problems.
Using Protege, I create a very little ontology to model this. I create a class: "Object" with two sub-classes: "Ball" and "Box". I define two object properties "isin" and "include" and say that "isin" is the inverse property of "include". Then I create two individuals "Ball1" and "Ball2" with type "Ball" and an individual "Box1" with type "Box and (include some (Balle))"
Then I query the ontology with "isin value Box1", but I only have "Thing" as an answer where i expected "Ball".
Could you help me to see what i miss ?
Thanks for your help.
ps: I've tested to define "Box1" with "Box and (include only (Ball))" and I obtain "Ball" when i query, but it seems to me that does not represent what i want since I know there is a ball in the box but i do not know if there is something else.
asked 17 Jan '13, 02:29
Web Ontology Language is designed to describe the large world, not little ones. That is why it uses the Open Wold Assumption.
Just ask yourself, what if someone on the Internet states that
Regarding your example: you don't have to define each box as "Box and (include only (Ball))". Defining the
Assuming your query engine is supporting an entailment regime that is expressive enough to give you the intended conclusions, you may want to use a SPARQL query like this one:
which would give you a binding of variable
answered 17 Jan '13, 14:57
Antoine Zimm... ♦