2016-10-18 18 views
0

私はリンクされたデータとrdflibにかなり新しく、かなり失われています。 私はDBLPデータベースのRDFファイルをロードするために「Sleepycatの」は永続ストアを作るためにrdflibを使用し、it.Thisは私がやったで照会を開始しようとしています:rdflib - 永続ストアのクエリ

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(グラフ)は0を返します。データにアクセスしてクエリする方法はわかりません。

手順がありません。データは正しくロードされていますか?すべての例は、グラフにトリプルを追加することですが、私はすでにそこにあるものを照会したいだけです。

ありがとうございます。ここ

答えて

2

は、私は数日前とまったく同じ問題を経た、

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() 
+0

解決として、この答えはあなたを助けている場合、このポストをマークしてください –

1

実施例です。かなりの実験の後、私は自分のローカルトリプルストアで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 
関連する問題