
LispWorks 企业版不但是一个通用的 Lisp 语言开发环境,也是一个功能强大的人工智能研究平台。
LispWorks 实际上不但能编译 Lisp 代码,也可以编译标准 Prolog 代码,它首先用纯 Lisp 把 Prolog
推理系统实现,然后用宏将 Prolog 代码编译时一对一地翻译成 Comon Lisp 代码,再使用 Lisp 编译器进行编译,最后
LispWorks 提供一个类似 Lisp 交互环境的 Prolog 查询环境。
根据我这几天的了解,LispWorks 的逻辑编程部分在表达方式上有三个层次:
1. 使用标准 Prolog,这样可以得到跟任何其他标准 Prolog 环境相同的表达能力;
2. 使用 Lisp 形式的 Common Prolog,也就是 LispWorks 把 Prolog 代码翻译出来的形式,这样可以获得额外的与 Common Lisp 系统进行接口的特性,相当于一个 Lisp 和 Prolog 的混合环境;
3. 使用基于对象(object)和规则(rule),而不是关系(relation)的
KnowledgeWorks,它底层推理部分有两部分,反向推理基于 Prolog 推理系统,前向推理是 OPS5 兼容,语法上也很像
CLIPS,基于模式匹配的。使用 KnowledgeWorks 可以同时拥有历史上两大类逻辑编程系统的核心特性。
还有一些功能也非常有用,例如 Common SQL 组件可以将逻辑系统的知识和推理作为数据保存在数据库里,事实上 Common SQL
可以将任何 Common Lisp 对象保存在数据库里,然后高效地查询和修改。企业版中的 CORBA 支持可以用来实现分布式系统,进一步增强
AI 系统的扩展能力。
为了能充分使用这个得来不易的强大工具,最近我又开始读《AIMA》了。
评论