中国农业大学学士学位论文 第三章 系统设计
治疗方法表(Rx):(ID,治疗方法)。
根据本文的调查总结,整理出了很多原始资料,包括:55种鱼病、37种现场表现、166种目检症状和34种病因。
2. 辅助数据区
辅助数据区是基于对已有知识的学习而建立的。当知识库内的知识存量越来越丰富时,我们就可以从已知的病例中总结出鱼病知识的影响因素之间的关系,即“症状—疾病—病因—治疗方法”之间的关系。从鱼病的诊断模型可知,这种对应关系体现着鱼病诊断的本质,这对鱼病诊断专家系统的开发是十分常重要的。因为专家系统的推理机制要依赖这种对应关系,并从中总结出一定的规则来建立模型。辅助数据区包括以下数据表:
疾病—症状表:(ID,疾病名称,症状描述);疾病—病因表:(ID,疾病名称,病因描述); 疾病—治疗方法表:(ID,疾病名称,治疗方法)。 3. 交互数据区
交互数据区用来存储鱼病专家与知识库的交互信息。它可以存储通过知识获取界面得到的源自鱼病专家的诊断知识,也可以存储专家对已提交的病例进行修改和删除的编辑信息。这个数据区是鱼病专家与知识库进行交互的区域,是个实时的动态数据区。交互数据区包括以下数据表:
案例主表(CasePrimaryCircs):(案例ID,品种,规格,发病季节); 案例防治表(CaseDiseases):(案例ID,防治方法, 建议镜检部位); 案例镜检部位表:(案例ID,建议镜检部位); 案例症状表(CaseSymptoms):(案例ID,症状); 案例病因表(CasePathogenies):(案例ID,病因); 案例表现表:(案例ID,现场表现)。 4. 访问控制区
访问控制区用来存储专家和系统管理员的个人信息,以控制系统的访问权限。主要包括以下数据表:
用户信息表:(用户名,密码,姓名,电话,住址,邮编,传真,E-mail); 管理员信息表:(管理员,密码,姓名,电话,传真,E-mail)。
3.1.2 关系图的设计
数据关系就是数据库中的各个数据表之间的关系,在SQL Sever 2000 的Enterprise Manager 中,把代表相同数值的不同数据表的对应字段连接在一起,就创建了两个表的关系。通过数据关系的连接,可以把不在同一数据表中的各个字段联合输出,以达到用户的输出要求。下图是有关病例的数据表之间的关系:
19
中国农业大学学士学位论文 第三章 系统设计
图3-2 数据关系
3.1.3 视图的设计
数据视图就是利用数据关系,把不同数据表中的需要显示的字段组合成一个“虚表”输出,以满足系统要求。以下是病例表的输出视图的 SQL 语句:
SELECT dbo.CasePrimaryCircs.CaseID, dbo.CasePrimaryCircs.Variety, dbo.CasePrimaryCircs.Specs, dbo.CasePrimaryCircs.Disease, dbo.CasePrimaryCircs.Season, dbo.CaseBehave.Behave, dbo.CaseSymptoms.Symptom1, dbo.CaseSymptoms.Symptom2, dbo.CaseSymptoms.Symptom3, dbo.CaseSymptoms.Symptom4, dbo.CaseSymptoms.Symptom5, dbo.CaseSymptoms.Symptom6, dbo.CaseSymptoms.Symptom7, dbo.CaseSymptoms.Symptom8, dbo.CasePathogenies.Pathogeny1, dbo.CasePathogenies.Pathogeny2, dbo.CasePathogenies.Pathogeny3, dbo.CasePathogenies.Pathogeny4, dbo.CasePathogenies.Pathogeny5, dbo.CasePathogenies.Pathogeny6, dbo.CasePathogenies.Pathogeny7, dbo.CasePathogenies.Pathogeny8, dbo.CaseRx.Rx, dbo.CaseRx.LensParts, dbo.CasePrimaryCircs.username FROM dbo.CaseBehave INNER JOIN dbo.CasePrimaryCircs ON
dbo.CaseBehave.CaseID = dbo.CasePrimaryCircs.CaseID INNER JOIN dbo.CaseRx ON dbo.CaseBehave.CaseID = dbo.CaseRx.CaseID INNER JOIN dbo.CasePathogenies ON
dbo.CasePrimaryCircs.CaseID = dbo.CasePathogenies.CaseID INNER JOIN dbo.CaseSymptoms
ON
20
dbo.CasePathogenies.CaseID
=
中国农业大学学士学位论文 第三章 系统设计
dbo.CaseSymptoms.CaseID
3.2 人机接口设计
人机接口就是用户操作界面,是领域专家系统与后台知识库实现交互的媒介,其设计的好坏对系统的实用性有着很大影响。本系统开发的知识获取系统是基于网络的,因此对人机接口的设计基本参照网页的设计方法。又因为本系统需要领域专家与知识库频繁进行信息交互,所以基本上都采用动态网页的设计方法。
3.2.1 总体设计
基本设计思路是:(1)以对话框方式对知识库结构定义;(2)根据知识库的结构输入数据;(3)以文本编辑框方式实现数据输入;(4)以按钮方式实现输入数据的添加、删除、修改和查询等操作。[7] [11] [12]
为了提高系统的友好性,我们采用多窗口形式来完成系统与用户的交互工作。由于采用了多窗口方式,使用户感到非常直观方便。采用关键字匹配的方法,使系统使用简单,输人方便。知识库按关键字规定的格式输人后,该系统自动将知识输人知识库。在知识输人过程中,有一个必要的语法检查,输入的知识必须符合语法才可以添加到知识库,否则就会出错。这样做是为了维护后台数据库的正常运作,同时保证知识库内知识表示的稳定性。同时,为了尽量减少用户的重复输入,本系统大量采用下拉菜单供用户选择,操作简捷,效率高,也保证了知识内知识表示的稳定性。[3]
3.2.2 具体设计
按照前面分析的几个功能模块和系统工作流程的顺序逐步设计系统界面: 1.系统主界面
系统主界面是本系统的起始窗口,页面上安置有专家注册、专家登录、管理员登录和过客浏览等超级链接,点击超级链接就可以进入下一步的功能模块(如图4-2所示)。
2. 专家注册模块
记录专家基本信息,尤其是用户名和密码,以分配专家对系统的使用权限。 3. 专家登录模块
通过用户名和密码验证专家身份,以给与专家使用权限进行下一步操作(如图4-3所示)。
专家注册模块和专家登录模块在网页设计中是都很成熟的技术,稍作修改就
21
中国农业大学学士学位论文 第三章 系统设计
可以使用,这里不作详细论述。
4.知识获取模块
本系统的主要目的,就是鱼病诊断专家经过简单的培训后就可以自主的通过知识获取模块直接将鱼病诊断领域的专业知识输人计算机,再经由网络输送到知识库。因此,知识获取模块是本系统的核心模块。
通过分析我们知道,知识获取模块包括基本信息、现场表现、各部位的目检症状、病因、防治方法和建议镜检部位等六个方面,需要专家分类填写,提交后分别存储到知识库的交互数据区的各个对应表当中。因此,知识获取模块设置了大量信息采集窗口需要专家提交信息(如图4-4所示)。为了方便用户操作,本系统将绝大多数的文本输入框设置为选择菜单,这样的优点主要有三方面:
(1)用户直接点击选择即可,非常简单;
(2)把专家输入的内容规范化,有利于知识库结构的优化和管理维护; (3)精简内容,使界面简洁美观。
但是采用规范化输入有一个缺陷就是对鱼病知识的描述很多都没有规范化的标准语言,而是专家的个性化语言,这就给知识获取带来困难。为解决这个问题,本系统采取以下三项措施:
(1)在建系统之前查询大量文献资料,并通过调查问卷从领域专家获取相关知识,在知识库中组建原始数据区和辅助数据区来存储供专家选择的知识表示,并且为了全面反映相关知识,取各种知识源的并集作为下拉菜单的选择项。 (2)本系统的知识库是个动态的知识库,内部的知识可以由鱼病专家或系统管理员动态修改。随着时间的推移,知识库的知识量不断增大,知识的内容也会有所更新,因此下拉菜单的选择项也是动态改变的,由系统管理员进行修改。这样就可以逐渐达到完善。
例如网页中关于鱼的体表症状的下拉菜单的语句表示为:
<% While (NOT Symptom.EOF) %> <% Symptom.MoveNext() Wend
If (Symptom.CursorType > 0) Then Symptom.MoveFirst Else
Symptom.Requery End If
%>
22

