□ 徐 峰
番茄是我国广泛种植的经济作物,在其生长阶段会遇到较多虫害、病害等方面的影响。而对于种植者,要想及时获得番茄信息并获得相关农业专家的指导是比较困难的,因此开发一套具有信息查询、营养诊断等功能的专家系统很有必要。在国外,用于大豆病害诊断咨询的PLANT/ds专家系统在美国的伊利诺斯大学最早被研发出来。2009年,西班牙的相关研究机构研发出来的“橄榄树病虫草害识别专家系统”阐述了对病虫害和草害有效识别的方法,也结合了病虫害和草害的图片,为病虫草害的诊断和防治提供了良好的基础。在国内,欧阳建权等人设计和实现了基于PDA的农业专家系统,但是没有完成具体植物的专家系统。王安炜等人提出利用开放的Android系统构建“水稻病虫害专家系统平台”,但是该平台的解释系统还不够完善。
随着移动通信技术的发展,以Android系统为代表的智能移动终端迅速发展,目前国内也出现了基于安卓系统的智能诊断系统。比如,杨林楠等人搭建了甜玉米病虫害智能诊断系统。但此类系统功能相对简单并且基于Android平台的作物生产管理系统比较少。因此本文基于Android应用平台设计与开发了番茄栽培管理移动终端系统,为番茄种植者提供专家层次上的指导。
本系统是基于Android系统中的Activity开发的。Activity是提供一个用户进行交互的屏幕。在Activity中,不仅能够将界面布局展示出来,而且能够将从服务器端获得的数据解析,显示在移动终端屏幕上。在服务器与客户端之间主要使用轻量级的数据交换格式——JSON(JavaScript Object Notation)数据格式进行数据传输。在传输中使用一种支持当前最新的网络访问协议客户端编程工具包——HttpClient协议。
知识库和推理机是本系统中营养诊断等模块使用的主要技术。知识库是根据某种规则组织的知识的几何,也是专家系统的主要来源。在知识库和推理机中所使用的规则的基本形式是P->Q。这种规则形式的含义是指,如果(if)前提P满足,那么(then)就可在推理机上推出结论Q或者执行Q中写入的操作内容。这种规则形式的知识,能够使推理的过程更加准确。因为只有满足了前提之后,才能执行下一步的操作,而不会有其他的步骤产生。本文知识库是由番茄营养缺乏与过剩诊断、防治领域的理论知识、事实数据、植物图片等信息组成。并采用产生式规则表示法进行营养诊断从而达到通过逻辑表示知识库内容的物理组织。而推理机是基于知识进行推理。本系统采用正向推理方式,从用户在终端软件通过界面选择病害发生时期、病害发生部位、病害症状等事实出发,通过一系列策略方法从知识集中挑选出合理的知识进行推理,并将已推出的知识作为下一步推理的已知事实在知识库中找出适用的知识进行推理,反复进行,直到得出解或知识集被取完。
(一)系统功能结构。系统的功能结构框架如图1。在客户端用户可以选择信息查询、病虫害诊断、营养诊断、病害宝典、模糊查询和专家答疑等功能模块,进入相应的模块后输入信息和问题,传入服务器,服务器端将得到的数据通过“if-then”模式的规则进行推理,并将最终推理结果返回客户端。
图1 系统功能框架图
(二)系统主要模块。
1.番茄的信息查询模块。
(1)番茄的基本信息查询。番茄的基本信息查询,主要包括番茄的简介、番茄的历史、番茄的形态特征、番茄的生长环境以及多个变种番茄的详细介绍。
(2)番茄的病害宝典信息查询。番茄的病害宝典信息查询主要介绍番茄的各种病害的名称、图片和详细介绍。用户可以更直观地了解病症,以及通过系统建议选择合理的防治方法。
2.番茄的诊断模块。番茄的诊断模块主要根据用户输入的信息,系统自动诊断出番茄状况,并将解决建议等信息告知用户。番茄诊断的流程图如图2所示。
图2 番茄诊断流程图
番茄的诊断模块主要分为病虫害诊断、营养诊断和病害的模糊查询三个模块。
(1)番茄的病虫害诊断。用户首先选择病虫害所发生的生长时期,例如叶期。接着,用户选择病虫害发生的部位,例如番茄的叶部。最后再选择番茄的病症,如在叶子的边缘出现褐色斑块,那么通过推理机得到病虫害的名称为晚疫病。这些病害的信息主要包括病虫害的名称、病虫害发生的原因、病虫害的特征图片,并向客户提供防治方法中效果最佳方案,最低残留方案和最快解决方案。
(2)番茄的营养诊断。番茄的营养诊断与番茄的病虫害诊断方法类似,但服务器端返回的数据不同。返回数据主要为疾病的名称、疾病发生的原因以及其特征图片。
(3)番茄病害的模糊查询。当用户无法准确判断番茄病害的发生时期或病害产生部位时,用户可以输入想要查询的信息的关键字,例如,叶部、黄色等。通过与数据库中的数据进行匹配,得到与用户输入内容相关的信息。
3.专家答疑模块。专家答疑模块主要提供几种常见病虫害的诊断以及专家的建议。若用户的问题与常见几种不同,则可以在登陆系统后,进行提问,等待相关专家的回答。
4.病害宝典模块。用户可通过此功能看到所有的病害名称以及病害特征图片的列表。主要包括病害发生的生长周期时间、发生的部位、主要特征及其防治方法。
(三)系统实现。本系统采用B/S模式,所使用的开发语言为Java语言,在Eclipse、Android SDK以及ADT这三种工具上开发。
客户端端的首页如图3(a)所示。在首页中,本系统设计了信息查询、病虫害诊断、营养诊断等功能按钮。用户可以根据需求任意点击其中的某个按钮。若点击首页的信息查询,则显示普通番茄、樱桃番茄等标题,点击樱桃番茄标题,则会显示樱桃番茄的详细信息比如种类描述、分布地区(如图3(b)(c))。若点击首页的病虫害查询,则显示生长周期的单选按钮。选择好时期后,单击下一步,则显示病虫害可能出现在番茄植株的具体部位。选择好后,再次单击下一步,则显示病虫害在满足以上两个条件的情况下可能出现的病症。选择后,数据将从服务器端返回客户端,显示诊断结果等信息(如图3(d~h))。若点击首页的病害宝典,则显示各种病害的标题、内容简介以及图片。点击具体病害如灰霉病后,即可看到该病害的详细内容(如图3(i)(j)所示)。若点击首页的模糊查询,用户可在输入框中输入想要查询的关键字,服务器端将关键字与数据库中的数据进行匹配,若匹配成功,则将相应数据返回到客户端。若点击首页的专家答疑,用户可以查看常见的关于番茄的提问以及来自专家的解答。用户还可以在登录后提交自己的问题。也可以通过点击“我的提问”来查看自己提出的所有问题,同时也可以查看是否有来自专家的解答。
本文设计和开发了基于Android的番茄栽培管理移动终端系统。该系统通过使用专家系统知识对番茄营养和病虫害进行诊断,实现了番茄信息查询、营养诊断功能、病害诊断、模糊查询和专家答疑等功能,实验结果较理想。未来需要考虑模糊推理方法,从而更进一步完善系统。
[1]Uhrik C T.PLANT/ds Revisited:Non-Homogeneous Evaluation Schema in Expert Systems[C]AAAI,1982:217 ~ 220
[2]欧阳建权,钱跃良,褚诚缘,李锦涛.基于PDA的农业专家系统的设计和实现[J].计算机工程与应用,2002
[3]王安炜.基于Android的手机农业专家系统的设计与实现[D].山东大学,2011