我有一个本体,其中类别可能与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本体,直到我们不得不跳进去。