预览加载中,请您耐心等待几秒...
1/8
2/8
3/8
4/8
5/8
6/8
7/8
8/8

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

编号:时间:2021年x月x日书山有路勤为径学海无涯苦作舟页码:一个知识库系统与外部数据源接口的研究马金平邢筠(青岛大学商学院管理系266071)摘要本文论述了一个知识库系统与外部数据源接口的描述定义和程序实现方法。关键词知识库系统数据库数据源1引言随着智能决策支持系统应用领域的不断扩大原来由模型库系统完成的部分定量分析任务将归并到知识库系统中。即要求知识库中不仅有专家的定性知识而且也应该具有计算知识形成一个广义的知识库系统。在广义知识库系统中要求推理机不仅要具有一般的推理功能而且能够从外部数据源获取数据对数学模型进行求解的功能。如何从外部数据源获取数据是使推理机具有模型求解功能的关键技术之一。笔者在生产成本管理知识库系统的开发过程中使用Visualc++6.0成功地研究开发了该知识库系统与外部数据源的接口拓宽了推理机的功能收到了比较好的效果。外部数据源主要是指文本数据文件、数据库和Excel电子表。由于受篇幅限制本文主要针对知识库系统与文本数据文件、数据库接口的设计实现问题进行讨论。知识库系统与Excel电子表的接口问题笔者将另撰文介绍。2接口的描述定义在生产成本管理知识库中以知识数据块的形式对外部数据源进行如下描述定义。2.1文本数据文件接口的定义格式DATAFILE//可以定义多个文件的接口。<文件句柄>=OPEN(<文件名称>)//在一个接口中可以定义任意个输入数据文件。<变量>=READ(<文件句柄>行号列号)//可以有多行。|//或WITH<文件句柄><变量>=READ(行号列号)//可以有多行。ENDWITHENDDATAFILE2.2数据库接口的定义格式DATABASE//在一个知识库中可以定义多个这样的接口CONNECTION<ADO连接对象名>=<连接字符串>//可以同时定义多个连接对象INPUTTABLE//每个接口只能定义一个输入块。RECORDSET<ADO记录集对象名>=<SQL查询语句>CONNECTION<ADO连接对象名>//可以定义多个记录集对象名。〈变量〉=<ADO记录集对象名>.FIELDS(字段序号)//可以有多行|//或WITH〈ADO记录集对象名><变量>=.FIELDS(字段序号)//可以有多行ENDWITHENDINPUTTABLEOUTPUTTABLE//定义与存储结果数据表的接口每个接口最多可以定义一个输出块。RECORDSET<ADO记录集对象名>=<SQL查询语句><ADO连接对象名>;<ADO记录集对象名>.FIELDS(字段序号)=〈变量〉;|//或WITH<ADO记录集对象名>.FIELDS(变量序号)=<变量>;ENDWITHENDOUTPUTTABLEENDDATABASE在上述格式中〈变量〉是指计算表达式及模型中需要用户提供值的参数或存储表达式及模型的求解结果。“//”表示注释。此外笔者在生产成本管理知识库系统开发工具中开发了知识库与外部数据源接口定义的辅助工具用户利用这些工具可以十分方便地完成接口的描述定义工作。3接口程序的实现在推理机运行之前首先将知识库读入内存并且转换成计算机的内部表现形式。接口程序再根据知识库与外部数据源接口的定义将外部数据源的数据读入内存缓冲区后最后在进行推理。为了便于查找知识库与外部数据源接口的定义语句首先定义如下数据结构:structLineText//存储知识库语句行文本。{CStringText;//存储知识库语句行文本structlinetext*pNextLine;//下一行指针}*pLineTextHead;//知识库语句首行指针。structDataObject//知识数据块对象索引表{CStringObjecType;//对象类型structLineText*pTextLine;//对象首行在LineText中的指针structDataObject*pNextObject;};//指向下一个知识数据块对象。structKnowClsName//存储知识类名称定义语句文本{CStringClsName;//知识类名称structKnowClsName*pNextCls