基于GimbalTM的轻量级高校图书馆情景感知推送服务平台开发及试验*
鲁晓明
郑州大学信息管理学院 郑州 450001
鲁晓明, ORCID: 0000-0002-6189-5819, E-mail: xmlu@sina.com
摘要
目的利用高通公司推出的GimbalTM建设轻量级的图书馆情景感知推送服务平台。【应用背景】通过用户的智能移动终端设备获取其地理位置和兴趣偏好等信息, 并以此为依据提供情景感知的个性化服务, 是提升用户体验的重要途径。方法选择Android环境下的Gimbal SDK开发图书馆情景感知推送服务客户端应用程序, 在服务器Gimbal Manager端设置地理围栏信息以及通信服务触发条件和消息内容, Gimbal Manager主动感知用户情景和兴趣信息, 向用户推送满足触发条件的通信服务消息内容。结果Android手机用户安装客户端应用程序后, 当进入不同的地理围栏时, 会接收到由Gimbal Manager推送的与个人兴趣相符的信息。结论本平台能够向用户提供情景感知的个性化推送服务, 提高图书馆服务质量。
关键词: GimbalTM; 高校图书馆; 情景感知; 个性化推送
中图分类号:G250.7
Research on a Lightweight Academic Library Context-aware Recommendation Service Platform Based on GimbalTM
Lu Xiaoming
School of Information Management, Zhengzhou University, Zhengzhou 450001, China
Abstract

[Objective] The article constructs a lightweight context-aware recommendation service platform based on GimbalTM of Qualcomm. [Context] Acquiring users’ geographic positions and interests from mobile terminals, and then providing context-aware personalized service can improve user experience in library. [Methods] Select Gimbal SDK in Android environment to develop client application of academic library context-aware service, and set up Gimbal Manager parameters, including Geo-fences, communication triggers and information service content. Then, Gimbal Manager acquires user context and interests actively and pushes information content according to triggers condition. [Results] When the Android mobile phone users who install client applications enter different Geo-fences, they will receive information corresponding to personal interests pushed by Gimbal Manager. [Conclusions] The platform can provide context-aware personalized service and improve library service quality.

Keyword: GimbalTM; Academic; library; Context-aware; Personalized; recommendation
1 引言

随着移动互联网技术的发展, 智能移动终端已逐渐成为高校用户获取信息的最主要方式, 在用户倾向于通过智能手机随时随地利用“ 碎片” 时间获取信息的同时, 智能移动终端也为图书馆提供了获取用户活动及其所处情景信息的有效手段, 传感器网络、物联网、云计算等技术共同协作, 实时感知用户所处的位置、时间及周围环境等情景数据, 以此为依据图书馆能够打造用户情景敏感的个性化服务平台。本文选择智能手机作为移动服务终端, 利用高通(Qualcomm)公司推出的GimbalTM平台, 建设高校图书馆情景感知推送服务系统, 实现基于用户情景的新书推荐、数据库试用及开通、学术讲座、数据库培训等公告类信息的推送, 经测试, 该平台能够初步满足个性化服务的移动推送需求。

2 GimbalTM及其应用现状
2.1 GimbalTM介绍

美国高通公司旗下的Qualcomm Labs于2012年6月推出了支持智能移动终端的情景感知应用开发平台GimbalTM。GimbalTM可以帮助信息提供商和开发者让应用程序变得更加智能, 并根据终端用户所处的地理位置、个人兴趣等情景信息为他们带来更加个性化的实时体验[1]。GimbalTM定位模块一部分采用Google 地图及其定位技术, 另一部分采用低功耗蓝牙技术, 高通公司自行研制生产的蓝牙无线热点装置, 在其安装区域定位误差不超过0.3米[2]。GimbalTM兴趣感知模块在用户授权的情况下每天凌晨左右定时从用户手机中获取用户的上网历史记录、安装的应用程序、用户的输入项等日志信息, 从而挖掘出与用户兴趣相关的规则集[3]。客户实时的位置信息和兴趣信息决定了GimbalTM服务器最终将什么信息推送给他们, GimbalTM就是这种基于情景感知的个性化推送服务平台。

基于GimbalTM平台的情景感知服务应用, 无需自行配置情景感知和信息推送服务器, 只需按照开发者文档创建客户端应用程序, 同时在GimbalTM平台提供的服务器端做相应的信息推送规则设置即可。因此, 基于GimbalTM的情景感知推送服务平台对于用户而言无论是硬件上还是技术上都是轻量级的。

2.2 GimbalTM应用现状

目前, 情景感知在电子商务、移动服务、电影与音乐推荐和电子旅游等领域都有广泛的应用。如, 亚马逊、阿里巴巴等一些国内外企业研发了情景感知(时间、位置等)电子商务推荐系统。Cantador等[4]设计实现了新闻推荐系统News@hand, 将情景信息同时引入用户偏好提取和推荐生成过程。CoMeR系统是一种支持面向智能手机的具有多媒体信息推荐、自适应和传送等功能的情景感知媒体推荐平台[5]。面向电子旅游服务的情景感知推荐实用系统COMPASS首先根据用户周围情景发现一些相匹配的项目(如餐馆、商店、博物馆、电影院等), 然后将这些项目发送到推荐引擎, 生成推荐结果后显示给用户[6]

GimbalTM平台最初的用户主要是商品零售商或某些品牌营销商, 他们为了吸引更多忠实客户, 在恰当的时间恰当的地点给客户发送恰当的广告内容到其智能手机上, 以此来获取更高的销售业绩, 同时维持长期客户群体。GimbalTM目前的用户已经不仅仅局限于商场环境。例如, 艺术博物馆利用GimbalTM向某个参观者发送其所在位置附近艺术品的多媒体形式简介, 同时向其推荐可能感兴趣的展品及其所展示的位置信息; 旅游景点利用GimbalTM在适当的时间向游客推荐附近的餐厅、住宿、交通地点以及合理的游玩路线, 还可为游客提供随身导游服务, 当游客到达某小景点时则推送该景点介绍信息[7]。Gimbal和体育游戏移动应用开发商YinzCam合作开发为体育场地内的观众提供实时数据和物理环境的应用程序, 在体育场地围栏上安装Beacons获取观众的情景数据, 为其提供邻近的地理定位信息, 推送场地内商店的折扣信息、互动展品介绍、相关比赛观看等待区及等待时间等内容[8]

目前很多行业都已经开发适合的情景感知应用, 但图书馆领域基于情景感知的个性化服务应用则很少, 本文利用GimbalTM平台, 建设轻量级的高校图书馆情景感知推送服务应用。

3 基于GimbalTM的高校图书馆情景感知
推送服务平台构建
3.1 功能需求分析

本文构建的情景感知推送服务平台面向郑州大学用户提供基于实时情景信息和兴趣偏好的个性化推送服务, 这些动态个性化特征数据均由GimbalTM平台感知用户的智能手机获得, 无需用户提供信息, 兴趣偏好通过获取用户手机日志自动挖掘推理, 因此, 是系统完全自动、主动式的推送服务, 客户端应用程序只包括一个信息推送显示界面。

图书馆向用户提供的推送服务包括图书推荐、文献推荐、新书通报、数据库试用及开通、数据库培训、学术讲座等方面。用户兴趣推理及推送原则如下:

(1) 对于出现在图书馆或某院系楼内的用户, 向其推送该单位介绍信息;

(2) 对于出现在某院系楼的用户, 根据手机浏览历史的挖掘分析, 如果发现其具有相应学科专业需求, 则向其推送相应学科专业信息, 如本学科的图书推荐信息、新书通报、学术报告通告、数据库使用及开通通知;

(3) 对于出现在某院系楼的用户, 手机行为日志无明显学科特征的用户, 先向其推送该院系相关学科专业信息, 如果用户点击浏览这些推送信息, 则判定该用户具有相应学科专业需求, 否则, 不具有该学科专业需求;

(4) 对于出现在某院系楼的用户, 根据手机行为日志发现其尚不具有该学科专业需求特征, 则先尝试向其推送本学科专业信息, 如果用户点击浏览这些推送信息, 则判定用户具有该学科专业需求, 否则, 不具有该学科专业需求, 不再推送相应学科专业信息;

(5) 休闲类图书推荐在下午6点以后, 针对出现在生活区的用户进行推送。

3.2 开发技术思路

(1) 客户端应用程序开发路线

目前GimbalTM实现了对iOS和Android系统的支持, 笔者选择基于Android系统构建应用平台, 搭建Android系统应用开发环境, 具体流程参见文献[9]。在GimbalTM官网(http://www.gimbal.com)上注册并登录到GimbalTM服务器, 下载Gimbal SDK for Android, 截止到笔者系统开发时最高版本为Version 1.18。文献[3]是该SDK包中自带的开发文档, 详细介绍了SDK中各个模块的API接口及应用程序开发和配置过程。客户端应用程序开发配置流程如图1所示:

图1 客户端应用程序开发配置流程

①GimbalTM服务器也叫做Gimbal Manager, 它给每一个使用GimbalTM SDK的应用程序包分配一个Server API Key, 以便服务器能够区分不同的应用, 如图2所示:

图2 Server API Key

②创建新的Application, 填写Package Name后提交, Gimbal Manager会为Package分配一个客户端的Gimbal API Key, 如图3所示:

图3 Package Name和对应的Gimbal API Key

③在Eclipse中创建一个Android Application Project, 在图4中Package Name文本框中写入和在Gimbal Manager中创建的Application相同的包名。

将Gimbal SDK包中client-sample-mall-mart- embed/libs目录下所有jar文件导入到所创建Application文件夹下的libs文件夹中。

图4 应用程序客户端创建界面

④客户端应用程序的配置包括程序属性配置和Android- Manifest.xml配置。

在项目中的assets文件夹下创建properties文件夹。在properties文件夹里新建usercontext. properties文件, 以确保能被Gimbal Manager正确获取, 并在usercontext.properties添加以下内容, 配置应用程序的Key、Name和要使用的功能。

app.key= f5e10bbd83dba3a2e78ad86e1cfeb106

feature.name=LibraryPersonalizationService

app.capabilities=Geofence, Interests

需要注意的是, app.key的值是Server API Key, 而不是Gimbal API Key。app.capabilities的值表示应用能够感知的用户情景包括地理位置和兴趣信息。

AndroidManifest.xml文件包含应用程序的基本信息, 如包名、组件描述、权限声明等。与最终用户相关的权限声明如下所示:

< uses-permissionandroid:name="android.permission.INTERNET"/>

< uses-permissionandroid:name="android.permission.READ_
PHONE_STATE"/>

< uses-permissionandroid:name="android.permission.ACCESS_
FINE_LOCATION"/>

< uses-permissionandroid:name="android.permission.ACCESS_
WIFI_STATE"/>

< uses-permissionandroid:name="android.permission.WAKE_
LOCK"/>

< uses-permissionandroid:name="android.permission.BATTERY_STATS"/>

< uses-permissionandroid:name="android.permission.ACCESS_
NETWORK_STATE"/>

< uses-permissionandroid:name="android.permission.WRITE_
SETTINGS"/>

< uses-permissionandroid:name="android.permission.RECEIVE_
BOOT_COMPLETED"/>

同时将GimbalService与UserContextService StartStop Receive两个客户端服务添加到文件中, 以确保客户端应用程序和Gimbal Manager进行通信, 配置代码如下所示。

< service android:name="com.qualcommlabs.usercontext.service.
GimbalService" android:exported="false">

< intent-filter>

< actionandroid:name="com.zzu.LibraryPersonalizationService.service.USER_CONTEXT_SERVICE"/>

< /intent-filter>

< /service>

< receiver

android:name="com.qualcommlabs.usercontext.service.UserContextServiceStartStopReceiver" android:enabled="true">

< intent-filter>

< actionandroid:name="android.intent.action.BOOT_COMPLETE D"/>

< /intent-filter>

< intent-filter>

< actionandroid:name="android.intent.action.ACTION_SHUTDOWN"/>

< /intent-filter>

< /receiver>

经过配置, 应用程序已经基本上符合Gimbal应用的配置要求。然后根据需求制作界面与编写代码, 代码部分略。

(2) Gimbal Manager设置

图书馆情景感知推送服务是将合适的信息、在合适的时间、合适的地点、推送给合适的客户, Gimbal Manager的设置决定了服务的个性化程度及服务质量, 是整个应用的“ 大脑” 。

①地理围栏设置

地理围栏有radial和polygonal两种类型, 创建一个新的地理围栏实例需要一个唯一的Name来标识。用户输入格式为“ 国家+省+市+区+街道+单位” 的地理位置, Gimbal Manager接收到地址查找信息后更新相应地图。polygonal类型地理围栏的设置实例如图5所示:

图5 polygonal类型地理围栏设置示例

根据本校各个二级单位的具体地理分布, 推送服务平台共创建35个polygonal型地理围栏, 主要包括各个学科所在院系及相关实验基地、图书馆、行政楼、生活区。

②通信服务设置

一条通信消息服务需要设置5个方面的内容:

1) General: 通信消息一般描述包括通信名和起止日期。

2) Triggers: 可以单独选择地理围栏、时间或者两者结合来作为该条通信消息发送的触发条件, 当用户进入预设的地理围栏或时间条件满足时, Gimbal Manager把消息发送给预设接收者Audience。Triggers设置体现了用户实时的情景特征。

3) Audience: 如果客户端应用程序提供输入用户年龄、受教育程度、种族、性别、收入水平、是否有子女等属性的界面, 那么针对这些属性设置Audience的相关项来筛选接收该条通信消息的用户。但是本项目开发的图书馆情景感知推送服务平台是完全主动式推送, 无需用户提供任何属性信息, 因此可忽略Audience的用户属性设置。但是Audience还可以通过将interests设置为Automotive, 由此Gimbal Manager能够自动从客户端获取用户的行为日志, 然后利用自身的挖掘算法自动分析其兴趣特征。需要说明的是, 兴趣获取模块在客户端应用程序中编写, 不在Gimbal Manager中设置。Audience设置体现了接收消息的客户最主要的个性化特征及其偏好。

4) Attributes: Gimbal Manager实现信息推送服务必须要确定向目标用户推送哪些符合条件的服务信息, 这是通过Communication Attributes设置实现的。Communication Attributes以Key/Value的形式设置, 满足Key/Value条件的服务信息是要推送的服务内容。而目标用户则是通过Audience设置确定的, 至于符合条件的服务内容在何时、向位于何地的目标用户进行推送则由Triggers设置确定。Triggers、Audience、Attributes三项设置共同决定了一项情景敏感推送服务的具体实现。

5) Notification: 设置消息需要推送的内容, 可以推送预定的文本信息以及相关URL。

按照以上步骤, 推送规则: “ 向信息管理学院的师生推送消息‘ 2014年6月24日下午3:00-5:00在图书馆一号会议厅举行学术报告《竞争情报分析与利用》, 报告人: * * * ’ ” 的通信服务设置过程如图6所示。

通信消息设置在2014年6月20日至6月23日每天上午9:45-10:00, 向进入地理围栏“ 信息管理学院” 的师生推送具体信息及URL。

图6 通信服务设置(a) General设置

图6 通信服务设置(b) Triggers设置

图6 通信服务设置(c) Audience设置

图6 通信服务设置(d) Attributes设置

图6 通信服务设置(e) Notification设置

根据平台需求分析, 设置了35个地理围栏的介绍信息, 对应于35条通信服务消息, 每条消息设置类似, 选择地理围栏作为触发条件。其他通信服务消息根据图书馆当前推送任务实时设置。

4 基于GimbalTM的高校图书馆情景感知
推送服务平台应用测试与评价
4.1 服务平台应用测试

本应用开发完成后, 有29名Android手机用户参与测试, 其中包括5名研究生, 17名本科生和7名教师。测试者将客户端应用程序安装在Android手机上, 同时打开GPS和Internet连接, 授权Gimbal Manager获取其情景信息及偏好日志。

测试者在进入不同的地理围栏后均收到相应单位的介绍信息。例如, 29名测试者在不同时间进入“ 图书馆” , 都收到本校图书馆馆藏分布情况的URL链接, 用户可以打开URL查看馆藏分布信息。当测试者进入“ 行政楼” 时, 收到行政楼各单位所在办公楼层信息。

(1) 2014年6月21、22日两天上午11:00, 29名测试者都收到了“ 本学期考试从6月23日开始到7月4日结束, 考试期间图书馆开馆时间不变, 祝大家考试取得好成绩。” 的提醒消息。

(2) 2014年6月25日到6月27日三天时间内, 29名测试者先后进入“ 信息管理学院” , 其中有21名信息管理学院的师生收到“ 图书馆新进情报学新书《图书馆管理学》, 放置于文科书库图情类书架” 的消息, 剩下的8名测试者在安装应用程序后只浏览其他类型网页, 例如金融类、法学类等, 根据之前尝试向这些测试者推送图书情报学类相关信息后用户并未点击浏览的历史信息, 判定这些测试者不具有图书情报类学科需求, 因此Gimbal Manager根据其用户兴趣日志的分析结果, 不向他们推送情报学类新书信息。

(3) 2014年6月20日到6月30日11天时间内, 20名测试者在进入“ 商学院” 、“ 公共管理学院” 、“ 旅游管理学院” 、“ 管理工程学院” 、“ 信息管理学院” 、“ 教育学院” 等管理学院的地理围栏时, 收到“ Emerald全文期刊库(管理学)正式开通” 及其URL链接的消息。

(4) 2014年6月25日到6月27日三天18:15, 14名测试者收到了“ 图书馆新到文学艺术类图书《追风筝的人》, 欢迎大家借阅, 丰富课余生活” 的消息。这14名测试者均位于“ 生活区” 地理围栏内。图7(a)为接收到该条消息的测试界面。

另外需要注意的是, 任何情景感知应用都不可避免地涉及用户隐私, 并不是每个用户都同意服务器获取个人信息, 因此, GimbalTM应用程序设置是否同意Gimbal Manager监测其地理位置和个人兴趣的选项, 如图7(b)所示, 如果Gimbal Manager未得到用户授权, 则不向用户发送任何消息。

基于GimbalTM的轻量级图书馆情景感知推送服务平台测试取得了较好的效果。

4.2 服务平台应用效果评价

本服务平台基本满足高校图书馆情景感知个性化推送服务需求, 增强了用户体验, 同时图书馆还可以设置满足其他需求的通信服务, 例如, 可以针对新生提供情景化的校内地点描述信息, 提供随身导游服务; 也可向到馆用户推送其所在位置附近的图书及设施情况。

目前, GimbalTM支持文本和网页链接URL的推送, 尚未支持音频、视频等多媒体类型的信息推送。另外, 本应用也存在由于定位不精确造成的推送不“ 个性” 的情况, 例如, 本校的信息管理学院和旅游管理学院位于同一栋建筑内, 地理围栏设置位置相邻, 同时也属于室内定位, Google定位精度达不到, 因此, 旅游类的新书推荐及学术报告推荐在信息管理学院也能接收到。需要说明的是, 由于GimbalTM平台使用的Google定位技术, 室外GPS定位精度很高, 为了达到室内高精度定位, 用户可以安装Beacons, 并在客户端和Gimbal Manager做相应的设置即可。

GimbalTM目前还没有提供设置动态推送信息的API接口。如果GimbalTM在以后的版本中提供数据挖掘API以及设置动态推送信息API, 就可以在本服务平台的基础上进行扩展, 以提高情景感知推送服务的智能化和自动化。

目前Gimbal SDK是免费的, 但如果地理围栏、兴趣感知中的任一服务用户数量超过5 000, 则需按照每月每个用户$0.08的标准收费。为了维护本平台的长期稳定运行, 视用户规模大小向GimbalTM支付相应费用。同时, 新增平台维护工作人员, 设置日常所要推送的通信服务消息。

5 结语

本研究基于GimbalTM开发了高校图书馆情景感知个性化推送平台, 对情景感知这种新型的服务模式进行实际开发, 并对该服务平台进行效果测试。通过试验发现, 该服务平台能够在一定程度上满足高校用户的动态、变化的信息需求, 对于提升高校图书馆信息服务的质量, 具有重要的理论与实践价值。由于该平台目前还是轻量级的, 所以如何在现有服务平台的基础上进行扩展, 推进服务的智能化和自动化发展, 深化服务层次等, 是下一步需要继续深入研究的问题。

参考文献
[1] Gimbal SDK助力开发者让智能手机更加智能[EB/OL]. [2014-07-02]. http://www.qualcomm.cn/news/releases/2012/06/27/gimbal-sdkzhu-li-kai-fa-zhe-rang-zhi-neng-shou-ji-geng-jia-zhi-neng.(GimbalSDKAssistsDeveloperstoMakeIntelligenceMobilePhoneSmarter[EB/OL]. [2014-07-02]. http://www.qualcomm.cn/news/releases/2012/06/27/gimbal-sdkzhu-li-kai-fa-zhe-rang-zhi-neng-shou-ji-geng-jia-zhi-neng [本文引用:1]
[2] 高通推Gimbal定位技术: 精度可达0. 3米[EB/OL]. [2014- 06-15]. http://news.zol.com.cn/419/4198115.html.(QualcommIntroducesGimbalLocationTechnology:TheAccuracyReaches0.3Meters[EB/OL]. [2014-06-15]. http://news.zol.com.cn/419/4198115.html [本文引用:1]
[3] Gimbal™ SDK for Android Documentation [R]. GimbalGimbal™ SDK for Android Documentation [R]. Gimbal, Inc. , 2014. [本文引用:1]
[4] Cantador I, Castells P. Semantic Contextualisation in a News Recommender System [C]. In: Proceedings of CARS 2009, New York, USA. 2009. [本文引用:1]
[5] Yu Z, Zhou X, Zhang D, et al. Supporting Context-aware Media Recommendations for Smart Phones[J]. IEEE Pervasive Computing, 2006, 5(3): 68-75. [本文引用:1] [JCR: 2.055]
[6] Van Setten M, Pokraev S, Koolwaaij J. Context-aware Recommendations in the Mobile Tourist Application COMPASS [C]. In: Proceedings of the 3rd International Conference on Adaptive Hypermedia 2004, Eindhoven, The Netherland s. Springer Berlin Heidelberg, 2004: 235-244. [本文引用:1]
[7] The Gimbal™ Context Aware Platform-Digital Insights into the Physical World: The Advantages of Gimbal for Retailers, Brand s and Application Developers [R]. Qualcomm Retail Solutions Inc. , 2013. [本文引用:1]
[8] Gimbal和YinzCam合作用Beacons增强体育迷的体验[EB/OL]. [2014-07-21]. http://news.rfidworld.com.cn/2014_07/d55fec6e11050ccf.html.(GimbalandYinzCamCooperatetoTakeAdvantageofBeaconstoEnhanceSportsFansExperience[EB/OL]. [2014-07-21]. http://news.rfidworld.com.cn/2014_07/d55fec6e11050ccf.html [本文引用:1]
[9] Android开发环境搭建[EB/OL]. [2014-04-28]. http://jingyan.baidu.com/article/f0062228f0b18afbd2f0c871.html.(BuildingAndroidDevelopmentEnvironment[EB/OL]. [2014-04-28]. http://jingyan.baidu.com/article/f0062228f0b18afbd2f0c871.html [本文引用:1]