智能电子教科书系统的设计原理与实现
2020-08-13帅皓天杨静
帅皓天 杨静
摘 要: 传统的教科书致力于系统地向学习者传授专业知识,而大部分教科书通常以印刷或电子版等纯文本的方式整书出版,数据难以被计算机理解并有效利用。以数学学科中的线性代数为例,展示了一种基于知识管理和多用户管理的开放型智能电子教科书系统。该系统以细粒度数据管理为出发点,通过图数据库存储知识数据及其相互关系,并基于混合软件架构实现了编辑和浏览细粒度教科书内容与知识结构的交互功能。
关键词: 图数据库;教科书;信息化;混合应用;知识管理
中图分类号: TP391.41 文献标识码: A DOI:10.3969/j.issn.1003-6970.2020.06.009
本文著录格式:帅皓天,杨静. 智能电子教科书系统的设计原理与实现[J]. 软件,2020,41(06):3946
【Abstract】: Traditional textbooks are used for systematically disseminating professional knowledge to learners. Most of them are published in print or digit edition, which makes it difficult for computer to interprete and apply the knowledge effectively. In this paper, we present an open intelligent textbook system in linear algebra based on knowledge management and multi-user management. With knowledge data with their relation fine-grained and stored in graph database, a software using the hybrid architecture is designed and built for browsing and editing knowledge interactively.
【Key words】: Graph database; Textbook; Informationize; Hybrid application; Knowledge management
0 引言
在现行的教育模式中,教科书的主要功能是系统地向学习者传授专业知识,在知识传播过程中扮演着重要角色。而大部分教科书通常以纯文本的方式整书出版,它们在数据库里的存儲和检索方式大多基于元数据(如标题、作者、出版社和关键字等),这样的数据组织、存储和检索的方式难以被计算机理解和利用。如何解决传统的纯文本存储方式中难以高效地对知识进行概括或抽象描述的问题,有效地存储和使用知识点一直是知识表示和知识管理研究中的热点和难点。
伴随着计算机的发展,大量电子教材随之出现,电子教材的优缺点以及它能否取代传统教材一直是讨论的热点[1,2]。目前常见的电子教材大多是静态文档,仅是在文档电子化的基础上提供文档的浏览功能。智能的电子教科书系统应该是能够自动根据用户需求动态调整并生成所需文档,可以在细粒度的知识数据管理上重建知识间的关系,并通过科学计算软件实现知识的自动推理和自动计算。在电子教科书领域,王东明课题组开发的几何电子教科书吸取了动态软件的理念,专门为交互式处理几何知识点编写了一套用于几何知识推理、图表可视化、多版本教科书生成和一致性检测的软件工具[3,4]。这套几何电子教科书系统描绘了一个具有冲击性的、让人耳目一新的智能教科书范本——具备众包化、可视化、适宜型、交互型和智能型等特征的电子教科书[5]。在信息记录方面,交互式的数学电子文档MathDox实现了同时记录书本内容信息和用户个人信息的功能[6]。此外还有通过加入知识表达和问题解答系统的电子教科书——Inquire Biology[7],它是专门为了回答用户问题而设计的。智能教辅系统在近几年也得到大力的研究和发展,这类系统可以给学生提供个性化的学习方式和及时的数据反馈,同时综合领域知识、问题求解方法、教学方法、学生资质和个人信息进行交互测验[8]。
近几年随着移动设备的大量普及和互联网的高速发展,网页应用由于其学习成本低、不依赖平台的特性得到了高速发展[9]。但随着移动设备的激增和移动平台的碎片化,应用开发的方式急需一种更加高效统一的框架,混合应用便是为解决这样的问题而提出的一种新框架[10],这种应用框架在某些方面的表现要优于传统应用框架[11]。
在前人研究的基础上,我们启动了一个名为LaText(Linear Algebra Textbook system)的项目,旨在结合计算机科学领域中新兴的混合应用架构设计一套基于知识管理和知识存储的智能电子教科书软件。该系统在细粒度知识数据管理上能根据用户需求自动生成书本内容。本文主要研究知识体系的语义表示、知识在图数据库中的存储方式以及实验性软件系统的实现等问题。
1 知识数据模型设计
1.1 知识描述方法
知识的内容丰富、形式多样且关系复杂。传统的电子教科书仅是存储了没有语义信息的电子化书本内容,这对于计算机理解和利用知识数据是不利的。因此智能电子教科书系统需要一种高效、统一的知识数据模型来管理和存储知识数据。这样的管理方式使得数据库中的数学知识模型数据可以满足未来研究的需求,也便于知识的融汇聚合、自由扩展和按需索取。
语义对于数学知识的存储、管理和理解非常重要。为了能够准确地刻画数学知识的内在关系、严格地描述数学知识对象的结构,我们使用本体语言的概念来设计这套知识数据的概念模型。在计算机科学和人工智能领域,本体语言(ontology language,又称本体论语言)是指用于构建本体的形式语言。此类语言能够对有关特定领域的知识进行编码,且常包括处理这些知识之间关系的推理规则。本体语言通常为描述性语言(又称表述型语言或说明性语言),大多属于框架语言的泛化形式,且一般都基于一阶逻辑或描述逻辑[12,13]。
本体语言是对特定领域中某套概念及相互关系的形式化表达,其概念依赖于特定领域,多用于描述由对象、属性及其关系所构成的一套模型,如语义网、生物医学信息等。就现有的本体语言而言,其具体结构具有很大的相似性,大多数本体语言都包含类、个体、属性、关系等要素,有些还包括约束、规则、公理等。类是对象或事物的种类,个体是类的一个实例,属性是类或个体可能具有的特性等,关系是类或个体之间可能具有的联系方式。
1.2 类设计
我们从语义层面、表现层面、标注层面三个维度设计了领域知识的结构。目前知识数据的概念模式包括三大类:知识(Knowledge)、资源(Resource)、元数据(Metadata)。所有概念模型在数据库设计中皆是使用英语来标识,且每一个类包含了描述该类所需的属性。类以及其包含子类如图1所示,包含属性示例如图2所示。
知识(Knowledge)类是用于刻画知识内涵的基本单位,称为知识对象(或知识节点)。每个本体概念除了特有的属性外都有一个唯一标识用的ID属性,同一种本体概念的ID互不相同,但多个不同的本体概念可以使用相同的ID。这样的设计可以在精确编号数据的同时简化ID的命名,也有利于人工检查、维护和理解。如图2所示行列式的概念数据和名称数据使用了同一个名为determinant的id。
资源(Resource)类是可刻画知识点的表现形式,描述了知识点除语义外的具体内容是使用什么类型的资源进行表示。元数据(Meta)类,刻画知识对象和资源在界面中显示的标签,用于多语言显示,系统使用的标签,每一个都设为一个对象,系统加载是自动选择配置文件。如图2行列式这个概念有定义,定义具体的内容是id为determinant的文本资源类;行列式这个概念有名字,名字的具体内容是id为determinant的名称元数据类。
1.3 知识关系设计
除了类和属性外,完整的知识数据模型还应包含类之间的关系。为了充分记录知识类之间的关系,在领域知识的结构中设计了知识与知识之间的关系、知识与资源之间的关系和知识与元数据之间的关系。其常见关系如图3所示。
2 服务器设计
2.1 知识存储设计
在智能电子教科书项目中,首先将课本文本知识按照知识结构的存储模型进行拆解,然后按照知识的类型和关系将其存入数据库,以便后续进行管理和调用。项目初期按照知识语义拆分的工作需要人工完成,后期可以借助人工神经网络进行拆分。
数据库一般分为关系型数据库和非关系型数据库。传统的關系型数据库在存储和查找表型数据方面具有显著的优势,但是用在本项目设计的数学知识存储结构中却不太合适。这是因为关系型数据库需要使用额外的表来存储每一条数据之间的关系,这样的存储方式不够直观且不便管理。相比于关系型数据库,非关系型数据库种类繁多,其中有一类数据库称为图数据库。在图数据库中,数据不是按照表的方式而是按照图的方式存储的。图的存储方式中包含节点和边,正好对应知识模型中的类和关系。使用这类数据库不需要为固化知识数据进行额外的模型设计或改动,也为大量基于关系进行查询的事务提供了效率保障。
本文选用较为知名的开源项目Neo4j[14]作为智能电子教科书的图数据库。Neo4j作为开源软件拥有庞大的社区,便于资料查阅和后期维护,也能保证项目的质量和长期运作。作为高性能的图数据库,Neo4j的底层数据存储通过图而不是一般的数据库表来实现,这为基于大量关系型的查找提供了性能保障。基于Java的Neo4j可以跨平台运行在不同的服务器平台,甚至是树莓派这样的嵌入式平台,这也会对实验性研究提供极大的帮助。Neo4j不仅包括了一般数据库的特性,同时也是一个小型数据库系统,具备了如安全验证、用户登录、web交互管理界面等企业级的特性,为电子教科书系统的开发提供了极大的便利。
2.2 文档生成模块设计
智能电子教科书的最终目标是能够根据用户需求自动生成个性化的书本内容。例如,在学生通过智能电子教科书学习线性代数时,则其中的内容可以根据学生的能力自动做出适当调整。学习能力强、表现不错的学生在书本内容上就可以上展示更多的扩展内容,习题上也可以挑选难度较高的题目;成绩一般的学生在书本内容上就可以按照够用原则适当取舍,习题挑选简单和中等难度的题目,这样既可以满足练习需求也可以培养学习兴趣;接受能力偏弱的学生,在题目上可以多选取简单的题目,在保证学习知识的前提下不打击学习兴趣。
在目前的软件实现中先考虑如何利用知识模型自动生成文档。在知识模型的设计中,除了一般的知识类之外,还有如Aggregation这样的章节信息类。在现阶段的知识点录入中,知识数据是基于现有的纸质线性代数教科书进行人工语义解构得到的,章节信息类也一同参考原书进行录入。在解构原书章节及文档内容时,发现章节、文档结构的信息类相互之间表现为树状结构,遂以节点树记录原书的章节和文档结构,且该结构也有利于已有知识节点的快速重复利用。
为了保存用于生成文档的知识节点树以便多次使用,在智能电子教科书中使用JSON文件记录知识节点树,将每一个知识点以树的层级方式进行存储。图4展示了具有层级关系的知识节点在线性代数第一章的结构。图5展示了章节点的实际构成节点,这些节点皆是知识模型数据。
2.3 服务器架构设计
服务器的操作系统选用Linux的一个发行版本Debian。该操作系统具有良好的软件支持,易于部署和更新维护,且兼容项目中所需的运行库。服务器代码运行在Node.js平台上.Node.js是一个基于Chrome V8引擎的JavaScript运行环境。由于使用了事件驱动、非阻塞式I/O的模型,它具备轻量又高效的优点,同时拥有十分活跃的社区[15]。本小节讨论智能电子教科书服务器框架的选用,功能模块的设计,服务器多用户控制和日志系统的实现。
服务器通过面向对象的编程方式将所需要的功能封装成模块,在服务器主程序中调用。客户端调用服务器是基于Express框架实现的RESTful风格API。基于此风格设计的软件更为简洁、富有层次,易于实现缓存等机制,且有利于服务器和客户端相互脱耦,便于进行长期维护[21]。该项目的RESTful API结构设计如图6所示。
服务器的用户登录、会话保持与权限控制通过JSON Web Tokens(JWT)实现。JWT是一種用于安全表示双方请求的开源工业级标准(RFC7519)[16]。服务器通过对npm[17](Node.js包管理器)中的JWT官方库[18]进行适当封装,并配合Express路由进行操作权限的认证和过滤。用户数据在服务器中通过MongoDB进行存储。在服务器平台部署MongoDB的服务端后,智能电子教科书服务器通过封装MongoDB在npm上的官方库对此服务端进行连接调用。
用户权限管理是服务器安全稳定运行的重要保障,它可以保证数据的安全和满足特殊的访问需求。在智能电子教科书系统中,最重要的数据是Neo4j图数据库中存储的知识模型数据,而涉及的数据操作权限可概括为数据库的读权限与写权限。此外,由于知识模型数据在阅读者使用时会由服务器自动合成为所需文档缓存在服务器中。为了保证文档缓存在一定时期内具有一致性,所以还需为文档缓存的数据操作提供读取和刷新的权限。每种权限设计时要保持与其他权限的互斥,这样便可以用二进制的一个比特位来代表一种权限。例如,第一位表示数据库的读取权限、第二位表示数据库的写入权限、第三位表示文档缓存的读取权限、第四位表示文档缓存的刷新权限。在一个典型的电子教科书系统中,用户角色通常包括管理员、老师和学生。其中,管理员拥有全部权限,其对应的十六进制权限码是0xF,即四位比特全部为1;老师拥有知识模型的读写权限和文档缓存的读取权限,即二进制比特位的第一、二和三位应置为1,对应的十六进制权限码是0x7;学生只具有读取文档缓存的权限,所以十六进制权限码是0x3。权限码作为用户数据的一个属性记录在数据库中,在生成JWT时放入载荷中以便于用户访问时进行权限验证。
为保障服务器的正常运行,智能教科书系统还需要提供一个轻量级的日志系统来监控服务器的运行状态和敏感权限的操作。本项目中用JavaScript在Node.js下开发了一个具有多日志、日志分块、日志舍弃和多级别信息功能的日志模块。该日志模块的UML结构如图7所示。日志模块在日志写入超出单个日志文件大小时,会将当前日志文件加上序号并新建一个新的日志文件继续写入。在日志文件总数超过最大数量约束后,日志模块会删除最旧的日志文件。这样的写入逻辑既保证了日志系统仅占用固定的磁盘大小,同时也保障了系统故障之后一定时间内的日志可追溯性。
综上所述,智能电子教科书的服务器整体架构如图8所示。
3 客户端设计
客户端选用的开发框架是Ionic,它是一个基于Angular 和Cordova的混合应用架构。Ionic底层通过Cordova实现与平台无关的硬件调用,前端基于Angular的数据双向绑定和模块化实现了大量美观的控件。该混合应用架构通过将响应式网页内容部署到浏览器,再将传统应用中的硬件访问接口通过浏览器容器暴露给网页内容,从而实现一次开发、跨平台应用[22]。
智能电子教科书客户端通过混合架构技术,将具有较高性能需求的任务(如复杂的文档生成、推理演算等)交给高性能的云服务器,将对运算性能要求较低、面向使用者交互的功能(如文档渲染、知识模型数据编辑等)通过Cordova封装在不同平台的客户端以提供相同的用户体验。这样的架构可以减少用户对于高性能硬件的需求,但又可以提供相同的用户体验。此外,服务端没有像移动端那样的软硬件限制,可以更好地实现各类算法,也可引用其他成熟软件作为补足。
客户端需提供文档的渲染和编辑功能。渲染是将服务器生成的带有语义的文档缓存通过处理生成适合阅读且美观的HTML文档,同时在渲染的过程中还需在每个知识节点处加入跳转的锚记和编辑的按钮。编辑功能通过使用编辑器库CKEditor[19]实现数学公式友好的知识点编辑。文档渲染和编辑预览中的数学公式渲染由MathJax库[20]完成。客户端框架图和模块结构图如图9和图10所示。
4 系统展示
4.1 数据库展示
数据库存储了智能电子教科书系统中重要的用户信息、知识模型数据。本项目使用的数据库包括用于存储用户数据的MongoDB分布式文件数据库和用于存储知识模型数据的Neo4j图数据库,其中Neo4j存储的知识模型数据是本项目的关键数据。图11展示了用于构建线性代数第一章知识模型数据的节点拓扑图,图12展示了图11中所圈数据节点的详细结构。
4.2 客户端展示
客户端使用响应式布局,其应用界面根据平台和分辨率分为桌面端界面和移动端界面。在主界面中左侧是功能菜单,右侧是文档目录。主界面如图13所示。
知识模型数据的编辑界面和搜索界面具有一定的相似性,这是因为编辑是对各知识类及其相应关系的编辑,搜索也是基于知识类的各种属性、内容和关系进行检索。编辑界面和搜索界面的桌面版如图14所示。
客户端界面中最重要的功能是文档渲染。渲染所需数据来源于服务器根据JSON结构树自动生成的文档缓存。文档缓存经由HTTP协议传输到客户端后动态渲染为文档页面。客户端文档的渲染效果如图15所示。
编辑功能是智能电子教科书客户端所应具备的重要功能之一。它在支持即时的数学公式编辑预览的基础上,能够让具有编辑权限的用户(如老师)通过编辑按钮对知识点及时进行补充修订。客户端的编辑界面如图16所示。
此外,客户端还实现了关键词的搜索和高亮功能,极大地满足了使用者对于信息检索的需求。搜索高亮界面如图17所示。
5 总结与展望
本论文中我们以线性代数为例,从知识模型、服务器和客户端设计三个方面对智能电子教科书系统的实现原理展开研究,实现了一个初级版本的智能电子教科书系统,用于展示智能电子教科书的核心理念和设计框架。目前最新版本的智能电子教科书系统已经能够为用户提供知识点的增删查改、知识点数据的拓扑图浏览以及知识点的检索等功能,同时能够根据用户需求自动生成书本内容并将其渲染展示。为了实现教科书内容的精确查询、数学表达式的自动计算和书本内容的自动生成等功能,今后智能电子教科书系统的研究将致力于设计和开发一种介于自然语言和软件可识别语言之间的中间语言,用于完成知识数据在两种语言间的互相转换,进而实现用户友好的文档展示和软件工具的自动计算与自动推理。此外,利用互联网的群体协作能力可以调动大量用户的群体智慧参与到知识内容的创作中。随着教科书内容的不断完善,还可针对特定领域通过科学计算工具(如WolframAlpha,Maple等)实现自动计算、自动推理等功能,在此基础 上可针对教育领域开发自动测评和反馈的功能,并根据反馈信息自动生成符合用户需求的书本和测试内容。
未来软件的全平台或跨平台趋势已经不可阻挡,云应用就是一个很好的例子。近年来混合应用经过快速发展已经达到与传统应用平分秋色的水平,甚至之前只有传统应用才能实现的手写笔压感功能,在混合应用的容器中也有了相应的接口获取其压感和倾斜属性。本文除了对知识存储和知识管理等理论展开研究外,也是一次理论研究与工程实践的结合,通过混合应用技术来实现前景广阔的智能电子教科书系统。本文实现的智能电子教科书系统只是一个初级版本,希望这些理论和项目基础可以为后续研究做出贡献。
参考文献
[1] Shepperd J A, Grace J L, Koch E J. Evaluating the electronic textbook: is it time to dispense with the paper text?[J] Teaching of Psychology, 2008, 35(1): 2-5.
[2] 李林, 王冬, 覃文圣, 張淑琴, 高栩. 论电子教材取代纸质教材发展趋势的必然性[J]. 中国信息界, 2011, (5): 42- 44.
[3] Chen X. Electronic geometry textbook: a geometric textbook knowledge management system[C]. Proc. of ICM 2010. Springer, Berlin, Heidelberg, 2010: 278-292.
[4] Chen X, Wang DM. Towards an electronic geometry text-book[C]. In: Proc. of ADG 2006. Springer, Berlin, Heidelberg, 2006.
[5] Quaresma, Pedro. Towards an intelligent and dynamic geo-metry book[J]. In: Mathematics in Computer Science, 2017, 11(3-4), 427-437.
[6] Cohen A M, Cuypers H, Verrijzer R. Mathematical context in interactive documents[J]. Mathematics in Computer Science, 2010, 3(3): 331-347.
[7] Chaudhri V K, Cheng B, Overtholtzer A, Roschelle J, Spaulding A, Clark P, Greaves M, Gunning D. Inquire biology: a textbook that answers questions[J]. AI Magazine, 2013, 34(3): 55-72.
[8] Nkambou R, Azevedo R, Vassileva J (eds.). Intelligent tutoring systems[M]. Proc. of ITS 2018. Springer, Charm, 2018.
[9] Al-Fedaghi S. Developing web applications[J]. International journal of software engineering and its applications, 2011, 5(2): 57-68.
[10] Pinto C M, Coutinho C. From native to cross-platform hybrid development[C]. Proc. of IS 2018. IEEE, 2018: 669-676.
[11] Huynh M Q, Ghimire P, Truong D. Hybrid app approach: could it mark the end of native app domination?[J] Issues in Informing Science and Information Technology, 2017, 14: 049-065.
[12] 邓志鸿, 唐世渭, 张铭, 杨冬青, 陈捷. Ontology研究综述[J]. 北京大学学报(自然科学版), 2002, 38(5): 730-738.
[13] Nicola A D, Missikoff M, Navigli R. A software engineering approach to ontology building[J]. Information Systems, 2009, 34(2): 258-275.
[14] Neo4j Graph Platform-The Leader in Graph Databases. [DB/OL]. https://neo4j.com/.
[15] Node. js.[DB/OL] https: //nodejs. org/.
[16] JSON Web Tokens-jwt.io.[DB/OL]. https: //jwt. io/.
[17] npm Documentation.[DB/OL] https: //docs. npmjs. com/.
[18] auth0/node-jsonwebtoken: JsonWebToken implementation for node. js.[DB/OL] https://github.com/auth0/node-jsonwebtoken.
[19] CKEditor | Smart WYSIWYG HTML editor | Collaborative rich text editor.[DB/OL] https://ckeditor.com/.
[20] MathJax | Beautiful math in all browsers.[DB/OL]. https:// www.mathjax.org/.
[21] Riva C, Laitkorpi M. Designing web-based mobile services with REST[C]. Proc. of ICSOC 2007. Springer, Berlin, Heidelberg, 2007: 439-450.
[22] Huynh M Q, Ghimire P, Truong D. Hybrid app approach: could it mark the end of native app domination?[J]. Issues in Informing Science and Information Technology, 2017, 14: 049-065.