OWL DL:我可以拥有一个 class 和一个具有相同 IRI 的个人吗?

OWL DL: Can I have a class and an individual with the same IRI?

我有一个 ontology,其中 classes 可能与 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 转换为 class,然后从那里对 OWL DL ontology 进行推理。对我来说,使用 SameIndividual 结构是有意义的,因为我认为 UUID 只是 class.

的另一个名称

我正在做的显然是元建模,因为我将一个实体同时视为 class 和一个个体,但我不希望实际进行任何利用元建模的推理造型。我无法从规范中判断这是否是一个有效的 OWL DL 文档,其中有一个名为 a:C 的 class 和一个名为 a:C 的个体,它们被完全独立地对待,或者如果我只是被禁止拥有一个 class 和一个同名的人。

我知道我可以使用 EquivalentClasses,但出于用户体验的原因我想避免使用它。我有一种感觉,我们将在 OWL 长 运行 的完整文档上进行操作,这个问题变得没有实际意义,但我想能够说我们正在生成有效的 OWL DL 本体,直到我们必须跳转。

是的,在OWL 2 DL中允许有一个class和一个同名的人。 document for OWL 2 New Features call this "punning”。这样的结果是有两个独立的术语,所以对一个的推理不会影响对另一个的推理。例如,下面是一致的(我用Turtle语法写的,我' m 比较熟悉):

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 .