6
RDFlibを使用してRDF Nトリプル形式に単純なタブ区切りのtxtファイル(ヘッダーの件名、述語、オブジェクトを含む)を変換するにはどうすればよいですか?txtファイルを入力として使用してRDFファイルを作成する
RDFlibを使用してRDF Nトリプル形式に単純なタブ区切りのtxtファイル(ヘッダーの件名、述語、オブジェクトを含む)を変換するにはどうすればよいですか?txtファイルを入力として使用してRDFファイルを作成する
それほど複雑ではありません。まず、いくつかの必要な輸入品:
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> .
Nitpick:N3形式でグラフをシリアライズしています。元のポスターがN-Triplesを求めたので、私はちょうどそれらの2つのフォーマットが同じではないことを指摘したいと思った。 –
@JeenBroekstra:ありがとう、私は慎重に十分に投稿を読んでいない。私は私の答えを訂正します。 – DzinX