1

トリプルを含む N3 データセットがあります。このデータセットをハッシュ分割したいと思います。OWL/NT/N3 データセットをハッシュ分割するハッシュ パーティショナーはありますか? そうでない場合は、効果的な方法でファイルの解析を進める方法に関するコード/ヒントを教えてください。

4

1 に答える 1

2

RDF ファイルの解析は、結果のトリプルを効率的な方法で保存することとはまったく別のタスクです。RDF ファイルを単純に解析するには、数多くある RDF 処理ライブラリの 1 つを使用できますが、これは問題なく機能します。(StackOverflow は実際にはツールのリストの場所ではありませんが、http ://answers.semanticweb.comの「どのツールとライブラリを使用してセマンティック Web アプリケーションを開発しますか?」という質問には、たくさんのリストがあります。)コメント:

LUBM (Lehigh University Benchmak) のデータ ジェネレーターを使用して OWL データセットを生成し、オンライン コンバーターを使用して N3 形式に変換しました。ここで、データセットをハッシュ パーティションし、各パーティションをワーカー マシンに保存したいと思います。自分で実装する前に、そのようなライブラリがあるかどうかを知りたかったのです。利用可能なライブラリのいくつかを教えてください。効率については、私が持っているデータセットが非常に大きく、シーケンシャル ハッシュ パーティショナーを使用すると、タスクを完了するのに多くの時間がかかる可能性があるため、言及しました。

ここで注意すべき重要な点が少なくとも 2 つあります。

  1. OWL は RDF と同じではありませんが、OWL は RDF でシリアライズできます。すでに RDF で OWL をシリアライズしているようです。
  2. RDF は、さまざまな形式でシリアライズできます。最も一般的なものの 1 つは RDF/XML ですが、N3、Turtle (N3 のサブセット)、および N-Triples (NT) もあります。

N-Triples は行ベースの形式で、1 行に 1 つのトリプルしかありません。データを 3 つの部分に分割して送信する必要がある場合は、それを N トリプルに変換するだけで、kトリプルがk行に配置されます。次に、最初のk/3をワーカー A に送信し、2 番目のk/3をワーカー B に送信し、最後のk/3をワーカー B に送信することができます。 A、次に B へのライン、そして C へのライン。これは N-Triples の大きな利点の 1 つです。データセットの分割または結合が非常に安価です。例として、この DBpedia クエリとその結果を NTriplesで考えてみます。. 3 行、3 行、4 行の 3 つのチャンクに分割して、ワーカーに送信するだけです。

construct where { 
  dbpedia:Mount_Monadnock ?prop ?obj
}
limit 10 
<http://dbpedia.org/resource/Mount_Monadnock>   <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>   <http://schema.org/Mountain> .
<http://dbpedia.org/resource/Mount_Monadnock>   <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>   <http://dbpedia.org/ontology/NaturalPlace> .
<http://dbpedia.org/resource/Mount_Monadnock>   <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>   <http://www.opengis.net/gml/_Feature> .
<http://dbpedia.org/resource/Mount_Monadnock>   <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>   <http://dbpedia.org/class/yago/GeologicalFormation109287968> .
<http://dbpedia.org/resource/Mount_Monadnock>   <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>   <http://umbel.org/umbel/rc/Mountain> .
<http://dbpedia.org/resource/Mount_Monadnock>   <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>   <http://dbpedia.org/ontology/Mountain> .
<http://dbpedia.org/resource/Mount_Monadnock>   <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>   <http://dbpedia.org/ontology/Place> .
<http://dbpedia.org/resource/Mount_Monadnock>   <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>   <http://dbpedia.org/class/yago/Object100002684> .
<http://dbpedia.org/resource/Mount_Monadnock>   <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>   <http://schema.org/Place> .
<http://dbpedia.org/resource/Mount_Monadnock>   <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>   <http://www.w3.org/2002/07/owl#Thing> .
于 2013-11-05T16:10:04.543 に答える