中国历史纪年数字化初论
2015-11-22苏卫国
苏卫国
(鞍山师范学院社会发展学院,辽宁鞍山114007)
一、从当前通行的信息技术实现谈起
信息技术的飞速发展是令人振奋的,因为它可以让人们轻易地处理海量数据并从中提炼出有效信息,为我所用。其中,图形化的表示方式是其成功应用的一个决窍,曲线也好,柱状图也好,还有结构图、关系图、进度图等等,将复杂而繁琐的分析化为直观而简单的判断,人们办事的效率和精准度都有了极大地提升。这类应用正慢慢地融入我们的工作与生活。举个简单的例子,某天打开电子信箱,服务器为你自动生成了一个所谓的“邮箱之旅”的图形化报告,一目了然地显示出:邮箱注册于何时、每年的信件收发量的变化、排名头几位的联系人等等。其服务可谓贴心,用户有VIP的感觉,当然,实际享受这一贴心服务的不只是你,其范围是使用该电子邮箱服务的海量用户,技术快捷地实现了超凡的体验。
图1是某门户网站就2014年3月马航客机失联的专题跟踪整理的时间轴,事件发展进程一目了然,精确到小时甚至分秒。与文字罗列相比,浏览者可以在更短的时间内更容易地理清庞杂信息前后的次序、因果与关联,从而得出各自的判断与评价。古史研究者看到此类图后定会有将其移植到古史范围的期盼,因为这将大大减小史料排比的强度,使人们更专心于对史实的高层认知。
把图形化的时间轴用于古代历史,在信息技术发达的西方早有实例。但我们可以注意到,其呈现往往只精确到公元纪年(比如,维基百科在中国古代年号词条下附一个其所在公元纪年位置的大致图示),只能起到简单粗略的示意作用,应用价值有限。而但凡其应用可以精确到日期且能兼顾古今的,其应用范围就会受到很大的限制。象 http://www.timetoast.com/ 网站主要致力于时间轴作品的创建与分享,事件的罗列可以包括过去、现在甚至将来,但从用户的回馈可以看出,该网站当前并不支持公元前日期的输入,甚至只有公元年数而没有具体日期的也不可以。可见,该技术的应用优势还主要集中在1900年以来的现当代部分,至于古代部分仍差强人意。
西方如此,国内则更可想见。所以,我们可以明确地讲,要想迅速在古史研究中实现上述高水准的便捷应用,还不太现实(尽管我们已经有了那么丰富的数字化历史资源)。当然,问题的关键并不出在技术应用层面,缺少的是该技术得以施展、与当前通行时间日期表示方式相兼容的中国历史纪年数字化标准与规范。
二、通行时间日期标准及其局限
在信息技术的发展历史上,标准至关重要,应用的便捷完全依托于标准的严格遵循。以上举“邮箱之旅”为例,为不计其数的用户生成“邮箱之旅”的图形化报告对熟练的程序员来讲并非难事,因为他处理的数据是“先天”规整的,包括注册时间、收发信时间及地址等,以此为基础,完全可以依据统一的规则去计算、分组、汇总,图形化自然水道渠成。人们或许认为数据的规整也并非难事,其实不然。仅以时间为例,电子邮件原件中时间信息大致如“Mon,24 Feb 2014 07:01:05+0800(CST)”的样式,看似简单,其实背后不光有RFC821、RFC2822等因特网标准的支持,同时也依托于计算机系统的日期时间规范,而两者又同时需遵循时间计量标准的发展步伐,可以说,一个小小的日期时间数据凝聚了多个行业的几十年辛苦探索的成果,所有的便捷都少不了这种年深日久的标准和规范的铺垫。
信息技术标准的发展是在实践中不断完善和严谨的。比如RFC821规定:用00到99来表示年数(制定于1982年),而到RFC2822则更改为由4位数字表示(制定于2001年)。然而在严谨的同时,一些必需的限定也自然随之而来,象RFC2822标准中就指出,4位数字年数自1900年始。在一些常见的信息技术应用中,我们也可以看到类似的限定,前面所讲的 http://www.timetoast.com/网站就是这样。又如,微软的Visio软件把时间时期输入限定在1899年12月30日以后,谷歌地球地标的时间戳限定自1752年9月14日至今,等等。抛开20世纪以来世界时、历书时、原子时、协调时等时间概念发展的影响不讲,相关标准中的限定实则是基于现实实务处理的权宜考虑,人们并未想过该领域的应用会触及很多过往的数据,仅就设定在1900年来讲,已经为日后的应用留足了空间。而随着相关应用的逐渐累积,标准的调整也就成了牵一发而动全身的事情,初始的限定很难突破,即使突破也只能是小心翼翼地小幅度调整。毕竟,现代信息技术标准不是为整理太久远的古史资料而生,若想利用其带来的数据处理的巨大优势与便利,只能由相关的使用群体设法铺设与之对接的桥梁,而不是相反——信息技术界轻易不会向学界主动示好,想其所想,急其所急,这不仅有现实效益问题,学术上的屏障也不可忽视。微软在其编程系统中把日期和时间数据类型DateTime的表示值范围扩展到公元1年1月1日午夜12:00:00到公元9999年12月31日晚上11:59:59之间,已经做出了相当大的努力,然而你在使用中仍会感到束手束脚,被迫放弃公元前的半壁江山。不仅如此,即使你认可了这种夹生的状态,部分地尝鲜一下信息技术的优势,其体验依然无法尽如人意,不得不忍受中西历转换的不便。正如特型脚在市场上找不到真正合适的鞋。
三、标准不一的时间标尺与统一的尝试
时间和日期标准限定于1900年前后很有象征意义,因为正是在这时,世界才开始慢慢融为一体。而此前,时间与日期系统是各自独立的,你有你的推历方法,我有我的纪年规则,独立到相互的对应已经成为一门特殊的学问。
提及中国历史,历史纪年是人们认知它的基础。邓广铭先生曾提过研究古史需要掌握四把钥匙——年代学、职官制度、历史地理和目录学的说法,其中的“年代学”核心即指历史纪年而言。治史重视年代,本是一个很浅显的道理,何以会让史界名家如此向后学强调,其背后实有深意。《史记·十二诸侯年表》有这样一段话:“太史公曰:儒者断其义,驰说者骋其辞,不务综其终始;历人取其年月,数家隆于神运,谱谍独记世谥,其辞略,欲一观诸要难。于是谱十二诸侯,……”[1]这里,“成一家之言”的司马迁向世人展示了治史的独到之处:诸家之所以难“一观诸要”,是因为他们断章取义、“不务综其始终”地对待史料,而史家则可以通过年表的修撰,以纪年之标尺,还原其总体,通贯其始终,从而一览全局,得其要义。年代学作为治史者的入门路径,并非止于《二十史朔闰表》等工具的熟稔使用,其终极价值还在于利用它来还原一个完美的历史画卷。个人猜想,年代学这把钥匙的提出源于史家常年凭依它排比史事的辛苦与成就。我们可以看到晚近及至当代一些知名史家的成就往往都根植于“编年”与“年谱”的精心修撰,比如,邓广铭先生有《辛稼轩年谱》,杨宽先生有《战国史料编年辑证》,等等。似乎入此行就难以绕开这一由苦而乐的逻辑。
其实,从司马迁开始,人们就力图通过一些手段终结或者减轻历史认知上的此类艰辛,然而,历史却又持续地创造着新的时间标尺(新政权改定新历,分裂政权各行其历),增加进新的复杂性(建元、置闰、改“正”、改岁首等),以此来考验史家的智慧。时间标尺的标准在一代代累加,困扰人们的题目愈加难解。前后变易频繁,史籍档案错杂,即便是同时代的史家也难保不犯错误,比如张继海先生曾指出《汉书·王莽传》混用汉历、莽历的情况[2];史事辗转传抄,汇总别撰,更少不了漏脱错衍,时序矛盾,乱象愈加丛生,所以李崇智先生在历代年号考察中将很多年号做存疑处理[3]。当然,历朝历代不乏力图建立统一时间标尺的探索者。其中,北宋司马光的成就举世公认,其主持编纂的《资治通鉴》建立了一个自周威烈王二十三年(公元前403年)迄五代后周世宗显德六年(公元959年)1300多年的统一的时间标尺。司马光在《资治通鉴目录·序》中写道:“臣闻古之为史者,必先正其历,以统万事,故谓之《春秋》。故崇文院检讨刘羲叟遍通前代历法,起汉元以来,为《长历》。臣昔尝得其书,今用羲叟气朔并闰,及采七政之变著于史者,置于上方……”各代各政权的纪年系统虽然各异,然而天象是不变的,干支日序是共通的,故而可以把时间标尺统一起来。自司马光之后,这种做法一直相延至传统社会的终结。应该说,这是一个非常有借鉴意义的解决方案。
近代以来,中国学人将历史考察的视野扩展到境外的诸国,同时也就不可避免地要理析异域的各类时间标尺,以使中外史事得以对比、勘验。渐渐地,世界的融通使人们淡忘了繁杂的王朝纪年,更倾心于相对客观且简捷、易于辨识记忆的公元纪年法。时间标准与规范在发生着潜移默化的变化。20世纪50年代中华书局版《史记》诸表眉端及《资治通鉴》纪年标题后附注了公元纪年,印证了这一趋势——历史纪年法统一采用世界通行的公历。公元纪年,表现直观,计算方便,为历史年代的初步数字化提供了条件。
四、公元年标尺的粗疏及其数字化应用之问题
本来,不同时间标尺是有明确对应关系的,为此人们也编写了不少工具书来方便查对,《二十史朔闰表》就是这种性质的工具书。然而,学者一般会将史事的整理的结果尽可能简化,鉴于各纪年法的某年与相应公元年在年内大部分是重合的事实,也由于许多历史事件缺少具体的月日信息,仅记公元年数成了人们标识史事的最通常做法,很多供人查检的《历史纪年表》都是这样。陈楚家先生就曾讲,“准确简明”是此类工具书的编写标准[4]。毕竟,查检更专业的工具书来实现精准对应,耗时耗力,影响效率。如果我们只是粗略地审视历史,这样的数字化产品还是可以满足要求的。比如,下面图2这一应用。
但是这样做的弊端也是很明显的,唐凌先生 在《历史年代学》一书中举了一个很典型的例子:“苏轼生于仁宗景祐三年,死于徽宗建中靖国元年。按一般年表,景祐三年是公历1036年,本无问题,但苏轼的生日是这年的十二月十九日。这年中历十二月初一日是公历1036年12月21日,则中历十二月十九日已是公历1037年1月9日了。所以苏轼生卒年应为1037~1101年,《历代人物年里碑传综表》将其生年误为1036年[5]。”因为这类事情经常容易出现,所以一些案头手册的编写也照顾到这一点,如方诗铭在《中国历史纪年表》一书的“说明”中介绍了表中特定体例的含义:“从公元1年开始,在第三栏内左方加注同公历12月31日相当的中国历史纪年的月日。如公历1141年所注(12)㊁,即表明公元1141年的12月31日相当于宋高宗绍兴十一年十二月初二日[6]”。(如岳飞死于此年十二月二十九日,则据此可推知已是1142年,不是1141年。)
然而各种历史资料的数字化工程已经无暇再考虑这些细节了,公元年数据是最容易加工和处理的。比如,我们看《中国历代人物传记资料库(China Biographical Database Project)》这一数字化项目[7],在其主表 BLOG_MAIN中分别用c_birthyear和c_deathyear两个字段来存储生卒年的数字信息,查苏轼的生卒年分别记为1036和1101,与上述唐凌先生指出的错例是一致的。当然我们不该苛求资料库创始者美国汉学家郝若贝先生,他并非没有注意到这类问题,在该表中我们还可以看到诸如 c_by_nh_code,c_by_nh_year,c_dy_nh_code,c_dy_nh_year,c_by_month,c_dy_month,c_by_day,c_dy_day,c_by_day_gz,c_dy_day_gz等字样的字段,代表的是生卒年所处的年号、年号纪年数、月、日、日干支等信息,设计者大概是想通过这些数据的补充来完善公元纪年的不足,而1036可能与“景祐三年”的含义更为吻合,在年龄计算上也会更接近史籍的记载。
在出现此类问题时,到底何去何从,确实是处于一个两难的境地,取实际值,会导致计算上的麻烦,取年号纪年的折合值,又会引起后来读者的误判。再举一例,在《中国大百科全书·中国历史》的后附编年里记有:
398年,(晋隆安)二年,慕容德自立为燕王,史称南燕;北魏天兴元年,拓跋珪迁都平城,称帝,是为魏道武帝拓跋珪[8]。
文中,拓跋珪即皇帝位系于398年,但实际即位、改元发生时间是在该年的十二月己丑,合公元纪年399年1月24日。如果把该条放在399年下,则天兴二年就会被人错以为是400年,放在398年虽有点别扭,但易致误解的概率还是相对较低的。
虽然说设定唯一规则并严格遵循可以权且解决以上问题,但公元年数字化的问题远没有那么简单。象一年中改立多个年号的情况就是数字化处理的难题。公元189年,先后有灵帝中平、少帝光熹、少帝昭宁、献帝永汉、灵帝中平(复用)几个年号的使用,可以先借助以公元年为基础绘制的图表识其大端[9]。
从图3我们应该能够清楚,用公元年来表示它们都是189年,仅凭此无法判断其先后次序,必然会导致认识上的混乱。不同年号在同一年的交迭在历史上还是很常见的。于宝林先生将其称之为“交叉年”,曾提出“年表的编制要充分重视交叉年的处理”的意见[10],实则是对自《资治通鉴》以来历史纪年应用中“明头埋尾”办法的反思。信息技术讲求信息的准确与次序分明,当公元年数据不足以判断时间的先后时,一些辅助信息的加入也就是必然了。前面提到《中国历代人物传记资料库》中年号、月、日等数据结构的设计一定是有这样的考虑在其中。当然,这样一来,简单的排序也就变得复杂起来,需要多重的排序最后给出结果。但问题又来了,中国纪年是有闰月的,闰月的月序排列是不固定的,这样必然会导致一部分数据的排序是不符实情的。再加上岁首问题(如秦及汉初以十月为岁首)、干支误记问题等等,欲图轻松做出正确判断,着实是比较奢侈的想法。唯一能做的就是增加更多的辅助信息来帮助决断。而这样做的代价就是无情地割断了不同数字化产品之间的关联,因为公元年的标准虽然是相对一致的,但辅助信息的内容与规则会缘于使用者的需求差异而大相径庭。比如,在“中国历史地理信息系统(CHGIS)”中[11],在时间序列数据中均有 BEG_YR,END_YR,BEG_RULE,END_RULE几个字段,前两个很明白,就是开始与结束的公元年数值,而后两者则是出于标明公元年数值给定出发点的考虑,实际就是对公元年数值的一个附加说明,大致分成6种,1代表跨朝代的,诸如“秦汉”“宋元”;2代表单个朝代,诸如“唐”“明”;3代表某统治者或某年号单元,诸如“顺帝”“至元”;4代表明确纪年,诸如“康熙十三年”;5是诸如“四月”或“秋”的表示方法;6是精确到具体日期的诸如“嘉庆十四年五月甲辰”的表示方法;9则代表其他情况。所有这些设计,是基于地理信息系统对于信息能否有效组织而展开的,既然政区沿革的时代信息往往相对模糊,而地理信息系统对于非数值数据分析乏力,那么将两种数据结合也就成了这一系统的特色选择,到其他系统中可能未必适用。
概括地讲,以公元年为基本标尺的数字化产品信息失真度较大,序列化成本较高,兼容性不理想,可移植性差,这使得相关数字化产品的应用效果不理想,使用范围狭窄,后继的维护与扩充也很吃力。而这些问题的症结主要归因于人们并未试图去寻找一条更精准的、更便捷的中国历史纪年系统与当代的日期时间系统之间的转换渠道,更进一步说,是缺少建立相对完善中国历史纪年数字化标准与规范的思想准备和迫切心情。
五、中国历史纪年数字化的出路设想
精确到日的中国历史纪年系统与当代的日期时间系统之间并非不能转换,两者是可以相互推算的,陈垣先生所编《二十史朔闰表》是治史者非常熟悉的这方面的突出成果。而其后,由天文历算方面的专家制作的诸多“历表”更成为重要的参考工具书。“历表”往往卷帙浩繁,文字密布,无形中让人们以为翻检“历表”是十分“严肃”的事情,只有精细考证、正式出版才用得到的,是要成为“专家”才去做的。这种先天的抵触心理影响了人们在历史纪年数字化上的判断。认为门槛高、低效率,是阻碍历史纪年精确转换的一个瓶颈,况且转换前后信息的保存、管理、维护也需很大成本,于是便止步于公元年标尺。
张培瑜先生在《三千五百年历日天象》一书前言这样写道:“要建立起连续的纪年纪日系统、中历和西历年月日干支之间的对应关系,历表是必需的工具。”此言不假,近千年前司马光就是靠刘羲叟的《长历》统一了宋以前的历代纪年。然而,挑剔一点儿讲,这句话实际上只揭示了表层的东西,在背后隐藏的,正是中国历史纪年数字化所追寻的。作为历算专家,张培瑜先生非常清楚,在推算过程中,真正建立起连续的纪年纪日系统、中历和西历年月日干支之间的对应关系的是一种特殊天文学历法——儒略日。认真翻检过“历表”的人们一定不会对“儒略日”这一词汇陌生。简单来讲,“儒略日”是一种不记年、月,只记日的历法,以公元前4713年1月1日为历元,是一个独立的连续不间断的记日长尺。自1583年被开创以来,为天文学家、历法学家、年代学家广泛使用,利用它可以把不同历法的年表统一起来。与“儒略日”相对应,现代“协调世界时(UTC)”的基础“原子时”也是一个连续不间断的记时长尺,只是更加精准而已,两者没有本质差别。那么,如果我们能够实现中国历史纪年向儒略日的转换,也就能够顺利地与现代信息技术无缝接轨,相应的应用优势自然也可以随之嫁接了。试举一例,公历237年5月12日是曹魏明帝景初元年四月三十日、蜀汉后主建兴十五年三月三十日、吴主孙权嘉禾六年四月一日,干支均为丁卯日,它们都有一个统一的儒略日值——1 807 754。还要指出的是,儒略日值不光是精确到日的,其小数点部分还可以把时间精确到一天中的不同时段。
有了儒略日值的帮助,人们可以轻松地了解苏轼生日的时间内涵(景祐三年十二月十九日,已至公元1037年,如图4),而且还能一眼发现唐凌先生1月9日的推算错误。
人们对于《资治通鉴》纪年处理中“明头埋尾”的诟病也可以化解了,如实反映即可(参图5)。
类似文章开头提到的时间轴应用也能方便实现(见下图6),无需再等待当代商业信息技术规范哪一天对古史的垂青。
归纳来讲,有了它,信息失真可以减到很小,序列化更是易如反掌,兼容性和可移植性更是没有问题。因此,把儒略日值作为中国历史纪年数字化的最基本的数据形式是值得慎重考虑的。这不仅可以让治史者享用当代信息技术的优秀成果,同时也使历史资料的呈现精度大大地提高了,也很有可能会将历史研究带入一个面貌一新的境界。
当然我们也要认识到,“儒略日”只是中国历史纪年数字化的最根本的基础,要想使它真正派上用场,还需要在标准与规范上下足功夫,基本朝代、帝王、年号等一系列以儒略日数据为基础的标尺属性及相关历法的推导参数需要逐个加以落实,史籍里不同类型的纪年表达如何实现数字化的对应也需要各界专家商定。不完全统计,中国古代纪年所用年号就超过千数,所以每项工作都是不小的工程。目前还远不是我们尽情享用信息技术便利的时候,因为信息技术如今对大数据的超强处理能力有业界几十年标准日臻完善的支持,而我们可以说还尚未起步。好在我们有很多品质优良的历史年表、天文历表与历谱、图谱等出版物,当今浩繁的信息漫延使它们堆于角落几致无闻,所以是时候将其化繁为简,化零为整,突显其科学价值了。
[1]司马迁.史记[M].北京:中华书局,1959.
[2]张继海.《汉书·王莽传》所用历法辨析[J].北大史学,1999:229-232.
[3]李崇智.中国历代年号考[M].北京:中华书局,2001.
[4]万国鼎.中国历史纪年表[M].北京:中华书局,1978.
[5]唐凌.历史年代学[M].南宁:广西师范大学出版社,1992.
[6]方诗铭.中国历史纪年表[M].上海:上海辞书出版社,1980.
[7]北京大学中国古代史研究中心.中国历代人物传记资料库(CBDB)项目[EB/OL].http://www.zggds.pku.edu.cn/006/cbdb/CBDB.htm,2005.
[8]中国大百科全书总编辑委员会《中国历史》编辑委员会.中国大百科全书·中国历史[M].北京:中国大百科全书出版社,1992.
[9]孙占铨,孙天元.中国历史图谱[M].长春:吉林文史出版社,2010.
[10]于宝林.中国历史年表研究——以民族历史纪年表为实例[J].民族研究,1997(1):106-111.
[11]复旦大学历史地理研究中心.中国历史地理信息系统(GHGIS) [EB/OL].http://yugong.fudan.edu.cn/views/chgis_index.php?list=Y&tpid=700,2003.