深入探究WEB GENI源程序
折腾WEB GENI的目的,是为了摸清它的结构设计、运行机制,为山寨出自己的专家系统外壳,积累经验,启发思路。
为此,必须深入细致地研读源程序代码。
WEBGENI包括2个模块:geni.pro和cgitools.pro。前者是主程序,负责推理、生成网页等;后者负责相对底层的CGI数据处理。本文探究的对象,主要是geni.pro。
Visual Prolog(以下简称VIP)程序由几种代码段构成:
PREDICATES :谓词段。相当于C语言的函数声明
CLAUSES :子句段。相当于C语言的函数实现
DOMAINS :域段。相当于C语言声明数据类型结构
DATABASE 或 FACTS : 内部数据库(事实)段。它是Prolog特有的机制,实际上是保存结构化数据的内存缓冲。Erlang Eresye有对它的模仿。
GOAL :目标段。程序运行的起点,相当于C语言的函数main()。
程序的起点GOAL段
GOAL startpage, CGI_String = cgi_GetString(), str_namelist(CGI_String,ParmList), consult_kb(ParmList,ParmList1), userdefined_startpage(), write_startform(), assert_conditions(ParmList1), infer().<