我有一个类Person
。它有两个性质,hasAge
和hasZipCode
。
:Person :hasAge <literal>
:hasZipCode <literal>
我想说hasAge
和hasZipCode
是hasColumn
属性的子属性。因此,我像下面这样提到它。
:hasAge rdfs:subPropertyOf :hasColumn
:hasZipCode rdfs:subPropertyOf :hasColumn
然而,在我的RDF图中,我没有任何包含属性hasColumn
的类。我的意思是我没有像这样的东西:
:Table :hasColumn <literal>
允许在RDF中定义属性(例如,hasColumn
)而不需要类吗?
我有一节芝加哥歌剧课。它有两个属性:hasAge和
: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" .
不是以Table为主语的东西。
在RDF中是否允许定义一个属性(例如,hasColumn)而不包含课吗?
RDF实际上没有任何定义属性的概念。RDF只有以下形式的三元组:主题、谓词、对象。像RDFS和OWL这样的模式语言为某些类型的三元组赋予特殊的意义,通常是通过为特定的谓词赋予意义。例如,在RDFS和OWL中,谓词 RDFS:subPropertyOf具有特殊含义。
你的数据集上是否运行了一个RDFS推理器?