Justification of an OWL ontology using an inverse property?

I use Protege v4.3 to create ontologies. I have a question about OWL ontology and DL query.

For example, in the Pizza ontology, http://owl.cs.manchester.ac.uk/co-ode-files/ontologies/pizza.owl

I can execute a DL request

hasTopping some CheeseTopping

As a result, American, American Hot, Cajun, .. etc. This is normal.

Now I tried the DL request

isToppingOf some American

But the result is nothing.

Since the isToppingOf property is the inverse of the hasTopping property, I expected to get the result, including FourCheesesTopping, CheeseyVegetableTopping, etc. From this request (by output). Bad did not.

Are there any ways of automatic reasoning?

+7
owl protege dlquery
source share
2 answers

Class expression

hasTopping some CheeseTopping

is a set of individuals, each of which is associated with some use of CheeseTopping by the hasTopping property. In a Pizza ontology where there are no people, you can still get the subclass of the class for this query, because the definition of certain types of Pizzas (like American) is such that any pizza that is American should have such an advantage.

Now a similarly structured query

isToppingOf some american

is a set of individuals, each of which is associated with some American pizza by the isToppingOf property. However, the Pizza ontology does not define specific people, so there are no people as candidates. But what about classes that can be subclasses of this expression? For example, you mentioned FourCheeseTopping. Now, some specific FourCheeseTopping example, for example, fourCheeseTopping23, might be topping some American pizza, for example:

fourCheeseTopping23 isToppingOf americanPizza72

However, fourCheeseTopping may not have been placed on any particular pizza yet. When we select an arbitrary person like FourCheeseTopping, we cannot conclude that he is the top of American pizza, so we cannot conclude that the FourCheeseTopping class is a subclass

isToppingOf some american

because this is not the case when every instance of FourCheeseTopping must be an American pizza champion. For a similar case, which can make the logical structure a little clearer, consider the Employer and Person classes, as well as the property of the object and its inverse occupied. We can say that each Employer must have some kind of person as an Employee (since otherwise they would not be an employer):

Employer & sqsubseteq; uses someone Person

However, since a person may be unemployed, it is not true that

Person & sqsubseteq; usedBy someone Employer

although they are used and used, they are inversions.

What you can do, however, if you want to know if a certain type of filling can place a certain type of pizza, you need to ask if

PizzaType & sqcap; & Exists; hasTopping.ToppingType

equivalent to or a subclass of owl: Nothing. For example, since American pizza has only toppings like TomatoTopping, MozzarellaTopping and PeperoniTopping [sic], class

American & sqcap; & Exists; hasTopping.MixedSeafoodTopping

equivalent to owl: Nothing:

american pizzas don't have mixed seafood toppings

On the other hand, since American pizza must have MozzarellaTopping, class

American & sqcap; & Exists; hasTopping.MozzarellaTopping

equivalent to American:

american pizzas do have mozzarella toppings

+5
source share

When you ask which subclasses are:

 isToppingOf some American 

you ask which classes contain toppings that are necessarily used on top of American pizzas. But in pizza ontology, this class does not exist. Take a look at the cheese filling: are all the cheese toppings on top of some American pizzas? No, some cheese toppings are on top of Italian pizza. The same is true for all classes in the top positions.

+1
source share

All Articles