已锁定。这个问题及其答案被锁定,因为这个问题离题,但具有历史意义。它目前不接受新的答案或互动。
我是一些家庭树软件的开发者(用C++和Qt编写)。在我的一个客户给我发了一份bug报告之前,我没有遇到任何问题。问题是,客户有两个孩子和他们自己的女儿,因此,他不能使用我的软件,因为错误
这些错误是我关于正在处理的族图的各种断言和不变量的结果(例如,在遍历一个循环后,程序声明X不能既是Y的父亲又是Y的祖父)
如何在不删除所有数据断言的情况下解决这些错误
看来你(和/或你的公司)对家谱的含义有一个根本性的误解
让我澄清一下,我也为一家(作为其产品之一)在其投资组合中有家族树的公司工作,我们一直在为类似的问题而挣扎
在我们的案例中,我假设您的案例也是如此,问题来自于GEDCOM格式,它对家庭应该是什么非常固执己见。然而,这种格式包含一些关于家谱的严重误解
GEDCOM有很多问题,如与同性关系不相容、乱伦等。。。这在现实生活中比你想象的要频繁(特别是回到1700-1800年)
我们已根据现实世界中发生的事件(例如,出生、婚礼、订婚、结合、死亡、收养等)对家谱进行建模。除了逻辑上不可能的限制(例如,一个人不能是自己的父母,关系需要两个人,等等),我们对这些没有任何限制
缺少验证为我们提供了一个更“真实”的、更简单、更灵活的解决方案
对于这个具体的案例,我建议删除断言,因为它们并不普遍适用
对于显示问题(将出现),我建议根据需要多次绘制同一节点,通过选择其中一个节点时点亮所有副本来暗示复制