5

我在一本书中发现,为了呈现家谱(家谱)树,最好使用带有拓扑排序的 DAG(有向无环图),但该算法取决于输入数据的顺序。

4

4 回答 4

2

家谱数据库通常使用所谓的谱系链接结构。

这意味着合作伙伴(丈夫/妻子)被联系在一起并称为家庭。一个家庭与它的孩子相关联,并通过从孩子到其父家庭的链接。

我不知道代表这一点的特定图形类型。大多数程序都使用族表和单个表对其进行自定义编程,并在它们之间建立适当的链接。

家谱数据库通常遵循这种结构以匹配GEDCOM(家谱数据通信)标准,该标准旨在允许在程序之间传输数据。

在该标准中,您会特别看到 FAM 和 INDI 记录。FAM 记录通过 HUSB、WIFE 和 CHIL 链接连接到 INDI 记录。INDI 记录通过 FAMS(配偶)和 FAMC(父母)链接连接到 FAM 记录。

使用这种数据结构,您可以轻松读取 GEDCOM 文件并从其他家谱软件导入数据,并将您的数据导出到 GEDCOM 文件,以便其他家谱程序可以读取它。

于 2014-07-19T03:25:36.920 回答
1

为了呈现历史记录中发现的人们之间的关系,Open Archives使用了灵活的力导向图布局实现。在此图中,每个节点都是一个人,并且有两种类型的顶点:一种描绘婚姻(橙色),一种描绘父母关系(红色的“血线”)。可以在此处查看图表示例。

于 2014-07-19T09:18:24.823 回答
1

在家谱中,所谓的Ahnentafel索引(德语为“祖先表”)用于表示单个人的祖先;基本上这是二叉树的合适线性化。

于 2014-07-18T06:11:33.737 回答
1

DAG 将不起作用。可能会在 Neo4j 中使用 GEDCOM 模型查看之前的帖子

血统可以有复杂的关系,例如表亲、兄弟姐妹婚姻、血缘关系等。这些可以在 Neo4j 等非 SQL 数据库中轻松管理。

于 2015-01-10T03:42:07.003 回答