OWL 限制值 vs 仅 vs exactly on dataProperty

OWL restrictions value vs only vs exactly on dataProperty

假设我们有一个名为 A 的 class 和一个名为 hasRestrictionDataProperty。这些语句之间有什么区别:

A SubClassOf (hasRestriction value 2)   
A SubClassOf (hasRestriction exactly 2)  
A SubClassOf (hasRestriction only 2) 

TL;DR: 阅读 AKSW 的评论,它们简洁明了。

长版: 您的问题是询问如何在 Protégé 中解释 class 表达式。 Protégé 使用 OWL 2 Manchester 语法来描述 classes,Protégé 假设本体是根据 OWL 2 Direct Semantics 来解释的。如果 属性 hasRestriction 是 Protégé 中的一个 DataProperty,那么它意味着 hasRestriction 表示一组对 (x, y) 其中 x 是一个个体(论域的一个元素)并且 y 是一个数据值(如数字、字符串、日期)。在 Protégé 中,class 表达式用于表示个体集合。

在您提供的语句中有三个 class 表达式:

hasRestriction value 2   
hasRestriction exactly 2  
hasRestriction only 2

第一个,hasRestriction value 2,标识了 属性 hasRestriction 值为 2 的事物集合。所以如果 x属于这个class,那么(x, 2)就属于hasRestriction所表示的。如果 A 是此 class 的子类,则三元组 x rdf:type A 蕴含三元组 x hasRestriction 2.

第二个 hasRestriction exactly 2 标识了一组恰好有 2 个 属性 hasRestriction 值的事物。所以如果x属于这个class,那么就有两个不同的值vw 这样 (x, v) 和 (x,w) 属于 hasRestriction 所表示的。如果 A 是此 class 的子类,则三元组 x rdf:type A 包含三元组 x hasRestriction _:vx hasRestriction _:w 以及 _:v owl:differentFrom _:w(我使用准-此处为 Turtle 语法)。

第三个,hasRestriction only 2是一个语法错误,因为如果hasRestriction是数据类型属性,那么你必须在关键字only之后使用数据类型表达式。例如,hasRestriction only xsd:integer.

在第二种情况下,class A 中的给定个体 x 可能知道 属性 hasRestriction 的值。例如,可能有三元组 x rdf:type Ax hasRestriction 1x hasRestriction 2,在这种情况下,我们知道 x 恰好有 1 和 2 作为 [=11= 的值].另外,如果我们知道 x hasRestriction 3,那么就存在矛盾,因为 1、2 和 3 是三个不同的值,而表达式告诉我们必须 恰好 [=7​​3=]二.