問題タブ [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 投票する
0 に答える
348 参照

java - JenaTransactionException: 現在トランザクション中 (場所:/pathtodb/)

RDF データベースと同様に、アプリケーション バックエンドを作成しています。

バックエンドとして Jena TDB を使用しています。この例外が発生しています

これがこのメソッドの例外が発生した私のコードです。コメントでマークしました-

datasetManager.getDs() メソッド -

getOntModel() メソッド -

createAdminData メソッド -

再び createAllOntClasses() および createAllProperties(); ontModel を使用していくつかの ontclasses とプロパティを作成しています。

getDs() メソッドでわかるように、書き込みトランザクションを作成し、終了トランザクション (ds.end()) も含めました。getOntModel()メソッドのdb書き込み部分はすべてデータベースに反映されているのでfusekiで確認しました。その後、読み取りトランザクションを作成していますが、この例外がスローされています。

問題の特定にご協力ください。また、Spring MVC のコンテキスト起動時に db を初期化するなどのシナリオに対処するより良い方法がある場合。

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

sparql - 理由の後にJena TDBを更新します

私は Jena を使用しており、新しいオントロジーを自分の tdb に更新したいと考えています。例えば。オントロジーに 100 行あります。いくつかのルールを追加して推論を実行すると、現在 105 行あります。そして、tdb でこれらの 5 つの追加行を更新する必要があります。どうすればこれを行うことができますか?

私はそれをググってみましたが、2つの方法が見つかりました。1 つは sparql を使用して を更新し、もう 1 つは tdb を切り捨てて新しいモデルを追加します。

他に良い解決策はありますか?

ありがとうございます

--

コード

繰り返しますが、私の問題は、tdb への新しい「infmodel」をどのように処理するかです。新しい事実だけを更新したい。

これは、tdb からモデルを取得する方法です。

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

jena - Jena TDB 、tdb の作成中に格納されたトリプルの数を確認します

こんにちは、Java api を使用して tdb の作成中に格納されているトリプルの数を確認できますか? turtle で rar ファイルを使用して TDB ファクトリを実行していますが、ディレクトリにファイルを作成している間、格納されているトリプルの数を確認できません。どうすればこの問題を解決できますか?

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

sparql - Jena TDB 、フィルターが機能しない

ファイルからトリプルのデータセットを保存するために Jena TDB を使用しています。を使用して SPARQL クエリを TDB に送信しようとすると問題が発生しますfilter。たとえば、次のクエリは機能します。

しかし、これはしません:

このクエリの目的は、 (言語を無視して)?obからを見つけることです。や など"NameOfLabel"を試しましたが、うまくいきませんでした。これどうやってするの?regexstr(?pr)

更新(回答に基づく)

を使用しようとするとfilter( str(?pr) = "NameOfLabel" )、例外が発生します。スタック トレースは次のとおりです。

編集II:

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

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分待ちました):

私が実行しているコードに問題があるのでしょうか? そこにそれがある:

ここで何が間違っていますか?何か案が?

ありがとう!

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

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 メソッドを見つけるために、この調査を行っています。出来ますか?

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

java - イエナ TDB/布石公演

ローカルの Fuseki SPARQL エンドポイントを使用して、Jena TDB ストアでかなり高速に実行される単純な SPARQL クエリがあります。

完了するまでにおそらく 10 秒かかり、いくつかの owl:ObjectProperty およびその他のプロパティが含まれます。次のクエリを使用してオブジェクト プロパティのみを表示する場合 (追加のトリプルと末尾の 1 の制限に注意してください):

次に、答えがすぐに表示され、前に示したオブジェクト プロパティの 1 つだけが表示されることを期待します。結局のところ、これは前のクエリをさらに改良しただけです。ただし、クエリには何倍もの時間がかかり、数秒ではなく数分後に終了します。

ここで戸惑います。2 番目のクエリに時間がかかるのはなぜですか?

Fuseki バージョン 1.1.0 を使用しています。私のfuseki構成ファイルは次のとおりです。