SPARQL过滤器无法正常工作

时间:2015-04-13 17:24:00

标签: sparql

我在de.dbpedia

上运行以下SPARQL查询
SELECT distinct *
WHERE {
{
    ?name dcterms:subject category-de:Haus_Liechtenstein.
    ?name rdf:type foaf:Person.
Optional {?name <http://de.dbpedia.org/ontology/deathDate> ?deathDate}
MINUS {?name dbpedia-owl:deathDate ?d}
}
union{
    SERVICE silent <http://dbpedia.org/sparql>{
    ?name dcterms:subject category-en:Princely_Family_of_Liechtenstein.
    ?name rdf:type foaf:Person.
Optional {?name <http://dbpedia.org/ontology/deathDate> ?deathDate}
}
MINUS {?name dbpedia-owl:deathDate ?d}
}
}

对于“DE-Results”,MINUS过滤器工作正常,但对于“EN-Results”我也得到了死亡日期的人。谁能解释一下为什么这个过滤器不适用于此?

1 个答案:

答案 0 :(得分:1)

查看查询中的括号:&#34;右侧&#34;中的减号; 联盟的形式为服务减去,但减号 em> 服务表单:

union{
    SERVICE silent <http://dbpedia.org/sparql>{
      ?name dcterms:subject category-en:Princely_Family_of_Liechtenstein.
      ?name rdf:type foaf:Person.
      Optional {?name <http://dbpedia.org/ontology/deathDate> ?deathDate}
    }
    MINUS {?name dbpedia-owl:deathDate ?d}
}

那就是说,我不确定死亡约会的选择是什么意思:

Optional {?name <http://dbpedia.org/ontology/deathDate> ?deathDate}

如果您要删除任何死亡日期为:

的人
MINUS {?name dbpedia-owl:deathDate ?d}

毕竟, dbpedia-owl:通常是一个前缀,定义为 http://dbpedia.org/ontology/