0

我有一堂课Person。它有两个属性hasAgehasZipCode

:Person :hasAge     <literal>
        :hasZipCode <literal>

我想说的是,hasAge并且hasZipCode是财产的子hasColumn财产。因此,我像下面这样提到它。

:hasAge       rdfs:subPropertyOf :hasColumn
:hasZipCode   rdfs:subPropertyOf :hasColumn

但是,在我的 RDF 图中,我没有任何包含 property 的类hasColumn。我的意思是我没有以下内容:

:Table :hasColumn <literal>

是否允许在 RDF 中定义没有类的属性(例如hasColumn)?

4

1 回答 1

1

我有一堂芝加哥人。它有两个属性 hasAge 和 hasZipCode,下面会提到它们的值。

:ChicagoPerson :hasAge     "30"
               :hasZipCode "60543"

这没有意义。在此代码段中,ChicagoPerson 是一个个体(或资源),并且具有您提到的两个属性的值。

我想说 hasAge 和 hasZipCode 是 hasColumn 属性的子属性。因此,我像下面这样提到它。

:hasAge       rdfs:subPropertyOf :hasColumn
:hasZipCode   rdfs:subPropertyOf :hasColumn

这是执行此操作的正确方法。这意味着,如果您有可用的 RDFS 推理,那么您将拥有以下数据:

:ChicagoPerson :hasAge     "30" ,
               :hasZipCode "60543" ,
               :hasColumn "30", "60543" .

但是,在我的 RDF 图中,我没有任何包含属性 hasColumn 的类。我的意思是我没有以下内容:

:Table :hasColumn <literal>

同样,我认为您混淆了班级和个人的概念。一个类是个体的集合。如果您有可用的 RDFS 推断,那么您在上面编写的子属性公理将允许 RDFS 推理器推断出我提到的其他三元组。您将看到的额外三元组是

:ChicagoPerson :hasColumn "30", "60543" .

不是以表为主题的东西。

是否允许在 RDF 中定义没有类的属性(例如,hasColumn)?

RDF 并没有任何定义属性的概念。RDF 只有三元组的主体、谓词、客体。像 RDFS 和 OWL 这样的模式语言为某些类型的三元组赋予特殊含义,通常是通过为特定谓词赋予含义。例如,在 RDFS 和 OWL 中,谓词rdfs:subPropertyOf具有特殊含义。

您实际上是否在数据集上运行了 RDFS 推理器?

于 2016-08-26T12:32:25.693 回答