.516. 智能系统学报 第5卷 表1知识库系统模块设计 Table 1 Modules in the knowledge base 子库名称 具体模块 系统类库 类的构架和定义模块 包括:硬山有廊实例规则模块、硬山无廊实例规则模块、有周围廊庑殿实例规则模块、重檐 系统实例规则库 庑殿实例规则模块等 包括:硬山有廊各构件位置规则模块、硬山无廊各构件位置规则模块、有周围廊庑殿各构件 构件位置规则库 位置规则模块、重檐庑殿各构件位置规则模块等 包括:硬山有廊各构件尺寸规则模块、硬山无廊各构件尺寸规则模块、有周围廊庑殿各构件 构件尺寸规则库 尺寸规则模块、重檐庑殿各构件尺寸规则模块等 包括:硬山有廊顺序规则模块、硬山无廊顺序规则模块、有周围廊庑殿顺序规则模块、重檐 构件搭建顺序规则库 庑殿顺序规则模块等 (Deftemplate DaMujia (Deftemplate构件 (slot N:屈性间数 (slot ID (type INTEGER) (type INTEGER) (default 0)) (default 0)) (slot M:属性檀数 (slot所在层从 (type INTEGER) (type INTEGER) (default 0))) (default 0)) (a)大木架类定义 (slot所在层到 (type INTEGER) (Deftemplate WD extends DaMuJia) (default 0)) ::庞殿是大木架的子类 (slot面宽缝从 (Deftemplate WD T extends WD) (type INTEGER) ::重檐庑殿足庑殿的子类 (default 0)) (Deftemplate WD F extends WD) (slot面宽缝到 :单檐是庑殿的子类 (type INTEGER) (b)建筑制式类子类 (default 0)) (slot进深缝从 (Deftemplate檐柱extends构件) (type INTEGER) (Deftemplate金柱extends构件) (default 0)) (Deftemplate小额枋extends构件) 檐柱、金柱、小额枋都是构件的子类 (slot进深缝从 (type INTEGER) (default O))) (c构件类子类 (d)构件类定义 图6类的定义 Fig.6 Some class definitions 当用户提出一个建筑需求时,系统根据输入参 到,这些属性的含义在前文中已经有过介绍.各种构 数、自动选择相应的模块加载,从而节省内存空间的 件是构件类的子类,如金柱、檐柱、小额枋等,在Jess 使用,而且效率高.例如,当用户参数表明只需要推 中如图6(c)表示. 理有周围廊庑殿的搭建顺序时,系统会自动屏蔽其 3.3实例规则库的实现 他无用的模块,而只选择以下3个相关模块加载: 实例规则库根据领域知识在实例库中添加建筑 1)系统类库(所有用户需求都需要加载的); 实例和构件实例,以有周围廊庑殿的建筑型制为例, 2)有周围廊庑殿实例规则模块; 它涉及25种建筑构件,每种构件个数不相同,实例 3)有周围廊庑殿搭建顺序规则模块, 规则库根据具体的建筑实例参数来确定各个构件的 完成加载之后,系统开始推理,然后输出结果, 个数,并为各个构件生成相应个数的实例,同时,给 3.2类库的实现 每个具体实例的D属性赋值.下面给出建立构件实 在Jess中用deftemplate来定义DaMuJia(大木 例的一个例子,根据学习古建领域知识的同学的总 架)类(如图6(a)所示),其中WD(庑殿)、XS(歇 结,所有在面宽方向上第(J'+1)缝到第(J-J')缝 山)、XSYS(硬山)都是其子类(如图6(b)所示).图 的金柱的四元组表达是: 6(d)所示是构件类的定义,属性有:ID、所在层从、 (金柱,(1,1),),(3,3)), 所在层到、面宽缝从、面宽缝到、进深缝从、进深缝 (金柱,(1,1),(G,),(M,M))·