存储RDFlib创建的使用相同bnode的不同图形

2024-06-14 18:59:46 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

reference是我使用:4s-httpd -p 8000 reference创建的图的名称,descriptor是要添加的图。你知道吗

#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三元组呢?你知道吗


Tags: self名称formatstatusxmlcontentrdflibgraph