1个人知识管理系统的设计
1.1Tag推荐与Tag可视化
Tag是伴随Web2.0应用而出现的信息分类方式,又有“开放分类”或者“大众分类”之称。与传统的自顶向下的目录式分类体系相比,Tag没有显式、专业的层级体系,主要是由用户自主给每个实体贴上标签,通过大量用户协作自动形成分类[3]。个人知识的表现是基于多媒体形式,包括文本、图形、图像、声音、动画、照片图片和视频。这些实体组织、检索和分享需要一套简单、灵活的信息组织方式。Tag是目前一种有效的信息组织方式,也可以说是一种关键词标记,用于搜索查找;但Tag不同于一般的关键词,用关键词进行搜索时,只能搜索到文本中提到的关键词,而Tag可以将信息内容文本中根本没有的关键词作为Tag来标记。Tag的功能不仅仅是分类,更在于体现信息与信息间的相关性,利用用户之间内容分享。
1.1.1个人知识管理系统数据存储模型设计
在本系统中,用户、知识实体、Tag之间的联系,我们用图1所示模型表示。用户创建知识记录,可以是多媒体的某一种形式,给知识实体打上自定义标签;同时可以通过Tag搜索,浏览其他用户分享的个人知识并收藏其他用户的知识;用户的创建、收藏操作由该存储模型支持。
1.1.2Tag推荐和Tag可视化
Tag如何产生是本系统实现的关键。Tag产生的方式主要有:专家标注,用户产生,系统产生以及人工和系统结合的方式[4]。专家标注能提供专业规范的Tag但成本比较高;用户产生方式能提供大量Tag,但Tag用词不受控,管理起来比较混乱;系统产生方式采用关键词分词技术,但是缺乏用户情感、兴趣等Tag信息。本系统采用系统推荐和用户编辑的方式生产Tag,一方面推荐受控的Tag集合,另一方面让用户补充Tag。推荐Tag集合=标题关键词+用户Tag集合+关联Tag集合;关联Tag集合是由历史知识实体中Tag共现频度产生。由于Tag推荐服务是本系统的重点与难点,也是消耗计算资源比较多的服务。因此在服务器上专门构建一个WebServices负责Tag推荐服务。Tag可视化和用户体验密切相关,Android客户端采用FrameLayout容器控件,用户每次通过滑动屏幕更新Tag内容,系统重新绘制Tag所在的位置、颜色。
1.2系统体系架构设计
近年来,以Android、iOS和WindowsPhone等为代表的智能终端操作系统发展迅速,在技术上已经赶上甚至超越了PC时代的桌面操作系统。面对智能终端设备功能的日益增多,软件成为智能终端设备开发过程中最主要的耗时因素[5],开发者往往必须采用“需要一个,就设计开发一个”的方法,这种设计不便于不同平台数据的统一管理,为解决系统跨平台问题,本系统服务器端采用三层架构(3-tierarchitecture),主要划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL),如图2所示;在业务层和移动平台之间创建WebServices层以解决跨平台问题,该架构适合分期开发和数据维护,易于扩展Web和桌面客户端。该系统采用SQLServer集中统一管理数据;通过数据访问类给数据层提供数据交互服务,将业务处理被封装在业务层;UI表示层分成移动平台、桌面平台。移动平台主要涉及Android、iOS、WindowsPhone,本系统在UI层与BLL层之间引入WebServices层,解决移动端跨平台数据处理和Tag推荐服务;桌面平台主要涉及传统的Web和桌面客户端处理。系统各层数据是在Common类库的支持下,通过业务实体实现数据传递。本系统优先开发移动端,解决移动互联网环境下个人知识管理需求,选择目前市场份额最大的Android平台,本文探讨的实现均是基于该平台。Android客户端采用的是ActionBarSherlock+ViewPager+Fragment架构。ActionBarSherlock是一个开源框架,它是一个独立的库,通过一个API和主题,开发者就可以很方便地使用所有版本的Android动作栏的设计模式。对于Android4.0及更高版本,ActionBarSherlock可以自动使用本地ActionBarSherlock实现,而对于之前没有ActionBar功能的版本,基于IceCreamSandwich的自定义动作栏,实现将自动围绕布局[6],能够让开发者轻松开发一款带动作栏(Actionbar)的应用,并且适用于Android2.x及其以上版本。
1.3系统功能模块的设计
本系统从结构上分为服务器端和客户端。服务器端主要提供用户、知识实体、Tag的管理服务;客户端主要支持用户创作、存储、分享等知识操作过程;客户端与服务器端主要功能如图3、图4所示。
1.3.1客户端功能模块设计
客户端系统结构主要包括①通信协调模块:为不同模块之间的数据传递及网络通信提供统一的接口。②知识实体新建模块:创建知识实体,包括文本、手写、图像(图片或照片形式)、录音、画板,以及混合型类型;创建个人知识实体后,系统自动推送Tag标签给用户选择,用户在推荐Tag基础上可以二次编辑。③知识实体管理模块:包括本地知识实体查找功能,知识实体云存储、云同步功能,知识实体修改、删除、分享等功能。④知识实体模块:内含知识圈模块、知识社区模块、知识Store模块。其中知识圈模块:从服务器上获取与当前用户相关的知识实体列表,包括关注用户所分享的知识、用户收藏的知识。知识社区模块:公开的知识实体将展示在知识社区中,用户围绕知识实体建立用户关注、知识评论、知识收藏关系。知识Store模块:该模块围绕知识实体交易,例如,用户可以将自己的微视频课程发布到平台交易;同时该模块也接收服务器推送过来的知识,激发用户知识交易需求。⑤用户信息管理模块:内含基本信息管理模块、偏好设置模块。其中基本信息管理模块:包含用户基本信息维护,比如修改密码、更换头像、更换用户名及其他一些基本信息修改。偏好设置模块:包括是否自动登录、知识实体是否自动同步等功能。
1.3.2服务端功能模块设计
服务端系统结构主要包括以下模块。①用户管理模块:包括用户注册、登录与用户关系数据管理。②知识实体管理模块:包括知识同步模块、知识实体文件管理模块、知识分享模块。其中知识同步模块:包括在服务器上用户知识的存储以及与其他移动平台、Web、桌面客户端数据同步功能。知识实体文件管理模块:对所有用户知识进行管理,包括目录管理,文件权限管理以及数据备份管理。③Tag推送模块:向用户推送Tag标签服务,Tag是移动互联网环境下个人知识组织的重要手段。该模块利用分词技术、字符匹配技术推送个性化Tag标签集合。④知识分享模块:该模块与客户端功能模块对应,支持知识圈、知识社区与知识Store管理。知识圈模块:维护用户关注对象所分享的知识、用户收藏的知识。知识社区模块:分析与管理用户关系,包括关注、评论、收藏关系。知识Store模块:维护用户在线交易的知识,向用户推送个性化的知识内容。⑤公共服务模块:内含公共信息处理模块、公共网络服务模块。公共信息处理模块:对用户知识内容的提取(体现在在线知识搜索服务上)。公共网络服务模块:为客户端提供统一的网络访问服务。
2个人知识管理系统的实现
系统的导航菜单主要是由“创建知识”、“知识管理”、“知识分享”组成。使用系统前,用户需先注册个人知识管理系统账号,然后可以创建文本、手写、图片、画板、录音以及混合型的知识实体,创建成功后需添加标题信息,标题是Tag推荐服务的重要的语义参考,客户端自动抽取标题关键词作为Tag集合,并和用户信息打包发送给服务器处理,并返回推荐的Tag集合(如图5所示)。测试输入标题:“个人知识管理是一种新的知识管理理念和方法”,服务器WebServices返回推荐Tag集合“{知识管理”“,竞争力”“,价值”“,能力”,“信息”}。
3结束语
通过构建易于扩展和维护的个人知识管理系统结构,采用简单、灵活的Tag知识组织方式,实现了服务器端和Android客户端。服务器端提供用户管理、知识实体管理、Tag管理以及知识分享管理的服务,该系统能为用户提供Tag推荐服务,推送结果基本满足用户需求;Android客户端能帮助用户实现个人知识管理过程。目前该系统已发布到百度应用开放平台供用户下载,预计在移动互联网环境下该产品市场前景可观。下一步将扩展iOS、WindowsPhone移动平台,研究知识网络,并在此基础上构建用户知识圈。
作者:马跃 丁小宝 杨成栋 王文宝 单位:台州学院