sparql - SPARQL MINUS 命令未显示正确结果
问题描述
我正在尝试打印 dbpedia ( http://dbpedia.org/sparql ) 中缺少“抽象”属性的所有人员。当我运行此代码时,我可以看到某些人,例如输出中的 Hassan Al-Qazwini 具有属性 abstract。我做错了什么?
select ?s where {
?s a dbo:Person.
MINUS {?s dbo:abstract ?z}
}
解决方案
原因是 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} }
推荐阅读
- java - Java 打印输出奇怪的数字
- python - 无法在 Windows 上加载 GLFW3 共享库
- python - 将 DataFrame 保存到现有 Excel 工作表中的下一行
- python - 如何使用 strptime 提取本地日期?
- python - 如何从熊猫系列中获得绝对值较小的值
- loopbackjs - 如何在环回中使用过滤器获得订单“2”<“10”?
- batch-file - 为什么我不能做一个包含 \ 的 for 循环?
- c++ - Github 通过克隆获得必要的库
- python - from package import * - 调用模块是否有权访问命名空间?
- php - xml 到 php 子标签的字符串变量