2019-05-19 CHAPTER 4 Semantic Web application architecture

到目前為止,我們已經(jīng)看到RDF如何在Web上以分布式的方式表示數(shù)據(jù)。因此,它構(gòu)成了語(yǔ)義Web的基礎(chǔ),語(yǔ)義Web是一個(gè)由數(shù)據(jù)組成的Web,任何人都可以在其中談?wù)撊魏沃黝}。本書的重點(diǎn)是在語(yǔ)義Web上建模:描述和定義分布式數(shù)據(jù),使數(shù)據(jù)能夠以有用和有意義的方式重新組合在一起。在一本關(guān)于建模的書中,我們可以說(shuō)沒(méi)有討論系統(tǒng)體系結(jié)構(gòu)的空間——計(jì)算機(jī)系統(tǒng)的組件可以在有用的應(yīng)用程序中實(shí)際使用這些模型。但這本書是為工作的本體論誰(shuí)建立模型,使他們可以使用。但是用于什么?這些模型用于構(gòu)建一些利用Web上分布的信息的應(yīng)用程序。簡(jiǎn)而言之,把語(yǔ)義Web工作,我們需要描述,至少在高級(jí)別上,語(yǔ)義Web應(yīng)用程序特定的結(jié)構(gòu),組件組成,輸入它的種類(的地方),如何利用RDF,為什么這是不同于其他應(yīng)用程序體系結(jié)構(gòu)。

語(yǔ)義Web應(yīng)用程序的許多組件都是由專門從事語(yǔ)義Web技術(shù)的公司作為支持產(chǎn)品提供的,并且是在各種許可證下作為自由軟件提供的。研究小組和產(chǎn)品公司正在不斷地開(kāi)發(fā)新的軟件。在本章中,我們不描述任何特定的工具,而是討論組成語(yǔ)義Web部署的組件的類型以及它們是如何組合在一起的。

RDF Parser/Serializer :我們已經(jīng)看到了RDF的許多序列化,包括XML中的W3C標(biāo)準(zhǔn)序列化。RDF解析器讀取這些格式中的一種(或多種)文本,并在RDF數(shù)據(jù)模型中將其解釋為三元組。RDF序列化器則相反;它接受一組三元組并創(chuàng)建一個(gè)文件,該文件以序列化形式之一表示該內(nèi)容。

RDF Store:我們已經(jīng)看到RDF如何以三元組的形式分發(fā)數(shù)據(jù)。RDF存儲(chǔ)(有時(shí)稱為三元組存儲(chǔ))是一個(gè)數(shù)據(jù)庫(kù),它經(jīng)過(guò)調(diào)優(yōu)以三元組的形式存儲(chǔ)和檢索數(shù)據(jù)。除了任何數(shù)據(jù)庫(kù)的常見(jiàn)功能之外,RDF存儲(chǔ)還具有從多個(gè)數(shù)據(jù)源合并信息的附加功能,這是RDF標(biāo)準(zhǔn)所定義的。

RDF Query Engine :與RDF存儲(chǔ)密切相關(guān)的是RDF查詢引擎。查詢引擎提供了根據(jù)結(jié)構(gòu)化查詢從RDF存儲(chǔ)中檢索信息的功能。

Application:應(yīng)用程序?qū)ζ涮幚淼臄?shù)據(jù)執(zhí)行一些工作:分析、用戶交互、歸檔等等。這些功能是使用一些通過(guò)查詢(使用RDF查詢引擎處理)訪問(wèn)RDF存儲(chǔ)的編程語(yǔ)言實(shí)現(xiàn)的。

在熟悉的關(guān)系數(shù)據(jù)支持的應(yīng)用程序中,這些組件中的大多數(shù)都具有相應(yīng)的組件。關(guān)系數(shù)據(jù)庫(kù)本身對(duì)應(yīng)于RDF存儲(chǔ),因?yàn)樗鎯?chǔ)數(shù)據(jù)。數(shù)據(jù)庫(kù)包含一種查詢語(yǔ)言,以及用于訪問(wèn)該數(shù)據(jù)的相應(yīng)查詢引擎。在這兩種情況下,應(yīng)用程序本身都是使用一種通用編程語(yǔ)言編寫的,這種語(yǔ)言用于查詢和處理結(jié)果。至少就標(biāo)準(zhǔn)而言,在關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)中,解析器/序列化器沒(méi)有直接的對(duì)應(yīng)項(xiàng)。沒(méi)有一種關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)序列化允許將其導(dǎo)入競(jìng)爭(zhēng)關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)而無(wú)需更改語(yǔ)義。(這是RDF存儲(chǔ)相對(duì)于傳統(tǒng)數(shù)據(jù)存儲(chǔ)的一個(gè)關(guān)鍵優(yōu)勢(shì)。)在接下來(lái)的部分中,我們將詳細(xì)研究這些功能。由于這些類別中的每一種新產(chǎn)品都是在不斷開(kāi)發(fā)的基礎(chǔ)上開(kāi)發(fā)的,所以我們只籠統(tǒng)地描述它們,而不涉及特定的產(chǎn)品。

4.1RDF Parser/Serializer

一個(gè)基于RDF的系統(tǒng)怎么開(kāi)始?

谷歌可以找到數(shù)百萬(wàn)的擴(kuò)展名為.rdf的文件。這些數(shù)據(jù)中的任何一個(gè)都能成為一個(gè)RDF應(yīng)用的資源。但這些文件是無(wú)用的,除非我們有一個(gè)程序可以讀取它們。這個(gè)程序就是RDF Parser。RDF解析器將以某種RDF格式的文件作為輸入,大部分的parser支持標(biāo)準(zhǔn)的RDF/XML格式,RDF解析器接受這樣一個(gè)文件作為輸入,并將其轉(zhuǎn)換為該文件中表示的三元組的內(nèi)部表示形式。此時(shí),三元組存儲(chǔ)在三元存儲(chǔ)庫(kù)中,并可用于該存儲(chǔ)庫(kù)的所有操作。

此刻的三元組也可以被序列化回來(lái),不管是不是同一個(gè)文本形式。這就是parser的逆操作,序列化??梢允褂媒馕銎骱托蛄谢鲗?duì)三元組進(jìn)行“往返”操作,如果你序列化了一個(gè)三元組集合,然后使用相應(yīng)的解析器(例如,用于Turtle序列化的Turtle解析器)解析得到的字符串,結(jié)果是與流程開(kāi)始時(shí)相同的一組三元組。注意,如果從表示一些三元組的文本文件開(kāi)始,則不一定是這樣。即使在單一格式中,也可能有許多不同的文件表示同一組三元組。因此,通常不可能在RDF文件中讀取,再次導(dǎo)出它,并確保結(jié)果文件將與輸入文件完全相同(逐個(gè)字符)。

Other data sources

于RDF標(biāo)準(zhǔn)表示的解析器和序列化器對(duì)于RDF中數(shù)據(jù)的系統(tǒng)處理和歸檔非常有用。雖然這些格式中有相當(dāng)多的數(shù)據(jù)可用,甚至還有一些RDF中還沒(méi)有的數(shù)據(jù)可用。幸運(yùn)的是,對(duì)于許多常見(jiàn)的數(shù)據(jù)格式(例如表格數(shù)據(jù)),將這些格式轉(zhuǎn)換為RDF三元組非常容易。

我們已經(jīng)看到了如何以一種自然的方式將表格數(shù)據(jù)映射成三元組,這種方法也能夠用于關(guān)系數(shù)據(jù)庫(kù)或者電子表格?;诖擞成鋱?zhí)行轉(zhuǎn)換的工具(盡管嚴(yán)格來(lái)說(shuō)不是解析器)在語(yǔ)義解決方案中扮演與解析器相同的角色:它們將三元組存儲(chǔ)與三元組形式的信息源連接起來(lái)。大多數(shù)RDF系統(tǒng)都包含某種表輸入轉(zhuǎn)換器。一些工具專門針對(duì)關(guān)系數(shù)據(jù)庫(kù),包括適當(dāng)處理外鍵引用,而另一些工具則更直接地處理電子表格。這類工具稱為轉(zhuǎn)換器,因?yàn)樗鼈兺ǔ⑿畔哪撤N形式轉(zhuǎn)換為RDF,而且常常轉(zhuǎn)換為標(biāo)準(zhǔn)形式的RDF,如Turtle。這允許它們與任何其他RDF一起使用。語(yǔ)義Web的另一個(gè)豐富的數(shù)據(jù)來(lái)源可以在現(xiàn)有的Web頁(yè)面(即HTML頁(yè)面)中找到。此類頁(yè)面通常包含結(jié)構(gòu)化信息,如聯(lián)系信息、事件描述、產(chǎn)品描述、出版物等。這些信息一旦以RDF形式提供,就可以在語(yǔ)義Web上以新穎的方式組合起來(lái)。

在web頁(yè)面中編碼信息的相關(guān)方法是一種稱為微格式的趨勢(shì)。微格式的概念是,一些web頁(yè)面作者可能愿意在其web頁(yè)面中嵌入結(jié)構(gòu)化信息。為了使它們能夠做到這一點(diǎn),為web頁(yè)面上常用的項(xiàng)目開(kāi)發(fā)了一個(gè)標(biāo)準(zhǔn)詞匯表(通常作為不影響瀏覽器顯示頁(yè)面方式的特殊標(biāo)記屬性嵌入到HTML中)。最初的一些微格式用于名片(在受控詞匯表中包括姓名、職位、公司和電話號(hào)碼)和事件(包括位置、開(kāi)始時(shí)間和結(jié)束時(shí)間)。微格式的一個(gè)限制是需要指定受控詞匯表并提供能夠處理該詞匯表的解析器。如果有人(如W3C)只指定一種語(yǔ)法來(lái)用RDF數(shù)據(jù)標(biāo)記HTML頁(yè)面,豈不是更好?然后,所有微格式將有一個(gè)單獨(dú)的處理腳本。

W3C提出了一種稱為RDFa的格式。RDFa背后的思想非常簡(jiǎn)單:使用HTML中的屬性標(biāo)記嵌入可以解析為RDF的信息。就像微格式一樣,RDFa對(duì)瀏覽器顯示頁(yè)面的方式?jīng)]有影響。許多搜索引擎(谷歌和Yahoo!)和零售商(BestBuy, Overstock.com)已經(jīng)開(kāi)始采用RDFa來(lái)提供機(jī)器可處理的語(yǔ)義Web數(shù)據(jù)。Facebook采用了RDFa的一個(gè)變體作為開(kāi)放圖形協(xié)議的一部分——Facebook中可用的信息網(wǎng)絡(luò)。

RDFa為在Web上共享數(shù)據(jù)提供了兩個(gè)優(yōu)勢(shì)。首先,從數(shù)據(jù)使用者的角度來(lái)看,從標(biāo)記了結(jié)構(gòu)化數(shù)據(jù)提取的頁(yè)面中獲取RDF數(shù)據(jù)要比從沒(méi)有此目的而開(kāi)發(fā)的源中獲取RDF數(shù)據(jù)更容易。但是,更重要的是,從內(nèi)容作者的角度來(lái)看,它允許他們?cè)趙eb頁(yè)面內(nèi)部表達(dá)web頁(yè)面的預(yù)期含義。這確保文檔中的RDF數(shù)據(jù)與文檔本身的預(yù)期含義相匹配。這確實(shí)是語(yǔ)義web中語(yǔ)義一詞的精髓,頁(yè)面作者被賦予在web頁(yè)面中表達(dá)其含義的能力,以供機(jī)器閱讀和使用。

4.2RDF Store

通常做法是用數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù),使它們可以用于將來(lái)。RDF的數(shù)據(jù)存儲(chǔ)方法不同,存儲(chǔ)在一個(gè)叫做RDF store的系統(tǒng)中。RDF Store通常伴隨著一個(gè)parser和一個(gè)serializer,用于從store發(fā)布信息。正如傳統(tǒng)(例如,關(guān)系)數(shù)據(jù)存儲(chǔ)的情況一樣,RDF存儲(chǔ)也可能包括查詢引擎,如下一節(jié)所述。傳統(tǒng)的數(shù)據(jù)存儲(chǔ)根據(jù)各種性能特性進(jìn)行區(qū)分,包括可存儲(chǔ)的數(shù)據(jù)量、可訪問(wèn)或更新數(shù)據(jù)的速度以及查詢引擎支持的各種查詢語(yǔ)言。當(dāng)應(yīng)用于RDF存儲(chǔ)時(shí),這些特性同樣相關(guān)。

與關(guān)系數(shù)據(jù)存儲(chǔ)相反,RDF存儲(chǔ)包含一個(gè)基本功能,即將兩個(gè)數(shù)據(jù)集合并在一起的能力。由于RDF數(shù)據(jù)模型具備靈活性,這樣的合并操作很容易定義。每一個(gè)數(shù)據(jù)商店代表了一個(gè)RDF三元組集合;兩個(gè)(或多個(gè))數(shù)據(jù)集的合并是單個(gè)數(shù)據(jù)集,其中只包含源數(shù)據(jù)集中的所有三元組。具有相同URI的任何資源(無(wú)論原始數(shù)據(jù)源是什么)在合并的數(shù)據(jù)集中都被認(rèn)為是等價(jià)的。因此,除了評(píng)估數(shù)據(jù)存儲(chǔ)的常用方法之外,RDF存儲(chǔ)還可以根據(jù)合并過(guò)程的效率進(jìn)行評(píng)估。

RDF存儲(chǔ)實(shí)現(xiàn)的范圍從定制的編程數(shù)據(jù)庫(kù)解決方案到專業(yè)供應(yīng)商完全支持的現(xiàn)成產(chǎn)品。從概念上講,三元組存儲(chǔ)最簡(jiǎn)單的關(guān)系實(shí)現(xiàn)是一個(gè)包含三列的表,每一列表示三元組的主語(yǔ)、謂語(yǔ)和賓語(yǔ)。表4.1顯示了一些以這種方式組織的關(guān)于洛杉磯地鐵站的數(shù)據(jù)。

這種表示看起來(lái)很熟悉,和第三章介紹的RDF三元組表示法很想。因?yàn)樗m合關(guān)系數(shù)據(jù)庫(kù)表示,可以使用傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)工具(如SQL)訪問(wèn)它。一個(gè)有經(jīng)驗(yàn)的SQL程序員寫這樣一個(gè)查詢語(yǔ)句是沒(méi)困難的,List the dc:title of every instance of metro:Metro in the table,作為實(shí)現(xiàn)表示,存在一些明顯的問(wèn)題,包括在第一列中復(fù)制信息,以及圍繞字符串值(如uri)構(gòu)建索引的難度。

4.2.1?RDF data standards and interoperability of RDF stores

RDF數(shù)據(jù)標(biāo)準(zhǔn)和RDF存儲(chǔ)中的可互操作性

RDF存儲(chǔ)與關(guān)系存儲(chǔ)具有相當(dāng)大的相似性,特別是在如何評(píng)估存儲(chǔ)質(zhì)量方面。RDF存儲(chǔ)的顯著區(qū)別來(lái)自RDF數(shù)據(jù)模型和RDF/XML序列化語(yǔ)法的標(biāo)準(zhǔn)化。幾個(gè)相互競(jìng)爭(zhēng)的關(guān)系數(shù)據(jù)存儲(chǔ)供應(yīng)商在今天的市場(chǎng)上占據(jù)著主導(dǎo)地位,并且已經(jīng)持續(xù)了幾十年。雖然這些產(chǎn)品都基于用于數(shù)據(jù)表示的關(guān)系代數(shù)的相同基本思想,但是將整個(gè)數(shù)據(jù)庫(kù)從一個(gè)系統(tǒng)轉(zhuǎn)移到另一個(gè)系統(tǒng)是一個(gè)困難的過(guò)程。也就是說(shuō),沒(méi)有一種標(biāo)準(zhǔn)的序列化語(yǔ)言可以完全描述關(guān)系數(shù)據(jù)庫(kù),使其能夠自動(dòng)導(dǎo)入競(jìng)爭(zhēng)對(duì)手的系統(tǒng)。這樣的任務(wù)是可能的,但通常需要數(shù)據(jù)庫(kù)程序員跟蹤源數(shù)據(jù)庫(kù)的細(xì)節(jié),以確保它們?cè)谀繕?biāo)系統(tǒng)中得到了忠實(shí)的表示。

RDF的標(biāo)準(zhǔn)化工作使得RDF存儲(chǔ)的情況非常不同。正如在傳統(tǒng)數(shù)據(jù)庫(kù)中,存在著幾個(gè)競(jìng)爭(zhēng)廠商和項(xiàng)目。與關(guān)系數(shù)據(jù)庫(kù)的情況形成鮮明對(duì)比的是,所有這些產(chǎn)品都共享底層RDF數(shù)據(jù)模型,而且,更具體地說(shuō),它們都可以以任何標(biāo)準(zhǔn)格式(RDF/XML或Turtle)導(dǎo)入和導(dǎo)出數(shù)據(jù)集。這使得將RDF數(shù)據(jù)集(或多個(gè)RDF數(shù)據(jù)集)從一個(gè)RDF存儲(chǔ)庫(kù)傳輸?shù)搅硪粋€(gè)RDF存儲(chǔ)庫(kù)成為一項(xiàng)常規(guī)任務(wù)。這個(gè)特性是早期和積極的標(biāo)準(zhǔn)化過(guò)程的結(jié)果,它使得從一個(gè)RDF存儲(chǔ)開(kāi)始變得容易得多,并且由于知道系統(tǒng)可以根據(jù)需要遷移到另一個(gè)RDF存儲(chǔ)中,所以它是安全的。它還簡(jiǎn)化了聯(lián)合存儲(chǔ)在多個(gè)RDF存儲(chǔ)中的數(shù)據(jù)的問(wèn)題,這些數(shù)據(jù)可能來(lái)自不同的供應(yīng)商源。

4.2.2?RDF query engines(RDF查詢引擎)

RDF存儲(chǔ)需要查詢語(yǔ)言。這個(gè)功能上,RDF存儲(chǔ)和關(guān)系數(shù)據(jù)庫(kù)或者XML存儲(chǔ)類似。毫無(wú)意外地,在RDF早期階段,大量的查詢語(yǔ)言可用,每一個(gè)都被基于RDF的產(chǎn)品支持,或者開(kāi)源項(xiàng)目。從這些查詢語(yǔ)言的普遍特性中,W3C已經(jīng)著手標(biāo)準(zhǔn)化RDF查詢語(yǔ)言SPARQL。我們將在下一章討論SPARQL查詢語(yǔ)言的詳細(xì)信息。

RDF查詢引擎與RDF存儲(chǔ)緊密地聯(lián)系在一起。要解決查詢,引擎依賴于RDF存儲(chǔ)的索引和內(nèi)部表示:存儲(chǔ)對(duì)查詢引擎的調(diào)優(yōu)越好,它的性能就越好。對(duì)于大型應(yīng)用程序,最好有一個(gè)RDF存儲(chǔ)和查詢引擎,即使面對(duì)非常大的數(shù)據(jù)集,它也能保持性能。對(duì)于較小的應(yīng)用程序,其他特性(例如,成本、易于安裝、平臺(tái)、開(kāi)源狀態(tài)以及與其他企業(yè)系統(tǒng)的內(nèi)置集成)可能占主導(dǎo)地位。

SPARQL查詢語(yǔ)言包含用于通信查詢和結(jié)果的協(xié)議,因此查詢引擎可以充當(dāng)web服務(wù)。這為語(yǔ)義web提供了另一個(gè)數(shù)據(jù)源——所謂的SPARQL端點(diǎn)提供了對(duì)大量結(jié)構(gòu)化RDF數(shù)據(jù)的訪問(wèn)。甚至可以提供對(duì)非三重存儲(chǔ)的數(shù)據(jù)庫(kù)的SPARQL訪問(wèn),從而有效地將SPARQL查詢轉(zhuǎn)換為底層存儲(chǔ)的查詢語(yǔ)言。W3C最近開(kāi)始對(duì)關(guān)系存儲(chǔ)從SPARQL到SQL的轉(zhuǎn)換進(jìn)行標(biāo)準(zhǔn)化。

4.2.3?Comparison to relational queries

共同點(diǎn):都為數(shù)據(jù)提供一個(gè)標(biāo)準(zhǔn)接口,定義數(shù)據(jù)的顯示格式。關(guān)系查詢語(yǔ)言基于連接和外鍵引用的關(guān)系代數(shù)。RDF查詢語(yǔ)言更像謂詞演算中的陳述句。統(tǒng)一變量用于表示模式之間的約束。

區(qū)別:1.關(guān)系查詢描述的是由兩個(gè)或者多個(gè)源表格組合的數(shù)據(jù)表。RDF查詢(不管是SPARQL還是RDF查詢語(yǔ)言都可以)描述一個(gè)新的圖,這個(gè)圖是由描述源RDF的圖的子集組成的。這個(gè)圖,可以使幾個(gè)圖的連接。圖的固有遞歸特性簡(jiǎn)化了基于表的查詢中出現(xiàn)的許多詳細(xì)問(wèn)題。例如,像SPARQL這樣的RDF查詢語(yǔ)言幾乎不需要子查詢結(jié)構(gòu);在很多情況下,一個(gè)查詢就可以達(dá)到同樣的效果。類似地,在SPARQL中沒(méi)有對(duì)應(yīng)于SQL“self-join”的特殊情況。

2.特殊情況下RDF存儲(chǔ)以關(guān)系數(shù)據(jù)庫(kù)中的表格形式,在這種場(chǎng)景中,任何圖形模式匹配都將構(gòu)成該表上的自連接,一些終端開(kāi)發(fā)人員選擇在熟悉的SQL環(huán)境中以這種方式工作。Oracle采用另一種方法使SQL程序員可以訪問(wèn)RDF查詢,方法是為其SQL版本提供自己的SPARQL擴(kuò)展,該擴(kuò)展針對(duì)圖形查詢進(jìn)行了優(yōu)化。他們的SPARQL引擎與SQL腳本語(yǔ)言的表/連接結(jié)構(gòu)集成得很好。

4.3Application Code

數(shù)據(jù)庫(kù)應(yīng)用不只是包含一個(gè)數(shù)據(jù)庫(kù)和一個(gè)查詢引擎,海報(bào)多一些程序代碼,一個(gè)應(yīng)用環(huán)境,可以分析和顯示數(shù)據(jù)庫(kù)中的信息。應(yīng)用訪問(wèn)數(shù)據(jù)庫(kù)的唯一途徑是查詢接口。如表4.1所示。

一個(gè)RDF應(yīng)用應(yīng)該有類似的結(jié)構(gòu),但是它包括一個(gè)RDF parser和Serializer,轉(zhuǎn)換器,RDF合并功能,和RDF查詢引擎。如表4.2

應(yīng)用本身也應(yīng)該有響應(yīng)的格式。通常,用傳統(tǒng)的編程語(yǔ)言。在本例中,RDF功能由該語(yǔ)言的API綁定提供。RDF存儲(chǔ)提供一個(gè)腳本語(yǔ)言作為查詢系統(tǒng)的一部分也很常見(jiàn)。它以一種類似于SQL高級(jí)方言為關(guān)系數(shù)據(jù)庫(kù)應(yīng)用程序提供腳本功能的方式提供對(duì)這些功能的編程訪問(wèn)。

無(wú)論RDF存儲(chǔ)通過(guò)什么方法將這些功能提供給應(yīng)用程序,應(yīng)用程序仍然有責(zé)任使用它們。一下是一些RDF應(yīng)用的例子:

1.Calendar integration:以日歷的形式顯示不同人和組的約會(huì)

2.Map integration:顯示從不同網(wǎng)站、電子表格和數(shù)據(jù)庫(kù)中收集的興趣點(diǎn)的位置,所有這些都在一個(gè)地圖上

3. Content management:為多個(gè)內(nèi)容存儲(chǔ)中可用的信息資源(文檔、web頁(yè)面、數(shù)據(jù)庫(kù)等)創(chuàng)建單個(gè)索引。

應(yīng)用程序?qū)Q定需要抓取或轉(zhuǎn)換哪些信息源(例如,XML中的日記條目、web頁(yè)面的地址列表、內(nèi)容服務(wù)器的目錄列表)。

根據(jù)數(shù)據(jù)的易變性,一些過(guò)程可以設(shè)計(jì)為離線(比如紐約地鐵站的未通知,希爾斯百貨目錄中的專柜,普通化學(xué)結(jié)構(gòu)的分析,都不會(huì)經(jīng)常發(fā)生變化;這類數(shù)據(jù)可以在應(yīng)用程序之外,導(dǎo)入為RDF),其他數(shù)據(jù)不得不經(jīng)常更新。一些數(shù)據(jù)可以保留在RDF存儲(chǔ)本身(關(guān)于這個(gè)團(tuán)隊(duì)的私有信息、訂單信息、專利化學(xué)公式);其他數(shù)據(jù)可以以RDF格式發(fā)布,供其他應(yīng)用程序使用(培訓(xùn)時(shí)間表、目錄特別說(shuō)明、FDA關(guān)于某些化學(xué)品的發(fā)現(xiàn))。

一旦轉(zhuǎn)換、獲取或解析了所有必需的數(shù)據(jù)源,應(yīng)用程序就使用RDF存儲(chǔ)的合并功能來(lái)生成所有合并數(shù)據(jù)的單個(gè)聯(lián)合圖。應(yīng)用程序?qū)?huì)使用這個(gè)聯(lián)合圖進(jìn)行進(jìn)一步的查詢,查詢本身不需要知道聯(lián)合策略或調(diào)度。在執(zhí)行RDF合并時(shí),已經(jīng)發(fā)生了聯(lián)合。

我們可以看出,應(yīng)用程序表現(xiàn)得很像其他的數(shù)據(jù)庫(kù)應(yīng)用,網(wǎng)頁(yè)要顯示任意組員的約會(huì),就包括一個(gè)對(duì)信息的查詢。即使約會(huì)來(lái)自不同的源,關(guān)于團(tuán)隊(duì)成員的信息來(lái)自另一個(gè)源,也要對(duì)聯(lián)合信息圖進(jìn)行查詢。

RDF-backed web portals

當(dāng)應(yīng)用程序的前端是web服務(wù)器時(shí),該體系結(jié)構(gòu)(如圖4.1所示)對(duì)于數(shù)據(jù)庫(kù)支持的web門戶是眾所周知的,這些頁(yè)面是使用許多技術(shù)(例如CGI、ASP、JSP、ZOPE)生成的,這些技術(shù)允許根據(jù)對(duì)數(shù)據(jù)庫(kù)的查詢結(jié)果構(gòu)建web頁(yè)面。在web的早期,web頁(yè)面通常作為文件系統(tǒng)中的文件靜態(tài)存儲(chǔ)。遷移到數(shù)據(jù)庫(kù)支持的門戶是為了允許web站點(diǎn)反映出現(xiàn)在關(guān)系數(shù)據(jù)庫(kù)中的復(fù)雜的相互關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu)。

圖4.2中概述的系統(tǒng)架構(gòu)可以用同樣的方法實(shí)現(xiàn)語(yǔ)義Web門戶。RDF存儲(chǔ)在數(shù)據(jù)庫(kù)支持的門戶中扮演與數(shù)據(jù)庫(kù)相同的角色。需要注意的是,由于圖4.1和4.2中的表示層是分離的,因此在語(yǔ)義web門戶的實(shí)際web頁(yè)面構(gòu)建中可以使用與數(shù)據(jù)庫(kù)支持門戶中使用的相同的所有技術(shù)。但是,與傳統(tǒng)的數(shù)據(jù)支持的web門戶不同,并且由于支持語(yǔ)義web門戶的RDF存儲(chǔ)的分布式特性,一個(gè)RDF支持的web頁(yè)面上的信息通常來(lái)自多個(gè)源。RDF存儲(chǔ)的合并功能支持將這種信息分發(fā)作為web門戶基礎(chǔ)設(shè)施的一部分。當(dāng)門戶由RDF支持時(shí),構(gòu)建分布式web門戶與構(gòu)建所有信息都是本地的門戶沒(méi)有區(qū)別。使用RDF,聯(lián)合web門戶就像豎井門戶一樣簡(jiǎn)單。

4.4Data Federation

RDF數(shù)據(jù)模型從一開(kāi)始就考慮到了數(shù)據(jù)聯(lián)合,來(lái)自任何源的信息都被轉(zhuǎn)換成一組三元組,這樣任何類型的數(shù)據(jù)聯(lián)合——電子表格和XML、數(shù)據(jù)庫(kù)表和web頁(yè)面——都可以通過(guò)一種機(jī)制來(lái)完成。如圖4.2所示,這種聯(lián)合策略,使各種不同的信息源都轉(zhuǎn)換成統(tǒng)一的三元組格式,再把所有的信息聯(lián)合成一個(gè)存儲(chǔ)。這與聯(lián)合策略形成了對(duì)比,在聯(lián)合策略中,應(yīng)用程序使用與該格式對(duì)應(yīng)的方法查詢每個(gè)源。RDF不是指用于編碼數(shù)據(jù)的文件格式或特定語(yǔ)言,而是指用三元組表示信息的數(shù)據(jù)模型。RDF的這個(gè)特性允許以這種方式聯(lián)合數(shù)據(jù)。合并這些信息的機(jī)制,以及RDF數(shù)據(jù)模型的細(xì)節(jié),可以封裝到一個(gè)軟件中——RDF存儲(chǔ)——作為應(yīng)用程序的構(gòu)建塊。

首先聯(lián)合信息,然后查詢聯(lián)合信息存儲(chǔ),將數(shù)據(jù)聯(lián)合的關(guān)注點(diǎn)與應(yīng)用程序的操作關(guān)注點(diǎn)分離。在應(yīng)用程序中編寫的查詢不需要知道特定的三元組來(lái)自何處。這允許一個(gè)查詢?cè)诙鄠€(gè)數(shù)據(jù)源上無(wú)縫操作,而無(wú)需查詢作者進(jìn)行詳細(xì)的計(jì)劃。這還意味著對(duì)應(yīng)用程序的更改將不會(huì)影響應(yīng)用程序本身中的查詢,從而聯(lián)合更多的數(shù)據(jù)源。

RDF應(yīng)用程序的這一特性構(gòu)成了下面討論的大部分內(nèi)容的關(guān)鍵。在討論RDFS和OWL時(shí),我們將假設(shè)應(yīng)用程序所需的任何聯(lián)合已經(jīng)發(fā)生;也就是說(shuō),所有查詢和推斷都將發(fā)生在聯(lián)合圖上。聯(lián)邦圖就是包含來(lái) 自所有聯(lián)邦數(shù)據(jù)源的信息的圖,應(yīng)用程序查詢將在這些數(shù)據(jù)源上運(yùn)行。

SUMMARY

這里提到的RDF的parser,serializer,store和查詢引擎,本身都不是語(yǔ)義網(wǎng)模型,而是包含語(yǔ)義網(wǎng)模型的系統(tǒng)的組件。甚至RDF中表示的信息也不一定是語(yǔ)義模型。這些是構(gòu)建和使用語(yǔ)義模型的構(gòu)件。當(dāng)然,模型將用RDF表示。我們將看到,W3C、RDFS和OWL的語(yǔ)義建模語(yǔ)言完全是用RDF構(gòu)建的,它們可以像任何其他RDF數(shù)據(jù)一樣進(jìn)行聯(lián)合。

語(yǔ)義模型在圖4.2的應(yīng)用程序體系結(jié)構(gòu)中適合什么位置?作為RDF表示的數(shù)據(jù),它們將與所有其他數(shù)據(jù)一起存儲(chǔ)在RDF存儲(chǔ)中。但是語(yǔ)義模型不僅僅包括用于回答查詢的數(shù)據(jù),比如莎士比亞寫的戲劇列表或紙機(jī)存放的地方。語(yǔ)義模型還包括元數(shù)據(jù);用來(lái)組織其他數(shù)據(jù)的數(shù)據(jù)。當(dāng)我們從多個(gè)數(shù)據(jù)源聯(lián)合信息時(shí),RDF數(shù)據(jù)模型允許我們以單一、統(tǒng)一的方式表示所有數(shù)據(jù)。但它無(wú)助于解決來(lái)源之間的任何意義沖突。兩個(gè)州對(duì)“婚姻”有相同的定義嗎?“寫”劇的概念和“寫”歌的概念是一樣的嗎?正是語(yǔ)義模型為這些問(wèn)題提供了答案。語(yǔ)義模型充當(dāng)不同的、聯(lián)合的數(shù)據(jù)源之間的粘合劑,因此我們可以描述它們是如何組合在一起的。

就像AAA,同樣的任何人可以談?wù)撃P偷娜魏问虑?;這就是說(shuō),任何人都可以對(duì)信息源的定義和映射發(fā)揮作用。這樣的話,不光是一個(gè)聯(lián)合的,基于RDF的語(yǔ)義應(yīng)用可以從多個(gè)資源中獲取它的信息,也可以從多源中獲得聯(lián)合信息的指令。這樣就可以說(shuō),語(yǔ)義網(wǎng)是一個(gè)真正的有意義的網(wǎng)絡(luò),可以描述信息的多源網(wǎng)絡(luò)。

Fundamental concepts

RDF parser/serializer:用于以幾種文件格式之一讀寫RDF的系統(tǒng)組件。

RDF store:使用RDF的數(shù)據(jù)庫(kù)。主要操作之一是合并RDF圖。

RDF query engine:這提供了對(duì)RDF存儲(chǔ)的訪問(wèn),就像SQL引擎提供對(duì)關(guān)系存儲(chǔ)的訪問(wèn)一樣。

SPARQL:RDF的標(biāo)準(zhǔn)查詢語(yǔ)言。(W3C)

SPARQL endpoint:一個(gè)可以響應(yīng)Sparql查詢的應(yīng)用,包括一個(gè)信息的本地編碼,不是RDF格式的。

Application interfacel;在與某些用戶的交互中使用RDF存儲(chǔ)內(nèi)容的應(yīng)用程序的一部分。

Converter:一個(gè)可以把某種數(shù)據(jù)形式(表格)轉(zhuǎn)換為RDF的工具。

RDFa:從HTML頁(yè)面編碼和檢索RDF元數(shù)據(jù)的標(biāo)準(zhǔn)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容