我有一个班级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
)?
答案 0 :(得分:1)
我有班级ChicagoPerson。它有两个属性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图表中,我没有任何包含的类 property hasColumn。我的意思是我没有像下面这样的东西:
:Table :hasColumn <literal>
同样,我认为你混淆了阶级和个人的想法。班级是个人的集合。如果你有RDFS推理可用,那么你上面写的子属性公理将允许RDFS推理器推断出我提到的额外三元组。您将看到的额外三元组是
:ChicagoPerson :hasColumn "30", "60543" .
不是表格作为主题。
RDF中是否允许在没有a的情况下定义属性(例如hasColumn) 类?
RDF并不具备定义属性的任何概念。 RDF只有主题,谓词,对象形式的三元组。像RDFS和OWL这样的模式语言通常通过为特定谓词赋予意义来为某些类型的三元组赋予特殊含义。例如,在RDFS和OWL中,谓词 rdfs:subPropertyOf 具有特殊含义。
您确实在数据集上运行了RDFS推理器吗?