我有两个疑问:
查询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 的某些结果不在联合集中,查询 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
。