2012-01-25 30 views

答えて

10

それほど複雑ではありません。まず、いくつかの必要な輸入品:

from StringIO import StringIO 
from rdflib import Graph, URIRef 

ここでは、ファイルの作成を避けるためにStringIOを使用しています。グラフを作成して、すべてのトリプルを読み込むその後

contents = '''\ 
subject1\tpredicate1\tobject1 
subject2\tpredicate2\tobject2''' 
tabfile = StringIO(contents) 

graph = rdflib.Graph() 

for line in tabfile: 
    triple = line.split()    # triple is now a list of 3 strings 
    triple = (URIRef(t) for t in triple) # we have to wrap them in URIRef 
    graph.add(triple)     # and add to the graph 

は今、あなたは全体のグラフを持っている代わりに、私はいくつかの内容とこれらのコンテンツを持つファイルのようなオブジェクトをリストアップします(あなたが十分な記憶を持っていると仮定して、もちろん)。今すぐ印刷することができます:

print graph.serialize(format='nt') 

# prints: 
# <subject1> <predicate1> <object1> . 
# <subject2> <predicate2> <object2> . 
+0

Nitpick:N3形式でグラフをシリアライズしています。元のポスターがN-Triplesを求めたので、私はちょうどそれらの2つのフォーマットが同じではないことを指摘したいと思った。 –

+0

@JeenBroekstra:ありがとう、私は慎重に十分に投稿を読んでいない。私は私の答えを訂正します。 – DzinX

関連する問題