知识库系统与外部数据源接口的研究(共8页)

上传人:1537****568 文档编号:219968151 上传时间:2021-12-07 格式:DOC 页数:8 大小:73.50KB
返回 下载 相关 举报
知识库系统与外部数据源接口的研究(共8页)_第1页
第1页 / 共8页
知识库系统与外部数据源接口的研究(共8页)_第2页
第2页 / 共8页
知识库系统与外部数据源接口的研究(共8页)_第3页
第3页 / 共8页
知识库系统与外部数据源接口的研究(共8页)_第4页
第4页 / 共8页
知识库系统与外部数据源接口的研究(共8页)_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《知识库系统与外部数据源接口的研究(共8页)》由会员分享,可在线阅读,更多相关《知识库系统与外部数据源接口的研究(共8页)(8页珍藏版)》请在金锄头文库上搜索。

1、一个知识库系统与外部数据源接口的研究 马金平 邢筠(青岛大学商学院管理系, 266071)摘要 本文论述了一个知识库系统与外部数据源接口的描述定义和程序实现方法。关键词 知识库系统 数据库 数据源1 引言随着智能决策支持系统应用领域的不断扩大,原来由模型库系统完成的部分定量分析任务,将归并到知识库系统中。即要求知识库中,不仅有专家的定性知识,而且也应该具有计算知识,形成一个广义的知识库系统。在广义知识库系统中,要求推理机不仅要具有一般的推理功能,而且能够从外部数据源获取数据,对数学模型进行求解的功能。如何从外部数据源获取数据,是使推理机具有模型求解功能的关键技术之一。笔者在生产成本管理知识库系

2、统的开发过程中,使用Visual c+6.0 成功地研究开发了该知识库系统与外部数据源的接口,拓宽了推理机的功能,收到了比较好的效果。外部数据源主要是指文本数据文件、数据库和Excel电子表。由于受篇幅限制,本文主要针对知识库系统与文本数据文件、数据库接口的设计实现问题进行讨论。知识库系统与Excel电子表的接口问题,笔者将另撰文介绍。2 接口的描述定义在生产成本管理知识库中,以知识数据块的形式对外部数据源进行如下描述定义。2.1 文本数据文件接口的定义格式 DATAFILE /可以定义多个文件的接口。 =OPEN()/在一个接口中,可以定义任意个输入数据文件。 =READ(,行号,列号)/可

3、以有多行。 | /或 WITH =READ(行号,列号) /可以有多行。 END WITH END DATAFILE 2.2数据库接口的定义格式 DATABASE /在一个知识库中可以定义多个这样的接口 CONNECTION = /可以同时定义多个连接对象 INPUTTABLE /每个接口只能定义一个输入块。 RECORDSET =,CONNECTION /可以定义多个记录集对象名。 变量=.FIELDS(字段序号)/可以有多行 | /或 WITH ADO记录集对象名 =.FIELDS(字段序号) /可以有多行 END WITH END INPUTTABLE OUTPUTTABLE /定义与存

4、储结果数据表的接口,每个接口最多可以定义一个输出块。 RECORDSET =,; .FIELDS(字段序号)=变量; | /或 WITH FIELDS(变量序号)=; END WITH END OUTPUTTABLE END DATABASE在上述格式中,变量是指计算表达式及模型中需要用户提供值的参数,或存储表达式及模型的求解结果。“/”表示注释。此外,笔者在生产成本管理知识库系统开发工具中,开发了知识库与外部数据源接口定义的辅助工具,用户利用这些工具可以十分方便地完成接口的描述定义工作。3 接口程序的实现在推理机运行之前,首先将知识库读入内存,并且转换成计算机的内部表现形式。接口程序再根据知

5、识库与外部数据源接口的定义,将外部数据源的数据读入内存缓冲区后,最后在进行推理。为了便于查找知识库与外部数据源接口的定义语句,首先定义如下数据结构:struct LineText /存储知识库语句行文本。 CString Text;/存储知识库语句行文本struct linetext *pNextLine;/下一行指针 *pLineTextHead; /知识库语句首行指针。struct DataObject /知识数据块对象索引表 CString ObjecType;/对象类型struct LineText *pTextLine;/对象首行在LineText中的指针struct DataObj

6、ect *pNextObject;/指向下一个知识数据块对象。struct KnowClsName /存储知识类名称定义语句文本 CString ClsName;/知识类名称struct KnowClsName *pNextCls;/下知识类名称的指针struct LlineText *pTextLine;/知识类名称在LineText中的指针struct DataObject *pFirstObject;/指向知识类中第一个知识数据块对象的指针struct Method *pFirstMethod;/指向知识类中第一个知识方法的指针*pClsHead;/指向知识类的头指针。根据上述数据结构的

7、定义,接口程序总体实现的程序流程如图1所示。在图1中,当pDo-ObjectType等于“DATAFILE“或“DATABASE”或“EXCEL”时,系统分别调用从文本数据文件、数据库和EXCEL电子表获取数据的接口函数。其中:文本数据文件接口函数的程序流程如图2所示,数据库接口函数的程序流程如图3所示。“OTHER”表示知识库中的其它知识数据块对象。开始pClspClsHead终止pDo=pClspFirstObjectpCls=NULL?? No Yes pDoObjectType=?pDo=NULL? Yes No pCls=pClspNextCls AB C DATABASE EXCE

8、L OTHER DATAFILEpDo=pDopNextObject 图1 接口程序总体实现的程序流程 3.1 数据文件接口函数程序的实现为了存储从外部数据文件获取的数据,定义如下数据结构:struct DataFileBuffer /数据文件缓冲区 CString VariableName;/变量名称 double DataValue;/从文本文件获取的变量值 struct DataBuffer *pNextPata;/指向下一个变量的指针*pDataBufferHead,*pDataBufferTail;/缓冲区的头指针和尾指针。据此,绘出从外部数据文件获取数据的接口函数的程序流程如图2。

9、由于受篇幅限制,图2仅给出了程序的主要算法流程。在编程时,还必须考虑具体实现的细节,例如:如何从一个数据行中,确定数据项数量,找到Col列;如何创建DataFileBuffer的链表结构等。3.2 数据库接口函数程序的实现 根据上述知识库与数据库接口的定义格式以及知识库内部存储结构,可以绘制出数据库接口函数程序总体流程如图3所示。其中:D表示输入数据表接口程序流程,如图4所示;E表示输出数据表接口程序流程。3.2.1 输入数据表接口程序的实现为了存储从输入数据表获取的数据,定义数据结构如下: struct InputDataBuffer /存储从数据库获得的数据,每一个变量建立一个数据区 _v

10、ariant_t DataValue;/可以存储不同类型的数据;struct InputDataBuffer *pNextDataValue;;struct PremiseVariableBuffer /前提变量(自变量)集区,接受来自数据库的数据 CString VariableName;struct InputDataBuffer *pInputDataBufferHead;/指向数据区头指针。struct PremiseVariableBuffer *pNextVariable;/指向下一个变量。*pPremiseVariableBufferHead,pPremiseVariableBu

11、fferTail;据此,可以绘制出知识库从外部数据库获取数据的接口程序流程如图4所示。 ApTL2=pTL1;nFind1=pTL2-Text。Find(”OPEN”)定义变量、初始化pTL1=pDopTextLinepTL1=pTL1pNextLine nfind1-1? No YespTL1Text=”END DATAFILE” ?找出文件名称、文件句柄名称,并且打开数据文件(设对象名为MyFile)。Ptl2pNextLine No Yes 返回 Ptl2-Text=”END DATAFILE”? Yes pTL1=pTL1-pNextLine Yes pTL2pNextLine在Ptl2-Text中,找出变量名称 VariableName,行号(Row)和列号

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > IT计算机/网络 > 计算机应用/办公自动化

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号