官术网_书友最值得收藏!

2.1 知識表示與知識建模

對現(xiàn)有知識進(jìn)行表示和建模是構(gòu)建知識圖譜的基礎(chǔ)和準(zhǔn)備工作,也是完整構(gòu)建有價值的知識圖譜的前提。本節(jié)將對知識表示與知識建模的概念及常用方法進(jìn)行詳細(xì)介紹。

2.1.1 知識表示

通過將知識按照一定的方法進(jìn)行表示和存儲,才能讓計算機(jī)系統(tǒng)更高效地處理和利用知識。實(shí)際上,知識表示是人工智能領(lǐng)域一個較為核心的問題。對于知識表示的準(zhǔn)確定義目前仍舊沒有一個完美的答案。Davis等人在論文“What is knowledge representation”[1]中給出了知識表示的五種角色,具體如下所示。

  • 真實(shí)世界中知識的抽象替代
  • 本體論的集合
  • 不完整的智能推理理論
  • 高效計算的媒介
  • 知識的中間體

以上內(nèi)容可以看作是對知識表示的定義較為全面的一種闡述,那么,這五種角色的定義,分別是為了解決什么問題呢?

首先,知識表示可以看作真實(shí)世界中知識的一種抽象替代,而且這種替代是按照計算機(jī)可以理解的方法來實(shí)現(xiàn)的。這種解釋來源于,任何希望對于所處環(huán)境有所認(rèn)知的智能體都會遇到一個問題,即需要了解的知識全部屬于外部知識。舉例來說,當(dāng)人類還處在嬰兒階段時,需要對外界進(jìn)行學(xué)習(xí)和認(rèn)知。在這種情況下,人類必須將外界的實(shí)物(如汽車、蘋果等)轉(zhuǎn)化成大腦中一種抽象的表示,才可以真正學(xué)習(xí)到這個知識。現(xiàn)在如果希望計算機(jī)能夠?qū)W習(xí)到真實(shí)世界中的知識,就需要在計算機(jī)中建立抽象替代。然而,這就會引出一個問題,即對現(xiàn)實(shí)世界的知識進(jìn)行抽象表示無法完全做到無損。

為了解決這個問題,引入了知識表示的第二個角色:一組本體論的集合。本體論將真實(shí)世界中的概念和實(shí)體抽象成類和對象,從某種程度上達(dá)到了與知識表示相同的目的。將真實(shí)世界抽象成類和對象的優(yōu)勢在于,使用者可以只關(guān)注自己想關(guān)注的重點(diǎn)并僅對其進(jìn)行抽象和表示,避免了知識表示作為真實(shí)世界抽象替代無法做到無損的問題。關(guān)注事物的重點(diǎn),實(shí)際上是人類(包括人工智能)在做出判斷和決策時所使用的捷徑,這是因?yàn)樵谡鎸?shí)世界中的事物包含的信息量過大,而系統(tǒng)必須關(guān)注對其有用的信息。

除此之外,知識表示還是一個不完整的智能推理理論,這也是知識表示的第三個角色。這個角色來源于,最初知識的概念和表示的產(chǎn)生都是由于智能體需要進(jìn)行推理而驅(qū)使的。認(rèn)知能力對判斷一個物體是否智能起著至關(guān)重要的作用,而擁有認(rèn)知能力即代表智能體可以儲存知識,并使用其進(jìn)行推理后得到新的知識。但僅僅存在知識的表示理論是不夠的,需要配合推理方法等其他理論形成完整的推理理論,所以知識表示可以看作一個不完整的智能推理理論。

知識表示的第四個角色:一種高效計算的媒介。這是因?yàn)閱渭儚臋C(jī)器的角度看,計算機(jī)中的推理是一種計算過程。如果想要得到推理結(jié)果,必須對已有的表示進(jìn)行高效的計算,而知識表示抽象整合了真實(shí)世界當(dāng)中的知識,在推理時可以對知識進(jìn)行直接利用,達(dá)到高效計算的目的。

與之較為類似的,知識表示同樣可以看作一種知識的中間體。根據(jù)字面意思,知識表示代表了我們對真實(shí)世界的描述,人類可以將已有的知識作為中間體來傳播和表達(dá)知識(向機(jī)器或人類)。這種表示可以反映在現(xiàn)實(shí)生活中的很多方面,最淺顯的如書本就是一種對知識的表示,而書本正是人類傳播和描述知識的中間體。

綜合以上五種知識表示的角色,我們可以將知識表示理解為對真實(shí)世界的一種不完整的抽象描述,只包含人類或計算機(jī)想要關(guān)注的方面,同時也可以把它作為計算和推理的中間件。在了解了知識表示的概念后,接下來就需要了解知識是如何被表示的。在計算機(jī)系統(tǒng)中,知識表示的方法和形式化語言有很多種,不同的表示方法會帶來不同的表示效果。這就使得我們需要一種公認(rèn)的描述方法來對需要表示的知識進(jìn)行描述,這種方法必須足夠簡潔并且具有較強(qiáng)的可擴(kuò)展性以適應(yīng)現(xiàn)實(shí)世界知識的多樣性,這就引出了接下來將會介紹的描述邏輯與描述語言。

1. 描述邏輯

描述邏輯是指一系列基于邏輯知識形式化的表示方法,這些表示方法能夠以一種結(jié)構(gòu)化的、易于理解的方式對知識進(jìn)行表示和推理。描述邏輯建立在概念和關(guān)系之上,概念即為知識圖譜中的類和實(shí)體,而關(guān)系可以理解為實(shí)體之間的關(guān)系。實(shí)際上,描述邏輯是一階謂詞邏輯的一個可判定子集。正如名稱所表示的,描述邏輯可以通過推理的方法基于原子概念對其他概念進(jìn)行表示與描述。描述邏輯中主要包含兩類知識:術(shù)語知識(TBox)和斷言知識(ABox)。其中術(shù)語知識主要指領(lǐng)域知識中的類、屬性和關(guān)系,例如公司、地點(diǎn)等元素可以作為領(lǐng)域知識中的類;而斷言知識是指與實(shí)例有關(guān)的知識,例如<小米公司,法定代表人,雷軍>即可作為一個斷言知識。在描述邏輯中,概念(Concept)表示類和實(shí)體,角色(Role)表示性質(zhì),個體(Individual)表示概念斷言和常數(shù),運(yùn)算符(Operator)用于構(gòu)建概念或角色的復(fù)雜表達(dá)。例如,雷軍 = 小米公司 ∧ 董事長,即可作為使用描述邏輯表示的最簡單的一條知識。描述邏輯作為知識表示和知識建模的基礎(chǔ),被多種描述語言和描述框架所使用,目前標(biāo)準(zhǔn)的知識描述語言正是由描述邏輯不斷演化得到的。但相比傳統(tǒng)的描述邏輯,知識描述語言的擴(kuò)展性更好,對于人和機(jī)器而言可讀性更強(qiáng)。

2. 描述語言

在知識表示的過程中,除了需要邏輯來描述知識外,還需要一種合適的語言來基于規(guī)定的邏輯對知識進(jìn)行描述并傳遞信息。根據(jù)W3C標(biāo)準(zhǔn),通常使用資源描述框架(RDF)及網(wǎng)絡(luò)本體語言(OWL)對知識進(jìn)行描述,且兩者都使用可擴(kuò)展標(biāo)記語言(Extensible Markup Language,XML)作為核心語法。本節(jié)會針對以上規(guī)范分別進(jìn)行介紹,并給出對應(yīng)的例子。

(1)XML

XML描述了XML類型的一系列數(shù)據(jù)對象,也描述了處理它們的計算機(jī)程序行為。XML是一種格式整齊、易于使用并可擴(kuò)展的標(biāo)記語言,允許使用者創(chuàng)建獨(dú)一無二的標(biāo)簽來描述內(nèi)容。XML是由XML工作組(最初稱為SGML編輯審查委員會)開發(fā)的,該工作組于1996年由萬維網(wǎng)聯(lián)盟(W3C)主持成立。XML的主要任務(wù)是以純文本格式存儲和交換數(shù)據(jù),這種方法提供了獨(dú)立于軟件和硬件的存儲方式,方便傳輸和共享數(shù)據(jù)。一個完整的XML文檔由稱為實(shí)體或元素(下文中稱為元素)的存儲單元組成,而每個元素又由字符組成,在所有字符中,一部分作為字符數(shù)據(jù),另一部分則作為標(biāo)記,用于標(biāo)記對文檔的存儲布局和邏輯結(jié)構(gòu)。同時XML還提供了一種對存儲布局和邏輯結(jié)構(gòu)施加約束的機(jī)制,使得XML的結(jié)構(gòu)和布局更加整潔。使用XML可以使原系統(tǒng)的擴(kuò)展或升級變得更加容易,并且不會丟失數(shù)據(jù)。在設(shè)計XML時,目標(biāo)和原則主要涉及以下幾點(diǎn)。

1)XML需要能直接在互聯(lián)網(wǎng)上使用。

2)XML需支持各種應(yīng)用程序。

3)XML應(yīng)與SGML(標(biāo)準(zhǔn)通用標(biāo)記語言,國際定義的電子文檔和內(nèi)容標(biāo)準(zhǔn))兼容。

4)編寫處理XML文檔的難度應(yīng)降到最低。

5)XML中可選功能的數(shù)量應(yīng)保持絕對最小,理想情況下為零。

根據(jù)以上內(nèi)容,不難看出XML遵循簡單、易用、可擴(kuò)展的原則。在Web中,由于XML與應(yīng)用無關(guān),并且格式相對方便閱讀,所以常常用于存儲元數(shù)據(jù)。然而由于XML支持自定義標(biāo)簽,所以兩個計算機(jī)系統(tǒng)只能在互相已知文件中的所有標(biāo)簽時才能進(jìn)行XML數(shù)據(jù)交換。需要注意的是,與RDF和OWL不同,XML不是一種知識表示語言,但它的核心語法能夠被遷移到多種描述語言中,包括RDF和OWL。以下是一段XML文件示例,該示例描述了一個記錄公司信息列表的XML文件,展示了小米公司的信息,包括名稱、法人、公司種類和地址等屬性,從示例中也可以看到XML的一些格式規(guī)范和使用方法。

1. <?xml version="1.0" encoding="UTF-8"?>
2. <NOTE>
3. <company_list>
4.     <company>
5.     <name>Xiaomi </name>
6.     <represent >Lei Jun</represent>
7.     <category> Sole proprietorship enterprise </category >
8.     <address>Beijing</address>
9.     </company >
10.     <company>
11.     ……
12.     </company >
13. </company_list >
14. <NOTE>

根據(jù)上述代碼,可以看出XML文件的主要結(jié)構(gòu)是一種樹形結(jié)構(gòu)。其中包括由<>組成的字段以及不包含<>字符的字段,由包含<>的字段嵌套不包含<>的字段共同構(gòu)成了XML文件的基本單元元素。由<>組成的字段稱為元素的標(biāo)簽,即示例中的<NOTE>、<company_list>等,其中所有元素都可以自定義名稱。而不包含<>的字段即要存儲的字符數(shù)據(jù),為元素的值。同時,從以上示例中可以看出,在每個XML文檔的開頭都需要添加XML的序言,用于告訴解析XML的工具或?yàn)g覽器應(yīng)該按照什么樣的規(guī)范對XML文件進(jìn)行解析。在上述示例中,第一行即該XML文件的序言,指定了該XML文件的編碼方式和使用的XML版本。除了序言之外,XML文件必須包含根元素,即例子中的<NOTE>元素,其他所有元素都必須是該元素的子元素。同時XML元素必須包含標(biāo)簽的起始符和終結(jié)符,比如以<company_list>作為起始符,以</company_list>作為終結(jié)符。值得注意的是,XML中的字符是大小寫敏感的,同時元素的命名不能以數(shù)字或標(biāo)簽開頭,且不能以“xml”或“XML”開始。

(2)RDF

在了解了XML文件的語法和格式后,還需要掌握使用XML作為核心語法的常用知識表示方法,包括RDF和OWL,下面將主要介紹RDF。RDF是由W3C于2004年發(fā)布的一種表示W(wǎng)eb中信息的標(biāo)準(zhǔn)。RDF由RDF核心工作組開發(fā),是W3C Web語義方向工作的一部分。開發(fā)RDF的目的是為Web提供元數(shù)據(jù)模型和開放信息模型,即希望開發(fā)一種框架,用于描述和表示“描述數(shù)據(jù)的數(shù)據(jù)”的元數(shù)據(jù),并通過組合多個應(yīng)用程序的數(shù)據(jù)來獲取新信息,以允許軟件自動處理Web中的有效信息。除此之外,RDF允許在不同應(yīng)用程序之間公開和共享結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù)。由于RDF的開放性和擴(kuò)展性,使得它成為目前最常用的知識存儲和表示框架之一,在使用時,可以按照RDF的方法定義對其知識進(jìn)行定義和表示。RDF是語義網(wǎng)與本體等結(jié)構(gòu)的基礎(chǔ)層,對于人和計算機(jī)來說都有較好的可讀性。在RDF中,知識以三元組的形式編碼,其中每個三元組由一個主語、一個謂詞(或一個屬性)和一個賓語組成,可以方便地將RDF轉(zhuǎn)化為自然語言。其中RDF的主語、賓語均可以是一個空白結(jié)點(diǎn)或用來唯一標(biāo)識資源的國際化資源表示符(Internationalized Resource Identifier, IRI),謂詞則必須是一個IRI。下面通過具體代碼了解RDF的使用方法和具體語法。

1. <?xml version="1.0 "?>
2. <rdf:RDF xmlns:rdf= "http://www.w3.org/1999/02/22?rdf?syntax?ns#"
3.     xmlns:ab= "http://www.about.com/" 
4.     xml:base= "http://www.base.com/">
5. <rdf:Description rdf:ID= "Lei Jun" 
6.     ab:work= "CEO" 
7.     ab:age= "40">
8.     <ab:friend rdf:nodeID= "s3fo" />
9. </rdf:Description>
10. <rdf:Description rdf:nodeID= "s3fo" 
11.     rdf:ID= "Lin Bin"
12.     ab:age= "40">
13. </rdf:Description> 
14. </rdf:RDF>

通過以上代碼段可以看出,RDF的核心語法為XML,RDF的使用方法與XML也有類似之處。在RDF文件的起始位置,同樣需要加入XML序言,序言指定了使用的XML版本。不過,RDF作為一種全新的框架,除了需要優(yōu)先指定XML序言之外,還需要為整個RDF文件指定語法的命名空間,該操作通過示例中的第2行與第3行代碼實(shí)現(xiàn)。在指定了命名空間后,還需要指定該文件的基鏈接(即xml:base)。基鏈接可以是一個IRI,在指定基鏈接后,在該RDF文件中定義的所有實(shí)體都可以在基鏈接的基礎(chǔ)上進(jìn)行擴(kuò)展并唯一標(biāo)識。在本例中,我們假設(shè)基鏈接為www.base.com。在定義了RDF文件的全局信息后,即可根據(jù)RDF語法在其中添加需要描述的信息。在上述代碼中,我們添加了名為Lei Jun的實(shí)體,建立了名為work的關(guān)系,并且根據(jù)該關(guān)系為實(shí)體添加了名為job的賓語,以及名為age的屬性,還為其添加了一個由friend關(guān)系連接的實(shí)體,該實(shí)體同樣擁有age屬性,名稱為Lin Bin。上面的例子根據(jù)三元組可以表示為圖2-1所示結(jié)構(gòu)。

000

圖2-1 RDF表示的三元組

在確定了命名空間后,在三元組中定義的關(guān)系以及屬性的資源標(biāo)識都將屬于該命名空間。并且根據(jù)前面提到的定義,若定義主語的賓語結(jié)點(diǎn)為空,對于RDF語法而言也是合法的。實(shí)際上,RDF可以看作對XML的擴(kuò)充和簡化。相比于XML要求的嚴(yán)格樹形數(shù)據(jù)結(jié)構(gòu),RDF使用了更加簡單且接近自然語言的三元組形式,語義信息相對明確,可以更好地對知識進(jìn)行表示和對元數(shù)據(jù)進(jìn)行描述,也更容易理解。

(3)OWL

OWL是W3C Web本體工作組設(shè)計的一種知識表示語言,旨在對特定領(lǐng)域的知識進(jìn)行表示、交換和推理,經(jīng)常被用于對本體知識進(jìn)行表示。OWL作為一種基于計算邏輯的語言,其表示的知識可以很容易地被計算機(jī)所理解與應(yīng)用。與RDF相同,OWL也是2004年被W3C組織推薦作為Web中的知識表示和知識儲存語言。OWL的前身是美國國防高級研究計劃局(DARPA)開發(fā)的代理標(biāo)記語言+本體推理層(DAML + OIL)。不過,目前常提到的OWL一般指W3C OWL工作組于2009年提出的OWL 2。OWL 2是對OWL最初版本的擴(kuò)展和修訂,在OWL的基礎(chǔ)上增加了一些新操作,提升了語言的整體表達(dá)能力。在后續(xù)的內(nèi)容中,如不做特殊說明,我們提到的OWL均指OWL 2。

與XML和RDF相比,OWL提供了更豐富的推理方法和詞匯表,其中包括但不限于類之間的關(guān)系、基數(shù)、更豐富的屬性特征和枚舉類等。同時,為了適應(yīng)不同場景,OWL擁有三個不同級別的方案,分別是OWL Lite、OWL DL和OWL Full。

  • OWL Lite支持用于構(gòu)造分類法和敘詞表的簡單約束和分類層次結(jié)構(gòu),類的基數(shù)(類中屬性的數(shù)量)限制為0和1。
  • OWL DL在保持計算完整性和可判定性的同時,提供了最大的表達(dá)能力,并且OWL DL類之間的基數(shù)不限于0和1。
  • OWL Full包含OWL的完整特性,并且對RDF有很好的支持。

圖2-2描述了OWL Lite、OWL DL與OWL Full的關(guān)系。

000

圖2-2 OWL Lite、OWL DL與OWL DL的關(guān)系

在進(jìn)一步了解OWL之前,首先需要了解下OWL中的一些基本概念。

  • 類:對現(xiàn)實(shí)世界中同類事物的抽象。
  • 實(shí)體:指代現(xiàn)實(shí)世界中事物的元素。
  • 屬性:類中包含的屬于該類的特征,該值可以是一個常量,也可以是另一個類。
  • 表達(dá)式:由基本的實(shí)體組成的復(fù)雜描述。

正如在對知識表示進(jìn)行介紹時提到的,盡管OWL被用于表示本體和知識,但OWL無法表示現(xiàn)實(shí)世界知識的所有方面,使用者可以根據(jù)需求選擇較為重要的方面使用OWL進(jìn)行表示。下面的代碼片段展示了OWL的使用方法和具體語法。

1. <rdf:RDF
2.   xmlns:rdf="http://www.w3.org/1999/02/22?rdf?syntax?ns#"
3.   xmlns:rdfs="http://www.w3.org/2000/01/rdf?schema#" 
4.   xmlns:owl="http://www.w3.4org/2002/07/owl#" 
5.   xmlns:xsd="http://www.w3.org/2001/XMLSchema#" 
6.   xmlns:dc="http://www.w3.org/TR/2004/REC?owl?guide?20040210/#DublinCore">
7. <owl:Ontology rdf:about="">
8.       <owl:imports rdf:resource="http://www.example.org/company_ontology"/>
9.       <rdfs:label>Company Ontology</rdfs:label>
10. </owl:Ontology>
11. <owl:Class rdf:ID="Company">
12.       <owl:Restriction>
13.       <owl:minCardinality rdf:datatype="&xsd ;string">1
14.       </owl:minCardinality>
15.           </owl:Restriction>
16. </owl:Class>
17. 
18. <owl:ObjectProperty rdf:ID= "representFor ">
19.           <rdfs:domain rdf:resource="#People"/> 
20.           <rdfs:range rdf:resource="#Company "/> 
21. </owl:ObjectProperty>
22. 
23. <owl:DatatypeProperty rdf:ID= "companyName ">
24.           <rdfs:domain rdf:resource="#Company "/> 
25.           <rdfs:range rdf:resource="&xsd; string "/> 
26. </owl:DatatypeProperty>

根據(jù)上面的代碼片段,可以比較清晰地看到OWL與RDF類似,OWL也使用XML作為核心語法,并且還使用了一些RDF中的定義。不過,OWL在RDF的三元組表示基礎(chǔ)之上對類和屬性等元素的表示更加清晰,擴(kuò)展性也更好。比如上面第8~10行代碼導(dǎo)入了一個已經(jīng)創(chuàng)建好的本體,并且后續(xù)的操作都是基于該本體,從而大大提升了知識表示的擴(kuò)展性。在此基礎(chǔ)上,第11~16行代碼對Company類進(jìn)行了定義并約束基數(shù)(即類中的屬性數(shù))為1。同時第18~21行代碼與第23~26行代碼分別定義了類中的兩種不同屬性,這兩種不同屬性的區(qū)別和聯(lián)系將在下一章詳細(xì)介紹。

在前面內(nèi)容中,我們對知識表示的概念與方法分別進(jìn)行了介紹,并且對知識表示的主流方法進(jìn)行了詳細(xì)介紹與舉例,表2-1是對這幾種知識表示方法的簡單對比。

表2-1 知識表示方法對比

000

從整體的角度看,XML作為知識表示的核心語法和語言,在不同知識表示語言中都起著舉足輕重的作用。在XML的基礎(chǔ)上,RDF將知識轉(zhuǎn)化為三元組的形式,并且使用IRI作為不同知識的唯一標(biāo)識符,使得知識對于計算機(jī)和人而言都更具可讀性。而OWL在RDF的基礎(chǔ)上,利用類和實(shí)體的概念,將知識進(jìn)一步抽象成本體的表示,使現(xiàn)實(shí)世界的知識得以更完整、更有層次地表示。在了解了知識表示方法的基礎(chǔ)上,需要更進(jìn)一步明確采用什么樣的建模方法對知識進(jìn)行建模。

2.1.2 知識建模

知識建模是指建立計算機(jī)可解釋的知識模型的過程。這些模型可以是一些通用領(lǐng)域的知識模型,也可以是對于某種產(chǎn)品的解釋或規(guī)范。知識建模的重點(diǎn)在于,需要建立一個計算機(jī)可存儲并且可解釋的知識模型。通常,這些知識模型都使用知識表示方法來存儲和表示。知識建模的主要過程分析如下。

1)知識獲取:根據(jù)知識系統(tǒng)的要求從多個來源使用不同方法獲取知識,然后對獲取到的知識進(jìn)行判別并分類保存。

2)知識結(jié)構(gòu)化:使用不同方法(比如基于本體的建模方法)對非結(jié)構(gòu)化的知識進(jìn)行表示和存儲,以達(dá)到建模的目的。然后通過已經(jīng)建立的知識庫,實(shí)現(xiàn)知識建模后的標(biāo)準(zhǔn)化和規(guī)范化。

實(shí)際上,在任何情況下,沒有一種絕對“好”的建模方案,只有相對適合的方案。所以根據(jù)不同場景進(jìn)行實(shí)踐得到的結(jié)論,是對知識建模最好的指南。本節(jié)首先對知識建模的流程進(jìn)行介紹,然后以一種常見的知識模型——本體為例介紹知識建模的詳細(xì)過程。

知識獲取是通過多種數(shù)據(jù)源以及人類專家,為知識庫系統(tǒng)獲取和組織需要的知識的過程。在知識獲取階段,首先需要明確建立知識模型的目的,根據(jù)目的來確定其中的知識所覆蓋的領(lǐng)域與范圍。當(dāng)發(fā)現(xiàn)需要建立的知識模型覆蓋的領(lǐng)域與范圍過大時,也可以先從其中一部分入手,如對某個領(lǐng)域的子領(lǐng)域進(jìn)行建模,再對子領(lǐng)域的模型進(jìn)行集成,最終達(dá)到知識模型所要完成的目標(biāo)。在選擇領(lǐng)域與覆蓋范圍時,盡可能地選擇整體知識結(jié)構(gòu)相對穩(wěn)定的領(lǐng)域,一個不穩(wěn)定的領(lǐng)域會造成大量數(shù)據(jù)的刪減和重構(gòu),增加知識模型的維護(hù)成本,同時降低構(gòu)建的效率。通常來講,目前常用的知識來源主要包含兩方面:以Web數(shù)據(jù)為數(shù)據(jù)源和以專家知識為數(shù)據(jù)源。根據(jù)不同的數(shù)據(jù)源,可以使用不同的方法來獲取數(shù)據(jù)。

以從Web獲取數(shù)據(jù)為例,這種方法的核心在于使用增量方法針對特定領(lǐng)域不斷獲取相關(guān)數(shù)據(jù)。在整個過程中,知識的獲取是自動進(jìn)行的,并且直接從整個Web以完全無監(jiān)督和獨(dú)立的方式執(zhí)行。在獲取階段通常希望盡可能多地獲取相關(guān)知識,而Web環(huán)境由于其規(guī)模和異構(gòu)性成為知識獲取的最佳選擇。同時由于Web環(huán)境規(guī)模相對較大,在獲取時需要輕量級的分析技術(shù)才能獲得良好的可伸縮性和執(zhí)行效率。在從Web獲取知識的過程中,通常會在不同領(lǐng)域確定關(guān)鍵詞,并基于這些關(guān)鍵詞對大量網(wǎng)站進(jìn)行分析,得到需要的知識。在網(wǎng)頁分析的過程中,無須專家監(jiān)督語言模板,也無須特定分析領(lǐng)域的預(yù)定義知識(例如領(lǐng)域本體,是知識獲取的關(guān)鍵技術(shù)之一)。

另一方面,知識同樣可以通過人類專家來獲取,其中主要的方式包括但不限于由知識工程師手動將知識輸入計算機(jī)中,或?qū)︻I(lǐng)域?qū)<疫M(jìn)行采訪等。在獲取了足夠的知識后,需要判別有效性并盡可能地對知識進(jìn)行分類保存。

值得注意的是,經(jīng)過上述步驟,獲取到的信息更多是非結(jié)構(gòu)化或半結(jié)構(gòu)化的信息,這樣的信息實(shí)際上是無法被計算機(jī)直接利用的,所以在完成上述步驟后,還需要對已獲取到的知識進(jìn)行結(jié)構(gòu)化。結(jié)構(gòu)化的核心目標(biāo)是將非結(jié)構(gòu)化的數(shù)據(jù)結(jié)構(gòu)化,并使用計算機(jī)可讀的知識表示方法進(jìn)行表示。該階段的任務(wù)可以分為兩部分:知識抽取和知識結(jié)構(gòu)化的表示。知識抽取部分主要負(fù)責(zé)對非結(jié)構(gòu)化或半結(jié)構(gòu)化的知識(通常為自然語言或接近自然語言)進(jìn)行抽取,并為后續(xù)的知識表示提供便利。根據(jù)我們對RDF與OWL等知識表示語言的了解,通常可以將自然語言以三元組的結(jié)構(gòu)重新組織,這樣既方便了人的閱讀,也降低了后續(xù)將知識通過RDF與OWL表示的難度。關(guān)于知識抽取的具體方法與使用可參閱后續(xù)章節(jié)。

在知識抽取得到結(jié)構(gòu)化數(shù)據(jù)后,我們還需要將其轉(zhuǎn)換成計算機(jī)可讀的形式,一種常見的做法是構(gòu)建本體,并將知識保存為RDF或OWL文件。在本節(jié)中我們將給出一種本體構(gòu)建的方法,并在后續(xù)的章節(jié)中介紹如何具體實(shí)現(xiàn)本體構(gòu)建。

前面第1章提過,本體的概念最早起源于哲學(xué)領(lǐng)域,主要研究與哲學(xué)意義上的“存在”直接相關(guān)的概念,以及與“存在”相關(guān)的關(guān)系。而在計算機(jī)和人工智能領(lǐng)域,一種簡短的對本體的解釋是,本體是一種對于現(xiàn)實(shí)世界概念化的規(guī)范,即知識的一種抽象模型,抽象了不同實(shí)體的特征并將其泛化成不同類和關(guān)系。在本體的構(gòu)建方面,比較經(jīng)典的方法包括METHONTOLOGY法[4]、七步法[17]等,這些方法的產(chǎn)生通常來源于具體的本體開發(fā)項(xiàng)目。

下面我們就以METHONTOLOGY法為例,簡要介紹本體構(gòu)建的流程,在第3章中我們會使用七步法構(gòu)建本體。整個本體構(gòu)建過程將從產(chǎn)生非正式的規(guī)范開始,隨著本體的不斷演進(jìn)最終發(fā)展出可被計算機(jī)理解的本體模型。在演進(jìn)過程中,本體的形式化水平逐漸提高,最終可由機(jī)器直接理解。建立本體的第一步是確定建立本體的目的,包括本體的預(yù)期用戶、使用場景及本體涉及的范圍等要素。這一步的重要性在于從多個維度確定了構(gòu)建本體的條件與前提。在第一步完成后,通常會輸出一個描述本體規(guī)范的文檔。在當(dāng)前階段,這樣的規(guī)范可以是任何形式,包括正式的或非正式的,并且可以使用自然語言描述。在規(guī)定了本體的目的和范圍等要素后,第二步則需要進(jìn)行知識獲取。通常情況下,這些知識可以來源于互聯(lián)網(wǎng),也可以來源于專家或其他途徑。在大多數(shù)情況下,知識獲取可以和第一步同時進(jìn)行,即在設(shè)計本體的同時根據(jù)設(shè)計方案盡可能多地獲取數(shù)據(jù),當(dāng)本體規(guī)范文檔輸出后,再根據(jù)該文檔篩選出對本體構(gòu)建至關(guān)重要的數(shù)據(jù)。在METHONTOLOGY法的第三步,需要對本體進(jìn)行概念化。這一步的目的是組織和結(jié)構(gòu)化外部源獲取到的知識。根據(jù)第一步指定的規(guī)范,在這一步需要進(jìn)一步對獲取到的外部知識進(jìn)行抽象和匯總,提取出概念、類、關(guān)系等抽象關(guān)系作為知識的中間表示,可以使用基于表格或圖形的方法對這些中間表示進(jìn)行存儲和展現(xiàn)。這些中間表示需要同時被領(lǐng)域?qū)<液烷_發(fā)人員理解。第四步,為了使得當(dāng)前構(gòu)建的本體與其他本體融合與共享,需要盡可能集成已有本體。在集成過程中,可以借鑒已有本體的某些定義,使新建立的本體與已有本體保持一致。第五步,使用形式化語言實(shí)現(xiàn)該本體,即使用形式化語言進(jìn)行表示。舉例來說,可以使用前文提到的RDF與OWL等形式化語言表示本體。在這一步中輸出的本體形式化表示應(yīng)當(dāng)是可被計算機(jī)理解和存儲的。當(dāng)完成本體的形式化表示后,需要對構(gòu)建好的本體進(jìn)行評估,這是METHONTOLOGY法構(gòu)建本體的第六步。這一步的重要性在于識別本體中存在的冗余、不完備與不一致,以便對本體進(jìn)行優(yōu)化來提升本體的質(zhì)量。接下來即可將上述每一步的成果整理成文檔并保存,這也是METHONTOLOGY法構(gòu)建本體的最后一步。通過將構(gòu)建本體的過程文檔化,可以對整個本體構(gòu)建過程進(jìn)行反思與復(fù)盤,以便在后續(xù)需要維護(hù)時快速進(jìn)入本體的下一個生命周期。

主站蜘蛛池模板: 保德县| 沽源县| 合江县| 富宁县| 桐乡市| 龙南县| 方城县| 视频| 上饶市| 湘潭县| 大关县| 巴里| 麻栗坡县| 乐清市| 资兴市| 郯城县| 长泰县| 平泉县| 石河子市| 镇坪县| 长顺县| 博白县| 广昌县| 敖汉旗| 隆安县| 甘南县| 新晃| 汉中市| 武陟县| 建德市| 武胜县| 增城市| 大港区| 黄冈市| 奉贤区| 宝鸡市| 安新县| 犍为县| 泸西县| 安塞县| 丰原市|