汶 博,齐晓飞,吴长枝,张 帆
(1. 西安测绘研究所,陕西 西安 710054;2. 陆军参谋部信息保障局,北京 100042;3. 地理信息工程国家重点实验室,陕西 西安 710054;4. 61363部队,陕西 西安 710000)
随着移动互联网、物联网、无线定位以及智能终端的普及与应用,以位置为基础的地图服务迎来了重大发展战略机遇。传统以模板为核心的导航地图产品,由于数据更新不及时、目的性不强和表示内容单一等难以满足用户个性化需求[1]。因此,基于情境的智能制图理论逐渐引起人们重视,它通过分析用户周围情境信息,挖掘潜在位置服务需求,进而筛选、推理获得恰当信息并主动推荐给用户[2-4]。相比传统导航地图,它提出了一种新的服务模式:由用户自主判断、获取需求信息转变为位置地图根据实际情境实时、实地推送[5];由显示一般性查询信息转变为显示不同信息背后的深层次关系[6]。
目前,情境在位置服务中的应用还是一个较新课题,特别是关于情境信息的获取、关系模型的构建以及位置服务需求的推理还缺少系统研究。Guoray Cai(2006)[7]等通过对比分析基于模版与基于行为情境建模的区别,指出基于模版建模有许多缺陷;A Schmidt(2012)[8]从系统实现的角度,提出5条关于情境感知系统的交互设计启示;李伟(2014)[9]以用户为中心,研究用户获取知识的多维情境,并建立其概念模型和服务流程模型。为了简化位置地图情境模型的复杂性,本文作者将情境在位置服务中的应用分为建模、推理与表达三部分,并通过分析活动与情境相互关系,建立基于活动的位置地图情境模型[10]。而本文就是在此基础上,构建位置地图情境三层推理规则模型,将已经建立的情境模型与位置地图表达关联起来,形式化描述推理规则及解析运行流程,并以用户去机场登机为例,实验验证本文提出的情境推理方法。
基于活动的位置地图情境推理基本原理是依据构建的情境模型,结合实时获取的情境信息,通过一定的方法获取用户行为后,发掘与之相关联的情境信息,并综合一定的算法、经验乃至常识,推理出潜在用户需求。因此,该规则模型分为三层:第一层是根据当前的情境信息判断用户活动,即活动匹配,主要是获取用户的行为、目的;第二层是依据前面匹配的活动,在情境模型中查询并提取与之相关的情境信息,即情境信息提取,主要是把与当前情境相关的情境信息提取出来,避免大量无关因素对情境判断、推理的影响;第三层是根据用户当前活动和与之相关的情境信息,综合判断用户的需求,即综合推理,主要是描述不同层次活动对情境推理结果产生的交互影响,防止只考虑单一层次的活动对情境推理造成的片面理解。三层推理模型如图1所示。
图1 位置地图情境三层推理模型Fig. 1 The three layers context reasoning model of location map
按照活动理论[11]将位置地图活动匹配分为活动匹配、行为匹配和操作匹配3个层次,前一层次的匹配结果是后一层次判断的基础;每一层次匹配的方法受当前层次活动类型的限制。其中,活动分为流程活动、非流程活动和复合活动三类,行为分为导航、定位、查询、识别和事件检查五类,操作分为叠加兴趣点、叠加时间距离、叠加特殊场景、叠加语义位置和叠加事件五类[12]。假设当前活动为[(活动A),(行为2,行为4),(操作1,操作5)],如图2所示。
图2 三层活动匹配的关系及流程(黑色为当前活动对象)Fig. 2 The relationship and process of three layers activity matching(Blacks are current activity objects.)
三层匹配流程如下:
1)根据活动匹配中的活动判断,获取当前活动A;
2)通过活动匹配中的活动分解,将活动A分解为5种行为类型:FA(行为1,行为2,行为3,行为4,行为5);
3)根据行为匹配中的行为判断,获取当前行为2和行为4;
4)根据行为匹配中的行为叠加判断当前行为不止一种,将行为2与行为4叠加;
5)通过行为匹配中的行为分解将当前行为分为5种操作类型:FO(操作1,操作2,操作3,操作4,操作5);
6)根据操作匹配中的操作判断,获取与行为2与行为4对应的操作1与操作5;
7)通过操作叠加判断当前操作不止一种,将获取的操作叠加,得到当前活动为[(活动A),(行为2,行为4),(操作1,操作5)],活动匹配结束。
依据活动匹配的3个层次,提取模型包括与当前活动相关、与当前行为相关和与当前操作相关三类。同样假设当前活动为[(活动A),(行为2,行为4),(操作1,操作5)],如图3所示。
图3 三类情境信息提取的关系及流程(黑色为当前活动对象)Fig. 3 The relationship and process of three types contextual information extraction (Blacks are current activity objects.)
三类提取流程如下:
1)根据活动匹配获得的活动A及已经建立的关系模型(活动与情境信息),提取相关情境信息;
2)根据行为匹配获得的行为2、4及已经建立的关系模型(行为与情境信息),提取相关情境信息;
3)根据操作匹配获得的操作1、5及已经建立的关系模型(操作与情境信息),提取相关情境信息。
综合推理包括活动推理、行为推理和操作推理三级,活动推理是第一级,行为推理是中间层,操作推理是第三级。三级推理逐级控制,避免多次推理带来的位置服务结果重复,有效减少或检验推理冲突。同样假设当前活动为[(活动A),(行为2,行为4),(操作1,操作5)],如图4所示。
图4 三级综合推理的关系及流程(黑色对象为当前活动)Fig. 4 The relationship and process of three levels integrated reasoning(Blacks are current activity objects.)
三级推理流程如下:
1)根据前两步获得的活动A和与之相关情境信息,依次进行活动开始、活动结束、活动进行和活动中止推理,只有前一步推理成立,才进行下一步推理;
2)根据前两步获得的行为2、4和与之相关情境信息,若行为类型为导航,则依次进行行为开始、行为结束、行为进行、行为中止和行为切换推理;若是其他行为,则只进行行为开始和行为结束两种推理。
3)根据前两步获得的操作1、5和与之相关情境信息,选择对应操作类型的情境推理方法。
产生式表示法[13]描述为:“条件→结果”。其优点是结构简单、灵活,能够描述各种不同形式的知识,缺点是推理效率较低、不直观。分析位置地图情境推理的特点可知:位置地图情境信息种类样式多变,情境信息之间的关系复杂,这正是产生式表示法的优势所在。同时位置地图强调的时效并不等同于推理效率,一个是时间问题,一个是复杂度问题。另外,产生式表示法的另一个缺点是不直观,由于用户不可能建立或修改规则,因此这条缺点也不会对情境推理造成负面影响。所以,本文利用产生式表示法描述位置地图情境推理规则。
一个产生式的情境推理规则包括条件语句和执行语句两部分。其中,条件语句描述推理规则的判断依据,主要通过情境信息的属性、状态、功能以及不同情境信息关联形成的函数值进行评判;执行语句描述推理规则的作用结果,主要执行位置地图表达和不同推理规则之间的相互衔接。在一条推理规则中,条件语句和执行语句的数量并不唯一,多条条件语句的关系包括3种:①顺序关系,即一条条件语句是另一条条件语句的前提,只有上一条判断成立后,才执行下一条;②并列关系,即多条条件语句并不存在顺序关系,需要同时满足这些条件才能运行执行语句;③选择关系,即在多条条件语句中,只要满足任意一个或几个,就可运行执行语句。另外,多条执行语句的关系包括2种:顺序关系,即上一条执行语句结束后,才执行下一条,上一条语句的执行结果是下一条语句的参数;并列关系,即多个执行语句间不存在相互关系,都需要执行完成。其运行机制如图5所示。
图5 产生式情境推理规则的运行机制Fig. 5 The operating mechanism of context reasoning rules based on producing representation
1)条件语句基本组成
情境推理的条件语句由变量、常量、关系运算符和操作函数4种基本语句组成,见表1。
表1 条件语句基本组成Tab. 1 The basic composition of the conditional statement
2)条件语句构建方式
在4种基本语句中,若条件语句只包含一次判断,根据排列组合规律可得构建方式见表2。
表2 条件语句构建方式Tab. 2 The way to build the conditional statement
1)执行语句基本组成
执行语句由一个或多个动作组成,每一个动作即可以是情境推理的最终结果,也可以是另一条规则的判断依据,见表3。
表3 执行语句基本组成Tab. 3 The basic composition of the execution statement
2)执行语句构建方式
6种执行语句的作用特点不同,其构建方式也存在差异,见表4。
表4 执行语句构建方式Tab. 4 The way to build the execution statement
情境推理的解析与运行是将已经建立好的情境推理规则转变为能被计算机识别和理解的程序代码的过程与方法,包括条件语句解析和执行语句运行两部分。在解析过程中,基本语句中的参数是随着周围环境的改变而实时变化的,解析每一条基本语句,必须要获取当前状态下的情境信息,即基本语句参数;在运行过程中,情境推理结果去向不同,执行语句的格式、要求也各不相同,进而对应着不同执行语句。图6描述了位置地图情境推理的解析与运行流程。
图6 推理规则的解析和运行流程Fig. 6 The analytical and operational processes of context reasoning rules
1)检查条件和执行语句是否存在语法错误;
2)把条件语句分割成基本语句,并分级与排序;
3)实时提取基本语句中参数信息,即情境信息;
4)依次解析基本语句,并将其生成程序代码,加入运行代码序列;
5)判断条件语句解析结果,若为“真”,则继续执行语句,若为“假”,则解析结束;
6)将执行语句排序,确定执行语句的运行顺序;
7)查找执行语句对应的情境推理规则或表达模块接口;
8)依次解析执行语句,并将其生成程序代码,加入运行代码序列;
9)判断执行语句解析结果,若为“真”,则将执行结果传递给下一条情境推理规则或情境表达模块,若为“假”,则返回空值。
本文以用户去机场登机为例,模拟实际用户导航去机场可能会出现的各种情境,演示验证前面提出的推理方法,内容包括事件检查情境、距离时间推断情境、兴趣点推荐情境、特殊场景推荐情境和语义位置判断情境五部分。
基本静态信息通过图7中的区域1获取,主要描述用户的固定信息,与用户的主观意愿关联很大,当用户选择完善这些信息,情境模型可以提供更精准的位置服务,否则就会按照一般的用户模型进行推理计算;动态输入信息通过图7中的区域2获取,主要是为了识别、判断和获取情境模型,用户需要与位置底图情境所完成的交互性操作;实时情境信息是通过图7中的区域3获取,通过对各种情境信息的模拟,获取当前条件下的情境信息。
图7 位置地图情境信息获取区域划分Fig. 7 The region division of location map context information acquisition
为了体验不同位置地图情境服务结果的差异,设计A、B两组情境,情境信息预设见表5。
表5 用户与活动的预设信息Tab. 5 The preset information for users and activities
①A组情境:飞机起飞时间为15:00。
②B组情境:飞机起飞时间为14:20。
假设,下午13:00余名输入活动名称、行驶方式、位置和时间等信息,驾驶私家车出发,启动机场登机情境。登机情境规划导航线路并引导用户前行。两组情境流程如图8所示。
图8 两组去机场登机演示情境流程图Fig. 8 The flow chart of two simulation contexts to the airport for boarding
情境推理演示事例如图9所示。
图9 机场登机情境演示事例Fig. 9 The simulated context cases of airport boarding
1)特殊场景推荐情境事例
【QT1】13:02分,A组情境发现前方道路岔路口立交桥与用户距离小于20m(阈值),满足叠加特殊场景情境。于是,触发叠加要素模板,提取立交桥图片,并叠加到相应的导航路径上推荐给用户,结果如图9a所示。
2)距离时间推断情境事例
【QD1-1】13:05分,A组情境查询前方“紫金山路→航海路→机场高速”出现重度拥堵。经过情境推理计算剩余距离、乘车平均速度、当前天气、交通等情境信息对速度的影响及时间限制等信息,推断出“原路线超出用户规定时间,重新规划导航线路”服务信息。于是,触发叠加要素模板,将得到的时间距离服务信息推荐给用户,结果如图9b所示。
【QD1-2】13:08分,A组情境用户行驶在新的导航线路上(红色线路,GIS模块提供),结果如图9c所示。
3)语义位置判断情境事例
【QY1】13:15分,A组情境用户查询定位信息,A组情境经过情境推理获取当前位置(这里用图上坐标位置模拟)、周围兴趣点及预计还需要的时间(红色字体部分)等语义位置服务信息。于是,位置地图情境触发叠加要素模板,将得到的语义位置服务信息推荐给用户,结果如图9d所示。
4)事件检查情境事例
【QS2】13:31分,B组情境查询到“飞机晚点1小时”事件,B组情境经过情境推理发现用户剩余时间还很充分,足够在截止时间内到达机场。因此,根据时间距离情境判断获得“飞机晚点1小时,时间充裕,请安排好时间”的服务信息。于是,位置地图情境触发叠加要素模板,将得到的时间距离服务信息推荐给用户,并把到达终点的时间推后1小时,结果如图9e所示。
5)兴趣点推荐情境事例
【QX1】13:37分,A组情境查询到用户周围存在兴趣点,A组情境经过情境推理发现用户时间还很充裕,因此,兴趣点推荐情境将用户周围的兴趣点排序,并根据用户的爱好及距离当前位置的远近对其排序,将最符合用户偏好的兴趣点“鼎极金牌烤肉”列为需要重点表达的信息。于是,位置地图情境触发叠加要素模板,提取兴趣点“鼎极金牌烤肉”的图片与属性信息,并结合其他满足推荐条件的兴趣点推荐给用户,结果如图9f所示。
通过以上演示实验,分析得到如下结果:
1)情境将用户的一个活动(如去机场登机)视为整体,这样,它把很多看似不相关的信息融合在一起,在综合判断用户需求后,能够把符合当前环境的最恰当、有效位置服务信息及时推荐给用户,并过滤掉传统导航地图的大量次要信息,位置服务结果更加准确、清晰。
2)情境如同活动,存在粒度大小之分。有的情境(如特殊场景推荐情境事例)逻辑结构简单,推理计算量小、效率高,现在的部分导航地图产品也能实现类似功能,基于情境的地图服务在此条件下并不具备明显优势。
3)当用户活动遇到特殊条件,一些计算复杂的情境(如距离时间推断情境事例)被触发,此时,基于情境的地图服务能够提供传统导航地图所不具备的深层次信息,服务更加智能化、人性化。
4)相比传统导航地图往往通过几种固定模式提供位置服务,基于情境的地图服务是根据推理算法实现的,其基础是后台丰富的、实时的情境信息数据库,通过改进与数据分离的推理算法,可以增加更多的服务内容,拓展更便捷。
目前,基于位置的信息服务已经成为现在服务业的重要构成之一,建立以情境为中心的位置服务推理与表达机制对于增强用户对地图的识图和用图效率意义明显。情境并不是一个新概念,在心理学、人类学领域早有应用,在位置服务领域却由于相关技术发展的限制没有得到充分重视,但今天这些问题将不复存在。为此,本文在前期已经建立了位置地图情境模型的基础上,利用活动理论,建立了位置地图情境三层推理规则模型,并以用户去机场登机情境为例,进行实验验证,取得了较好的结果。
由于用户实际遇到的情形可能并不只本文提出的五种,为进一步提高情境三层推理规则模型的应用效果,作者将继续开展以下两个方面的研究:一是增加更多的情境推理规则,本文活动匹配的成功性在很大程度上还是依赖于用户的选择操作,情境推理的结果也被限定在五个方面,想要添加更多的服务内容,还需要建立更多的情境推理规则;二是应用更多不同的情境实例,检验情境模型的可用性凭借一两个例子是不够的,理论与经验建模具有很强的主观性,经过大量的实验后也有助于通过实例修改情境的应用过程,最终生成一个较为合理的位置地图情境应用方案。