目前WEB模型主要支持對文本內(nèi)容的瀏覽和搜索。語義網(wǎng)需要新的模型,XML模型可用于數(shù)據(jù)的表示和交換,但缺乏描述語義信息的能力。而RDF是一個網(wǎng)絡(luò)資源對象和其間關(guān)系的數(shù)據(jù)模型,擁有簡單的語義,且可通過XML編碼。RDF
Schema是一個用來描述RDF資源的屬性和類型的詞匯集描述語言,并提供了關(guān)于這些屬性和類型的語義。
3.1 RDF概述
1、RDF的含義(Resource
Description Framework)
RDF(Resource
Description
Framework),資源描述框架,主要含義:a、資源:包括一切在Web上被命名、具有URI引用的東西;b、描述:對資源特性的一個聲明,包括資源本身的屬性和資源之間的關(guān)系;c、框架:與被描述資源及其領(lǐng)域無關(guān)的能用模型。
RDF用形如“主體-謂詞-客體”的三元組來描述Web上的各種資源和它們之間的關(guān)系,并提供一種基本的結(jié)構(gòu)在Web上對這些元數(shù)據(jù)進(jìn)行編碼、交換和重用。通過兩個工具的支持:a、URI:用來區(qū)分和標(biāo)識一個聲明中的主體、謂詞和客體的機(jī)器可處理的標(biāo)識符系統(tǒng);b、XML:用以表示以這些聲明并這些聲明可在機(jī)器間交流的機(jī)器可處理的語言。
2、RDF與XML
XML用標(biāo)記來描述文檔中的文本內(nèi)容,卻沒有提供一種機(jī)制來描述標(biāo)記本身。RDF則提供了這種能力。
XML的目的在于提供一個易用的語法對計算機(jī)交換的一切數(shù)據(jù)編碼,并用XML
Schema來表示數(shù)據(jù)結(jié)構(gòu),但沒有提供任何關(guān)于數(shù)據(jù)的解釋;而RDF則是一個描述元數(shù)據(jù)的模型,并給出了數(shù)據(jù)的一些解釋,RDFS更擴(kuò)展了這個功能。RDF使用的是“對象-特性”結(jié)構(gòu)提供了固有的語義單元。
1、基本概念
RDF設(shè)計思想:被描述的資源具有一些特性,而這些特性各有其值;特性值既可以是文字也可以是其他資源;如果特性值是資源,這個特性可以看作是這兩個資源間的關(guān)系;對資源的描述就是對資源的特性及值進(jìn)行聲明。由此RDF數(shù)據(jù)模型有四種基本對象類型:a、資源:有WEB上以URI標(biāo)識的所有事物;b、文字:字符串或數(shù)據(jù)類型的值,RDF沒有自己的數(shù)據(jù)類型定義機(jī)制,而是可以使用如XML
Schema中定義的數(shù)據(jù)類型;c、特性:用來描述資源的特征、屬性或關(guān)系,特性是資源的一個子集,因此一個特性也可以用另一個特性描述,甚至被自身描述;d、聲明:一個特定的資源加上特性及特性值就是一個RDF聲明,聲明都表示為三元組(主體-謂詞-客體,也可以是資源-特性-特性值,區(qū)分資源部分稱為主體、區(qū)分聲明對象主體各個不同特性的部分為謂詞、區(qū)分各個特性的值的部分為客體)。
2、RDF資源和詞匯集
RDF使用URI引用表示資源,通常使用名稱空間和XML限定名來簡寫完整的URI。一般RDF稱一個URI引用的集合為詞匯集,一個詞匯集中的URI引用通常使用公用的URI前綴。但不能因為URI引用有一個公用的前綴而認(rèn)定他們之間有關(guān)系,也不能因為有不同的前綴就說不屬于一個詞匯集。且RDF也不認(rèn)為每個命名空間都能確定一個可獲取的信息。實際是,RDF數(shù)據(jù)是通過綜合多個不同的RDF文檔提供對同一個事物的多項數(shù)據(jù)。
3、RDF圖
RDF模型的基本結(jié)構(gòu)是聲明三元組的集合,可用具有節(jié)點和有向邊的圖來表示,即RDF圖。每個三元組就是“節(jié)點-邊-節(jié)點”的連接,其中節(jié)點是主體和客體,資源用橢圓節(jié)點表示,文字用方形節(jié)點來表示,邊是謂詞,方向是主體指向客體。(特性也可以是資源)
4、結(jié)構(gòu)化特性與空節(jié)點
包含復(fù)雜信息結(jié)構(gòu)的特性稱為結(jié)構(gòu)化特性。對此,RDF通過將該特性值看成一個主體,將復(fù)雜的結(jié)構(gòu)化特性分解為多個RDF特性來進(jìn)行描述。
使用空節(jié)點表示匿名資源,三元組中使用“_:”??展?jié)點只能出現(xiàn)在三元組的主體和客體上,不能出現(xiàn)在謂詞。
包含單位或是類似附加信息的特性值,稱為結(jié)構(gòu)化值??梢杂靡粋€單獨的資源(通常是空節(jié)點)來表示結(jié)構(gòu)化值,且作為原聲明的客體。這個資源有個特性表示數(shù)值,即叫主值,RDF提供預(yù)定義的特性rdf:value來描述。如:_:ageTOM
rdf:value"26"^^xsd:decimal。
3.3 RDF/XML語法
1、基本語法
基本特征:a、所有的RDF語句都必須在一個rdf:RDF元素中;b、每個RDF聲明用一個rdf:Description元素表示,其中用rdf:about屬性的值指明聲明主體的URI引用;c、聲明的謂詞作為rdf:Description的子元素出現(xiàn),而客體則是該子元素的屬性或內(nèi)容;d、rdf:nodeID屬性是專門用來表示空節(jié)點的,空節(jié)點被指定空白結(jié)點標(biāo)識符后可以作為主體或客體使用。如果空節(jié)點替換成有名資源,則使用rdf:resource屬性來說明是一個資源,而URI引用就是這個屬性的屬性值(此處不可用限定名替代URI引用)。如果客體是一個文字,相應(yīng)也可以用rdf:literal屬性來說明。
2、簡寫語法
簡寫原則:a、同一個主體的多個聲明可合并為一個rdf:Description元素,多個謂詞轉(zhuǎn)化為這個元素的多個子元素,客體則成為對應(yīng)謂詞元素的屬性或內(nèi)容;b、如果一個聲明的主體是另一個聲明的客體,則前者可以嵌套至后者的客體位置(刪除對應(yīng)謂詞的元素的rdf:resource屬性或rdf:nodeID屬性,并添加的rdf:Description元素為其子元素);c、如果空節(jié)點的rdf:Description元素被嵌套,且再沒有其他地方會用到這空節(jié)點,則其對應(yīng)的rdf:Description元素標(biāo)記也可刪除,但要為特性元素添加屬性rdf:parseType="Resource"表示特性值是一個空節(jié)點。如下例:
<rdf:Description
rdf:about="URI引用">
<dc:creator>
<ex:name>TOM</ex:name>
<ex:email>TOM@email.org</ex:email>
</dc:creator>
</rdf:Description>
一種特別的簡寫,RDF定義了一種特殊的rdf:type特性表示兩個資源之間的類性關(guān)系,如所有的RDF特性都應(yīng)有值為rdf:Property的rdf:type特性。如果rdf:description元素包含一個rdf:type特性,這個特性值的資源類型可以用來替代rdf:description元素??梢宰鳛閞df:type特性值的資源稱為類。
屬性值的URI引用必須書寫完整,不能用限定名形式,很是冗長,所以RDF/XML語法提供了另一種簡寫,XML實體聲明的本質(zhì)是將一個XML實體名與一個字符串相關(guān)聯(lián),如果實體名在XML文檔中被引用,將用相應(yīng)的字符串來替換該引用。把實體xsd定義為一個代表對應(yīng)于XML
Schema數(shù)據(jù)類型的命名空間字符串,這樣在屬性值字符串中即可使用子串“&xsd;”代替。
3、指派URI引用
在RDF/XML中,資源的標(biāo)識是通過使用一個rdf:about屬性并用資源的URI引用作為屬性值實現(xiàn)的。如:
<rdf:Description
rdf:ID="person1024">
<ex:name>John</ex:name>
</rdf:Description>
在這個例子描述了一個資源并為其指派了一個URI引用。但使用了rdf:ID,其作用于指定一個片斷標(biāo)識符生成一個資源的完整URI引用,這個片斷標(biāo)識符在rdf:ID屬性值中給出。在同一個文檔中,可以通過"#person1024"標(biāo)識符引用此資源。
4、類型文字
在RDF中用類型文字提供那些具有數(shù)據(jù)類型的信息。RDF不定義自己的內(nèi)置數(shù)據(jù)類型,而是為一個已給定的文字提供一種簡單的方法來指出應(yīng)該用什么樣的數(shù)據(jù)類型來說明它。在數(shù)據(jù)文字中使用的數(shù)據(jù)類型在RDF外部定義(如XML
Schema),并用URI引用來確定。三元組表示法中的基本形式為:"...[文字內(nèi)容]..."^^....[數(shù)據(jù)類型的URI引用]...。同時,在RDF/XML中,表示類型文字需為包含這文字的元素增加一個rdf:datatype屬性,并通過這屬性指定數(shù)據(jù)類型的URI引用。如三元組表示的:_:ageTom,rdf:value,"26"^^xsd:decimal,如果用XML編碼為:
<rdf:Description
rdf:nodeID="ageTOM">
<rdf:value
rdf:datatype="&xsd;decimal>26</rsd:value>
</rdf:Description>
3.4 RDF特殊表達(dá)
1、容器:RDF定義有三種容器來表示一組資源或文字,即a、rdf:bag為包,表示一組資源或文字的無序列表;b、rdf:seq為序列,是一組資源或文字的有序列表;c、rdf:alt為替代,是一組可選擇的資源或文字。
其中要注意的是,一個關(guān)于容器的聲明不簡單等價于多個關(guān)于其中每個成員的同樣聲明,如委員會通過方案,不代表每個委員都通過。但可以在rdf:Description元素中用rdf:aboutEach代替rdf:about,表示每個成員。
2、集合
RDF容器無法說明是否是容器所有的成員,也就是另外聲明是不是還有成員。RDF集合通過鏈表的形式提供了描述一個封閉的資源集合的手段。用rdf:first給出對應(yīng)的資源,rdf:rest指出其它節(jié)點,rdf:nil表示結(jié)束。
3、聲明具體化
如果對一個聲明作出描述,如說明這個聲明的作者、時間等,RDF可以作出關(guān)于聲明的聲明,要引用一個聲明,就要把它當(dāng)成資源對待。也就是把一個聲明和一個代表這個聲明的特定資源聯(lián)系起來的過程就是具體化。原始聲明被具體化為一個新的資源,就是具體化聲明。這個資源具有四個特性:主體rdf:subject、謂詞rdf:predicate、客體rdf:object、類型rdf:type,也就是具體化四元組。
3.5 RDF Schema
RDF Schema允許用戶任意創(chuàng)造自己的詞匯集,但規(guī)定其中詞匯的含義和用法需要用到RDF Schema。
1、簡介
RDF只定義用于描述資源的框架,并沒有定義用哪些詞匯來描述資源。RDFS就是一種RDF詞匯集描述語言,它定義如何用RDF來描述詞匯集,并提供一個用來描述RDF詞匯集的詞匯集。
RDF中的資源可以有類型(通過資源的rdf:type特性定義資源所屬的類),而類也是資源。RDF中的特性也是資源的一個子集。但RDF沒有提供任何機(jī)制來說明類的特征、類與類之間的關(guān)系以及特性與類之間的關(guān)系,RDFS要完成的。
RDFS不說明特定詞匯如“dc:creator”的含義,而是提供了命名和描述這些特性和定義資源的類的機(jī)制。簡單來說,RDFS提供了一個應(yīng)用于RDF模型中的基本類型系統(tǒng),定義了用來描述類、特性和資源以及它們之間的關(guān)系的類和特性。RDFS額外的描述能力是由一系列預(yù)告先定義的RDF資源帶來的,這些資源就是RDFS核心詞匯,用來描述其他RDF資源,定義特定應(yīng)用的RDF詞匯,一般被稱為“rdfs”的名稱空間中定義,這個名稱空間用URI引用“http://www./2000/01/rdf-schema#”標(biāo)識,用來描述其它資源的特征,如rdfs:domains和rdfs:ranges分別描述定義域和值域。RDFS詞匯分為類(大寫字母開頭)和特性(小寫字母開頭)。而特性通常描述主體和客體之間存在特定的關(guān)系。
2、RDF類
RDF類可以用來表示事物的任何分類,通過RDFS中的資源(rdfs:Class和rdfs:Resource)以及特性(rdf:type和rdfs:subClassOf)來表示。
資源可能是一個或多個類的實例,所有資源都是rdfs:Resource類的實例,類也是資源,且所有類都是rdfs:Class的實例。實例和類之間的關(guān)系用rdf:type特性描述,如資源A存在rdf:type特性值為類C,則資源A是類C的實例。
類一般用層次方法組織,如“狗”是“動物”的子類,“動物”是“生物”的子為在,當(dāng)有資源有rdf:type值“狗”時,也就具有了“動物”“生物”的rdf:type特性值。rdfs:subClassOf特性就是用來表示類之間的這種子類關(guān)系。
RDFS設(shè)計思想就是視一切為資源,包括實例、類、屬性和聲明。但RDF文字不是資源,不能擁有rdf:type特性,RDFS規(guī)定它們屬于rdfs:Literal類,其中有格式的類型文字屬于對應(yīng)的數(shù)據(jù)類型類,如xsd:integer等。
3、RDF特性
RDF中特性也是資源,所有特性都是rdf:Property類的實例。前面介紹的rdf:type和rdfs:subClassOf同樣適用于描述特性與特性類之間的有關(guān)系以及特性類之間的子父類有關(guān)系。與類相似,特性之間也有層次關(guān)系,RDFS用rdfs:subPropertyOf特性來描述。
4、RDF特性約束
例,如果定義一個類“書”,RDFS則是定義“作者”特性的定義域是“書”,值域是“人”,即如果一個聲明的謂詞是“作者”,則主體是書的實例,客體是人的實例。
RDFS給RDF引入了一個類型系統(tǒng),可以認(rèn)為是RDF上的一組本體建模原語,是一種簡單的本體語言。RDF用URI來區(qū)分詞匯,可以避免一個詞匯表示多個概念,因為URI是唯一的,如f:address和v:address是不同的名字空間定義,用不同的URI標(biāo)識,是可以區(qū)分的詞匯。但不能明確說明這兩個詞匯表達(dá)的是不同的概念,并且當(dāng)多個URI表示的詞匯是同義詞時,RDF了無法說明他們表示的是同一概念。
|
|