SPARQL 过滤器不工作

SPARQL Filter not working

我 运行 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",我也得到了死亡日期的人。谁能解释一下为什么这个过滤器在这里不适用?

查看查询中的括号:union 的 "right hand side" 中的 minus 有一个 service 形式,和 minus,但是 minusoutside 服务形式:

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/[的前缀=30=].