OWL不同类的相同对象属性

时间:2018-05-24 14:50:28

标签: class properties uml owl object-property

我正在尝试将UML类图转换为Ontoloy,我有一个问题。

假设我有以下设置:

        rel1
ClassA ------> ClassB

        rel1
ClassC ------> ClassD

对于第一种情况,我将Relation“rel1”转换为Object Property,如下所示:

_x:rel1 rdf:type owl:ObjectProperty ;
    rdfs:domain _x:ClassA ;
    rdfs:range _x:ClassB .

但我不知道如何去做第二个。我想要的是: rel1具有域范围对(ClassA,ClassB)OR(ClassC,ClassD)。首先我考虑使用联合,但它没有以适当的方式对其进行建模,因为像(ClassA,ClassD)或(ClassC,ClassB)这样的组合是可能的。

我希望有人可以提供帮助。

谢谢你, 约翰

1 个答案:

答案 0 :(得分:2)

您的rel1协会所说的内容是ClassAClassC的联盟,其范围为ClassBClassD的联合,您可以指定如下:

ObjectProperty: rel1
  Domain: ClassA or ClassC
  Range: ClassB or ClassD

为属性指定域和范围限制的主要好处是,如果通过该属性链接2个人,则推理器可以推断出个人的类型。如上所述指定域和范围将允许这样做,因为ClassA or ClassC是一个匿名类,而reasoners通常只对命名类进行推断,而不是匿名类。要解决这个问题,您可以执行以下操作:

Class: Rel1Domain 
  EquivalentTo: ClassA or ClassC

Class: Rel1Range 
  EquivalentTo: ClassB or ClassD

ObjectProperty: rel1
  Domain: Rel1Domain
  Range: Rel1Range