4

PythonでParselargeRDFのコードを使用してかなり大きなNTriplesファイルを解析しようとしています

raptorとPython用のredland-bindingsをインストールしました。

import RDF
parser=RDF.Parser(name="ntriples") #as name for parser you can use ntriples, turtle, rdfxml, ...
model=RDF.Model()
stream=parser.parse_into_model(model,"file:./mybigfile.nt")
for triple in model:
    print triple.subject, triple.predicate, triple.object

ただし、プログラムがハングし、すぐに起動しないため、ファイル全体をメモリなどにロードしようとしているのではないかと思います。

誰かがこれを解決する方法を知っていますか?

4

1 に答える 1

2

索引付けされていないインメモリー・ストア (RDF.Model() のデフォルト) を読み取っているため、低速です。だからどんどん遅くなっていく。N-Triples の解析はファイルからストリーミングされますが、すべてがメモリに吸い込まれることはありません。

ストレージ モデルの概要については、 Redland ストレージ モジュールのドキュメントを参照してください。ここでは、おそらくストレージtypeの「ハッシュ」とhash-typeメモリが必要です。

s = RDF.HashStorage("abc", options="hash-type='memory'")
model = RDF.Model(s)

(未検証)

于 2013-01-30T22:02:17.797 に答える