【发布时间】:2017-03-02 01:26:16
【问题描述】:
如果我有一个 dbpedia 网址(即http://dbpedia.org/page/Abraham_Lincoln),我如何查询 SPARQL 以验证实体(在本例中为亚伯拉罕·林肯)是否是一个人?我突然想到,我可以返回所有 rdf:type 值,然后检查 foaf:Person 或 dbo:Person 是否在输出中,但只获得真/假响应会更方便。
【问题讨论】:
如果我有一个 dbpedia 网址(即http://dbpedia.org/page/Abraham_Lincoln),我如何查询 SPARQL 以验证实体(在本例中为亚伯拉罕·林肯)是否是一个人?我突然想到,我可以返回所有 rdf:type 值,然后检查 foaf:Person 或 dbo:Person 是否在输出中,但只获得真/假响应会更方便。
【问题讨论】:
使用 SPARQL ASK 查询?这个答案应该是你自己在查看W3C recommendation时找到的
ASK { ?s rdf:type <SOME_CLASS_URI> }
注意,它当然允许更复杂的查询模式:
ASK {
{ ?s rdf:type foaf:Person }
UNION
{ ?s rdf:type dbo:Person }
}
【讨论】:
ASK { values ?person { foaf:Person dbo:Person } ?s a ?person }。 (我只是喜欢使用 values 而不是 UNION,因为它更容易扩展,并使逻辑更清晰。