2

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

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

我发现了两种主要方法:

  1. 您可以将类名作为域包含在属性的定义中。
  2. 或者您通过以下方式将属性包含到类定义中owl:Restricion/owl:onProperty.

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

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

4

1 回答 1

2

以您的示例为例,您有一个 class Device,并且有一个 classApplication和一个 ObjectProperty 用于关联它们。在 OWL 曼彻斯特语法中:

  Class: Device

  Class: Application

  ObjectProperty: hasApplication 

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

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

 ObjectProperty: hasApplication
    Domain: Device
    Range: Application

然而,这可能不是你所追求的,因为这只是说如果一个hasApplication关系发生在任何地方,它的主语和宾语可以分别被推断为 和Device类型Application。它并不是说 的所有实例都Device必须具有hasApplication属性。

要表达 的所有实例Device 必须具有hasApplication属性,可以使用 OWL 基数限制:

 Class: Device 
    SubClassOf: hasApplication min 1 

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

于 2012-07-30T03:47:35.017 回答