如何知道 DBpedia 中某些实体的确切 name/URI?

How to know exact name/URI of some entity in DBpedia?

examples section for DBpedia article中有一个示例查询

PREFIX dbprop: <http://dbpedia.org/property/>
PREFIX db: <http://dbpedia.org/resource/>
SELECT ?who, ?WORK, ?genre WHERE { 
 db:Tokyo_Mew_Mew dbprop:author ?who .
 ?WORK  dbprop:author ?who .
 OPTIONAL { ?WORK dbprop:genre ?genre } .
}

关于漫画系列《东京喵喵》。但是我怎么知道它的 URI 是

http://dbpedia.org/resource/Tokyo_Mew_Mew

并且 "author" 属性 URI 是

http://dbpedia.org/property/author

等等?

这些 URI 有搜索引擎吗?

为了比较,在 Wikidata 项目中我可以在他们的主站点上进行搜索并推断出东京喵喵 URI 后缀是 Q392125,因为它与 Web URL 的最后一部分重合。

如何用 DBpedia 做同样的事情?

执行此操作的一种方法是使用 SPARQL 查询。在这个特定的例子中,你事先知道你正在寻找一个叫做 "Tokyo Mew Mew" 的东西。像这样的简单查询:

   PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
   SELECT ?x 
   WHERE { 
        ?x rdfs:label ?name . 
        FILTER(bif:contains(?name, "Tokyo Mew Mew*"))  
   }

(小免责声明:在撰写本文时,dbpedia 网站正在停机维护,因此我无法验证这些查询是否 100% 正确)

很可能会给您想要的结果。顺便说一句,此查询中的 bif:contains 位是 SPARQL 语言的 Virtuoso 特定扩展,它执行优化的全文搜索。

但是,这样的搜索当然有可能检索到不止一个可能的匹配项。在这种情况下,您可以扩展查询以缩小结果范围。例如,在这个例子中,因为您知道您正在寻找漫画,您可以扩展您的查询以包括:

   PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
   PREFIX dbo: <http://dbpedia.org/ontology/> 
   SELECT ?x 
   WHERE { 
        ?x a dbo:Comic .
        ?x rdfs:label ?name . 
        FILTER(bif:contains(?name, "Tokyo Mew Mew*"))  
   }

等等

如果您发现将 SPARQL 用于此类事情有点令人生畏,DBPedia 提供了 other ways to access the dataset, including a faceted search interface,您可以使用它来探索数据。

您也可以只猜测 URI 可能是什么,然后手动查看您是否正确。例如,在许多情况下,DBPedia URI 将只是您要​​查找的任何内容的名称,附加到名称空间 'http://dbpedia.org.org/resource/' (with spaces replaced by underscores). The nice thing about Linked Data is that you can just go to that address and see what you get back. Thus, for Tokoy Mew Mew, the URI http://dbpedia.org/resource/Tokyo_Mew_Mew 是一个很好的猜测,当您使用浏览器访问此 URI 时,您将大致了解该 URI 代表的内容,在本例中,这正是您要查找的内容。

如果事实证明它不是您要查找的确切内容,该页面上通常会有一个条目告诉您其他哪些条目与您登陆的资源没有歧义。单击它并浏览一下通常可以让您很快找到您正在寻找的资源。更一般地说,通过浏览器浏览 DBPedia 资源是熟悉数据结构的好方法,因为您可以快速查看可用的属性和关系、类型层次结构等。

如果您使用这种手动浏览技术,有一个警告:DBPedia 将对资源的请求重定向到 关于 该资源的页面。因此,如果您输入“http://dbpedia.org/resource/Tokyo_Mew_Mew', you will be redirected to 'http://dbpedia.org/page/Tokyo_Mew_Mew”。但是,数据资源所需的实际 URI 是第一个。

除了,请注意,DBpedia 信息是从维基百科数据中提取的。一般来说,如果有一篇名为 Foobar 的维基百科文章,带有 URL

https://en.wikipedia.org/wiki/Foobar,

则对应的DBpedia资源为

http://dbpedia.org/resource/Foobar.

交互式浏览(请注意,在浏览器中,您将被重定向到 /page/ URL 而不是 /resource / URL),可以看到属性。属性主要分为三个系列:

  • 具有命名空间 http://dbpedia.org/property/ 的原始信息框属性,从某种意义上说,它们是 "dirty",它们只是原始数据值。您可能会获得一些相互关联的链接,但大多数情况下您将拥有文字值,并且这些值可能未被规范化、净化等。
  • Infobox ontology 属性具有命名空间 http://dbpedia.org/ontology/。这些是更复杂的信息框映射的结果,其中的数据更清晰,通常比原始信息框属性更受欢迎(如果可用)。
  • 其他一切。这些往往来自众所周知的词汇表,如 Dublin Core、FOAF、RDFS、OWL 等

将维基百科页面翻译成 DBpedia URI/IRI 的确切算法在 http://wiki.dbpedia.org/uri-encoding 中有描述 在大多数情况下,它是完全相同的名称(如上所述),但特殊字符处理可能会有所不同。

(免责声明:DBpedia 开发者)