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规范中没有规定节点返回的三重,事实上取决于系统。实现返回节点的所有输出边缘