扩展 OWL 类并检查不一致之处

问题描述 投票:0回答:1

我想在我自己的本体中扩展SOMA中定义的

Hand
类,并用命名空间定义
http://example.org/test.owl

<owl:Class rdf:about="http://www.ease-crc.org/ont/SOMA.owl#Hand">
    <rdfs:subClassOf rdf:resource="http://www.ease-crc.org/ont/SOMA.owl#PrehensileEffector"/>
    <rdfs:comment>A prehensile effector including palm, fingers, and thumb.</rdfs:comment>
    <rdfs:isDefinedBy rdf:resource="http://www.ease-crc.org/ont/SOMA-OBJ.owl"/>
</owl:Class>

看起来像这样

<rdf:Description rdf:about="http://www.ease-crc.org/ont/SOMA.owl#Hand">
    <rdfs:subClassOf>
        <owl:Restriction>
            <owl:onProperty rdf:resource="http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#isRegionFor"/>
            <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:minCardinality>
            <owl:allValuesFrom rdf:resource="http://example.org/test.owl#Span"/>
        </owl:Restriction>
    </rdfs:subClassOf>
</rdf:Description>

首先,这是否正确定义了

Hand
的每个实例都必须通过
Span
属性与
isRegionFor
至少有一个关联?

现在为了测试它,我创建了一个 Hand 实例(具有 SOMA 命名空间),与 Span 没有任何关联,并运行 Pellet 推理机,但推理机没有抱怨。这与 Hand 的命名空间(因为我已经在本体中用新的命名空间扩展了它)或 Pellet 的某些配置有关吗?

rdf owl semantic-web pellet
1个回答
0
投票

OWL 遵循“开放世界假设”——为了报告不一致,仅仅图表“缺失”事实是不够的——你必须明确地反驳它们;换句话说,删除三元组永远不会产生矛盾。你的本体论告诉推理者,一个 Hand 与至少一个 Span 存在关系,并且不存在与此相矛盾的三元组。

使用 OWL 没有令人满意的方法来做到这一点 - 您可以删除本体中的 
rdfs:subClassOf
,然后与推理器检查

Hand

的每个成员也是您的

owl:Restriction
的成员。但是,这不需要“直接”证明,因为您可以明确断言此成员资格,即“恶意”图可能暗示特定的
Hand
与某些
Span
相关联,但它没有义务识别该成员资格明确特定的个人。
OWL 不是适合这项工作的工具,如果您想验证图表 – 
SHACL
更好。

© www.soinside.com 2019 - 2024. All rights reserved.