名前付きサブクエリを使用した次の SPARQL クエリが Blazegraph インスタンス Wikidata Query Service で遅いのはなぜでしょうか。サブクエリを取り出して実行するだけでも、ウィキデータ クエリ サービスでは約 1 秒で完了しますが、クエリ全体を含むものはタイムアウトします。INCLUDE 行の後に何かを追加しても効果がないようです。DISTINCT を削除しても役に立ちません。
SELECT
?author
WITH {
SELECT
DISTINCT ?author
{
[] wdt:P50 ?author .
FILTER EXISTS { [] wdt:P921 ?author }
FILTER EXISTS { ?author wdt:P31 wd:Q5 }
}
LIMIT 1
} AS %authors
WHERE {
INCLUDE %authors .
}
クエリ ヒントの組み合わせが役立つ場合がありますか? 私はhttps://github.com/blazegraph/database/wiki/QueryHintsでBlazegraph クエリ ヒントをざっと見てきましたが、タイムアウトを解決するヒントの組み合わせは思いつきませんでした。
名前付きサブクエリを単独で実行すると、ウィキデータ クエリ サービスで LIMIT をタイムアウトすることなく 10000 まで増やすことができます。