SPARQL MINUS命令未显示正确的结果

时间:2019-06-10 12:34:26

标签: sparql

我正在尝试打印dbpedia(http://dbpedia.org/sparql)中所有缺少“抽象”属性的人。运行此代码时,我可以看到输出中的某些人(例如,Hassan Al-Qazwini)具有属性abstract。我做错了吗?

select ?s where {
    ?s a dbo:Person.
    MINUS {?s dbo:abstract ?z}
}

1 个答案:

答案 0 :(得分:0)

原因是DBpedia重定向基于Wikipedia重定向。例如,http://dbpedia.org/resource/Hassan_Al-Qazwini确实没有摘要,但是如果您在浏览器中打开此URI,您将被重定向到其规范的URI http://dbpedia.org/resource/Sayed_Hassan_Al-Qazwini-这样做是为了允许标识相同资源的URI。但最后将所有数据仅附加到单个RDF资源。

解决此问题的一种方法是也检查重定向,即所有具有摘要的人或被重定向到具有摘要的人。例如,这可能有效:

select ?s 
where { ?s a dbo:Person. minus {?s dbo:wikiPageRedirects?/dbo:abstract ?z} }