我有兩個疑問:SPARQL UNION - 結果集不完整
查詢1:
SELECT DISTINCT ?o COUNT(?o)
WHERE
{ ?s1 ?somep1 <predicate_one-uri>. ?s1 ?p ?o}
查詢2:
SELECT DISTINCT ?o COUNT(?o)
WHERE
{?s2 ?somep2 <predicate_two-uri>.?s2 ?p ?o.}
每個查詢都帶給我不同的結果集(如預期) 。我需要讓這兩組的聯合,從我的理解下面的查詢應該給我一套我想:
SELECT DISTINCT ?o COUNT(?o)
WHERE
{
{ ?s1 ?somep1 <predicate_one-uri>.?s1 ?p1 ?o}
UNION
{?s2 ?somep2 <predicate_two-uri>.?s2 ?p2 ?o.}
}
的問題是,從查詢1一些成果沒有在工會組和副-versa查詢2.聯合工作不正常,因爲它沒有包含查詢1和查詢2的所有結果。請告知正確的sparql查詢結構以實現所需的結果集。
但如果我提出以下查詢(只是刪除COUNT函數):
SELECT DISTINCT ?o
WHERE
{
{ ?s1 ?somep1 <predicate_one-uri>.?s1 ?p ?o}
UNION {?s2 ?somep2 <predicate_two-uri>.?s2 ?p ?o.}
}
我得到相應的結果集。但我也需要有變量?o
的頻率。
感謝您的反饋。我使用OpenVirtuoso,我相信它使用Jena,允許我使用COUNT聚合函數。我在這裏得到了一個參考:http://stackoverflow.com/questions/1223472/sparql-query-and-distinct-count。 據我所知,聯合返回的行數可能小於兩個查詢的總和,因爲聯合。我的問題是,有些值甚至不會顯示在查詢1中存在的聯合查詢中。 對不起,我還是SPARQL和RDF的新手,我相信三重商店是RDF/XML(這是否有意義?)。 再次感謝, JPL – levacjeep 2010-05-05 14:59:41