告别菊坛世系谱

菊坛世系谱的数据整合到梨园百年琐记中已经有两个星期了,目前来看一切正常,很顺利,无缝对接。除了世系谱首页之外,所有其他链接点进去后都会被转向到琐记那边相应的页面。

所以现在要做的最后一步就是把世系谱首页的这扇闸拉上,把进入世系谱首页的网友转到琐记的“世家”页面。上次说过,在做这项工作前,要来这里与世系谱做最后的道别。

细想一下,其实这还不是最后一步,所有自动跳转启用后,过一大段时间,当 trees.xikao.com 不再被人访问的时候,还需要把这个地址从 DNS 列表中清除出去,那会儿可能又要来一次“最后的道别”。“那会儿”距今尚有时日,先说一下这次的感想吧。

这次通过世系谱接触到的编程思路,是一个全新的领域,包括整个页面的布局,如何合理且不过分堆积出一个图谱来,都是一个挑战。数据库表格的设计,虽然早在多少年前就已经知道如何去做,算法上如何去推演各种人物关系,但是真到实际应用上,还是有需要推敲的地方,有要优化的地方。世系谱最早的数据其实已经有一些与琐记是重合的了,比如一个人的性别,这个后来在两站整合之前就已经共用一个新表了。再比如世系谱上显示的人物的基本信息,从生卒到行当,乃至照片,都用到了琐记的数据,直接调用琐记的表格。也正因为此,两站合二为一其实是早该在规划时就想到的事情。只不过那会儿脑筋有些僵硬,没有想好如何在琐记现有的结构上增加这些东西。现在回头看一看整合,其实挺容易的嘛。

说到琐记的人物照片,世系谱在最初调用这些照片的时候只是把原图引用过来,显示的时候把尺寸按比例缩小而已。举例说明,某人的照片大小是 40KB,300px 乘 200px 大小,当世系谱调用它的时候,这个 40KB 的文件还是被下载下来了,只不过以 75px 乘 50px 大小的比例显示出来。虽然 40KB 在今天来讲不算多大,但严格意义上讲,网页的加载速度还是会因此变慢了一些。所以后来琐记在生成缓存数据的时候,增加了一项任务,就是把新增的人物照片先按比例缩小,另存成一个新文件,在世系谱那边加载的时候,所选用的就是这些只有一、两 KB 大小的缩略图,大大优化了页面的加载。

这个自动为新图片生成缩略图的小段程序,也很快就被用到了戏考剧本的配图上。

菊坛世系谱虽然关掉了,但是这个小站从构思开始,就给小豆子带来了一种全新的工作体验。即便是最后与琐记的整合,也促进了戏考其他小站在程序上的优化,比如一套新的获取更新记录的函数,可以更好地嵌入到戏考新的首页中。这些改变,从外到内,都与世系谱有很紧密的关系。

今天我们在此与世系谱道别,也接近一个辞旧迎新的日子。新桃换旧符,问世一年的世系谱虽然关掉了,但是小豆子将一直记着这一年来由于它促进戏考的这场大规模编程优化与整合的经历,也希望戏考能够继续时不时地产生出新鲜的想法,并付诸实施,把更多的戏曲资源更系统地数字化,呈现给大家。

停留在测试版的菊坛世系谱站标
停留在测试版的菊坛世系谱站标

菊坛世系谱的减法

菊坛世系谱已经上线一年多了(公开测试将近十个月)。不过现在,需要在这儿宣布一个事儿,并非是要宣布把小站“测试版”的牌子摘掉,而是要宣布这个小站将会被逐渐停掉。

经过一年多的调试,发现菊坛世系谱的内容并不一定需要以一个独立的形式存在。在现有梨园百年琐记的架构基础上,做一定的扩展,即可以把世系谱的内容整合到梨园百年琐记里,是人物与事件条目的一个补充。

戏考这些年来,加法做了不少。减法也做过,但不多。仅有的几次减法都是与梨园百年琐记有关的,比如年度大事评选,比如条目质量提升项目。这一次的改动,既是加法,也是减法。加法的地方,是把琐记的数据与世系谱的数据更好地整合到一起,使后者成为前者的一个强力补充;减法的地方,是要砍掉一个创建了一年的小站。当然,这个砍掉是全盘转移,任何资料都不会因此丢失,也就没有什么遗憾和惋惜的地方了。

接下来的几周,您将会看到梨园百年琐记上的相应变化:琐记与世系谱将会平行出现有同样内容的页面。当琐记那边全面接手世系谱的数据后,世系谱的页面将会启用自动导向,把从搜索引擎里引来的访客直接转向到琐记那边。一切过渡都争取做到平稳无缝的,争取跟前年开的十八大那样。

当一切都整合完毕后,小豆子会再来这里,与世系谱小站做最后的告别,这个小站,从构思、设计到最后付诸实施,都是非常有益的经历,包括这次整合,对戏考的整体设计与运行理念有了新的认识。而促成这次整合的另一个技术上的动力,我们以后再讲。

2013年工作总结

今年是个丰收年,各小站的更新数都是相当喜人的。想来一个原因就是改版后,首页会像日志那样记录每一个小站一个月内的更新记录,因此,不隔三差五匀着点儿更新,都有点儿“对不起”这页面。有一个引人向上的动力,更新量自然也就上来了。

今年戏考新增剧本43个,超过了去年创造的最低点自不必言讲,而且超过了前年、大前年、大大前年的数量。虽然与历史平均值和历史最高点还相去甚远,但也是一个难得的反弹。这是在工作开始转移到其他小站之后,戏考剧本的一次回归。如上所说,相信今后这样更均衡的更新会取代过去几年那饥一顿饱一顿的状态。

具体剧本的分布情况,还是看饼图吧。产量恢复后,做出来的饼图还是比较好看的,比如这张,跟吃豆儿游戏似的……

2013年工作图表
2013年工作图表

本年录入第一多的为仲愚,贡献了13个剧本;并列第二多的为合意与人生过客,各贡献了5出剧本;第三多的为满庭芳,贡献了4出剧本。

其他小站方面,也都是较前几年有了更高的产量。新推出的菊坛世系谱是头次挤入这个统计行列。

  • 梨园百年琐记:人物条目新增190条,修正101条;事件条目新增1239条,修正42条。主要条目贡献人包括:周肇西、水大夫、z、南洋孔明、流水、梨园知音、慕梅馆主、京剧乐队、抱残斋杨庆国、大戏魔、小豆子等。
  • 京剧剧目考略:剧目新增175个。
  • 红毹艺话:录音新增10出。主要录音贡献人包括:西城老軍、上小楼、临祺蝂芹、京门浪荡客、谢半仙、秋思等。
  • 菊坛世系谱:人物新增3150位(2012年底准备期间增加了648位),产生了41329条关系。
  • 梨园:录音新增121出,修正6出,恢复老梨园录音5出。主要录音贡献人包括:董林、西城老軍、白龙马、秋思、凤点头、彭林刚、小豆子等。

数据方面,今年还有两个日子需要记一下:8月22日那天,更新了四出剧本之后,戏考的剧本总数达到902,突破了900大关;12月16日那天,梨园百年琐记的事件条目突破了一万条大关。很高兴,毕竟是里程碑式的成果 表情 从零走到一万,历时十一年,始有今日。

本来还打算写一下来年的计划,不过以前也没有这么写过,而且一旦写了,若没有实施,就会落个言而无信的名头,所以也就作罢。至于为什么有一种要写计划的冲动呢?因为现在又在搞一些新页面的设计与编程,挺有成就感的。明年第一季度应该就可以开放给大家了。这个回头再说。

眼看新一年就要到来了,祝各位新年快乐,万事如意!

小改进

据说“小赌怡情”,也有说“小酒怡情”的。不管怎么说,这里边儿的中心思想就是说偶尔做点儿别的不常做的,总是“怡情”的。编程之于整理文字音频资料来说,对小豆子就是怡情的,一种调剂。

戏考的小站们自从1月份改版之后,这半年间,网页上并没有什么大的改动,倒是陆陆续续地做了很多小的改进和新增了些小功能,一直觉得每个改动都不算大,不值得特意开一篇 Blog 来介绍。现在一来过了半年了,二来积累的也有不少了,所以总结性地归纳一下,也算留个记号,以后回过头来看戏考网页上的设计,好歹是个见证。

按照小站们的顺序依次点一下。

今日·Unicode 问答集:这个页面以前一直是 HTML 的,终于改成了 PHP 并套用了统一的模板。这个问答集的内容可有年头了,有些网站在提及 Unicode 的时候还连锅把它给端过去,全不看看里面还提到“剧本”啦一类与他们不相关的内容。抄都不认真。

今日·去世信息:首页的去世信息,在人名边加上了简单的生卒信息以及剧种行当。

今日·分隔符:首页里罗列的更新信息,每一条最初是用顿号(、)来分隔的,后来发现因为有些事件标题中本身会带顿号,连在一起便产生歧异,所以改成了斜线(/)。

京剧剧本·录入动态:首页按日期显示最近的录入状态。

京剧剧本·录入人:统计页中,把原先罗列的录入人按照首字分组显示,且每个人的名字都链接到了一个显示此人录入了哪些剧本的搜索页。

梨园百年琐记·资料卡:每个人物的页面右上方增加了一个简明的资料卡,包含照片、生卒、分类、科班院校、老唱片等基本信息。以前这些文字信息都在人物生平的下方,只有照片在页面的右上方。这次提升与重新规整,更清晰。并增加了相应的世系谱图链接,自然是来自菊坛世系谱小站。

京剧剧目考略·重名剧目:新的重名剧目页可以直观地显示出那些同名但不同内容的剧目。

京剧剧目考略·书目:剧目页面中,提到的书目增加了搜索链接,可以通过此查找到其他基于同一本书创编的剧目。

红毹艺话·学习了:每一个录音旁增加了一个红色的加号,名曰“学习了”。如果您觉得这个录音对您有帮助,或者就是单纯地觉得它好,那么请点一下这个加号,会使旁边的小计数器增长。这个就是一种对该录音的某种心情表达,与梨园里录音旁的“叫好”是一个意思,只不过这些录音都不太适合“叫好”,才用了一个别的名字而已。

菊坛世系谱·干亲:这个曾经特别说过,可参见这里

菊坛世系谱·频道聚合:现在菊坛世系谱也有 RSS 频道聚合了,您可以订阅到您的阅读器(呜呼,Google Reader 却已亡故了),这样就不会错过任何一次更新了。

“干爹”

“干爹”这个词儿,现在的名声实在不好。

追溯起来,国人认干亲是很有历史的。《封神演义》里面,周文王的第一百子——雷震子,就是周文王在燕山雷雨中所收的义子。各种演义小说里有身份的大官儿经常爱到处划拉收干儿子,以《残唐》里李克用的十三家太保最为著名,尤其是第十三位太保李存孝,因为武功了得,把这“十三太保”的名头远播寰宇,弄得后来的《隋唐》,也要硬把秦琼凑成杨林的第十三位义子干儿。

两个成年人关系十分好,他们的子嗣互拜对方为义父的例子也是很常见的。这种认义父与认义子的情怀,是很朴素简单的——就是一位长辈看着一位小辈很招人喜欢,或者两位长辈间要多亲多近,拜个干爹收个义子都是寻常之事。

如京剧界的谭鑫培与杨月楼,二人是盟兄弟的关系。杨月楼临终前把自己的儿子杨小楼托于谭鑫培,而谭鑫培也是对得起兄弟,不仅收杨小楼为义子,按照谭家的排辈给取了“嘉训”的谱名,还把杨月楼与自己演武生的技艺倾囊传授。谭鑫培七子二女,加上这义子杨小楼,真个是“七郎八虎”,与杨老令公他们家一般不差,也是一段佳话。

在伶界,认干亲的现象并不罕见,很多情况下是像上面说的谭、杨二家那样,伶人间惺惺相惜,其目的很单纯,感情是很真挚的。这也是中国这个人情社会里除去亲情外另一种紧密的关系。当然,我们不能否认,在旧社会一些认权贵阶级为干爹的伶人是出于生活所迫。

文革期间,因为父母辈是黑五类而被批斗的人比比皆是。那些曾经认过干亲的伶人,若是摊上了个“够分量”的干爹,那也如有了不好的出身一样,会倒大霉。而这又与出身不同,你的罪过不止是在于有了一个坏干爹,自己还有一条“善于钻营”的罪名。

手边有一份1968年8月号的《京剧革命》小报,其中一篇文章的标题是《张君秋是认贼作父的“干爹”迷》。对张先生认过“总数不下二十名”干爹的行为进行大批判。如张先生的“干爹”中有一位是“被人称为‘北京杜月笙’的吴季玉。这个吴季玉是蒋帮要员于右任的干儿子,又与特务头子戴笠关系密切,而且很得蒋匪本人的赏识,曾委之以军统局北平站站长的重任。张君秋有这个吴干爹做靠山,真是‘一登龙门则声价十倍’,戴上了‘四小名旦’之一的桂冠,能与他的马干爹并驾齐驱于剧坛之上。”这种批判连最基本的历史事实都不顾,说张先生“极尽钻营取宠之能事”结识“吴干爹”是1945年抗战胜利之后,而四小名旦的投票早在1936年就出了结果,及至1940年《立言画刊》组织四位同演《白蛇传》早已成定论。

《张君秋是认贼作父的“干爹”迷》
《张君秋是认贼作父的“干爹”迷》

当然,这种批判文章自不需要讲什么历史真实性,为了一个把人批倒批臭的目的,极尽所能。我们读这种史料,通过近乎咆哮的文风,可以对于那个六亲不认的时代环境有很直观的了解。同时感叹,这些老艺人,正是因为切身体会过了旧社会的逼人忒甚,才真心拥护新社会,觉得自己翻身得到了解放;可他们很多在旧社会时因身不由己被迫所做的行为(甚至只是捕风捉影的传闻),却成为了后来新社会各种运动中的致命把柄。真是讽刺至极。而以“认干爹”为罪状把艺人形容的在“干爹”脚下如何“浓施粉黛”、“卖弄风骚”,则只能说明这些写批判文章的人自己心里是多么不堪。

当各种运动都结束之后,人与人之间的正常感情也随之慢慢地恢复。可是,干亲在金钱至上的时代又开始走形。我们当然要肯定现在仍然有纯粹的干爹义女,但显然,如今“干爹”已经很暧昧,这个词儿已经被毁掉了。所谓人心不古,世风日下,提起“干爹”来,似乎很难让人再想到早年间那种纯粹的亲情。

干亲之外,领养与过继,也是亲缘网中一种独特的关系。领养也好,过继也好,都是另一种亲情爱心的表现。比如王凤卿把自己的次子王幼卿过继给兄长王瑶卿,正是出于王瑶卿只有二女“乏嗣无后”的缘由,是弟兄间情谊的表现。而老一辈的伶人收养子女,往往都是视如己出,也是积德行善之事。

鉴于两种亲缘关系在伶界并不罕见(张君秋先生那二十多位干爹是有其夸大之处),我们有必要在整理伶人亲属关系的时候一并把它们留存下来。现在,这两种关系都可以在菊坛世系谱中显示出来了。因为这与真正的血亲和姻亲不同,故而在两辈人之间,使用虚线而非实线来连接,并且写明如“义父”、“养父”等字样,与“父”、“子”等区分出来。这些关系和谱图中的其他关系并存,在人物间的操作上并无区别。

今天更新网页代码的同时加入了十八条义父母和养父母的信息,往后还会继续整理添加。若您有这方面的信息,亦可以通过编辑页面来提交,现在新的下拉菜单中已经包含了这几种关系。

菊坛世系谱

2008年,与久仰了的裘迷相聚于北京,我们从隆福寺的三联往南走到王府井的长安街口。记得在路上,聊到各类戏曲网站,小豆子对他说,想做一个家族树式的小站,利用数据库的资料和简单的算法,直观地反映出戏曲界人与人的亲属关系来。算来,已是将近五年了。

其实这个概念,早在2005年的时候就提过了(见这篇小文)。那会儿也只是感叹一下,并没有真的动手,因为手头要做的东西实在太多了。后来陆续做了些如京剧剧目考略和红毹艺话这样的小站,还接手了梨园的维护工作,但这个比较有意思的概念,也一直只是一个概念而已。算来,快八年了。

去年11月份和小豆花休假回来后,对小豆花说,要不然咱们做这个吧。数据库与网页的设计并不复杂,稍微花了一些时间在编程的算法上做优化,这一段历程也是很有挑战性的。于是,这项工作就这么突然地从一个简单的概念付诸实施了。现在想来,倒也挺突然的。

不过这也是一件水到渠成的事情。如果放到几年前来做一个戏曲界的人物关系表,恐怕能调用到的资源还没有那么多。今天,梨园百年琐记里已经收录了超过四千位圈内人士的资料,数据库中提到的人物则超过一万四千人,有这个庞大的资料库作为后盾,在一个人物关系表中显示某人的曲种行当,以及他亲戚的曲种行当,都不是一件难事儿。

而一个错综复杂的亲缘关系表,分解开来后,其实也是极为简单的。对于每一个人物,我们不需要知道他的七大姑、八大姨、祖上多少代都是谁,每一个人的亲缘记录只要二条,即:此人的生身父母是谁,此人与谁有过婚姻关系。就这么简单。其他的亲缘关系都可以从这个最简单的关系推导出来。比如甲的父亲是乙,母亲是丙,那么若想知道甲的祖父是谁,只需要在数据库中查一下乙的父亲是谁即可。甲的叔叔呢?那是一个或多个与乙的父母相同但是比乙的年龄小的人(或人们)。甲的舅妈呢?甲的舅妈是与丙共有同一对父母的男性的妻子。通过演算,我们可以算出一个人上下多少代周边多少位亲戚来。而这些都会由电脑帮我们从数据库中查询并算好;给我们展现出来的,则是一幅幅清晰明了的人物关系谱图。坐享其成,就是这个意思。

当然,由于录入的偏差或者重名等原因,电脑生成的谱图并不一定是百分之百准确的,而这时就需要大家帮忙来查错并及时指出,以免讹误流传。梨园百年琐记一直靠着大家的帮衬才有了今天的规模,相信菊坛世系谱也不会例外。

当您在谱图中浏览时,点击任何一个人的名字,将会进入以这个人物为中心的新谱图,所有亲属关系称谓都是相对这个人而言的。所有加粗了的链接,都表示此人是戏曲曲艺圈子里的,而正常字体则表示他是“外行”。

在谱图中,人物简单的介绍以及生卒都来自梨园百年琐记那边。如果这方面有空缺,则说明琐记那边尚无相关信息。若是您恰好有某些可以帮助补充的资料,希望您一如既往地在琐记那边提供。充实那边的资料,将会使两边受益。这就是资源整合的一个好处。

人物的照片也很容易地从梨园百年琐记那边引用过来了。当然并不是每一个人都有照片资料,所以您会看到很多人都只有一个简单的头像图标。提供照片的方法也是通过琐记的投递。另外,点击照片或者头像的话,将会进入该人物在琐记那边儿的页面,您可以看到此人的更多介绍,或者帮助补充提供新的信息。梨园百年琐记那边人物条目的页面上也将会加上反向的链接,直接连到相应的谱图中来(就像现在连到老唱片的相关页面那样)。

有蓝色背景的人物表示此人是男性,而粉色背景则表示是女性。这个其实还是很明显的。我们觉得这样的设计比文字的“男”、“女”更直观一些,而且更省地方。

目前小站上的信息,大部分来自梨园百年琐记中已有的文字,另外参考了刘嵩昆的《京师梨园世家》,并按照书里的内容挨家挨户地把信息提取出来并数字化(现在完成了四分之一)。需要极力推荐这本书。想当初刘先生手工编篡那一张张图表,比起如今用电脑生成可是费功夫多了。今天我们又得以更上一层,系统地整理这些信息,免去了在书中从一个表跳到另一个表的繁琐查询,而刘先生作为这个领域的先驱,功不可没。

说到先驱,还有一位前辈需要提及,那就是作了《中国伶人血缘之研究》的潘光旦先生。潘先生在这本书里以独特的角度解读了梨园世家的产生与发展,梨园界屡见不鲜的“强强联合”的婚姻关系,在很大程度上帮助了这个圈子的优化与扩张。潘先生说:“伶人是有世家的。不但有,并且很多,亦且也许比别种人物多……‘方以类聚,物以群分’原是生物界的一大原则……一个以票友开始的个人往往终于会造成一个三代四代专以优伶为业的家系,而家系与家系之间,复因彼此互为婚配的关系,可以造成一个庞大的集团,一个千头万绪、循环往复的‘血缘网’”。

直到今天,我们还可以看到在京津沪这样拥有大剧团的地方,一对对梨园伉俪携手继续“循环往复”新的关系网。比如2009年结婚的李孟嘉与谭茗心,就又把京剧界的两大世家——李家与谭家联系到了一起。小站的数据每补充一条新的亲缘关系,就会把一个点连到另一个点,把这张网编得更庞杂,最终使我们有一个更直观的概念,从宏观到微观,每一条人物关系都会非常清晰。而这一切都是实时的,不必等到多少年后我们再回头来考证和整理这些信息。

小站目前是测试阶段,最终我们会加入师承以及干亲螟蛉的信息。这些信息怎么能够更直观地表示出来而不使现有页面变得臃肿,又是一个挑战。

欢迎您对新的菊坛世系谱提出您的意见和建议,也希望这个小站能够成为您又一个应手的工具,哪怕是一个有助于八卦的玩具呢 表情

对了,网址是 http://trees.xikao.com 。从戏考的各个小站也都可以连接过去了。