【发布时间】:2014-01-31 00:34:20
【问题描述】:
owl:hasValue 限制的含义是什么,它与owl:allValuesFrom 和owl:someValuesFrom 有何不同?
在一个本体中,我想写一个公理说:“每个拥有文凭的人都是有文化的。” 这个怎么写?
【问题讨论】:
标签: semantic-web owl ontology
owl:hasValue 限制的含义是什么,它与owl:allValuesFrom 和owl:someValuesFrom 有何不同?
在一个本体中,我想写一个公理说:“每个拥有文凭的人都是有文化的。” 这个怎么写?
【问题讨论】:
标签: semantic-web owl ontology
考虑一个个体 x、一个类 C、一个属性 P 和另一个个体 y。然后是一些听起来你关心的类表达式:
一个个体 x 是类 ∃P.C 的一个元素,如果 some 个体 y 使得 P(x,y) 是 C 的一个元素。在曼彻斯特语法中,∃P.C 写成“P一些 C”。
一个个体 x 是类 ∀P.C 的一个元素,如果 every 每个个体 y 使得 P(x,y) 是 C 的一个元素。在曼彻斯特语法中,∀P.C 写成“P只有 C”。
如果是 P(x,y),则单个 x 是 class=P.y 的一个元素。在曼彻斯特语法中,=P.y 写成“P 值 y”。
在 OWL 中,存在将个体与个体相关联的对象属性,以及将个体与文字相关联的数据类型属性。因此,OWL 实际上对上面列出的每种构造都有两种类型的限制:一种用于对象属性,另一种用于数据属性。每一个的含义都在OWL 2 Web Ontology Language Direct Semantics (Second Edition) 推荐的2.2.3 Class Expressions 中正式列出。
要编写一个 OWL 公理来表达“每个有文凭的人都是有文化的”,你需要:
公理是
(人 ⊓ ∃hasDiploma.Diploma) ⊑识字的东西
这就是说,如果一个人是一个人,并且有一些文凭,那么他们就是识字的。在 OWL 的 RDF 序列化中(您将开始看到您提到的限制类),这看起来像在 Protégé OWL 编辑器和 RDF/XML 中:
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://example.org/literacy#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<owl:Ontology rdf:about="http://example.org/literacy"/>
<owl:Class>
<rdfs:subClassOf>
<owl:Class rdf:about="http://example.org/literacy#LiterateThing"/>
</rdfs:subClassOf>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class rdf:about="http://example.org/literacy#Person"/>
<owl:Restriction>
<owl:onProperty>
<owl:ObjectProperty rdf:about="http://example.org/literacy#hasDiploma"/>
</owl:onProperty>
<owl:someValuesFrom>
<owl:Class rdf:about="http://example.org/literacy#Diploma"/>
</owl:someValuesFrom>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
</rdf:RDF>
【讨论】:
hasDiploma 并使用hasDiploma min 1 或hasDiploma some owl:Thing 之类的限制。 Diploma 只是另一个类,很像 Person 和 LiterateThing。
<wol:Class rdf:recource="leterace"/> 是什么意思,但我们没有说Diploma 等同于任何东西。你想写的公理是“每个有文凭的人都是有文化的”。文凭是一个人可以拥有的东西,就像衬衫是一个人可以拥有的东西一样。