問題タブ [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.
java - 1 つのモデルに 2 つのオントロジーをロードする方法
この問題について他の質問を投稿しました...しかし、私は解決策に近づいていると思います。「dbpedia.owl」のロードでのみ機能するこのコードがあります。他のオントロジー「yago.nt」を追加すると問題が発生します...「java.lang.OutOfMemoryError: Java heap space」のようなエラーが発生します...Xmx値を変更しようとしました(2048mに増やしました)。 .しかし、結果がありません..何をしなければならないのかわかりません...助けてください.. TDB の使用方法を知っている場合は、私のコードに適用されたコードを投稿できますか?
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 が追加されました。
私を助けてください!!どこが間違っているのですか..個人を作成するために使用される手順は間違っていますか? もし、そうなら!それでは、実行時に既知の特定のデータ型を持つリテラルを追加する他の可能な方法は何でしょうか?
dataset - OWL ファイルの変更を Jena TDB データセットと同期する
OntModel として読み取られる OWL ファイルを格納するために JENA TDB を使用しています。同じコードは次のとおりです。
これにより、アプリケーションが実行されていないときにフクロウ ファイルが外部で変更された場合 (特に、フクロウ ファイルから何かを削除した場合)、アプリケーションを再実行すると、データ セットが一貫性のない状態に見えるという問題に直面しています。フクロウ ファイルから削除されたエンティティは、ontModel
(これらの古いエントリが TDB に保持されるため) まだ保持されているため、この場合は望ましくありません。
この種の問題を克服する方法はありますか?データセットが私の OWL ファイルと一致するようにするには? それとも、上記の方法は TDB を作成する正しい方法ではありませんか?
jena - TDB で大規模な Jena モデルをフィルタリングする方法
メモリに収まらない大きな RDF モデルがあります。現在、全体を TDB にロードしていますが、サブグラフ (サブクラスまたは「ルート」概念のタイプであるすべてのリソースに関するすべてのプロパティ) のみに焦点を当てて、代わりにフィルター処理したいと考えています。
私が試みたのは、関心のあるグラフのサブセットを記述する完全な TDB モデルに対して DESCRIBE ステートメントを実行することです ({ ?x rdf:type/rdfs:subClassOf* ?type })。私が抱えている問題は2つあります。
小さい [サンプル] データセットでは、DESCRIBE ステートメントは完了しますが、結果のモデルを TDB に書き戻す方法がわかりません (他のすべてのデータを破棄したい)。tdbModel.setDefaultModel() を呼び出そうとしましたが、例外がスローされます。そこで、私が今行っていることは、2 番目の TDB ロケーションを作成し、デフォルト モデルを取得してから、DESCRIBE ステートメントの結果をこの別のモデルに追加することです。より良い方法はありますか?
完全なデータセットでは、DESCRIBE ステートメントは 50 万を超えるトリプルになり、完了せずに数時間実行されていると思います。これを行うより効率的な方法はありますか?
java - Apache TDB は RDF データをどのように保存しますか?
Apache Web サイトによると、TDB は「1 台のマシンで高性能 RDF ストアとして使用できます」。ドキュメントを読んでも、どこに何かが保存されているかわかりません。このチュートリアルで概説されているように、定義されたディレクトリ内の独自のファイルに各リソースを格納するだけですか? もしそうなら、それはあまりうまくスケーリングしないようです。
jena - tdbloader.bat を使用して RDF ファイルをアップロードし、tdbquery.bat を使用してクエリを実行する
tdbloader.bat
(C:\apache-jena-2.10.0\bat
私の場合は)を使用してRDFファイルをアップロードしたい。私のタートル ファイルは にありC:\apache-jena-2.10.0
、名前はtest.ttl
. を使用してタートルファイルをロードするコマンドラインは何tdbloader.bat
ですか? ロードされた後、クエリを実行するコマンドラインは何tdbquery.bat
ですか?
次のコマンドを使用しました-
しかし、FileNotFound 例外が返されました。