我想要修改现有的rdf图表。我想在 n 变量中添加信息。
# source graph
g = source.graph
#new entry
n = (URIRef(obj.pid), URIRef('info:symplectic/symplectic-elements:def/model#hasPublicUrl'), URIRef('http://itemlocation.com'))
#add to graph
g.add(n)
#save back to source
source.graph = g
输出:
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:fedora-model="info:fedora/fedora-system:def/model#"
xmlns:ns1="info:symplectic/symplectic-elements:def/model#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="info:fedora/sympOE:mq5zf">
<fedora-model:hasModel rdf:resource="info:fedora/emory-control:PublishedArticle-1.0"/>
</rdf:Description>
<rdf:Description rdf:about="sympOE:mq5zf">
<ns1:hasPublicUrl rdf:resource="http://itemlocation.com"/>
</rdf:Description>
</rdf:RDF>
一切都差不多正确,但我希望它在两个方面有所不同:
感谢您的帮助!
答案 0 :(得分:1)
我希望只有一个包含两个条目的rdf:Description部分。
您似乎在info:fedora/sympOE:mq5zf
和sympOE:mq5zf
有两个URI。
尝试将新的输入行重写为:
uri = URIRef('info:fedora/' + obj.pid)
g.add(
(uri, URIRef('info:symplectic/symplectic-elements:def/model#hasPublicUrl'), URIRef('http://itemlocation.com'))
)
我希望ns1别名为symp
您需要将命名空间绑定到图表。请参阅this page底部的示例。
看起来像是:
from rdflib import Namespace
ns = Namespace('http://localhost/symp#')
g.bind('symp', ns)