1

我有一个简单的 OWL 本体,已加载到 GraphDB 存储库中(为清楚起见,省略了标准前缀):

@prefix s: <urn:sample:> .

s:Fruit a owl:Class;
  owl:oneOf (s:Apple s:Banana s:Pear) .

[a owl:AllDifferent;
 owl:distinctMembers (s:Apple s:Banana s:Pear)] .

s:eats a owl:ObjectProperty .

s:Fruitivore owl:equivalentClass 
    [a owl:Restriction;
     owl:onProperty s:eats;
     owl:allValuesFrom s:Fruit].

s:Henry a s:Fruitivore .

s:LimitedDiet owl:equivalentClass 
    [a owl:Restriction;
     owl:onProperty s:eats;
     owl:maxCardinality 3].

我断言只有 3 种水果,而亨利是只吃水果的人。

最后,我为那些吃不超过 3 种不同食物的人定义了一个类别 (LimitedDiet)。

如果我加载这个,只要我选择owl-max作为我的规则集,我就会看到所有 6 个预期的 owl:differentFrom 推断 (fruitA owl:differentFromfruitB)。

然而,无论我为我的存储库选择哪种预先确定的规则集类型,我都没有看到亨利是属于 LimitedDiet 类的个人的推论。

鉴于可用的规则集,这是预期的吗?如果我想定义自己的规则集来支持这种类型的推理,是否有任何人可以指导我的指针可以提供帮助?

另外 - 我是否应该期望看到 all:differentFrom 断言在 OWL-RL 和 OWL-QL 以及 OWL-MAX 中推断出来的?我认为它们都是后者的扩展。

非常感谢!

4

0 回答 0