OWL 限制值 vs 仅 vs exactly on dataProperty
OWL restrictions value vs only vs exactly on dataProperty
假设我们有一个名为 A
的 class 和一个名为 hasRestriction
的 DataProperty。这些语句之间有什么区别:
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,那么就有两个不同的值v和w 这样 (x, v) 和 (x,w) 属于 hasRestriction
所表示的。如果 A
是此 class 的子类,则三元组 x rdf:type A
包含三元组 x hasRestriction _:v
和 x hasRestriction _:w
以及 _:v owl:differentFrom _:w
(我使用准-此处为 Turtle 语法)。
第三个,hasRestriction only 2
是一个语法错误,因为如果hasRestriction
是数据类型属性,那么你必须在关键字only
之后使用数据类型表达式。例如,hasRestriction only xsd:integer
.
在第二种情况下,class A
中的给定个体 x
可能知道 属性 hasRestriction
的值。例如,可能有三元组 x rdf:type A
、x hasRestriction 1
、x hasRestriction 2
,在这种情况下,我们知道 x
恰好有 1 和 2 作为 [=11= 的值].另外,如果我们知道 x hasRestriction 3
,那么就存在矛盾,因为 1、2 和 3 是三个不同的值,而表达式告诉我们必须 恰好 [=73=]二.
假设我们有一个名为 A
的 class 和一个名为 hasRestriction
的 DataProperty。这些语句之间有什么区别:
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,那么就有两个不同的值v和w 这样 (x, v) 和 (x,w) 属于 hasRestriction
所表示的。如果 A
是此 class 的子类,则三元组 x rdf:type A
包含三元组 x hasRestriction _:v
和 x hasRestriction _:w
以及 _:v owl:differentFrom _:w
(我使用准-此处为 Turtle 语法)。
第三个,hasRestriction only 2
是一个语法错误,因为如果hasRestriction
是数据类型属性,那么你必须在关键字only
之后使用数据类型表达式。例如,hasRestriction only xsd:integer
.
在第二种情况下,class A
中的给定个体 x
可能知道 属性 hasRestriction
的值。例如,可能有三元组 x rdf:type A
、x hasRestriction 1
、x hasRestriction 2
,在这种情况下,我们知道 x
恰好有 1 和 2 作为 [=11= 的值].另外,如果我们知道 x hasRestriction 3
,那么就存在矛盾,因为 1、2 和 3 是三个不同的值,而表达式告诉我们必须 恰好 [=73=]二.