OWL DL:我能够拥有一个类和一个具有相同IRI的个体吗?

3

我有一个本体,其中类别可能与UUID关联,但我希望在大部分工作中使用易于阅读的名称。 我想要类似于以下内容:

Declaration( Class( a:C ) )
Declaration( NamedIndividual( a:C ) )
Declaration( NamedIndividual( urn::uuid:00112233-4455-6677-8899-aabbccddeeff ) )
Declaration( NamedIndividual( a:someObject) )

ClassAssertion( a:C a:someObject )
SameIndividual( a:C urn::uuid:00112233-4455-6677-8899-aabbccddeeff )

意图是通过专门的处理步骤将UUID转换为类,然后从那里对OWL DL本体进行推理。对我来说,使用 SameIndividual 结构是有意义的,因为我将那个UUID视为该类的另一个名称。
我所做的显然是元建模,因为我既将实体视为类,又将其视为个体,但我不期望实际上进行利用该元建模的任何推理。我从规范中无法确定这是否是有效的OWL DL文档,其中具有名为a:C的类和名为a:C的个体完全独立处理,还是我被禁止使用同名的类和个体。
我知道我可以使用 EquivalentClasses ,但出于用户体验原因,我想避免使用它。我有一种感觉,我们将在长期运行中操作OWL Full文档,在那里这个问题变得无关紧要,但我想能够说我们正在生成有效的OWL DL本体,直到我们不得不跳进去。
1个回答

3

在OWL 2 DL中,允许使用相同名称的类和个体。OWL 2新功能文档将此称为“punning”。其结果是存在两个独立的术语,因此对一个进行推理不会影响对另一个的推理。例如,以下语句是一致的(我用我更熟悉的Turtle语法书写):

ont:  a  owl:Ontology .
ont:C a  owl:Class, ont:C .
ont:D a  owl:Thing, owl:Class;
      owl:sameAs  ont:C;
      owl:disjointFrom  ont:C . 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接