使用RDFlib批量向图形添加三元组

4
我正在解析三元组文件,并将三元组添加到我的本地三元组存储中。
代码片段:
graph = ConjunctiveGraph('Sleepycat')
graph.open("mytriplestore", create=False)
g = Graph()
g.parse("filename.ttl", format="ttl") 
for t in g:
    graph.add(t)

除了逐个遍历每个三元组之外,是否有可能批量将解析后的内容添加到三元存储中?

我目前尝试过的方法:
尝试1:

graph.add(g)

错误:

File "/usr/local/lib/python2.7/dist-packages/rdflib/graph.py", line 1345, in add
s,p,o,c = self._spoc(triple_or_quad, default=True)
File "/usr/local/lib/python2.7/dist-packages/rdflib/graph.py", line 1326, in _spoc
return s,p,o,c
UnboundLocalError: local variable 's' referenced before assignment

尝试 2:

graph.addN(g)        

错误:

File "/usr/local/lib/python2.7/dist-packages/rdflib/graph.py", line 1363, in addN
(s, p, o, self._graph(c)) for s, p, o, c in quads if
File "/usr/local/lib/python2.7/dist-packages/rdflib/store.py", line 221, in addN
for s, p, o, c in quads:
File "/usr/local/lib/python2.7/dist-packages/rdflib/graph.py", line 1363, in <genexpr>
(s, p, o, self._graph(c)) for s, p, o, c in quads if

数值错误:需要三个以上的值来解包


graph = graph.add(g) 不起作用吗? - UninformedUser
@AKSW 不行,已经尝试过了。 - RDangol
@RDangol,也许可以使用.addN()或类似的方法。 - Stanislav Kralin
@StanislavKralin 那也不起作用。 - RDangol
@RDangol 绑定并没有添加图形或导致异常?从文档中可以看出,Graph::__add__ 应该返回一个新的图形,它是当前图形和另一个图形的并集。 - UninformedUser
@AKSW 我已经更新了问题并提供了详细信息。 - RDangol
1个回答

3
添加图表应该就能解决问题:
graph += g

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接