近10年来,随着计算机技术和人工智能技术的飞速发展,尤其是网络技术的进步,专家系统也有了新的重大发展,出现了以Java为核心技术的专家系统开发工具。由美国Sandia实验室推出的专家系统外壳Jess(Java expert system shell)就是其中的一个出色代表,本文将介绍它的来龙去脉和主要特点,以及围绕Jess我们所做的初步工作。
CLIPS(C Language Integrated Production System)正是为解决这些问题而出现的。它于1984年由美国航空航天局约翰逊空间中心(NASA’s Johnson Space Center)推出,意在克服LISP移植性差、开发工具和硬件成本高、嵌入性低的缺点。CLIPS是一个基于Rete算法的前向推理语言,用标准C语言编写,目前最新的版本为6.10。它具有高移植性、高扩展性、强大的知识表达能力和编程方式以及低成本等特点。一经推出,立即受到欢迎,被广泛应用于政府、工业和学术界,有力地推动了专家系统技术在各领域及各种运行环境下的应用。目前,CLIPS是一个自由软件,主要由原来在NASA工作的设计人员维护。它提供了一个新闻讨论组,可作为从事CLIPS的开发人员交换信息的场所。此外,在NASA的组织下还成立了一个CLIPS用户协会,以推动CLIPS的开发与应用。更详细的信息可访问它的官方网站http://www./clips/CLIPS.html。由于CLIPS的强大功能与良好性能,以及NASA对该软件采取的开放政策,CLIPS在美国国内外都有众多用户,他们应用CLIPS开发了许多实用的专家系统,并根据各自的需要对CLIPS进行扩充和改造,如加拿大研究委员会在CLIPS中加入了模糊推理功能,推出了FuzzyCLIPS,我们也成功地在CLIPS中加入了图形功能,推出了图形化专家系统工具GEST(Graphical Expert System Shell)。
新一代工具Jess
Jess是1995年由美国Sandia国家实验室分布式系统计算组成员Ernest J. Friedman-Hill用Java实现的一个经过扩充的CLIPS版本。它以CLIPS的设计原理为基础进行编写,除继承了CLIPS的优点外,还具有许多自己独特的特征,如支持正向和逆向推理,可以在系统运行环境下直接调用Java的类库等,这些特点将专家系统的开发过程同功能强大的Java语言结合起来,使采用Jess语言开发的专家系统具有良好的移植性、嵌入性,可以方便地应用到网络上的不同机器中。另外,Java多线程机制使Jess可以与其他应用程序并发执行,同步机制保证了对共享数据的正确操作,通过使用不同的线程完成特定的行为,就可以很容易地实现网络上的实时交互行为。目前,Jess被广泛用于学术、工业、商业等领域,是一个有着广阔发展前景的专家系统开发平台。