如何使用 RDFLib 添加复合节点?
How to add a compound node using RDFLib?
我刚开始使用 Python 的 RDFLib(对于不正确使用术语等表示歉意!),我正在寻找一种方法将以下内容添加到节点:
prov:qualifiedAssociation [ a prov:Association ; prov:agent result:user-A-Person ; prov:hadRole "author, committer"@en ] ;
我正在尝试重新创建包含方括号的现有序列化数据结构。我已经设法自己创建了图形,但是如何以这种方式添加它呢?我试过使用 RDFLib Collection,但到目前为止运气不好。有办法吗?
非常感谢!
方括号是怎么Turtle, and other related RDF serialisations, represent blank nodes。如果您重新创建了结构并为该资源提供了一个 URI,它就不会这样写,这很好。
要在 rdflib 中创建一个,请使用 BNode
class。例如:
#!/usr/bin/python3
import rdflib
g = rdflib.Graph()
n = rdflib.BNode()
g.add((rdflib.URIRef('.'), rdflib.DC.hasPart, n))
g.add((n, rdflib.DC.title, rdflib.Literal('An anonymous resource')))
print(g.serialize(format='turtle').decode('utf-8'))
将生成:
@prefix ns1: <http://purl.org/dc/elements/1.1/> .
<.> ns1:hasPart [ ns1:title "An anonymous resource" ] .
这不是唯一可能的表示;例如,N-Triples 表示使用 _:
前缀的相同资源:
_:genid1 <http://purl.org/dc/elements/1.1/title> "An anonymous resource" .
<file:///tmp/> <http://purl.org/dc/elements/1.1/hasPart> _:genid1 .
我刚开始使用 Python 的 RDFLib(对于不正确使用术语等表示歉意!),我正在寻找一种方法将以下内容添加到节点:
prov:qualifiedAssociation [ a prov:Association ; prov:agent result:user-A-Person ; prov:hadRole "author, committer"@en ] ;
我正在尝试重新创建包含方括号的现有序列化数据结构。我已经设法自己创建了图形,但是如何以这种方式添加它呢?我试过使用 RDFLib Collection,但到目前为止运气不好。有办法吗?
非常感谢!
方括号是怎么Turtle, and other related RDF serialisations, represent blank nodes。如果您重新创建了结构并为该资源提供了一个 URI,它就不会这样写,这很好。
要在 rdflib 中创建一个,请使用 BNode
class。例如:
#!/usr/bin/python3
import rdflib
g = rdflib.Graph()
n = rdflib.BNode()
g.add((rdflib.URIRef('.'), rdflib.DC.hasPart, n))
g.add((n, rdflib.DC.title, rdflib.Literal('An anonymous resource')))
print(g.serialize(format='turtle').decode('utf-8'))
将生成:
@prefix ns1: <http://purl.org/dc/elements/1.1/> .
<.> ns1:hasPart [ ns1:title "An anonymous resource" ] .
这不是唯一可能的表示;例如,N-Triples 表示使用 _:
前缀的相同资源:
_:genid1 <http://purl.org/dc/elements/1.1/title> "An anonymous resource" .
<file:///tmp/> <http://purl.org/dc/elements/1.1/hasPart> _:genid1 .