0

我在 python 中使用 RDFLib 创建了不同的图,它们共享相同的 Bnode。每个 BNode 都有一个特定的名称。我现在正在尝试使用 4store 和 http4store 将所有图表存储在一个图表中。我面临的问题是,在将图形添加到 4store 数据库后,Bnode 发生了变化并被分配了不同的名称,这是一个相当大的问题,因为所有图形共享相同的 Bnode。因此,每次收到新图表时,我都会将其存储如下:

self.insert(descriptor,"reference",format="xml")

参考是我使用创建的图的名称:4s-httpd -p 8000 reference描述符是要添加的图。

#the insert function is as follow
     def insert(self, content, graph, format="xml"):
            r = self.store.append_graph(uri=graph, content=content, content_type=format)
            if not (r.status == 201 or r.status == 200):
                raise TripleStoreInsertException(content)

然后使用 SPARQL 查询我得到了包含不同 Bnodes 名称的三倍存储。我还尝试用旧图解析每个新图,以在存储之前使用 RDFLib 解析器创建一个图,但在 BNode 发生更改时我得到了相同的结果。

我的问题是:如何使用完全相同的 Bnode 存储图形,如果不可能,RDFLib 中是否有替代方案?

同样由于关于 4store 的文档湖,什么是对 python 友好的最好的 RDF Triplestores?

4

0 回答 0