链接数据的实际使用

Practical usage for linked data

我一直在阅读链接数据,我想我了解发布链接数据的基础知识,但我正在努力寻找链接数据在现实世界中的实用(和最佳实践)用法。许多书籍和在线教程都在谈论 RDF 和 SPARQL,但没有谈论处理其他人的数据。

我的问题是,如果我有一个项目,其中有一堆我输出为 RDF 的数据,增强(或正确使用)其他人的数据的最佳方法是什么?

如果我创建了一个动物应用程序并且我想使用来自 BBC 野生动物页面 (http://www.bbc.co.uk/nature/life/Snow_Leopard) 的数据,我应该怎么做?爬取 BBC 野生动物页面,获取 RDF,并将内容保存到我自己的三元组或使用 SPARQL 查询 BBC(我不确定 BBC 是否真的可行)或者我是否获取我的动物的 URI(owl:sameAs) 并卷曲来自 BBC 网站的内容?

这也问了一个问题,你能以编程方式添加链接数据吗?我想您将不得不爬取 BBC 野生动物页面,除非他们提供所有内容的索引。

如果我想再次添加额外的信息,例如这些动物的位置 (http://www.geonames.org/2950159/berlin.html),最好的方法是什么? owl:habitat(假谓词)巴西?并从 geonames 站点卷曲巴西的 RDF?

我想链接到原作者是最好的方法,因为这样你的数据就可以保持最新,这是来自 BBC 演示文稿 (http://www.slideshare.net/metade/building-linked-data-applications) 的这些幻灯片,BBC 就是这样做的,但如果作者网站出现故障或速度太慢怎么办?如果您要索引作者的 RDF,我想您的 owl:sameAs 会指向本地 RDF。

这是创建和使用关联数据的一种可能方式。

  1. 如果您正在网上寻找一个实体(即关联数据术语中的 'Resource'),请查看是否有关于它的关联数据描述。一个很容易找到它的地方是 DBpedia。对于 Snow Leopard,您可以使用的一个 URI 是 http://dbpedia.org/page/Snow_leopard。从页面可以看出,有几个对象和属性描述。您可以使用它们来创建一个丰富的信息平台。
  2. 您可以通过两种方式使用 SPARQL。首先,您可以直接在 Web 上查询可能有一些数据的 SPARQL 端点。 BBC 有一个关于音乐的;我不确定他们是否会提供其他信息。可以使用 snorql 查询 DBpedia。其次,您可以使用 SPARQL 1.1 的 INSERTINSERT DATA 功能从这些端点检索您需要的数据并加载到您的三元组存储中。要从三元组存储访问 SPARQL 端点,您需要使用 SPARQL 的 SERVICE 特性。第二种方法可以防止您在公开可用的端点因维护而停机时无法执行查询。
  3. 要以编程方式将数据添加到您的三元存储,您可以使用预先设计的库之一。在 Python 中,RDFlib 对此类应用很有用。
  4. 要使用来自其他地方的数据来丰富数据,又可以有两种方法。这样做的标准方法是使用现有的词汇表。因此,您必须查找 habitat 谓词并插入此语句:

    dbpedia:Snow_leopard prefix:habitat geonames:Berlin .

如果没有找到合适的本体来包含 属性(在这种情况下不太可能),则需要创建一个新的 ontology.

  1. 如果您想让您的信息保持最新,那么定期 运行 您的查询是有意义的。在这方面使用诸如 DBpedia Live 之类的东西很有用。