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 我已经更新了我的答案。如果现在清楚,请告诉我。 非常感谢。现在很清楚了。但是恐怕您的回答与我最初想做的有点不同。作为推理的结果,我实际上希望isCounterPartOfbadgood 之间发生。但是,您的答案看起来像是我们提前断言了关系 isCounterPartOf (:C :isCounterPartOf :B),然后推理结果显示 :B a :good。如果您愿意,请查看another post。谢谢。

以上是关于OWL 对象属性域/范围限制到同级类的主要内容,如果未能解决你的问题,请参考以下文章

本体限制对 SPARQL 最终结果的影响

面向对象的特征一:封装与隐藏

ArcGIS微课1000例0050:Geodatabase属性域操作全解

有没有办法根据派生类的可能性值范围来限制对象参数?

AspectJ——切入点语法之限制连接点的作用域

AspectJ——切入点语法之限制连接点的作用域