Getting Started with SPARQL


SPARQL简介

SPARQL即SPARQL Protocol and RDF Query Language的缩写,专门用于访问和操作RDF数据,是语义网的核心技术之一。

从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> "罗纳尔多·路易斯·纳萨里奥·德·利马"^^string.

把属性值用变量代替(SPARQL中,用问号加变量名的方式来表示一个变量。),即:

<http://www.kg.com/person/1> <http://www.kg.com/ontology/chineseName> ?x.

SPARQL查询是基于图匹配的思想。我们把上述的查询与RDF图进行匹配,找到符合该匹配模式的所有子图,最后得到变量的值。就上面这个例子而言,在RDF图中找到匹配的子图后,将”罗纳尔多·路易斯·纳萨里奥·德·利马”和“?x”绑定,我们就得到最后的结果。简而言之,SPARQL查询分为三个步骤:

  1. 构建查询图模式,表现形式就是带有变量的RDF。
  2. 匹配,匹配到符合指定图模式的子图。
  3. 绑定,将结果绑定到查询图模式对应的变量上。

SPARQL语法

Triple Patterns

Main Query Form

Single Triple Pattern

Joins

Optional Join

Subqueries

Alternatives

Negation

Sort Results

Limit Results

Offset Results

Filtering Results

Binding Variables

Removing Duplicates

Aggregation

Grouping Results

Property Paths

Recursive Paths

Query Types

ASK Query

返回的是布尔值

DESCRIBE Query

DESCRIBE`查询返回RDF图。SPARQL规范中没有规定节点返回的三重,事实上取决于系统。实现返回节点的所有输出边缘

CONSTRUCT Query

Updates

INSERT And DELETE Triples

INSERT Query

INSERT And DELETE Query

Graph Management

Named Graphs

RDF Datasets

RDF Data in TriG: Turtle with Named Graphs

Specifying SPARQL Dataset

Querying a Specific Dataset

Named Graph Query

Override Default Graph

References

RDF 和 SPARQL 初探:以维基数据为例

RDF查询语言SPARQL

Stardog


文章作者: Passerby-W
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Passerby-W !
评论
  目录