514 智能系统学报 第5卷 2.2.1古建本体库 的顺序属性。 本体库包括2个子库:系统类库和系统实例库 5)榫卯规则库. 1)系统类库 基于系统实例库和榫卯规则,推理机推理出用 系统类库存储类及类的属性,主要包括建筑制 户输入建筑中建筑构件之间的榫卯关系,同时将其 式类、建筑构件类 更新写人系统实例库 建筑制式类的子类包括:硬山、庑殿、歇山等,这 6)斗拱规则库。 个类的子类可以随着领域专家的知识总结而不断扩 基于系统实例库和斗拱规则,推理机推理出用 充.其属性包括建筑制式的间数、檩数等通用属性, 户输入建筑中的斗拱类型和相关信息,同时将其更 同时,每个子类都还包括自己特殊的一些属性,如: 新写人系统实例库 硬山的有无前后廊的属性,庑殿的有无周围廊的属 2.2.3古建知识库推理机 性等 以一个5间7檩有周围廊庑殿为例,说明知识 建筑构件类的子类包括:金柱、檐柱、小额枋、桁 库系统是如何基于本体库和实例规则库运行并建立 枋、大额枋等,同样地,这个类的子类也可以随着领 相关建筑实例和构件实例的.首先用户输人的参数 域知识的学习而扩充.如前文提到的,按照领域专家 被传递给知识库系统,知识库系统会在系统类库中 的总结,建筑构件可以用((构件名),(垂直方向所 找到有周围廊庑殿的类,基于有周围廊庑殿的实例 跨过的层列表),(面宽方向所跨过的缝列表),(进 规则库,建立一个5间7檩的有周围廊庑殿实例;然 深方向所跨过的缝列表))的四元组来表示。 后基于此实例和构件个数规则推理出这个建筑需要 2)系统实例库, 22根檐柱、14根金柱、22个小额枋等等,相应地系 在系统未运行的时候实例库是空的,根据用户的 统建立22个檐柱实例、14个金柱实例、22个小额枋 输入,经过推理机基于本体和规则的推理,系统动态地 实例等等,并在这些构件实例和庑殿实例之间建立 在实例库中建立对应的建筑实例和建筑构件实例, 相应的所属关系,如图5所示 2.2.2古建规则库 3基于Jess的知识库系统 规则库包括6个子库:实例规则库、构件尺寸规 则库、构件位置规则库、构件搭建顺序规则库、榫卯 该文的古建知识库系统全部用Jess实现.Jess 规则库和斗拱规则库 (Java expert shell system)是l995年由美国Sandia 1)实例规则库 国家实验室分布式系统计算组成员E.J.Friendman- 基于本体库和实例库的规则,推理机推理出用户 Hill用Java实现的一个经过扩充的CLPIS版本.Jess 输入建筑所需要的各种建筑构件,及其具体建筑构件 是性能良好的开放式推理机,原则上可以处理各种 的数目,然后在系统实例库中建立该建筑制式的一个 领域的推理任务,只要系统能够为Jss提供这个领 具体实例和其所需建筑构件的相应数目的实例, 域的特定领域规则和事实信息.Jess的规则匹配采 2)构件尺寸规则库 用经典的RETE算法,以牺牲大量的存储空间来换 基于系统实例库和尺寸规则,推理机推理出用 取匹配的高速性.RETE算法利用了专家系统中时 户输入建筑中各个建筑构件的具体尺寸大小,同时 间冗余性和结构相似性这2个特点,有效地减少了 将其更新写人系统实例库, 用于匹配操作的次数,因此,当系统的性能是由匹配 3)构件位置规则库 算法的质量决定时,Jess的优点将更加明显.应当指 基于系统实例库、空间位置和方向规则,推理机 出的是,RETE算法是一个以空间换取时间的算法, 推理出用户输入建筑中各个建筑构件的三维位置和 所以,应用Jess时应当考虑内存的消耗3] 方向,同时将其更新写入系统实例库 根据古建动画自动生成系统的需要,把所有总 4)构件搭建顺序规则库, 结得到的古建知识写入知识库的本体库和规则库 基于系统实例库和搭建顺序规则,推理机推理 中,知识库系统根据用户输入的具体参数(如5间7 出用户输入建筑中各个建筑构件在搭建动画中出现 檩有周围廊的庑殿),进行下列推理: 的先后顺序,同时更新系统实例库中各个相关构件 1)基于实例规则库的规则,推理出5间7檩有周