基于Jena的移动应用领域本体模型推理研究

2016-12-23 05:51陈国栋
通化师范学院学报 2016年10期
关键词:实例本体服务器

曾 琪,陈国栋

(福州大学 物理与信息工程学院,福建 福州 350116)



基于Jena的移动应用领域本体模型推理研究

曾 琪,陈国栋

(福州大学 物理与信息工程学院,福建 福州 350116)

针对如何向用户提供高质量的移动个性化服务问题,该文提出一种基于Jena的移动应用领域本体模型推理机制.首先,在分析移动上下文和网络应用特点的基础上,采用网络本体语言OWL建立移动应用领域本体模型;其次,以三维虚拟试衣应用为例,利用Jena推理引擎和自定义推理规则对移动应用本体模型进行推理,发现模型中本体类间隐含的关系.实验结果证明,该机制能够在一定程度上提高移动个性化服务质量.

移动个性化服务;移动应用;本体建模;Jena;本体推理

随着宽带无线接入技术的快速发展以及移动终端(如智能手机、PDA、平板电脑等)在硬件和软件方面的不断改进, 智能移动设备也逐渐成为人们获取信息的主要平台之一,用户能够根据需要随时随地甚至在移动过程中获取网络服务.因此,以创新服务模式,用智能的、主动的、信息找人的推送模式,代替陈旧的、被动的、人找信息的搜索模式为目标的移动个性化服务得到越来越多的关注[1].移动上下文建模是移动个性化服务研究的关键内容,本体作为描述概念及概念之间关系的一种工具,近年来被广泛应用于语义网等领域[2],它是对相关领域共享的概念模型的形式化的明确的规范描述[3],具有逻辑系统的描述能力与推理能力,并支持知识共享,利用本体对上下文进行建模有其独特的优势.目前,国内对移动领域本体模型的研究较少.本文将本体理论应用于服务器与移动设备相结合的移动应用领域,分析概念之间的关系,创建领域本体模型,再利用Jena推理引擎和自定义推理规则针对具体应用进行本体推理,以达到为用户进行个性化推荐的目的,对构建移动上下文感知计算模型有着重要意义.

1 Jena推理引擎工作原理

Jena来源于美国惠普实验室为语义网研究项目开发的一套开源本体开发API,是用于创建语义网应用系统Java语言工具包.它为OWL、RDF、RDFS等本体描述语言提供一个程序开发环境,并配有较完整的对本体进行解析、存储、推理和查询的函数调用和处理接口[4].Jena包含RDF模型、SPARQL查询语言、推理引擎、文本存储和关系型数据存储以及本体子系统这5个接口[5].本文的移动应用领域本体将采用Jena自带的基于自定义规则的推理机,Jena推理机结构[6]如图1所示.在开发推理应用程序时,首先,要使用模型工厂类(Model Factory)创建相应类型的本体模型,并读入本体文件信息.再用该类

图1 Jena推理机结构

注册并创建推理机(Reasoner),将推理规则加载到推理机中.接着把该推理机和需要进行推理与查询的本体模型绑定得到一个具有推理机制的模型对象(Inf Model).之后,利用SPARQL查询语句对该模型对象进行查询处理,不仅能得到本体模型本身包含的数据信息,还能得到通过规则推理出的隐藏信息.

2 移动应用领域本体建模

虽然研究领域与具体工程的不同造成构造本体的标准不尽相同,但是大多数领域本体建模都采用1995年T.R.Gruber提出的“清晰、一致、可扩展性、编码偏好程度最小、本体约定最小”这5条指导本体构造的基本原则[7].领域本体的一般构建过程[8]为:①确定领域本体的范围和对象;②选择本体形式化描述语言描述并表示;③选择有效的本体开发工具;④对领域本体进行内容分析和详细设计;⑤对领域本体进行形式化表示和存储.在本课题研究中,采用Protege4.3建立移动应用领域相关本体模型,以Jena为推理引擎,本体描述语言选择万维网联盟推荐的语义互联网本体描述语言OWL.

2.1 确定本体领域

在移动个性化服务研究领域中,移动上下文是移动环境下描述用户周围的情况(例如位置、时间、同伴、事件、温度等)并且影响到用户需求和行为的各种信息及其变化的集合[9].根据用户自身的属性、用户所处的周围环境,以及用户使用的终端设备的属性可将上下文分为移动用户上下文、移动环境上下文、移动计算上下文这3类[9]:移动用户上下文主要指描述用户状态和行为的相关信息;移动环境上下文主要指用户所处环境的物理信息;移动计算上下文则主要包括设备能力上下文,终端业务上下文、终端环境上下文,以及实时处理并发布从用户上下文和计算上下文中获取的信息.再从网络应用系统的特点来看,移动应用领域本体主要可从服务器、移动终端、用户和时空这4个方面进行本体建模.

2.2 领域本体设计

领域本体核心概念层次体系设计.定义类层次的方法有3种[10]:自上向下法,即先定义领域里最顶层的概念,然后逐步细化概念;自下向上法,即先定义最底层的概念,从那些细小的、具体的概念开始综合成大的概念;混合法,即将自上而下与自下而上结合起来,即先定义那些重要的、显而易见的概念,然后分别向上或向下进行归纳和演绎.根据2.1节中对本体领域范围的分析,确定该领域的顶级概念为服务器、移动终端、用户、时间、位置,另外将移动设备上的应用独立出来作为一个单独的概念以便于对不同移动应用进行具体研究.本文采用的是自上向下的层次体系构建方法,具体的本体核心概念分析如下:

①服务器又分为文件服务器、数据库服务器、Web服务器和应用服务器.

②移动终端具体还可分为手机、笔记本、平板电脑、POS机和车载电脑.由于移动应用领域主要是针对移动智能设备,故此处留下智能手机和平板电脑两个概念.

③应用的子类本体概念需要根据具体应用的相应需求确定.

④用户、时间、位置无需再细分子类本体概念.

领域本体属性设计. 根据研究范畴的不同,构建的本体类所设置的属性也有所差别.本文仅针对移动应用领域基本需求设计基本属性如下:

数据属性的设计.①由于4种类型服务器的工作内容不同,所以应该考虑到的属性也略有不同.它们具有的共同属性有:软硬件信息:操作系统、硬盘容量、内存大小、CPU主频、CPU型号、GPU频率、GPU型号、硬盘是否可扩充、CPU是否可扩展;网络环境状态信息[11]:连接速率、请求数、并发连接数、并发用户数、事务处理次数、网络带宽、传输时延、丢包率.此外,数据库服务器还包括数据库软件、数据读写率、数据库数目、数据表数目这些属性.

②移动终端的数据属性设计为操作系统、电池容量、电量、CPU核心数、CPU主频、CPU型号、GPU频率、GPU型号、RAM大小、ROM大小、前后置摄像头像素、屏幕尺寸、屏幕分辨率、屏幕ppi、移动设备型号、无线网络带宽、网络制式、网络流量、信号强度.

③用户则包括用户基本信息,如姓名、性别、年龄、身高、体重、职业、收入、教育背景等.

④时间则包含日期、小时数、分钟数.

⑤位置包含GPS坐标属性.

⑥应用定义运行状态属性.

对象属性的设计.①操作.用户和应用是操作关系,用户操作移动终端上的某个具体应用.

②响应.相反的,应用不断对用户的操作做出响应以提供所需的个性化服务,故应用和用户是响应关系.

③请求.移动终端在需要新数据的情况下向服务器发送数据请求,故移动终端和服务器是请求数据关系.

④返回.相反的,服务器将所需数据发送回移动终端,故服务器和移动终端是返回请求数据关系,

⑤运行.应用属于移动终端的一部分.应用以移动终端为平台运行.

⑥时间为.将服务器、移动终端和时间类联系起来,以表示设备时间.

⑦位于.将服务器、移动终端和位置类联系起来,以表示其位置信息.

⑧包含于.应用的子类是属于应用的一部分,和应用不是父子关系而是包含与被包含的关系.由上述分析的本体概念以及概念关系,可得出移动应用领域本体关系模型,具体如图2所示.

图2 移动应用领域本体关系模型

2.3 基于OWL的领域本体建模

根据前文中提出的移动应用领域本体关系模型,采用Protege4.3建立基于OWL的领域本体模型, 采用的OWL API版本为3.4.2.Protege是斯坦福大学为知识获取而开发的一个工具,主要应用于知识的获取,以及现存本体合并和排列,可免费下载,再加上对中文的支持,Protege已经成为目前国内使用最为广泛的本体编辑工具[12].建立基于OWL的移动应用领域本体模型的主要步骤如下所述.

(1)添加类及其层次关系.根据前文中分析设计的移动应用领域本体概念体系,利用Protege创建相应的顶级类及其子类,建立起领域本体类关系基础模型.其中,类对应Protege中的Class,根据6个顶级本体概念创建顶级类Server、Mobile_terminal、User、Application、Time、Location,且所有Class都是OWL:Thing的子类.而Server又进一步细分为File_server、Database_server、Web_server、Application_server这4个子类;Mobile_terminal则包含Mobile_phone和Pad这2个子类;Application的子类需要根据应用的具体内容进行创建.整体的Class结构图如图3所示.

图3 移动应用领域本体Class结构图

(2)添加各本体类属性.①由前文可知,领域本体间主要包括操作、响应、请求、返回、运行、时间为、位于、包含于这8种关系,每个关系都对应Protege中的一个对象属性,即创建operate、respond、request、return、run、timeOn、locatedIn、isPartOf这8个ObjectProperty,并可通过其domain 和 range子属性将定义域和值域设置为本体模型内部的本体类和子类对象,以便于本体模型内部各类通过上述关系进行关联.定义的对象属性结构图如图4所示.

图4 移动应用领域本体对象属性结构图

②由前文中分析得出的各本体类所包含的基本数据属性,在Protege中创建相应的DataProperty,并设置好属性的类型以及其他约束.

(3)添加本体实例.这里以三维虚拟试衣应用为例,用实例填充定义的Class,并定义相应的属性及属性值.该应用主要包含服装、模特、背景3个部分,

图5 移动应用领域实例

所以对应的Application应用类就可以具体细分为Dress、Model、Background这3个子类,并与 Application是isPartOf的关系.然后定义基本的数据属性,Dress类包含性别和风格属性,Model类包含性别和体型(胖、瘦、正常)属性,Background类包含适用时间(白天、黑夜)和风格属性.最后手动创建多个本体类预设实例供后续推理查询使用.创建的本体实例如图5所示.

3 移动应用领域本体模型推理的实现

实现移动应用本体模型的推理主要包含以下两个步骤:首先,在分析应用需要为用户提供何种个性化服务,以及各本体类相互关系的基础上,根据Jena的自定义规则语法编写领域本体推理规则;其次,采用Jena API和Java集成开发工具编写推理程序,利用自定义规则进行推理以得到相应的推理结果.

3.1 推理规则的编写

Jena包含有前向链推理RETE引擎和tabled Datalog引擎两个内部规则引擎,并提供了前向链、后向链,以及混合执行模型[13].Jena推理机是基于规则的推理机,需要在相关规则的支持下完成推理工作.Jena自身包含了一系列针对本体的特点而定义的默认通用推理规则,用于检查概念的可满足性,不同类之间的关系,以及属性的传递、互逆、不相交等[14].

但是,这些默认通用规则无法满足具体领域的一些推理要求.在移动应用领域本体的推理过程中,为了准确定义各本体类之间的关系,可自己制定规则来满足具体要求.这里以三维虚拟试衣应用为例,讲解如何制定自定义推理规则(下文中web表示).

(1)推荐服装规则:依据何种风格适合何种职业再结合用户性别进行推理.

[Rule1:(?u rdf:type web:User)(?u web:job 'stude-nt')(?u web:sex 'false'^^xsd:boolean)(?d rdf:type web:Dress)(?d web:dress_style 'PreppyStyle')(?d web:dres-s_sex 'false'^^xsd:boolean)->(?u web:suggestedDress ?d)]

若User实例u是学生且是女性,Dress实例d的服装风格是女性学院风,则u的推荐服装为d.其他风格服装的推理规则与此类似.

(2)模特匹配规则:依据用户的超重系数判断体型.

[Rule2:(?u rdf:type web:User)(?u web:overweig-ht ?ow)greaterThan(?ow -10.1)lessThan(?ow 10.1)(?uweb:sex ?s)(?m rdf:type web:Model)(?m web:shape 'normal')(?m web:model_sex ?s)->(?u web:suggested-Model ?m)]

若User实例u的超重系数在正负10之间,且Model实例m为正常体型模型,且两者性别一致,则u的匹配模特为m.偏胖和偏瘦体型的推理规则与此类似.

(3)背景匹配服装规则:为服装匹配相应风格的背景.

[Rule3:(?d rdf:type web:Dress)(?d web:dress_st-yle ?s)(?b rdf:type web:Background)(?b web:bg_styl-e ?s)->(?d web:suggestedBg ?b)]

若Dress实例d和Background实例b的风格一致,则b为适合d的背景.

(4)背景匹配时间规则:根据移动设备时间匹配合适的背景.

[Rule4:(?t rdf:type web:Time)(?t web:hour ?h) greaterThan(?h 6.9) lessThan(?h 17.1)(?b rdf:type web:Background)(?b web:isBgDay 'true'^^xsd:boolea-n)->(?t web:match ?b)]

此处以白天(7点至18点)为例,若Time实例t的小时属性h的值处于7到17之间,Background的isBgDay属性值为真,则b为适合此时间点的背景.

3.2 本体推理的具体实现

本课题采用Eclipse开发工具并调用Jena API中的Ontology API、Inference API、SPARQL创建推理程序.为了方便推理规则的统一修改和管理,将3.1节中的推理规则统一写入一个规则文件(web.rules).本课题程序实现的主要功能是根据用户输入的个人信息自动创建User实例,通过Jena推理机和上述3.1节中定义的规则完成以下3个推理行为:①在所有Dress预设实例中推理出与该User实例存在推荐关系的Dress实例;②在所有Model预设实例中推理出与该User实例存在匹配关系的Model实例;③选择一个Dress实例,结合Time实例,推理出与该Dress实例存在匹配关系的Background实例.最后,通过SPARQL查询语句将结果返回给用户.实现上述推理查询过程的主要代码如下:

//创建OWL本体模型

OntModel model=ModelFactory.createOntology-

Model(OntModelSpec.OWL_MEM,null);

model.read("file: web.owl");//读取本体文件

String ruleFile="file: web.rules";

Listrules=Rule.rulesFromURL(ruleFile);

//读取推理规则文件

Reasoner reasoner=new GenericRuleReasoner

(rules);//创建推理机

createIndividual(model,userNameGet,"student",false,163,50,10,timeName);//创建User实例

InfModel inf=ModelFactory.createInfModel

(reasoner,model);//创建具有推理机制的本体模型

getDress(userNameGet,inf);//推理查询得出推荐的服装实例

getModel(userNameGet,inf);//推理查询得出匹配的模特实例

getBg("DressMale1",timeName,inf);//推理查询得出匹配的背景实例

其中,getDress方法的具体实现代码如下:

public static void getDress(String userName,Inf-

Model inf){

String user="CA:"+userName;

//定义查询语句

String queryString="PREFIX CA:

semanticweb.org/fd/ontologies/2015/3/Web#>"

+ "SELECT ?dress "

+"WHERE {"

+ user

+" CA:suggestedDress ?dress."

+ "}";

Query query=QueryFactory.create(queryString);

//创建查询对象

QueryExecution qe=QueryExecutionFactory.cre-

ate(query, inf);//针对本体模型inf执行查询条件

ResultSet results=qe.execSelect();//获取查询结果

System.out.println("推荐服装:");

dealResults(results,"dress");//打印查询结果

qe.close();

}

getModel()和getBg()方法的实现过程同上述getDress()方法类似,此处不再赘述.

4 实验结果

运行上述程序,输出结果如图6所示.

图6 推理程序运行结果

由3.2节中程序可知,其根据用户输入的个人信息创建了一个姓名为Alice,身高163cm,体重50kg,性别为女,职业为学生的User实例,且当下时间假设为上午10点.在此之前,本课题制定了为学生推荐风格为学院风和田园风服装的推理规则,同时在Protege中创建了相应风格的Dress实例.由上述结果可知,该程序通过事先定义好的规则能够在众多实例中推理出适合Alice的服装以及模特,推理结果符合预期.

5 总结

本文着重研究了本体建模及其推理机制在移动应用领域中的应用,建立了移动应用领域OWL本体模型,采用Jena引擎和自定义规则进行推理分析,发现原始本体模型中隐含的信息,以达到通过各种上下文准确判断用户对移动网络服务的需求以提供其真正感兴趣的、符合约束的推荐内容的目的,为提高移动个性化服务质量提供了一种可参考的解决方案.但是,本文研究的移动应用领域所涉及的硬件终端设备只涵盖服务器和移动设备,且本体类的属性只考虑了基本属性,本体模型的完整性和合理性,以及推理机制的准确性还有待进一步提高.其在实际应用中,需要根据具体要求对本文设计的本体模型中的类、数据属性、对象属性等进行必要的修改以更好地解决实际问题,实现未来移动通信以用户为中心的服务模式与创新,提高用户满意度.

[1]Pan B,Wang XF,Song E,Lai CF,Chen M.Camspf:Cloud-Assisted mobile service provision framework supporting personalizeduser demands in pervasive computing environment. In:Proc.of the 9th Int'l Wireless Communications and Mobile ComputingConf.(IWCMC)[C].Sardinia:IEEE,2013.649,654.

[2]王艳妮,刘刚.地质灾害领域本体的研究与应用[J].地理与地理信息科学,2011,27(6):36-40.

[3]Tom Gruber.A translation approach to portable ontology specifieations[J].Knowledge Acquisition,1993,5(2):199-200.

[4]Jena 2 Ontology Api.http://jena.sourceforge.net

[5]张猛.基于Ontology的旅游黄页语义检索研究与应用[D].北京:北京工业大学,2013.

[6]http://jena.apache.org/documentation/inference/index.html#rules

[7]T.R.Gruber.Towards Principles for the Design of Ontologies Used for Knowledge Sharing[J].International Journal of Human Computer Studies,1995,5(43):907-928.

[8]马朋云.本体公理推理及其在交通领域中的应用[D].大连:大连交通大学,2010.

[9]孟祥武,王凡,史艳翠,张玉洁,等.移动用户需求获取技术及其应用[J].软件学报,2015,(3):439-456.

[10]黄志聃.利用protege构建新媒体领域本体的探索[D].武汉:武汉理工大学,2013.

[11]李小鱼.Web服务器性能测试研究[D].昆明:昆明理工大学,2013.

[12]樊小辉,石晨光.本体构建研究综述[J].舰船电子工程,2011(6):15-18,53.

[13]Kim J Y,Jeong D W,Balk D-K.Ontology-based semantic recommendation system in home network environment[J].IEEE Transactions on Consumer Electronics, 2009,55(3):1178-1184.

[14]Hoser B,Hotho A,Jaschke R,et al.Semantic network analysis of ontologies[C].Proceeding of ESWC 2006,LNCS 4022.Berling:Springer,2006:514-529.

(责任编辑:王前)

Reasoning Research of Ontology Model for Mobile Application Domain Based on Jena

ZENG Qi,CHEN Guo-dong

(CollegeofPhysicsandInformationEngineering,FuzhouUniversity,Fuzhou,Fujian350116,China)

Aiming at how to provide high quality mobile personalized services, a reasoning mechanism of the ontology model of mobile application domain based on Jena is proposed in this paper. Firstly, the ontology model of mobile application domain expressed by Web Ontology Language OWL is built based on analyzing mobile context and the characteristics of web application. Secondly, taking 3D virtual fitting application for example, the Jena reasoning engine and custom rules are used for the reasoning of mobile application ontology model and discovering the hidden contact between ontology classes. The experimental results show that the mechanism can improve the quality of mobile personalized services at some level.

mobile personalized services; mobile application; ontology modeling; Jena; ontology reasoning

2010-06-10

福建省自然科学基金项目“移动环境下基于几何与图像的混合绘制方法研究”(2013J05090)

曾琪,女,福建宁德人,硕士研究生.

TP181

A

1008-7974(2016)05-0010-06

10.13877/j.cnki.cn22-1284.2016.10.004

猜你喜欢
实例本体服务器
眼睛是“本体”
服务器组功能的使用
通信控制服务器(CCS)维护终端的设计与实现
PowerTCP Server Tool
基于本体的机械产品工艺知识表示
计算机网络安全服务器入侵与防御
完形填空Ⅱ
完形填空Ⅰ
专题
Care about the virtue moral education