CN1924904A - 一种使用表征重述实现知识结构表示与建构的方法 - Google Patents

一种使用表征重述实现知识结构表示与建构的方法 Download PDF

Info

Publication number
CN1924904A
CN1924904A CN 200610116338 CN200610116338A CN1924904A CN 1924904 A CN1924904 A CN 1924904A CN 200610116338 CN200610116338 CN 200610116338 CN 200610116338 A CN200610116338 A CN 200610116338A CN 1924904 A CN1924904 A CN 1924904A
Authority
CN
China
Prior art keywords
class
incident
level
knowledge
stage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN 200610116338
Other languages
English (en)
Inventor
危辉
陈燕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fudan University
Original Assignee
Fudan University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fudan University filed Critical Fudan University
Priority to CN 200610116338 priority Critical patent/CN1924904A/zh
Publication of CN1924904A publication Critical patent/CN1924904A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明属于人工智能知识工程和专家系统设计技术领域,具体为一种基于发展心理学的表征重述的知识结构多层表征的进化获取与建构方法。其基本步骤是:用发展心理学的方法进行知识系统构造,具体是用面向对象方法和UML建模语言等工具对该知识系统四种不同水平和结构层次的知识进行表示,并通过相似性归纳和特征提取以及表征重述的多层知识结构建构,以实现非限定的问题求解。它以计算机科学与心理科学为基础,从解释智能的角度出发,将发展心理学中关于概念与认知能力发展的表征重述设想具体算法化,将概念系统发展过程的心理学理论应用于人工智能中知识系统建构方法的设计,使得知识系统在低阶结构不连续、知识获取瓶颈等方面的缺欠得到改善。

Description

一种使用表征重述实现知识结构表示与建构的方法
技术领域
本发明属于人工智能知识工程与专家系统设计技术领域,具体涉及一种知识结构表示与建构的方法。该方法以发展心理学中概念发展有多种存储形式和表征水平的表征重述假设为基础,设计了一种对知识进行基于结构化操作语义表征、逐级归纳和特征提取,从而形成一个具有四层表征的知识结构表示和建构的知识系统发展与进化方法,它是对表征重述假设面向知识系统发展等实际需求的细节设计和算法实现,对人工智能中知识工程领域如何建立完备的知识系统从而进行非限定性问题求解具有重要的意义。
背景技术
人的概念系统的形成不是一蹴而就的,有一个由少到多、从粗到精的发展过程,是从小到大的不断学习才能得到的。对概念系统形成的过程在算法层次上的研究将有助于构造更为理想的知识结构,这在人工智能领域是一个非常核心的问题[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~18
2.Ruud van der Pol,Dipe-R:a knowledge representation language,Data & KnowledgeEngineering,45,2003,257-290
3.D.Jouve,Y.Amghar,B.Chabbat,J.-M.Pinon,Conceptual framework for documentsemantic modelling:an application to document and knowledge management in the legaldomain,Data & Knowledge Engineering,46,2003,345-375
4.J.L.Gordon,Creating knowledge maps by exploiting dependent relationships,Knowledge-Based Systems 13,2000,71-79
5.Jeffrey L.Elman,Distributed representations,simple recurrent networks,and grammaticalstructure,Machine Learning,7,1991,195-224
6.Chris Eliasmitha,Paul Thagard,Integrating structure and meaning:a distributed model ofanalogical mapping,Cognitive Science,25,2001,245-286
7.Ron Sun,Edward Merrillb,Todd Petersonb,From implicit skills to explicit knowledge:abottom-up model of skill learning,Cognitive Science,25,2001,203-244
8.Jeffrey S.Bowers,Challenging the widespread assumption that connectionism anddistributed representations go hand-in-hand,Cognitive Psychology,45,2002,413-445
9.Karmiloff-Smith,A.Beyond modularity:A developmental perspective on cognitive science.MIT Press,1992
10.Constantinos Hadjichristidis,Steven Sloman,Rosemary Stevenson,David Over,Featurecentrality and property induction,Cognitive Science,28,2004,45-74
11.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-B43
12.Jeffrey M.Zacks,Using movement and intentions to understand simple events,CognitiveScience,28,2004,979-1008
13.Jeffrey M.Zacks,Barbara Tversky,Event Structure in Perception and Conception,Psychological Bulletin,127,3-21
14.Kurt Vanlehn edited,Architectures for Intelligence,New Jersey:Lawrence ErlbaumAssociates Publishers,1991
15.Robert L.Solso edited,Mind and Brain Sciences in 21st Century,Cambridge:The 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图符号表。
  State4
  NUMBERLIST.current   ONE
  a.current   a1
  ……   ……
                表1
Figure A20061011633800131
  APPLE   类名,含义为“苹果”
  NUMBER   类名,含义为“自然数”
p   COUNT_APPLE_L类的成员变量,含义为“计数者”,属于PERSON类
itemlist   COUNT_APPLE_L类的成员变量,含义为“待计数苹果列”,属于APPLE_L_ARR类
count()   COUNT_APPLE_L类的成员函数,含义为“整个计数过程”
图4   NeedToGetNextItem   状态名,含义为“等待得到下一项(苹果)”
  NeedToGetNextNum   状态名,含义为“等待得到下个数字”
  NeedToSayNum   状态名,含义为“等到报出数字”
  NeedToSayLastNum   状态名,含义为“等到报出最后一个数字”
图5   User   用户名
  CountAppleInLine   用例名,含义为“数排成一列的苹果”
图6 result   COUNT_APPLE_L类的成员变量,含义为“计数结果”,属于NUMBER类
OneToOne   COUNT_APPLE_L类的成员函数,含义为“一一对应方法”
图7   OneToOne   活动名,含义为“一一对应”
  GetNextItem   活动名,OneToOne的子活动
  GetNextNum   活动名,OneToOne的子活动
  GiveResult   活动名,含义为“给出计数结果”
UnReachTail   用于控制活动转向的条件,含义为“是否已到被计数排列的末尾”
  图8   User   用户名,含义为“可能使用计数用例的用户”
  Count   用例名,含义为“计数”
  图9   CountEvent   类名,含义为“计数事件”
  Set   类名,含义为“集合”
  NumerableObject   类名,含义为“可数物体”
  图10   ChooseAnUncounted   活动名,含义为“选择一个尚未被计数的物体”
ExsitUncounted  用于控制活动转向的条件,含义为“是否存在尚未被计数物体”
  图11   set  Set类的成员变量,含义为“该集合元素”
cardinal  Set类的成员变量,含义为“该集合基数”,属于NUMBER类
  GetCardinal()  Set类的成员函数,含义为“获得该集合基数”
Select()  Set类的成员函数,含义为“选择符合某种条件的元素”
  OneToOneMethod  类名,含义为一一对应方法
s1,s2  OneToOneMethod类的两个成员变量,含义为“用于进行一一对应的两个集合”,属于Set类
  图12   ConceptOnNumber  包名,含义为“与数概念有关的包”
  CompareCardinal  类名,含义为“比较两个集合的基数”
s1,s2  CompareCardinal类的两个成员变量,含义为“用于比较的两个集合”
  Compare()  CompareCardinal类的成员函数,含义为“比较过程”
                                        表2
具体实施方式
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,其特出特征是用谓词逻辑形式重述表征。
同面向对象语言的实现一样,在这一水平,同样是用谓词逻辑重述表征,这里不再赘述。附例
为了便于说明表征的细节问题,这里将采用一个计数的例子。
计数是一种非常重要而基本的认知技能,计数过程受到一些原则的制约,包括基数原则,即只有计数过程中最后的数词代表这组物体的基数值;项目无关和次序无关原则,即任何种类的项目都可以计数,一组项目中各个不同的项目计数次序与基数值无关;一一对应原则,人们必须把一个集合中的每一个项目与另一个集合中的一个且只有一个项目匹配,以确定两者是否相等。学习计数行为的过程就是领会和掌握这些原则的过程。从不会计数到熟练计数是一个表征重述的过程。在从不会到熟练掌握该技能的各个表征水平,它们的典型行为是这样的:
  I水平  在这一水平,儿童仅仅学习到一些单个的计数实例,如依次指向排成一排的苹果口中喊“1”,“2”,……,并重复最后一个是数字。随着I水平内计数实例的累积,儿童对相似的事件进行归纳,对这些计数行为有了一个一般性的表征,计数者和被计数对象等都被一般化了。但这时的表征无论是在被计数项目还是在项目排列的方式等都是受相当限制的,因此,一般性水平是相当低的。
  E1水平  在该水平,通过对计数过程的拓扑排序和分割,一一对应方法被抽取出来成为计数事件的一个单独的成员函数,被整个计数行为调用。同时,对计数行为中的条件和结果的归纳使得集合这一概念以及它的基
  数属性被提取出来,也就是说基数原则、项目无关和次序无关原则被外显。
  E2水平   在这一水平,根据面向对象中高内聚低耦合的原则,计数行为被合并到集合概念中作为获取集合的一种方法,而不再作为一个对象存在。同时,一一对应作为一种普遍的方法,被分裂出来成为一个单独的对象。另外,经过这一水平内表征基于领域间相似性的归纳,与数概念这一领域相关的对象彼此间建立起了联系。
  E3水平   E3水平的表征作为一种E2水平表征的言语重述,用一种更容易被应用的关系代数方式表示,也更便于使知识与外界交流。
下面分别针对发明内容中的用面向对象程序设计语言实现表征以及用UML语言实现表征的具体实施方案进行对应叙述。
1.用面向对象形式定义实现表征重述
面向对象程序设计语言是为面向对象方法所设计的程序语言,因此它可以实现大部分面向对象方法中的元素。
I水平表征(阶段1前)这一阶段用面向对象语言来表示计数事件的一个实例——数排列成一排的三个苹果。因此实例中的属性都是一些常量,如苹果的排列,数数者Mary等等。而事件过程也是由一些不可再分的动作原语顺序表示,如指向苹果的动作,数数得动作等等。
Instance Eventl
{
        const PERSON I;
        const Sound ONE,TWO,THREE;
    const LINEARRANGE<APPLE>ARR
        {a[0]=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;
    LINEARRANGE<APPLE>arrange
        {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;
    LINEARRANGE<APPLE>arrange
        {a[]={a1,a2,...,an}};
    NUMBER result;
    Count()
    {
        OneToOneMap(arrange,numlist);
        TellResult();
    }
}
E1水平表征(阶段2后)经过阶段2的归纳,计数事件中的项目无关原则和顺序无关原则被抽象出来。因此,计数事件的对象对计数项目的类型和排列方式不再关心,“集合”这一概念作为计数的对象这一属性被提出出来。
const NumberList numlist;
Class Count
{
        PERSON p;
        Set<OBJECT>set{a[]={a1,a2,...,an}};
        NUMBER result;
    Count()
    {
        OneToOneMap(set,numlist);
        TellResult();
    }
}
E2水平表征(阶段3前)经过第二次重述,计数对象按照其成分之间的依赖关系强弱,进行了分裂和合并。计数这一操作作为集合概念中获取基数的一种行为,被合并进入“集合”概念,而一一对应作为一种一般性的方法,称为一个单独的对象被分裂出来。
Class Set
{
    List<OBJECT>s;
    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水平表征同样用谓词逻辑形式表示知识,这与面向对象程序设计语言中这一水平的表征形式相同。

Claims (5)

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,
在这一水平,用谓词逻辑重述表征。
CN 200610116338 2006-09-21 2006-09-21 一种使用表征重述实现知识结构表示与建构的方法 Pending CN1924904A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200610116338 CN1924904A (zh) 2006-09-21 2006-09-21 一种使用表征重述实现知识结构表示与建构的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200610116338 CN1924904A (zh) 2006-09-21 2006-09-21 一种使用表征重述实现知识结构表示与建构的方法

Publications (1)

Publication Number Publication Date
CN1924904A true CN1924904A (zh) 2007-03-07

Family

ID=37817531

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200610116338 Pending CN1924904A (zh) 2006-09-21 2006-09-21 一种使用表征重述实现知识结构表示与建构的方法

Country Status (1)

Country Link
CN (1) CN1924904A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101419680B (zh) * 2008-12-04 2013-03-13 复旦大学 增量迭代的领域本体协同构建方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101419680B (zh) * 2008-12-04 2013-03-13 复旦大学 增量迭代的领域本体协同构建方法

Similar Documents

Publication Publication Date Title
CN1027198C (zh) 计算装置
Knoblock et al. Exploiting semantics for big data integration
Horvath A treatise on order in engineering design research
CN1012296B (zh) 模糊计算机
CN1439137A (zh) 优化成果驱动作业流程合成及简化的方法、处理和系统
CN1781093A (zh) 用于存储和访问互锁树数据仓库中的数据的系统和方法
CN1044864A (zh) 真值变换器
CN1285556A (zh) 利用并行处理的数据处理方法和装置
Cooper et al. Hybrid tractability of valued constraint problems
CN1321277A (zh) 数据库系统
CN1783075A (zh) 用于显示网络数据的方法、设备、处理器配置
CN1818897A (zh) 面向多媒体网络电子出版物制作的实现方法
CN1310824A (zh) 用于数据仓库的选择聚集层和交叉产品层的方法和装置
CN1900959A (zh) 设计制造的支援装置、支援程序和支援方法
Argyres et al. Construction and classification of Coulomb branch geometries
Cetindamar et al. Technology management in the age of digital technologies
Vallon et al. An Agile and Lean Process Model for Mobile App Development: Case Study into Austrian Industry.
CN1254428A (zh) 数据结构和管理
CN1924904A (zh) 一种使用表征重述实现知识结构表示与建构的方法
Costa et al. A systematic literature review and conceptual framework of construction industrialization
Spritzer et al. Design and evaluation of magnetviz—a graph visualization tool
Kim et al. Design support tools for product-service systems
CN1908893A (zh) 程序逻辑结构图示方法及程序路径统计方法
CN1043579A (zh) 真值发生基本电路和真值发生电路
Confalonieri et al. A process model for concept invention

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication