??? 摘? 要: 資源描述框架RDF是處理元數(shù)據(jù)的基礎,它提供了Web上應用程序間機器能理解的信息的互操作性能;語義網(wǎng)絡語言SNetL是語義網(wǎng)絡的形式化描述語言。本文提出了從RDF知識表示到SNetL語言轉(zhuǎn)換的思想與算法。
??? 關鍵詞: 資源描述框架? 語義網(wǎng)絡語言? 知識表示? 轉(zhuǎn)換算法
?
1 語義網(wǎng)絡和SNetL概述
??? 語義網(wǎng)絡(Semantic Network)作為一種知識表示的工具是由奎林(J.R.Quilian)在1968年的博士論文中提出的。語義網(wǎng)絡是通過概念及其語義關系來表達知識的一種網(wǎng)絡圖。從圖論的觀點看,它可以看作是三元組集合,是一個“帶標識的有向圖”。其中,有向圖的節(jié)點表示各種事物、概念、情況、屬性、動作、狀態(tài)等;弧表示各種語義聯(lián)系,指明它所連接的節(jié)點間的某種語義關系。節(jié)點和弧都必須帶有標識,以便區(qū)分各種不同對象及對象間各種不同的語義聯(lián)系。每個節(jié)點可以帶有若干屬性。另外,節(jié)點還可以是一個語義子網(wǎng)絡,形成一個多層次的嵌套結(jié)構(gòu)。
??? SNetL(Semantic Network Language)是語義網(wǎng)絡的形式化描述語言。SNetL的功能主要包括:以三元組的形式構(gòu)造關系表達式;用標號關系式實現(xiàn)分塊思想;關系和節(jié)點一樣處理,以便建立關系之間的關系;便于描述自然語言所表達的語義;具有較強的提問能力和推理解答能力等。
??? SNetL語言的核心是用三元組的形式描述知識,一般表示為:(nodel_1,relation_name,,node_2)。其中node_1和node_2分別表示弧所連接的兩個節(jié)點;relation_name表示網(wǎng)絡中的弧,用于描述節(jié)點之間的語義。在SNetL中,用標號可以對節(jié)點和關系進一步說明,其作用相當于自然語言中的定語和狀語。
??? 下面給出經(jīng)過擴展的SNetL+ 語言形式化描述的總體語法框架。
??? <語義網(wǎng)絡程序>∷=snet <程序名>;
??????? ??
??????? ??end_of_snet;
???
???
??? <主關系式>∷=<無標號關系式>
??? <標號關系式>∷=<標號>:<無標號關系式>
??? <無標號關系式>∷=<一般關系式>|<關系修飾關系式>|<量詞關系式>|<節(jié)點修飾關系式>|<蘊涵關系式>|<或關系式>|<與關系式>|<否定關系式>|
2? RDF到SNetL的轉(zhuǎn)換思想與算法描述
??? RDF是處理元數(shù)據(jù)的基礎,它提供了Web上應用程序間機器能理解的信息的互操作性。在語義Web中,本體描述語言很多,如RDF、DAML+OIL和OWL等。在知識推理過程中,一般都將其描述的知識轉(zhuǎn)換為RDF三元組,以便實現(xiàn)信息的互操作。本文介紹RDF與SNetL的轉(zhuǎn)換思想與算法描述。
2.1 RDF關鍵字與SNetL關系式的對應關系
?? ?RDF關鍵字與SNetL關系式的對應關系如表1所示。
?
2.2 帶有標號的關系式轉(zhuǎn)換
??? RDF到SNetL的轉(zhuǎn)換中,主要考慮在轉(zhuǎn)換中帶有標號的情況:屬性約束、復雜類、規(guī)則表示等。
??? (1)屬性約束
??? OWL中屬性約束有六種情況:owl:cardinality、owl:minCardinality、owl:maxCardinality、owl:someValuesFrom、owl:allValuesFrom、owl:hasValue。另外,在OWL知識表示中,有“匿名類”的概念,因此在轉(zhuǎn)換過程中,要進行標號的處理。
??? 圖1是對“病毒文件是類,它是Software的子類,它的屬性fileSize最大不超過1 024KB”的描述( _:x為匿名類)。
?
??? 上述OWL屬性約束的轉(zhuǎn)換過程中,定義了匿名類_:x,它是定義類的超(父)類。在將RDF三元組轉(zhuǎn)換到SNetL的過程中應該注意:①約束范圍,也就是匿名類的作用范圍。在OWL到RDF的轉(zhuǎn)換過程中,加入了“ontoKsys:Begin”(開始)和“ontoKsys:End”(結(jié)束)兩個關鍵字來識別約束的開始與結(jié)束,開始與結(jié)束之間是匿名類或臨時變量的有效范圍。②匿名類可以用SNetL語言中的<變量>來代替。③owl:Restriction、ontoKsys:Begin和ontoKsys:End等指示約束范圍的關鍵字不需要進行轉(zhuǎn)換。上述描述轉(zhuǎn)換如下:
??? (病毒文件,TYPE,類);
??? (病毒文件,subclass,Software);
??? (病毒文件,subclass,x:L1);&&將匿名類名用SNetL的變量x代替,并加標號修飾
??? L1:(x,對于屬性,fileSize:L2);&&將owl:onProperty轉(zhuǎn)換為“對于屬性”
??? L2:(fileSize,是屬性,x);
??? (fileSize,最大基數(shù),y:L3:L4);
??? L3:(y,be,非負整數(shù));
??? L4:(y,number,1024);
??? owl:cardinality、owl:minCardinality、owl:maxCardinality轉(zhuǎn)換為SNetL的方法是相同的。圖2是對owl:someValuesFrom、owl:allValuesFrom、owl:hasValue到SNetL的轉(zhuǎn)換描述。
?
??? (2)復雜類
??? OWL中復雜類包括:owl:oneOf(枚舉)、owl:intersectionOf(交集)、owl:unionOf(并集)、owl:complementOf(補集)、owl:disjointWith(不相交集)、owl:equivalentClass(等價類)。由于在復雜類的轉(zhuǎn)換中涉及到RDF:List及參照對象,因此需要加入標號進行修飾。
??? 圖3描述了“圖形圖像處理”軟件是“圖形處理軟件”和“圖像處理軟件”的并集。
?
??? 其他的復雜類與owl:unionOf有相似之處,因篇幅有限,這里就不作介紹。
??? (3)IF-THEN規(guī)則表示
??? 在OWL擴展中,規(guī)則表示涉及到蘊涵關系式、與關系式、或關系式和非關系式等,在轉(zhuǎn)換過程中也要考慮標號的轉(zhuǎn)換問題。
??? 如果要描述:“如果A是B的子類,B是C的子類,則A是C的子類”,則RDF三元組可表示為:
??? (子類傳遞性,TYPE,IF-THEN規(guī)則)
??? (子類傳遞性,規(guī)則名稱,subClass Transitive Relation)
??? 轉(zhuǎn)換如下:
??? (L1,imply,L2)?? &&L1表示規(guī)則的前件,L2表示規(guī)則的后件
??? L1:(L3,and,L4)? &&owlplus:AND映射為SNetL的and,表示L3和L4成立,則L1成立
??? L3:(A,subclass,B) &&owlplus:predication的謂詞sub ClassOf轉(zhuǎn)換為SNetL的subclass
??? L4:(B,subclass,C)
??? L2:(A,subclass,C)? &&A、B、C是概念集的元素,在轉(zhuǎn)換過程中要作初始化
2.3 RDF到SNetL的主要關鍵字轉(zhuǎn)換表
??? RDF到SNetL的主要關鍵字轉(zhuǎn)換表如表2所示。
?
2.4 RDF到SNetL轉(zhuǎn)換算法的描述
??? 算法TORTS(Transfer of RDF to SNetL RDF到SNetL的轉(zhuǎn)換算法):
??? 功能描述:算法將RDF三元組表示的知識庫轉(zhuǎn)換為SNetL表示。
??? 輸入:RDF三元組表示的知識庫(rdf_knowledge_triple)。
??? 輸出:SNetL表示的知識庫。
??? 算法簡單描述:
??? TORTS1[初始化]對RDF表示的知識進行一致性檢查;基于本體,建立RDF到SNetL的關鍵字轉(zhuǎn)換表;p1←rdf_knowledge_triple
??? TORTS2[p1等于NULL?] 若p1等于NULL,則算法結(jié)束;
??? TORTS3[分類轉(zhuǎn)換處理]判斷是否可以直接進行三元組轉(zhuǎn)換或者要進行標號處理。如果是,屬性約束、規(guī)則表示、復雜類等轉(zhuǎn)到TORTS4;否則,轉(zhuǎn)到TORTS5
??? TORTS4[帶有標號的關系式處理]讀入RDF到SNetL的關鍵字轉(zhuǎn)換表;
??? 下面對在屬性約束、規(guī)則表示、復雜類等的表示范圍內(nèi)調(diào)用相應的轉(zhuǎn)換規(guī)則進行處理。
??? (1)屬性約束:約束開始即進行標號處理,并分類,對owl:cardinality、owl:minCardinality、owl:maxCardinality、owl:someValuesFrom、owl:allValuesFrom、owl:hasValues進行處理。
??? (2)復雜類:復雜類定義開始進行標號處理,主要考慮RDF列表類(RDF:LIST)的轉(zhuǎn)換,并分類,對owl:oneOf(枚舉)、owl:intersectionOf(交集)、owl:unionOf(并集)、owl:complementOf(補集)、owl:disjointWith(不相交集)、owl:equivalentClass(等價類)進行處理。
??? (3)規(guī)則表示:規(guī)則的前提定義owlplus:Rule-Premise開始時進行標號處理,(前提 結(jié)論)轉(zhuǎn)換到SNetL表示為:(L1,imply,L2),L1表示規(guī)則的前提,L2表示規(guī)則的結(jié)論;搜索RDF的謂詞到SNetL的轉(zhuǎn)換;對規(guī)則中的與、或、非關系式進行處理。
??? (4)其他標號的處理
??? TORTS5[直接轉(zhuǎn)換處理]讀入RDF到SNetL的關鍵字轉(zhuǎn)換表;
??? 搜索在RDF的主體、謂詞、對象中是否與SNetL有對應的轉(zhuǎn)換關系,并將RDF的<主體,謂詞,對象>直接轉(zhuǎn)換為<事實節(jié)點,關系,事實節(jié)點>。
??? TORTS6[知識指針移動]p1←next(p1)轉(zhuǎn)到TORTS2。
3? 結(jié)束語
??? 本文提出了RDF到SNetL知識表示的轉(zhuǎn)換思想與算法?;谡Z義網(wǎng)絡的SNetL表示的知識在推理技術(shù)上已逐漸成熟,因此,可以借助于SNetL的技術(shù)進行語義Web的知識推理。另外,語義Web與語義網(wǎng)絡的關聯(lián)研究也將促進這兩個領域的共同發(fā)展。
參考文獻
1?? 王永慶.人工智能原理與方法.西安:西安交通大學出版社,2001
2?? 夏幼明.擴展的SNETL語言語法描述.云南省重點項目鑒定材料文集,2003
3?? 徐天任,夏幼明,甘健侯.用語義網(wǎng)絡語言描述知識的表示.云南師范大學學報,2003;(5)
4?? W3C Recommendation.Resource Description Framework(RDF):Concepts and Abstract Syntax.http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/.2004,2
5?? W3C Recommendation.RDF/XML Syntax Specification(Revised).http://www.w3.org/TR/2004/REC-rdf-syntax-gram-mar-20040210/.2004,2
6?? W3C Recommendation.OWL Web Ontology Language Semantics and Abstract Syntax.http://www.w3.org/TR/2004/REC-owl-semantics-20040210/.2004,2
7?? W3C Recommendation.OWL Web Ontology Language?Guide.http://www.w3.org/TR/2004/REC-owl-guide-20040210/.2004,2