【发布时间】:2021-04-26 16:40:15
【问题描述】:
我认为我对 OWL 公理仍然存在根本性的误解 :(。
这是我创建的一个小型测试本体:
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix : <http://foobar.com/test/> .
: a owl:Ontology .
:prop1 a owl:DatatypeProperty .
:prop2 a owl:DatatypeProperty .
:Class1 owl:equivalentClass [
a owl:Restriction ;
owl:onProperty :prop1 ;
owl:cardinality "1"^^xsd:int
] .
:Ind1 a owl:NamedIndividual ;
:prop1 "value1"^^xsd:string .
:Class2 owl:equivalentClass [
a owl:Restriction ;
owl:onProperty :prop2 ;
owl:minCardinality "1"^^xsd:int
] .
:Ind2 a owl:NamedIndividual ;
:prop2 "value2"^^xsd:string .
当我在 Protege 中运行 Hermit 推理器时,我得到了 :Ind2 的预期结果,即它是 :Class2 的成员。但是对于:Ind1 来说,作为:Class1 的成员,我并没有得到相同的结果。
我怀疑这与开放世界假设有关,:Ind1 可能还有另一个:prop1 断言。所以几个问题:
- 我是否正确诊断了问题?
- 我能否获得一个示例,说明如何让隐士在不明确做出断言的情况下推断
:Ind1是:Class1的成员?
谢谢
【问题讨论】:
标签: owl semantic-web protege hermit