一、系统功能概述
1系统功能概述
本软件针对本体建模工具Protege设计出了一种基于语义的能力建模平台,并将其以Protege插件的形式应用到本体建模工具Protege中。该能力建模平台使用Java Swing进行界面设计,并利用Jena技术,在Java开发平台对能力元模型进行添加和修改,建立目标能力模型;根据建好的能力模型,利用Jena技术进行语义查询,形成一个从初始状态到目标状态的规划,并利用Graphviz生成规划图。首先,通过Protege建立能力元模型,然后通过该能力建模平台扩展和完善能力元模型,例如添加Agent、给Agent添加能力等,生成目标能力模型;给定初始状态和目标状态,通过对能力模型进行语义查询,利用规划算法,寻找一个规划过程,并显示规划图。本文提出的基于语义的能力建模平台应用到Protege中使得该工具能被对OWL语言并不熟悉的人用来操作OWL,并能很方便的使用语义查询来生成规划图,使之为Agent能力协作做有效铺垫。
1.2.系统功能结构
能力建模平台的结构图如图1.1所示,界面主要分为三个模块:对能力模型添加或删除Agent和Capability实例;对Agent添加能力属性和对Capability添加或删除InConstraint和OutConstraint属性;根据给定的初始状态和目标状态,生成规划图。
1、对能力模型添加或删除Agent和Capability实例:
界面中对owl文件内容是以树的形式呈现,最底层的节点都代表的是实例。可以对每一类Agent添加或者删除实例,也可以对Capability类添加或者删除实例。
2、对实例添加属性:
Agent实例有hasCapability属性,因此可以给Agent实例添加或删除capability。Capability实例有hasInConstraints和hasOutConstraints两个属性,因此可以给Capability属性添加或删除InConstraints和OutConstraints。InConstraints和OutConstraints都是由一些ContextState组成,而ContextState则是由类似“a_b_c”字符串形式构成,从语义的角度来说,a和c都代表argument,b代表predicate。
3、生成规划图:
规划图显示的规划过程,需要先输入初始状态和目标状态。在点击按钮触发后,系统会根据所输入的初始状态和目标状态来运行后台的规划算法,若存在一个从初始状态到目标状态的规划,系统就会以弹出框的形式显示规划图。通过规划图,可以对规划过程一目了然。
二、系统要求
2.1.开发和运行环境
1、硬件环境
本系统的硬件开发环境比较低,CPU为AMD A6-3670.2.70GHZ以上,内存为4GB。
2、软件环境
软件环境主要包括计算机系统Windows 7旗舰版,程序编写软件Eclipse 4.5,本体开发工具Protégé 3.4.8 Windows 64位,还有绘图工具Graphviz 2.28,这个是以dot作为脚本语言来绘制图形的软件,以及JDK1.8。
3、开发语言
本系统的开发语言主要涉及到Java,OWL和Dot三种语言。OWL是一种处理WEB信息的语言,Dot是Graphviz中编写绘图脚本的语言。
4、运行环境
由于是Protege插件,所以需先安装Windows 64位的Protege3.4.8,在Protege工具中运行。生成规划图利用了Graphviz软件,因此也需要安装Graphviz 2.28。电脑离线或者在线都可运行。
2.2.软件配置
软件开发平台为:eclipse4.5 JDK1.8 Protege 3.4.8 Graphviz 2.28。
说明:搭建环境时首先确认JDK的版本要换成1.8;安装Graphviz 2.28时,要安装在C:ProgramFiles(x86)下;在特定位置存放owl文件(E:/AGVsModel/AGV1.owl),并在E盘新建文件夹temp,用于存放生成的规划图。此外,Protege3.4.8需要安装64位的,安装好后,需将能力建模插件包RP-Plugin.jar放到Protege安装路径下的plugins\edu.stanford.smi.protegex.owl中。
三、软件操作说明
3.1对能力模型OWL文件进行修改
3.1.1打开能力建模平台主界面
在对软件操作前,需用Protege建立一个能力元模型的owl文件,并将其放在E:/AGVsModel/目录下。
运行该Protege插件,如图3.1所示:
图3.1 运行界面
选择“Open Other”,出现选择owl文件路径的对话框,如图3.2所示:
图3.2 选择owl文件界面
选择好owl文件后,就会出现Protege主界面,如图3.3所示:
图3.3 Protege主界面
接下来,需要打开能力建模插件ICCTab了。点击窗口左上角的“Projcet”,选择“Configure”后出现配置选择框,如图3.4所示。然后勾选ICCTab,就会出现RP-Tool选项卡,点击该选项卡就会出现能力建模平台的主界面,如图3.5所示。
图3.4 配置选择框
图3.5 主界面
3.1.2对能力模型进行修改
对能力模型进行修改的操作包括添加和删除Agent实例,添加和删除Capability实例,给Agent实例添加Capability,给Capability实例添加InConstraints和OutConstraints。
(1)添加和删除Agent实例:选择“Agent”下的某一个类(AGV),点击“+Agent”按钮,出现一个输入节点名称对话框,如图3.6所示。点击OK后,新节点“ab”就添加到AGV下,作为AGV的一个实例,如图3.7所示。当选中一个Agent实例“agv”,点击“Delete”,则该实例就会从模型中删除。
(2)添加和删除Capability实例,跟添加和删除Agent实例类似,选中“Capability”类,点击“+Capability”按钮,出现输入名称对话框,如图3.8所示,当输入“acd”,点击OK时,该实例就添加到模型里面了,如图3.9所示。当选中一个Capability实例“acd”,点击“Delete”,则该实例就会从模型中删除。
(3)给Agent实例添加和删除能力:选中一个Agent实例“ab”,点击中间“+Ca...”按钮,出现“Select a capability”弹出框,当选择一个能力“movetoElevator”后,点击OK按钮,则该能力就会显示在列表中,如图3.10所示。
(4)给Capability实例添加或删除InConstraints:选择一个Capability实例“TransportCart”,点击中间模块的“+Inc”按钮,则出现InConstraints编辑框,如图3.12所示。有两种方式,可以从已有的ContextStates下拉列表中选择一个,如图3.13所示,或者自己创建一个新的ContextState。当自己创建一个新的ContextState时,一般按P(C,I)形式创建,即先点击“P”按钮,出现“Choose Predicate”选择框,如图3.14所示,选择一个Predicate,然后点击“(”,再点击“C”按钮,出现“Choose OntClass”选择框,如图3.15所示,选择其中一个节点,点击OK,然后手动输入“,”,在点击“I”按钮,出现“Choose Individual”选择框,如图3.16所示,选择一个Individual,最后点击“)”按钮,那么一个新的ContextState就创建成功了,如图3.17所示,当点击OK后,该ContextState就会以C_P_I的形式添加到InConstraints列表中,如图3.18所示。选中某个InConstraint,点击“-InC”按钮,则该InConstraint便会从能力模型中删除。
(5)给Capability实例添加OutConstraintes:点击中间模块下方的“+OutC”按钮,出现的对话框及接下来的操作都跟添加InConstraints相同;选中某个OutConstraint,点击“-OutC”按钮,则该OutConstraint便会从能力模型中删除。
图3.12 InConstraints editor 图3.13 Choose ContextState 图3.14 Choose Predicate
图3.15 Choose OntClass 图3.16 Choose Individual 图3.17 Create new ContextState 图3.18 Create new ContextState效果图
3.2生成规划图
生成规划图模块界面如图3.19所示。其过程分为四步:第一步,在文本框输入Available Agent名称;第二部,选择输入Initial States和Goal States,具体操作为:点击Initial States上方的“+”出现“InitialStates editor”选择框,跟“InConstraints editor”相同,选择过程也相同,Goal States的选择输入也是如此,若想删除某个Initial States和Goal States,则只需选中它,然后点击“-”按钮;第三步,点击“Step 4:Run”按钮,运行规划算法;第四步,点击“Step 4:ShowGraph ”按钮,则出现规划图的弹出框,如图3.20所示。
图3.19 生成规划图模块界面 图3.20 生成规划图
本文属作者原创,请尊重原创。