GraphDB Free 7.1を使用していて、既定の設定でリポジトリを作成しました。私は270万のトリプレットを持つttlファイルをアップロードしました。私は200kの回答やワークベンチディスプレイを返すべきである(非常に複雑であるが、非常に複雑ではない)だけで1kの答えをクエリを発行しようとしているとGraphDBログは、私が使用しているクエリがあるクエリの評価に時間がかかりすぎた
10:52:19.580 [repositories/PaaSport] INFO c.o.f.sesame.RepositoryController - POST query -1325396809
10:52:29.594 [repositories/PaaSport] ERROR o.o.h.s.r.TupleQueryResultView - Query interrupted
org.openrdf.query.QueryInterruptedException: Query evaluation took too long
...
10:52:29.594 [repositories/PaaSport] INFO o.o.h.s.r.TupleQueryResultView - Request for query -1325396809 is finished
例外が表示されます。
SELECT DISTINCT ?offering ?Value
WHERE {
?offering a paasport:Offering ;
DUL:satisfies ?groundDescription .
?groundDescription paasport:offers ?characteristic .
?characteristic a paasport:Storage ;
DUL:hasParameter ?par .
?par a paasport:StorageCapacity ;
DUL:hasParameterDataValue ?Value ;
DUL:parametrizes ?qualityValue .
?qualityValue uomvocab:measuredIn ?Units .
?Units a ?AppParMeasureUnitType .
ucum:GB a ?AppParMeasureUnitType .
?Units a uomvocab:SimpleDerivedUnit .
ucum:GB a uomvocab:SimpleDerivedUnit .
ucum:GB uomvocab:derivesFrom ?BasicUnit .
?Units uomvocab:derivesFrom ?BasicUnit .
ucum:GB uomvocab:modifierPrefix ?prefix1 .
?Units uomvocab:modifierPrefix ?prefix2 .
?prefix1 uomvocab:factor ?Factor1 .
?prefix2 uomvocab:factor ?Factor2 .
FILTER(xsd:double(?Factor2)*?Value = xsd:double(?Factor1)*4)
}
クエリタイムアウトが0に設定されているので、私は、クエリの中断例外の原因を確認していません。おそらくメモリの問題? 非常に単純なクエリ(特定のクラスのすべてのインスタンスを返すなど)は正常に機能します。
ヒントはありますか?どんな助けもありがとう。 必要に応じて詳細を提供することができます。
ベスト、 ニック
クエリが複雑すぎるようです。あなたはクエリを共有できますか?クエリの一部の順序を変更しようとしましたか?場合によっては、クエリプランオプティマイザがより効率的な実行計画を選択するのに役立ちます。さらに、いくつかのGraphDB設定パラメータがあるかもしれませんが、私はこのトリプルストアの専門家ではありません。 – AKSW
'SELECT DISTINCT?オファリング?値WHERE { ?オファーrdf:タイプpaasport:オファー。 \t?提供DUL:満たす?GroundDescription。 \t?groundDescription paasport:offers?特性。 \t?特性rdf:タイプpaasport:ストレージ。 \t?特性DUL:hasParameter?par。 \t?par rdf:type paasport:StorageCapacity。 \t?par DUL:hasParameterDataValue?Value。 \t?par DUL:パラメータはqualityValueです。 \t?qualityValue uomvocab:measuredIn?単位。 –
'?単位rdf:タイプ?AppParMeasureUnitType。 \t ucum:GB rdf:type?AppParMeasureUnitType。 \t?ユニットrdf:タイプuomvocab:SimpleDerivedUnit。 \t ucum:GB rdf:type uomvocab:SimpleDerivedUnit。 \t ucum:GB uomvocab:derivesFrom?BasicUnit。 \t?単位uomvocab:derivesFrom?BasicUnit。 \t ucum:GB uomvocab:modifierPrefix?prefix1。 \t?uomvocab:modifierPrefix?prefix2という単位。 \t?prefix1 uomvocab:factor?Factor1。 \t?prefix2 uomvocab:factor?Factor2。 \t FILTER(xsd:double(?Factor2)*?Value = xsd:double(?Factor1)* 4) } –