SPARQL:给定一个dbpedia网址,我如何确定该实体是否是一个人?

Bai*_*ith 5 sparql dbpedia

如果我有一个dbpedia网址(即http://dbpedia.org/page/Abraham_Lincoln),我如何查询SPARQL来验证实体(在这种情况下是亚伯拉罕林肯)是否是一个人?在我看来,我可以返回所有的rdf:type值,然后检查foaf:Person或dbo:Person是否在输出中,但是获得真/假响应会更方便.

AKS*_*KSW 10

使用SPARQL ASK查询?在查看W3C建议时,您应该已经找到了这个答案

ASK { ?s rdf:type <SOME_CLASS_URI> }
Run Code Online (Sandbox Code Playgroud)

注意,它当然允许更复杂的查询模式:

ASK {
   { ?s rdf:type foaf:Person }
  UNION 
   { ?s rdf:type dbo:Person }
}
Run Code Online (Sandbox Code Playgroud)

  • 或者'ASK {值?人{foaf:Person dbo:Person}?sa?person}`.(我只是喜欢使用**值而不是UNION,因为它更容易扩展,并使逻辑更清晰一些. (3认同)
  • 相当。对于刚开始使用SPARQL的人来说,这没有什么明显的。通常,更真实的示例对IMHO有用。 (3认同)
  • 好吧,它本来可以被发现,但是除了SELECT查询外,许多人从未听说过其他任何东西,因此可能有一些保留它的理由。 (2认同)