SPARQL查詢的特點(diǎn)_第1頁
SPARQL查詢的特點(diǎn)_第2頁
SPARQL查詢的特點(diǎn)_第3頁
SPARQL查詢的特點(diǎn)_第4頁
SPARQL查詢的特點(diǎn)_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

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

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

3、查詢的SPARQL、用于構(gòu)造的RDFS以及用于構(gòu)造和推理的OWL。語義網(wǎng) 有許多突出的優(yōu)點(diǎn),包括更簡單的數(shù)據(jù)集成、更準(zhǔn)確的搜索、更方便 的知識(shí)管理等。因此,語義網(wǎng)這個(gè)詞的含義越來越豐富(參見參考資 料中關(guān)于語義網(wǎng)標(biāo)準(zhǔn)的更多信息)RDF是語義網(wǎng)的基礎(chǔ):一種將數(shù)據(jù)表示為有向加權(quán)圖的標(biāo)準(zhǔn)資源是 以全球唯一的、可解析的URI標(biāo)記的實(shí)體圖中的節(jié)點(diǎn)是資源和單詞。 節(jié)點(diǎn)由有向邊連接,邊用謂詞標(biāo)記。圖表可以序列化,列出圖表中的 每條邊。每條邊稱為一條語句,有一個(gè)主語:邊的源點(diǎn))、一個(gè)謂語(邊 的標(biāo)簽)和一個(gè)賓語(邊的匯點(diǎn))因?yàn)槊恳粋€(gè)命題都有一個(gè)主語、謂語和 賓語,所以也被稱為三元組每個(gè)命題的主題必須是一種資源

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

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

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

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

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

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

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

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

12、apSproplmap:property foaf:phone;lmap:attribute lmap:MapSpoplmap:property people:ol;lmap:屬性; a lmap:ObjectProperty; ; lmap:mapsProplmap:物業(yè)人員:經(jīng)理;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:屬性。實(shí)驗(yàn)映射SquirrelRDF為運(yùn)行SPARQL查詢提供了命令行工具在進(jìn)一步開發(fā) 之前進(jìn)行測試是一個(gè)好方法將清單7中的查詢保存到一個(gè)文件中清單7。測試查詢(測試。前綴:選擇?人?電話:?個(gè)人foaf:姓名?電話?電話運(yùn)行。查詢代碼 以代碼 dw.ttlDE (映射文件名)和代碼 test.rqDE (查

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

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

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

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論