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查询分为三个步骤:
- 构建查询图模式,表现形式就是带有变量的RDF。
- 匹配,匹配到符合指定图模式的子图。
- 绑定,将结果绑定到查询图模式对应的变量上。
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
