SPARQL
编程范型 | 查詢語言 |
---|---|
實作者 | W3C |
发行时间 | 2008年 |
当前版本 |
|
網站 | www |
SPARQL(讀做「sparkle」[2])是一種用於資源描述框架上的查詢語言,它的名字是一個遞迴縮寫,代表「SPARQL Protocol and RDF Query Language(SPARQL協定與RDF查詢語言)」。它的標準化為全球資訊網協會的RDF資料存取工作小組(DAWG)所進行,被認為是語意網科技的一個關鍵。2008年1月15日,SPARQL正式成為一項W3C推薦標準[3]。
一個SPARQL查詢由一些三體組合、與邏輯、或邏輯,及選項組合所組成[4] 。
SPARQL現已有在多個程式語言上的实现了[5]。在一個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#」。
參考
- ^ SPARQL 1.1, SPARQL, 2013-03-21, Wikidata Q114898694
- ^ Jim Rapoza. (英文)SPARQL讓Web閃閃發光. eWeek. May 2, 2006 [2007-01-17].
- ^ (英文)W3C語意網活動新聞 - SPARQL已是一個建議標準. W3.org. 2008-01-15 [2009-10-01]. (原始内容存档于2012-06-02).
- ^ (英文)XML與Web服務新聞. xml.org. 6 October 2006 [2007-01-17]. (原始内容存档于2007-05-22).
- ^ (英文)SPARQL實作 - ESW Wiki. Esw.w3.org. [2009-10-01]. (原始内容存档于2009-09-28).
外部連結
- (英文)SPARQL 1.1 概述(页面存档备份,存于互联网档案馆)
- (英文)SPARQL 1.0 詢問語言規範書(页面存档备份,存于互联网档案馆)
公开的 SPARQL Web服务