問題タブ [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 - JenaTransactionException: 現在トランザクション中 (場所:/pathtodb/)
RDF データベースと同様に、アプリケーション バックエンドを作成しています。
バックエンドとして Jena TDB を使用しています。この例外が発生しています
これがこのメソッドの例外が発生した私のコードです。コメントでマークしました-
datasetManager.getDs() メソッド -
getOntModel() メソッド -
createAdminData メソッド -
再び createAllOntClasses() および createAllProperties(); ontModel を使用していくつかの ontclasses とプロパティを作成しています。
getDs() メソッドでわかるように、書き込みトランザクションを作成し、終了トランザクション (ds.end()) も含めました。getOntModel()メソッドのdb書き込み部分はすべてデータベースに反映されているのでfusekiで確認しました。その後、読み取りトランザクションを作成していますが、この例外がスローされています。
問題の特定にご協力ください。また、Spring MVC のコンテキスト起動時に db を初期化するなどのシナリオに対処するより良い方法がある場合。
sparql - 理由の後にJena TDBを更新します
私は Jena を使用しており、新しいオントロジーを自分の tdb に更新したいと考えています。例えば。オントロジーに 100 行あります。いくつかのルールを追加して推論を実行すると、現在 105 行あります。そして、tdb でこれらの 5 つの追加行を更新する必要があります。どうすればこれを行うことができますか?
私はそれをググってみましたが、2つの方法が見つかりました。1 つは sparql を使用して を更新し、もう 1 つは tdb を切り捨てて新しいモデルを追加します。
他に良い解決策はありますか?
ありがとうございます
--
コード
繰り返しますが、私の問題は、tdb への新しい「infmodel」をどのように処理するかです。新しい事実だけを更新したい。
これは、tdb からモデルを取得する方法です。
jena - Jena TDB 、tdb の作成中に格納されたトリプルの数を確認します
こんにちは、Java api を使用して tdb の作成中に格納されているトリプルの数を確認できますか? turtle で rar ファイルを使用して TDB ファクトリを実行していますが、ディレクトリにファイルを作成している間、格納されているトリプルの数を確認できません。どうすればこの問題を解決できますか?
sparql - Jena TDB 、フィルターが機能しない
ファイルからトリプルのデータセットを保存するために Jena TDB を使用しています。を使用して SPARQL クエリを TDB に送信しようとすると問題が発生しますfilter
。たとえば、次のクエリは機能します。
しかし、これはしません:
このクエリの目的は、 (言語を無視して)?ob
からを見つけることです。や など"NameOfLabel"
を試しましたが、うまくいきませんでした。これどうやってするの?regex
str(?pr)
更新(回答に基づく)
を使用しようとするとfilter( str(?pr) = "NameOfLabel" )
、例外が発生します。スタック トレースは次のとおりです。
編集II:
java - 永続的に実行される Sparql クエリ
Jena での SPARQL クエリの実行に苦労しています。その結果、理解できない動作が発生します...
Esco オントロジー ( https://ec.europa.eu/esco/download )にクエリを実行しようとしており、TDB を使用してオントロジーを読み込んでモデルを作成しています (用語が正確でない場合は申し訳ありませんが、私はあまり経験がありません)。
私の目標は、以前に抽出したテキストと一致するオントロジー内の役職 uri を見つけることです: 例: 抽出された用語: " acuponcteur " -> オントロジーのラベル: "Acuponcteur"@fr -> uri: < http:// ec.europa.eu/esco/occupation/14918 >
私が「奇妙な振る舞い」と呼んでいるものは、クエリを実行するときに得られる (または得られない) 結果に関連しています。
次のクエリを実行する場合:
1分後に結果が得られます:
ただし、 DISTINCT キーワードを追加しようとすると、次のようになります。
クエリが永遠に実行され続けるようです (20 分待ってから実行を停止しました...)
最初のクエリと同じクエリを実行すると (したがって DISTINCT なしで)、一致する別のラベル (オントロジーにないと確信しているラベル) を使用すると、同じ動作が得られます。空の結果を期待している間、それは(そのように見える)実行を続け、しばらくするとそれを強制終了する必要があります(もう一度、最大で20分待ちました):
私が実行しているコードに問題があるのでしょうか? そこにそれがある:
ここで何が間違っていますか?何か案が?
ありがとう!
java - ブラウザーで SPARQL クエリ エンドポイントを起動するとエラーが発生する
質問があります:
この Java コードを使用して Jena TDB にロードする 2 つの RDF ファイルがあります。
この投稿https://stackoverflow.com/questions/24798024/how-i-can-use-fuseki-with-jena-tdbで提案されているように、CMD で次のコマンドを起動します。
fuseki-server --update --loc C:\tdb /ds
localhost:3030 に別のページが表示されます。特に、データセットを選択してクエリを実行できる「コントロール パネル」ページが表示されます。
今、私はこのドキュメントhttp://jena.apache.org/documentation/serving_data/を読んでいます。SPARQL クエリ エンドポイントを起動したい場合は、http:// host /dataset/query パスをブラウザ。しかし、このパスを起動すると (
)、次のエラーが表示されます。
なんで?Java コードで Fuseki サーバーを起動する Java メソッドを見つけるために、この調査を行っています。出来ますか?
java - イエナ TDB/布石公演
ローカルの Fuseki SPARQL エンドポイントを使用して、Jena TDB ストアでかなり高速に実行される単純な SPARQL クエリがあります。
完了するまでにおそらく 10 秒かかり、いくつかの owl:ObjectProperty およびその他のプロパティが含まれます。次のクエリを使用してオブジェクト プロパティのみを表示する場合 (追加のトリプルと末尾の 1 の制限に注意してください):
次に、答えがすぐに表示され、前に示したオブジェクト プロパティの 1 つだけが表示されることを期待します。結局のところ、これは前のクエリをさらに改良しただけです。ただし、クエリには何倍もの時間がかかり、数秒ではなく数分後に終了します。
ここで戸惑います。2 番目のクエリに時間がかかるのはなぜですか?
Fuseki バージョン 1.1.0 を使用しています。私のfuseki構成ファイルは次のとおりです。