数字人文时间基础设施“汉语统一时间标尺平台”使用指南

朱本军 / 北京大学图书馆

中华文化遗产的数字化整理与活化利用是数字人文领域最重要的实践方向之一。欲实现“文化遗产的活化利用”,首要者为在顶层做好“数字化”+“数据化”+“数字生态”的布局。其中,将非结构化文本转换为结构化文本的“数据化”尤为关键。对于文化遗产及文化遗产内容知识单元(例如地名、人物、职官、印章、斋堂馆舍等)的表达而言,将“大中华圈”内的中国、日本、朝鲜、韩国、越南古今的纪时与西方儒略历和格里高利历用统一时间标尺进行古—古、古—今规范映射与编码,是“数据化”和“智慧化”中带有关键性、全局性和基础性的工作。这项工作,不仅有利于促进海内外文化遗产整理、文化遗产内容中的知识单元基于时序的关联与智慧化,而且对于促进中古史研究、古代历法研究、考古断代、中华文明探源与辐射研究有重要意义。

“汉语统一时间标尺平台”(www.histchina.cn)当前实现了中国(自周文王受命元年[公元前1126年]至公元2100年约3226年)、日本(自室町时代正亲町天皇元龟元年[公元1570年]至公元2030年)、越南(自西山阮氏泰德帝泰德元年[公元1778年]至2100年)、韩国(后高丽时期摩震善宗武泰元年[公元904年]至2100年)、朝鲜(后高丽时期摩震善宗武泰元年[公元904年]至2100年[主体历一百八十九年])古今历谱与西方儒略历和格里高利历历谱的编码转换。

为方便图书馆、博物馆、档案馆、美术馆等文化遗产收藏机构和文史领域学者利用本平台开展文献整理与学术研究,制定本使用指南。

一、界面介绍

图1 功能分区图

平台分为“菜单区”“检索功能区”和“检索结果显示区”(如图1所示)。各区块的释义如下。

(一)菜单区

与平台相关的、更详细的导航信息,包括:

(1)“API接口”,提供将中历年月日时间转换为儒略日码和西历年月日时间的API数据接口规则说明与使用案例。

(2)“时间规范著录规则和源代码”,提供年月日著录规范、取值规范,及著录案例、HTML源代码。

(3)“EXCEL年表转换”,提供将汉语时间的EXCEL年表批量转换为儒略日码和西历日期的EXCEL模板及工具。

(4)“经典合作案例”,提供第三方使用本平台成果的经典案例。

(5)“使用指南”,提供使用本平台开展文史研究的指导。

(6)“关于平台”,提供本平台建设的缘起、历谱数据来源与处理、研发等相关的信息。

(二)检索功能区

1.界面标签及下拉框释义

界面的标签和下拉框名称释义如下:

(1)“国家”,指的是历谱的对象国家,必填项。

(2)“历史分期”,指的是对象国家的历史分期,非必填项。设历史分期的目的是方便缩小“政权名称”“王公+年次/年号/国号”的可选范围。

(3)“政权名称”,指的是对象国家某个政权的名称,非必填项。

(4)“王公+年次/年号/国号”,指的是对象国家某个政权的“王公谥号|庙号-姓名-年号|国号三元组”,非必填项。“王公谥号|庙号-姓名-年号|国号三元组”的值可以从下拉列表中直接选填,也可以手动输入繁体中文,通过“拼写提示”进行快速输入。

(5)“纪年类型”,包括对象国家古今各种纪年类型,主要有如下几种:

·“王公年号/国号年”,指的是对象国家某个政权的帝王或王公所使用的年号或国号,选则必填。为方便检索,该标签的值与“王公谥号|庙号-姓名-年号|国号三元组”的值进行了级联,当“王公谥号|庙号-姓名-年号|国号三元组”有值时,“王公年号/国号年”标签的值会自动调整以与具体的王公在位年数匹配。当“王公谥号|庙号-姓名-年号|国号三元组”无值时,“王公年号/国号年”标签右侧的“请输入对应的纪年值”可手动输入“纪年值”,输入规则为“汉字数序+年”,如:输入“元年”“二年”……“十年”“十一年”……“二十年”“二十一年”等,而不能输入“31年”“32年”“三十一”“三十二”。

·“岁星年”,指岁星所在的宫格,选则必填。当“纪年类型”下拉框选中本值时,右侧的“请输入对应的纪年值”会出现相应的下拉框值供选择。

·“太岁年”指太岁所在的宫格,选则必填。当“纪年类型”下拉框选中本值时,右侧的“请输入对应的纪年值”会出现相应的下拉框值供选择。

·“干支年”,指10天干与12地支匹配的年的称谓,选则必填。当“纪年类型”下拉框选中本值时,右侧的“请输入对应的纪年值”会出现相应的下拉框值供选择;也可以手动输入繁体中文,运用“拼写提示”进行快速输入。

·“公历年”,指按儒略历或格里高利历称谓的年,选则必填。当“纪年类型”下拉框选中本值时,右侧的“请输入对应的纪年值”中需手动填入相应的阿拉伯数字。输入规则为:公元前,输入“-”+阿拉伯数字,例如公元前34年,直接输入“-34”即可,不能输入“-34年”或“-0034”;公元后,直接输入阿拉伯数字,例如:公元3年,直接输入“3”即可,不能输入“3年”;公元109年,直接输入“109”即可,不能输入“109年”或“0109”;公元1456年,直接输入“1456”即可,不能输入“1456年”。

(6)“纪月类型”,包括对象国家古今使用过的各种纪月类型,主要有如下几种:

·“政权月序”,指对象国家某政权所使用的月序的汉字大写,选则必填。“政权月序”的取值同时兼容阴历和阳历月序。当“纪月类型”下拉框选中本值时,右侧的“请输入对应的纪月值”会出现相应的下拉框值供选择;也可以手动填入。

·“干支月序”,指10天干与12地支匹配的月的称谓,选则必填。当“纪月类型”下拉框选中本值时,右侧的“请输入对应的纪月值”会出现相应的下拉框供选择;也可以手动输入干支月序的繁体中文,运用“拼写提示”进行快速输入。

·“楚历月序”,指春秋战国时期楚国使用的月序,选则必填。当“纪月类型”下拉框选中本值时,右侧的“请输入对应的纪月值”会出现相应的下拉框供选择。

·“月建”,指北斗七星斗柄所指的宫格名称,选则必填。当“纪月类型”下拉框选中本值时,右侧的“请输入对应的纪月值”会出现相应的下拉框供选择。

·“累月纪时”,指楚汉相争时期,各政权以起事的月为第一月,顺序记“第二月”“第三月”……直至被灭所使用的月数,选则必填。当“纪月类型”下拉框选中本值时,右侧的“请输入对应的纪月值”会出现相应的下拉框供选择。

·“武曌纪月”,指唐武周皇帝武则天改历使用的月序,选则必填。当“纪月类型”下拉框选中本值时,右侧的“请输入对应的纪月值”会出现相应的下拉框供选择。

·“四季纪月”,指春、夏、秋、冬四季按孟、仲、季称月的月序,选则必填。当“纪月类型”下拉框选中本值时,右侧的“请输入对应的纪月值”会出现相应的下拉框供选择。

·“公历月序”,指按儒略历或格里高利历称谓的月,选则必填。当“纪月类型”下拉框选中本值时,右侧的“请输入对应的纪月值”会出现相应的下拉框供选择。

(7)“纪日类型”,包括对象国家古今的各种纪日类型。主要有如下几种:

·“政权日序”,指各政权所使用的日序的汉字大写,选则必填。“政权日序”的取值同时兼容阴历和阳历日序及别称。当“纪日类型”下拉框选中本值时,右侧的“请输入对应的纪日值”会出现相应的下拉框供选择。

·“干支日序”,指10天干与12地支匹配的日的称谓,选则必填。当“纪类型”下拉框选中本值时,右侧的“请输入对应的纪日值”会出现相应的下拉框供选择。

·“月相日序”,指按月亮阴晴圆缺称日的称谓,选则必填。当“纪日类型”下拉框选中本值时,右侧的“请输入对应的纪日值”会出现相应的下拉框供选择。由于单独书写月相名称,部分用户可能不知道该月相指农历几日,在月相日序下拉框中保留了只起辅助参照作用的“初×”或“×日”。

·“韵目日序”,指晚清—民国—中华人民共和国初期为节省电报经费用平水韵纪日的日名。当“纪日类型”下拉框选中本值时,右侧的“请输入对应的纪日值”会出现相应的下拉框供选择。

·“廿四节气日序”,指二十四节气名称所在的日。当“纪日类型”下拉框选中本值时,右侧的“请输入对应的纪日值”会出现相应的下拉框供选择。

·“公历日序”,指按儒略历或格里高利历称谓的日。当“纪日类型”下拉框选中本值时,右侧的“请输入对应的纪日值”会出现相应的下拉框供选择。

2.增加条件减少条件按钮

为方便考古文博领域研究人员对诸如“二月既望乙亥”“四月既生霸庚午”“三年五月既死霸甲戌”等多个年(或月,或日)指向同一个时间点的文字铭文进行年、月或日的组配检索,增设了“增加条件”和“减少条件”按钮。增加条件后的界面标签及下拉框释义同上。

3.查询此王公全部历谱限定条件

检索界面的“查询此王公全部历谱”复选框,是为方便输出某位帝王或王公的全部历谱。

以“西汉”政权的汉武帝为例,汉武帝有建元、元光、元朔、元狩、元鼎、元封、太初、天汉、太始、征和、后元等年号,在“王公谥号|庙号-姓名-年号|国号三元组”的取值中,只能选取其中1个年号,而如果有一条残缺的史料有“汉武帝□□元年十一月二十一日冬至”,通常的做法是逐个查“汉武帝建元元年十一月二十一日”是否是“冬至”、“汉武帝元光元年十一月二十一日”是否是“冬至”、……。

如果勾选“查询此王公全部历谱”复选框,就会输出“王公谥号|庙号-姓名”的全部年号,即“武帝-刘彻”的全部年号。

4.导出成EXCEL按钮

方便文史研究人员将查询到的历谱信息导出成EXCEL表单到本地进行进一步分析研究,平台增设“导出成EXCEL”按钮。该按钮可以与“仅导出所选王公数据”复选框、“查询此王公全部历谱”复选框进行组配。

(1)“导出成EXCEL”按钮与“仅导出所选王公数据”复选框组配如果文史学者希望只导出指定“王公谥号|庙号-姓名-年号|国号三元组”的王公数据,那么,勾选“仅导出所选王公数据”复选框即可(该复选框默认处于勾选状态);如果希望将中、日、韩、朝、越5国进行对比,那么取消复选框即可。

(2)“导出成EXCEL”按钮与“查询此王公全部历谱”复选框组配仍以汉武帝为例,如果文史学者已经指定了某个政权的“王公谥号|庙号-姓名-年号|国号三元组”,突然萌生一个想法,要将汉武帝所有年号的数据都导出为EXCEL,那么,在指定该王公任意一个“王公谥号|庙号-姓名-年号|国号三元组”的同时,勾选“仅导出所选王公数据”复选框、勾选“查询此王公全部历谱”复选框,可导出该王公的所有年号数据。

(三)检索结果区

检索结果区,显示检索到的结果。检索结果字段的释义同检索功能区。

(四)设计界面标签与下拉框值的特别考虑与FAQ

问题1为什么使用“政权月序”的说法,而不是“阴历月序”“阳历月序”的说法?

使用“政权月序”的说法,基于以下考虑:一是“阴历月序”的汉字数序大写值(正月、二月、三月……十二月)与“阳历月序”(一月、二月、三月……十二月)的汉字数序大写值基本相同;二是中国自1912年1月1日开始的中华民国政权(1912—1949)、自1949年10月1日正式成立的中华人民共和国政权(1949—)官方明确规定使用阳历,如果用“阴历月序”的说法,势必不能覆盖近当代的政权纪时。为减少数据冗余,避免歧解,本系统将“阴历月序”与“阳历月序”的值进行了整合,又由于本质上,这种月序都是各政权使用的,因此使用了“政权月序”来统筹概括。

问题2为“王公+年次/年号/国号”设置“王公谥号|庙号-姓名-年号|国号三元组”是基于什么考虑?

中国古今政权的纪年规则有五种:一是“政权名称+王公谥号+年值”(例如:周赧王三年、鲁隐公元年、秦孝公八年),二是“政权名称+庙号+年值”(例如:汉高祖五年、汉文帝三年),三是“政权名称+王公庙号+王公年号+年值”(其中的政权名称、庙号有时可以简略不写,例如:汉武帝元朔元年,也称元朔元年;唐太宗贞观三年,也称贞观三年),四是“政权名称+年值”(例如:中华民国元年、中华民国十五年),五是直接写“年值”(例如:中华人民共和国不使用国号纪年和年号纪年,直接用诸如西历“一九六二年”“二〇二三年”的写法)。

由于上述五种纪年规则单独使用时,在某些情况下并不唯一。比如,“政权名称+王公谥号号+年值”或“政权名称+王公年号+年值”的规则,所书写的政权并不唯一,需要额外的辅助信息才能区别。以周时期的“燕”政权为例,同一个政权先后出现了两个“文公”:一个是燕武公之后的燕文公(《史记·燕召公世家》“武公十九年卒,文公立”),一个是燕桓公之后的燕文公(《史记·燕召公世家》“桓公十一年卒,文公立”),按照“政权名称+王公谥号+年值”规则,当出现“燕文公元年”时,计算机和人都无法区别是哪个王公。再例如,政权“元”先后出现过两个“至正”年号,一个是元世祖忽必烈的“至元”年号(共行用31年),另一个是元惠宗使用的“至元”年号(共行用6年),使用“政权名称+王公年号+年值”规则将时间著录为“元至正元年”人和计算机都不知道是哪个王公的年号。消除歧义的方式可以有两种:一种是在“政权名称+王公年号+年值”规则中加入“王公姓名”以辅助区别,例如:“元孛儿只斤忽必烈至元元年”“元孛儿只斤妥欢帖睦尔至元元年”;二是在“政权名称+王公年号+年值”规则中加入“王公庙号/谥号”可以辅助区别,例如:“元世祖至元元年”“元惠宗至元元年”辅助区别。引入三元组,主要是为了确保检索查询时,输入的值具有唯一性。

问题3纪年类别下拉框选中公历年时,右边请输入对应的纪年值没有下拉框?为什么手动输入西历年时,不要求输入“年”字?

由于本系统的西历历谱时间是从“-1126”到“2100”,如果设置下拉框,则太长,从下拉框中仔细寻找所需的西历年,不如手动直接输入快,故未使用下拉框。为方便本系统的国际化(日本、朝鲜、韩国、越南的普通使用者,并不一定能找到合适的输入法输入汉字),以及为节省时间(输入阿拉伯数字后再敲一个“年”字,也有点费时),故设计为只需要输入阿拉伯数字而不需要输入汉字“年”。

二、利用平台查询”“组配查询”“拼写提示功能开展文史研究

时间,是历史记载必要的构成部分。汉语文献中复杂的纪时,于今天的学术研究而言,无论在汉语典籍阅读,还是将同一时期不同政权、中外典籍中的某些重大事件或史实进行比较研究,因为需要来回换算,成为阅读和比较研究难以逾越的障碍。兹以案例的形式,指导文史学者如何利用平台的“查询”“组配查询”功能开展探索与研究。

(一)利用查询功能查询确切西历年月日时间

案例:厦门大学图书馆藏(明)陈献章撰《白沙子全集》9卷,首卷的书影中有“万历四十年岁次壬子孟秋之吉邑后学黄淳顿首书”[1],对应西历何时?

步骤一:识别该历点时间的年、月、日类型及值。“万历”是王公年号、“四十年”是王公年号的年值、“壬子”是干支年、“孟秋”是四季纪月、“吉”是月相纪日。

步骤二:判断并选择检索策略。历点中出现了“万历四十年”“壬子”两个指向同一年的称谓,可以将检索策略设定为,使用其中一个进行查询,另一个用来校验检索结果是否准确。

步骤三:在查询界面,依次填入繁体中文(如图2所示):“王公+年次/年号/国号”=神宗-朱翊鈞-萬曆、“王公年号/国号年”=四十年、“四季纪月”=孟秋、“月相日序”=吉。

步骤四:校验结果。查询结果为“1612-7-28,壬子,明-神宗-万历-四十年-七月-初一/癸巳”。可以看到这一年的干支年为“壬子”,与史料的干支年吻合。

图2 “万历-四十年-孟秋-吉”查询界面及结果

(二)利用组配检索功能探索史料中缺漏的历点

通过对不同传世文献的对比来考察、分析,最后形成某种结论,是文史学界常用的方法。在传世史料的基础上,王国维先生提出了“二重证据法”,认为传世文献能与出土文献相互印证,方可定论。事实上,可主张“三重证据法”,即传世文献、出土文献与历法天象文献三者相互印证,方可定论。兹以利用平台探索“元氏县界封刻石”“孔子的生卒年”为案例,指导人文学者利用平台“组配检索”功能和天象数据,正确而容易地解决传统时间断代难题。有余力者,可以利用本平台探索“屈原的生卒年”。

案例1“元氏县界封刻石”残拓,拓文中的历点信息为“□□□□□在己亥,三月□□朔,廿五日庚子,司徒前……”[2],所指为何时?

步骤一:识别该历点信息的年、月、日类型及值。“己亥”为干支年、“三月”为政权月序、“朔”为月相纪日但“朔”干支缺失、“廿五日”为政权日序、“庚子”为“廿五日”的干支日。

步骤二:判断并选择检索策略。此史料出现了“己亥-三月-□□/朔”和“己亥-三月-廿五日/庚子”两个历点,由于朔干支缺失以及10天干和12地支组配的干支年六十年一轮回,以“己亥-三月-□□/朔”检索,势必查询到很多结果,仍将无法确定确切的时间。可以用“己亥-三月-廿五日/庚子”历点尝试采用组配检索。

步骤三:在查询界面,点击“增加条件”,依次输入组配检索条件(具体操作步骤如图2):

“干支年”=己亥、“政权月序”=三月、“政权日序”=二十五日

and

“干支年”=己亥、“政权月序”=三月、“干支日序”=庚子。

步骤四:校验结果。查询结果为:339-4-20,己亥,后赵-太祖-石虎-建武-五年-三月-二十五日/庚子。该结果与碑文中的其他信息能匹配上,可以确定“赵”为石虎的“后赵”。知道二十五日为庚子,可以反推,将缺失的“三月□□朔”补齐为“三月丙子朔”。

图3 “己亥-三月-二十五日”与“己亥-三月-庚子”组配检索

案例2探索孔子的生卒年

“孔子的生卒年”[3]在学术界讨论了数千年,最终都莫衷一是。孔子生卒年的史料记载:

史料1.《公羊传》:“(鲁襄公)二十有一年,春,王正月,公如晋……夏,公至自晋。秋,晋栾盈出奔楚。九月庚戌,朔,日有食之。冬,十月,庚辰,朔,日有食之……十有一月,庚子,孔子生。”[4]

史料2.《穀梁传》:“(襄公)二十有一年,春,王正月,公如晋……夏,公至自晋。秋,晋栾盈出奔楚。九月庚戌,朔,日有食之。冬,十月,庚辰,朔,日有食之……庚子,孔子生。”[5]

史料3.《史记·孔子世家》:“鲁襄公二十二年而孔子生。”“孔子年七十三,以鲁哀公十六年四月己丑卒。”[6]

1.问题的提出

上述史料记载相互龃龉:

(1)《公羊传》和《穀梁传》对孔子出生月份记录不一样:一个记录在鲁襄公二十一年的“十一月”庚子日,一个记录在“十月”庚子日。

(2)《公羊传》和《穀梁传》记录的孔子出生“年”,与《史记》记录的孔子出生“年”不一样:是《穀梁传》《公羊传》把“年”记错了,司马迁《史记》进行了修正,还是《穀梁传》《公羊传》记录正确而司马迁将正确的结果记错了?

鉴于以上认识,此三则文献为孔子的出生时间提供了四种可能:

可能性一:鲁襄公二十一年十一月庚子

可能性二:鲁襄公二十一年十月庚子

可能性三:鲁襄公二十二年十一月庚子

可能性四:鲁襄公二十二年十月庚子

2分析、猜想与验证

由于没有更多的史料,按照文史学界“从文献到文献”的传统思辨方法,上述问题是不会有令人信服的证据将孔子出生日期定论的。只能从历法天象入手。值得注意的是,古代天文历法是数学问题、是科学问题,历谱的编排是符合天象且有朔闰规律的,只要历点信息足够,完全可以将带历点的史料“证实”或“证伪”。由于本平台的历谱完全按照当时的历算算法推演而来,权威可靠,可以利用本平台对上述可能性进行一一验证。步骤如下:

步骤一:识别史料历点信息的年、月、日类型和值。根据史料一、史料二、史料三,很容易将要验证的历点信息分为两组。

第一组历点信息:

·鲁-襄公-二十一年-九月-庚戌/朔-日食

·鲁-襄公-二十一年-十月-庚辰/朔-日食

·鲁-襄公-二十一年-十一月-庚子或鲁-襄公-二十一年-十月-庚子

验证工作主要是确定鲁襄公二十一年的:(1)“九月庚戌”是否为朔日且同时有日食;(2)“十月庚辰”是否为朔日且同时有日食;(3)在前述两个都满足的情况下,看“庚子”日是在“十月”还是“十一月”;如果前述两个条件不满足,则不必校验“庚子”日所在的月份了。

第二组历点信息:

·鲁-襄公-二十二年-九月-庚戌/朔-日食

·鲁-襄公-二十二年-十月-庚辰/朔-日食

·鲁-襄公-二十二年-十一月-庚子或鲁-襄公-二十二年-十月-庚子

验证工作主要是确定鲁襄公二十二年的:(1)“九月庚戌”是否为朔日且同时有日食;(2)“十月庚辰”是否为朔日且同时有日食;(3)在前述两个都满足的情况下,看“庚子”日是在“十月”还是“十一月”;如果前述两个条件不满足,则不必校验“庚子”日所述的月份了。

步骤二:利用平台对以上两组历点信息逐一验证。第一组验证的结果为:

·鲁-襄公-二十一年-九月-庚戌/朔-日食。查平台,结果为“-552-8-20,己酉年,鲁-襄公-姬午-二十一年-九月-庚戌/朔-日食14时17分~14时49分”,符合。

·鲁-襄公-二十一年-十月-庚辰/朔-日食。查平台,结果为“-552-9-19,己酉年,鲁-襄公-姬午-二十一年-十月-庚辰/朔”,除日食外,其余信息符合。

·鲁-襄公-二十一年-十月-庚子。查平台,结果为“-552-10-9,己酉年,鲁-襄公-姬午-二十一年-十月-庚子”,也即十月有“庚子”日。

·鲁-襄公-二十一年-十一月-庚子。查平台,无记录,也即十一月无“庚子”日。

根据查询到的历谱数据验证,除“鲁-襄公-二十一年-十月-庚辰/朔”未显示有“日食”外,干支日、朔日时间全部吻合。

第二组验证的结果为:

·鲁-襄公-二十二年-九月-庚戌/朔-日食。查平台,“鲁-襄公-二十二年-九月-朔”的日干支为“乙巳”而不是庚午,不符合。

·鲁-襄公-二十二年-十月-庚辰/朔-日食。查平台,“鲁-襄公-二十二年-十月”朔日为“甲戌”,而不是“庚戌”,不符合。

·鲁-襄公-二十二年-十一月-庚子。查平台,无结果,意味着“鲁-襄公-二十二年-十一月”无“庚子”日。

·鲁-襄公-二十二年-十月-庚子。查平台,结果为“-551-10-4,庚戌年,鲁-襄公-姬午-二十二年-十月-庚子”,也即十月有“庚子”日。

根据查询到的历谱数据验证,本组数据都不吻合。

步骤三:根据上面对史料的猜想、验证,可以确定孔子的诞辰日为“鲁襄公二十一年十月二十一日庚子,公元前552年10月9日”。

步骤四:确定孔子的出生年月日后,按《史记·孔子世家》“孔子年七十三,以鲁哀公十六年四月己丑卒”的记载。验证一下:查平台,“鲁哀公十六年四月己丑”这个精确的年月日下没有查询到任何结果,这意味着“鲁哀公十六年四月”无“己丑”日。另,查“鲁哀公十六年”是479年,孔子如果在这一年去世,是74岁而不是73岁,与“孔子年七十三”的记载不符。按《史记》孔子73岁卒,以及生年在“-552-10-9”,查平台“鲁哀公十五年四月己丑”,有结果,为-480-3-14。

3结论

经过以上探索,结论很清楚:孔子的生年,为“鲁襄公二十一年十月二十一日庚子”(公元前552年10月9日);73岁时卒;卒年,为“鲁哀公十五年四月初五己丑日”(公元前480年3月14日)。同时,可以看到《穀梁传》的记载是准确的,司马迁的《史记》将孔子的生卒年整体向后移了一年。

(三)利用组配检索探索并校正传世文献与出土文献中讹误的历点信息

文史学界在做吉金、彝鼎、简牍文字释读时常因字迹漫漶无法准确识别,或进行人物、事件、地名沿革等编年时因为年、月或日信息的缺失而无法编排年谱。现在,可以利用本平台进行探索,兹举例如下。

案例1《吕氏春秋》“维秦八年,岁在涒滩,秋,甲子朔”[7],指的是哪位秦王,具体在何时?

文史学界关于这一条记载讨论颇多,莫衷一是。利用本平台,可以将这一悬案定案。

步骤一:识别该历点信息的年、月、日类型和值。“秦”指的是政权名称、政权王公谥号/庙号/年号缺失、“八年”是王公年号/国号的年值、“涒滩”是太岁纪年的年值、“秋”是季节、月值缺失、“甲子”是干支日、“朔”是月相纪日。

步骤二:判断并选择检索策略。这则史料出现了指向同一日的“秦-□□-八年-秋-□月-甲子/朔”和“涒滩-秋-□月-甲子/朔”两个历点,可以用“组配检索”功能探索有没有“秦-□□-八年”正好是“涒滩”年且“甲子日是朔日”的时间。

步骤三:在查询界面点击“增加条件”,依次输入组配检索条件(如图4所示):

“政权名称”=秦、“王公年号/国号”=八年、“干支日序”=甲子

And

“政权名称”=秦、“太岁年”=涒滩、“月相日序”=朔

图4 “秦-八年-甲子”与“秦-涒滩-朔”组配检索

步骤四:校验结果。检索结果为空,表示没有记录符合“维秦八年,岁在涒滩,秋,甲子朔”。

步骤五:分析原因与猜想验证。“汉语统一时间标尺平台”的历谱朔闰数据是根据古历算法步推出来而不是附会史料拟合出来的,不会有错,只能从史料寻找原因。

猜想:史料在传抄的过程中,在文字漫漶不清或连笔时,“元”“八”“六”的下半部分、“十”“廿”“卅”“卌”、“乙”“己”“巳”……等容易辨识错误,那么史料中的“八”,是否可能是“元”或“六”?

验证猜想:

用“唯秦元年”按上述步骤进行组配检索,查询到唯一一条记录为“-337-5-17,涒滩,秦-惠文王-嬴驷-元年-夏-六月-初一/甲子/朔”,而史料明确指出为“”甲子朔,与查询到的“夏”甲子朔不符。

用“唯秦六年”按上述步骤进行组配检索,查询到唯一一条记录为“-301-7-7,涒滩,秦-昭襄王-嬴稷-六年-秋-八月-初一/甲子/朔”,与史料“”甲子朔完全符合。

步骤六:根据以上探索,可以明确得出《吕氏春秋》“维秦八年,岁在涒滩,秋,甲子朔”中的“八年”应为“六年”的讹误,记录的时间是秦昭襄王六年八月初一甲子朔日。

案例2云梦睡虎地秦简《编年纪》中有一则带历点的释文“廿年,七月甲寅,妪终。韩王居□山”[8],具体的年月日是什么时间?

步骤一:识别该历点信息的年、月、日类型和值。根据《编年纪》的编排顺序,非常明确此史料记载的是“秦-始皇帝-二十年-七月-甲寅”之事。

步骤二:在查询界面依次输入:秦-始皇帝-二十年-七月-甲寅。

步骤三:校验结果。查询“秦-始皇帝-二十年-七月-甲寅”无返回值,意味着这个历点时间有误。

步骤四:分析原因与猜想验证。查看《睡虎地秦墓竹简》的简片原始图版,该简字迹漫漶不清,只有一个大致的轮廓,是否可能误将“十”月释读为“七”月了?按步骤二输入“秦-始皇帝-二十年-十月-甲寅”验证猜想,有唯一值,为:-228-12-1,癸酉年,秦-嬴政-二十年-冬-十月-二十六日/甲寅。

步骤五:结论非常清楚,睡虎地秦简《编年纪》中的“廿年,七月甲寅,妪终”的“七月”应释读为“十月”。

图5 “秦-始皇帝-二十年-十月-甲寅”检索结果

(四)利用拼写提示探索出土文献的年号

案例:出土的“洪化通宝”钱币属于哪个政权?

步骤一:识别该历点信息的年、月、日类型和值。按照古代货币的铭文规则,“洪化”可能是王公年号。

步骤二:在查询界面的“王公+年次/年号/国号”方框中输入繁体中文“洪化”二字,会自动拼写提示中国历史上有一个叫吴世璠的曾用过“洪化”年号(如图6所示)。选中提示的“-吴世璠-洪化”,点击查询,可以看到一个与清康熙并行的“吴周”政权。

步骤三:校验结果。所谓的“吴周”政权,指的是吴三桂建立的“周”政权。可以确定,“洪化通宝”是吴周政权行用的货币。

图6 输入“洪化”拼写提示“-吳世璠-洪化”

三、年表批量转换在线工具

文史学者在编制人物、地名沿革、历史事件等年表时,往往需要一种能迅速将汉语时间进行排序的工具。为帮助文史学者正确而容易地做到这一点,本平台提供“EXCEL年表批转换”工具及EXCEL年表模板。具体释义及使用方法如下。

(一)EXCEL年表模板

图7 EXCEL年表模板分区图

EXCEL年表模板大致可以分为4个区(如图7所示),每个区及各列字段的含义:

·原始史料:指原始史料的记录。

·时间填写:文史学者根据原始史料的记载,填写政权名称、谥号/庙号、年号/国号、值、季值、月值、日值。

·自动生成:当文史学者填写完时间,会自动生成对应格式的时间。

·返回结果:在线转换完成后,结果会填充到对应的4列。这4列分别为起始_儒略日码、终止_儒略日码、起始_时间、终止_时间。例如:史料《汉书·武帝纪第六》“建元元年冬十月”只写到“十月”,那么起始时间为一个时间段,从“十月初一”到“十月三十日”。

(二)EXCEL年表转换操作流程

EXCEL年表转换已实现繁简通检,即无论EXCEL表的文字为繁体中文还是简体中文,都能被成功转换。转换的流程及注意事项如下:

步骤一:用本平台提供的EXCEL年表模板格式,将“时间填写”的各字段(“政权名称”“谥号/庙号”“年号/国号”“年值”“月值”“日值”)补充完整。在填写的过程中,“自动生成”的各单元格会自动生成标准格式的值。

步骤二:选中“自动生成”列下的所有数据,并“复制”。

步骤三:在“自动生成”单元格,点击鼠标右键,选中“粘贴”选项,粘贴为“数值”,并保存。这一步的主要工作是将公式自动生成的数据变成数值,如果不变成数值,在线转换的时候,系统会只识别到公式,而识别不到数值。

图8 将公式自动生成的值粘贴为“数值”图

步骤四:打开在线网址:http://www.histchina.cn/shijian/excel,“选择文件”→“提交”(如图9所示)。

图9 在线EXCEL转换

步骤五:转换完成后,会自动生成并下载名称为“resultxxxxxxxx.xlsx”(例如result1680001603.xlsx)的文件到本地。下载后,文史学者可以利用EXCEL的排序功能进行年表排序。

四、API数据调用

考虑到图书馆、博物馆、档案馆、美术馆等文献收藏机构对文化遗产的编目著录由来已久,且已经积累了相当数量的元数据,以及与文化遗产相关的数字人文在知识单元层面对内容进行时序标引,为方便这些机构或项目团队将已有的“出版项”元数据快速转换为西历年月日,本平台提供了针对中、日、韩、朝、越古今纪时转换为西历年月日的API接口。

(一)API的输入规则

http://www.histchina.cn/shijian/date_trans?zhengquan=[政权名称]&shihao=[王公谥号/庙号]&nianhao=[王公年号/国号]&nian=[年值]&ji=[季值]&yue=[月值]&ri=[日值]

释义:

·“政权名称”“王公谥号/庙号”“王公年号/国号”“年值”“季值”“月值”“日值”都不是必须输入项,允许缺漏,但要保证输入项不产生多个值。例如:“康熙”年号,在历史上仅出现过一次,可以不必在“政权名称”处输入“清”;“至元”年号,在历史上出现过多次,如果只输入“至元”而不输入其他辅助信息,就会产生歧解而不准确。

·输入项已经实现繁体—简体通检,即输入繁体中文或简体中文都能被解析。

(二)API的返回值规则

{“start_date”:“[公历年]-[公历月]-[公历日]”,“end_date”:“[公历年]-[公历月]-[公历日]”,“start_rulueri”:“[起始时间儒略日码]”,“end_rulueri”:“[终止时间儒略日码]”}

释义:

start_date表示起始年月日、end_date表示终止年月日、start_rulueri表示起始时间的7位儒略日编码、end_rulueri表示终止时间的7位儒略日编码。

(三)举例

范例1《新唐书·则天皇后本纪》:“(垂拱)三年闰正月丁卯,封皇帝子隆基为楚王,隆范卫王,隆业赵王。”[9]

API输入:http://www.histchina.cn/shijian/date_trans?zhengquan=武周&shihao=&nianhao=垂拱&nian=三年&ji=&yue=闰正月&ri=丁卯

API返回值:{“start_date”:“687-2-19”,“end_date”:“687-2-19”,“start_rulueri”:“1972034”,“end_rulueri”:“1972034”}

范例2《新唐书·则天皇后本纪》:“(天授二年)腊月己未,始用周腊。”[10]

API输入:http://www.histchina.cn/shijian/date_trans?zhengquan=武周&shihao=&nianhao=天授&nian=二年&ji=&yue=腊月&ri=己未

API返回值:{“start_date”:“691-1-21”,“end_date”:“691-1-21”,“start_rulueri”:“1973466”,“end_rulueri”:“1973466”}

范例3《汉书·武帝纪第六》:“(元光元年)秋七月癸未,日有蚀之。”[11]

·API输入:http://www.histchina.cn/shijian/date_trans?zhengquan=西汉&shihao=武帝&nianhao=元光&nian=元年&ji=秋&yue=七月&ri=癸未

·API返回值:“start_date”:“-134-8-19”,“end_date”:“-134-8-19”,“start_rulueri”:“1672710”,“end_rulueri”:“1672710”}

范例4克钟“唯十又六年,九月初吉庚寅。”[12]

API输入:http://www.histchina.cn/shijian/date_trans?zhengquan=周&shihao=&nianhao=&nian=十六年&ji=&yue=九月&ri=初吉-庚寅

API返回值:{“start_date”:“-1089-9-16”,“end_date”:“-299-8-14”,“start_rulueri”:“1323925”,“end_rulueri”:“1612439”}

范例5民国档案:“谨引提议,伏祈采纳!汪兆铭,艳。”其中的“艳”即韵目日。

API输入:http://www.histchina.cn/shijian/date_trans?zhengquan=中华民国&shihao=&nianhao=&nian=二十七年&ji=&yue=十二月&ri=艳

API返回值:{“start_date”:“1938-1-29”,“end_date”:“1938-12-29”,“start_rulueri”:“2428928”,“end_rulueri”:“2429262”}

范例6《汉书·武帝纪第六》:“太初元年,冬十月,行幸泰山。十一月甲子朔旦,冬至,祀上帝于明堂。”[13]

API输入:http://www.histchina.cn/shijian/date_trans?zhengquan=西汉&shihao=武帝&nianhao=太初&nian=元年&ji=&yue=十一月&ri=甲子-朔-冬至

API返回值:{“start_date”:“-104-12-25”,“end_date”:“-104-12-25”,“start_rulueri”:“1683796”,“end_rulueri”:“1683796”}

范例7中华人民共和国成立于1949年10月1日。

API输入:http://www.histchina.cn/shijian/date_trans?zhengquan=&shihao=&nianhao=&nian=1949&ji=&yue=10&ri=1

API返回值:{“start_date”:“1949-10-1”,“end_date”:“1949-10-1”,“start_rulueri”:“2433191”,“end_rulueri”:“2433191”}

(编辑:赵薇)

本研究为国家社科基金项目“面向人文研究的国家数字人文网络基础设施研究”(20BTQ013)的阶段性成果之一。

注释:

[1](明)陈献章撰:《白沙子全集》卷首,厦门大学图书馆藏,浏览网址:http://rbsc.calis.edu.cn:8086/aopac/controler/main?optype=showimage&fullshow=fullshow&docid=XMU:683928&dbname=rarebook&dbnum=0,2022年9月1日。

[2]原载:刘恒:《新出土石刻拓本题跋二则》,《书法丛刊》,2000年第3期。内容可参见:中华石刻数据库·汉魏六朝碑刻,《元氏县界封刻石》,http://inscription.ancientbooks.cn/docShike/shikeRead.jspx?id=1467018&libId=4,2022年12月1日。

[3]钱穆:《孔子生年考》《孔子卒年考》,《先秦诸子系年考辨》,上海:商务印书馆,1935年;董作宾:《孔子诞辰和八月二十七》,《大陆杂志》,1550年第7期;武砺兴:《孔子生卒时间考识》,《社科纵横》,2002年第1期。吴晋生、吴红红:《孔子生卒年月日新考》,《贵州文史丛刊》,1997年第4期。小文:《黄宗羲考孔子生卒年月》,《宁波师院学报(社会科学版)》,1991年第2期;张培瑜:《孔子生卒的中历和公历日期》,《天文学报》,1989年第4期。

[4]阮元校刻:《十三经注疏·春秋公羊传注疏》卷20,北京:中华书局,2009年,第5014页。

[5]阮元校刻:《十三经注疏·春秋榖梁传注疏》卷16,北京:中华书局,2009年,第5277页。

[6]司马迁撰,中华书局编辑部点校:《史记·孔子世家》,北京:中华书局,1982年,第1905、1945页。

[7]吕不韦编,许维遹集释,梁运华整理:《吕氏春秋集释》卷12,北京:中华书局,2009年,第273页。

[8]王辉、王伟编著:《秦出土文献编年订补》,西安:三秦出版社,2014年,第141页。

[9]欧阳修、宋祁撰,中华书局编辑部点校:《新唐书》卷4,北京:中华书局,1975年,第86页。

[10]欧阳修、宋祁撰,中华书局编辑部点校:《新唐书》卷4,第91页。

[11]班固撰,颜师古注,王先谦补注:《汉书补注·武帝纪第六》,北京:商务印书馆,1959年,第180页。

[12]中国社会科学院考古研究所编:《殷周金文集成·钟镈类·克钟》,北京:中华书局,2007年,第224页。

[13]班固撰,颜师古注,王先谦补注:《汉书补注·武帝纪第六》,第218页。

en_GBEnglish