中国音乐考古资料计算机系统的设计与实现
方建军 西安音乐学院音乐学系
稿源:中音网
[内容提要]“金石之乐:中国音乐考古资料计算机管理系统”是一个试行开发的数据库软件,本文对这一软件的设计意图和部分功能的实现做了较为详细的介绍和说明。 [关键词]音乐考古/计算机/数据库 1995年,作者参加于四川成都召开的第四届全国音乐艺术院校音乐研究所工作暨学术研讨会,提出了建立中国音乐考古资料计算机管理系统的初步构想和基本框架。1996年,研制开发出《中国出土古代乐器信息管理系统》,并于《交响》1996年第3期予以公布。稍后,又在此版本基础上进行较大的修改和增订,扩充了系统管理范围,编译形成《金石之乐:中国音乐考古资料计算机管理系统》(Bscm for Dos)。1997年10月,作者参加于贵州贵阳召开的第五届全国音乐艺术院校音乐研究所工作暨学术研讨会,在贵州大学计算机网络中心演示了金石之乐,引起了一些学者的兴趣。贵阳会后,作者对这一软件又进行修改补充,升级为金石之乐2.0版(参见李纯一《试用〈金石之乐〉2.0》,《音乐研究》1998年第3期)。今将金石之乐的设计意图和部分功能的具体实现方法写出,以供读者参考并望批评指正。 1.设计意图和操作流程 本软件的设计坚持既要有前瞻性,又要顾及目前实际的原则,从音乐考古学的具体研究对象和内容出发,注重音乐考古学学科自身的特性,力求使软件达到简易实用的目标。 目前先开发Dos下可独立运行的系统,编程语言采用Foxpro 2.5 for Dos。系统建构为五大模块,即数据录入、检索统计、数据维护(备份、修改、删除、浏览)打印输出(分库打印输出)和其它(Dos外壳、系统使用说明等)。软件界面设计为组合式下拉菜单、多窗口和滚动列表。录入界面采用卡片式,以.FMT格式文件进行编译。数据查询运用Foxpro的Rushmore和SQL技术,实现对数据进行单项、组合、模糊等多种方式的任意查询和自动统计,并可对查询结果打印输出。单项查询以固定模式进行,组合查询由用户录入查询项,模糊查询使用户只需知道所查数据中的任意一两个字,即可准确快捷地查找记录并进行统计。 根据时下一般计算机用户软硬件基本主设施条件,制定本软件至少适用于下列运行环境: 机型:IBM 80386及其兼容机或更高 内存:4兆或更高 Dos版本:MS Dos 5.0或更高 汉字系统:直接写屏汉字,如UCDOS、天汇、中国龙、启明星等。 中文输入法:简拼、双拼、五笔字型、自然码或其它 打印机:24针窄行或宽行打印机,喷墨或激光打印机 本软件应与一般数据库管理系统软件有所区别,即它所建立的数据库都不是空库,而是包含了相当数据资料的实体型数据库。为此,预先收录1949年以来(时间下限截止于1995年)公开发表的中国出土古代乐器和音乐图像的基本资料和线索,以及古代乐器测音结果数据和部分中外文音乐考古研究文献篇目,这样可节省用户大量的调研和数据录入时间,并可在此基础上将新的数据补充添加到数据库中,对数据进行刷新、修改、删除等编辑操作。 中国音乐考古学研究的资料主要包括考古发现的乐器、音乐图像(指反映音乐生活内容的古代美术作品)和涉及音乐的古文字(指甲金简帛等文字)三类。其中出土乐器数量最多,分布于全国绝大多数省区,其真实性和具体性很强,因而是中国音乐考古资料最重要的和最基本的组成部分。这三类资料的公布和发表与音乐考古学研究成果的载体一样,即一般为纸质文献。因此,目前本系统所建立的就是一个管理音乐考古学纸质文献的电子数据库。 然而,古乐器资料和音乐图像资料的构成并非单纯的文本格式,二者都有图片格式资料,古乐器且有一定数量的音响格式资料。图片格式和音响格式资料的管理需要更为完备的软硬件设施,也需要大量的实地考查和采集,加之作者水平有限,故目前暂且放弃管理相关的图片资料和乐器的原始音响资料。涉及音乐的古文字资料虽然不是很多,但这类资料包括图形和象形文字,它们一般都是电脑汉字库里所没有的,用户需要掌握造字程序(如UCDOS的MKHZ.EXE或MKFNT.EXE),方能解决这一棘手问题,这确属不易。因此,本系统也只好暂不管理这类资料,待将来条件具备时,再试行开发一种支持古文字输入,具备音乐图像存储和显示功能以及古乐器音响存储和播放功能的多媒体数据库系统。 根据以上考虑,拟定软件开发的工作流程。工作流程分为音乐考古资料和计算机资料的搜集整理以及数据库软件程序的编写调试两个步骤,兹将具体的操作项目图示于下: 搜 集 资 料 编 写 程 序 | | | | | | | | | 音 实 数 计 程 编 调 数 安 乐 物 据 算 序 写 试 据 装 考 调 采 机 框 源 与 录 程 古 研 集 资 图 程 编 入 序 资 料 序 译 料 由于作者在计算机语言方面纯属自学,所以在编程和调试环节上遇到了不少难题,在反复试验、摸索和调试中花去了不少的时间和精力。不过,也由于作者主要从事音乐考古学的教学和研究,所以在软件设计中容易着眼于本学科的实际,使程序编写与本学科的使用需求相结合,这样开发出来的软件虽然显得比较稚嫩,但对于从事音乐考古及其相关学科的教学和研究来说,也许是较为适用的。 2.数据库结构与系统文件 金石之乐数据库由出土乐器、测音结果(分钟类乐器、磬类乐器和吹管乐器测音结果三个子库)、古乐图像和研究文献等四个主数据库组成。这四个数据库的录入菜单项如下所示: 数据录入 出土乐器数据录入 测音结果数据录入 古乐图像数据录入 钟类乐器测音数据录入 研究文献数据录入 磬类乐器测音数据录入 吹管乐器测音数据录入 数据库结构的合理安排,是建库的基础。数据库字段的选择,关系到软件的实用性和便利性。 在制定出土乐器数据库结构时,作者起初考虑用乐器名称作为录入字段,如“磬、甬钟、瑟、琴......”等等,但实践表明,以乐器名称作为数据库字段,会使数据库的字段数目大为增加,至使数据结构极为庞杂。并且,由于还有一些我们所知或不知的乐器品种尚未发现,使得数据结构无法更新,即不能真正穷尽所有乐器品种。另外,在用Browse命令进行数据浏览时,二维表格的横向显示过于冗长,难以一目了然。鉴此,在数据库中反映不同的乐器品种时,改定为“乐器品种”字段,由用户自行录入乐器品名,这样,即使有些乐器在学术界存有争议而一时不能定名,也可随其所取,并可随学术的发展而不断进行修正。如果有新的考古发现,更可随机补充,使数据结构具有相当的灵活性。不仅如此,在数据浏览时还可使乐器品种的显示由最初设计的横向变为纵向,并便于建立索引文件,为同类乐器进行数据排序。 基于这样的思路和方法,制定出本系统所有数据库的字段结构。 出土乐器数据库的录入字段有下列九项: 乐器品种(字符型)--供输入乐器品名。 数量(数值型)--供输入乐器件数而非套数。 时代(字符型)--含考古学文化或类型。 国别(字符型)--含出土乐器的族属。 出土时间(字符型)--仅限于年份,如1978或82-85。 出土省区(字符型)--仅限于省份。 出土地点(字符型)--供输入具体出土地点。 发表文献(字符型)--含书刊名称、出版社和出版(刊)日期。 备注(备注型)-供输入详细资料。 录入字段具有数据校验功能,系统会有提示信息,以增加数据录入的正确性。其它各数据库同此。 有些乐器虽然品种不同,但在出土时间、地点、国别、时代和发表文献等方面均相同,即都是出自同一时间和地点,属于同一个时代和国家,并同于一篇发掘报告中发表。在这种情况下,为了提高整体录入速度,可以采取“重复上一条记录”的方式进行数据录入。例如,对于同出一墓的不同品种乐器,按以上各字段先录入一条数据,再以“重复上一条记录”的方式进行录入,这样,除对乐器名称、数量和备注等进行简单的覆盖式修改外,其余字段无需重复录入。其它各库也有这种录入方式。 “数量”字段设置为数值型,录入项中的“数量”可以为零,这是因为考虑到有些出土乐器残缺不全,无法判断件数,或发表的原始资料本来就未明确件数,所以用零来表示出土数量不详,以待将来考实后加以改正。 “出土省区”字段是因为考虑到对出土乐器的分省区统计而设置。 “备注”字段可录入大量详细的数据,其容量在理论上仅受磁盘物理空间的限制。在录入备注字段时,只要屏幕显示的录入框宽度被占满,所录文字便可自动向左滚动。 在乐器测音结果数据库中,不同的子库其录入字段也不尽相同。钟类乐器测音数据库的录入字段有下列九项: 乐钟类别(字符型)--指不同的钟类乐器,如甬钟、钮钟、钲,等等。 出土地点(字符型) 时代(字符型) 数量(数值型)--此项输入不能为零,系统会自动校验。 标本号(字符型)--指乐器的考古标本号或馆藏号。 正鼓音(字符型)--用音高符号标记,如#A4+23。 侧鼓音(字符型)--标记方式同正鼓音。 发表文献(字符型) 备注(备注型) 以上未注明字段的含义和用法与出土乐器数据库字段相同(下同)。 石磬测音数据库的录入字段有下列六项: 石磬数量(数值型)--输入不可为零。 出土地点(字符型) 标本号(字符型) 音高(字符型) 发表文献(字符型) 备注(备注型) 吹管乐器测音数据库的录入字段有下列八项: 乐器品种(字符型)--指不同种类的管乐器,如笛、埙、箫、篪,等等。 出土地点(字符型) 时代(字符型) 孔数(数值型)--指按孔数目。 孔(管)序(字符型)--指发音孔(管)的序号,用阿拉伯数字表示。 音高(字符型) 发表文献(字符型) 备注(备注型) 古乐图像数据库的录入字段由下列十项构成: 图像种类(字符型)--指图像的质料和形式,如画像石、壁画,等等。 数量(数值型)--输入不可为零。 图像内容(字符型)--指涉及的音乐(乐器)内容。 时代(字符型) 国别(字符型) 出土时间(字符型) 出土省区(字符型) 出土地点(字符型) 发表文献(字符型) 备注(备注型) 本库“图像种类”和“图像内容”两项可由用户自行定义。 研究文献数据库的录入字段有下列五项: 分类(字符型)--指研究的类别或范围。 作者(字符型)--仅限于第一作者。 论著(字符型)--指论著名称。 出版(字符型)--包括出版社、出版时间或刊物名称、刊期等。 备注(备注型) 本库“分类”项具有一定的灵活性,用户可根据自己的见解和习惯来分类。 数据库的建立为系统主程序的编写打下了坚实的基础,经最后调试、编译和数据录入,形成如下系统文件: TJB.DBF 中国出土古代乐器数据库 TJB.FPT 中国出土古代乐器数据库备注文件 TJB.CDX 中国出土古代乐器数据库索引文件 BELL.DBF 钟类乐器测音数据库 BELL.FPT 钟类乐器测音数据库备注文件 BELL.CDX 钟类乐器测音数据库索引文件 STONE.DBF 磬类乐器测音数据库 STONE.FPT 磬类乐器测音数据库备注文件 STONE.CDX 磬类乐器测音数据库索引文件 PIPE.DBF 吹管乐器测音数据库 PIPE.FPT 吹管乐器测音数据库备注文件 PIPE.CDX 吹管乐器测音数据库索引文件 IMAGE.DBF 古乐图像数据库 IMAGE.FPT 古乐图像数据库备注文件 IMAGE.CDX 古乐图像数据库索引文件 PAPER.DBF 研究文献数据库 PAPER.FPT 研究文献数据库备注文件 PAPER.CDX 研究文献数据库索引文件 README.TXT 系统使用说明文档(文本格式) BSCM.BAT 启动系统的批处理文件 MUSIC_.EXE 系统主程序 以上系统文件全部压缩于一张3.5英寸软磁盘上。 3.数据的浏览、查询和统计 数据浏览犹如读一部数据字典,看到的数据不能杂乱无章,而应条理清晰、井然有序。为此,应对数据进行分类排序。音乐考古资料既有时间性,也有空间性。对于专业研究人员而言,都想从多角度来了解和运用它,这就需要有多种适于专业要求的特定的分类排序方式。 例如,我们想从出土乐器数据库浏览一下全国范围内出土的石磬,这应该按乐器品种来分类排序。但仅仅如此并不能满足我们的需求,我们想让所有的石磬按地区、时代和国别来排排队,这就需要多级组合排序。此外,我们还想用多种方式浏览出土乐器情况,诸如河南地区都有哪些乐器?属于战国时代的乐器都有哪些?楚国的乐器都有哪些?等等。为此,设计之初即拟定出土乐器数据库的浏览方式有按乐器品种分类排序、按出土地区分类排序、按乐器时代分类排序和按乐器国别分类排序等四种,用户可按系统提示用功能键选择自己需要的浏览方式。 按照这样的设想,对音乐考古资料数据库建立.CDX复合索引文件,根据需要选出索引关键字,以便按不同方式进行浏览。例如,按乐器品种分类排序的次序为: 乐器品种+出土地点+时代+国别,索引关键字是Class(乐器品种) 同理,拟定古乐图像的浏览方式为按图像内容分类排序、按图像种类分类排序、按出土地区分类排序、按图像时代分类排序和按图像国别分类排序等五种。研究文献的浏览方式有按作者姓名分类排序和按研究类别分类排序两种。 测音结果数据库分别对三个子库进行分类排序。钟类乐器测音结果的数据排序次序是乐钟类别+出土地点+时代+国别+标本号;石磬测音结果的数据排序次序是出土地点+时代+国别+标本号;吹管乐器测音结果的数据排序次序为乐器品种+出土地点+时代+国别+孔序。 对于数据库管理系统来说,仅有数据浏览功能是远远不够的,我们想以更快的速度搜索到符合设定条件的数据,并对有关数据进行统计分析和打印输出,这就需要对数据进行多种方式的查询统计。 查询统计是数据库管理系统的核心。为满足用户查取资料的不同需求,本系统对所有数据库均设有多种查询统计方式,并可实现对查询记录的打印输出。数据统计都是自动进行,可以轻而易举地获取多种统计数据,不少统计结果是作者以往手工存取资料所未知的。 出土乐器数据库的查询统计方式有下列九种: 按乐器品种检索统计--先弹出库存所有乐器品种的滚动列表,然后移动光标键选择要查找的乐器品种,用Enter键确认后即可执行查询。显示所查出土乐器的详细数据、所查乐器总数、所查乐器记录总数、库存记录总数、库存乐器总数和各乐器品种的出土数量统计结果等。 按出土地区检索统计--弹出库存乐器所在地区名称滚动列表(操作方法同上,下同),显示所查地区出土乐器的详细数据、所查地区乐器记录总数和乐器总数、库存记录总数和库存乐器总数以及全国各地区出土乐器数量统计结果等。 按出土地点检索统计--以人机对话方式进行模糊查询。只要输入出土地点中的任意两个字,即可得到相应的查询结果。显示所查地点出土乐器记录总数和乐器总数、库存乐器纪录总数和库存乐器总数以及各出土地点或墓葬出土乐器数量统计结果等。 按乐器时代检索统计--弹出库存乐器所属时代名称滚动列表,显示所查时代出土乐器的详细数据、所查时代出土乐器记录总数和乐器总数、库存记录总数和库存乐器总数以及各时代出土乐器数量统计结果等。 按乐器国别检索统计--弹出库存乐器所属国别名称滚动列表,显示所查国(族)出土乐器的详细数据、所查国(族)乐器记录总数和乐器总数、库存记录总数和库存乐器总数以及列国(族)出土乐器数量统计结果等。 按乐器数量检索统计--弹出库存乐器组合(件数)滚动列表,显示所查组合(件数)出土乐器的详细数据、所查组合(件数)出土乐器记录总数和乐器总数、库存记录总数和库存乐器总数以及各组合(件数)出土乐器数量统计结果等。 按出土时间检索统计--弹出库存乐器出土年代滚动列表,显示所查某年出土乐器的详细数据、所查某年出土乐器记录总数和乐器总数、库存记录总数和库存乐器总数以及历年出土乐器数量统计结果等。本查询对音乐年鉴的专题撰写很有帮助。 按发表年代检索统计--弹出对话框,输入所查乐器的发表年代,显示所查某年发表的出土乐器详细数据、所查某年发表的出土乐器记录总数和乐器总数、库存记录总数和库存乐器总数。本查询对音乐年鉴的专题撰写也很有用。 综合检索统计--以人机对话方式进行组合查询,本查询给出一个菜单,显示下列十一种查询条件: 地区+品种 地区+件数 地区+国别 品种+件数 品种+国别 国别+件数 地区+品种+件数 地区+品种+国别 地区+件数+国别 品种+件数+国别 地区+品种+件数+国别 使用时可以移动光标键进行选择,然后按提示输入查询条件。现以“地区+品种+件数+国别”为例,其输入提示信息如下: 找哪个地区? 什么乐器? 多少件? 哪个国家? 必须满足以上四个条件,方可显示查询统计结果。否则,系统会告知“无此数据!”。 测音结果检索统计包括钟类乐器、石磬和管乐器三个数据库的查询,查询方式分别按出土地点和乐器品种两种进行,操作方法与出土乐器检索统计相类。 古乐图像检索统计方式有按图像内容检索统计(模糊查询)、按出土地区检索统计、按出土地点检索统计(模糊查询)、按图像时代检索统计、按图像国别检索统计、按出土时间检索统计、按发表年代检索统计、按图像种类检索统计等八种,操作方法也与出土乐器检索统计大致相同。 研究文献检索统计方式有按作者姓名检索统计(模糊查询)、按研究类别检索统计和按出版年代检索统计等三种,操作方法也与出土乐器检索统计相类。需要指出的是,按作者姓名检索统计时,只需输入作者姓名中的任意一个字,即可快速进行搜寻,获得查询的结果。 4.余论 关于建立音乐资料数据库的问题,第四届和第五届全国音乐艺术院校音乐研究所工作暨学术研讨会都进行过专门讨论。我以为,就目前现状来看,建立音乐资料数据库似不宜一统天下,而应分而治之。比如,现在来开发一种包揽无遗的全国性各类音乐资料的大型数据库,恐怕要花费很多的人力、物力和时间等。而各音乐资料收藏单位可以先建立自已的馆藏库,同时组织专人进行音乐学科库(或称音乐专题库,金石之乐即属此类)的建库工作,在一定范围内进行数据交换或交流,并逐步向院校间的网络化过渡,最终达到音乐资源的共享。 馆藏库和学科库可以并行发展,二者不是相互取代,而是互为补充。学科库的建立应从音乐学科的实际研究需求着手,使音乐数据的存取更符合学科的专业特点,为音乐专业工作者提供研究的便利。从此而看,学科库应是馆藏库的深化。 无论馆藏库或学科库,编程语言不一定拘泥于某一种,而应根据实际情况择善而从,但须保证今后数据交流时在技术上不存在难以克服的障碍。 建库工作虽应具备一定的灵活性,但也应考虑它的统一性。因此,需要进行总体规划和分工合作,尤其是学科库的建立,更应使各学科的音乐学专家与计算机程序员密切合作。 程序的设计开发应该主要求助于计算机程序员,这能节省相当多的时间从而缩短开发的周期。音乐学家必须参与并指导程序的开发,还应积极学习一些计算机知识。音乐学家懂得的计算机知识越多,与程序员之间的沟通就会越好,合作开发出来的数据库软件就越有可能便利实用。 [附记]金石之乐V2.0软件已于1999年9月16日通过专家鉴定,详见《交响》1999年第3期第12页。 作者简介:方建军,男,1962年出生。文学硕士,西安音乐学院音乐学系教授。 《中国古代乐器概论》教学课件说明 方建军 西安音乐学院音乐学系 本课件根据作者所著《中国古代乐器概论》(远古--汉代)一书为脚本而制作。课件运用Powerpoint的超级链接功能,使教师在讲解时可随意切换。课件制作时注意使文字简洁,具有一定概括性,并根据讲解对象的特点,适时显示古乐器图片和实际音响(目前暂以 MIDI作成的模拟音响代替)。 本课件的最终设想:扫描大量相关图片,编辑形成图库。对已经收集的古乐器音响录音进行编辑,并进行文件格式转换,使之成为真正的多媒体课件。 |