通过这部索引的数据处理工作,我们还发现了在计算机没有广泛通行时编纂和校订同类历史工具书的难度。,零·点+看_书/ ¨首?发′理论上,一个诗人在A类的诗歌条目应该在他交往的诗人中B类栏目中再次出现,不过由于人工比对成千上万条目的记载难免有错漏,所以这两组条目有时是无法对应的。虽然前辈学者们编纂《唐五代人交往诗索引》的工作是很严谨的,[15]但由于复核和校对的工作量极大,加上需要集体沟通和研讨,局部的错漏总是难免的。计算机的比对可以帮助我们系统地查找这些漏记的条目。经过五次检查,我们发现了2000多条无法匹配的交往诗数据。[16]我们专门针对这些错漏进行了修订,让CBDB的数据错漏降到最低。
三 唐代墓志史料和官名、地名的数据化
在这个唐代项目中,我们还会处理大批唐代墓志史料,把其中的人物信息加入CBDB。我们目前的主要精力放在《唐代墓志汇编》和《唐代墓志汇编续集》之上,两部汇编共收5240余篇墓志铭。CBDB已收录其中墓主及其亲属的信息,不过在这些信息之外还值得做更深的挖掘。比如墓志提到的职官信息,除了墓主的职官信息以外,往往还提到其他相关人物曾任什么官职。在我们对墓志的处理工作中,“码库思”(MARKUS)平台对数据库提供了很大的便利。+顽¨夲`鰰¢栈? .芜?错.内~容/“码库思”是由莱顿大学魏希德(Hilde De Weerdt)教授与何浩洋(Brent Ho)博士主持研发的线上文献阅读、研究工具,学者可借助它对古籍进行半自动文本标记,快速定位文献中的人名、地名、官职、年号等,并在线阅读和导出资料。[17]由于这个平台可以为标记加上用户定义的标签,CBDB项目组人员在处理墓志的时候就可以分别标出墓志中的人名和官名,然后把人名和官名标签连接起来。这样的步骤使得批量导出墓志中的人名和官名信息成为可能,且能比较容易地对这些信息做数据化处理。[18]除了人名和官名以外,由于墓志铭文有相对程式化的体例和句式,我们还会挖掘包括墓主的葬地、墓志中提到的著作等信息。为了提取这些信息,项目组正和台湾政治大学的计算机和数字人文专家刘昭麟教授合作,探索如何通过分析这些格式来批量提取人物信息。刘教授目前已经摸索出适合提取以下几类信息的表述模式:姓名、字、籍贯、生卒年、年岁、性别、所属朝代、亲属资料(姓名和曾任官职)等。举个简单的例子,我们可以通过抓取志文中所有“葬于”“窆于”“殡于”“祔于”等字眼后面的特定字数,然后自动按地名层级整理。\b!i·q¢i¨z*w¨w?.*c^o!m¨我们预期这项合作从设计程式到提取数据并非一步到位,而是需要经过不断调整计算机程序,来适应不同墓志句式的变体,方能获取越来越多的信息,逐步提升程序的效用。由于这项工作对大量墓志同时进行分析,可以减少文史研究者重复进行的一些步骤,甚至有望帮助学者更精确地发现过去精读史料时不容易观察到的现象。
作为一个大型的历史人物数据库,CBDB还是一个数据集,也就是各种数据组成的集合。跟中国古代相关的各种数据,只要有利于人物资料的整理和研究,项目组都尽量投放精力进行录入和校正,并且以标准化方式纳入数据库中。这些数据是以编码表(code tables)的形式保存的,其中包括各朝地名表、官名表等。[19]比如,打开CBDB单机版的时候,能够看到官名是由“OFFICE_CODES”表格登记,并放在“OFFICE_TYPE_TREE”表格的分层架构下。至于地名,则在“ADDR_CODES”表格记录。这些编码为人物数据里出现的地名和官名等赋予了其各自在数据库系统中职官架构和行政地理架构中的相应位置,方便查询时选取。所以,当我们系统地处理唐代人物资料时,也需要对唐代官名和地名做相应的整理,输入CBDB。
首先介绍处理唐代地名的工作。CBDB对唐代地名的整理工作是以已有的研究成果为基础,主要数据来源为郭声波教授的《中国行政区划通史·唐代卷》。[20]作者在编定这本书的过程中,对唐代的行政区划层级提供了定义,因此CBDB对唐代地名的数据化是基于书中的认识。为了处理这方面的工作,郭声