SPARQL查詢的特點_第1頁
SPARQL查詢的特點_第2頁
SPARQL查詢的特點_第3頁
SPARQL查詢的特點_第4頁
SPARQL查詢的特點_第5頁
已閱讀5頁,還剩6頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、SPARQL查詢的特點語義網開創了數據集成的新時代當然,已經有許多不同格式的現成數 據。將所有這些數據轉換成RDF(語義網使用的格式)將是一個巨大的 工程,所以最好以RDF的形式公開現有的數據介紹了語義網的核心 概念和標準,闡述了如何將LDAP目錄作為一種服務公開,語義網應 用程序可以使用開源的SquirrelRDF工具。采用了通用靈活的RDF(資源描述框架)標準,為數據共享和集成開 辟了一個新時代。RDF的特性使得跨不同數據源合并數據和查詢變 得很容易大量數據以其他形式存在,如XML、關系數據庫和LDAP 目錄。RDF非常靈活,可以完全表達這些格式。然而,將現有數據 轉換成RDF是一項巨大而

2、昂貴的任務,并且在許多情況下是不必要 的。一些工具可以將現有數據公開為網絡端點,這些端點可以通過語 義網的查詢語言SPARQL進行查詢SquirrelRDF就是其中之一。這個 開源工具(參見參考資料中的鏈接)是耶拿語義網框架的一部分。本文的目的是解釋如何為可以通過SPARQL查詢的LDAP目錄創建 端點,并介紹一個重要的語義網概念。在創建了端點之后,我還將解 釋如何使用一些耶拿 Java。班級得到進一步提高。最后,使用 JavaScript從基于瀏覽器的客戶端進行查詢。什么是語義網?語義網是一種新興的技術,它基于一組表示數據、查詢數據和對數 據應用規則的標準核心技術包括用于表示的 RDF、用于

3、查詢的SPARQL、用于構造的RDFS以及用于構造和推理的OWL。語義網 有許多突出的優點,包括更簡單的數據集成、更準確的搜索、更方便 的知識管理等。因此,語義網這個詞的含義越來越豐富(參見參考資 料中關于語義網標準的更多信息)RDF是語義網的基礎:一種將數據表示為有向加權圖的標準資源是 以全球唯一的、可解析的URI標記的實體圖中的節點是資源和單詞。 節點由有向邊連接,邊用謂詞標記。圖表可以序列化,列出圖表中的 每條邊。每條邊稱為一條語句,有一個主語:邊的源點)、一個謂語(邊 的標簽)和一個賓語(邊的匯點)因為每一個命題都有一個主語、謂語和 賓語,所以也被稱為三元組每個命題的主題必須是一種資源

4、謂詞也是 資源。命題的對象可以是資源或文本。RDF和XML之間有一些重要的區別首先,RDF是基于圖的,而XML 是基于樹的RDF沒有明確的順序。所有的邊形成一個集合,而XML 元素有一個順序。最后,RDF是一個沒有標準序列化的數據模型。RDF可以序列化為各種形式,包括RDF-XML、n3、簡潔RDF三重 語言(海龜,參見參考資料)等。清單1中的示例使用海龜來描述兩個 人的一些聯系信息。清單1。RDF 前綴的示例:.afoaf:人;foaf:name foaf:mbox。foaf:phone foaf:knows;電話第一行定義了數據前綴,因此可以縮寫為您可以指定多個前綴此外, 海龜使用分號(D

5、E ); DE )意味著后續行中的謂詞和對象使用相同 的主語。謂詞是一個RDF類型的謂詞(謂詞粘貼到目標圖URI字段 中)輸入查詢并單擊獲取結果后,將檢索并查詢海龜文件。SPARQL有四種類型的查詢:DE SELECTEDE :返回一組滿足查詢的變量綁定(類似于SQLDE SELECTDE )非常適合生成供應用程序使用的數據DE 構造者 :返回一個圖(一組RDF命題)適用于檢索和轉換RDF返 回一個布爾值,指示查詢結果是否存在de 描述符:依賴于實現接收資源并返回描述該資源的圖形清單2演示了 DESELECTDE 查詢清單2。示例查詢:前綴Foaf:選擇?人?電話:?個人foaf:姓名?電話?

6、 phone 結果:-| person | phone |=二合并數據非常方便,因為CONSTRUCT圖中的謂詞不一定與原始圖中的相同。這個列表查詢的是電話號碼,但是一個新的圖表是在它的位置使用不同的謂詞構建的清單3。SPARQL CONSTRUCT查詢示例:前綴 FOAF:前綴風:CONSTRUCT (?個人foaf:姓名?辦公室電話?電話哪里?個人foaf:姓名?電話?如何定義phone結果:foaf: phonede ?您可以訪問代碼/foaf/0.1/電話代碼數據的結構不受限制XML是分層的,在關系數據庫中建模(和查詢) 圖形結構非常困難。SPARQL不需要設計數據訪問接口搜索應用編程

7、接口(如搜索員工) 通常要么功能非常有限,要么過于復雜。數據易于合并合并數據(不同的圖)是一個簡單的操作,只需要建立 一個包含圖中所有三元組的集合。世界上唯一的資源減少了歧義如果 有必要,OWL規則可以用來將不同URIs的資源映射到同一個URI可以添加結果(使用RDFS和OWL),但結構不是強制性的向資源添 加未指定的屬性不會使數據無效它也不會破壞與數據交互的現有代 碼。SquirrelRDF 入門Jena語義網絡框架包括RDF存儲和查詢執行組件SquirrelRDF是一 個工具,它公開關系數據庫和LDAP中的數據,以便通過SPARQL 進行查詢本文主要討論SquirrelRDF的LDAP組件

8、。(有關這些項目的 更多信息,請參見參考資料LDAP目錄本身的結構可以很容易地轉換成RDF每個LDAP對象類 都有一組屬性其中一些屬性指向文字值(如名稱),而其他屬性指向其 他對象(如由DN指定的工作區)下載SquirrelRDF源代碼耶拿也是必需的(下載推薦版 本)SquirrelRDF主頁詳細介紹了所需的各種信息(參見參考資料)安裝后,第一步是找到LDAP存儲模式如果沒有要測試的LDAP存儲, 您可以安裝OpenLDAP并按照說明創建一個簡單的地址簿(請參見參 考資料,盡管這可能不是必需的,因為本文的目標是利用現有的數據 源)該模式包含所有不同的對象類及其屬性可以通過分析屬性來確定目錄中對

9、象之間的關系。這個例子使用了一個非常簡單的LDAP模式其中,德人類包含一 些基本屬性(如姓名和電話),并指向另一個對象類德 辦公地點 德De 辦公地點包括名稱、兩個街道地址字段、城市和州“人員” 也有一個指向另一個“人員”的經理屬性現在創建從LDAP模式到RDF的映射SquirrelRDF使用RDF文件 來表示這種映射謂詞指定了 LDAP存儲的位置映射允許分配兩種類 型的RDF謂詞:文字對象或資源對象姓名和電話等基本屬性被映射到 文字對象謂詞中。這種類型的映射需要LDAP屬性名和RDF謂詞名 然后,您可以將它鏈接到資源假設需要映射到清單4創建了一個要鏈 接的資源,然后將它鏈接到配置資源清單4。

10、SquirrelRDF文本映射 前綴 Foaf:。 前綴 Lmap:。Lmap:Mapprop:NameMapping .:NameMapping Lmap:PropertyFoaf:Name; Lmap:屬性請注意,將這些連接在一起的URIs是不相關的,可以用空白節點代 替,即沒有URIs的資源它不同于空白的URI的資源,并包括這些資 源。空白URI是一個相對URI,因此解決海龜文件的位置清單5用一個空白節點替換了資源,并用方括號表示兩個命題片段 都使用了一個空白節點主題。這些方括號出現在謂詞之后,表示空節 點是命題的對象。清單5。SquirrelRDF文本映射到一個空節點 prefifaf

11、:。 prefif map:。lmap:maps proplmap:propertfaf:name;要映射指向專有名詞的LDAP屬性,您可以將 空白節點的類型指定為這確保了分配的謂詞指向資源(而不是文本) 清單6顯示了完整的配置文件,包括兩個屬性默認情況下,LDAP屬 性分配個文字資源謂詞請注意,如果可能的話,最好使用現有的謂詞,這 里使用了一些FOAF本體的詞匯這里還有一個位置術語表,但是這里 沒有用到。清單6。映射前綴RDF:。 前綴 LMAP:。前綴人:。前綴OL:。A LMAP:地圖;lmap:服務器;#個人屬性Imap:映射lmap:屬性 foaf:名稱;lmap:屬性 lmap:M

12、apSproplmap:property foaf:phone;lmap:attribute lmap:MapSpoplmap:property people:ol;lmap:屬性; a lmap:ObjectProperty; ; lmap:mapsProplmap:物業人員:經理;lmap:屬性; a lmap:ObjectProperty;# OfficeLocation 屬性 lmap:mapsProplmap:屬性 ol:address 1; lmap:attribute lmap:MapSproplmap:property ol:address 2; lmap:attribute

13、lmap:MapSprop lmap:property ol:city; lmap:屬性 lmap:MapSproplmap:property ol:state; lmap:attribute lmap:MapSproplmap:property ol:Postal Code; Lmap:屬性。實驗映射SquirrelRDF為運行SPARQL查詢提供了命令行工具在進一步開發 之前進行測試是一個好方法將清單7中的查詢保存到一個文件中清單7。測試查詢(測試。前綴:選擇?人?電話:?個人foaf:姓名?電話?電話運行。查詢代碼 以代碼 dw.ttlDE (映射文件名)和代碼 test.rqDE (查

14、詢文件名)作為參數你應該得到某人的URI和電話號 碼。如果你更進一步,清單8查詢在一個州工作的所有雇員(可能很多) 請注意,搜索者的姓名和城市被查詢。清單8。測試查詢(test2.rq)前綴foaf:選擇?人?城市?說出?人名?名字。?人物:ol? officelocationo? officelocation ol:state ol:city?城市 將SquirrelRDF設置為服務我們希望將SquirrelRDF設置為一個HTTP服務,以便網絡客戶端 可以使用它SquirrelRDF是分布式的,它使用一個簡單的Servlet來公開HTTP 服務端點。ServletDE )它可以用任何你喜歡

15、的Servlet容器來構建。 允許在測試之前對查詢網址進行編碼,并將其作為一個參數傳遞訪 問。對象知道它是什么類型的查詢,因此它可以用來確定de com . HP . HPL . jena . query . engine 1 . queryengende 應該做什么。不同的 查詢類型返回不同類型的數據:德 ASKDE 返回布爾值,德構造 德和德描述返回圖(技術上,返回圖的包裝模型德),德選擇德 返回結果集清單9。處理其他類型的 SPARQL查詢。 intquerytype = q . getquerytype();模型 m =空;開關(QueryType)案例查詢。QueryTypeAsk:

16、布爾 b = QE . ExecAsk();字符串=ResultSetFormatter . AsXMLString(b); resp . SetHeader( resp . GetOutputStream()。write(str . GetBytes(); 休息;案例查詢。查詢類型構造:獲取模型。m = QE . ExecConstruct();resp . SetHeader(模型可以序列化自身。序列化格式可以作為參數傳入,默認是以RDF/XML的形式寫 出。m . write(resp . GetOutputStream(); 休息;案例查詢。query TypeDescript:m =

17、 QE . ExecConstruct();resp . SetHeader( m . write(resp . GetOutputStream(); 休息;案例查詢。查詢類型選擇:結果集結果=QE . ExecSelect();resp . SetHeader(ResultSetformatter . OutputsXMl(resp . GetOutputStream(),結果);休 息;獲取JSON輸出JSON是一種數據序列化格式,可用于創建帶有JavaScript計時器的 對象JSON經常被用作一種網絡數據訪問格式,因為基于JavaScript 瀏覽器的應用程序可以使用結構化數據,而不需要解析XML數據(參 見參考資料)清單10顯示了清單2和3的JSON格式結果清單10。JSON查詢結果 de com . HP . HPL . jena . Query . resultsetformade 工具類用于輸 出SPARQL查詢結果清單9使用它以XML格式輸出結果(查詢)結果 也可以是RDF格式的。毫不奇怪,使用這個工具類還可以將結果綁 定到JSON,如清單11所示清單11。將JSON添加到SPARQL查詢支持字符串輸出=請求。GetParameter ( if(輸出。等于(RESP。setHeader(ResultSetFormatter。RESP。獲取輸

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論