一種使用表徵重述實現知識結構表示與建構的方法
2023-10-27 05:51:12 1
專利名稱:一種使用表徵重述實現知識結構表示與建構的方法
技術領域:
本發明屬於人工智慧知識工程與專家系統設計技術領域,具體涉及一種知識結構表示與建構的方法。該方法以發展心理學中概念發展有多種存儲形式和表徵水平的表徵重述假設為基礎,設計了一種對知識進行基於結構化操作語義表徵、逐級歸納和特徵提取,從而形成一個具有四層表徵的知識結構表示和建構的知識系統發展與進化方法,它是對表徵重述假設面向知識系統發展等實際需求的細節設計和算法實現,對人工智慧中知識工程領域如何建立完備的知識系統從而進行非限定性問題求解具有重要的意義。
背景技術:
人的概念系統的形成不是一蹴而就的,有一個由少到多、從粗到精的發展過程,是從小到大的不斷學習才能得到的。對概念系統形成的過程在算法層次上的研究將有助於構造更為理想的知識結構,這在人工智慧領域是一個非常核心的問題[1]。
在人工智慧和認知心理學領域都研究知識表示問題,但兩者在研究目的、出發點、表徵形式和應用等方面都有很大不同,前者是由具體應用派生出來的,而後者是非任務針對性的和由自然發展過程形成的。人工智慧領域對表徵的研究大多是為特定應用背景下的知識系統服務。這些系統中的知識大多屬於某一特定領域,並且為了某些特殊應用組織成相應的表徵形式[2,3]。這些為特定應用而設計的表徵顯然無法滿足非限定情況下不確定的推理需求。同時,這些知識的系統還有一個共同的特點,就是它們所涉及的知識一般都是某個領域內已經具有一定總結性和抽象程度的知識,如規則、定理、按照一定的結構體系組織起來的層次關係等。從人的認知的角度來看,這些知識已經達到了一定的高度,然而這並不代表機器擁有了與人相同的智能。Gordon指出,人和機器的知識獲取方式有很大不同[4],在人的學習過程中,新知識與原有的知識間存在著很強的依賴關係,較高水平的知識依賴於低水平知識的掌握。而在基於知識的系統中,知識一般是從某個領域的專家或者文獻中獲取,新獲取的知識在系統中單純地累加,幾乎不與原有的、更基礎的知識發生關係。這些知識在一定程度上可能得以應用,但這種應用的局限性很強。如某個知識系統可以根據牛頓第二運動定律公式F=ma,找出m和a的值,通過計算求得力,但它可能並不理解這裡的m和a到底有什麼意義。而人能理解這些概念的意義,因此除了能通過公式計算,還可以完成其他相關的任務。缺乏概念間依賴性的知識系統雖然在實現上有其便利性,卻因為其呆板性導致知識應用相當不靈活,同時也因為高水平概念缺乏低水平概念的支持,導致概念系統的不完備。因此,研究概念的發展過程即認知發展過程對構造一個完備的知識系統是相當必要的。
與人工智慧領域不同,心理學領域對表徵的研究更關注於認知現象的表徵。換句話說,認知心理學是以研究人的認知過程為目的,在這一領域對表徵的研究也是為這一目的服務的,這與人工智慧領域以應用為目的,表徵已有一定體系和結構性的知識有顯著不同。在認知心理學領域關於表徵的研究主要集中於局部表徵(localist representation)和分布式表徵(distributed representation)之爭[5,6,7,8]。局部表徵認為大腦中的單一神經元對應於單一記憶,因此用單一節點表示單一概念,人工智慧系統中的大部分知識表示方法都是局部表徵。而分布式表徵認為記憶並不屬於任何單一神經元,而是由一組神經元的激發類型來呈現,因此在分布式表徵中,概念並不儲存在某一節點,而是分散在系統中的節點。一般認為,分布式表徵比較適用於表示低水平的認知現象,在這一水平多是一些程序性知識,而分布式表徵的內隱性質有助於尋找出這些知識背後的一般性質和原理。因此,分布式表徵被認為有較好的語義性,而相對的結構性較差。相反的,局部表徵因為其較好的結構性被認為較適用於表徵高水平認知現象,但是其常因語義的脆弱性而遭人詬病[6]。由於兩種表徵各有自己的優缺點和適用情況,因此為了建構更好的認知模型,必須改進某一種或兩種表徵。改進的方法主要有兩種,一是增強局部表徵的語義性,二是增強分布式表徵的結構性。Eliasmitha等人提出的Drama[6]與Sun等人提出的CLARION[7]就分別從兩個不同角度拓展了分布式表徵和局部表徵的應用。但這些應用的局限性很大,無法從本質上改變兩個水平知識表徵割裂的現狀。
發展心理學從很多不同角度對知識的表示與發展等問題進行研究。其中較具代表性的觀點有Piaget的後成建構論以及Fodor的模塊先天論。Karmiloff-Smith調和先天論與建構論中的某些方面,提出了表徵重述過程與RR(Representation Redescription)模型[9]。她主張人類特有的獲取知識的方式是通過表徵重述過程,認為相同的知識可以有多種儲存的形式和水平。RR模型包括三個階段以及維持這三個階段的四種不同水平的表徵。
第一階段,人們主要從外部環境中抽取信息,形成表徵附加物,這時的表徵只是加在已有的材料之上,既不改變既存的穩定表徵,也不與它們發生關係。在這一階段的表徵形式稱為內隱(水平I)表徵。在這個水平上的表徵以程序形式對外在環境中的刺激進行編碼。水平I表徵獨立儲存,可以產生成功的行為,但這種行為是相對不靈活的。
第二階段是一個內部驅動的階段,內部表徵成為變化的重點。維持這一階段的表徵是外顯1(E1)水平表徵。E1表徵是水平I表徵重新編碼為一種新的壓縮形式的結果。水平E1涉及外顯的表徵,這些表徵能被操作並與其他重述過的表徵發生聯繫。它們還沒有通達到意識,也不能用言語報告,但顯然超越了程序水平。
第三階段,外部材料和內部表徵調和了,在內部控制和外部控制之間達到了平衡。維持這個階段的表徵被稱為外顯2(E2)和外顯3(E3)水平表徵。E2和E3表徵超越了E1水平的表徵,它們都涉及有意識的通達,區別是E3水平可言語報告,E2則不能。
在每一個階段,最後結果都必須是在現有表徵水平下達到行為的連貫成功,這被稱為行為掌握。在相鄰兩個階段之間發生表徵重述。表徵重述過程以行為掌握為基礎。通過表徵重述,獨立儲存的、程序化的內隱信息逐漸變為可以被認知系統其他部分利用、較靈活的外顯知識。表徵重述過程在人的認知發展過程中的各個領域、各個時刻不斷重複發生,且受到已有表徵的內容和外顯水平的制約。
新近也有許多研究對揭示人的知識系統中的表徵形式起了一定的作用。如Hadjichristidis和Sloman等人提出的特徵中心性假設[10]指出特徵之間的依賴性對於表徵知識的內涵以及運用知識起著十分重要的作用。這一假設對概念間的歸納推理研究有很大的意義。Ahn和Gelman等人做了與此類似的研究[11]。
此外,Zacks研究了分割[12,13]與事件理解之間的聯繫。Zacks認為人們通過對事件的分割來理解事件。在分割過程中,自底向上的分割扮演了很重要的角色。分割出現在那些物理特徵發生改變最大的時刻。同時,分割還受現有知識結構的影響,根據已有的對事件意圖、目的等知識不同掌握程度,分割的粒度等方面有所不同。這些觀點都得到了相應實驗的支持[12]。除此之外,Zacks還對事件的結構進行了研究[13]。Zacks認為事件與物體一樣,擁有類層次結構和組成結構。所不同的是對物體組成部分的分割總是集中於空間特徵,而對事件的分割集中於時間上的特徵。這樣的分割形成了事件的結構特徵。Zacks認為事件的結構與事件的目標、因果關係等因素有很大的關聯,如分割總出現在一些諸如事件子目標的達成,或者事件間因果關係發生的時刻。這樣的關聯對事件的理解、記憶和計劃等起到了很大的作用。研究物體和事件的表徵是知識系統中非常重要的部分。Feldman和Zacks的研究表明物體和事件可以用相似的層次結構來表徵。但兩者又有所不同,因為事件的表徵還涉及到時間因素。
本研究的目標是為概念發展的表徵形式找到一個可實現的方法,為計算機系統執行基於知識的任務時提供豐富詳實的語義支持。這一研究基於這樣一個理論背景,即探索認知結構,這是一個若干領域共有的核心科學問題[14,15]。
參考文獻1.Mark H.Bickhard Loren Terveen,Foundational issues in artificial intelligence andcognitive science,Amsterdam,Elsevier,1995,11~182.Ruud van der Pol,Dipe-Ra knowledge representation language,Data KnowledgeEngineering,45,2003,257-2903.D.Jouve,Y.Amghar,B.Chabbat,J.-M.Pinon,Conceptual framework for documentsemantic modellingan application to document and knowledge management in the legaldomain,Data Knowledge Engineering,46,2003,345-3754.J.L.Gordon,Creating knowledge maps by exploiting dependent relationships,Knowledge-Based Systems 13,2000,71-795.Jeffrey L.Elman,Distributed representations,simple recurrent networks,and grammaticalstructure,Machine Learning,7,1991,195-2246.Chris Eliasmitha,Paul Thagard,Integrating structure and meaninga distributed model ofanalogical mapping,Cognitive Science,25,2001,245-2867.Ron Sun,Edward Merrillb,Todd Petersonb,From implicit skills to explicit knowledgeabottom-up model of skill learning,Cognitive Science,25,2001,203-2448.Jeffrey S.Bowers,Challenging the widespread assumption that connectionism anddistributed representations go hand-in-hand,Cognitive Psychology,45,2002,413-4459.Karmiloff-Smith,A.Beyond modularityA developmental perspective on cognitive science.MIT Press,199210.Constantinos Hadjichristidis,Steven Sloman,Rosemary Stevenson,David Over,Featurecentrality and property induction,Cognitive Science,28,2004,45-7411.Woo-kyoung Ahn,Susan A.Gelman,Jennifer A.Amsterlaw,Jill Hohenstein,Charles W.Kalish,Causal status effect in children′s categorization,Cognition,76,2000,B35-B4312.Jeffrey M.Zacks,Using movement and intentions to understand simple events,CognitiveScience,28,2004,979-100813.Jeffrey M.Zacks,Barbara Tversky,Event Structure in Perception and Conception,Psychological Bulletin,127,3-2114.Kurt Vanlehn edited,Architectures for Intelligence,New JerseyLawrence ErlbaumAssociates Publishers,199115.Robert L.Solso edited,Mind and Brain Sciences in 21st Century,CambridgeThe MIT Press,1997發明內容針對經典人工智慧理論在知識獲取問題上遇到的困難,本發明的目的在於提出一種建立於發展心理學和認知心理學理論基礎上的,能適應非限定問題求解需求的知識系統表示與建構的新方法。
本發明提出的能適應非限定問題求解需要的知識系統表示與建構方法,是一種使用重徵表述實現知識結構表示與建構的方法,其基本步驟是用發展心理學的進行知識系統構造,具體是用面向對象方法和UML建模語言等工具對該知識系統四種不同水平和結構層次的知識進行表示,並通過基於相似性歸納和特徵提取的表徵重述實現方法,和基於表徵重述的多層知識結構建構方法,以實現非限定的問題求解。它以計算機科學與心理科學的學科交叉為基礎,從解釋智能的角度出發,將發展心理學中關於概念與認知能力發展的表徵重述設想具體算法化,將概念系統發展過程的心理學理論應用於人工智慧中知識系統建構方法的設計,使得知識系統在低階結構不連續、知識獲取瓶頸等方面的缺欠得到改善。
本發明的基本內容可分為如下幾個部分。
1.用發展心理學的方法進行知識系統構造發展心理學從認知角度對知識表示進行研究,這與人工智慧領域以特定應用為目的的出發點有很大不同。因此,用發展心理學的方法來實施知識系統構造更有利於建立一個完備的知識系統,以適應更靈活的非限定性問題。前面所述的表徵重述模型給出了認知過程發展的一個完整模型。由內隱表徵(I)到外顯表徵(E3)的四層表徵模型,為知識系統的建構提供了一種新的方法,即從表徵的變化發展來研究認知發展。然而,RR模型雖然提出了四種不同水平的表徵,但區別這四種水平表徵的因素,如「是否通達到意識」、「能否用言語報告」等無法簡單地對應到概念系統中來,它們如何在計算和表徵上進行對應都是重大的懸而未決問題。在這裡我們藉助面向對象(object orient)和對象的形式定義這一刻畫個體行為與關係的手段,將它們巧妙地應用到概念系統的發展與構造上來。
面向對象是一種結構很好,而且廣為大家熟悉的對物理世界進行描述的手段,它在理論上、在實現方法上都有保證。面向對象方法是用對象來描述各種概念。對象知道事情(也就是說它們擁有數據),它們也完成事情(也就是它們有功能)。對象包括類和實例,其中實例是擁有具體數據的對象,而類是對象的模板,它由一些具有相同屬性或行為的對象歸納抽象得到。類與類之間可能存在父類到子類的繼承關係,即子類可以從父類繼承某些屬性和方法。描述同一對象的數據和功能按照一定結構封裝成為一個整體,具有模塊性。不同的對象之間僅能通過接口發生交互,除此以外,對象的其他成分都是對外不可見的。
根據表徵重述模型中對各層表徵特點的描述,本發明設計了一個這樣的多級表徵模型。低水平的表徵是一些對具體實例的表徵,這樣的表徵往往是細緻的,細緻到一個物體的每一個具體的屬性值,一個事件的每一個具體的步驟。但這樣的表徵也往往是呆板的,缺乏一般性和規律性,也無法被運用到其他地方。隨著表徵水平的上升,表徵中不重要的細節成分逐漸被拋棄,而那些具體的知識中存在的一般性和規律性逐漸被抽取出來,重組為一種新的表徵形式。新表徵的抽象程度相比舊錶徵得到提高,而其形式化水平和外部可見性也同樣得以發展。這種不同水平間表徵的進化通過重述來完成,而重述的依據是一系列不同層次特徵的抽取。在同一水平內,屬於同一類別的表徵根據其相似性進行歸納,得出較一般化的形式。這也對應了RR模型中相應的三個階段。因此,在整個知識系統建構過程中,表徵共經歷了三次表徵內的變化和三次表徵間的重述。
下面我們用對象在屬性與行為上的進化來表示各層表徵的形式、表徵內的變化與表徵間的重述內隱水平I根據發展心理學關於這一表徵水平的行為特點,假設對單個孤立事件進行表徵的對象是這一階段外在表現的內在基礎,意即這一階段的表徵都是一些單個事件的實例。這些事件存儲的均為具體的數據,因此對象的屬性都是常量,而對象在行為上是囫圇吞棗的,不可被中斷,由一些不可再分的原操作序列表示。這一表徵缺乏依事件的歷程、角色、地點所進行的大尺度分解與小尺度組合,沒有模塊性,該對象對外可見的部分就是整個行為,而且幾乎沒有接口,也就是說行為幾乎是不可調控的、目的幾乎唯一性的。
階段1階段1描述的是I水平表徵內部的變化。此階段由表徵中提取的相似性主要有兩種,一是屬性間的相似性,這要求相比較的屬性必須在所屬類型上嚴格相同。二是行為上的相似性,這要求行為上遵循嚴格相同的步驟,但這裡要考慮循環和條件分支。經過階段1得到的表徵已不再是實例,而成為有一定抽象水平的類,一些顯著的屬性已被參數化,而此時的行為也有了一些循環和條件分支,具有了一般化抽象水平。
外顯水平E1從I水平表徵到E1水平表徵的重述所進行的操作主要是行為的分割,因為對事件的分割對事件理解起了至關重要的作用。重述所提取的特徵主要是參數作用域的性質。根據參數作用的局部性,可以把對象的行為分割成幾部分,這樣每部分也有了各自的語義。因此,在E1水平,對象擁有了一些子行為。每個子行為有各自的參數和返回值,相應的也就是事件的條件和結果。而不同的事件間通過參數的傳遞,建立起了因果聯繫。這一水平的表徵間行為以拓撲序而不是以時間順序相聯繫。
階段2這一階段的表徵變化針對的相似性則比階段1中的層次要更高。對於屬性來說,相似性基於它在同一類行為裡所扮演的角色;而對於行為過程來說,相似性基於對象行為的參數、返回值和拓撲序。歸納的結果,使對象的屬性和行為的抽象性得到了進一步的提高。
外顯水平E2從E1到E2水平表徵的重述是基於更進一步的特徵,那就是對象的屬性和行為間的聯繫或者說依賴性。重述的操作主要是基於面向對象方法中高內聚低耦合的原則,根據上一水平重述得到的對象成分間的依賴性,把對象進行分裂和合併。對象中相互獨立的幾個部分被分裂成幾個對象,而相互聯繫緊密的幾個對象被合併在一起。重述提高了對象內部的內聚性,降低了對象間的耦合性。
階段3這一階段的變化針對的是同一領域內的相似性,意即把同一領域內所涉及的操作歸納到一起,以建立領域內的聯繫,使得領域內的知識達到連貫統一。這裡的領域不一定是指一般意義下的大領域,也可以是涉及面比較窄的微領域。歸納的依據是在同一領域內,對象的屬性和行為大多相似。如在數的領域裡,計數事件與比較事件都對一個集合的基數進行操作。
外顯水平E3根據RR模型中的描述,在這一水平,表徵的特點是「通達到意識且可言語表達」,與E2水平表徵的區別僅限於是否可用言語表達,並不涉及系統內其他的變化。根據這個特點,本發明把E3設計為用一種簡單的形式,即用謂詞邏輯形式來表示知識,這樣便於與系統外部交流,使得知識的運用變得更加方便。
2.表徵重述的具體實現面向對象是一種應用相當廣泛的方法,也有多種具體的實現形式。本發明提出了兩種表徵的具體實現,一種方法是面向對象程序設計語言的實現。面向對象程序設計語言是專為面向對象程序設計的語言,它能實現大部分面向對象方法中的元素,如類、對象、屬性、方法和繼承等。它有很好的形式。但由於程序設計語言對語法要求過於嚴格,因此用面向對象程序設計語言對知識進行表徵時,需要適當放寬對語法的要求。
第二種方法是用標準建模語言UML來對知識進行表徵。UML語言用於面向對象建模,因此它不需要關心實現的細節,這對於知識的表示是一個優點。UML語言包括數十種不同的UML圖,本發明選取了其中的用例圖來表示知識的外部可見性,用類圖和包圖來表示領域內知識的靜態結構,用狀態圖和活動圖來描述對象的行為。
圖1為I水平(階段1前)對象圖。
圖2為I水平(階段1前)狀態圖。
圖3為I水平(階段1後)類圖。
圖4為I水平(階段1後)狀態圖。
圖5為E1水平(階段2前)用例圖。
圖6為E1水平(階段2前)類圖。
圖7為E1水平(階段2前)活動圖。
圖8為E1水平(階段2後)用例圖。
圖9為E1水平(階段2後)類圖。
圖10為E1水平(階段2後)活動圖。
圖11為E2水平(階段3前)類圖。
圖12為E2水平(階段3後)包圖示意圖。
表1為I水平(階段1前)State4狀態表。
表2為UML圖符號表。
表1
表具體實施方式
1.用面向對象程序設計語言實現表徵重述一般的C++程序由一系列語句組成,包括聲明語句、執行語句、空語句和複合語句等。聲明語句聲明一些變量和函數。執行語句包括控制語句、函數調用語句和表達式語句。控制語句如條件語句和循環語句等,它們控制程序中語句的執行順序;函數調用語句調用一些已經存在的函數,換言之也就是一些操作或者說是功能的調用。表達式語句主要是一些賦值語句,即把各種表達式的值賦給變量,實際上也是進行了某些較函數更為簡單的操作。空語句是一個什麼也不做的語句,它一般用來做轉向點,或循環語句中的循環體。複合語句是用大括號括起來的一些語句,它們一般作為一個整體,在循環體或函數體中出現。
類是C++中重要的數據類型。有了類,不僅可以定義多樣的數據結構類型,也可以實現面向對象程序設計方法中的封裝、信息隱蔽、繼承、派生和多態等功能。本發明在表徵重述過程中,用C++中的類來表示各種各樣的概念,包括物體和事件,以及更為抽象的概念。在一個類中包括成員變量和成員函數,它們分別描述概念的靜態屬性和動態行為,而這些成員變量和函數的公有、保護和私有屬性可以藉以描述它們的外部可見性。
由於表徵重述的各個水平所表徵的概念在認識水平上有所不同,因此在各個水平,不能用單一的面向對象語言形式來描述。根據各個水平知識的差異,本文給出了這樣一種實現的方法,在下面分別給予描述內隱水平I(階段1前),其突出特徵為知識是由對象實例描述的物體和事件。
由於兒童在認知的初級階段只能觀察到一些具體的物體和事件實例,因此在I水平的最初階段輸入系統的知識是對一些具體的物體和事件實例的表徵。這時的表徵形式類似面向對象語言中實例化的類,也就是狹義的對象。在表徵重述過程中實例是最初進入系統的材料,這個時候的對象形式相當的簡單。
第一步,先利用面向對象程序設計定義類的數據結構,之後再根據類這種數據類型來定義變量或常量。第二步,如果描述的是物體,那麼定義一些屬性來描述,把所有這些屬性都設置為常量,因為它們都具備可以被觀察到的具體值。這裡要注意因為C++語言在定義常量時也必須給出類型,因此系統中採用一些C++語言中的基本類型。第三步,如果描述的是事件,那麼首先對參與事件的物體的屬性按第二步的方法進行定義,也設置為常量。接著開始描述事件的過程,系統定義了一些動作原語作為基本元素,然後將事件的過程定義為一系列不可再分的動作原語的序列。
內隱水平I(階段1後),其突出特徵為類開始出現,但僅有成員變量而沒有函數,事件的過程初步一般化。
階段1是一個行為掌握的階段。在I水平的初級階段,系統中可能存在著同一類物體或事件的不同實例描述。這些實例由於彼此間的相似性而被歸為一類。
第一步,基於屬性類型和屬性值的相似來確定物體的相似性,並進行標記。第二步,基於參與事件的物體類型、事件過程中動作原語序列的相似性來確定事件的相似性,並進行標記。第三步,當描述同一類物體的對象實例積累到一定數量時,系統歸納它們的相似性,得到一個較一般的類。為了符合此刻類的形式化水平還很低的特點,類中僅定義了一些屬性作為成員變量,不定義成員函數。第四步,當描述事件的對象實例累積到一定數量時,事件的過程被歸納為一個一般化的過程(如事件過程中存在著一些循環操作或者根據條件選擇的操作,經過歸納後用C++語言中的條件語句和循環語句描述)。用函數表示這個過程,但形式是初級的,定義它為對外不可見,不定義返回值和不帶參數,不允許其被調用,僅允許其靜態描述整個事件過程。
外顯水平E1(階段2前),其突出特徵為對事件過程的分割導致成員函數的出現。
從I水平到E1水平的表徵重述主要針對於描述事件的表徵中的事件過程。由於之前對事件的表徵只能描述事件的發生過程,這致使整個事件既不能為系統其他部分所用,也無法對事件的各步驟進行考察。因此,第一次重述所做的工作是對事件過程進行分割,把它分成較為獨立的幾部分,從而形成幾個獨立的成員函數。
第一步,確定分割的依據主要為參數的作用域。在大多數程序中,參數的作用域存在著局部性,也就是同一個參數常常只為程序的一小部分所用。第二步,通過考察事件過程中那些操作圍繞同一個或者同一部分參數,把它們集中在一起,形成一個單獨的函數。第三步,根據一個事件的過程涉及參數變化過程的獨立性、族聚特徵、彼此間不存在數據交換特徵把參數進行劃分,形成幾組。第四步,根據第三步的參數分組結果和第二步的函數形成方法將事件過程的若干部分分開,形成各自獨立的函數。第四步,將對事件的抽象表示上升到一個新水平,即劃分事件為幾個意義獨立的組成部分,為每個部分設置各自的參數及操作數,作為面向對象程序語言中的函數參數,同時為那些需要向外傳遞數據的函數設置返回值。
外顯水平E1(階段2後),其突出特徵為基於函數相似性的歸納使類的屬性和行為的抽象化水平進一步提高。
階段2仍是以行為掌握為目的,因此它所進行的工作仍是基於相似性的歸納。只是這一次的歸納比上一階段更高級。
第一步,鑑於經過第一次重述後的類已經具有成員函數,因此基於成員函數的相似性(包括函數的返回值、參數個數、參數類型的相似性)進行歸納,並進行模式相似性標註。第二步,檢查事件過程中函數調用順序的相似性,並進行模式相似性標註。第三步,通過第一步和第二步的歸納,將一些原本沒有被歸為一類的表徵間的相似性抽取出來,定義為新的抽象概念。
外顯水平E2(階段3前),其突出特徵為類的分類與組合,高內聚低耦合的實現。
面向對象的一個原則是高內聚低耦合,即在同一對象內的各部分聯繫應該儘量緊密,而不同對象間的接口應該儘可能簡單。從E1水平到E2水平的重述就是圍繞這樣一個原則進行的。
第一步,通過正例和反例進行事件完整性檢查,確定事件的本質屬性。E2水平之前對事件的表徵都是圍繞一個觀察到的事件來進行的,因此事件的完整性並不能被保證,通過觀察得到的事件只是整個事件的一部分,也可能其中存在著冗餘。第二步,確定由於不完整觀察而導致的非理想表徵(這不利於問題求解)的位置。第三步,通過考察階段2後得到類的各成分間的依賴關係大小,把類進行分裂和合併,使得表徵更接近高內聚低耦合的原則。
外顯水平E2(階段3後),其突出特徵為達到同一領域內知識的連貫統一。
階段3同樣涉及基於相似性的歸類,但這一階段所關注的相似性更接近廣義上的相似性。它涉及把同一領域內的知識組織到一起。這裡的領域不僅僅表示通常意義下的物理、數學等幾大領域,而是涉及一個多級的樹形結構,一個大領域內可能存在許多小領域,而一個小領域內存在著許多微領域。
第一步,判斷兩個行為是否屬於同一領域,並給予標記。其判別原則是同一領域內的知識常常對同樣的屬性進行操作,如計數過程中關注最多的是集合的基數屬性,而不關心具體被計數的物體種類、顏色、大小等,比較兩個集合元素個數的行為同樣涉及到基數屬性,因此可以很容易判斷這兩個行為屬於同一領域。第二步,把同領域內的知識組織到一起,服務於問題求解。其判別原則是在問題求解過程中,與問題領域相關性較強的知識更可能被需要,因此根據知識的頻度關聯性可以識別哪些知識更經常地捆綁使用,從而歸為同一領域。第三步,不改變表徵的具體形式,改變類的組織形式,把相關性強的表徵代碼組織在一起。
外顯水平E3,其突出特徵是以問題求解為目的,用謂詞邏輯形式重述表徵。
在RR模型中,E3水平相對於E2水平表徵區別被描述為「是否能用言語表達」。我們用基於概念發展和問題求解兩個不同的目的來區別兩個水平間的表徵。用面向對象語言描述的多層表徵較利於實現各個水平表徵的發展,但在問題求解過程中,這樣複雜的形式不利於把需要求解的問題簡單地描述出來。相對而言,謂詞邏輯更易於描述問題。
第一步,用謂詞邏輯形式重新描述從E2到E3水平的表徵。第二步,用謂詞邏輯表徵進行問題求解。
2.用標準建模語言UML圖式方法實現表徵重述UML提供的基本模型圖包括用例圖展示系統外部的各類執行者與系統提供的各種用例之間的關係。
類圖展示系統中類的靜態結構。
對象圖是類圖的一種實例化圖。
包圖是一種分組機制。
狀態圖描述一類對象具有的所有可能的狀態及其轉移關係。
順序圖展示對象之間的一種動態協作關係。
合作圖從另一個角度展示對象之間的動態協作關係。
活動圖展示系統中各種活動的執行流程。
構件圖展示程序代碼的物理結構。
配置圖展示軟體在硬體環境中(特別是在分布式及網絡環境中)的配置關係。
這些圖根據不同的角度來考察系統,又可分為五類。
第一類是用例圖,它從用戶角度描述系統的功能,並指出各功能的操作者。
第二類是靜態圖,包括類圖、對象圖和包圖。其中類圖用於定義系統中的類,包括描述類之間的聯繫(如關聯、依賴、聚合等)以及類的內部結構,即類的屬性和操作。因此類圖是描述系統中類的靜態結構,即它所描述的是一種靜態關係,在系統的整個生命周期都是有效的。其中對象圖所使用的表示符號與類圖幾乎完全相同。它們的不同點在於對象圖只是顯示類的對象實例,而不是實際的類。一個對象圖是類圖的一個實例。由於對象存在生命周期,因此對象圖只能在系統某一時間段存在。包圖由包或類組成,主要表示包與包、包與類之間的關係。包圖用於描述系統的分層結構。
第三類是行為圖,描述系統的動態模型和組成對象間的交互關係。一種是狀態圖,它描述一類對象的所有可能的狀態以及事件發生時狀態的轉移條件。通常狀態圖是對類圖的補充。另一種稱作活動圖,它描述為滿足用例要求所要進行的活動以及活動間的約束關係。使用活動圖可以很方便地表示並行活動。
第四類是交互圖,描述對象間的交互關係。一種稱之為順序圖,用以顯示對象之間的動態合作關係。它強調對象之間消息發送的順序,同時也顯示對象之間的交互過程。另一種是合作圖,它著重描述對象間的協作關係。合作圖跟順序圖相似,顯示對象間的動態合作關係。除了顯示信息交互外,合作圖還顯示對象以及它們之間的關係。如果強調時間和順序,應該使用順序圖;如果強調通信關係,則可以選擇合作圖。這兩種圖合稱為交互圖。
第五類是實現圖,包括構件圖和配置圖。因為它們涉及的主要是系統實現方面的問題,與表徵的描述沒有太大關係,這裡不再詳細描述。
正因為UML中包含這麼多種模型圖,而每個模型圖又從各個不同角度來描述系統,因此在表徵重述的實現過程中,可以在每一水平選擇一種或幾種不同的模型圖來表述,以表明各個水平表徵的不同特點。
由於對事件的描述中包含了對物體的描述,因此,下面我們將分別描述在各個水平分別採用哪一類或哪幾類模型圖,以說明概念系統中學習一個事件的過程。
內隱水平I(階段1前),其突出特徵是由對象圖和實例級狀態圖描述。
和用面向對象程序語言實現時一樣,在I水平的初級階段,系統面對的是一些物體和事件的實例。
第一步,由於對象圖直接用於表示類的實例對象的靜態結構,因此使用對象圖來描述這一水平對象的結構。定義對象圖的對象名、對象的類型、對象的各屬性值等各種靜態內容,但此時不定義對象的方法域。第二步,由於狀態圖描述的是一個對象在整個過程中各狀態間的轉換關係,以及對狀態本身進行描述,因此在這一水平使用狀態圖來描述整個事件發生的過程。將所觀察到的事件分解成一連串順序的不可再分的原動作序列,將每兩個動作原語之間的時刻作為一個狀態,而把這個動作作為兩個狀態間的轉換條件,用狀態圖來描述這個事件的實例狀態。要注意在這一水平狀態的分割是相當細節化的。第三步,對一個較長的事件來說狀態的數目很多,歸併其中相同的狀態(如事件中存在循環的步驟),並將每個狀態記錄到一張狀態表中,並存儲狀態的細節(包括事件中各物體在該狀態的數據)。見表1。
內隱水平I(階段1後),其突出特徵是由類圖和狀態圖描述。
通過階段1的行為掌握,概念系統對事件的認識形成了有一定抽象水平的類。
第一步,用類圖來描述事件類的靜態結構。由於此時對象還不存在方法(類似面向對象語言中的成員函數),因此使類圖裡的這一部分內容空缺。第二步,系統對事件的過程進行歸納,用狀態圖表示。比如對事件過程中的循環,通過對相同狀態的合併可以歸納得出,再用狀態圖可以很方便地表示循環。
外顯水平E1(階段2前),其突出特徵是由用例圖、類圖和活動圖描述。
從內隱表徵到外顯表徵最大的變化在於是否可被系統其他部分可用。在內隱水平,事件作為一個被觀察到的整體被描述,但是它只是單純地附加到系統中,並沒有任何實際的意義。但是在E1水平,事件作為一個整體可以被系統所用。
第一步,使用用例圖描述可用性,仍然用類圖來描述事件的靜態結構,使用類圖支持成員函數的返回值和參數個數和類型描述。第二步,在這一水平將對事件行為的描述從關注狀態轉到關注活動,並用活動圖來描述事件過程,不再使用狀態圖來描述它。從I水平到E1水平的一個重要變化是對事件過程的分割導致成員函數的出現,用活動圖描述並行活動的性質來實現它。第三步,用活動圖表徵事件各步驟間的拓撲結構,並為階段2的行為掌握做準備。
外顯水平E1(階段2後),其突出特徵是由用例圖、類圖和活動圖描述,抽象化水平進一步提高。
階段2後仍是基於相似性的歸納,只是這一次是基於成員函數的相似性,得到的新表徵仍以用例圖、類圖和活動圖描述。
第一步,基於類圖描述成員函數的返回值和參數、活動圖描述的各活動間拓撲結構的相似性,用類圖和活動圖對表徵進行歸納。第二步,提高抽象程度,形成相對於階段2前的表徵更具一般性的對象類。第三步,通過表徵各活動間的拓撲序,在活動圖中加入了各活動間的數據傳遞關係來表現各部分間的依賴關係強弱等方式,調整結構使得活動圖進一步抽象,以便進行第二次重述。
外顯水平E2(階段3前),其突出特徵是類圖的變化成為表徵變化的重點。
這一水平的變化主要轉到類圖上,它的目的是實現面向對象的高內聚低耦合原則。
第一步,根據對象間各部分的依賴性強弱,對象進行分裂和合併。在這裡,對象各部分間的依賴性通過考察上一水平活動圖中的數據傳遞關係得到。第二步,得到類結構的變化,即類圖的變化,而用例圖和活動圖則根據類圖的變化而進行相應的變化。
外顯水平E2(階段3後),其突出特徵是包圖的變化。
UML中的包圖描述的是一種對象間的分組機制,很適合用來描述知識間的領域關係。
第一步,在這一水平把同一領域內的知識放到一個包中去,進行微領域合併。
外顯水平E3,其特出特徵是用謂詞邏輯形式重述表徵。
同面向對象語言的實現一樣,在這一水平,同樣是用謂詞邏輯重述表徵,這裡不再贅述。附例為了便於說明表徵的細節問題,這裡將採用一個計數的例子。
計數是一種非常重要而基本的認知技能,計數過程受到一些原則的制約,包括基數原則,即只有計數過程中最後的數詞代表這組物體的基數值;項目無關和次序無關原則,即任何種類的項目都可以計數,一組項目中各個不同的項目計數次序與基數值無關;一一對應原則,人們必須把一個集合中的每一個項目與另一個集合中的一個且只有一個項目匹配,以確定兩者是否相等。學習計數行為的過程就是領會和掌握這些原則的過程。從不會計數到熟練計數是一個表徵重述的過程。在從不會到熟練掌握該技能的各個表徵水平,它們的典型行為是這樣的
下面分別針對發明內容中的用面向對象程序設計語言實現表徵以及用UML語言實現表徵的具體實施方案進行對應敘述。
1.用面向對象形式定義實現表徵重述面向對象程序設計語言是為面向對象方法所設計的程序語言,因此它可以實現大部分面向對象方法中的元素。
I水平表徵(階段1前)這一階段用面向對象語言來表示計數事件的一個實例——數排列成一排的三個蘋果。因此實例中的屬性都是一些常量,如蘋果的排列,數數者Mary等等。而事件過程也是由一些不可再分的動作原語順序表示,如指向蘋果的動作,數數得動作等等。
Instance Eventl{const PERSON I;
const Sound ONE,TWO,THREE;
const LINEARRANGEAPPLEARR{a
=A,a[1]=B,a[2]=C};
Process{Mum.PointTo(A);
Mum.Say(ONE);
Mum.PointTo(B);
Mum.Say(TWO);
Mum.PointTo(C);
Mum.Say(THREE);
Mum.Say(THREE);
}}I水平表徵(階段1後)這一階段對象已經抽象成為了一般的類。計數對象和計數者等屬性都被抽象了出來,這個類可以表示「數排成一排的蘋果」這樣一個一般性的事件。
const NumberList numlist;
Class CountAppleLine{PERSON p;
LINEARRANGEAPPLEarrange{a[]={a1,a2,...,an}};
Process{While(arrange.next!=NULL){p.PointTo(arr.First);
p.Say(numlist.First);
}p.say(numlist.Current);
}}E1水平表徵(階段2前)經過第一次重述,計數過程被分割成有意義的幾個部分,而計數事件也擁有了成員函數,特別是一一對應這一成員函數。
const NumberList numlist;
Class CountAppleLine{PERSON p;
LINEARRANGEAPPLEarrange{a[]={a1,a2,...,an}};
NUMBER result;
Count{OneToOneMap(arrange,numlist);
TellResult;
}}E1水平表徵(階段2後)經過階段2的歸納,計數事件中的項目無關原則和順序無關原則被抽象出來。因此,計數事件的對象對計數項目的類型和排列方式不再關心,「集合」這一概念作為計數的對象這一屬性被提出出來。
const NumberList numlist;
Class Count{PERSON p;
SetOBJECTset{a[]={a1,a2,...,an}};
NUMBER result;
Count{OneToOneMap(set,numlist);
TellResult;
}}E2水平表徵(階段3前)經過第二次重述,計數對象按照其成分之間的依賴關係強弱,進行了分裂和合併。計數這一操作作為集合概念中獲取基數的一種行為,被合併進入「集合」概念,而一一對應作為一種一般性的方法,稱為一個單獨的對象被分裂出來。
Class Set{ListOBJECTs;
NUMBER CardinalNumber;
GetCardinalNumber(PERSON p){……};
}Class OneToOneMapMethod{Set s1;
Set s2;
OneToOne;
}E2水平表徵(階段3後)階段3的表徵不再在具體的程序語句上進行變化,而是在對象的組織關係上有了變化。屬於同一領域的對象被組織到一個文件中,以增強其間的關聯性。
E3水平表徵E3水平表徵採用謂詞邏輯的形式,對E2水平的表徵再次進行重述,以使得知識系統中的知識能更容易地被運用。謂詞邏輯是一種簡單而直接的表示形式,它與面向對象程序設計語言中的成員函數有相似的形式。在重述過程中,對象、屬性和方法等變量的名稱都延用各自的名稱,而對象、屬性和方法等之間的關係,如屬性關係,方法關係,參數關係等都由一些特定的二元謂詞表示。例如,E2水平的計數表徵中,集合對象用謂詞邏輯形式重述如下IsAttribute(Set,s);
IsAttribute(Set,CardinalNumber);
IsFunction(Set,GetCardinalNumber);
IsParameter(GetCardinalNumber,p);
Type(p,PERSON);
……2.用UML圖式方法實現表徵重述由於UML中的用例圖主要是描述系統中的用例,這是對知識可用性的描述;類圖描述的是系統內各個對象之間的靜態關係,而狀態圖和活動圖主要描述對象的行為,考慮到三種圖的任何一種都無法完整地描述知識,本發明使用這三種圖聯合起來作為表徵。
下面通過用UML語言對計數事件進行的具體描述,來給出用UML語言進行表徵的實施細節。
I水平表徵(階段1前)這一階段表徵用實例圖和實例級的狀態圖來表示,實例圖描述的是對象所涉及的具體屬性與行為,狀態圖描述的是該實例在整個事件過程中經過每一步驟發生的狀態變遷。
拿計數的事例來說,在這一水平表徵的是單個計數實例,以「數排成一列的三個蘋果」這個具體事件事例來說,它的對象圖如圖1所示,所有UML圖中出現的符號說明都在表2中有所說明。
由圖1可以看出,這個事件對象中含有這樣一些成員待計數物體a1、a2和a3,它們都屬APPLE類,是三個常量,並且被排成一列a,APPLE_L_ARR是一種排列狀態,代表線性排列的蘋果;計數人Mary,她屬於PERSON類;數列numlist,它代表自然數列;計數過程CountProcess,它以函數形式出現,但實際上只是記錄了整個事件流程,並不是嚴格意義上的函數。
這一水平的狀態圖如圖2所示。狀態圖一般是用來描述一個對象在系統中的各個不同狀態的。在這一水平,每一個操作導致一個狀態的改變,用狀態序列來順序描述事件的發生過程。可以看出,狀態圖中有很多重複的狀態,但此時並沒把它們區分開來。
每個狀態都有一張狀態表,記錄這個狀態下對象中各成員的各種數據。如表1就是上圖中State4的狀態表。可以看出當前數列中數到的數字是「ONE」,而當前被計數的物體是a1。
在這一水平,沒有類圖(只有事件實例);也沒有用例圖(整個事件對系統外部不可用)。
I水平表徵(階段1後)這一階段的表徵用類圖和狀態圖表示。類圖描述了對象屬性的靜態結構,而行為仍是未經分割一個整體,而狀態圖是對I水平最初的狀態圖表徵中相同的狀態和操作進行合併,提取出其中的循環和條件分支等形成的類一級的狀態圖。
這一水平,計數事件進行了初步的抽象,但這一層歸納的僅是對「排成一行的蘋果」進行計數的事件,而且系統並未意識到最後一個報數操作是在給出結果,因此這時的知識仍不能被外界所用,不存在用例圖。
這一水平的類圖如圖3所示。該類圖中的各種連線描述的是該計數事件類與各個成員類之間的關聯。如APPLE_L_ARR與APPLE類之間是聚集關聯,因為「排成一列的蘋果」這個整體是由「蘋果」成員聚集而成,NUMBERLIST與NUMBER的關係也是類似的。而COUNT_APPLE_L與PERSON類和APPLE_L_ARR類只是一般的關聯,因為這兩個類都是參與事件的成員,它們分別擔當著「被計數物」和「計數人」的角色。此外,COUNT_APPLE_L類和NUMBERLIST類之間是依賴關係,這是因為這時系統已經意識到自然數列是客觀存在的一個數列常量,而計數事件需要應用這個常量,依賴於它。
這一水平的狀態圖如圖4所示。和階段1前相比,該狀態圖有了明顯的簡化,除了開始和結束狀態外,中間狀態已經減少為四個,並且其中存在了條件轉移和循環。這是在對計數事件有了初步的歸納的基礎上得到的。在這其中,階段1之前的狀態表中間的屬性變化是判斷循環和條件轉移等步驟的重要因素。
E1水平表徵(階段2之前)這一水平的表徵增加了用例圖,用例圖中僅有一個用例,它涉及整個對象所描述的事件,雖然仍是非常具體的「數排成一列的蘋果」。同時,這一水平的類圖中出現了多個成員函數,如一一對應被分割開來成為一個單獨的成員函數。此外,在這一水平的表徵中,用活動圖而不是狀態圖來描述對象行為,用成為的拓撲結構來描述整個事件過程,即從這一水平開始,行為變成了可操作的成分。
這一水平描述計數事件的用例圖如圖5所示,類圖如圖6所示。
由圖6可以看出,一一對應函數OneToOne已經被獨立出來成為了一個新的函數。這是在對整個事件過程進行分割的基礎上完成的。
這一水平的活動圖如圖7所示。對事件過程進行分割的結果,使得活動圖中主要存在兩個活動,首先是一一對應的活動,它比較複雜,所以其中又給出了它的子活動圖。如果活動圖比較複雜,也可以把每個子活動圖單獨作為另一張圖。接下來是一個給出計數結果的活動。
E1水平表徵(階段2後)經過階段2的變化,活動圖中的各個子函數部分除了有控制順序上的聯繫外,又增加了數據上的聯繫,即一個子函數的返回值是另一個子函數的參數。
這一水平描述計數事件的用例圖如圖8所示。經過對相似的計數事件進行歸納,計數這一用例擴展為不要求特定的項目和排列方式,也就是外顯出了項目無關和次序無關原則。
這一水平的類圖如圖9所示。由圖9可看出,在這一階段,「集合」這一概念已被抽象出來,作為計數事件的被計數成分。
圖10為描述這一水平計數事件的活動圖,圖中綠色線為數據線,描述成員函數間的數據傳輸關係。
E2水平表徵(階段3前)這一水平的表徵變化集中於類圖,即根據對象的分裂和合併所進行的類的內部靜態結構的分裂和合併。同時,活動圖與用例圖也根據類圖的變化而作相應的變化。
經過從E1到E2水平的表徵重述,計數對象的表徵向高內聚和低耦合發展。計數作為一個獲取集合基數的方法,被歸為集合對象的一個成員函數;而一一對應成為一個一般性的方法被獨立出來成為一個單獨得對象。圖11給出了這一階段表徵的類圖。
經過對象的分裂和合併,用例圖和活動圖也進行了相應的分裂和合併。「計數」和「一一對應」這兩個用例被歸到了相應的對象中。這裡不再給出。
E2水平表徵(階段3後)經過階段3對同一領域內涉及知識的相似性的歸納,包圖被加入到知識表徵中來。同一領域內的知識被加入到表示這一領域的包內。
圖12為包圖和類圖關係的示意圖。從圖中可以看出,因為屬性和操作的類型相似,「比較」事件和「計數」事件都被放到了與數字概念有關的包中。這樣在應用知識時,同一個包內的知識被優先地考慮是否能應用。
同樣的,兩個事件的用例圖也都被合併到一個用例包中,作為整個數概念領域內的用例。
E3水平表徵E3水平表徵同樣用謂詞邏輯形式表示知識,這與面向對象程序設計語言中這一水平的表徵形式相同。
權利要求
1.一種使用表徵重述實現知識結構表示和建構的方法,其特徵在於其基本步驟是用發展心理學的方法,進行知識系統構造,具體是用面向對象方法和UML建模語言等工具對該知識系統四種不同水平和結構層次的知識進行表示,並通過基於相似性歸納和特徵提取的表徵重述實現方法,和基於表徵重述的多層知識結構建構方法,以實現非限定的問題求解。
2.根據權利要求1所述的方法,其特徵在於所述用發展心理學的方法進行知識系統構造,其步驟是根據表徵重述中各層表徵特點設計一個多組表徵模型低水平的表徵是一些對具體實例的表徵;隨著表徵水平的上升,表徵中重要的細節成分逐漸被拋棄,而將那些具體的知識中存在的一般性和規律性逐漸抽取出來,重組為一種新的表徵形式;在同一水平內,屬於同一類別的表徵根據其相似性進行歸納,得到較一般化的形式;各層表徵形式、表徵內的變化與表徵重述分別描述如下內隱水平I 根據發展心理學關於這一表徵水平的行為特點,假設對單個孤立事件進行表徵的對象是這一階段外在表現的內在基礎,這一階段的表徵都是一些單個事件的實例,這些事件存儲的均為具體的數據,因此對象的屬性都是常量;階段1 階段1描述的是I水平表徵內部的變化,此階段由表徵中提取的相似性主要有兩種,一是屬性間的相似性,這要求相比較的屬性必須在所屬類型上嚴格相同;二是行為上的相似性,這要求行為上遵循嚴格相同的步驟,但這裡要考慮循環和條件分支。外顯水平E1 從I水平表徵到E1水平表徵的重述所進行的操作主要是行為的分割,重述所提取的特徵主要是參數作用域的性質;根據參數作用的局部性,把對象的行為分割成幾部分,這樣每部分也有了各自的語義;因此,在E1水平,對象擁有了一些子行為,每個子行為有各自的參數和返回值,相應的也就是事件的條件和結果;階段2 對於屬性來說,相似性基於它在同一類行為裡所扮演的角色;而對於行為過程來說,相似性基於對象行為的參數、返回值和拓撲序;外顯水平E2 從E1到E2水平表徵的重述是基於更進一步的特徵,那就是對象的屬性和行為間的聯繫或者說依賴性。重述的操作主要是基於面向對象方法中高內聚低耦合的原則,根據上一水平重述得到的對象成分間的依賴性,把對象進行分裂和合併;對象中相互獨立的幾個部分被分裂成幾個對象,而相互聯繫緊密的幾個對象被合併在一起;階段3 這一階段的變化針對的是同一領域內的相似性,即把同一領域內所涉及的操作歸納到一起,以建立領域內的聯繫,使得領域內的知識達到連貫統一;外顯水平E3 把E3設計為用一種簡單的形式,即用謂詞邏輯形式來表示知識。
3.根據權利要求1所述的方法,其特徵在於所述的表徵重述的具體實現具有兩種形式一種是面對對象的程序設計語言的實現;另一種用標準建模語言UMC圖式方法來實現,包括用例圖來表示知識的外部可見性,用類圖和包圖來表示領域內知識的靜態結構,用狀態圖和活動圖來描述對象的行為。
4.根據權利要求3所述的方法,其特徵在於所述面向對象的程序設計語言實現表徵,是採用C++程序語言,用C++中的類來表示各種概念,包括物體和事件,以及更為抽象的概念,具體步驟如下內隱水平I,階段1前,在I水平的最初階段輸入系統的知識是對一些具體的物體和事件實例的表徵;第一步,先利用面向對象程序設計定義類的數據結構,之後再根據類這種數據類型來定義變量或常量;第二步,如果描述的是物體,那麼定義一些屬性來描述,把所有這些屬性都設置為常量;第三步,如果描述的是事件,那麼首先對參與事件的物體的屬性按第二步的方法進行定義,也設置為常量;接著開始描述事件的過程,系統定義了一些動作原語作為基本元素,然後將事件的過程定義為一系列不可再分的動作原語的序列;內隱水平I,階段1後,第一步,基於屬性類型和屬性值的相似來確定物體的相似性,並進行標記;第二步,基於參與事件的物體類型、事件過程中動作原語序列的相似性來確定事件的相似性,並進行標記;第三步,當描述同一類物體的對象實例積累到一定數量時,系統歸納它們的相似性,得到一個較一般的類;第四步,當描述事件的對象實例累積到一定數量時,事件的過程被歸納為一個一般化的過程,用函數表示這個過程,外顯水平E1,階段2前,第一步,確定分割的依據主要為參數的作用域;第二步,通過考察事件過程中那些操作圍繞同一個或者同一部分參數,把它們集中在一起,形成一個單獨的函數;第三步,根據一個事件的過程涉及參數變化過程的獨立性、族聚特徵、彼此間不存在數據交換特徵把參數進行劃分,形成幾組;第四步,根據第三步的參數分組結果和第二步的函數形成方法將事件過程的若干部分分開,形成各自獨立的函數;第四步,將對事件的抽象表示上升到一個新水平,即劃分事件為幾個意義獨立的組成部分,為每個部分設置各自的參數及操作數,作為面向對象程序語言中的函數參數,同時為那些需要向外傳遞數據的函數設置返回值;外顯水平E1,階段2後,第一步,對基於成員函數的相似性進行歸納,並進行模式相似性標註;第二步,檢查事件過程中函數調用順序的相似性,並進行模式相似性標註;第三步,通過第一步和第二步的歸納,將一些原本沒有被歸為一類的表徵間的相似性抽取出來,定義為新的抽象概念;外顯水平E2,階段3前,第一步,通過正例和反例進行事件完整性檢查,確定事件的本質屬性;第二步,確定由於不完整觀察而導致的非理想表徵的位置;第三步,通過考察階段2後得到類的各成分間的依賴關係大小,把類進行分裂和合併,使得表徵更接近高內聚低耦合的原則;外顯水平E2,階段3後,第一步,判斷兩個行為是否屬於同一領域,並給予標記;第二步,把同領域內的知識組織到一起,服務於問題求解;第三步,不改變表徵的具體形式,改變類的組織形式,把相關性強的表徵代碼組織在一起;外顯水平E3,第一步,用謂詞邏輯形式重新描述從E2到E3水平的表徵;第二步,用謂詞邏輯表徵進行問題求解。
5.根據權利要求3所述的方法,其特徵在於所述的用標準建模語言UML圖式方法實現表徵重述,具體步驟如下內隱水平I,階段1前,第一步,使用對象圖來描述這一水平對象的結構,定義對象圖的對象名、對象的類型、對象的各屬性值等各種靜態內容,第二步,使用狀態圖來描述整個事件發生的過程;將所觀察到的事件分解成一連串順序的不可再分的原動作序列,將每兩個動作原語之間的時刻作為一個狀態,而把這個動作作為兩個狀態間的轉換條件,用狀態圖來描述這個事件的實例狀態;第三步,對一個較長的事件來說狀態的數目很多,歸併其中相同的狀態,並將每個狀態記錄到一張狀態表中,並存儲狀態的細節;內隱水平I,階段1後,第一步,用類圖來描述事件類的靜態結構;第二步,系統對事件的過程進行歸納,用狀態圖表示;外顯水平E1,階段2前,第一步,使用用例圖描述可用性,仍然用類圖來描述事件的靜態結構,使用類圖支持成員函數的返回值和參數個數和類型描述;第二步,在這一水平將對事件行為的描述從關注狀態轉到關注活動,並用活動圖來描述事件過程,不再使用狀態圖來描述它;外顯水平E1,階段2後,第一步,基於類圖描述成員函數的返回值和參數、活動圖描述的各活動間拓撲結構的相似性,用類圖和活動圖對表徵進行歸納;第二步,提高抽象程度,形成相對於階段2前的表徵更具一般性的對象類;第三步,通過表徵各活動間的拓撲序,在活動圖中加入了各活動間的數據傳遞關係來表現各部分間的依賴關係強弱等方式,調整結構使得活動圖進一步抽象,以便進行第二次重述;外顯水平E2,階段3前,第一步,根據對象間各部分的依賴性強弱,對象進行分裂和合併;第二步,得到類結構的變化,即類圖的變化,而用例圖和活動圖則根據類圖的變化而進行相應的變化;外顯水平E2,階段3後,第一步,在這一水平把同一領域內的知識放到一個包中去,進行微領域合併;外顯水平E3,在這一水平,用謂詞邏輯重述表徵。
全文摘要
本發明屬於人工智慧知識工程和專家系統設計技術領域,具體為一種基於發展心理學的表徵重述的知識結構多層表徵的進化獲取與建構方法。其基本步驟是用發展心理學的方法進行知識系統構造,具體是用面向對象方法和UML建模語言等工具對該知識系統四種不同水平和結構層次的知識進行表示,並通過相似性歸納和特徵提取以及表徵重述的多層知識結構建構,以實現非限定的問題求解。它以計算機科學與心理科學為基礎,從解釋智能的角度出發,將發展心理學中關於概念與認知能力發展的表徵重述設想具體算法化,將概念系統發展過程的心理學理論應用於人工智慧中知識系統建構方法的設計,使得知識系統在低階結構不連續、知識獲取瓶頸等方面的缺欠得到改善。
文檔編號G06N5/02GK1924904SQ200610116338
公開日2007年3月7日 申請日期2006年9月21日 優先權日2006年9月21日
發明者危輝, 陳燕 申請人:復旦大學