問題タブ [tdb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
236 参照

java - 1 つのモデルに 2 つのオントロジーをロードする方法

この問題について他の質問を投稿しました...しかし、私は解決策に近づいていると思います。「dbpedia.owl」のロードでのみ機能するこのコードがあります。他のオントロジー「yago.nt」を追加すると問題が発生します...「java.lang.OutOfMemoryError: Java heap space」のようなエラーが発生します...Xmx値を変更しようとしました(2048mに増やしました)。 .しかし、結果がありません..何をしなければならないのかわかりません...助けてください.. TDB の使用方法を知っている場合は、私のコードに適用されたコードを投稿できますか?

0 投票する
1 に答える
844 参照

sparql - Jena OntMODEl に個人を追加してアクセスします。例外 ObjectFileStorage.read ありえないほど大きなオブジェクト

データ型プロパティの範囲から実行時に既知の特定のデータ型を持つ DatatypeProperty の値/リテラル​​を追加する目的で、既存のオントロジー (OntModel) に個人を追加しようとしています。私の OntModel は、データセットにリンクされた TDBStore に支えられています (そのため、OntModel に加えられた変更はすべて、私の TDBStore/データセットに反映されます)。個人は次のコードに従って追加されます。

コードが実行されると、リテラルが追加され、sparql クエリが追加されます。

次の結果が得られます。

しかし、2回目の実行で同じクエリを使用しようとすると(今回は個人を作成せずに)、プログラムが結果を表示/アクセスしようとすると、次の例外が発生します:

注: 追加された個人を表示する他のクエリは正常に実行されます。ただし、「SELECT * WHERE { ?s ?o 1230}」のようなクエリでも同じエラーが発生します。

また、次のようなクエリ: "SELECT * WHERE { ?s ?o 10000.0}" OR "SELECT * WHERE { ?s ?o 10000}" エラーは発生しませんが、結果には何も返されません。

次のステートメントを使用して、リテラル 10000 が追加されました。

私を助けてください!!どこが間違っているのですか..個人を作成するために使用される手順は間違っていますか? もし、そうなら!それでは、実行時に既知の特定のデータ型を持つリテラルを追加する他の可能な方法は何でしょうか?

0 投票する
1 に答える
369 参照

dataset - OWL ファイルの変更を Jena TDB データセットと同期する

OntModel として読み取られる OWL ファイルを格納するために JENA TDB を使用しています。同じコードは次のとおりです。

これにより、アプリケーションが実行されていないときにフクロウ ファイルが外部で変更された場合 (特に、フクロウ ファイルから何かを削除した場合)、アプリケーションを再実行すると、データ セットが一貫性のない状態に見えるという問題に直面しています。フクロウ ファイルから削除されたエンティティは、ontModel (これらの古いエントリが TDB に保持されるため) まだ保持されているため、この場合は望ましくありません。

この種の問題を克服する方法はありますか?データセットが私の OWL ファイルと一致するようにするには? それとも、上記の方法は TDB を作成する正しい方法ではありませんか?

0 投票する
0 に答える
130 参照

jena - TDB で大規模な Jena モデルをフィルタリングする方法

メモリに収まらない大きな RDF モデルがあります。現在、全体を TDB にロードしていますが、サブグラフ (サブクラスまたは「ルート」概念のタイプであるすべてのリソースに関するすべてのプロパティ) のみに焦点を当てて、代わりにフィルター処理したいと考えています。

私が試みたのは、関心のあるグラフのサブセットを記述する完全な TDB モデルに対して DESCRIBE ステートメントを実行することです ({ ?x rdf:type/rdfs:subClassOf* ?type })。私が抱えている問題は2つあります。

  1. 小さい [サンプル] データセットでは、DESCRIBE ステートメントは完了しますが、結果のモデルを TDB に書き戻す方法がわかりません (他のすべてのデータを破棄したい)。tdbModel.setDefaultModel() を呼び出そうとしましたが、例外がスローされます。そこで、私が今行っていることは、2 番目の TDB ロケーションを作成し、デフォルト モデルを取得してから、DESCRIBE ステートメントの結果をこの別のモデルに追加することです。より良い方法はありますか?

  2. 完全なデータセットでは、DESCRIBE ステートメントは 50 万を超えるトリプルになり、完了せずに数時間実行されていると思います。これを行うより効率的な方法はありますか?

0 投票する
2 に答える
1234 参照

java - Apache TDB は RDF データをどのように保存しますか?

Apache Web サイトによると、TDB は「1 台のマシンで高性能 RDF ストアとして使用できます」。ドキュメントを読んでも、どこに何かが保存されているかわかりません。このチュートリアルで概説されているように、定義されたディレクトリ内の独自のファイルに各リソースを格納するだけですか? もしそうなら、それはあまりうまくスケーリングしないようです。

0 投票する
1 に答える
1388 参照

jena - tdbloader.bat を使用して RDF ファイルをアップロードし、tdbquery.bat を使用してクエリを実行する

tdbloader.batC:\apache-jena-2.10.0\bat私の場合は)を使用してRDFファイルをアップロードしたい。私のタートル ファイルは にありC:\apache-jena-2.10.0、名前はtest.ttl. を使用してタートルファイルをロードするコマンドラインは何tdbloader.batですか? ロードされた後、クエリを実行するコマンドラインは何tdbquery.batですか?

次のコマンドを使用しました-

しかし、FileNotFound 例外が返されました。