SPARQL

SPARQL(读做「sparkle」[1])是一种用于资源描述框架上的查找语言,它的名字是一个递归缩写,代表「SPARQL Protocol and RDF Query Language(SPARQL协定与RDF查找语言)」。它的标准化为万维网协会RDF数据访问工作小组(DAWG)所进行,被认为是语意网科技的一个关键。2008年1月15日,SPARQL正式成为一项W3C推荐标准[2]

SPARQL
查找语言
实作者 W3C
2008年2008
当前版本
  • 1.1
网站www.w3.org/TR/sparql11-query/

一个SPARQL查找由一些三体组合、与逻辑或逻辑,及选项组合所组成[3]

SPARQL现已有在多个编程语言上的实现了[4]。在一个2006年5月的访问里,提姆·柏纳李说到:「SPARQL将会带来很大的变化」。

优点

SPARQL可以让用户写出广域上不含糊的询问。举例来说,以下的询问可以取得世界上所有人的姓名与Email:

PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name ?email
WHERE {
  ?person a foaf:Person.
  ?person foaf:name ?name.
  ?person foaf:mbox ?email.
}

假设用来描述本体最终统一为FOAF。注意到所有在SPARQL里的标示都是URI都是广域上不含糊的,与SQL常用的字段名「email」或是「e-mail」有所不同。这是此询问不含糊的根本原因。

这个询问可以被散布到多个SPARQL节点上,被计算之后结果再聚合起来,这个过程被称作联合式搜索

例子

另一个SPARQL询问的例子如下,这仿真了以下的问题「非洲里有哪些国家首都?」:

PREFIX abc: <http://example.com/exampleOntology#>
SELECT ?capital ?country
WHERE {
  ?x abc:cityname ?capital ;
     abc:isCapitalOf ?y .
  ?y abc:countryname ?country ;
     abc:isInContinent abc:Africa .
}

变量的前缀是?$。回传会包含?captial?country的所有可能答案。

SPARQL询问处理器会找到所有满足这4个三体组合的配对,将对应的变量代表的值找出来。很重要的一点是这是「属性导向」的(类的配对只能从属性里找出来。

为了让询问变得更精简,SPARQL可以让用户定义前辍与URI底,与Turtle类似。在这个询问中,「abc」这个前辍代表「http://example.com/exampleOntology#」。

参考

  1. Jim Rapoza. . eWeek. May 2, 2006 [2007-01-17].
  2. . W3.org. 2008-01-15 [2009-10-01]. (原始内容存档于2012-06-02).
  3. . xml.org. 6 October 2006 [2007-01-17]. (原始内容存档于2007-05-22).
  4. . Esw.w3.org. [2009-10-01]. (原始内容存档于2009-09-28).

外部链接

公开的 SPARQL Web服务


This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.