我正在玩DBPedia .
通过这个查询,我得到了所有出生在伦敦的人:
SELECT ?person
WHERE {
?person dbo:birthPlace :London
}
但是为什么当我执行这个查询时得到空结果?
SELECT ?person
WHERE {
?person dbo:birthPlace "London"
}
我刚刚将 London
更改为字符串。
最佳答案
这是因为该关系的对象是实体,而不是字符串,因此第二个查询没有结果。
要了解某个属性(即 dbo:birthPlace)是否将实体与文字相关联,一种方法是查看该属性的“关于”页面,例如 birthPlace's one .
可以看到,birthPlace的类型是owl:ObjectProperty,这意味着关系的对象必须是一个实体,用URI定义>。 另一种可能性是DatatypeProperty,as for the "abstract" property for example ,其中关系的对象将是一个文字。
出生地是一个实体这一事实允许做很多事情,例如在同一查询中检索有关该地点的特定信息。
希望有帮助!
关于sparql - Sparql 中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35564722/