SPARQL
Template:NoteTA 脚本错误:没有“Infobox”这个模块。脚本错误:没有“Check for unknown parameters”这个模块。 SPARQL(读做“sparkle”[1])是一种用于资源描述框架上的查询语言,它的名字是一个递回缩写,代表“SPARQL Protocol and RDF Query Language(SPARQL协定与RDF查询语言)”。它的标准化为万维网协会的RDF资料存取工作小组(DAWG)所进行,被认为是语意网科技的一个关键。2008年1月15日,SPARQL正式成为一项W3C推荐标准[2]。
一个SPARQL查询由一些Template:Le组合、与逻辑、或逻辑,及选项组合所组成[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个三体组合的配对,将对应的变数代表的值找出来。很重要的一点是这是“属性导向”的(类的配对只能从属性里找出来。 脚本错误:没有“Labelled list hatnote”这个模块。
为了让询问变得更精简,SPARQL可以让使用者定义前辍与URI底,与Turtle类似。在这个询问中,“abc”这个前辍代表“http://example.com/exampleOntology#”。
参考[编辑]
外部链接[编辑]
- (英文)SPARQL 1.1 概述(页面存档备份,存于互联网档案馆)
- (英文)SPARQL 1.0 询问语言规范书(页面存档备份,存于互联网档案馆)
公开的 SPARQL Web服务
Template:查询语言
脚本错误:没有“Navbox”这个模块。
脚本错误:没有“Navbox”这个模块。
脚本错误:没有“Authority control”这个模块。脚本错误:没有“Check for unknown parameters”这个模块。