首先,我对this...REST,RDF,LDP等都很陌生。
我能够以一种模糊的方式理解REST和RDF:
发布于 2016-04-19 16:10:38
LDP,链接数据平台,是一个W3C规范,定义了服务器和客户端通过HTTP与资源(主要是RDF资源)交互的标准方式。特别是,它引入了容器、RDFSources和非RDFSources(或二进制文件)的概念。
它可能有助于将RDFSource看作一个文档,类似于一个HTML页面。只是,内容不是HTML,它是一个共享相同主题URI的图形(一组RDF三元组)。总之,本文档中的三元组通常描述或组成给定的实体或对象。因此,这些可以被认为是对象的属性。文档可以用RDF、Turtle、JSON-LD或其他格式表示。这些属性可能是文字值,也可能是指向其他资源的链接。
LDP实现了RESTful体系结构,所以如何查看这个RDFSource取决于您在向服务器的请求中请求它的方式。如果您要求以JSON表示资源,则应该返回该资源的JSON表示。如果你要求它作为海龟,你应该得到一个海龟的代表。这是通过在请求中传递某些HTTP头来完成的。此外,LDP的RESTful特性允许您使用HTTP方法(GET、POST、PUT、DELETE)以各种方式与资源交互。
容器也是RDFSource,但它允许您管理成员资格。容器可以有成员资源。你可以把容器想象成一个文件夹。只是,它物理上不包含RDFSources或文档。相反,它有一组三元组(成员三元组)来定义或链接到其成员。根据在请求头中指定的首选交互模型,可以将容器视为容器或RDFSource。
因此,基本上,您可以将LDP视为一种与RDF资源交互的方式,其方式类似于有文件夹和文档的网站。只有所有东西都是RDF,而不是XHTML。在后端,服务器实际上可以将每个资源管理为一个真正的文档(文件)。或者,就像Carbon的情况一样,它可能把所有的东西都放在一个三层(一个RDF存储/数据库)中。然后,它只返回一组看起来像“文档”的三元组,因为它们共享相同的主题URI,这是您在发出RESTful请求时使用的。因为Carbon在一个三层中管理所有这些“文档”,所以它也可以提供SPARQL查询支持(尽管SPARQL支持不是LDP规范的一部分)。
因此,从本质上讲,LDP支持一种非常"webby“(或RESTful)的方法来处理RDF数据。您可以向URI发出HTTP请求,并将其解析为资源(容器或RDFSources),然后您可以使用这些资源来获得所有三元组。当然,您可以创建资源、更新它们、列出容器的成员等等。这样,您就可以构建使用RESTful请求(可能是异步JavaScript或AJAX请求)的web应用程序。
您赢得的一个优势是,即使您正在处理的数据可能非常特定于您在LDP上构建的任何特定应用程序,但用于处理该数据的REST是标准和一致的。
另一个优点是您正在使用RDF,因此您的对象的属性,即谓词,可以将数据链接到企业或万维网。这可以帮助您合并数据,并发现您的应用程序可能没有专门设计支持的东西。而且,因为您使用的是RDF数据模型,所以您可以为您的三元组使用预先存在的词汇表,但是您对模式没有那么多的麻烦。
在RDF中,您可以添加新的三元组(新属性或链接),而无需更新某些数据库模式和解释它所需的相关代码。LDP以一种非常通用的方式处理RDF资源--它不在乎定义或组成资源的三元组是什么。当您构建一个LDP应用程序时,您可以将这种通用的质量扩展到应用程序中,这样您的数据就可以不断地变化和发展,而不会给应用程序本身的维护和进化带来沉重的成本。
这种技术可以帮助您弥合当前超链接文档网络与链接数据网络之间的差距,这对于计算机来说更容易理解和互操作。有关RDF的更多信息,以及超级链接和链接数据链接之间的巨大差异,请参见链接数据中链路的强大功能。
您还可以在介绍:链接数据平台中找到LDP的一些技术介绍,这是我在不久前为数据多样性撰写的一篇文章。
https://stackoverflow.com/questions/36079107
复制相似问题