线性代数动态教科书系统的设计与实现

2018-06-29 06:00宇,杨
物联网技术 2018年6期
关键词:知识库教科书定义

乔 宇,杨 静

(1.广西民族大学 信息科学与工程学院, 广西 南宁 530006;2.广西民族大学 软件与信息安全学院, 广西 南宁 530006;3.广西混杂计算与集成电路设计分析重点实验室,广西 南宁 530006)

0 引 言

随着“互联网+”时代的到来,人们获取知识和信息的方式越来越高效便捷。信息技术的飞速发展和移动互联网的日益普及也促使教育行业迎来前所未有的变革。当前教育信息化带来的积极作用主要体现在增加学生与学生、学生与老师之间的互动以及借助网络加快知识传播。在当前教学实践中,教学手段的革新主要表现为教学活动的多媒体化。但学习者与教科书等静态学习资源之间的交互缺陷却没有得到明显改善。现有的电子教科书大多仍以静态形式呈现,仅提供最基本的浏览功能,不易呈现知识的内在结构与关系,用户无法完成内容修改和自动检测等交互工作,难以实现知识层面的共享。此类电子教科书固然能满足用户最基本的学习需要,却无法满足个性化学习需求。因此开发智能化交互式电子教科书系统是我们应当研究并解决的问题。

电子教科书的智能化是指电子教材不仅能够实现基本的增、删、改、查,还可进行复杂的数学计算与推理。近年来,符号计算和自动推理领域的学者们对智能电子教科书系统的实现进行了多方面探索性研究。王东明和陈肖宇等以几何电子教科书为例,通过对几何知识的形式化表述和管理[1,2],设计并实现了一个几何知识库[3,4],生成了一个初级版几何动态教科书系统[5,6]。蔡川和苏伟等对数学公式的表示转化、搜索[7-9]等问题进行了研究,为智能教科书系统的开发提供了技术保障。

本文从线性代数知识管理的角度出发,根据教学中的实际需求,研究线性代数的知识数据管理问题,基于已有的符号计算与自动推理技术,设计并实现了一个初级版线性代数动态教科书系统,增加了用户与教材之间的交互,进而方便线性代数课程的学习。

1 线性代数知识库的设计与实现

线性代数知识库是线性代数知识管理软件的重要组成模块,也是线性代数动态教科书系统的核心内容,可为智能教学平台提供数据支持。线性代数教材中所包含的数学定义、定理、公理等叙述性知识是线性代数知识库的主要构成部分,也是知识管理的主要内容。应不同用户的使用需求,知识库内容需要用不同的形式表达,如形式化表示和自然语言表示等。由于线性代数相关软件所需知识大抵相似,因此,构建一个标准化的知识库不仅可以满足本系统的数据需要,也可为其他线性代数软件提供数据支持。

1.1 线性代数知识的标准化

知识库中内容的呈现形式由线性代数软件的需求决定,包括知识表述的语法检查、自动翻译和自动计算等。而要对线性代数知识进行处理,则要将知识封装成不同的类型。在线性代数学科中,知识类型可分为定义、定理、引理、推论及证明等。由于线性代数的知识对象以叙述性内容为主,且每一种知识类型可以包括多个知识对象,如不同的定义及定理等,因此,应对线性代数知识数据进行详细划分,并从中提取出不同类型所对应的数据项。

本文采用形式化语言表示知识数据,用其约束文本内容语法,以便进行语法检查,实现翻译与自动推理功能。一阶逻辑语言是描述数学知识最方便且强大的形式化语言,可用于描述由个体、函数及关系构成的简单数学命题和由简单命题通过量词和命题连接词构成的复杂命题以及命题之间的逻辑关系,在建立数学语言和数学推理的形式化系统过程中始终处于核心地位。在检查逻辑公式的完整性时,一阶逻辑的确可以起到比较有效的作用,但一阶逻辑语言本身并不能表达知识的意义。因此在使用一阶逻辑语言进行表述的基础上,还需为知识数据的子语句与数据项添加类型约束,以便语法检查。形式化表述的基本形式如下所示:

Type mathNoun(Type element1, Type element2,…)

Type Predicate(Type element1, Type element2,…)

线性代数知识表述中的名词概念被形式化为名词项,各名词之间的关系形式化为谓词语句,知识数据的形式化语言是由逻辑词将形式化的数学概念名词连接组成的语句。对线性代数知识数据的处理都以这些概念名词为基本单位。线性代数概念的形式化表述中使用的名词项与谓词称为词汇(Vocabulary),而(Type element1, Type element2,……)称为线性代数形式化表述的参数列表(AttributeList)。

有了知识对象的形式化表述,可按以下方法实现自动翻译。翻译过程包括以下两个步骤:

(1)将各子语句中的概念名词、逻辑连接词翻译为目标语言、标点符号或连接词;

(2)将翻译后的语句组合连接。

随着知识库的扩展,会产生更多复杂概念添加到知识库中。这里的复杂概念是由简单概念组合得到的新定义。因此,需要将简单概念的形式化表述及翻译对应概念的脚本存储于数据库中。在对新插入的复杂概念进行自动翻译时只需匹配词汇与参数表,找到翻译脚本来翻译其中的简单概念,进而将各简单概念组合连接即可。除概念的词汇及形式化表述的参数表外,还需设置知识类型中的其他属性,包括以下几种:

(1)Type: 形式化表述的线性代数概念类型;

(2)FormalDefinition:线性代数中概念的形式化表述;

(3)NaturalDefinition:线性代数中概念的自然语言表述,包括多种语言版本(如中文、英文等)的表述;

(4)FormalRepresentation:线性代数中其他知识对象的形式化表述;

(5)NaturalRepresentation:线性代数中知识对象的自然语言表述。

为满足用户基本的查询需求,需设置以下属性:

(1)KnowledgeName:线性代数知识对象的名字;

(2)KeyWords:线性代数知识对象的关键字。

(1)ObjectID:线性代数知识对象的唯一标识符;

(2)UserName:知识对象创建者的用户名。

1.2 线性代数知识库设计与实现

1.2.1 线性代数知识对象之间的关系

设计知识库的结构必须理清线性代数知识对象之间的关系。这些关系类型可分为以下四种:

(1)线性代数概念之间的继承关系(Inherit)。所有基本概念定义后,新概念的引入都来自基本概念。一个线性代数新概念由两部分组成,即此概念的父概念和新特性。例如,由矩阵概念可引出方阵概念,除继承矩阵的概念外,方阵的新特性是行数和列数相等。

(2)线性代数知识对象之间的语境关系(Context)。定义与知识对象之间可以构成语境关系,这是线性代数教科书中最广泛的关系。知识对象可以是定义、定理、公理、练习或命题对象。

(3)线性代数知识对象之间的导出关系(Derivation)。数学知识的积累就是以基本概念为基础,经逻辑推理而演绎出不同定理,进而生成庞大的数学知识库。

(4)线性代数知识对象之间的关联关系(Associate)。一个完整的知识点由定义、定理、推论等共同组成,这就是定理、定义等知识对象之间的关联关系。

(4)我们将向“一带一路”沿线发展中国家提供20亿元人民币紧急粮食援助,向南南合作援助基金增资10亿美元,在沿线国家实施100个“幸福家园”、100个“爱心助困”、100个“康复助医”等项目。我们将向有关国际组织提供10亿美元落实一批惠及沿线国家的合作项目。

线性代数知识结构即是所有知识对象之间关系的分类与集合。为清晰呈现知识对象之间的关系,现为知识库结构引入以下属性:

(1)Precursor:表示线性代数知识对象的前件;

(2)Subcursor:表示线性代数知识对象的后件;

(3)RelationType:表示线性代数知识对象之间的关系。

1.2.2 知识库的结构设计与关系呈现

通过上述分析与设计实现了线性代数知识库的建立,此知识库能够存储和管理线性代数知识对象所封装的线性代数知识数据。线性代数知识库中的所有数据来自文献。目前,有许多数据库关系模型,从中选择使用最广泛、功能最强大的关系型数据模型作为知识库的数据模型,并依据系统需求与表间的依赖关系设计知识对象模型。

知识对象之间的联系通过可视化工具呈现。目前比较通用的可视化工具主要有GraphX,Gephi及Prefuse。但GraphX缺少较好的动态效果,Gephi更适合大型数据的关系呈现但不能详细刻画节点间的关系。而本系统的需求是体现各节点之间的关系,因此选择Prefuse作为本系统的外接包。

Prefuse交互信息可视化可通过引用Java中可扩展的软件框架Prefuse Toolkit实现。首先,将知识库Knowledgemapnode表中的元素传入到Table对象Node中;其次,将KOStructure表中的元素传入到另一个Table对象Edge中;最后,Graph()方法会根据Edge中的参数信息,将Node中的信息按照记录好的关系模式显示出来。本系统部分知识关系如图1所示。

图1 知识关系直观图

1.2.3 知识数据管理

线性代数知识库使用数据库管理系统MySQL Server作为数据管理工具,使用JavaSwing设计开发知识库管理界面。知识数据管理界面如图2所示。

图2 系统知识管理界面

用户可通过此界面增加、删除以及修改定义、定理、引理、推论等知识对象所封装的知识数据。由于线性代数的部分概念(如矩阵、线性方程组等)需要使用特殊格式才能在页面呈现,因此需在管理界面上创建网页版MathType链接,在MathType中编辑公式并转化为MathML[10]代码,浏览器读取MathML代码后即可正常显示数学表达式。而目前只有Firefox浏览器能完全支持MathML的识别,因此产生的html文件只能通过Firefox浏览器运行。

知识库为用户提供查询与浏览功能。用户可通过关键字或知识名查询知识库中是否存在某些定义或定理所对应的知识数据,并可对查询到的知识数据进行修改。

2 线性代数动态教科书系统的人机交互界面及呈现

2.1 人机交互界面

传统教科书编写系统以文本形式进行线性编辑,生成的教科书最终以文本文档的形式存储。而采用文本编写需在最终定稿前进行多次修改,特别是长篇幅的教科书在对内容与结构做修改时需要不断对文档进行查找与定位,而且对教科书内容维护及处理的过程比较耗时。清晰的内容结构不仅可以增强文档的可读性,还可以帮助读者根据结构层次获取知识内容。

教科书的内容通常被统一划分为多个章节,每章内容被划分为若干节,每节按定义、定理、证明、例题、练习等进行知识分类。基于上述线性代数知识数据的封装与分类思想,同时为改进线性编辑模式缺陷,将教科书界面设计为由节点组成的树形结构,所有树形节点按照教科书的“章-节”层次结构分类,每个叶子节点表示不同的知识对象,并显示知识类型名与知识名。每个节点所存储的知识对象都有相应的objectID值与之对应,并链接到知识库相关的知识数据中。因此,若用户需要调整教科书结构,则可直接对目录树进行操作,而对内容的修改则通过节点转化为对知识库中知识数据的修改。

为方便对知识库进行管理,线性代数动态教科书系统通过管理界面向用户提供新建与维护教科书的操作,包括向树形结构目录中添加、删除或检索节点,修改节点在知识库中对应的知识数据,任意拖动节点(特别地,当子节点拖动到父节点的同级节点中时,此节点会成为另一个节点的子节点)等。

线性代数动态教科书系统还向用户提供了智能化辅助功能。在用户创建教科书的过程中,每一种操作都需经过一定的处理以实现实时检测的功能,确保教科书内容的非冗余性、结构一致性,并实现线性代数的自动计算。操作流程如图3,图4所示。

2.2 线性代数动态教科书的内容呈现

用户不仅可通过树形目录结构调整教科书,修改其知识结构与内容,还可将教科书中的内容以传统的排版形式呈现出来,供浏览或打印。系统通过节点获取相应知识对象的ObjectID,用户可根据自己的需求选择目标对象所封装的知识内容,再调用线性代数知识库的浏览功能以生成可在浏览器中呈现所选知识内容的html文件,文字排版可自动实现。

在实现文档的自动呈现时,系统先将数据库内容通过程序转换成xml文件,再通过XSL将xml文件转换成html文件,这个过程即为XSLT(EXtensible Stylesheet Language Transformations,XSLT)。另外,系统还为用户提供语言选择功能,以便用户实时切换教科书的显示语言,使得教科书系统能够便捷地构建和维护不同语言版本的文档。为便于用户更好地理解文中出现的知识点,系统还为文档中出现的知识名附加了链接,点击可跳转至知识名的详细内容页。

图4 拖动树形目录节点的操作流程

2.3 系统智能化功能的实现

2.3.1 语境关系自动推理

教科书所包含的知识内容之间存在各种各样的关系,而这些关系在组织教科书结构以及安排教科书内容中起着重要作用,其对教科书的构建必不可少,因此,需将其作为元数据存储在知识库中。这些关系的获取主要有两种方式:一是在创建知识对象的同时用ObjectID创建相应的联结;二是根据线性代数知识数据的形式化表述自动推理出知识对象之间的关系。由于在线性代数的表述中概念的语义是由定义体现的,因此,概念与用以表述线性代数内容的知识对象之间构成了语境关系。

实现语境关系的自动推理要首先从知识库中获取线性代数概念(记为D)的形式化表述,其次通过程序处理将形式化语句中的括号、标点符号、等号以及and,or,not或where等连接词去掉,得出的结果即为与该概念形成语境关系的知识对象,最后将结果分别对应的ObjectID值返回到用户界面。继承关系的自动发现则需检测处理形式化语句后得到的结果中是否包含形如MathNoun1:FatherMathNoun或MathNoun2 where Predicate (Type element1, Type element2,…)的表述。若为前者,则继承关系为D→Inherit fatherMathNoun;若为后者,则继承关系为D→Inherit mathNoun2。返回结果如图5所示。

图5 知识关系的检测结果

2.3.2 教科书内容与结构的自动检测

用户在构建及使用教科书系统的过程中,增加、删除及移动等操作会导致线性代数教科书内容和结构的变化。因此每次操作后,系统都会自动检测与被操作的知识节点构成语境关系的所有知识对象是否全部在此节点之前被定义过。若不是,则表明对此节点进行定义时所用到的知识对象中有未被定义的,或检测之前的知识节点在进行定义时,组成语境关系的所有知识对象中是否有当前节点;若有,则表明有知识对象在当前节点在未被定义的情况下使用。上述两种情况的发生都告诉用户:修改或拖动的不合理导致教科书结构出现了问题。例如,如果将矩阵概念从教科书中删除或拖动至树形结构后,那么在教科书中表示单位矩阵概念以及其他以矩阵为父概念的目录节点就会提示错误。在新建某知识对象并形成节点N1后,系统会检测并返回与新添加知识有直接关系的知识对象集合,再查看知识库中是否包含集合中的所有元素,若不全部包括则会提示添加缺少的知识对象,如图6所示。点击添加并生成节点N2后,若尝试将节点N2拖动至N1后面或将节点N1拖至N2前面,则导致教科书结构不合理,节点颜色发生变化并提示出错,如图7所示。

图6 推理出的未被定义知识对象

图7 不合理拖动操作后的错误提示

2.4 线性代数的自动计算

自动计算页面通过html,css技术结构将用户在html页面中输入的参数传给JavaScript,由Sylvester完成计算过程并将结果返回到html界面实现。在html计算界面中,用户输入数据后点击Compute按钮,即可得出计算结果并返回界面。目前,计算界面可实现的计算有矩阵的求秩、逆、转置、上上三角化、加、减、乘、方阵的行列式计算以及奇异矩阵的判定。

3 结 语

本文主要研究并实现了一个动态、交互、易维护的线性代数教科书智能系统。首先探究了线性代数知识库的构建及知识数据的形式化与结构化,进而呈现了对线性代数知识数据进行管理的人机交互界面,最后展现了知识对象之间关系的自动发现、结构一致性与内容冗余性检测及自动计算的实现过程。今后的研究工作主要包括三方面:一是改善线性代数知识库的结构设计使其应用更为广泛;二是为系统连接外部软件以利用形式化语言调用其做更复杂的计算;三是优化线性代数知识数据的处理算法以实现更智能化的功能。

[1] CHEN X Y, WANG D M.Formalization and specification of geometric knowledge objects[J]. Mathematics in computer science, 2013,7(4):439-454.

[2] CHEN X Y, WANG D M.Management of geometric knowledge in textbooks[J]. Data & knowledge engineering, 2012(73):43-57.

[3]王东明,黄荧,陈肖宇.几何知识库的设计与实现[J].计算机应用,2009,29(2):398-402.

[4] CHEN X Y, HUANG Y, WANG D M.On the design and implementation of a geometric knowledge base[C]. Post-proceedings of the 7th international workshop on automated deduction in geometry.berlin: Springer-Verlag, 2011.

[5]陈肖宇.电子几何教科书系统的设计与实施[D].北京:北京航空航天大学,2011.

[6]CHEN X, ZHAO T, WANG D.GeoText:An intelligent dynamic geometry textbook[J]. ACM communications in computer algebra, 2013,46(3/4):171-175.

[7] SU W, WANG P, LI L, et al.MathEdit, A browser-based visual mathematics expression editor[C].Proceedings of the 11th asian technology conference in mathematics,2006.

[8]蔡川,苏伟,李廉.Presentation数学公式到Content转换关键问题研究[J].计算机应用与软件,2012,29(8): 30-33.

[9]陈立辉,苏伟,蔡川,等.基于LaTex的Web数学公式提取方法研究[J].计算机科学,2014, 41(6):148-154.

[10] BERT B. MathML [EB /OL].(2017-11-20) [2016-06-18]. http: //www. w3. org /Math /.

[11]蒋磊,吴孔逸,陈肖宇.几何知识资源分享平台的设计与实现[J].计算机应用,2014,34(S1):189-192.

[12] CHOU S C, GAO X S. Automated reasoning in geometry [C].Handbook of automated reasoning,2001.

猜你喜欢
知识库教科书定义
《备急千金要方》:中医急诊教科书
基于TRIZ与知识库的创新模型构建及在注塑机设计中的应用
对一道教科书习题的再探索
被藏起来的教科书
高速公路信息系统维护知识库的建立和应用
基于Drupal发布学者知识库关联数据的研究
修辞学的重大定义
山的定义
位置与方向测试题
教你正确用(十七)