2011-12-15 76 views
3

假设我正在寻找一个像“绿野仙踪”这样的实体,并且知道我对这本书特别感兴趣,而不是电影或音乐剧。 哪个查询/方法会在大多数情况下返回正确的结果?如何解决Yago/DBpedia中的消歧?

回答

1

你可以做到这一点像的查询:

SELECT * WHERE { 
    ?s <http://dbpedia.org/property/name> ?name . 
    ?s a <http://dbpedia.org/ontology/Book> . 
    FILTER(regex(STR(?name), "wizard of oz", "i")) 
} 
+0

感谢您的回复,我试图搜索没有特定本体论相关性的“Book”,因此它也将捕获“Childrens_Books”类别中的实体。 – user971956 2011-12-16 13:52:24

+0

当然,他们可以...看到它虽然超时,除非它是针对私人实例运行的... – em70 2011-12-21 11:50:48

0

由于每本书,只有书,有一个ISBN,我想你可以采取史蒂夫哈里斯的查询,而不是问它是否是一本书,你可以问它是否有一个ISBN。

SELECT * WHERE { 
    ?s <http://dbpedia.org/property/name> ?name . 
    ?s <http://dbpedia.org/ontology/isbn> ?isbn . 
    FILTER(regex(STR(?name), "wizard of oz", "i")) 
}