日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

XML RDF——實現(xiàn)Web數(shù)據(jù)基于語義的描述

 todaytomo 2007-01-18

XML+RDF——實現(xiàn)Web數(shù)據(jù)基于語義的描述

級別: 中級

周競濤西北工業(yè)大學(xué)CAD/CAM國家專業(yè)實驗室
王明微西北工業(yè)大學(xué)CAD/CAM國家專業(yè)實驗室

2003 年 3 月 01 日

本文介紹了XML結(jié)合RDF實現(xiàn)Web數(shù)據(jù)基于語義的描述。

今天,越來越多的Web應(yīng)用需要通過交換數(shù)據(jù)來實現(xiàn)互操作。XML的出現(xiàn)使實現(xiàn)Web應(yīng)用之間的語法互操作成為可能,而RDF則可以借助XML來實現(xiàn)Web應(yīng)用之間的語義互操作。那么XML和RDF是如何來完成它們各自職能的呢?

引言——語義

語義到底是指什么?這是一個比較難回答的問題,就像有人問起Ontology到底指什么一樣。如果讀者已經(jīng)對Semantic Web有一些了解的話,就會知道語義是一個正在改變我們所熟悉的Internet的一個關(guān)鍵元素,甚至是提高全球經(jīng)濟(jì)發(fā)展效率不可或缺的重要元素[1]。本文并不是要給出語義的一個精確解釋,因為這確實很困難,尤其當(dāng)這個概念被不同領(lǐng)域所引用的時候,它的含義往往存在著一些差異。討論語義的目的是希望我們能夠更好地理解XML和RDF到底在數(shù)據(jù)表示和交換中起到什么作用,更清楚地看到XML和RDF之間的區(qū)別,各自的優(yōu)點和不足。我們可以將語義簡單地看作是數(shù)據(jù)(符號)所代表的概念的含義,以及這些含義之間的關(guān)系,是對數(shù)據(jù)的抽象或者更高層次的邏輯表示。對于計算機(jī)領(lǐng)域來說,語義一般是指用戶對于那些用來描述現(xiàn)實世界的計算機(jī)表示的解釋,即用戶用來聯(lián)系計算機(jī)表示和現(xiàn)實世界的途徑?;蛟S這聽起來還是不夠通俗,讓我們通過一個的例子來進(jìn)一步說明語義的含義:以關(guān)系數(shù)據(jù)庫為例,數(shù)據(jù)庫中的數(shù)據(jù)可以簡單的認(rèn)為是存儲在一張張表中,例如我們將學(xué)生的基本信息存入到一張"學(xué)生"表中。這時,對于表中的每一列數(shù)據(jù)所構(gòu)成的集合,其所隱含的意思就是該列數(shù)據(jù)所要表達(dá)的對應(yīng)的概念,這個概念往往體現(xiàn)為設(shè)計人員對該列數(shù)據(jù)對應(yīng)的屬性所給定的名稱,例如"姓名"、"性別"等等。這些屬性之間的關(guān)系就相當(dāng)于數(shù)據(jù)對應(yīng)的概念之間所存在的關(guān)系,它們都是學(xué)生這個實體的屬性。數(shù)據(jù)庫表中的屬性和關(guān)系都可以看作數(shù)據(jù)的語義信息。當(dāng)然,語義并不是這么簡單,它代表的關(guān)系可能更為復(fù)雜,甚至超過E-R模型等數(shù)據(jù)庫建模語言的表達(dá)范圍。其實語義并不是引入到IT領(lǐng)域的新概念,數(shù)據(jù)庫長期以來已經(jīng)在用語義來區(qū)分模式和數(shù)據(jù),并作為數(shù)據(jù)庫建模、查詢和事務(wù)管理技術(shù)的一部分,語義是保證數(shù)據(jù)管理系統(tǒng)達(dá)到可擴(kuò)展性、高效性和健壯性要求的一個關(guān)鍵元素。





回頁首


數(shù)據(jù)表示中的語法與語義

在了解了什么是語義之后,讓我們來進(jìn)一步討論語法和語義在數(shù)據(jù)描述和交換中的作用。事實上,數(shù)據(jù)交換所要達(dá)到的真正目的是得到所交換數(shù)據(jù)所代表的含義,實現(xiàn)數(shù)據(jù)在含義上的交換,而不是單純的數(shù)據(jù)本身的交換,這同人與人之間的信息交換類似。對于人類來說,我們可以通過相同的語言進(jìn)行交互,交互雙方以他們所共同遵守的語言組織規(guī)律(相當(dāng)于語法)對所要表達(dá)的信息含義(相當(dāng)于語義)進(jìn)行組織才能使對方理解。人與人之間信息的傳達(dá)并不需要非常嚴(yán)格的語法,即便是對方在語言表達(dá)上存在著一定的錯誤,我們?nèi)匀豢赡芾斫鈱Ψ剿磉_(dá)的意思。但對于計算機(jī)之間的信息交換來說,語法與語義缺一不可。數(shù)據(jù)正確的語法表達(dá)是保證計算機(jī)之間能夠進(jìn)行信息交換和處理的前提,而數(shù)據(jù)語義的描述則是數(shù)據(jù)可被計算機(jī)正確理解和推理的基礎(chǔ)。

對于今天的大部分計算機(jī)應(yīng)用來說,其所產(chǎn)生的信息并沒有采用統(tǒng)一的語法描述格式,信息在語法描述上存在著千差萬別,這就造成了信息表達(dá)上的語法異構(gòu);而對于信息所代表含義(即語義)的解釋,則是以硬編碼的方式寫入到了應(yīng)用中,這種所謂程序式語義(procedural semantics)[2]的信息語義建模方法,分離了信息的語義和信息的語法描述,將對信息的理解固化到了特定的代碼邏輯中。因此程序式語義有很大的局限,既不具備擴(kuò)展性也不具備通用性,難于維護(hù)和集成。與程序式語義的信息建模方法相反,聲明式的語義建模方法[2]通過將數(shù)據(jù)的語義描述與特定應(yīng)用邏輯的分離,將數(shù)據(jù)的語義描述納入到數(shù)據(jù)層,將數(shù)據(jù)語義的解釋留給了通用的形式化系統(tǒng)(例如一階邏輯,描述邏輯,Datalog等推理系統(tǒng)),而與具體的數(shù)據(jù)和應(yīng)用邏輯無關(guān),具有非常好的適應(yīng)性、可重用性。數(shù)據(jù)基于語義的描述就是以聲明式的語義建模方法對數(shù)據(jù)的語義進(jìn)行描述。通過實現(xiàn)數(shù)據(jù)的語義描述可以大大減輕應(yīng)用處理數(shù)據(jù)的壓力。





回頁首


XML——Web數(shù)據(jù)的語法描述標(biāo)準(zhǔn)

信息在語法描述上的差異,我們往往可以通過必要的數(shù)據(jù)格式轉(zhuǎn)化來將信息轉(zhuǎn)化為目標(biāo)應(yīng)用能夠處理的語法格式。當(dāng)然,更為理想的情況應(yīng)該是所有的信息都采用同樣的語法來描述,XML的出現(xiàn)使得不同類型的數(shù)據(jù)表示成同一格式成為了可能。XML已經(jīng)成為了Web上數(shù)據(jù)表示和交換的事實標(biāo)準(zhǔn),是應(yīng)用之間或者機(jī)器之間共享數(shù)據(jù)的一種有效方式。XML及其相關(guān)技術(shù)的發(fā)展極大地促進(jìn)了信息表達(dá)和交換過程中語法描述上的統(tǒng)一,越來越多的應(yīng)用開始選用XML作為其數(shù)據(jù)、配置信息、消息以及服務(wù)的語法描述模式。迄今為止,XML已經(jīng)成為了Web上最理想的數(shù)據(jù)表達(dá)方式。XML的可擴(kuò)展性是XML區(qū)別其他標(biāo)記語言的最基本特征。XML的核心在于以一種標(biāo)準(zhǔn)化的方式來建立數(shù)據(jù)表示的結(jié)構(gòu),而將具體標(biāo)記的定義留給了用戶。XML的可擴(kuò)展性使XML可以滿足各種不同領(lǐng)域數(shù)據(jù)描述的需要,并可以對計算機(jī)之間交換的任何數(shù)據(jù)進(jìn)行編碼。





回頁首


XML是否已經(jīng)足夠

當(dāng)我們剛剛接觸XML時,我們可能會因為XML的表現(xiàn)能力,可擴(kuò)展性和光明的前景而激動不已,可是隨之而來的問題是:兩個用XML表示的消息或數(shù)據(jù),如何才能實現(xiàn)交換?是不是我們只要采用了XML格式,二者的交換就萬事大吉了?。XML除了給我們提供了一個可以被應(yīng)用自動化讀取的格式外,并不能進(jìn)一步促進(jìn)數(shù)據(jù)交換的自動化程度,我們還需要通過專用的程序來對XML數(shù)據(jù)進(jìn)行解釋,以獲取目標(biāo)應(yīng)用能夠處理的數(shù)據(jù)部分。注意,這里的解釋并不同于對XML文檔的解析。當(dāng)然,對XML文檔解釋的前提是首先完成對XML文檔的解析。盡管XML已經(jīng)擁有了各種版本的解析器,但解析器的真正作用是一個XML的讀取和處理器,并不是一個解釋器。因此我們必須采用特定的應(yīng)用程序來對XML的內(nèi)容解釋,很顯然這些程序之間并不存在互換性和通用性。

盡管XML的靈活性使得用戶可以快速、容易的描述任意的內(nèi)容,但由于XML并不能解釋它標(biāo)記的含義,大多數(shù)處理應(yīng)用要求這些標(biāo)記集合能夠滿足某種標(biāo)準(zhǔn)或者雙方的約定。XML允許用戶通過XML模式來定義這些標(biāo)記的集合。XML模式(諸如XML DTD和XML Schema等)為XML文檔提供了一種約束機(jī)制,用來限定XML文檔所用到的標(biāo)記和這些標(biāo)記之間的結(jié)構(gòu)關(guān)系。XML模式為XML文檔提供了一定的語義描述能力,然而XML模式的語義仍然是隱含的。XML模式的元素含義要么由用戶根據(jù)元素的名稱(通過自然語言描述)去推斷,要么通過另外一個文檔來描述,XML模式并不能對其所含有的語義進(jìn)行任何解釋。

為了實現(xiàn)XML文檔的解釋或者轉(zhuǎn)換,用戶必須將這些語義編碼到工具中,而將數(shù)據(jù)的最終解釋留給了特定的應(yīng)用。不僅如此,由于XML模式只能對XML的語法合法性進(jìn)行驗證,而不能區(qū)分XML屬性和元素在含義上的不同,因此對于同樣的信息內(nèi)容,我們可以將其映射為多種不同的XML結(jié)構(gòu)。例如我們要說明某本書(Book)的作者(Author)是哪個作家(Name),可以得到例1中的多種XML Schema的定義。

例1 對于同一信息的多個XML Schema的定義

XML實例 對應(yīng)的DTD定義

                                    <Book id="B_id">
                                    <Author>
                                    <Name id="A_id"/>
                                    </Author>
                                    </Book>
                                    


                                    <xs:element name="Author">
                                    <xs:complexType>
                                    <xs:sequence>
                                    <xs:element ref="Name"/>
                                    </xs:sequence>
                                    </xs:complexType>
                                    </xs:element>
                                    <xs:element name="Book">
                                    <xs:complexType>
                                    <xs:sequence>
                                    <xs:element ref="Author"/>
                                    </xs:sequence>
                                    <xs:attribute name="id" type="xs:string" use="required"/>
                                    </xs:complexType>
                                    </xs:element>
                                    <xs:element name="Name">
                                    <xs:complexType>
                                    <xs:attribute name="id" type="xs:string" use="required"/>
                                    </xs:complexType>
                                    </xs:element>
                                    </xs:schema>
                                    


                                    <Book id="B_id">
                                    <Author>
                                    <Name>
                                    <id>A_id</id>
                                    </Name>
                                    </Author>
                                    </Book>
                                    


                                    <xs:element name="Author">
                                    <xs:complexType>
                                    <xs:sequence>
                                    <xs:element ref="Name"/>
                                    </xs:sequence>
                                    </xs:complexType>
                                    </xs:element>
                                    <xs:element name="Book">
                                    <xs:complexType>
                                    <xs:sequence>
                                    <xs:element ref="Author"/>
                                    </xs:sequence>
                                    <xs:attribute name="id" type="xs:string" use="required"/>
                                    </xs:complexType>
                                    </xs:element>
                                    <xs:element name="Name">
                                    <xs:complexType>
                                    <xs:sequence>
                                    <xs:element ref="id"/>
                                    </xs:sequence>
                                    </xs:complexType>
                                    </xs:element>
                                    <xs:element name="id" type="xs:string"/>
                                    


                                    <Book>
                                    <id>B_id</id>
                                    <Author>
                                    <Name>
                                    <id>A_id</id>
                                    </Name>
                                    </Author>
                                    </Book>
                                    


                                    <xs:element name="Book">
                                    <xs:complexType>
                                    <xs:sequence>
                                    <xs:element ref="id"/>
                                    <xs:element name="Author">
                                    <xs:complexType>
                                    <xs:sequence>
                                    <xs:element name="Name">
                                    <xs:complexType>
                                    <xs:sequence>
                                    <xs:element name="id"/>
                                    </xs:sequence>
                                    </xs:complexType>
                                    </xs:element>
                                    </xs:sequence>
                                    </xs:complexType>
                                    </xs:element>
                                    </xs:sequence>
                                    </xs:complexType>
                                    </xs:element>
                                    

這種數(shù)據(jù)表達(dá)上的不唯一性意味著,相同的XML文檔可以存在多種不同的解釋,而相同的應(yīng)用也可能對不同的XML作出同樣的解釋。這種解釋上的多對多關(guān)系,使得我們在交換XML文檔之前,必須對其所使用到的標(biāo)記的名稱、組織格式和含義進(jìn)行約定,任何對該XML文檔的單方面擴(kuò)展都可能會給數(shù)據(jù)交換過程帶來更多的麻煩,甚至導(dǎo)致失敗。然而,這種通過約定來實現(xiàn)信息共享的方式只適用于兩兩之間的信息交換,卻不能滿足Web上多個用戶或團(tuán)體大范圍的信息共享。假設(shè)我們要集成n個應(yīng)用所產(chǎn)生的XML信息,即便是要集成部分的含義完全一致,但由于它們來自不同的應(yīng)用,各自的XML模式描述很可能存在著不同(既包括標(biāo)記命名的不同也包括結(jié)構(gòu)組織上的不一致),所以我們?nèi)匀徊坏貌蛔龃罅康哪J街g的轉(zhuǎn)換,而目的只是為了保證它們在語法的描述結(jié)果上保持一致。當(dāng)然我們可以通過采用一個統(tǒng)一的全局的XML模式來描述所有相關(guān)的XML信息,但這顯然是不現(xiàn)實的,即便是在一個企業(yè)內(nèi)部,我們也很難建立一個穩(wěn)定的標(biāo)準(zhǔn)化的企業(yè)數(shù)據(jù)表示模式。





回頁首


RDF(Resource Description Framework)——Web數(shù)據(jù)的語義描述模型

XML所存在的問題是因為XML不具備語義描述能力。為此,W3C推薦以RDF(resource Description Framework)標(biāo)準(zhǔn)來解決XML的語義局限。RDF提出了一個簡單的模型用來表示任意類型的數(shù)據(jù)。這個數(shù)據(jù)類型由節(jié)點和節(jié)點之間帶有標(biāo)記的連接弧所組成。節(jié)點用來表示W(wǎng)eb上的資源,弧用來表示這些資源的屬性。因此,這個數(shù)據(jù)模型可以方便的描述對象(或者資源)以及它們之間關(guān)系。RDF的數(shù)據(jù)模型實質(zhì)上是一種二元關(guān)系的表達(dá),由于任何復(fù)雜的關(guān)系都可以分解為多個簡單的二元關(guān)系,因此RDF的數(shù)據(jù)模型可以作為其他任何復(fù)雜關(guān)系模型的基礎(chǔ)模型。

RDF和XML是互為補(bǔ)充的。首先,RDF希望以一種標(biāo)準(zhǔn)化,互操作的方式來規(guī)范XML的語義。XML文檔可以通過簡單的方式實現(xiàn)對RDF的引用。如例2所示。

例2 XML對RDF的引用示例


                        <?xml version="1.0"?>
                        <Description
                        xmlns="http://www./TR/WD-rdf-syntax#"
                        about="http://www./test/page"
                        s:Author ="http://www./staff/Ora"/>
                        

借助RDF,表達(dá)同一事實的XML描述就可以被轉(zhuǎn)化為統(tǒng)一的RDF陳述。對于例1,它們可以表示為下面的RDF模型:



通過在XML中引用RDF,可以將XML的解析過程與解釋過程相結(jié)合。也就是說,RDF可以幫助解析器在閱讀XML的同時,獲得XML所要表達(dá)的主題和對象,并可以根據(jù)它們的關(guān)系進(jìn)行推理,從而做出基于語義的判斷。XML的使用可以提高Web數(shù)據(jù)基于關(guān)鍵詞檢索的精度,而RDF與XML的結(jié)合則可以將Web數(shù)據(jù)基于關(guān)鍵詞的檢索更容易地推進(jìn)到基于對象的檢索。

其次,由于RDF是以一種建模的方式來描述數(shù)據(jù)語義的,這使得RDF可以不受具體語法表示的限制。但是RDF仍然需要一種合適的語法格式來實現(xiàn)RDF在Web上的應(yīng)用。雖然RDF(模型)既可以用Notation3[3]來表示,也可以用XML來表示。但是,由于XML已經(jīng)成為被廣泛支持的Web數(shù)據(jù)表示標(biāo)準(zhǔn),便于應(yīng)用的讀取,因此將RDF序列化為XML表示可以使RDF獲得更好的應(yīng)用可處理特性,并使得RDF數(shù)據(jù)可以像XML數(shù)據(jù)一樣的容易使用、傳輸和存儲。

因此,RDF是定制XML的良伴,而不只是對某個特定類型數(shù)據(jù)的規(guī)范表示[4],XML和RDF的結(jié)合,不僅可以實現(xiàn)數(shù)據(jù)基于語義的描述,也充分發(fā)揮了XML與RDF的各自優(yōu)點,便于Web數(shù)據(jù)的檢索和相關(guān)知識的發(fā)現(xiàn)。





回頁首


RDF是否已經(jīng)足夠

與XML中的標(biāo)記(tags)類似,RDF中的屬性(properties)集也是沒有任何限制的。也就是說我們既可以<rdf:Description about=http://www./test><s:Creator>張三</s:Creator></rdf:Description>也可以用<rdf:Description about=http://www./test1><s:Author>張三</s: Author ></rdf:Description> 來表示某個作品的創(chuàng)作者。這就是我們通常所說的同義詞現(xiàn)象,即同一個概念可以以不同的詞匯來描述。在實際應(yīng)用中這個詞匯并不一定要和詞典中的詞匯有一定的對應(yīng)關(guān)系,例如英文語法中常見的縮寫就屬于此種情況。與同義詞現(xiàn)象相對應(yīng)的另一個問題就是一詞多意,即同一個詞匯在不同的應(yīng)用背景下可以表示不同的意思。RDF的模型不具備解決這兩個問題的能力,而RDF Schema雖然可以為RDF資源的的屬性和類型提供詞匯表,但是基于RDF的數(shù)據(jù)語義描述仍然可能存在語義沖突。為了消解語義沖突,我們在描述數(shù)據(jù)語義的時候可以通過引用Ontology的相關(guān)技術(shù),對語義描述結(jié)果作進(jìn)一步的約束。幸運(yùn)的是,RDF(Schema)在提供了簡單的機(jī)器可理解語義模型的同時,為領(lǐng)域化的Ontology語言(OIL(Ontology Interchange Language),OWL(Web Ontology Language))提供了建?;A(chǔ),并使得基于RDF的應(yīng)用可以方便地與這些Ontology語言所生成的Ontology進(jìn)行合并。RDF的這一特性使得基于RDF的語義描述結(jié)果具備了可以和更多的領(lǐng)域知識進(jìn)行交互的能力,也使基于XML和RDF的Web數(shù)據(jù)描述具備了良好的生命力。





回頁首


參考資料

  • Amit Sheth, Robert Meersman. Amicalola Report: Database and Information Systems Research Challenges and Opportunities in Semantic Web and Enterprises. SIGMOD Record Special Issue on Semantic Web, Database Management and Information Systems, December 2002.充分討論了Semantic Web的發(fā)展給多個領(lǐng)域所帶來的機(jī)遇和挑戰(zhàn)。

  • Stefan Decker, Sergey Melnik, Frank Van Harmelen, Dieter Fensel, Michel Klein, Jeen Broekstra, Michael Erdmann, and Ian Horrocks. The semantic web: The roles of xml and rdf. IEEE Expert, 15(3), October 2000. 該文論述了XML和RDF在Semantic Web中的不同角色和各自的作用。

  • SEAN B P. The Semantic Web: An Introduction [EB/OL]. http:///2001/swintro, 2001-09.對Semanitc Web的介紹。

  • Uche Ogbuji.Generate RDF using XSLT. http://www.ibm.com/developerworks/library/x-think4/ , July 1, 2001. 討論如何從已有的XML 格式數(shù)據(jù)轉(zhuǎn)化為RDF模型的描述,突出了RDF 可用作定制 XML 的搭擋,而不僅僅用作某些數(shù)據(jù)類型的規(guī)范表示的觀點。

  • [tttt]Tim Berners-Lee. Why RDF model is different from the XML model. http://www./DesignIssues/RDF-XML.html September 1998 主要從查詢的角度來比較XML于RDF。

  • Graham Klyne. Information Modelling using RDF - Constructs for Modular Description of Complex Systems. citeseer.nj.nec.com/422203.html. 該文介紹了以RDF對復(fù)雜系統(tǒng)建模的一些實驗性工作。

  • Uche Ogbuji. Thinking XML # 1: XML和語義:實際情況: 介紹了語義透明性的思想,討論了XML 相關(guān)開發(fā)的重要性。




回頁首


作者簡介

周競濤,西北工業(yè)大學(xué)CAD/CAM國家專業(yè)實驗室博士研究生,致力于將哲學(xué)、數(shù)學(xué)結(jié)合到技術(shù)研究中,主要研究方向:中間件、XML技術(shù)、EII、Semantic Web Service。 曾多次在國內(nèi)外發(fā)表與XML和語義相關(guān)的學(xué)術(shù)論文。部分論文被SCI和ISTP索引。可以通過 zhoujtnet@yahoo.com.cn與他聯(lián)系。


 

王明微,陜西西安,西北工業(yè)大學(xué)CAD/CAM國家專業(yè)實驗室碩士研究生,研究方向:逆向工程、模式識別??梢酝ㄟ^ wangmv@hotmail.com與他聯(lián)系。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多