SPARQL エンドポイントを介して、トリプル ストア内のすべてのプロパティのリスト (の抜粋) をコンパイルしようとしています。次の 2 つのクエリのそれぞれで、有望な結果が得られます。
A:
SELECT DISTINCT ?prop
WHERE {
[] ?prop [].
}
LIMIT 25
B:
SELECT DISTINCT ?prop
WHERE {
?prop a rdf:Property.
}
LIMIT 25
予想どおり、両方のクエリの結果セットに表示される項目がいくつかあります。したがって、制限を組み合わせると、SPARQLに関する私の現在の理解に基づいて、これらの項目が再び得られるはずです。
子:
SELECT DISTINCT ?prop
WHERE {
[] ?prop [].
?prop a rdf:Property.
}
LIMIT 25
しかし、実際には、このクエリではほとんど結果が得られません。何故ですか?
私は自分が間違っていることを認識していません。この質問とその質問への回答は、これら2つの(理論的には冗長で、非常にきちんとしたオントロジーで)制限を組み合わせる類似の手法を提案しているようです。
テストケース:
- DBpedia : クエリAとB はどちらも
!bgcolor
、!logo
またはなどの 24 個のプロパティを返します#FuelElements
。それでも、クエリCの結果セットは空です。 - A Short Biographical Dictionary of English Literature (RKBExplorer) : クエリAとBはそれぞれ 9 つの結果を返し、そのうちの 5 つは両方の結果セット (
rdfs:comment
、rdfs:subClassOf
、rdfs:subPropertyOf
、 )rdfs:label
に含まれていrdfs:isDefinedBy
ます。クエリCはのみ を生成しrdfs:comment
ます。
興味深いことに、JES & Co.およびオーストリアの Alpine Ski Racers による SPARQL エンドポイントは、私の予想どおりに動作し、クエリCの結果セットは空ではなく、クエリALIMIT
によって返されるプロパティで (私が課したように)満たされています。とB。
では、なぜ 2 つの結果セットの交差であるべきものが実際には交差ではないのでしょうか? 説明されているエンドポイントはバグがありますか (ありそうもない...)、それとも SPARQL に関する私の理解に欠陥がありますか (ありそうです)?