1、基于上下文感知计算的智能门户研究摘要:针对现代企业门户个性化、智能化的需求,将语义 Web 技术、上下文感知技术与门户技术结合起来,设计了一个可用于建立智能门户系统的上下文感知的模型视图控制器 (MVC)框架 CA-MVC。通过分析 MVC 模式的特点,定义了时序上下文本体,并详细阐述了上下文服务器中上下文获取模块,上下文推理模块以及上下文服务模块的功能,满足了通过门户为用户提供智能服务的需求,并在最后结合在工作流门户系统的应用给出了一个实例。关键词:上下文感知;语义 Web;门户An Intelligent Portal Based on Context-aware ComputingAbs
2、tract: In order to satisfy the personalization and intelligent support requirements for portal development, semantic web based context-aware computing and portal technologies are combined together into an intelligent portal structure. As the core of this structure, the framework of CA-MVC, which is
3、based on context-aware computing and model-view-control pattern, is introduced in detail. The temporal context ontology is also given and main functions of context acquisition, context inference and context service modules are explained. Finally, a case study is presented.Key words: Context-aware; S
4、emantic Web; Portal0. 引言近十年来,随着网络技术的是不断发展,越来越多的应用已经从桌面程序转移到 Web 程序上来,SUN 公司当年“网络就是计算机”这句响亮的口号已经不再是一个理念而变成了一个现实。网络不仅提高了人们的工作效率,而且更加的改变了人们的工作方式。门户作为一种典型的网络应用框架,它将各种应用系统、数据资源和互联网资源集成到一个信息管理平台之上,并以统一的用户界面提供给用户,使企业可以快速地建立企业对客户、企业对内部员工和企业对企业的信息通道, 使企业能够释放存储在企业内部和外部的各种信息。而从最终用户的角度看,门户就是一种 Web 站点。当前,门户系统已经有
5、了很多的实现产品,从开源的JetSpeed 到商用的 IBM WebSphere Portal Server,他们基本上可以满足用户功能上的需求,甚至可以进行一些简单的配置,如:定制颜色及布局,定制内容版块等。但从系统的角度来说,这种配置要被动的等待用户提供知识,是一种低级别的配置。因此,我们提出了一个“智能门户”的概念,它引入了上下文感知相关技术,使门户系统可以主动的去发现知识,并为用户提供服务,实现高级别的配置。文章结构如下,第 2 部分介绍与本文研究紧密相关的两个基本概念以及它们的理论基础与相关技术研究现状;第 3 部分介绍本文的核心,基于 Context-Aware 的 MVC 框架,
6、CA-MVC;第 4 部分给出工作流门户环境下的应用实例;第5 部分进行了展望和总结。1. 基本概念1.1 上下文服务器上下文服务器是上下文感知系统架构的核心,它对系统上下文信息进行处理并对外提供服务。所谓上下文,是指那些用于表示实体状态特性的信息。这里的实体可以是人机交互中相关人、地方、物理或计算对象等 1。所谓上下文感知,是指应用系统可以自动利用环境信息改变用户界面和提供最大程度的计算服务的能力 1。上下文感知计算是普适计算的一个重要研究领域,历经多年的发展,取得了一些研究成果。比较典型的有,Caswell 和 Debaty 开发的软件框架CoolTown2,它通过底层构架提供抽象组件和服
7、务发现机制来帮助开发人员创建支持环境感知的应用系统,但该框架不支持环境解释和存储功能,并且只使用了较简单的服务触发机制。Dey 推出的支持环境感知应用系统开发框架Context ToolKit3,该框架采用了面向对象的方法,提供了环境信息的底层收集、转化组合和分发机制,但它没有提出一个通用的上下文信息的描述方法来实现上下文知识的共享和推理。到现今为止,大多数上下文感知系统缺乏具有时间序列特性的上下文模型和相关推理规则的支持,难以抽象获取复杂的环境信息。这也是本文在设计CA-MVC 框架的上下文服务器时重点要解决的问题。1.2 上下文本体上下文本体是对上下文信息描述的建模,它是基于语义 Web
8、技术的上下文感知系统进行知识发现的主要载体。所谓语义 Web,是对当前 Web 的扩展,它将信息赋予定义良好的含义,便于计算机与人之间的协同工作。在语义 Web 的体系结构中,XML、RDF、本体(Ontology)用于表示 Web 信息的语义,是体系的核心和关键 4。所谓本体,是某个领域内的概念和概念间关系的集合,反映了人们对此领域的知识的理解。OWL,即 Web Ontology Language,结合了 XML 的形式和 RDF对于资源之间关系的描述,显示的表达了本体的内容。本文采用上下文本体来描述 CA-MVC 中的上下文信息,这也是大多数上下文感知系统通常选用的上下文模型。2. 基于
9、 Context-Aware 的 MVC 框架 CA-MVC大多数门户系统都是建立在一种 MVC 框架的具体实现的基础之上开发出来的。用户在使用这种基于 MVC 框架的系统的过程中,action 是此工作环境下用户最基本的行为单元,也是用户与服务器交互的唯一渠道。因此,在一个上下文感知的智能门户系统中,具备对引发 action 时的上下文信息进行分析从而使系统主动为用户提供服务是本文的主要研究方向。结合上一节叙述的几种技术的优点,本文提出了一个基于 Context-Aware 的 MVC 框架,CA-MVC。浏览器控制器视图 模型业务逻辑Action Listener一般上下文时序上下文 初级
10、上下文高级上下文条件 1 条件 3服务 1条件 2服务 2 服务 n推理引擎规则 1 规则 n上下文获取模块上下文推理模块上下文服务模块用户 应用服务器 上下文服务器Event ListenHTTPrequestHTTPresponseForwardSetSetGetSend上下文存储库MatchStore图 1 CA-MVC 体系结构如图 1,用户通过浏览器触发门户页面上的一个事件,这个事件会引发一个 action,然后,在 action listener 的执行过程中会将与 action 有关的上下文信息发送给上下文服务器的上下文获取模块,上下文获取模块将这些初级上下文信息存入上下文存储库
11、中,并通过推理引擎的推理,得出高级上下文,高级上下文会与系统定义的服务条件进行匹配,从而对是否选用服务进而影响Model 做出决策。由此我们可以看出,上下文服务器是 CA-MVC 的核心,主要由三个部份组成:上下文获取模块,上下文推理模块与上下文服务模块。以下便分三部份对这三个模块加以介绍:2.1 上下文获取模块(Context Acquisition)上下文获取模块的主要功能是在用户的工作环境中采集初级上下文信息,并将它们存入上下文存储库中。初级上下文信息在 CA-MVC 框架中主要分为两种类型:一般上下文与时序上下文。一般上下文是指用于描述用户的工作环境的基本上下文信息,比如,用户概况,时
12、间,地点,计算资源等。时序上下文是 CA-MVC 的一个重要组成部份,它特指用于描述用户在 MVC 框架中所引发的一组 action,由于其与时间有紧密的关联,所以称其为时序上下文。时序上下文有如下的形式化定义:Temporal Context = ,即基本时序上下文的一个实例是一个四元组,其中,A 代表 Actions,表示门户系统所有可能引发的动作集合;U 代表 Users,表示门户系统的用户集合;T 代表 Time,表示一个引发时间,P 代表 Position,表示引发位置。下面的 OWL 程序片段是对 CA-MVC 的时序上下文本体的描述,它对上面的形式化定义完全相同:在实际的应用当中
13、,可以对 Action 类的定义进行继承和扩展,以适应不同的需求。2.2 上下文推理模块(Context Inference)上下文推理模块的主要功能是将上下文存储库中的初级上下文,通过定义的规则库进行推理,从而得到高级上下文。高级上下文是指用于描述用户行为的一些深层次的信息,如用户的偏好,用户的习惯等。它是上下文服务器对外界提供服务的依据。在上下文本体模型的基础上,利用本体自身的推理机制,并结合用户定义的推理规则,可以构建出上下文本体推理引擎。在本框架中,推理机制主要划分为两种类型:一阶逻辑推理与时序逻辑推理。一阶逻辑推理:一阶逻辑推理是一种典型的基于规则的推理方法。该方法的推理机制非常简单
14、,利用谓词构建静态的推理规则库。当进行推理时,首先向引擎输入已知的初级上下文信息,通过一致性验证后,与规则进行比较,如果相同,那么给出对应规则结果的高级上下文信息,否则提示没有成功 5。例如:Context1 Context2 Context3由于 CA-MVC 采用本体建模的方式来描述上下文信息,本体的描述逻辑本身就具有一阶逻辑推理的特点,比如:现在上下文存储库获得了这样一条初级上下文,Temporal Context ,它表示 Wang 在 2007-6-1 18:2 于 202.120.38.223 作了logon 动作。如果还有一条一般上下文信息,它表示 202.120.38.223
15、是上海分公司的 IP 地址,则系统可以直接推理出 Wang 于 2007-6-1 18:2 在上海分公司。时序逻辑推理:时序逻辑推理并不是简单的依靠谓词对初级上下文信息组合来进行推理的一种机制,它通过观察上下文存储库中某种或几种上下文信息在一段时间内的记录,跟据上下文发生的时间序列来寻找规律,从而得出高级上下文信息。在 CA-MVC 中,典型的具有时序特征的上下文信息就是 action,通过在一段时间内观察一组 action 的上下文信息,可以得到用户在这一段时间内的行为特征。比如:在一段时间内,上下文存储库记录了用户 Wang 每次登录所做的所有 action 序列,推理引擎跟据这些上下文信
16、息得出 3 个出现次数最多的action,从而得出 Wang 最近一段时间内优先级最高的 3 个活动内容,并根据活动类型,由此推理出 Wang 这一段时间内的重点工作内容。2.3 上下文服务模块(Context Service)上下文服务模块的主要功能是把由上下文推理引擎推理出来的高级上下文信息与系统制定的作为服务条件的上下文信息进行匹配,上下文服务器把匹配的结果作为对外界提供服务的依据 6。简单匹配:在一般情况下,由一阶逻辑推理得出的高级上下文信息一般相对简单,使服务设计者可以方便的将触发服务的条件设置为几条上下文信息的逻辑运算组合,通过这个运算的结果是 true 或 false 来决定是否
17、触发服务。例如:IF ( Context1 Context2) ( Context3 Context4)THEN do Service1本体匹配:由于推理引擎中存在时序逻辑推理,它推理出来的高级上下文信息在与作为服务条件的上下文信息进行匹配时往往不能用“是”或“否”的标准来衡量,所以采用基于人工智能的本体匹配算法。系统通过对事先制定好的作为服务条件的上下文信息本体实例与上下文存储库中存储的上下文信息本体实例进行语义匹配,并计算出相应的匹配级别,最终用以决策服务的调用。匹配级别一共定义了 5 种:Perfect, High, Middle, Low, Fail。规则如下:Matching_Lev
18、el =Perfect: sc.class = cc.class sc.property = cc.propertyHigh: sc.class isSubClassOf cc.class sc.property = cc.propertyMiddle: sc.class isPartOf cc.class sc.property = cc.propertyLow: sc.class isPartOf cc.class sc.property isPartSame cc.propertyFail: sc.class cc.class sc.property cc.property其中 sc 表
19、示 Stored Context,即存储的上下文本体实例;cc 表示Conditioned Context,即作为条件的上下文本体实例。从规则可以看出,Perfect 级别表示存储的上下文信息与条件要求的上下文信息完全相同;High 级别表示存储的上下文信息可以是条件要求的上下文信息的子类的实例,但属性值需要相同;Middle 级别表示存储的上下文信息只满足了要求的上下文信息的一部份,但属性需要相同;Low 级别表示存储的上下文信息只满足了要求的上下文信息的一部份,而且属性值也只是部份相同;Fail 级别表示完全不相同,即匹配失败。当作最终的决策时,可以由服务设计者决定当匹配度隶属于哪个级别时
20、,或隶属度到达某一定值时才触发服务。3. 应用实例本节将结合 CA-MVC 在上海交通大学 CIT 实验室工作流门户系统中的应用,给出一个简单并且典型的例子,其目的用以说明 CA-MVC 的基本工作过程。工作流门户是企业用户访问工作流系统、获取工作流程运行状态的重要途径。它的主要目标是让用户可以方便的操作工作流系统中分配的任务,以改善业务过程,减少企业的运营成本。将 CA-MVC 框架应用于工作流门户系统,可以使门户系统通过观察用户的历史行为(Actions) ,主动为用户提供智能化的服务,从而进一步帮助企业成员提高工作效率。下面便以本工作流门户系统中的一个实例来说明:工作流门户系统的核心功能
21、之一就是为用户提供一个任务列表,使用户可以打开任务,并在任务完成后提交任务。通常在门户首页,都会为用户提供一个将要到期的任务列表提示,这个提示是根据一个设定的提前天数,从任务列表中取得。上下文服务器可以根据一段时间内用户提交任务的状况来改变这个提前天数。如下图所示:图 2 工作流门户系统登录界面实例搭建在 Jetspeed Portal 平台上,采用 JSF 技术作为 MVC 的具体实现,因此显示任务到期提示的 portlet 页面有对应的 DueTaskListFormBean 作为Backing Bean,其中有一个域为 earlyDays,表示提前天数,默认为 3 天。推理机采用 Jen
22、a(Racer) ,支持本体的一阶逻辑推理。对库中的上下文信息本体的查询采用 RDQL(RDF Data Query Language)实现。系统的上下文存储库中已保存了下列上下文信息:submit Doc Activity 12007-6-2 18:00:00Wang每次用户做提交任务的 Action 时,submitActionListener 都会向上下文服务器写入上下文信息,设 t1 大于 sa1 的结束时间:根据推理机的推理,Context1(SubmitAction, sa1, Endtime, 2007-6-2 18:00:00) Context2(SubmitAction,sa
23、1, Startat, 2007-6-2 20:00:00) Context3(Work, job1, Is, overtime)可以得出 sa1 所属的工作 job1 被推后完成这样一条高级上下文信息。通过一段时间对上下文信息的收集,可以得到很多类似的上下文信息,有的工作被按时完成,而有很多工作被推后完成。上下文服务器提供了一个用以改变任务列表提示的提前天数的服务chageEarlyDaysService,采用简单触发模式,触发条件为:IF 50% Jobs (where job.endtimecurrenttime-15days and job.owner=Wang) are overti
24、meTHEN do chageEarlyDaysService服务 ageEarlyDaysService 所做的唯一一件事就是更改DueTaskListFormBean 的 earlyDays 为 7 天。即系统当发现用户 Wang 近 15 天内有 50%的工作都 overtime 的话,系统会主动提前更多天为用户提示将要到期的任务列表。最终结果如下图所示:图 3 最终结果图4. 结论与展望本文针对智能门户这个课题,设计了一种基于 Context-Aware 的 MVC 框架,它结合 MVC 模式的特点,提出了时序上下文本体与时序逻辑推理,以及其采用的本体匹配的方式对服务做出决策。这个框架的优点是,在现有 MVC 的基础之上构建,不需要重新进行整体设计,只需要在门户系统所采用的 MVC 实现的基础上,增加上下文服务器部份,并设计好接口,从而完成对上下文感知的支持。在 CA-MVC 的具体应用的过程中,设计一个成熟的基于本体的时序逻辑推理算法是开发推理引擎的关键,也是难点。这方面的研究将作为我们下一步的工作内容。