Full Family Tree #578
Replies: 18 comments
-
Я пересмотрел множество программ по данной теме, из них наиболее достойными видеться Agelong Tree, GenoPro, Gramps ну и GEDKeeper. В архиве все примеры проектов по всем упомянутым программам и изображения дерева в них: |
Beta Was this translation helpful? Give feedback.
-
Это сложная тема. Вы - примерно 11-12-й пользователь, кто обращается к этой теме :) Начну со случая, когда совпадающие в разных ветвях предки или потомки выводятся дважды и подкрашены серым цветом. Вывод дважды сделан специально, чтобы разрешить трудноразрешимый конфликт. А серый цвет – для индикации, что такая пара предков или потомков уже присутствуют в древе. В чем конфликт. Давайте представим, что выводим не просто такое древо как у вас, сделанное в упрощенном виде, а реальное большое дерево. Какие у нас могут быть проблемы. Тоже самое всё актуально и для потомков. Предположим, что во втором вашем примере для потомков, у пары Иванов С.И. и Иванова Е.И. – длинные ветви потомков. Причем у их родителей с обеих сторон есть другие дети, потомки которых также пересекаются много ниже. Т.е. разные ветви потомков много раз в различных вариантах пересекутся. Это вполне реальный пример, хоть и не относящийся к обычным родословным. Из описанных ситуаций единственный приличный выход, чтобы не терять обозримость результата и обойти коллизии – это при неразрешимости пересечений, прерывать отображение ветви с пометкой что дальше она продолжается. Тогда пользователю придется просто переместиться на нужную центральную персону, чтобы увидеть людей дальше. В приведенном у вас примере, Agelong пошла как раз тем путём, что если программа не может решить коллизию непротиворечивого размещения персон – линии пересекаются с разрывом. Но если я попытаюсь вывести в ней любую древнюю династию из своих любительских исследований – уверен, что в лучшем случае будет месиво. Самое для меня некомфортное в этой задаче, это то, что даже если сделать такой режим в программе – он имеет низкую практическую ценность. Это будет много усилий, выброшенных просто на ветер, простите. Объясню почему: в моих личных базах данных, где я занимаюсь именно генеалогией меня и моей семьи – порядка 10.5 тыс. человек. Из них 3.5 тыс. – это «ядро» поисков. В последние годы для меня любые формы деревьев имеют очень низкую ценность, т.к. на экране можно видеть лишь ограниченный объем данных. Если я в настоящий момент занимаюсь вводом данных – то мне нужно видеть как можно меньше информации, это аксиома обработки данных – ничего лишнего и отвлекающего. А если хочу полюбоваться общим результатом для красоты, то необходимость листать древо, в котором одномоментно около тысячи человек – утомительно, либо это и на десяток мониторов не влезет, либо в уменьшенном виде превращается в мелкую мозаику. И при распечатке требует 27x5 листов A4 в альбомном развороте… Причем из-за обычного количества детей в семьях 2-3 века назад, ветви братьев скажем второго-третьего поколения от общего предка – находятся на немыслимом расстоянии друг от друга в таком древе. Сложная тема, над которой я много раз думал и так и не пришел к определенному решению. До вас я отвечал на этот вопрос буквально три дня назад, у того пользователя – порядка 150 человек в базе. Когда я описал реальную ситуацию применительно к себе – он сразу снял свой вопрос :) |
Beta Was this translation helpful? Give feedback.
-
Это конечно не самые удачные примеры, т.к. древняя история, которая мало соотносится с действительностью России или ближних стран последних веков. Но подойдет в качестве примера крайности, которую нужно держать в уме. Обратите внимание на количество серых предков в первой диаграмме. Соотнесите их между собой, переложите на реальные случаи даже для самой обычной генеалогии, но успешной в пределах 5-6 веков. У меня один коллега, занявшись родословной жены, нашел два пересечения её ветвей со своими. Не считая нескольких пересечений между собственными... |
Beta Was this translation helpful? Give feedback.
-
Понимаю и согласен, что в случаях действительно больших родословных и тем более c разными пересечениями, будет "месиво". В моём случае пока видается объём в 200-300 персон, и таких пересечений не более двух, потому и возник вопрос. Но перед началом формирования базы хочется выбрать такой инструмент, которого не было бы нужды менять по какой-либо причине впоследствии. И при этом иметь возможность получить на выходе не только базу в виде стандарта, и хороший инструмент для работы с ней но и наглядное желательно красиво оформленное дерево для возможности распечатки например. GEDKeeper понравился тем, что в качестве формата проекта использует GEDCOM, тогда как остальные создали свои форматы либо SQLite, либо запакованный XML, да кто-то может делать импорт/экспорт но всё же. И имеет хороший функционал по ведению базы, удобен. Возможно есть другие проекты, которые специализируются на формировании "красивых" деревьев на основе GEDCOM, для вывода на печать, если что-то можете порекомендовать буду очень признателен. |
Beta Was this translation helpful? Give feedback.
-
Спасибо за добрую оценку :) Недавно нашел вот такой проект нашего соотечественника, посмотрите, может подойдет в какой-то мере: https://github.com/ligurio/ged2dot Вы по-видимому тоже программист? Будет желание и идеи – присоединяйтесь :) |
Beta Was this translation helpful? Give feedback.
-
Вам спасибо. Буду смотреть варианты, и искать как сделать нужное мне. |
Beta Was this translation helpful? Give feedback.
-
I have no Russian, my apologies. Thank you for the sample file - it makes the reproduction much easier! This is a difficult problem, as Sergey pointed out. Other programs which I checked were unable to do the job as well. But I do know this particular case is possible to solve. A different project I was once involved with, Family.Show / Family.Lines, is able to lay out the tree as you desire. As you can see below, the drawing leaves much to be desired. Note though that Ivanov Ivan Romanovich(1980) and Ivanova Svetlana Nikolaevna(1983) are shown as a pair only once: I cannot recommend the project for many reasons. I will try to investigate further and attempt to provide a solution for GedKeeper. (The Family.Lines code is available in my repository FamilyLines]). If you have other tree 'challenges', sample GEDCOMs would be helpful for me to insure those cases are indeed working in Family.Show ... Note that Chronoplex Software's My Family Tree is free, based on Family.Show, and appears to have improved the tree drawing. You might give it a try, with the caveat it will not provide some of the other features you were seeking. Kevin |
Beta Was this translation helpful? Give feedback.
-
Visualization in genealogical data.pdf |
Beta Was this translation helpful? Give feedback.
-
Слежу за проектом постоянно, вижу 2.13 к релизу созревает. |
Beta Was this translation helpful? Give feedback.
-
Релиз будет скорее всего уже сегодня вечером или завтра. Я вынужден торопиться, сегодня крайний срок, иначе он не выйдет еще несколько месяцев. Над исключением дублей по вашему сценарию работали и я, и @fire-eggs. У нас ничего не вышло. Точнее само исключение дублей и только оно реализуется не слишком сложным изменением. Но на текущем движке, если есть любая длинная ветвь между объединяемыми общими - алгоритм дает наложение, или искажение, или порчу диаграммы. Еще хуже, если мы пытаемся объединить дубликаты, дети которых из-за временных интервалов находятся в различных поколениях. Скажем, есть моё личное древо предков, и есть пара, дети которой в дереве присутствуют в двух ветвях (пример из моего древа), самый старший сын образовал одну ветвь и младшая дочь другую. Из-за большой разницы между годами их рождения - они находятся в древе в разных поколениях. В данном случае, помимо простого объединения данного дубликата, соединительную линию одной из этих ветвей нужно еще и удлинить по вертикали. И это не всё. У меня в древе между этими объединяемыми "дублями", присутствует 3 ветви, одна короткая и она может вмещается под объединением, а две другие - на 3 и 4 поколения длиннее. Я не могу придумать алгоритм, который бы выполнил горизонтальную ротацию ветвей так, чтобы длинные вышли из-под "дуги" объединяемых и были сбоку, где-нибудь в стороне. Я бы и рад сделать и объединение дублей, и режим "полного древа". Да вот не получается. Возможно нужно вообще сделать новый движок вывода деревьев. Но во-первых, не дает острая нехватка свободного времени последние три года, а уже завтра его не будет совсем ))) минимум на полгода-год, пока маленькая причина не будет давать спать по ночам ))) |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Good research and visualization option, to partially solve the issue! I also experimented on this issue, as there will be time - I'll try to publish my options to ensure the depth and complexity of the tree. I did not like the result, so I did not show anything ... |
Beta Was this translation helpful? Give feedback.
-
I like it better as it is now done in My Family Tree. |
Beta Was this translation helpful? Give feedback.
-
Wow - looks like I'm not up to date on the latest features of that program! I'll take a look - thanks for the pointer! |
Beta Was this translation helpful? Give feedback.
-
The issue is closed due to the futility of the discussion and the impossibility of implementation. |
Beta Was this translation helpful? Give feedback.
-
There is still hope! |
Beta Was this translation helpful? Give feedback.
-
Просьба реализовать отображение генеалогического дерева в полном виде.
Суть следующая, два варианта:
И ещё при наличии общего потомка в двух ветвях в четвёртом или ином поколении он рисуется дважды, прошу поправить (на примерах ниже видно).
Пример -1:
Сейчас так:
Хотелось бы так:
Пример -2:
Сейчас так:
Хотелось бы так:
Файл проекта прилагаю:
GEDKeeper v2.12.0-FamilyForTest.ged.zip
Заранее спасибо.
Beta Was this translation helpful? Give feedback.
All reactions