• 打开微信扫一扫

网站首页 >> 2025 SIS 展示 >> 李跃新:关于专家数据库系统数据访问研究的

2025 SIS 展示

李跃新:关于专家数据库系统数据访问研究的回顾


关于专家数据库系统数据访问研究的回顾
李 跃 新

湖北大学计算机与信息工程学院 湖北 武汉4300062

 

摘 要:专家数据库系统是计算机专家系统的一个分支。它与当前的AI系统的数据访问策略差别很大。回顾这一段的历史,可以帮助我们做好原来的工作,又可以配合现在的AI研究走得更稳、更快。

关键词专家系统数据库系统专家数据库系统,人工智能



afc30015ce76242418f890667bdde3bd.png

                                         作者简介

李跃新,男,67岁,教授,博士;计算机科学与技术专业;研究方向:智能系统、数据库系统;1983大专毕业,1989获得硕士学位,2006获得博士学位。1990-2018湖北大学任教。发表论文30多篇,其中国家核心期刊5篇,SCI期刊1篇,EI期刊3篇。获得湖北省科技进步3等奖1项,获得发明专利2项,参加国家自然科学基金项目2项,主持湖北省教育厅重点科研项目2项。邮电出版社和科学出版社出版专著各1部。省教育厅项目评审专家和省科技厅项目评审专家。





1 引 言

关系型数据库系统缺乏知识只能处理静态数据而专家系统的应用领域狭窄和不能访问现存数据库又妨碍了专家系统的有效应用数据库和AI这两个领域单独发展的局限性促使了两者取长补短共同发展这就是专家数据库系统 EDSExpert Database System产生和发展的原因通常我们把既具有数据库管理功能及演绎能力又提供专家系统中若干良好性能的数据库系统称为专家数据库
    EDS
的基本思想是把以知识表达和知识处理为主的专家系统 ESExpert System技术引进关系型数据库使二者有机结合以开发出能共享信息的面向知识处理的问题求解系统目前‚EDS 主要采用系统耦合--紧耦合松耦合来实现紧耦合指将规则管理系统集成到 DBMS 之中‚使 DBMS 既管理数据库又管理规则库这种方法实现难度较大而松耦合是指将一个现成的专家系统外壳和一个现成的 DBMS作为两个独立的子系统结合在一起它们分别管理规则库和数据库采取松耦合实现策略可以充分发挥原有两个系统的全部功能‚而不需对原系统进行任何改动它只需设计一个连接 ES/DBMS 的高效灵活的原接口模块‚以协调二者的工作所以实现起来时间短见效快
    CLIPS
是美国航空航天局约翰逊太空中心于1985年推出的基于 C 语言的专家系统开发平台‚它是一种知识工程语言‚最初的 CLIPS 是一种产生式语言‚现已具有产生式系统基于规则)、框架结构面相对象和过程式编程等知识表达方式WXCLIPS CLIPS 的功能扩展运行于 MS WINDOWS UNIXLINUXXWINDOWS 的图形化专家系统开发平台并且支持 FUZZY 推理
    我们在开发项目的时候,采取松耦合的策略选择文本文件和 MS SQL SERVER2000DBMSCLIPS WXCLIPS ES开发平台研究了专家数据库系统的数据访问技术下面分二节予以介绍

 

2 文本文件数据库的操作

用文本文件作为专家数据库系统中的数据库‚它既可存放推理机所使用的规则知识也可存放因推理所需的中间数据和结论数据或其他待处理的数据本文主要以存放数据为例论述我们的研究工作
    当处理的数据量较少时文本数据库的优点十分突出
    21 数据的结构化定义 因文本文件属流式结构用文本文件存放数据时为体现数据的关系特征和存取方便一般需进行结构化定义进行结构化定义时每个字段之间至少要一个空格一个字段内部不能有空格如定义配置个人计算机数据库中的产品表有4处字段品名型号价格档次文件的内容如下

品名       型号              价格       档次
cpu        P417G/478       1750元     1
cpu        P41
7G/423       1630元     1
mainboard  
华硕 P4E/478       1620元     1
mainboard  LNTEL850MV/478   1600
元     1

22 文件的基本操作

1打开文件

openfilename><fileid>[<fileaccess>])

其中filename为文件名字符串包括完整路径‚当缺省路径时‚默认主程序所在目录‚fileid为文件逻辑名‚以后访问文件可用直接引用逻辑名‚fileaccess为文件存取方式字符串‚此项可以缺省‚主要有以下4种存取方式“r”只读方式‚缺省方式“r读或写方式‚以覆盖方式写数据以上两种方式文件必须存在‚否则打开失败“w”只写方式‚当文件不存在时‚新建一个空文件‚当文件存在时‚以覆盖方式写数据“a”追加方式‚当文件不存在时‚新建一个空文件‚当文件存在时‚以追加方式写数据

2对文件进行读操作read [<logicalname>])
    从具有逻辑名logicalname的文件中读取一个字段不同的字段用空格隔开);若成功则返回;读取字段否则‚返回 EOF

read [<logicalname>])从具有逻辑名logicalname的文件中读取一个一行若成功‚则返回读取的行否则‚返回 Eof
 
3对文件进行写操作 printout logicalname><expressionexpression求值‚无格式输出到具有逻辑名logicalname的文件中.(formatlogicalname><stringexpression><expressionexpression求值‚按照stringexpression规定的格式输出到具有逻辑名logicalname的文件中

4关闭文件

close [<logicalname>])

关闭逻辑名为logicalname的文件若没有指定‚则指所有文件‚如果成功返回 True‚否则返回False

23 文件的基本操作的应用

实例1 将已经存在的事实按一定格式写到文件中添加数据).(程序略)

由于 clips 的文件是流式文件文件指针自动移动且不支持删除或修改指定行因此删除数据的思想是先将要删除数据之前的数据写到另外一个文件再将要删除数据之后的数据写到另外一个文件然后将此文件以覆盖的方式写回到原文件修改数据也可采用类似思想

实例2 修改数据

将文件中 name namepara 的行‚kind 修改为kindparaprice 修改为priceparalevel 修改为levelparadeffunction updatedata(?nameparakindparapriceparalevelpara
open“pctxt”pc“r”)(程序略)
   

3 ODBC 的数据库操作

WXCLIPS 支持以 ODBC 方式访问数据库操作更方便适合处理数据量较大的应用下面将讨论数据访问的基本函数‚并通过实例介绍它们的使用
     31 基本函数

1创建数据库

databasecreate

创建一个数据库创建成功后返回这个数据库的 id

2打开数据库

databaseopen long id string datasource optional long exclusive1optional

string readonly1optional string username“ODBC”optional string password″″

它的若干参数是数据库的 id‚独占性01‚只读性01‚数据源名‚用户名‚password成功就返回1

3关闭数据库

databaseclose long id

成功就返回1

4删除数据库

databasedelete long id

成功就返回1创建一个数据集

5执行一条 SQL 命令 longrecordsetexecutesq1long id string sq1

将结果放到数据集中‚成功就返回1
6删除一个数据集 longrecordsetdelete long id
成功就返回1

32 记录集操作函数 stringrecordsetgetchardata long id stringorlong col
从数据集中取出当前记录的一个字符型记录项为数据集 id‚col 为第几项记录recordsetgetfloat

data 取得浮点型记录项recordsetgetintdata 取得整型记录项
long
recordsetiseof long id 当记录结束时返回1
long
recordsetisbof long id 当记录起始时返回1
long
recordsetmovefirst long id 将指针移到第一条记录
long
recordsetmovelast long id 将指针移到最后一条记录
long
recordsetmovenext long id 将指针后移一条记录
long
recordsetmoveprev long id 将指针前移一条记录
databasegeterrormessage id 取得数据库操作错误信息id 为数据库 id
    33 数据库操作的应用

实例1 从数据库中读一条数据用函数实现).

定义函数 deffunction find(?sq1result
binddatabasedatabasecreate));创建数据库和打开数据源
ifeq0databaseopendatabase“pcbase”10“sa”))then
bindmsgdatabasegeterrormessage database))
printout tmsg crif
return0)) 创建数据集
bind recordsetrecordsetcreate database“wxopen-type-snapshot”))
bind sq1strcat sq1)) 构造 SQL 语句
ifeq0recordsetexecutesq1recordsetsq1?)then执行 SQL 语句
bindmsgdatabasegeterrormessage database))
printout tmsg crif)(return0))
binddatarecordsetgetchardatarecordsetresult);获得符合条件的第一条记录
recordsetdeleterecordset
databaseclosedatabase
databasedeletedatabase
returndata))
    调用函数:(find “selectfrom mypc” 1
    实例2 更新数据用函数实现).
    定义函数:(deffunction updatepc(?result1result2result3
binddatabasedatabasecreate)) 创建数据库和打开数据源
ifeq0databaseopendatabase“pcbase”10“sa”))then
bindmsgdatabasegeterrormessage database))
printout tmsg crif
return0)) 创建数据集
bind recordsetrecordsetcreate database“wxopen-type-snapshot”))
bind sq1strcat “updata mypc set xh=?result1‚price=?result2 where pp=?result3″″))
ifeq0recordsetexecutesq1recordsetsq1?)then 执行 SQL 语句
bindmsgdatabasegeterrormessage database))
printout tmsg crif)(return0))
recordsetdeleterecordset
databaseclosedatabase
databasedeletedatabase))
    调用函数:(updatapc “三星17”“1720”“videoplay”
    

4 结束语
   
专家系统与数据库系统结合的专家数据库系统使专家系统有更加广阔的应用天地也使数据库处理有知识的指导对基于知识的数据库挖掘有指导意义文中提到的文本文件适合于小型数据处理不需要大型数据库作后台支持但各种数据库操作需要编程实现而采用 ODBC 方法不存在此问题当然 过去的工作还可以深入如数据库中存放规则实现逆向推理时如何使用数据库使 CLIPS 程序正确推理等。这些值得结合当前AI的发展,在今后继续研究。

 

 参考文献

1 Joseph Giarratano‚Gary Rilay专家系统原理与编程M].印 鉴‚刘星成‚汤 庸北京机械工业出版社‚2001

2 缪建兰‚郭 盈我校学报论文的引文统计分析J].情报科学‚1999‚172):188192

 



  • 武汉市华光信息科学研究院
    HuaGuang Academy of Information Science at Wuhan
  • 扫一扫查看网站!

  • 扫一扫查看!

鄂ICP备19018315号-1

版权所有:武汉市华光信息科学研究院   技术支持:武汉网站建设