我正在处理一个使用protp -
度⊑物种⊓hasPart存在。水果⊓= hasShape.round
specia属于Species子类,有部分果实和形状值Round。
这些都是在protp中定义的,然后导出到OWL,然后在Java中加载到我的本体中。如果我创建一个物种的个体x属性为
- hasPart (x, FruitA)
- hasShape (x,圆)
我检索我的个体所属的每个类(在本例中,这应该包括SpeciesA)。
我不确定我应该使用什么:我可以使用SWRL物种(?x)^hasPart(?x,水果)^hasShape(?x,"$Round$")还是我应该使用推理器?
我真的搞不懂protp - 3 "equivalent to"和individual property.
一般来说,如果您没有断言某个个体x属于某个类,那么您将需要一个推理器来为您推断(如果它遵循您确实拥有的其他数据)。无论推理是基于OWL公理还是基于SWRL规则,这都适用。(当然,在使用SWRL规则的情况下,您需要一个支持SWRL规则的推理器,比如Pellet或HermiT。)在你描述的情况下,你说
度⊑物种⊓hasPart存在。水果⊓= hasShape.round
这意味着每一个作为物种的东西都是一个物种,有一些果实作为一部分,并且形状是圆形的。然而,它并没有说任何一个物种,有一些水果作为一部分,有圆形形状的东西都是一个物种。看看这在一阶逻辑中是什么可能会有所帮助:
∀x[SpeciesA(x) &right;(物种(x) &楔形;存在;y (hasPart(x,y)] ∧
注意条件语句只从左到右。如果你还想说满足右边条件的所有东西都是左边概念的实例,那么你可能需要一个等价:
x[SpeciesA(x) & lefightrow;(物种(x) &楔形;存在;y (hasPart(x,y)] ∧
在OWL中是
度枚;物种⊓hasPart存在。水果⊓= hasShape.round
也就是说,specia是另一个类的等价类。但是,您仍然需要一个推理器来推断具有这些条件的东西是物种。