OWL 对象属性域/范围限制到同级类
Posted
技术标签:
【中文标题】OWL 对象属性域/范围限制到同级类【英文标题】:OWL Object Property domain/range restrictions to the same level classes 【发布时间】:2016-09-02 09:21:58 【问题描述】:我想设计一个对象属性,它总是只在同一级别的类之间链接。例如,
我想将属性isCounterPartOf
限制为属于同一个上层类的兄弟节点的弧,例如
house isCounterPartOf cars
bad isCounterPartOf good
slow isCounterPartOf fast
并且该属性不应在不同级别的类(具有不同祖先的类)之间链接,例如
cars isCounterPartOf bad
cars isCounterPartOf object
cars isCounterPartOf Entity
有没有办法只定义一个属性来做到这一点?
【问题讨论】:
【参考方案1】:假设您的目标是:isCounterPartOf
链接两个人,其中一个是例如:Bad
,那么另一个应该归类为:Good
,:isCounterPartOf
的域和范围不需要定义,就是owl:SymmetricProperty
。您只需要定义您的类,:Bad
等同于:isCounterPartOf some :Good
和:Good
等同于:isCounterPartOf some :Bad
,并分别为所有“对”类。
那么如果:
:A :isCounterPartOf :B
:C :isCounterPartOf :B
:A a :Slow
:C a :Bad
那么:B
将被分类为:Fast
和:Good
。
澄清(基于 cmets)
在上面的例子中,
1.:isCouterPartOf
是一个对称对象属性:
:isCounterPartOf rdf:type owl:ObjectProperty ,
owl:SymmetricProperty .
:Good
、:Bad
、:Slow
和 :Fast
是 OWL 类,其中:
(不知道为什么代码格式不起作用)
:Bad rdf:type owl:Class ; owl:equivalentClass [ rdf:type owl:Restriction ; 猫头鹰:onProperty:isCounterPartOf; owl:someValuesFrom :Good ]。
:Fast rdf:type owl:Class ; owl:equivalentClass [ rdf:type owl:Restriction ; 猫头鹰:onProperty:isCounterPartOf; owl:someValuesFrom :Slow ]。
:Good rdf:type owl:Class ; owl:equivalentClass [ rdf:type owl:Restriction ; 猫头鹰:onProperty:isCounterPartOf; owl:someValuesFrom :Bad ]。
:慢 rdf:type owl:Class ; owl:equivalentClass [ rdf:type owl:Restriction ; 猫头鹰:onProperty:isCounterPartOf; owl:someValuesFrom :Fast ]。
:A
、:B
和 :C
是个人,据此断言:
(同样,不知道为什么代码格式不起作用)
:A rdf:type owl:NamedIndividual , :慢;
:isCounterPartOf :B .
:B rdf:type owl:NamedIndividual , 猫头鹰:东西。
:C rdf:type owl:NamedIndividual , :不好; :isCounterPartOf :B .
基于这些断言,当你运行推理器时,你会遇到以下情况:
:A rdf:type owl:NamedIndividual ,
:Bad , #inferred
:Slow ;
:isCounterPartOf :B .
:B rdf:type owl:NamedIndividual ,
:Fast , #inferred
:Good , #inferred
owl:Thing ;
:isCounterPartOf :A , #inferred
:C . #inferred
:C rdf:type owl:NamedIndividual ,
:Bad ,
:Slow ; #inferred
:isCounterPartOf :B .
【讨论】:
对不起,我是 owl 语法的新手。我不明白:A a :Slow
代表什么。是曼彻斯特语法吗?有什么可以参考的吗?
这是一个 Turtle 表示法,其中a
代表rdf:type
,当使用不带前缀的:
时,通常的说法是资源是在当前的命名空间中定义的本体论。因此,在您的问题提供的上下文中,:A a :Slow
的意思是“此知识库中定义的个体 A 是此知识库中定义的慢类的成员”。感谢您的评论,我会更新答案以澄清这一点。
非常感谢。我期待看到你的更新。我想我没有真正理解你的答案。 B 是个人还是阶级?
@MJPark 我已经更新了我的答案。如果现在清楚,请告诉我。
非常感谢。现在很清楚了。但是恐怕您的回答与我最初想做的有点不同。作为推理的结果,我实际上希望isCounterPartOf
在bad
和good
之间发生。但是,您的答案看起来像是我们提前断言了关系 isCounterPartOf
(:C :isCounterPartOf :B
),然后推理结果显示 :B a :good
。如果您愿意,请查看another post。谢谢。以上是关于OWL 对象属性域/范围限制到同级类的主要内容,如果未能解决你的问题,请参考以下文章