☰
Gramps家谱整理三步:事件模型、来源核验与GEDCOM导出
2026/10/28 7:08:20 网站建设 项目流程

家里老人走后,我在旧木箱底翻出一沓纸片:手写的生日、几个只有小名的女性、两处互相矛盾的下葬年份,还有同一房亲戚的三种写法。把它们输进 Excel 是我干的第一件蠢事——姓名、性别、生卒年一列列排下去,做到第四代就崩了:一个人有两次婚姻,每段婚姻的子女不同;同一件事有三份材料打架;某位长辈只留下“大概在某段动荡年月出生”。表格能记单点,记不住关系和证据。所以最后还是回到了Gramps这类专门的家谱软件上。它开源、免费、跨平台,数据存在你自己的机器里,格式开放,导出的GEDCOM几乎任何家谱工具都认。这篇就按标题说的“三步”来:先建库、再补关系、最后核验输出。适合两类人:手上有零散老资料想系统整理的;以及用过别的软件、被导出格式和收费墙坑过的。你不需要懂编程,但要有耐心——这件事本质上是在做一个家族历史数据库,而数据库最贵的从来不是软件,是你输入时的那点判断力。

1. 家谱不是表,是一张带时间和证据的关系网

1.1 先用三个反问判断你到底需要什么工具

在下载任何软件之前,值得花十分钟问自己三个问题。第一,你的资料量有多大?如果只是记录几十位直系亲属的姓名和生卒年,一张电子表格甚至一个文档就够了,强行上专业软件反而增加负担。第二,你要不要“证据”?也就是说,你希望每条信息后面能挂上“这条是听某位长辈口述的”“这条是照着老户口本抄的”“这两条互相矛盾,暂取其一”——如果需要,表格就撑不住了。第三,你以后要不要给别人看?如果要做成可翻阅的谱系图、可打印的册子、可发布成静态网页的家族资料集,专业软件的产出能力就是刚需。

这三个问题其实对应三种人。第一种是“我想把知道的东西记下来”,第二种是“我要把记下来的东西管起来”,第三种是“我要把它传下去”。Gramps的定位明显是后两种,所以它第一次打开时的界面会让新手有点发怵:十几个视图、一堆字段、各种专业术语。这不是设计得差,而是它默认你会认真做这件事。我见过不少人装了之后十分钟就卸载,理由都是“太复杂”;但真正的问题不是复杂,而是他们还没想清楚自己要干什么,就被界面推着走。

我自己的判断标准很土:如果你能接受在录入一个人名时,顺带想一下“这个名字我是从哪知道的”,那你就适合用它;如果你只想尽快看到一张漂漂亮亮的树状图,先别急,用纸笔理清三代人再说。工具的复杂度应该由资料的真实复杂度决定,而不是相反。

1.2 Gramps 的数据模型:把“人”和“事”拆开

真正让 Gramps 区别于表格的,是它的数据模型。它把一份家族资料拆成几种互相引用的“对象”,最核心的几类我先列清楚,后面的操作全都建立在这个理解之上:

对象类型它记录什么典型例子
个人 Person一个人本身姓名、性别、别名、备注
家庭 Family一段配偶关系及其子女某两人结为夫妻,育有三人
事件 Event发生在某人/某家庭身上的一件事出生、结婚、迁居、下葬
地点 Place事件发生的位置某个村镇、某处宅院
来源 Source资料的出处一本族谱抄本、一段录音
引用 Citation某条具体信息与来源的对应“出生年份出自第三页第二行”
媒体 Media图片、音频、扫描件老照片、墓碑照片
备注 Note自由文本口述中的疑点记录

关键点在于:“出生”这件事不属于人,而是一个独立的事件对象,通过引用挂到人身上。这在表格思维里是反直觉的,因为表格里“出生日期”就是人的一列。可一旦你接受的资料里出现“出生于某村,三岁迁走,成年后回到原籍”,你就会发现一列装不下——这是三个事件,各自有时间、地点、来源,甚至可能有矛盾版本。拆开之后,每件事都能独立标注可信度,冲突不再打架,而是并列存在,由你来裁决。

理解这一点,后面所有操作都会顺很多。反过来说,如果你一直用表格直觉去用它,就会觉得“怎么录个生日要点这么多下”。不是它啰嗦,是它在替未来的你保留细节。

1.3 为什么“事件”这个概念值得你接受

我一开始也不适应,直到遇到一个具体问题:两位同名同姓的先人,一位的记录里只有“生于某年”,另一位的记录里只有“某年婚于某处”。表格里这两条要么合并要么分两行,合并了会串,分行了看不出关系。用事件模型,我可以先建两个“个人”对象,各自只挂一个事件,然后通过家庭对象去试探他们的配偶子女是否对得上。对上就合并,对不上就保留两个,谁也不用删。

事件还有第二个好处:它天然支持“不确定”。一条事件的日期可以写成“约某年”“某年之前”“介于某年到某年之间”“只知道在某年之后的一段时期内”,还能给这条信息打上可信度等级。这在真实的家族资料里太常见了——长辈口述的年代往往是模糊的。软件允许你诚实地表达“我不确定”,而不是逼你编一个确切数字。这一点我认为是专业工具和玩具的分水岭。

第三个好处是可复用:同一次婚礼,同时是两个人的事件,也可以是两个家庭的联结节点。你只需要录一次,多处引用。资料一多,这种省力会非常明显。

2. 装完别急着录:五个必须先落地的设置

2.1 数据库存哪、后端选谁

第一次启动时会让你新建一棵“树”,也就是一个独立的数据库文件。这里的第一个决定是存在哪儿。默认路径通常在系统的用户目录下,方便但危险——重装系统、清理空间、同步盘冲突都可能波及它。我习惯在非系统盘建一个专门的目录,比如按“家族资料 / 数据库 / 备份 / 媒体”分开,数据库本身只放一个文件。

后端选择这块,新版默认用本地的 SQLite,对个人使用者足够了:单文件、易备份、断电后恢复能力还不错。早期版本用过另一种本地后端,问题多一些,现在没必要折腾。还有一个 PostgreSQL 选项,它是给多人同时访问准备的,代价是你得自己维护一个数据库服务。除非你真的要和几位亲戚同时编辑,否则我不建议走这条路;多数人以为自己需要“多人协作”,实际上需要的是“我改完把备份发给别人看”。

还有一个容易被忽略的选项:媒体文件的相对路径基准目录。Gramps 允许你把图片、扫描件以相对路径记录,前提是指定一个基准目录。这一步一定要在建库初期做,因为一旦你录了几百条媒体引用之后再来改基准路径,虽然是能批量重指的,但那是一场硬仗。我吃过这个亏:早期用绝对路径,后来把资料盘换了位置,几百张图片全部变成“找不到文件”,花了大半天用工具里的媒体管理器批量重指。

2.2 姓名格式与录入习惯

姓名格式看起来是个显示问题,实际上是排序和检索问题。软件里可以设定“姓, 名”“名 姓”“名 中间名 姓”等显示顺序,也能自定义。中文资料我建议统一用一种,不要一半“姓在前”一半“姓在后”,否则后面的排序、筛选、导出全会乱。

比显示格式更重要的是录入颗粒度。一个人的姓名在软件里可以拆成:名、姓、前缀、后缀、头衔、昵称、常用名、家族绰号、排序名。中文场景下,最常被忽略的是“常用名”和“排序名”。前者用来记录“族谱上写的是这个,但平时都叫那个”;后者用来解决同音字和异体字——比如某位先人的名字在老抄本上是这个写法,在后来的印刷本里是另一个写法。我会把抄本原字填在“名”里,把通行写法填在“排序名”,这样列表里显示整齐,来源又没丢。

另外,姓也可以有多段,还能标注来源类型(承袭、改姓、自取等)。这在处理入赘、过继、随母姓的情况时特别有用。我建议你至少给每个改过姓的人留一条备注,写清“何时、因何改”,哪怕只有一句推测。十年后你自己都未必记得当初为什么这么填。

还有个小细节:ID 编号。软件会为每个人自动生成一个编号,可以前置字母区分对象类型。别嫌它丑,它是你唯一稳定的锚点。姓名会重、会改、会有异体字,编号不会。我在备注里引用别人的时候一律写编号,比写名字可靠得多。

2.3 日期拿不准时怎么写才不算造假

这是我认为整个软件里最体贴的设计,也是新手最容易浪费掉的功能。日期字段不只有“年月日”,它可以带修饰词:约、估计、计算、之前、之后、介于两者之间、从某时到某时、区间、跨度,以及最诚实的一种“仅文本”。质量等级还能从很低到很高打五档。

我的做法是这样:抄本上有确切日期就填确切日期,质量给高;长辈说“大概在某个冬天”就填“约某年”,质量给低;从墓碑上算出年龄倒推生年,用“计算”并注明算法;两份材料差一年,两份都录,各自挂来源,让人自己判断。这比强行统一成一个数字要负责任得多。做家谱最忌讳的就是为了让图好看而把模糊信息“压实”成精确值,那是在制造假证据。

还有个细节:如果只知道年份不知道月日,就只填年份,别补 01-01。有人图省事填成某年 1 月 1 日,导出的报告里就变成“生于某年 1 月 1 日”,一字之差,性质完全不同。

2.4 在世人员的隐私开关

这件事必须在录入第一批在世亲属之前想好,而不是等发布时才抓瞎。软件里可以把个人、家庭、事件单独标记为“隐私”,导出时选择是否排除这些记录。更细一层,还能设定“在世人员”的判定规则:比如某人没有死亡事件且年龄小于某个阈值时,自动按在世处理并做信息裁剪。

我的习惯是:建库时就给所有在世的亲属打上隐私标记,先标了再说,将来要公开时再决定放开谁。因为家谱资料一旦发出去就收不回来,而里面往往包含着在世者的出生年月、住址、联系方式这类不该外流的信息。见过有人把完整数据库导出发到家族群里,里面有几十位在世亲属的详细出生信息,事后想撤回已经来不及。

2.5 备份与相对路径

备份是这个软件里我最看重的功能,没有之一。它能导出一个打包的存档文件,里面是压缩的结构化数据,可选是否包含媒体文件。务必把“包含媒体”这个选项想清楚:不包含,文件小、传起来方便,但换台机器就只剩文字;包含,文件大,但完整。

我自己的策略是双轨:每天自动备份到本地一个固定目录(软件支持设定周期性的自动备份),每周手动导出一次带媒体的完整存档,放到另一块物理盘上。听起来很重,实际上每周只花几分钟。这件事的价值不在于“防软件崩溃”,而在于防你自己——误删、误合并、批量改错,这些操作是没法撤销的,只能回滚到上一次备份。

至于自动备份的周期,别设太密也别太疏。设成一小时一次,几十个备份很快堆满;设成一周一次,中间那六天的活全白干。我的经验值是每天一次,加上每次做大改动之前手动导一份。

3. 三步建库:导入、补全、核验

3.1 第一步:把散落的旧资料批量塞进去

第一步的目标不是“录得准”,而是“先有个形”。如果你一开始就追求每条都精确、每条都挂来源,大概率会在第三天放弃。我的做法是先建一个“草稿阶段”的树,把手上所有的东西一股脑倒进去。

导入路径主要有三条。第一条是别的家谱软件导出的 GEDCOM 文件,直接导入即可,字段映射大体能对上,但中文姓名、日期格式、自定义标签经常会有损耗,导完必须抽查。第二条是表格,可以把姓名、生卒、父母配偶按列整理成 CSV,再转成 GEDCOM 导入——虽然绕,但比手工录几十上百人快得多,适合有大量结构化名单的情况。第三条是纯手工,适合资料量小、但每条都需要斟酌的场景。

不管走哪条路,导入后第一件事都是抽查十个样本,看姓名有没有被拆错、日期有没有被当成文本、父母子女关系有没有接反。我见过最典型的事故是:表格里“父亲”“母亲”两列的顺序被搞反,导进去之后整棵树上下颠倒,而软件不会报错——它只是忠实地记录了你给它的错误。

3.2 第二步:用家族和事件把空壳个人填满

导入完成后,你会得到一堆“空壳个人”:有名字,没有任何事件,也没有和别人的关系。第二步就是把这些壳连起来。

操作顺序我建议是“先家庭,后事件”。因为家庭对象一建,配偶关系和子女关系一次就挂上了,比一个人一个人去连快得多。具体做法:找到一对已知的夫妻,新建一个家庭对象,把两人加进去,再把子女逐个加进这个家庭。子女成年后另组家庭,就再建一个家庭对象,把他从原来那个家庭里“带过去”。软件里这个动作通常是“在家庭中添加子女”或“把某人设为其父母”,不同版本菜单位置略有差异,但逻辑一致。

家庭建完,再补事件。出生、结婚、迁居、离世,能确定的先补。这里有个效率技巧:多用复制。同一村庄的出生事件,地点是一样的,可以复制上一条事件改日期;同一场婚礼,两个人共用一条事件,别分别录两遍。

补事件的过程中,你会不断发现“这个人到底是不是这家的”这种疑问。别急着下结论,把疑问写进备注,用“可能”标记,继续往下做。在这个阶段,进度比准确更重要,因为只有把图形搭出来,你才能看出哪里缺信息。

3.3 第三步:让工具替你找矛盾

第三步是我认为 Gramps 最值钱的地方,也是大多数人根本没用上的部分。它内置了几类分析工具,专门用来找你自己看不出来的错。

第一类是数据校验。它能检查出一堆逻辑硬伤:出生日期晚于死亡日期、子女出生时母亲年龄过小或过大、同一人在同一时间出现在两个地方、家庭关系指向已删除的对象、有人有父母但没有被任何家庭收录。这些错误在你手工录入时几乎无法避免,因为你的注意力全在“填对”上,而不是“整体是否自洽”。跑一遍校验,通常会出来几十条提醒,别慌,逐条看,大部分是日期缺失导致的误报,剩下的是真问题。

第二类是查重。同名同姓、生卒年接近、配偶相同的人,工具会算一个相似度列出来。这在家谱资料里太常见了——同一个先人,一支亲戚记成这个名字,另一支记成那个名字,最后被当成两个人分别录入。合并之前一定要仔细比对,因为合并是不可逆的(除非回滚备份)。

第三类是关系统计类的工具,比如计算两个人之间的具体称谓路径、统计某一代有多少人、查看某人的祖先数量是否合理。这类工具平时用得少,但在你怀疑“这棵树是不是哪里接错了”的时候很好用。

跑完这三类检查,你的库就从一个“能看的图”变成了一个“站得住的数据集”。

3.4 三个高频翻车点

第一个是编码。从别处导出的文本文件如果是某种旧编码,导入后中文会变成乱码或者问号。处理办法是先用文本编辑器另存为通用编码,再导入。这个坑我踩过两次,第二次是因为忘了第一次的教训。

第二个是重复导入。有些人习惯“先把新资料导进去,再看看有没有重复”,结果同一个文件导了两遍,所有人变成双份。导入前一定先看一眼库里最近有没有导过同样的东西,导入后立刻跑查重。

第三个是事件类型混乱。不同来源对“下葬”“安葬”“入土”用的是不同词,导进来之后会变成好几种事件类型,筛的时候漏掉一半。解决方法是用工具里的事件类型整理功能,把这些同义的类型统一掉,或者在导入后就手工规整一遍。

4. 从能存到能用:视图、过滤器与报告

4.1 各个视图分别解决什么问题

软件左侧那一列视图,新手最容易全部点一遍然后忘掉。其实每个视图服务的场景很明确,我按使用频率排一下:

视图什么时候用
个人列表批量查看、排序、批量打标签,日常主力
关系视图看某一个人的父母、配偶、子女,双窗口对照最方便
家庭列表核查每段婚姻的子女是否录全
图表视图生成祖先树、后代树、扇形图,给人看的时候用
事件列表按时间线排查某个年代的事是否录漏
地点列表整理同一地点的多种写法,统一地名
来源与引用核对哪条信息还没挂来源
媒体管理照片扫描件,检查丢失的文件
备注存放口述疑点、待查线索

我个人的日常路径基本是:个人列表里筛出一批待处理的,进关系视图逐个人补关系,再去事件列表看时间线有没有断档,最后去来源视图补证据。这个循环跑顺了,效率会明显不一样。

图表视图要单独说一句:它依赖外部绘图组件,装没装、版本对不对,直接决定你能不能出图。如果你点开图表一片空白,先别怀疑数据,去查绘图组件是否就位。

4.2 用自定义过滤器做“待办清单”

这是我觉得最被低估的功能。侧边栏的过滤器不只是“搜名字”,它可以把一堆条件组合成规则,存成你自己的筛选项。我常年挂着几个:

  • 没有出生事件的人:用来找录入不完整的空壳。
  • 没有挂任何来源的人:用来找“我知道但说不清出处”的条目。
  • 最近若干天内修改过的人:用来回顾上次干到哪儿了。
  • 被标记为隐私的人:发布前统一检查一遍。
  • 某个地点下的所有人:整理某一支的聚居情况。
  • 有备注但没有事件的人:往往是线索堆积处,需要清理。

这些过滤器还能导出成文件,换台机器导入回来就能继续用。我建议你在建库第一个月就把这几个常用的建起来,后面每加一条资料都能立刻归位,而不是等到几百人之后再来做数据清理——那时候的成本是几何级上升的。

4.3 报告和图到底选哪个

能出东西是这个软件的另一半价值。它的报告大致分四类,用途完全不同:

图形类:祖先树、后代树、沙漏形图、家族线图。适合打印出来挂在墙上给长辈看,或者放进册子做插图。缺点是信息密度低,超过五六代就挤成一团,需要调整纸幅和字体。

文本类:完整的个人报告、详细的后代报告、详细的祖先报告。这类是给“读”的,一个人一段,含事件、来源、备注。适合做成 PDF 分发。

网页类:生成一整套静态页面,含索引、个人页、图表、媒体缩略图。适合给不方便装软件的亲戚看——发个压缩包,解压点开首页就行。要注意的是,生成网页时一定要勾选隐私过滤,否则在世亲属的信息会一起出去。

书籍类:把多种报告组合成一本,加上目录、章节、页码。这是做正式家族资料集的路子,也是最费时间的一种,因为排版调起来很磨人。

我的建议是:先做文本报告,检查数据完整度;再做网页,方便分发;最后才碰书籍,因为书籍会把所有排版问题放大。

4.4 媒体、来源、引用:证据链怎么挂

这三样东西的关系,用一句话说清:来源是“哪份材料”,引用是“材料的哪一处”,媒体是“材料的影像”。三者的组合构成证据链。

举个具体做法。你有一张老照片,背面写着“某年某月,某人在某地”。这条信息的挂法是:新建一个来源,类型选“照片”,标题写清是什么照片;在来源下挂一条媒体,指向扫描文件;然后给相关的个人挂一条引用,引用里写明“照片背面手写”,可信度给中等(因为手写字可能看错)。这样十年后你回头看,一眼就知道这条信息是怎么来的。

很多人省掉这一步,理由是“我自己记得”。但我可以很负责任地说,三年之后你就不记得了,五年之后你会怀疑自己当初的判断。来源不是给别人看的,是给未来的自己留的底。

5. 十年之后还能打开:迁移、协作与维护

5.1 GEDCOM 是通道不是家

GEDCOM是家谱领域的通用交换格式,几乎所有软件都支持导入导出。它的价值在于“换软件不丢数据”,但它不是万能容器:自定义字段、复杂的来源结构、媒体路径、隐私标记,在导出再导入的过程中都可能变形或丢失。

我的用法是把它当“通道”而不是“仓库”:日常维护用软件自己的格式,需要给别人或者换工具时才导出一份 GEDCOM,导完立刻在对方环境里抽查十条关键记录,确认姓名、日期、关系没走样。中文姓名在这个环节尤其容易出问题,有的工具会把姓和名合并成一串,有的会把复姓拆开,导完必须人工核。

还有一个细节:导出时通常能选 GEDCOM 版本。老版本兼容性好但字段少,新版本字段多但老软件读不了。给不确定环境的对象发文件,选保守的那个版本。

5.2 版本化与文件组织

数据库文件不要只留一份。我的目录结构大致是这样:一个“当前库”目录,只放正在用的那个文件;一个“备份”目录,按日期命名,保留最近三十份;一个“里程碑”目录,每次做完一个大阶段手动存一份,永不删除;一个“媒体”目录,按“照片 / 文档扫描 / 录音”分类,文件名统一成“编号_描述”的格式。

文件名统一这件事听起来琐碎,但它决定了你三年后还能不能找到东西。我早期用的是相机原始文件名,一堆数字混在一起,后来花了一个周末全部重命名。现在我的规则是:文件名开头是个人编号,后面接一句简短描述,中文英文都行,但不能有空格和特殊符号。

5.3 多人一起弄的现实方案

如果家里有几个人都想参与,现实的做法通常不是“同时在线编辑”,而是“分头整理、定期合并”。软件本身对并发编辑的支持有限,强行让两个人同时改同一个库,出问题的概率很高。

我更推荐的分工是:一个人当“主编辑”,负责合并和最终裁决;其他人负责提供素材——按模板整理成表格、扫描老照片、录制口述、标注疑点,然后交给主编辑统一录入。这样既避免了冲突,又让每个人都有参与感。合并的时机建议固定,比如每月一次,合并前双方都先备份。

如果确实需要多人同时访问,也有基于服务端的方案,但那属于另一个话题,涉及部署和维护,不适合作为起点。

5.4 我踩过和见过的几个坑

第一个坑是过度合并。查重工具给出相似度很高的人,一激动就合并了,结果发现是两个同名的堂兄弟。教训是:合并前必须比对至少三项独立信息(父母、配偶、子女、事件地点),只有一项吻合不要动。

第二个坑是把推测当事实。为了让谱系图连上,硬给某位先人编了一个生年,几年后自己都分不清哪些是抄来的、哪些是猜的。现在我所有推测一律用“约”“可能”修饰,备注里写清推理过程。

第三个坑是忽视地名变更。同一个地方在不同年代有不同写法,如果不做统一,事件列表会散成十几处,无法按地点聚合。解决办法是建地点记录时把历史写法放进别名里,主名称用你习惯的那个。

第四个坑是备份没验证。备份文件生成了,但从没试过能不能打开。我现在的习惯是每隔一两个月,拿最新备份在一个空目录里恢复一次,确认能正常打开、媒体能找到。这个动作五分钟,能救命。

我自己在这套东西上花的时间,大概三分之一在录数据,三分之一在核数据,三分之一在整理和输出。真正让我觉得值的,不是最后那张图有多漂亮,而是某天翻到一条十年前录的备注,上面写着某位长辈口述的一句话,而那位长辈已经不在了——那句话要是当时没记,就永远没了。所以如果你刚开始,别纠结软件功能学没学全,先把今天听到的那句话录进去,其他的慢慢来。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询