APP下载

数据库管理软件在考古报告编写工作中的应用

2024-01-11祁冰谢尧亭

文物季刊 2023年4期

祁冰?谢尧亭

摘要:本文以山西翼城大河口西周墓地Ⅱ区的报告整理过程为例,介绍了利用数据库管理软件实现将田野考古原始数据转换成考古报告文本的方法。以此种方法生成的报告文本支持随时修改文本格式和原始数据,从而将负责资料整理的考古学者从大量机械重复的数据统计、核对检查工作中解放出来,改进了报告整理的工作流程,加快了科研成果转化的速度,顺应了考古学吸纳新方法、新技術的时代趋势。

关键词:考古报告整理 考古数据库 FileMaker Excel Power Quary

Abstract: Taking the compiling process of excavation report of the AreaⅡ in Dahekou cemetery of Western Zhou, Yicheng county, Shanxi province as an example,this paper introduces the method of transforming the original archaeological data on field work into excavation report by using database management software.The report text generated by this method supports the revision of text format and original data at any time. This liberates the archaeologists from a large number of mechanically repeated data statistics checking and inspection, improves the work process of report collation, speeds up the transformation of scientific research achievements and conforms to the trend of archaeology to absorb new methods and technologies.

Keywords: Compile of archaeological reports Archaeological database File Maker Excel Power Quary

前 言

20世纪60年代后期,随着计算机性能的提高和社会相关需求的增加,计算机数据库系统出现并很快被应用于生产生活之中。20世纪80年代,我国就有学者倡导将计算机数据库技术与考古学研究结合。其后数十年,越来越多的学者进行了实际应用和理论探讨。近年来,随着个人计算机的普及与具备图形化操作界面的数据库管理软件的完善,计算机数据库系统的技术门槛被大幅度降低,其在考古行业中的应用已屡见不鲜。但是,目前考古工作者对数据库管理软件的使用多集中于田野发掘阶段的存储材料和室内研究阶段的分析数据等方面,而对于资料整理与报告编写阶段中的应用方法则谈及较少,缺乏可供参考的案例。众所周知,考古资料的整理是一项耗时耗力的繁琐工作,同时又是将原始材料变为科研成果的关键环节。因此,如果能够在资料整理过程中充分利用数据库管理软件强大的“数据处理”功能,即可大幅度提高其中部分基础工作的效率和准确性、降低人工和时间成本、加快学术成果的转化速度。

大河口西周墓地位于山西省翼城县县城以东约6000米处大河口村北的台地上,整个墓地共有西周墓葬2200余座。为便于开展工作,我们将该墓地划分为13个区域。其中,Ⅱ区位于墓地中部偏西,共有墓葬90余座,以中小型土坑竖穴墓为主。考虑到该区墓葬的特点,我们在整理资料过程中尝试采用了计算机数据库技术,取得了较好的效果。下面就以报告文本中字数多、内容繁的“墓葬分述”部分为例,介绍我们利用“低代码”数据库软件实现将原始资料直接转化成考古报告文本的具体方法。

软件的选择与报告体例的确定

目前市面上流行的数据库管理软件众多,体量和功能也不尽相同,我们通过比对各软件的上手难度、购买价格等特点,最终选择了Claris FileMaker Pro和Excel Power Query来完成整个工作流程。

确定报告的体例是报告编写工作的第一步。我们在参考学习《天马—曲村》等经典报告的基础上,结合大河口西周墓地的特点,制定了包括章节大纲、段落结构在内的详细编写体例,其中“墓葬分述”部分的体例示意如下:

墓葬情况

(1)位置(该墓葬在所属发掘区的具体位置及其与周边遗迹的关系。)

(2)墓向

(3)墓圹(墓葬整体形制、墓口形状、现墓口距地表深度、墓口尺寸、墓壁剖视形状、墓壁形态、二层台情况及尺寸、墓内填土情况、腰坑的有无及其特征等。)

(4)葬具(葬具规格、保存状况、结构、棺椁板的数量和尺寸、垫木等其他附属结构的具体情况等。)

(5)葬式(墓主葬式、头向、面向、双手位置、年龄、性别等。)

(6)随葬品数量及放置情况(墓葬每个空间每个方位随葬品的详细放置情况,包括种类、数量、件号等。)

(以上所有内容需根据墓葬具体情况进行增删,保持结构明确、语意连贯,防止机械死板,对于特殊的遗迹现象要重点详细描述。)

随葬器物

(按照材质、类别依次介绍所有随葬品,具体信息包括器物号、保存情况、材质、形制、纹饰、制作痕迹、尺寸等。)

数据库的建立与数据录入

我们选择使用Claris Filemaker Pro来完成数据库的建立与数据录入工作。该软件可以处理图片、文本等数据,支持xlsx、csv等表格文件的导入导出,自带轻量化编程语言,界面简单、易于上手。建立数据库之前,要对原始资料进行整理检查,充分了解数据的整体情况,保证数据条目内容的“正确性”和“相容性”。数据库的建立过程共分三步。

第一步,编制数据表单。为了能够全面准确地记录大河口墓地Ⅱ区各墓葬的诸项信息,我们以《田野考古工作规程(2009版)》中的相关要求及各类表格为参考,制定了一系列电子表单,用以分类记录各项数据。根据表单对应的具体数据内容,可将其分为两个类别,与遗迹有关的表单包括:墓葬数据库、人骨数据库、兽骨数据库、墓葬照片库、墓葬线图库,与遗物相关的表单包括器物数据库、器物线图库、器物照片库。在各个表单中,我们分别为墓葬、器物、照片、线图等内容设计了尽可能多的属性(即数据库软件中的“字段”)以供填写。虽然每个数据条目的“字段”繁多,但是由于FileMaker等数据库处理软件都拥有输入界面布局设计功能,通过合理规划设计,可以轻松实现输入界面的“多而不乱”(图一)。

第二步,设置表单间关系。将墓葬数据库中的“墓葬编号”字段与人骨数据库、兽骨数据库、墓葬照片库、墓葬线图库、器物数据库中的“所属墓葬”字段关联;将器物数据库中的“(器物)合成编号”字段与器物照片库、器物线图库、器物拓片库的同名字段关联。经上述操作后,即完成对整个数据库系统中数据表单间对应与层级关系的设置(图二)。

第三步,设计智能化输入界面。该部分工作的最终目的是为了便于后续数据的输入,主要通过修改各输入栏的呈现方式和简单的脚本编辑来实现。大体分为如下几种情况:一、添加相关记录跳转和新增记录功能。在输入界面添加具备“转到相关记录”、“添加新记录”等功能的按钮,便于随时浏览和检索相关数据。二、设置多样化的输入栏。为规范描述语句和统一表达方式、加快输入速度,我们将一部分“字段”的输入方式更改为单选框、多选框和下拉菜单。例如:墓圹信息中存在一些可定性描述的特征,该类特征的输入栏可设置为“单选按钮”的样式(图三,左)。三、优化输入界面的显示逻辑。我们主要采用了两种方式。(一)通过在输入信息所用文本框的“隐藏对象时间”属性内输入判断语句,实现某些字段的输入框可以根据相关内容自动显示或隐藏。如:当“腰坑有无”字段的内容为“无”时,则不再出现腰坑相关信息的输入框。(二)利用复制、粘贴、新增条目等简单脚本,自动填写一些固定格式的内容,在提高输入速度的同时避免了人工输入过程中可能出现的错误。如:当需要在器物数据库中新加随葬品时,只需要直接点击现有器物编号后面的“+”按钮,即可出现新的空白输入界面,并自动将原有器物编号加1后填写在器物编号字段中。四、为了能够更加直观地反映葬具、随葬品等与墓葬之间的“一对多”关系,我们还在墓葬数据库中设置了“入口工具”以批量显示人骨数据库、器物数据库中的相关记录,便于浏览、编辑(图三,右)。

完成数据库的建设之后,即可组织人員进行数据输入。需要补充的是,以上数据库还可以通过进一步完善功能的方式,应用到从现场发掘到室内整理的各个工作环节之中。示例如下:

一、增加“数字化墓葬发掘日记”功能。田野考古工作中需要对各种遗迹现象和现场判断进行全面记录,传统的纸质发掘日记仅能记录文字和草图,虽然发掘者可以利用照相机和摄像机进行一些信息补充,但是需要在每天发掘结束后及时对照片、视频进行整理,费时费力。Filemaker具有全平台覆盖的特点和云端服务功能,可以很好地优化上述工作流程。首先为已有数据库设计“发掘日记”和“发掘日记附件”表单,在表单中添加时间戳、创建人、所属墓葬(文本类型)、正文(文本类型)、附件(容器类型)等字段;再利用“所属墓葬”字段将两份表单分别与“墓葬数据库”建立关联并在对应界面添加“入口”工具以罗列相关内容;最后优化输入界面布局,使其适应手机的屏幕尺寸。完成上述步骤之后,数据库中就被添加了“数字化墓葬发掘日记”模块(图四,1)。将此数据库上传至软件的云端服务器,参与发掘的工作人员就可以在手机端的Filemaker Go应用中,通过输入预先分配好的账户名和密码来访问数据库并进行编辑,实现团队协作、实时录入(图四,2)。该数字化日记中每篇日记的“创建人”和“时间”会根据实际情况自动生成,防止出现错误,而且除了文本以外,该日记的“附件”中还可以加入照片、录像、录音等内容,记录手段十分丰富。

二、增加“数字三维模型浏览”功能。考古工作者在进行器物描述和后期研究过程中需要反复观察遗迹的图像资料和遗物本体。通过现代数字三维重建和三维扫描技术获得的高精度模型,既丰富了遗迹和遗物信息的记录方式,也为上述工作提供了便利。这类数字三维模型资料也可通过数据库进行管理,以实现随时调取查阅、多类信息比对的目的。基本工作思路是:先将制作好的高精度数字三维模型通过虚幻(Unreal)引擎打包制作成可以独立运行的可执行文件(图五,1);再将其保存在数据库根目录下的一个特定文件夹中;最后在数据浏览界面添加“查看模型”按钮,通过为该按钮添加“打开文件”脚本实现通过器物编号寻找对应的文件并将其打开的效果(图五,2)。

数据转换与合成

输入完数据的下一阶段工作,就是通过数据库管理软件中的数据处理功能将各条原始数据进行转换并最终合成完整的报告文本。下面就依据体例要求,从“基本思路”“计算脚本、函数参数”“生成结果”三个方面介绍我们所采用的方法。

一、Filemaker中的数据处理

通过分析制定好的体例可知,“墓葬情况”中除“随葬品数量及放置情况”以外的部分以及“随葬器物”中每件器物的具体描述部分都以词句的拼接组合为特点,适合在FileMaker中通过编辑脚本完成。具体方法介绍如下。

在“墓葬数据库”和“器物数据库”表单中分别添加一个“计算”类型字段,依次命名为“墓葬情况描述合成P1”、“随葬品描述合成”,设置其计算结果为“文本”类型,通过编辑该字段的脚本,让各数据库中的字段按照体例要求的格式存储在这一字段中。脚本中需要用到List(列表)、If(判断)等函数以及连接“&”、换行“?”和空格等符号。其中List用于逐一罗列“一对多”条目的内容,如某一墓葬中的椁、棺。If函数用于判断特定字段的填写内容,并根据判断结果生成对应的文本。连接符、换行符和空格用于调整文本格式。为了便于后续修改,避免脚本行数过多,我们在每一小部分内容之后,都设置了一个文本合成字段,命名为“某某合成”(图三,左),最后再将各个小部分的合成文本合并为最终需要的文稿(脚本示例见附录一)。

完成上述工作后,就可以将“墓葬数据库”、“器物数据库”中所需字段导入Excel Power Query成为表格(Table)文件。“墓葬数据库”仅需导入“所属墓葬”和“文稿”两个字段即可。“器物数据库”中的“材质”“件号”“器名”“件数量”“组数量”“随葬品描述合成”等信息还要经过统计后呈现在“墓葬情况”中的“随葬品数量及放置情况”部分和“随葬器物”部分,所以要将“随葬品描述合成”之外的所有字段一并导入(图六)。

二、Excel Power Query中的数据处理

(一)生成“随葬品数量及放置情况”部分

根据体例要求,该部分内容以数据统计结果为主,这正好让Excel Power Query中M函数强大的数据处理功能有了用武之地。较之人工统计,利用M函数处理数据具有准确、高效、可后续修改原始数据、可自定义排序等优势。

我们使用M函数生成报告的主要方法有两种。第一种为“分类汇总”,该方法使用到的核心函数是Table.Group(表格分组),此函数可以以某一个或多个字段为索引,对现有表格(Table)进行分组,并将其生成列表(List)。对生成的列表使用List.Sum(列表求和)、List.Count(列表计数)、List.Distinct(列表去重)、Text.Combine(文本连接)等函数即可分别实现对列表内数据的求和、计数、罗列等功能。如以“所属墓葬”字段为索引,对“(器物)名称”使用Table.Group与List.Sum的函数组合,即可获得每个墓葬中所出随葬品的总数。第二种为“格式调整”,该方法的作用与Filemaker中利用脚本合成文稿相同,即通过对表格(Table)、列表(List)或文本(Text)数据补充词句、添加换行或空格,构成格式完美、语句通顺的报告文本。使用到的函数有Table.AddColumn(表格添加列)、Table.NestedJoin(表格追加)、Text.Replace(文本替换)以及文本连接符号“&”、换行转义符“#(lf)”等。当然,在实际应用中还要根据具体情况对数据进行预先处理,这就可能使用到If(条件判断)等函数。

下面就依据报告文本中的先后顺序,介绍利用M函数进行报告文本生成的工作流程。

1.随葬品数量及材质

由于随葬品中存在成组的器物(如各种材质的串饰)和单件的器物(如陶鬲)两种类别,需要对相关数据进行预处理。由于我们在填写“器物数据库”时,将单件器物的“组数量”字段以“0”表示,故可利用If(条件判断)函数设计如下判断逻辑:若器物的组数量不为“0”,则以组数量计数,反之则以件数量计数。在此基础上,即可利用Table.AddColumn(添加列)函数新增“随葬品数量预处理”列,用以存储判断结果。然后,将“随葬品数量预处理”中的数据以“所属墓葬”为索引进行分组求和,即获得每座墓葬中随葬品的总件(组)数;将“材质类别”字段同样以“所属墓葬”为索引,进行分组去重罗列,即获得每座墓葬中所出随葬品的材质种类的总述。最后,合并以上结果并存储至新增字段“总数量合成”中(图七;各步骤函数的具体参数设置见附录一)。生成结果如图所示(图八)。

2.随葬品种类

先以“所属墓葬”、“名称”为索引,分别对“组数量”和“件数量”字段分组求和,再将“名称”字段与求和结果进行文本连接,即获得每座墓葬中每种随葬品的总件(组)数量的分述。最后以“所属墓葬”为索引,将上述结果分组罗列即可获得每座墓中随葬品种类及数量的总述(图九;各步骤函数的具体参数设置见附录一)。生成结果如图所示(图一〇)。

3.随葬品放置情况

根据体例要求,该部分可分为两段文字。

第一段。先以“所属墓葬”为索引对“放置空间”进行分组去重求和,即可得到每座墓葬中所有随葬品放置空间的总数量,随后进行格式调整,使其单独成段。

第二段。需要进行多次分组统计。以“所属墓葬”、“放置空间”、“放置方位”、“名称”字段为索引,先对“组数量”和“件数量”字段分组求和,即获得每座墓中每个位置上每种随葬品的数量,再对“件号”进行分组罗列,即可获得每座墓中每个位置每种随葬品的件号总述。随后将两部分结果连接,即可获得每座墓中每个位置上每种随葬品的数量及其编号总述。接下来,先以“所属墓葬”和“放置空间”为索引将上述结果分组罗列,即获得每座墓中每个空间所有方位随葬品的数量及件号的总述。再以“所属墓葬”为索引将上述结果分组罗列,经过调整格式后,即获得每座墓中随葬品位置及放置情况的总述。需要指出的是,为了便于阅读,可以在介绍每个空间随葬品放置情况的语句前面增加序号。实现的方法是,在进行最后一步分组罗列之前,先利用连接符“&”为每个空间所有方位随葬品的数量及件号列表(List)前添加一个空值“null”,再使用Combiner.Combine Text By Each Delimiter(合并文本且添加自定義分隔符)函数代替Text.Combine函数来完成文本合并工作。前者可以将自定义列表中的内容逐一作为被合并各项之间的分隔符。由于每座墓中随葬品的放置空间总数最多不过10处,所以我们设定了从①到⑩的数字序列作为间隔符(图一一;各步骤函数的具体参数设置见附录一)。生成结果如图所示(图一二)。

(二)生成“随葬器物”部分

此部分文本需要按照材质类别、器物名称,逐一介绍各随葬品的具体情况,使用函数的基本思路与“随葬品放置情况”的第二段类似——先逐级分组罗列,再添加序号并调整格式。本文不再重复介绍(各步骤函数的具体参数设置见附录一)。最终效果如图所示(图一三)。

(三)最终合成“墓葬分述”部分

利用Table.NestedJoin函数或者“合并查询”工具将之前的所有转换结果以“所属墓葬”为索引,全部嵌套合并到原先导出的“墓葬信息表”中;再利用Table.Expand Table Column(表格展开)函数将嵌套后的各列逐一展开;最后使用Table.Add Colum新建一个字段,用以存储最终合成的总文本。至此,全部工作流程已经完成,接下来只需要将“总合成”字段的内容全选,复制到文字处理软件(如Microsoft Word)中即可。最终效果如图所示(图一四)。

小 结

本文介绍的工作流程共分为两个阶段八个步骤(图一五)。虽然整体步骤稍显繁琐,但是完成一次之后便可以此为模板,根据实际需求随时调整原始数据、文本格式等,相当便捷。而且其最终呈现的效果完全符合报告体例要求,与人工编写别无二致。

考古学发展至今,从田野发掘到后期研究中的各个环节都在不断吸纳新技术、新方法。考古报告作为考古材料的重要展现形式,也必然需要在遵循传统原则的基础上持续改进工作方法、提高整理效率、丰富展现形式,从而更好地为科研服务。希望本文能够在实践和理论方面对相关工作起到些许促进作用,填补以往应用案例中的空白。必须承认的是,技术在进步,观念在革新,本文所介绍的工作流程必定会很快落后于时代。但笔者认为,在研究如何利用计算机技术辅助考古学研究的过程中,最重要的并非掌握某一具体问题的解决方案,而是始终拥有利用计算机技术解决考古工作中实际问题的理念和与时俱进、不断创新的思想。希望有更多的学者参与到相关问题的讨论之中,持续推进传统考古工作的现代化、准确化、高效化。

本文是国家社科基金重大项目“山西翼城大河口西周墓地考古发现与综合研究”(项目批准号:17ZDA218)的阶段性成果。

王珊、萨师煊:《数据库系统概论(第5版)》,高等教育出版社,2014年。

李科威:《计算机考古刍议》,《东南文化》1988年第5期。

实际应用方面,以河南渑池班村遗址的发掘为早期尝试案例,近些年比较典型的有吉林大安后套木嘎遗址的发掘,参考:班村考古队:《班村遗址发掘操作原则(讨论稿)》,《中国历史博物馆馆刊》1995年第1期;霍立治:《计算机与考古学》,《中国历史博物馆馆刊》1995年第1期;史宝琳,刘晓溪:《后套木嘎遗址田野考古数据库的建设》,《边疆考古研究》2013年第2期;霍东峰,梁建军:《田野考古资料数据库的理论、方法与实践——以后套木嘎遗址为例》,《边疆考古研究》2015年第1期;王立新、SEBILLAUDP、霍东峰:《大安后套木嘎遗址发掘方法、技术与记录手段的新尝试》,《吉林大学社会科学学报》2016年第1期。方法探讨方面,具有代表性的文章有如下几篇。腾铭予:《计算机与考古学——计算机技术在中国考古学领域的应用》,《吉林大学社会科学学报》1997年第3期;郭健、阚映红、王卉等:《文物管理信息系统中数据库的建立》,《中国地理信息系统协会第四次会员代表大会暨第十一届年会论文集》,2007年,第498~506页;胡金华、穆朝娜、仇凤琴:《田野考古档案资料规范化管理的思考》,《中国文物科学研究》2007年第3期;刘建国:《数字考古的理论与实践》,《南方文物》2007年第1期;陈立飞:《基于.Net平台的田野数字考古信息系统的设计与实现》,河北师范大学硕士学位论文,2013年;王华忠:《考古发掘数据处理分析关键技术研究与实现》,浙江大学硕士学位论文,2013年;田博宇:《基于.Net平台的田野数字考古信息系统的研究与开发》,河北师范大学硕士学位论文,2013年;缪雪燕:《田野考古数字化实践与思考》,郑州大学硕士学位论文,2017年;高劲松、韩牧哲:《考古发掘资料图数据库的语义关联构建研究》,《图书情报工作》2021年第9期。

Filemaker的前身可追溯至1980年,1984年正式更名为Filemaker,现在归属于苹果公司(Apple Inc.)的全资子公司 Claris。該软件界面简洁,易于上手。官网: https://www.claris.com。与之具有类似功能的软件还有微软的Microsoft Access。

Power Query是Microsoft Excel的一个插件,专门用于处理大量复杂数据,其自带的M函数可以满足各类数据整理的需求。官网:https://powerquery.microsoft.com/en-us/。

北京大学考古学系商周组、山西省考古研究所:《天马—曲村(1980-1989)》,科学出版社,2000年。

同[1]。

国家文物局编:《田野考古工作规程》,文物出版社,2009年。

“随葬品数量及放置情况”部分为“P2”。

录入与转换数据的工作其实也可以全部在Excel Power Quary中完成,但是为了充分发挥不同软件的优势,我们决定将两个软件结合起来完成整个工作流程。

相当于“墓葬数据库”中的“文稿”。

为行文简洁,本文省略将数据转换为Excel Power Quary中表格(Table)的操作方法以及每个函数中各参数的具体含义,请参看软件自带的帮助文档和微软官方网站的函数参考(https://learn.microsoft.com/zh-CN/powerquery-m/power-query-m-function-reference)。

“可后续编辑”指:利用Excel Power Query完成统计并生成文本后,可以随时修改原始数据并利用“刷新”功能更新统计结果和最终生成的文本。

“可自定义排序”是指:利用Excel中的“自定义排序”功能,可以设定并随时更改最终报告文本中需要逐项介绍的内容的排列顺序,以实现报告全篇格式统一、便于查阅。

“罗列”是指将列表内各项内容连接合并为一整条文本格式数据,并以设定好的字符作为原先各项的间隔和结尾。

该项内容也属于早年学者所提出的“计算机考古”的一部分。