问题描述
我正在使用Protege v4.3进行本体构建.我有一个关于OWL本体和DL查询的问题.
I'm using Protege v4.3 for making ontologies.I have a question about OWL ontology and DL query.
例如,在Pizza本体中, http://owl.cs.manchester.ac.uk/co-ode-文件/本体/pizza.owl
For instance, in the Pizza ontology,http://owl.cs.manchester.ac.uk/co-ode-files/ontologies/pizza.owl
我可以执行DL查询
hasTopping some CheeseTopping
结果是American,AmericanHot,Cajun等.没关系.
The result isAmerican, AmericanHot, Cajun,.. etc. That's OK.
现在,我尝试了DL查询
Now, i tried DL query
isToppingOf some American
但是结果什么都没有.
因为isToppingOf属性是hasTopping的逆属性,我希望从该查询中得到包括FourCheesesTopping,CheeseyVegetableTopping等的结果(通过推理).发芽没有.
Because the property isToppingOf is inverse property of hasTopping,I expected to get the result including FourCheesesTopping, CheeseyVegetableTopping, etc. from that query(by inference). Bud it didn't.
有没有办法像这样进行自动推理?
Is there any ways automatic reasoning like that?
推荐答案
类表达式
是一组个人,每个人通过hasTopping属性与某些CheeseTopping相关.在没有个人的Pizza本体中,您仍然可以获取此查询的类子类结果,因为某些类型的Pizza(例如American)的定义使得任何美国人的Pizza都必须具有这样的浇头.
is the set of individuals each of which is related to some CheeseTopping by the hasTopping property. In the Pizza ontology, where there are no individuals, you can still get class subclass results for this query because the definition of certain types of Pizzas (e.g., American) are such that any Pizza that is an American must have such a topping.
现在,结构相似的查询
是一组个人,每个个人都通过isToppingOf属性与某些美国披萨相关.但是,匹萨本体没有定义任何特定的个体,因此没有任何个体可以作为候选对象.但是,可能是该表达式的子类的类又如何呢?例如,您提到了FourCheeseTopping.现在,FourCheeseTopping的某些特定实例,例如fourCheeseTopping23 可以是某些美国披萨的浇头,例如:
is the set of individuals each of which is related to some American pizza by the isToppingOf property. However, the Pizza ontology defines no particular individuals, so there aren't any individuals as candidates. But what about classes that might be subclasses of this expression? For instance, you mentioned the FourCheeseTopping. Now, some particular instance of FourCheeseTopping, e.g., fourCheeseTopping23 could be a topping of some American pizza, e.g.:
但是,可能尚未在任何特定的披萨上放置fourCheeseTopping.当我们选择一个类型为FourCheeseTopping的任意个人时,我们不能推断它是某些美国比萨饼的馅料,因此我们不能推断出FourCheeseTopping类是
However, fourCheeseTopping might not have been placed on any particular pizza yet. When we choose an arbitrary individual of type FourCheeseTopping, we can't infer that it is a topping of some American pizza, so we cannot infer that the class FourCheeseTopping is a subclass of
因为并非所有情况下,FourCheeseTopping的每个实例都必须是某些美国比萨饼的馅料.对于可能使逻辑结构更清晰的类似情况,请考虑Employer和Person类,并且object属性采用及其相反的AppliedBy.我们可能会说每个雇主都必须有一些人作为雇员(否则他们就不会成为雇主):
because it's not the case that every instance of FourCheeseTopping must be the topping of some American pizza. For a similar case that might make the logical structure a bit clearer, consider the classes Employer and Person, and the object property employs and its inverse employedBy. We might say that every Employer must have some Person as an Employee (since otherwise they wouldn't be an employer):
但是,由于一个人可能失业,因此
不是是真的
However, since a person can be unemployed, it is not true that
即使employees和heldedBy是相反的.
even though employs and employedBy are inverses.
但是,如果您想知道是否可以将特定类型的浇头放置在特定类型的披萨上,您可以问
What you can do, though, if you want to know whether toppings of a particular type could be placed an pizza of a particular type, is to ask whether
等同于owl:Nothing或owl:Nothing的子类.例如,由于美国比萨饼仅具有TomatoTopping,MozzarellaTopping和PeperoniTopping [sic]类型的浇头,因此该类
is equivalent to, or a subclass of, owl:Nothing. For instance, since an American pizza has only toppings of type TomatoTopping, MozzarellaTopping, and PeperoniTopping [sic], the class
等同于owl:Nothing:
is equivalent to owl:Nothing:
另一方面,由于美国比萨饼必须必须有MozzarellaTopping,所以该类
On the other hand, since an American pizza must have a MozzarellaTopping, the class
等同于美国人:
这篇关于使用逆属性推理OWL本体?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!