繁体   English   中英

OWL:定义类的属性和成员对象

[英]OWL: Defining attributes and member objects of a class

我对语义Web领域完全陌生,需要创建一个本体。

我做了很多研究,但仍然没有找到以下问题的明确解决方案:基本上,我想从语义上描述某个类包含某些对象和属性。 但这对我来说还不是100%清楚如何去做。 示例:我想描述“设备”类。 现在,该类包含一个对象“应用程序”和一个属性“ ID”。 我可以将对象“应用程序”映射到ObjectProperty“ hasApplication”,并将属性映射到DatatypeProperty“ ID”。 到目前为止一切顺利,但是现在我如何将它们绑定到班级?

我发现了两种主要方法:

  1. 您可以在属性的定义中将类名作为域包括在内。
  2. 或者,您可以通过owl:Restricion/owl:onProperty.将属性包括在类定义中owl:Restricion/owl:onProperty.

但是我认为,这两种方式均不能准确地反映我的语义意图,因为在第一种情况下,我的理解是,如果某个对象使用了已定义的属性,则该对象必须是在对象中定义的类的实例。域,但不一定意味着该类的每个实例都必须具有此属性。 类似地,在第二种情况下,通过owl:Restriction/owl:onProperty将属性绑定到类上,这使我对该属性施加了限制,即基数或值的范围。 但这不是我的意图,我不想描述“此类具有此限制的此属性。”而只是描述“此类具有此属性”。

希望你们能把事情弄清楚。 :S

与您的示例一起,您有一个类Device ,并且有一个类Application和一个用于关联它们的ObjectProperty。 在OWL Manchester语法中:

  Class: Device

  Class: Application

  ObjectProperty: hasApplication 

从“设备类中包含的对象”的角度来考虑“应用程序”有点误导。 可以将它们视为该类相关的对象。

现在,可以通过设置属性的域和范围来使DeviceApplication之间的关系全局可用:

 ObjectProperty: hasApplication
    Domain: Device
    Range: Application

但是,这可能并不是您所追求的,因为这仅表示如果hasApplication关系发生在任何地方,则可以将其主语和宾语分别推断为DeviceApplication类型。 并不是说Device所有实例都必须具有hasApplication属性。

为了表示Device所有实例必须具有hasApplication属性,可以使用OWL基数限制:

 Class: Device 
    SubClassOf: hasApplication min 1 

这告诉我们Device任何实例必须至少具有1个 hasApplication属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM