0

グループパターンの意味がよくわかりません。仕様で読んだことから、すでにグループにあるグラフパターンをネストされたグループに入れても(いいえ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 への変更は何の違いもないはずですか?

4

1 に答える 1

2

それらは異なるクエリですが、SPARQL では同じ代数式になり、同じ答えを生成するはずです。ただし、データの分布によっては、エンジンの内部実行制限に達している可能性があります。これは、パターンによってフィルター処理される可能性が多数生成される可能性があるためです。それは、さまざまな時点でのさまざまな結果を説明します。

于 2013-02-08T15:16:05.277 に答える