关于Moodle XML结构的题目及其离线编辑器设计

2013-03-16 07:51耀,徐
中国医学教育技术 2013年5期
关键词:编辑器离线文档

王 耀,徐 鹂

浙江医药高等专科学校图书信息中心,浙江 宁波 315100

1 背景和需求

Moodle是一套基于开源软件的课程管理系统,它为用户提供一种动态的学习环境。在网络教学或在线学习的过程中,练习、测验或考试环节可以帮助学生检验所学内容的掌握程度,同时也可以帮助教师评估教学的效果和质量。对于Moodle课程管理系统所代表的一类开源网络教学平台而言,题库资源的建设具有十分重要的作用[1-2]。然而,题库中题目的录入和编辑对于教师来说并非易事。在教学实践中,通常遇到的情况是在线录入或编辑题目的效率低下,事倍功半。因此,人们希望能够利用一些辅助编辑题目的软件工具,采用离线编辑、在线导入的方法,借此解决题目录入和编辑的效率问题。

关于离线编辑题目,目前所见到的方法:一是利用文字处理软件(或其建构的模板)进行编辑[3],二是利用某些特定的软件工具进行编辑[4]。两种方式最终都通过把结果保存为Moodle系统支持的题目格式文件,实现后续的在线导入。

尽管存在一些离线编辑题目的工具和方法,然而这些工具往往不是专为Moodle题目的编辑设计的。由于软件功能缺失、操作不便等因素,有些时候教师会觉得使用上存在困难。譬如:教师在教学实践中积累了丰富的、以电子文档形式保存的题目资源(如试卷等),他们不仅希望可以直接输入题目信息,而且能够(以某种形式)批量导入电子文档中的题目,进行编辑。教师对于离线编辑器的需求可以用UML用例图来说明,如图1所示。

假定教师有一套MSWord格式的题目需要最终存放到Moodle系统中去,那么可以先将此套题目另存为纯文本格式(TXT文件),再导入到离线编辑器中进行编辑,完成后保存为Moodle XML格式的文件以便供Moodle系统导入,反之亦然。从Moodle系统导出的XML文件能够由离线编辑器处理。当然,也可以把编辑的题目按纯文本格式导出到TXT文件,供其他字处理软件(如MSWord)编辑。总之,对于题目编辑器的需求,不仅要对符合Moodle XML格式的题目进行编辑,而且也要支持TXT文件的导入和导出。

2 Moodle XML题目格式

Moodle系统中支持多种题目格式,既可导入又可导出的题目格式只有两种:Moodle XML和通用导入格式技术(general import format technology,GIFT)[5-6]。相比而言,Moodle XML支持的题目信息更为完整,适合外部程序用来与Moodle交换题目数据。

2.1 文档结构

Moodle XML格式遵循万维网联盟(world wide web consortium,W3C)的 XML 1.0规范。下面是一份Moodle XML格式文档的例子,包含了一道填空题(shortanswer)的描述。

<?xml version="1.0"encoding="UTF-8"?>

<quiz>

<question type="shortanswer">

<name>

<text>汉代我国第一部药学专著</text>

</name>

<questiontext format="html">

<text>汉代我国第一部药学专著是( )。</text>

</questiontext>

<generalfeedback>

<text/>

</generalfeedback>

<defaultgrade>1</defaultgrade>

<penalty>0.1 </penalty>

<hidden>0</hidden>

<shuffleanswers>0</shuffleanswers>

<usecase>0</usecase>

<answer fraction="100">

<text>神农本草经</text>

<feedback>

<text/>

</feedback>

</answer>

</question>

</quiz>

XML文档用的是UTF-8编码,整体结构是以<?xml version="1.0"encoding="UTF-8"?>开始,每份文档只有一个<quiz>标记,用来包含整个测验或考试信息;在<quiz>标记中可以安排多个<question>标记,用来描述多个题目信息。

2.2 树状结构

一般而言,Moodle XML是通过question元素节点的type属性来区分题目类型的。一份Moodle XML格式文档通常包含各种不同类型的题目,为了直观起见,可以用树状结构来表示,如图2所示。

图2 moodle xml文档的树状结构

可以看出,Moodle XML文档在根节点下用quiz节点统领各类question节点,每个question节点大致包含问题和答案两部分。问题部分通常有name(题目名称)、questiontext(题目内容)、generalfeedback(一般反馈)、defaultgrade(默认得分)、penalty(罚分因子)、shuffleanswers(答案重组)这类节点(为了简化图形,图中以<question>表示),也会有single(单项选择)、usecase(大小写字母敏感)等专属节点;答案部分以answer节点形式组织,不同题型的answer节点可以不止一个,也可以没有。图中,选择题(multichoice)至少有2个以上的answer节点,描述题(description)没有answer节点,而匹配题(matching)的answer节点位于了subquestion节点之下,2个小题至少有3个可供匹配的answer节点。

Moodle系统支持多种题目类型[7],数字题(numerical)、是非题(truefalse)、论述题(essay)格式安排与选择题大体相似,但完形题(cloze)和计算题(calculated)题型格式较为复杂,将在后面讨论。

3 题目编辑器的设计

对于Moodle XML文档,可以考虑用XML文档对象模型(document object model,DOM)来解析和处理[8]。XML DOM是W3C推荐的标准,定义了XML文档中元素的对象、属性及其访问的方法。运用XML DOM,编辑器首先加载XML文档,并把XML树状结构存储在内存当中,通过DOM实现对XML元素的获取、更改、添加或删除等操作。

3.1 功能设置与界面设计

考虑到教师对于离线编辑器的需求,在软件功能设置上,应该包括对Moodle XML文档的加载和保存、对题目文字的编辑操作以及对一般文本格式题目文档的导入和导出等功能。在软件界面设计上,应考虑方便教师使用,合理安排功能区域,如图3所示。

图3 题目编辑器的图形界面

菜单栏中文件菜单用于新建、打开和保存XML格式的题目文件,以及导入或导出TXT文本格式的题目文件;编辑菜单用于常规的文字编辑操作;题目菜单用于题目的定位和删除;工具菜单用于编辑时的辅助操作。

题型区列有选择、填空等九种题型,用来表示当前的题型状态,也用于题型转换;题目区左侧为题目内容编辑框,其下方的答案区用于输入各类题型的答案、问题、公式以及可能的反馈,还有答案的得分率;参数区可设置一些常用的选项,状态栏则显示题目的总数和当前题号。

对于多数题型来说,上面的功能设置已经够用了。完形题和计算题由于格式上的特殊性,在设计和处理上需要作特别考虑。

3.2 完形题的处理

在Moodle XML格式中,填空题只能有一个填空位置,而完形题(cloze,又称克漏字)则可以设置多个填空位置。完形题没有专属的answer节点,它的答案信息是同题目内容放在一起的。譬如:

中药有毒成分的限量指标一般应包括({1:shortanswer:%100%毒副作用成分#答对了!})、砷含量、({1:shortanswer:%100%重金属含量})和({1:shortanswer:%100%农残量})等。

题目中有三个填空位置,每个填空位置用特定的格式表示答案信息。完形题的答案是嵌入在问题中的,有几个填空位置,理应有几组答案。完形题答案信息格式如图4所示。

图4 完形题的答案信息格式

答案信息放置在一对花括号之中。每个填空都可以设置分值(grade),默认为1;填空类型(type)可以是填空(shortanswer,缩写 SA)、数字(numerical,缩写NM)和选择(multichoice,缩写MC);答案(answer)之前的等号表示正确、无符号表示错误,也可以用得分率(fraction)表示答案的正确程度(100%正确,0%错误,50%半对);答案之后可以跟反馈信息(feedback);答案连同反馈可以出现多次,用“~”号分隔。

在完形题型中,填空类型还可以附加信息,如大小写字母是否敏感、选择下拉菜单还是按钮、按钮排列的方向,等。对这种繁琐的格式,让普通教师去编辑题目不太合适,既容易出错,又容易失去耐心。

在设计中,我们可以考虑输入时对完形题的填空位置进行编号(如#1、#2、#3等),用编号去对应答案分组,答案格式由系统去合成。这样,完形题的输入变成了对每个填空按不同类型的输入,就像普通的选择题、填空题和数字题一样,输入界面上也可以统一起来(如图3所示)。

由于每一道完形题都可能有多组答案,因此需要在内存中建立一个答案索引表。每当输入界面上填空位切换时,对应的答案信息都可以从这张表中检索出来,如图5所示。图中number表示每组答案的选项个数,address表示对应答案的起始地址。

图5 完形题的答案索引表

通过对题目编辑器GUI界面和内部算法上的处理,教师在输入完形题时不再面对复杂的填空格式,如同其他题型那样去编辑完形题。

3.3 计算题的处理

在Moodle系统中,计算题型与其他题型最大的不同在于它可以在题目信息中使用计算公式,譬如问{x}加{y}等于多少?编辑时答案填算式{x}+{y},答题时要回答该算式的计算结果。这里变元{x}和{y}实际上是一种通配符,只要指定其取值范围,系统就会为每一变元生成一个数据集(dataset),出题时{x}和{y}随机代换成各自数据集中的某一数值。

计算题型的XML格式中,除问题和答案部分外,比其他题型多了一个数据集定义部分(dataset_definitions),如图6所示。每个变元都有自己的数据集定义(dataset_definition),包含name(变元名)、minimum(最小值)、maximum(最大值)、decimals(小数位)、dataset_item(数据项)等节点。这里,数据项是系统根据最小值和最大值限定的范围随机生成的一组数据,图中的number是数据的编号,value则是数据值。

图6 计算题的数据集定义

计算题型可以设置的参数是比较多的,譬如对于变元可以指定计算单位(unit),对于数据集可以指定状态(status)是自用(private)还是共享(shared),等。这些参数对于教师来说不一定用得着,所以在软件设计时可以将其作系统内部处理(设为默认值或保持原有设定值),在软件界面上只安排name、minimum、maximum等基本参数的输入区域。如果教师确实需要设置这些参数,可以在题目导入到Moodle系统后通过在线编辑的方式调整。

Moodle软件自2.0版以后新增了计算题型的两个变体,即简单式计算题型(calculatedsimple)和选择式计算题型(calculatedmulti),前者是对计算题型的在线输入过程作了简化,后者则是在答题时像选择题型那样选择计算结果。两种新题型的XML格式与原计算题型基本相同,设计时一并考虑。

3.4 文本格式题目的导入

要批量导入纯文本格式文档中的题目,关键在于题目编辑器能否辨识出文档中的题目信息。尽管这类文档格式可能五花八门,但像试卷之类的文档,一般有约定俗成的格式,如图7所示。

图7 试卷的一般格式

我们注意到,如果把题目编号开始的一段题目信息看成是“题目”的话,那么试卷体就是一个“题目序列”,编号就可以作为辨识题目开始和结束的标志。在程序设计时,可以用正则表达式来匹配题目编号。例如正则表达式:

“^s*[((]?s*?第?[d|一二三四五六七八九十]+s*?[、.)。)部章节]”

可以匹配大多数的题目编号,它表示可能是空白字符开头、前后有特定的标点符号或文字、中间是数字编号的字符串。有些中文文档中会出现两种全角空格(0x3000或0xE5E5,UCS-2编码),设计时也可以考虑进去。

在题目编辑器执行导入操作时,首先处理试卷头信息(跳过或保留),之后每当匹配到题目编号,系统会进一步分析其后跟随的题目信息。如果能判定出题目类型,则后续的题目可以按对应题型处理,譬如是选择题型,还可以去提取答案选项;如果不能判定,就处理成描述题型,待导入完成后,教师可在编辑环境中调整题目类型、内容、答案、参数等信息。

在Moodle系统中,描述题型是一种特殊的题目类型,是以题目的形式包装一些说明性内容,组卷时可以放在试卷需要说明的地方。上文中把待定“题目”处理成描述题型,实际就是想利用描述题型的性质容纳题目信息,这样可以使得电子文档中的题目信息一次性导入到系统之中,提高录入效率。

该文在分析Moodle XML题目结构的基础上,讨论了与其相适应的离线编辑器的设计要点,所涉及的内容或需求均来自于笔者在Moodle系统上的应用实践[9],也是笔者探讨开放教育资源与教学活动相互融合的一种尝试。笔者在2010年12月完成了题目编辑器的第一个版本,2012年12月升级到了第二版。经过两年多的实际应用,软件得到了逐步改进和完善,在网络课程资源的建设中起到了有效的、积极的作用。

[1]凌晨,王一鸿.基于Moodle的题库建设和应用研究[J].软件导刊,2010,9(11):162-164

[2]陈声健.基于Moodle的在线考试系统的设计与实施[J].中国教育信息化:高教职教,2010,(7):64-66

[3]刘荣光,刘贯南.巧用Word模板制作Moodle XML格式的测验题[J].中国信息技术教育,2009,(1):63-66

[4]代永平.用HTAs编写Moodle试题导入文件生成工具[J].中国教育信息化,2010,(21):85-88

[5]moodle.org.Import questions[EB/OL].http://docs.moodle.org/25/en/Import_questions,2013-05-20

[6]moodle.org.Export questions[EB/OL].http://docs.moodle.org/25/en/Export_questions,2013-05-20

[7]moodle.org.Question types[EB/OL].http://docs.moodle.org/25/en/Questions,2013-05-20

[8]张欣毅.XML简明教程[M].1版.北京:清华大学出版社,2009:302-317

[9]徐鹂,王耀,王伟聪,等.Moodle系统的集群方案与案例分析[J].计算机应用与软件,2012,29(1):224-229

猜你喜欢
编辑器离线文档
浅谈Matlab与Word文档的应用接口
异步电机离线参数辨识方法
有人一声不吭向你扔了个文档
司空见惯感觉烦 锁屏画面快走开
浅谈ATC离线基础数据的准备
FTGS轨道电路离线测试平台开发
你距离微信创作达人还有多远?
车辆段收发车运行图编辑器的设计与实现
离线富集-HPLC法同时测定氨咖黄敏胶囊中5种合成色素
Word文档 高效分合有高招