0

如何在 OWL 本体语言中表示“部分”SQL 关系?例如:

CREATE TABLE DevelopmentTask (
 DevelopmentTaskID INT,
 SoftwareProjectID INT FOREIGN KEY REFERENCES SoftwareProject (SoftwareProjectID),PRIMARY KEY(DevelopmentTaskID, SoftwareProjectID))

在上表中,DevelopmentTask 表是 SoftwareProject 的一部分。我如何在 OWL 中表示这一点,可能是可以使用 OWL 中的 intersectionOf 属性来表示。

谢谢,

4

3 回答 3

4

您可以根据需要显示的确切内容简单地引入 ObjectProperty 或 DataTypeProperty。例如,我会介绍:

hasDevelopmentTask

然后添加以下限制:

SoftwareProject hasDevelopmentTask some DevelopmentTask

“一些”限制还取决于您的关系。如果是 1-n,则此关系成立,否则将其替换为“min”、“max”、“exactly”或“only”。

此外,由于您的示例包含 ID,因此我会将它们添加为 SoftwareProject 或 DevelopmentTask 的实例或个体。在这种情况下,SoftwareProject 的每个实例都会有“一些”DevelopmentTask。

于 2013-05-31T10:31:59.207 回答
3

正如提到的另一个答案,您可以简单地创建一个 propertyhasDevelopmentTask或类似的东西。如果您将来要让事情变得更复杂一些(例如,如果一个软件项目有一个开发任务,而一个开发任务是一个(子)开发任务……)您可能想看看 W3C Working草稿,OWL Ontologies 中的简单部分-整体关系

于 2013-05-31T13:26:28.817 回答
3

一、一些理论

OWL 不提供用于定义关系的内置原语part-whole(如 W3C 工作草案中所述)。

但是,您可以使用 OWLpart-of和它们的.is-aobjectPropertiesrestrictions

因此,在您的情况下,您希望将概念DevelopmentTask定义为概念SoftwareProject的一部分

在这种情况下,您需要:

  1. 为每个概念创建一个owl:Class(本例中为 2 个类)。
  2. 创建一个owl:ObjectProperty来表示关系partOf及其限制。
  3. 部分类扩展为对该属性的整个subClassOf的值的限制。

二、RDF/XML语法

因此,要将其表示为 RDF/XML 语法中的 OWL 本体,最终布局将如下所示:

<owl:Class rdf:about="SoftwareProject"/>

<owl:ObjectProperty rdf:about="partOf"/>

<owl:Class rdf:about="DevelopmentTask">
  <rdfs:subClassOf>
    <owl:Restriction>
      <owl:onProperty rdf:resource="partOf"/>
      <owl:someValuesFrom rdf:resource="SoftwareProject"/>
    </owl:Restriction>
  </rdfs:subClassOf>
</owl:Class>
于 2015-03-01T05:51:39.113 回答