·520. 智能系统学报 第5卷 表3庑殿建筑搭建顺序推理的时间 Table 3 Times for inferring construction sequence 基于Jess版本的 庑殿制式 基于Protege版本的 顺序推理时间/ms 顺序推理时间/ms 提高比例/% 3间5檩 124203 1281 98.97 5间7檩 151140 1235 99.18 7间9檩 198875 1250 99.37 9间11檩 293156 1402 99.52 11间13檩 443750 1484 99.67 搭建顺序推理作为整个古建动画自动生成的一 时间和空间 部分,要运行7~8min,这是不能接受的,不能达到 2)实例生成部分减少了规则之间以及实例之 快速实时地生成符合用户描述的古建动画的需求。 间的交互.在旧版本中,一个实例的生成往往以其他 导致效率低下的主要原因是使用的工具过多, 的实例为基础,或者本身是其他实例生成的基础,这 包括用Protege来建立本体,用SWRL来建立规则, 样就加大了实例建立部分的内存和时间开销;而在 用Jess+Jena来做推理机.在知识库开始推理之前, 新的版本中,重新整理了规则,每个实例的生成都是 库中的本体和规则要在这几个不同的工具之间不断 单独的规则,和其他规则和实例间没有依赖关系,节 地载入、载出,并要进行相应的格式转换,在推理运 省了时空开销. 行过程中,某一实例的更改也要在不同工具间进行 3)顺序规则执行过程去掉了对内存的修改.在 格式转换、载入、载出,系统在这个过程中耗费了很 旧版本中,顺序规则的执行是以每条规则不断修改 多时间,而规则推理本身的时间其实只占了极小的 实例中的属性来实现的,根据Jess的特性,每对内 部分 存进行一次修改,推理机都会对修改了的内存重新 针对这个效率问题,使用Jess和Java实现了古 进行一次扫描;而新版本中,顺序规则的实现是通过 建本体知识库的全部内容,推理时间见表3的右部 查询语句实现的,只是将实例按照规则指定的顺序 分,可见效率有了极其显著的提高,对于不同制式的 从知识库中查询出来,并不涉及到内存中实例的修 建筑规格,新版运行时间都比旧版节省了99%以上. 改,所以比旧版节省了时间开销 5结论 4)不同方式的分模块执行.在旧版本中,顺序 规则的分模块执行是指每次一个模块推理成功都要 随着语义网络技术逐步走向成熟,基于本体的 做一次3)中提到的往内存中写的操作,而本次模块 知识库系统越来越多,涉及各个领域;目前大部分的 推理结束之后、下次模块推理之前,又要清空之前对 知识库都是构建领域本体,推理也大都基于本体推 内存的修改,目的是不影响下次推理的结果;在新版 理,在本体之上进行规则推理的系统相对少, 本中,虽然顺序推理也是基于不同的规则模块,但是 本系统是古建动画自动生成系统的一个重要组 各个模块中都没有涉及到对内存的修改,相互之间 成部分,为古建动画自动生成系统提供了知识库支 也没有交互,每个模块都是单纯的查询语句,所以大 持,并推理生成系统所需要的信息.本系统是语义网 大节省了时空开销, 络技术在中国古代木架结构建筑领域的一个应用, 除了效率上的优势之外,还采用了分模块加载运 首次以建筑构件的粒度来模拟实现了古建木架结构 行策略,知识库系统会根据古建动画自动生成系统的 的整个搭建过程. 需求,针对用户输入选取适当模块自动加载运行,因 用Jess表达所有的领域知识,用Jess+Java实 此,随着领域学习的加深,更多的建筑制式的知识都 现了包括本体、实例和规则一起的整个知识库系统 可以按照已经完成的运行模式被添加进来,不需要修 的构建和执行,而且,针对旧版本中出现的内存溢出 改其他模块,也不需要改变系统的控制流程,整个古 的空间效率问题,采取了以下策略解决: 建本体知识库系统具有良好的可扩充性。 1)简化系统流程.旧版的知识库系统用Potégé 本知识库系统仍在完善中,存在的问题包括: 来建立本体,用SWRL来建立规则,用Jess+Jena来 1)旧版本用Protegé等工具实现,本体与规则部 做推理机,导致知识库系统在推理时要在不同的工 分分开构建,构建过程标准,在知识库扩充和修改时 具之间进行内容的载入、载出、格式转换等,系统效 会更简洁,更易懂,符合语义网络的规范;而相比于 率非常低;新版本采用Jess统一表示知识,减少了 Protegeé等工具的简便易用,以及友好清晰的界面, 知识在各个工具之间载入、载出和格式转换,节省了 新版系统在界面友好、易用性等方面还有许多需要