Python rdflib-查询持久性存储

Python rdflib-查询持久性存储,python,linked-data,rdflib,Python,Linked Data,Rdflib,我对链接数据和rdflib非常陌生,我完全迷路了。 我正在尝试使用rdflib创建一个带有“Sleepycat”的持久性存储,以加载DBLP数据库rdf文件,然后开始查询它。这就是我所做的: import rdflib graph = rdflib.Graph("Sleepycat") graph.open("C:\Users\Maral\Desktop\Springer-DBLP\Mydblp", create=True) graph.parse("C:\Users\Maral\Deskto

我对链接数据和rdflib非常陌生,我完全迷路了。 我正在尝试使用rdflib创建一个带有“Sleepycat”的持久性存储,以加载DBLP数据库rdf文件,然后开始查询它。这就是我所做的:

import rdflib

graph = rdflib.Graph("Sleepycat")
graph.open("C:\Users\Maral\Desktop\Springer-DBLP\Mydblp", create=True)
graph.parse("C:\Users\Maral\Desktop\dblp.rdf", format = 'xml')
这花了将近2个小时,但现在看起来dblp.rdf已加载、解析并存储在Mydblp中。但是len(graph)返回0,我不知道如何访问和查询数据

我是否遗漏了任何步骤?数据加载是否正确?所有的例子都是关于向图中添加三元组的,但我只想查询已经存在的内容


谢谢。

这里是一个工作示例

from rdflib import ConjunctiveGraph, Namespace, Literal
from rdflib.store import NO_STORE, VALID_STORE

graph = ConjunctiveGraph('Sleepycat')

rt = graph.open("C:\Users\Maral\Desktop\Springer-DBLP\Mydblp", create=False)

if rt == NO_STORE:
    # There is no underlying Sleepycat infrastructure, create it
    graph.open(path, create=True)
else:
    assert rt == VALID_STORE, 'The underlying store is corrupt'

print('Triples in graph before add: ', len(graph))

ontologies = rdflib.Graph()
ontologies.parse('C:\Users\Maral\Desktop\dblp.rdf',format='xml')
for onto in ontologies:
    graph.add(onto)
print ('Triples in graph after add: ', len(graph))

print (graph.serialize(format='xml'))

# close when done, otherwise sleepycat will leak lock entries. 
graph.close()

几天前我也遇到了同样的问题。经过一段时间的实验后,我能够在我的本地triplestore上运行SPARQL查询。 虽然这个问题是一年前提出来的,但我希望我的ans能帮助其他人

以下是我所做的(跳过将三元组添加到三元组存储的部分):


如果这个答案对你有帮助,请将这篇文章标记为已解决
from rdflib import ConjunctiveGraph, Namespace, Literal
import rdflib
from rdflib import plugin
path = './mytriplestore'
graph = ConjunctiveGraph('Sleepycat')
graph.open(path, create = False)

query = """SELECT *
   WHERE {
     ?s ?p ?o.
   }
   Limit 10"""

qres = graph.query(query)
print qres
for row in qres:
    print row