SPARQL

维基百科,自由的百科全书
跳转到导航 跳转到搜索
SPARQL
File:W3C Icon.svg
编程范型查询语言
实现者W3C
发行时间2008年,​18年前​(2008
当前版本
    Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
    网站www.w3.org/TR/sparql11-query/

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

    一个SPARQL查询由一些三体英语Triplestore组合、与逻辑或逻辑,及选项组合所组成[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. (英文)SPARQL讓Web閃閃發光. eWeek. May 2, 2006 [2007-01-17]. 
    2. ^ (英文)W3C語意網活動新聞 - SPARQL已是一個建議標準. W3.org. 2008-01-15 [2009-10-01]. (原始内容存档于2012-06-02). 
    3. ^ (英文)XML與Web服務新聞. xml.org. 6 October 2006 [2007-01-17]. (原始内容存档于2007-05-22). 
    4. ^ (英文)SPARQL實作 - ESW Wiki. Esw.w3.org. [2009-10-01]. (原始内容存档于2009-09-28). 

    外部链接[编辑]

    公开的 SPARQL Web服务


    Module:Authority_control第183行Lua错误:attempt to index field 'wikibase' (a nil value)