SPARQL联合查询";服务“;返回Virtuoso RDFZZ错误:意外的变量名';stubvar14';

SPARQL联合查询";服务“;返回Virtuoso RDFZZ错误:意外的变量名';stubvar14';,sparql,dbpedia,federated-queries,Sparql,Dbpedia,Federated Queries,我想从两个不同的SPARQL端点获取一个人员列表,因此我对以下对象使用此查询: 前缀类别en: 选择不同的* 在哪里{ ?名称dcterms:科目类别de:Haus_列支敦士登。 ?名称rdf:类型foaf:人员。 服务{ ?名称dcterms:主题类别en:列支敦士登王子家族。 ?名称rdf:类型foaf:人员。 } 减去{name dbpedia owl:deathDate?d} } 然后我得到以下错误: Virtuoso RDFZZ错误DB.DBA.SPARQL_REXEC(“”, …)

我想从两个不同的SPARQL端点获取一个人员列表,因此我对以下对象使用此查询:

前缀类别en:
选择不同的*
在哪里{
?名称dcterms:科目类别de:Haus_列支敦士登。
?名称rdf:类型foaf:人员。
服务{
?名称dcterms:主题类别en:列支敦士登王子家族。
?名称rdf:类型foaf:人员。
}
减去{name dbpedia owl:deathDate?d}
}
然后我得到以下错误:

Virtuoso RDFZZ错误DB.DBA.SPARQL_REXEC(“”, …)已收到具有意外变量名“stubvar14”的结果


知道我做错了什么吗?非常感谢

因此问题在于,尽管这两个查询可以单独工作,但是组合查询中的
服务
部分正在尝试根据第二个集合过滤第一个集合。我认为你缺少的是一个联盟:

PREFIX category-en: <http://dbpedia.org/resource/Category:>
SELECT distinct count(?name)
WHERE {
{
    ?name dcterms:subject category-de:Haus_Liechtenstein.
    ?name rdf:type foaf:Person.
}
union{
    SERVICE silent <http://dbpedia.org/sparql>{
    ?name dcterms:subject category-en:Princely_Family_of_Liechtenstein.
    ?name rdf:type foaf:Person.
}
}
MINUS {?name dbpedia-owl:deathDate ?d}
}
前缀类别en:
选择不同的计数(?名称)
在哪里{
{
?名称dcterms:科目类别de:Haus_列支敦士登。
?名称rdf:类型foaf:人员。
}
联合{
无声服务{
?名称dcterms:主题类别en:列支敦士登王子家族。
?名称rdf:类型foaf:人员。
}
}
减去{name dbpedia owl:deathDate?d}
}
PREFIX category-en: <http://dbpedia.org/resource/Category:>
SELECT distinct count(?name)
WHERE {
{
    ?name dcterms:subject category-de:Haus_Liechtenstein.
    ?name rdf:type foaf:Person.
}
union{
    SERVICE silent <http://dbpedia.org/sparql>{
    ?name dcterms:subject category-en:Princely_Family_of_Liechtenstein.
    ?name rdf:type foaf:Person.
}
}
MINUS {?name dbpedia-owl:deathDate ?d}
}