【问题标题】:SPARQL federated query "SERVICE" returns Virtuoso RDFZZ Error: unexpected variable name 'stubvar14'SPARQL 联合查询“SERVICE”返回 Virtuoso RDFZZ 错误:意外变量名 'stubvar14'
【发布时间】:2015-04-10 11:16:02
【问题描述】:
我想从两个不同的 SPARQL 端点获取人员列表,因此我在 de.dbpedia 上使用此查询:
PREFIX category-en: <http://dbpedia.org/resource/Category:>
SELECT distinct *
WHERE {
?name dcterms:subject category-de:Haus_Liechtenstein.
?name rdf:type foaf:Person.
SERVICE <http://dbpedia.org/sparql> {
?name dcterms:subject category-en:Princely_Family_of_Liechtenstein.
?name rdf:type foaf:Person.
}
MINUS {?name dbpedia-owl:deathDate ?d}
}
然后我得到以下错误:
Virtuoso RDFZZ 错误 DB.DBA.SPARQL_REXEC('http://dbpedia.org/sparql',
...) 收到带有意外变量名称“stubvar14”的结果
知道我做错了什么吗?非常感谢!
【问题讨论】:
标签:
sparql
dbpedia
federated-queries
【解决方案1】:
所以问题是,虽然这两个查询单独工作正常,但组合查询中的service 部分试图根据第二组过滤第一组。我认为你缺少的是一个工会:
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}
}