GEDCOM引用与祖先关系审查
检查UTF-8 GEDCOM 5.5.1家族/个人引用、互反关系及声明祖先SCC,保留原行号和亲缘分类。
- 1添加输入
- 2调整设置
- 3获取结果
工具输入和文件在当前浏览器处理,不会上传。
开始之前
导入家谱前,定位悬空或单向家庭引用以及声明的祖先循环。保留原始导出和证据,不新增亲属或推断生物关系。
如何使用
- 打开UTF-8 GEDCOM 5.5.1导出,或粘贴完整源码。
- 检查带行号的目标、互反问题、亲缘声明和祖先SCC成员。
- 下载original.ged及完整报告,回到来源系统核实事实后再修正。
支持范围与限制
一个UTF-8文件或粘贴内容最多5 MiB、50,000个物理行、10,000个顶层记录(含HEAD/TRLR)、64层层级;声明关系与派生祖先边合计最多50,000条。选择文件优先。完整下载合计最多10 MiB,超限整体拒绝;预览前200行。
HEAD/GEDC/VERS必须明确为5.5.1,HEAD/CHAR为UTF-8。original.ged保留原始BOM和CRLF/LF/CR换行。GEDCOM 7、ANSEL、UTF-16、层级跳跃、重复xref、空物理行或非法指针均拒绝;未知标签保留在源码节点JSON和原字节中。
检查INDI的FAMC/FAMS与FAM的CHIL/HUSB/WIFE目标类型;报告悬空、错误类型、重复引用和缺少互反的原行号。CONT/CONC文本会正确续接,同时保留原层级及value字段;指针续行和嵌套CONT/CONC拒绝,不猜测。
祖先SCC仅使用声明的父母到孩子边。保留birth/adopted/foster/sealing/unknown/multiple分类及原PEDI值/行号,这些声明不证明生物事实;夫妻无向环不视为祖先循环。完整报告包括每条引用、问题和SCC成员,不穷举所有简单环。不编辑记录、推断关系、导入或写数据库。
超过4096个UTF-8字节的值使用value:null、external-original-value状态和original.ged的精确字节位置。多行逻辑值提供按concat连接的有序字节/文本片段,保留CONT换行与CONC拼接;此类null表示值存在于原件中,不表示缺失。
报告超过20,000字符时,结果文本与复制动作使用紧凑预览。完整report.json、CSV和HTML请下载。 表格长单元格超过2000字符时仅显示前2000加省略号;完整下载不截断。
操作示例
示例输入
0 HEAD 1 GEDC 2 VERS 5.5.1 2 FORM LINEAGE-LINKED 1 CHAR UTF-8 0 @I1@ INDI 1 NAME Parent /Example/ 1 FAMS @F1@ 0 @I2@ INDI 1 NAME Child /Example/ 1 FAMC @F1@ 2 PEDI adopted 0 @F1@ FAM 1 HUSB @I1@ 1 CHIL @I2@ 1 CHIL @MISSING@ 0 TRLR
示例参数
{"secondary":"","params":{"spreadsheetSafe":true}}示例输出
{"format":"GEDCOM 5.5.1 UTF-8","summary":{"individuals":2,"families":1,"records":5,"physicalLines":17,"relations":5,"ancestryEdges":1,"issues":1,"dangling":1,"wrongTargetTypes":0,"missingReciprocals":0,"ancestorSCCs":0},"records":[{"index":0,"xref":null,"tag":"HEAD","line":1,"names":[]},{"index":5,"xref":"@I1@","tag":"INDI","line":6,"names":["Parent /Example/"]},{"index":8,"xref":"@I2@","tag":"INDI","line":9,"names":["Child /Example/"]},{"index":12,"xref":"@F1@","tag":"FAM","line":13,"names":[]},{"index":16,"xref":null,"tag":"TRLR","line":17,"names":[]}],"nodes":[{"index":0,"line":1,"level":0,"parent":null,"xref":null,"tag":"HEAD","value":"","ending":"\n","children":[1,4]},{"index":1,"line":2,"level":1,"parent":0,"xref":null,"tag":"GEDC","value":"","ending":"\n","children":[2,3]},{"index":2,"line":3,"level":2,"parent":1,"xref":null,"tag":"VERS","value":"5.5.1","ending":"\n","children":[]},{"index":3,"line":4,"level":2,"parent":1,"xref":null,"tag":"FORM","value":"LINEAGE-LINKED","ending":"\n","children":[]},{"index":4,"line":5,"level":1,"parent":0,"xref":null,"tag":"CHAR","value":"UTF-8","ending":"\n","children":[]},{"index":5,"line":6,"level":0,"parent":null,"xref":"@I1@","tag":"INDI","value":"","ending":"\n","children":[6,7]},{"index":6,"line":7,"level":1,"parent":5,"xref":null,"tag":"NAME","value":"Parent /Example/","ending":"\n","children":[]},{"index":7,"line":8,"level":1,"parent":5,"xref":null,"tag":"FAMS","value":"@F1@","ending":"\n","children":[]},{"index":8,"line":9,"level":0,"parent":null,"xref":"@I2@","tag":"INDI","value":"","ending":"\n","children":[9,10]},{"index":9,"line":10,"level":1,"parent":8,"xref":null,"tag":"NAME","value":"Child /Example/","ending":"\n","children":[]},{"index":10,"line":11,"level":1,"parent":8,"xref":null,"tag":"FAMC","value":"@F1@","ending":"\n","children":[11]},{"index":11,"line":12,"level":2,"parent":10,"xref":null,"tag":"PEDI","value":"adopted","ending":"\n","children":[]},{"index":12,"line":13,"level":0,"parent":null,"xref":"@F1@","tag":"FAM","value":"","ending":"\n","children":[13,14,15]},{"index":13,"line":14,"level":1,"parent":12,"xref":null,"tag":"HUSB","value":"@I1@","ending":"\n","children":[]},{"index":14,"line":15,"level":1,"parent":12,"xref":null,"tag":"CHIL","value":"@I2@","ending":"\n","children":[]},{"index":15,"line":16,"level":1,"parent":12,"xref":null,"tag":"CHIL","value":"@MISSING@","ending":"\n","children":[]},{"index":16,"line":17,"level":0,"parent":null,"xref":null,"tag":"TRLR","value":"","ending":"\n","children":[]}],"continuedText":[],"relations":[{"from":"@I1@","tag":"FAMS","to":"@F1@","line":8,"status":"resolved","reciprocal":true,"pedigree":[]},{"from":"@I2@","tag":"FAMC","to":"@F1@","line":11,"status":"resolved","reciprocal":true,"pedigree":["adopted"]},{"from":"@F1@","tag":"HUSB","to":"@I1@","line":14,"status":"resolved","reciprocal":true,"pedigree":[]},{"from":"@F1@","tag":"CHIL","to":"@I2@","line":15,"status":"resolved","reciprocal":true,"pedigree":[]},{"from":"@F1@","tag":"CHIL","to":"@MISSING@","line":16,"status":"dangling","reciprocal":null,"pedigree":[]}],"ancestry":[{"parent":"@I1@","child":"@I2@","family":"@F1@","parentLine":14,"childLine":15,"pedigree":["adopted"],"pedigreeClass":"adopted","pedigreeLines":[12]}],"issues":[{"kind":"dangling","from":"@F1@","to":"@MISSING@","line":16,"detail":"Expected INDI"}],"ancestorSCCs":[]}出现问题时
从来源系统导出明确声明UTF-8的GEDCOM 5.5.1,修复层级跳跃、重复xref和指针语法。核实单向关系,不自动捏造互反引用。完整下载超过10 MiB时减少输入;修正后重跑。
常见问题
缺少反向家庭引用时会自动补齐吗?
不会。报告保留每条单向声明及行号,必须在来源系统检查是否为导出遗漏以及实际关系事实。
收养边也进入祖先图吗?
会,作为声明的父母到孩子边,同时保留adopted亲缘类型;不宣称遗传祖先关系。
未知标签和多行姓名会丢失吗?
原节点和原件字节保留。较短CONT/CONC文本直接保留;长文本使用明确的原件字节位置或有序片段引用,从original.ged重建。