gpt4 book ai didi

logic - 使用 rdfs :subClassOf or owl:equivalentClass in case of existential quantification (owl:SomeValuesFrom) for a OWL class restriction constructor? 时

转载 作者:行者123 更新时间:2023-12-05 05:51:21 25 4
gpt4 key购买 nike

我们根据分别与 B 或 C 的实例具有关系 a_to_b 和 a_to_c 的实例的交集 (AND),将类 A 定义为 owl:equivalentClass 并将类 A2 定义为 rdfs:subClassOf。请看例子:

:A rdf:type owl:Class ;
owl:equivalentClass [ owl:intersectionOf ( [ rdf:type owl:Restriction ;
owl:onProperty :a_to_b ;
owl:someValuesFrom :B
]
[ rdf:type owl:Restriction ;
owl:onProperty :a_to_c ;
owl:someValuesFrom :C
]
) ;
rdf:type owl:Class
] .

这里作为一个子类:

:A2 rdf:type owl:Class ;
rdfs:subClassOf [ owl:intersectionOf ( [ rdf:type owl:Restriction ;
owl:onProperty :a_to_b ;
owl:someValuesFrom :B
]
[ rdf:type owl:Restriction ;
owl:onProperty :a_to_c ;
owl:someValuesFrom :C
]
) ;
rdf:type owl:Class
] .

使用 owl:equivalentClass 的原因是什么?我什么时候使用 rdfs:subClassOf?区别和最后真正表达的内容对我来说并不完全清楚。

我的进一步观察/问题:

a) 当我用三元组创建实例 x 时:(x, a_to_b, b1) 和 (x, a_to_c, c1),x 被自动推断为 A 的类型而不是 A2 的类型。 (将 Protege 与 Hermit Reasoner 结合使用)(c1 是 C 的类型,b1 是 B 的类型)。

b) 当我创建实例 y 并手动为 y 分配类型 A 和 A2 时,如果 y 通过 a_to_b 与 B 的实例无关并且通过 a_to_c 与 C 的实例无关,这会成为问题吗? Hermit Reasoner 没有显示出任何问题的迹象,但这不是 A 类的必要(必须满足)条件吗?

c) 这些陈述对 A 是否正确:

c2) 如果我知道 z 与 B 的实例有 a_to_b 关系,并且它与 C 的实例有 a_to_C 关系,则 z 必须是 A 类型。

c3) A 是与 B 的实例具有 a_to_b 关系并且与 C 的实例具有 a_to_C 关系的所有事物的类。

我可以说 c1 和 c3 也关于 A2 或陈述如何改变吗?

意思不是很清楚。我希望有人能澄清事情。提前致谢

最佳答案

我认为首先要注意的是等价性,比如 D equivalentClass E,是 D subClassOf EE subClassOf D< 的缩写subClassOf 的语义是子集。这意味着集合 D 是集合 E 的子集,而集合 ED 的子集,这表示集合 D 和集合 E 是完全相同的集合。我们说它们是等价的。

现在请注意 subClassOf 的语义。如果我知道 F subClassOf EG subClassOf E,我能说说 FG 是如何关联的彼此?绝对没有。这有点像知道自行车和卡车都是交通工具。这并不能使自行车成为卡车或卡车成为自行车,尽管两者都是车辆。

因此,在您的示例中,A 可以扩展为 2 个公理

A subClassOf (a_to_b some B) and (a_to_c some C)

(a_to_b some B) and (a_to_c some C) subClassOf A

问题的答案:

(a) 根据您对x 的断言,我们可以看到x 确实是A 的一个实例。但是,没有关于 x 的信息可以让我们说 xA2 类型。我们所知道的是 xA2 都是 (a_to_b some B) 和 (a_to_c some C) 的子类。

(b) 这是由于开放世界假设,这意味着推理者不会根据信息的缺失做出任何假设。如果您没有明确声明 yB 没有 a_to_b 关系,它将假定 a_to_b 关系存在但只是不为人所知。这与数据库通常做出的封闭世界假设相反。即,如果客户没有雇主信息,通常会假设客户没有工作。

您可以通过声明a_to_b max 0 B 来声明y 没有a_to_b 关系。然后推理机会给出一个不一致的结果。

(c1) 是的,但由于开放世界假设,这些目前可能未知。

(c2) 是的,基于等价语义

(c3) 是的。

对于 A2是真的,因为它只是一个子类而不是所有与 a_to_b 和 B 的实例有关系的事物并且与 C 的实例有 a_to_C 的关系。

何时使用等同于 subClassOf

等价物用于定义。那就是当你想要陈述被称为 A 的东西的必要和充分条件时(来自你的例子)。

当您想要定义从最一般到最具体的层次结构时,使用 SubClassOf。也就是说,它通常是您在分类法和编程中看到的,您会将其视为面向对象的类层次结构。

关于logic - 使用 rdfs :subClassOf or owl:equivalentClass in case of existential quantification (owl:SomeValuesFrom) for a OWL class restriction constructor? 时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70386593/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com