利用逆属性推理OWL本体?
我使用ProtegeV4.3制作本体。 我有一个关于OWL本体和DL查询的问题 例如,在比萨饼本体中, 我可以执行DL查询利用逆属性推理OWL本体?,owl,protege,dlquery,Owl,Protege,Dlquery,我使用ProtegeV4.3制作本体。 我有一个关于OWL本体和DL查询的问题 例如,在比萨饼本体中, 我可以执行DL查询 hastopped some CheeseTopping 结果是 美国,美国热,卡津,。。等等,没关系 现在,我尝试了DL查询 i一些美国人的祝福 但结果一无所获 因为IsTopingof属性是hasTopping的反向属性, 我希望从该查询中(通过推理)得到结果,包括FourCheesesToping、CheeseyVegetableToping等。巴德,没有 有没有这
hastopped some CheeseTopping
结果是
美国,美国热,卡津,。。等等,没关系
现在,我尝试了DL查询
i一些美国人的祝福
但结果一无所获
因为IsTopingof属性是hasTopping的反向属性,
我希望从该查询中(通过推理)得到结果,包括FourCheesesToping、CheeseyVegetableToping等。巴德,没有
有没有这样的自动推理方法?当你问什么是:
isToppingOf some American
你是在问什么种类的比萨必须加在美国比萨上。但在pizza本体中,不存在这样的类。想想奶酪配料:所有的美国比萨饼上面都是奶酪配料吗?不,意大利比萨上面有一些奶酪配料。这同样适用于所有顶级类。类表达式
有顶部一些奶酪顶部
是通过hasTopping属性与某些奶酪顶相关的一组个体。在Pizza本体中,如果没有个人,您仍然可以获得此查询的类子类结果,因为某些类型的Pizza(例如,美国)的定义是,任何美国人的Pizza都必须有这样的顶部
现在,类似结构的查询
isToppingOf一些美国人
是一组个人,每个人都与isToppingOf财产的一些美国比萨饼有关。然而,比萨饼本体没有定义特定的个体,因此没有任何个体作为候选个体。但是那些可能是这个表达式的子类的类呢?例如,你提到了四个奶酪。现在,FourCheeseTopping的一些特殊例子,例如FourCheeseTopping 23可能是一些美国比萨饼的顶部,例如:
四块奶酪是美国比萨的美味
然而,四块芝士馅饼可能还没有被放在任何特定的比萨饼上。当我们选择FourCheeseTopping类型的任意个体时,我们不能推断它是某种美国比萨饼的配料,因此我们不能推断FourCheeseTopping类是
isToppingOf一些美国人
因为并不是所有的四块芝士都是美国比萨饼的配料。对于一个可能使逻辑结构更清晰的类似情况,考虑类雇主和个人,对象属性采用它的反向使用。我们可以说,每个雇主都必须有一些人作为雇员(否则他们就不是雇主):
业主和SQQ分包商;雇用一些人
然而,由于一个人可以失业,这不是真的
人员和SQQ子部分;某些雇主雇用
尽管Employeed和EmployeedBy是相反的
但是,如果你想知道某一种类型的配料是否可以放在某一种类型的比萨饼上,你可以做的是询问
PizzaType⊓∃hasTopping.ToppingType
相当于owl:Nothing或其子类。例如,由于美国比萨饼只有番茄馅饼、马扎里拉塔馅饼和烤肉馅饼[sic]类型的配料,因此
美国和sqcap;∃混合海产品
相当于猫头鹰:无:
另一方面,由于美国比萨饼必须有一个莫扎里拉式的口味,因此
美国和sqcap;∃hasTopping.mozzarellating
相当于美国:
谢谢你,齐默尔曼。但是我如何才能得到某些比萨的配料表呢?AmericanHot、American等是否有闭包原则?