支持Web 公式语义化的数据库设计

2021-10-18 08:57王则栋李滕飞王宇璐王抵修吉林建筑大学吉林长春130118
科学技术创新 2021年27期
关键词:数学公式题库数据流

王则栋 张 磊 李滕飞 王宇璐 王抵修*(吉林建筑大学,吉林 长春 130118)

1 概述

随着网络技术的不断发展,建设题库系统成为开展网络教育的重要手段之一。各种题库系统被相继提出,这也对题库维护子系统的建设和更新提出了新的要求。目前关于高等数学的题库系统较少,本文提出一个支持数学公式语义化的高等数学题库系统,对数学公式在Web 端的显示和语义化数据库进行了深入的研究与实现。

2 历史与现状

自1994 年万维网产生以来,数学公式在Web 端的交互就一直是人们研究的热点和难题。

最初大多采用图片上传的方式。一些人采用Word 或MathType 等编辑器把数学公式输出为图片形式保存到数据库中并在Web 端应用[1]。但是这种图片形式的数学公式不能进行查找和索引,更重要的是没有语义[2],这不利于信息的处理。并且图形文件占用存储空间较大,对数据库的读写和备份造成影响,而且数据重用性能也很差。

LaTex 是一个科技文献的排版系统,它虽然未采用所见即所得的编译方式,但也一直是科技文献排版的有效工具。在Web端也有人做成了用LaTex 表示公式的系统。但对于不懂LaTex的人来说,问题依然没有得到解决。

MathML 用标记的形式表示数学公式,它作为XML 的子集成为数学公式在Web 端交互的新的方案。MathML 文档是自描述的,这种特性使它成为数学信息的良好载体,为数据库提供了良好的接口[3]。基于MathML 的数学公式显示和编辑方案,是在网页上对数学公式数据进行解析并统一处理成MathML 格式,最后保存到数据库进行管理[4]。但是,MathML 代码难以在前端实现交互,在数据库中的存储也略显臃肿并且未能提供有效的CSS 样式支持[4]。

MathJax 建立了LaTex 和MathML 之间的联系,成功的实现了网页的交互。

3 系统方案

我们的系统方案如下:

数学公式在Web 端交互是每个数学题库的核心。考虑到存储的方便性,我们将数学公式转换成形式较为简单的latex 代码。

前端设计一个UI 界面,其中包含各个公式类,点击调用对应JS 函数类,将界面输入的参数转换成对应的LaTex 和MathML 代码,并将它们保存到数据库之中。显示是从数据库中调用相应的MathML 代码,直接插入到HTML 文档中。

4 数据库设计

数据库设计是至关重要的环节,良好的数据库设计可以为系统维护和后续开发扩展提供便捷。在设计过程中,应提供一定的可扩展性方便数据结构的更改。

4.1 设计方案

数学题库的数据库设计有将整个题目存入一个表的方案,本数据库设计的核心在于语义化的建设,因此对一个完整的数学题目按题目类型分成若干个文字部分、数学公式以及图片部分,并对这三个部分分别建表。其中图片部分是为了保存题目可能给出的示意图。同时,对每张表都添加了主键,以及通过外键约束规则来保证数据完整性。采用分开存储建表的方案具有如下特点:

4.1.1 对数据库进行了优化,使性能更强。当数据库中的表越小时,在它上面执行的查询也会越快。因此,相比于将一整个题目存到一个表里,按部分分开存提高了一定的性能。并且,在数据类型的选择上也做了优化,尽量使用可以正确存储数据的最小数据类型[6],并设置了相对较小的字段属性,使得查询更快。

4.1.2 更好地体现了语义化,将数学公式单独存放使语义化的解析更加明晰。

4.1.3 使数据库表的结构更为统一。由于解答题、选择题等题目类型可能存在示意图,题目和图片本就应该分开存放,将题目再次分为文字部分和公式部分,可以使表的结构整齐,易于阅读维护。

4.1.4 方便Web 端对样式的控制。由于文字和数字、公式在Web 端显示的大小、字体、行距不一致,将其分开存放便于对样式的控制,使Web 端显示出的公式更为美观。

4.1.5 体现了良好的可扩展性。本方案目前在后端数据库存放的是公式LaTex 代码,同时在题目公式表中也存放了MathML格式。由于公式与题目文字分开存放,在后期研究数学公式在Web 端交互的其他方案,可以直接存入不同格式的代码以寻求更优解,例如我们同时已经存放了公式MathML 格式。这样,语义化就更容易实现了。

数据流图是通过图形的方式来描绘信息流和数据从移动到输出的过程中所经受的变换[5]。数据流图可以很好地显示主要数据流数学公式如何通过系统前进以及被存储在何处,其数据流图,如图1 所示。

图1 数据流图

4.2 数据库表的设计

通过对题库系统的业务分析,设计了录题表、题库表、题目文字表、题目公式表、用户信息表、录题员表、公式表、特殊符号表等8 类表。其中录题表保存的是已录入的题目,经过审核后放入题库表中;公式表和特殊符号表存放的分别是不同公式模版及各种特殊符号的LaTex 代码。下面分别给出题库表、题目文字表、题目公式表这三张核心表的数据库表结构。

4.2.1 题库表

题库表是整个系统最核心的表,用来保存录入并通过校对的题目。题库表结构设计如表1。

表1

4.2.2 题目文字表,如表2。

4.2.3 题目公式表,如表3。

表3

结束语

本文介绍了一种能够便于数学公式在Web 端交互的题库方案的数据库设计,该设计使Web 交互与题库维护更加便捷,且为后续语义化应用打下了良好基础。

猜你喜欢
数学公式题库数据流
优先级驱动的泛化航电网络实时性能分析
形神兼备,聚焦小学数学公式定律教学策略
国家职业技能鉴定铸造工职业题库开发成果审定会在沈阳召开
汽车维修数据流基础(上)
汽车维修数据流基础(下)
基于XML的数据流转换在民航离港系统中应用
“整式的乘法与因式分解”优题库
数学难题解开啦
脑力急旋风
活用数学公式 优化数学课堂