1

http://sparql.sindice.com/でこのクエリを作成しようとしました

PREFIX rev: <http://purl.org/stuff/rev#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT *
WHERE
{
 ?thing rdfs:label ?name .
  ?thing rev:hasReview ?review .
 filter regex(str(?name), "harlem", "i")
} LIMIT 10

そして、504 Gateway Time-out サーバーが時間内に応答しませんでした。私が間違っているのは何ですか?ありがとう。

4

1 に答える 1

2

エンドポイントがタイムリーに応答するには難しすぎるクエリを作成したため、タイムアウト応答が返されました。Web サイトには次のように記載されていることに注意してください。

すべてのクエリは時間とリソースに制限があります。これは、不完全な結果が得られるか、まったく結果が得られない場合があることを意味することに注意してください。これが頻繁に発生する場合、またはより複雑なクエリを本当に実行したい場合は、お問い合わせください

クエリは基本的に膨大な量のデータを選択し、エンジンに可能な値に対して正規表現を実行させますが、これは非常に遅いです。

Sindice は SPARQL 実装として Virtuoso を使用しているので、Virtuoso 固有の全文クエリ拡張機能を次のようにチートして使用できると思います。

PREFIX rev: <http://purl.org/stuff/rev#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT *
WHERE
{
  ?thing rdfs:label ?name .
  ?thing rev:hasReview ?review .
  ?name bif:contains "harlem" .
} 
LIMIT 10

ただし、このクエリもタイムアウトするようです。条件を追加してクエリをさらに制限できる場合は、タイムリーに結果を取得する可能性が高くなります。

于 2013-07-11T18:14:10.877 に答える