本文转载自SimmerChan大神知乎文章:https://zhuanlan.zhihu.com/p/32703794
简介
前面我们已经介绍过了语义网技术栈中的RDF,RDFS/OWL。这次我们介绍最后一个核心技术标准——SPARQL(RDF,OWL和SPARQL称为语义网的三大核心技术)。RDF本质上是一种数据模型,那么我们如何在RDF上进行查询呢?类似使用SQL查询关系数据库,我们使用SPARQL查询RDF格式的数据。本文先简单介绍一下SPARQL的历史,然后结合我们实践篇的数据举几个具体的例子。
1. SPARQL
SPARQL即SPARQL Protocol and RDF Query Language的递归缩写,专门用于访问和操作RDF数据,是语义网的核心技术之一。W3C的RDF数据存取小组(RDF Data Access Working Group, RDAWG)对其进行了标准化。在2008年,SPARQL 1.0成为W3C官方所推荐的标准。2013年发布了SPARQL 1.1。相对第一个版本,其支持RDF图的更新,提供更强大的查询,比如:子查询、聚合操作(像我们常用的count)等等。
从SPARQL的全称我们可以知道,其由两个部分组成:协议和查询语言。
-
查询语言很好理解,就像SQL用于查询关系数据库中的数据,XQuery用于查询XML数据,SPARQL用于查询RDF数据。
-
协议是指我们可以通过HTTP协议在客户端和SPARQL服务器(SPARQL endpoint)之间传输查询和结果,这也是和其他查询语言最大的区别。
一个SPARQL查询本质上是一个带有变量的RDF图,以我们之前提到的罗纳尔多RDF数据为例:
<http://www.kg.com/person/1> <http://www.kg.com/ontology/chineseName> "罗纳尔多·路易斯·纳萨里奥·德·利马"