グループパターンの意味がよくわかりません。仕様で読んだことから、すでにグループにあるグラフパターンをネストされたグループに入れても(いいえUNION
またはそのようなもの)、違いはありません。これを示す例もあります。
そのため、DBpedia で見ている次の動作がわかりません。
次のクエリでは、14 件の結果が得られます。
PREFIX ygo: <http://dbpedia.org/class/yago/>
SELECT ?p ?bn ?ya
WHERE {
?p rdf:type ygo:AmericanFilmDirectors.
?p dbpprop:birthname ?bn.
?p dbpprop:yearsActive ?ya.
FILTER((?ya > 1980) && (regex(?bn, "e"))).
}
それでも、これは何らかの理由で 13 しか得られません。他の結果セットと比較して、Shonda Rhimesが欠落しています。
PREFIX ygo: <http://dbpedia.org/class/yago/>
SELECT ?p ?bn ?ya
WHERE {
{
?p rdf:type ygo:AmericanFilmDirectors.
?p dbpprop:birthname ?bn.
?p dbpprop:yearsActive ?ya.
}
FILTER((?ya > 1980) && (regex(?bn, "e"))).
}
DBpedia の Snorql フロントエンドでこれをテストしました。
(奇妙なことに、DBpedia の Virtuoso クエリ フロントエンドでこれを再現できるのは、ときどきだけです...ときどき、両方のクエリが 13 個の結果しか返さないことがあります。)
どうしてこれなの?それは私がまだ正しく理解していない SPARQL 仕様の一部ですか、それともトリプル ストア実装のバグであり、クエリ 1 からクエリ 2 への変更は何の違いもないはずですか?