移动阅读社交系统设计与实现

2013-09-08 10:18朱珍民
计算机工程与设计 2013年6期
关键词:详细信息翻页语义

肖 灿,朱珍民,叶 剑

(1.湘潭大学 信息工程学院,湖南 湘潭411105;2.中国科学院 计算技术研究所,北京100190)

0 引 言

移动阅读作为移动互联网[1]的主要应用之一,能够为人们提供随处可得的阅读服务,极大地改变了人们的阅读方式。传统移动阅读产品的功能仅仅局限于为用户提供电子资源的阅读服务,存在以下不足:第一,忽略了移动阅读环境中用户难以查询相关阅读资料的问题,用户在阅读过程中产生的疑问无法得到即时解答;第二,用户在零散的移动阅读环境中无法与相同兴趣爱好的其他阅读者交流沟通。将普适计算中为人们随时随地提供服务的思想与移动阅读相结合[2],对传统移动阅读应用加以改进,能够为用户提供更好的阅读体验。

本文提出了知识点的概念,通过语义标注建立起知识点和知识点详细信息之间的关联,将文本、图片等资源联系起来,根据用户查询需要提供相关资源;将社交网络引入到移动阅读平台中,通过对阅读爱好的分类,将用户归类到不同的社区中,并呈现同一社区其他用户的位置信息,便于用户选择距离近的书友进行交流讨论。

1 相关工作

要满足用户阅读过程中的查询需求,需要提取阅读资源中知识的表示方法。目前的研究中对知识的描述可以采用知识网络、“学习元”、知识地图等等。文献 [3]提出用“学习元”来描述知识对象。浙江大学的施岳定教授定义了网络课程中知识点、知识点属性的概念,分析了知识点之间的4种关联关系,提出了对知识点的超文本组织结构和基于知识点的超文本教学控制的设计方法。综合以上研究成果,为表示阅读资源中知识结构,将书本中的知识提取出来用统一对象表述并关联相应的解析是必要的;本文中通过定义知识点细分阅读知识结构,为用户提供知识点查询功能。

社交网络 (social network services,SNS)主要作用是为一群拥有相同兴趣与活动的人建立在线社区[4],近来发展迅速。据社交网站Facebook披露,其用户总数已经达到9.01亿人。目前SNS已经深入到互联网行业的各个方面,有电子商务网站利用社交网络建立用户相互信赖的社区[5],解决电子商务中的信任问题;即时通信行业中腾讯公司推出名为 “QQ圈子”的社交为用户挖掘相互有关系的好友;网络游戏利用社交网络提高游戏传播速度。综合以上分析可得,各大应用平台中利用社交网络用户间互动最终达到提升用户体验的效果。在本文中,将阅读同一书本的用户划分到相同社区中,增强用户间的交流互动。

2 系统分析与设计

本章先定义一些文中用到的名词,并给出解释和举例说明,然后根据需要完成的功能,设计出系统架构图。

2.1 名词定义

知识点:一般是书籍中的关键人物、事件或者出现频率较高的名词、术语。它可以通过分析词语出现频率得到,最终由相关领域的专家确定和划分,以保证权威性和正确性。例如,在中国四大名著 《红楼梦》这一电子书籍中,“林黛玉”属于其中的一个知识点。

相关知识点:与知识点关联度、上下文相关性较高的知识点。由相关领域的专家对知识点进行分类得到。例如,在 《红楼梦》中,“贾宝玉”、“贾母”均为 “林黛玉”的相关知识点。

知识点详细信息:对知识点使用文字、图片信息加以描述,达到多角度、深刻刻画知识点的目的。通常由相关领域的专家给出。例如知识点 “林黛玉”的详细信息为“古典名著 《红楼梦》中的女主角,金陵十二钗之首,宝玉的姑表妹。聪慧无比,琴棋诗画样样俱佳,尤其诗作更是大观园群芳之冠。”

语义标注:知识点和知识点详细信息之间的映射关系。由专家通过语义标注工具生成。本文中使用XML文件作为载体存储语义标注。

2.2 系统架构

本系统需要完成线上电子书阅读、知识点快速点答、电子资源与知识点存储、线下的知识点语义标注、基于用户阅读兴趣的社区分类、社区内交流服务、用户地理位置信息采集与呈现。基于以上需求,规划出系统架构如图1所示。

图1 移动阅读社交系统架构

系统各模块职责功能如下所述。

终端:为用户提供最直接的交互服务。与资源服务器交互获取电子书本资源和知识点详细信息,呈现电子书本供用户阅读,展示电子书本中的知识点,向标注服务器获取知识点的语义标注,为用户提供带地理位置信息的社交服务,向社交网络服务器传送社交信息和用户地理位置信息。

资源服务器:储存电子书籍资源、知识点、知识点详细信息等;为终端提供图书资源、根据终端提供的知识点语义标注返回知识点详细信息;接收并储存由标注工具划分的知识点和知识点详细信息。

标注服务器:储存语义标注信息;根据终端提供的知识点返回知识点的语义标注信息。

标注工具:运行于PC端,供专家浏览电子书本,将电子书本的知识点标注出来,为知识点生成语义标注和知识点详细信息。将语义标注上传到标注服务器,将知识点详细信息上传到资源服务器。

社交网络服务器:接受终端发送的用户阅读书本记录,维护社区列表,将阅读同一书本的用户划分到相同社区中,提供社区中用户间的交流互动服务。

3 终端软件使用流程

用户使用移动终端阅读流程如图2所示。首先登陆进入终端软件界面,选择自己喜爱的书本进行阅读,碰到有疑问的知识点可以选择查询知识点详细信息,查阅完详细信息以后继续阅读书本。在阅读过程中如果希望跟阅读相同书本其他用户进行交流或者收到其他用户发过来的信息,可以选择进入社区,此时终端软件跳转到聊天界面。用户可以在 “阅读模式”和 “交流模式”中切换。

图2 终端软件使用流程

4 系统开发与实现

本章将从系统的各个模块着手讲述系统开发实现。

4.1 终端开发实现

鉴于Android平台具有较高的开放性、开发接口丰富、便于开发者发布应用等特点[6,7],本文基于Android系统开发终端平台,设备选用Android智能手机和平板电脑。终端程序逻辑上由用户界面、电子书读入模块、翻页特效模块、社交交互模块、HTTP通信模块。

用户界面:Android应用程序可以采用模型-视图-控制(model-view-controller,MVC)模式开发。用户界面属于视图层,其设计由XML文件规范。阅读模式的主界面中放置了ReaderView控件,该控件继承自Android开发包基础类View,用于绘制电子书读入模块读取出来的文字、图片。社区交流模式的主界面中放置了BaiduMapView和ChatButton。BaiduMapView用于载入地图作为聊天背景,附近的相同社区用户均以圆点在地图上显示,用户点击圆点将弹出聊天对话框。

翻页特效模块:用户体验直接影响了用户对软件的评价,在电子阅读中引入模拟真实书本翻页效果能提升用户体验。下面结合翻页特效真实效果图和简化模型图讲述此模块的实现。

翻页特效如图3所示,可以将翻页特效模型简化为如图4所示。手指在屏幕上滑动,带动纸张产生翻页动作,手指与屏幕的接触点即为图4中的点A。 “书本”的右下角,也即屏幕的右下角,为图4中的点C。连接AC,作线段AC的中垂线,得到线段BD,交AC与点E。于是屏幕被划分为a、b、c这3个区域,b区为三角形ABD,c区为三角形BCD,a区则为手机屏幕除b区和c区的剩余部分。图3所示效果由三部分组成:1.a区,仍然显示当前页面内容,2.b区,显示当前页被折过来后,文字透过纸张显示出来的内容,3.c区,显示下一页的内容。a区通过对当前页面截图得到,b区通过对当前页面右下角截图并作倒映、旋转得到,c区通过对下一页面截图得到。以上3个区域的绘制可以构造出翻页特效的简化模型。将这3个区域相邻的边用贝塞尔曲线绘制出来,则可得到如图3所示比较圆滑、逼真的翻页效果。

图3 翻页特效

电子书读入模块:电子书资源的源文件为EPub和txt格式,EPub格式书籍可以携带文字和图片信息。通过Java的字节输入流InputStream将电子书读入到内存。需要注意的是,电子书的大小在1M-100M之间,鉴于移动设备内存资源有限,读入电子书时不能一次将字节输入流全部读入。本系统中,每次读入内存的字节容量为100kb。当用户浏览到上次读入内存字节的尽头时,开启子线程继续向后读入100kb内容。

图4 翻页特效简化

社交交互模块:该模块负责向社交网络服务器传送用户间社交信息和用户地理位置信息。与社交网络服务器的交互采用了可扩展通讯和现场协议 (the extensible messaging and presence protocol,XMPP)[8-10]。该协议定义了3种包,分别是信息 (message)、信息/查询请求 (Info/Query,IQ)、在线状态 (presence)。Message包用于搭载用户间聊天、交流消息,IQ包搭载了用户地理位置信息、用户近期阅读书本,Presence包搭载了用户在线、离线、阅读状态信息。通过这3种消息包可以实现终端与社交网络服务器间的通信。

HTTP通信模块:该模块负责向资源服务器获取带语义标注的电子书本、知识点详细信息查询,向标注服务器获取知识点的语义标注信息。用户在选择查看知识点详细信息时,会产生知识点的字符串。利用Android开发包中的HttpClient类将知识点的字符串作为请求关键字发送到标注服务器,获得该知识点的语义标注。再把语义标注用HttpClient类包装发送到资源服务器,这样可以获得知识点的详细信息。

4.2 社交网络服务器实现

社交网络服务器基于Openfire平台开发。Openfire是遵守XMPP协议实现的开源即时消息传输平台,已经设计好即时消息传输框架,要对其进行功能扩展,需要将功能模块写成插件并注册。

本文中,自定义的插件类SocialPlugin实现了Plugin接口,并重写了接口函数initializePlugin(PluginManager manager,File pluginDirectory)。该函数在 Openfire启动时被调用,从而完成插件的初始化工作,通常将注册插件、获取组件管理器实例等工作放在此函数中。注册用于截获消息包的PacketInterceptor接口和实现该接口中截获消息包的回调函数代码如下所示:

在回调函数interceptPacket()中接收到消息后,根据消息类型作出处理。消息包有3种,即上一小节所述的Message包、IQ包、Presence包。3种消息包均写在XML文件中。截获到消息包以后分析出消息种类,对装载聊天信息的Message包提取出接收消息的ID,并进行转发;对装载用户地理位置信息的IQ包提取位置信息,并发送给相同社区中的每一用户,以表明该用户的地理位置;对装载用户正在阅读书本信息的IQ包,提取书本名字,将该用户添加到相应社区中;对Presence包获取在线状态信息,并转发给该用户所在社区的其他用户。

社交网络服务器的数据库中维护了社区中的用户列表和用户所在社区表,每次接受到用户阅读书本信息时修改用户列表和社区表,实现对用户的分区管理。

4.3 标注服务器实现

标注服务器中存储了由标注工具上传的知识点语义标注信息。当用户发起查询知识点详细信息请求时,终端会将知识点字符串用GET方法发送到标注服务器。标注服务器使用名为tagSearch的Servlet来接受用户的查询请求,其请求的方式为 http://ip:port/tagSearch?key=tagname。标注服务器接受到请求后,查询数据库获取知识点位置信息,然后返回用XML描述的知识点位置信息,即知识点的语义标注。其中XML节点的主要标签见表1。

表1 语义标注的XML节点主要标签表

4.4 资源服务器实现

资源服务器中存储了带知识点标注的电子书本和知识点详细信息,通过HTTP协议与终端通信。在资源服务器中,使用名为tagFind的Servlet来接受终端带语义标注的访 问 请 求, 其 请 求 的 方 式 为 http://loaction/tagFind?id=...&file=...&&start=...&end=...。资源服务器接收到请求后,通过位置信息检索到知识点详细信息然后返回给用户。值得注意的是,开发中客户端利用HTTP发送字符串所使用的编码必须与服务器使用的字符编码保持一致,否则服务器端收到的字符解析出来会是乱码。

4.5 标注工具实现

标注工具在PC端运行,使用Java语言开发,实现的功能有:电子书本显示、添加知识点标注对话框、上传语义标注及知识点详细信息。电子书本显示这一功能由Android终端的程序移植过来。添加知识点标注对话框如图5所示。

图5 添加知识点标注对话框

对话框中保存专家针对知识点添加的知识点详细信息和相关知识点,并上传到资源服务器中。标注工具根据知识点详细信息保存在资源服务器的书本名字、开始位置、结束位置、相关知识点生成知识点语义标注的XML文件。知识点 “林黛玉”生成的语义标注XML代码如下所示:

所得到的XML文件即为语义标注,上传到标注服务器保存。标注工具与资源服务器、标注服务器间的通信均为HTTP协议,通信过程与终端软件类似,不再赘述。

5 系统实现效果与测试

5.1 系统实现效果

打开终端软件,选择阅读电子书本,点击以 “贾宝玉”为标注的知识点,终端屏幕呈现如图6(a)所示贾宝玉索引信息,点击图中 “详细信息”按钮,终端程序如图6(b)所示显示 “贾宝玉”的详细信息。证明该系统能够为用户提供带语义标注的知识点服务。

图6 知识点查询

选择进入 “交流模式”,终端屏幕跳转到以地图为背景的社区中。如图7(a)所示,同一社区中的其他用户在地图中以圆点显示,在此界面下可以与同一社区中所有用户聊天。点击圆点进入图7(b)的界面中,可与该用户单独聊天。证明系统能为用户提供基于阅读社区的交流服务。

图7 社区交流界面

5.2 系统测试

对本系统的测试主要从系统稳定性、知识点点答响应速度两个方面进行。将终端软件安装于不同Android设备上,供20个志愿者使用,每个志愿者每天保证两个小时以上的阅读或者交流时间。实验持续两个月,客户端软件能够正常实现电子书阅读、知识点点答、社区交流功能,未出现崩溃、失去响应等异常现象,证明系统具有可靠的稳定性。为测试知识点点答响应速度,在终端程序中加入double型变量clickTime记录用户每次点击查询知识点的时刻,终端接收到知识点详细信息并完成对话框弹出的时刻用变量showTime记录。showTime减去clickTime得到waitTime即为用户等待时间,将waitTime写入到test.txt文件中。统计出不同终端设备在WiFi网络和GPRS网络下的响应时间见表2。

表2 不同配置终端设备完成知识点点答响应时间

可以看到,所有设备在WiFi网络下响应时间均在0.1秒左右,在GPRS网络下响应时间均在1.5秒-2.0秒之间,并且随着设备配置的提升,响应时间会随之降低。实验证明本系统能完成知识点点答和实时交流功能,具有稳定性高、点答响应速度快的特点。

6 结束语

针对传统阅读软件只提供单一阅读的功能,本文利用知识点标注为用户答疑,通过将用户划分社区提供交流服务以提升阅读体验。经测试,本系统以XML文件为载体的语义标注解决了知识点点答功能,通过XMPP协议实现了为用户提供社区交流服务,并且具有较高的稳定性和较快的响应速度。随着移动设备的普及,本文设计的移动阅读社交系统将会有广阔的应用前景。下一步工作是研究使用压缩算法减少从服务器端到终端的下行数据,进一步提高通信速度和降低通信费用。

[1]LUO Junzhou,WU Wenjia,YANG Ming.Mobile internet:Terminal devices,networks and services[J].Chinese Journal of Computers,2011,34 (11):2029-2051 (in Chinese). [罗军舟,吴文甲,杨明.移动互联网:终端、网络与服务 [J].计算机学报,2011,34 (11):2029-2051.]

[2]HONG Dandan,LI Jianping.Research on security framework supporting QoS in mobile ubiquitous computing environment[J].Computer Engineering and Design,2009,30 (15):3498-3500(in Chinese).[洪丹丹,李建平.移动普适环境中支持QoS控制的安全框架研究 [J].计算机工程与设计,2009,30(15):3498-3500.]

[3]YU Shengquan,YANG Xianmin,CHENG Gang.Learning resource designing and sharing in ubiquitous learning environment[J].Open Education Research,2009,15 (1):47-53 (in Chinese).[余胜泉,杨现民,程罡.泛在学习环境中的学习资源设计 [J].开放教育研究,2009,15 (1):47-53.]

[4]DONG HEE Shin.The effocts of trust,security and privacy in social networking:A security-based approach to understand the pattern of adoption[J].Interacting with Computers,2010,22(5):428-438.

[5]Amy Y Chou.The analysis of online social networking:How eservicescapes influnce consumerspurchase intentions[J].International Journal of Information Systems and Change Management,2010,4 (4):353-365.

[6]GU Cong,CHEN Yiqiang,LIU Junfa,et al.Design of indoor LBS system based on Android platform and its implementation.[J].Computer Engineering and Design,2012,33 (1):396-401(in Chinese).[顾聪,陈益强,刘军发,等.Android平台的室内LBS系统设计与实现 [J].计算机工程与设计,2012,33 (1):396-401.]

[7]YAO Yumin,LIU Weiguo.Study of android's architecture and its application development [J].Computer Systems & Applications,2008,17 (11):110-112 (in Chinese).[姚昱旻,刘卫国.Android的架构与应用开发研究 [J].计算机系统应用,2008,17 (11):110-112.]

[8]ZOU Zhengchen,ZUO Chun.Design of general information exchange system of contact center based on Jabber [J].Computer Engineering and Design,2007,28 (1):68-72 (in Chinese).[邹正宸,左春.基于Jabber的客户服务中心通用信息交换系统设计 [J].计算机工程与设计,2007,28 (1):68-72.]

[9]ZHANG Yan,XIA Guoqing.Study on Jabber/XMPP standard protocol and application[J].Science Technology and Engineering,2007,7 (6):1032-1035 (in Chinese).[张彦,夏清国.Jabber/XMPP技术的研究与应用 [J].科学技术与工程,2007,7 (6):1032-1035.]

[10]CHENG Hang,ZHAO Fang.Implementation of Web instant message system based on server push technology and XMPP[J].Computer Engineering and Design,2010,31 (5):925-928(in Chinese). [陈航,赵方.基于服务器推送技术和XMPP的Web IM系统实现 [J].计算机工程与设计,2010,31 (5):925-928.]

猜你喜欢
详细信息翻页语义
树一直在旅行(外一首)
打字机
语言与语义
2021年高考文体写作系列3:咨询信
让“翻页”成为艺术
花卉辐射诱变育种信息数据库的设计
“详细信息”实现文件个性化筛选
批评话语分析中态度意向的邻近化语义构建
自动翻页乐谱架
“社会”一词的语义流动与新陈代谢