如何在rdflib中添加带有图形添加的图像URL

时间:2015-11-05 07:53:36

标签: python python-2.7 python-3.x rdflib foaf

我正在使用rdflib == 4.1.2。 这是我的代码

>>> g=rdflib.Graph()
>>> s=rdflib.BNode()
>>> FOAF = rdflib.Namespace("http://xmlns.com/foaf/0.1/")
>>> g.bind('foaf', FOAF)
>>> g.add((s, FOAF['img'],"https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcToZGEWvIBFgCiona6d74FtVthl4lkdJg3d61SGy-UCf4qFuDLD"))

我正在接受这种追溯。

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/site-packages/rdflib/graph.py", line 394, in add
    "Object %s must be an rdflib term" % (o,)
AssertionError: Object https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcToZGEWvIBFgCiona6d74FtVthl4lkdJg3d61SGy-UCf4qFuDLD must be an rdflib term

我该如何解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:1)

函数Graph.add期望一个具有三个节点的元组,如graph.py code中所示:

assert isinstance(o, Node)

您可以使用URIRef将上一个参数转换为一个参数(另请参阅documentation的示例):

g.add((s, FOAF['img'],rdflib.URIRef("https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcToZGEWvIBFgCiona6d74FtVthl4lkdJg3d61SGy-UCf4qFuDLD")))