RDFLib:获取命名空间下的所有URI

RDFLib:获取命名空间下的所有URI,rdf,rdflib,linked-data,Rdf,Rdflib,Linked Data,如何获取RDFlib中命名空间下的URI列表 例如,我们可以做到: from rdflib.namespace import FOAF 但是我们如何找出FOAF中可用的URI呢 事实上,有几个名称空间(RDF、RDF、FOAF等等),我发现很难探索每个名称空间中有哪些URI,以及使用哪一个。比如说,如果我想表达归属关系,我应该使用RDFS.member还是其他什么?是否有链接数据的标准,或者它仍然是临时的 我是RDFs新手,如果这是一个明显的问题,我很抱歉 谢谢 虹膜只是不透明的标识符。当我们

如何获取RDFlib中命名空间下的URI列表

例如,我们可以做到:

from rdflib.namespace import FOAF
但是我们如何找出FOAF中可用的URI呢

事实上,有几个名称空间(RDF、RDF、FOAF等等),我发现很难探索每个名称空间中有哪些URI,以及使用哪一个。比如说,如果我想表达归属关系,我应该使用RDFS.member还是其他什么?是否有链接数据的标准,或者它仍然是临时的

我是RDFs新手,如果这是一个明显的问题,我很抱歉


谢谢

虹膜只是不透明的标识符。当我们谈到链接数据和语义网时,
rdfs:member
分配给属性的含义是在语义网之外定义的(希望通过良好的文档进行定义,当然,文档应该作为
rdfs:comment
或类似内容与属性相关联),并通过用法进行定义。对于
rdfs:member
,说明来自rdfs建议:

rdfs:member是所有容器成员资格属性的超级属性rdf:Property的实例,即每个容器成员资格属性都与属性rdfs:member有rdfs:subpertyof关系

rdfs:member的rdfs:domain是rdfs:Resource。rdfs:member的rdfs:range是rdfs:Resource

同一文档中描述了容器成员资格属性:

rdfs:ContainerMembershipProperty类的实例属性为rdf:_1、rdf:_2、rdf:_3。。。用于声明资源是容器的成员。rdfs:ContainerMembershipProperty是rdf:Property的一个子类。rdfs:ContainerMembershipProperty的每个实例都是rdfs:member属性的rdfs:subperty

给定一个容器C,三元组的形式为:

C rdf:_nnn否

其中nnn是大于0且无前导零的整数的十进制表示形式,表示O是容器C的成员

容器成员属性可以应用于容器以外的资源

读到最后一行时,我确实有点惊讶,但由于成员属性和
rdfs:member
可以应用于容器以外的资源,因此在您自己的数据结构上使用它们似乎是可以接受的

即使如此,定义自己的更具体的属性并简单地断言它是
rdfs:member
的子属性可能更合适。例如,您可以指定将民族国家与某个多国联盟关联的
politics:memberStateOf
属性是
rdfs:subpertyof rdfs:member

在其他情况下,查阅词汇表文档也是一个好主意。例如,在RDFlib页面上,确实包含一些FOAF的使用:

from rdflib import RDF
...
# Create a namespace object for the Friend of a friend namespace.
FOAF = Namespace("http://xmlns.com/foaf/0.1/")
...
# Add triples using store's add method.
store.add((donna, RDF.type, FOAF["Person"]))
store.add((donna, FOAF["nick"], Literal("donna", lang="foo")))
这里使用FOAF的方式(这与您的问题中有点不同,现在可能有一个用于它的库)以及传递字符串的方式取决于是否知道应该存在哪些uri,并且该信息在中是可用的。虽然
RDF
名称空间似乎定义了一些符号常量(例如
RDF.type
),但表示
RDF.type
实际上等同于
RDF['type']

命名空间中的完全限定URI可以通过属性或对命名空间实例的字典访问来构造:

  >>> owl.seeAlso
  rdflib.term.URIRef(u'http://www.w3.org/2002/07/owl#seeAlso')
  >>> owl['seeAlso']
  rdflib.term.URIRef(u'http://www.w3.org/2002/07/owl#seeAlso')

谢谢你,约书亚!指向RDFS和FOAF文档的指针非常有用!我确实在想我是否应该自己定义属性。这个想法太棒了!我希望rdflib提供一个函数来列出一个名称空间下的所有属性:)另一方面,由于有这么多的RDFs名称空间,没有一个简单的方法来探索和导航,很快我们将需要所有RDF名称空间的RDF演示:)@freesoil我不知道rdflib是否包含类似的内容,但是Jena定义了许多名称空间中的属性和类的常量,例如。Jena包括一个自动生成这些类的工具。也许你可以用rdflib做一些类似的事情。太好了,词汇正是我所渴望的:)谢谢你,约书亚!