Как объединить два Древа в одно?

Перед тем, как задать вопрос, ознакомьтесь с ответами на часто задаваемые вопросы и со Справкой. Пожелания пишем на reformal.ru

Модераторы: Genery, Elena Polyanskikh

Ответить
Сообщение
Автор
Elena Polyanskikh
Сообщения: 973
Зарегистрирован: 12 сен 2008 18:51
Откуда: Новосибирск
Контактная информация:

Re: Как объединить два Древа в одно?

#91 Сообщение Elena Polyanskikh » 01 май 2019 11:24

hippocamus писал(а): 30 апр 2019 20:00
Elena Polyanskikh писал(а): 30 апр 2019 18:40 При добавлении этого файла к Вашему будут добавлены только новые персоны, а старые будут проигнорированы. Если правки были внесены также в те персоналии, которые попали в файл из Вашего файла, то эти правки будут тоже проигнорированы, так как после внесения изменений код персоны не меняется.
Однако, новые события для старых персон добавлены будут.
Да, Вы правы, исправила.
Елена Полянских, Genery Software

axez
Сообщения: 19
Зарегистрирован: 24 июл 2008 12:10
Контактная информация:

Re: Как объединить два Древа в одно?

#92 Сообщение axez » 07 май 2019 13:28

Думаю изначально неправильная логика действий.
Для человека, занимающегося своей родословной важно максимально сохранить всю информацию и ничего не потерять!
Если какая-то информация игнорируется, то часть важной информации может пропасть! А часто бывает, что общаешься с бабушкой и делаешь заметки в существующих персонах.
Типа: "добавить Иван Васильевича + 5 детей (Иван, Василий, Фёдор, Поликарп, Мария) у Ивана 4 (.., ..., ... , ...) У Фёдора 4 ( .. ... ... ...) У Поликарпа 3 (... ... ...)" и тд..
Если такая информация "проигнорируется" то это "не гуд", мягко говоря.

Я бы советовал в следующих сборках добавить целенаправленно компонент "синхронизация", где человек бы сам решал что добавлять, а что игнорировать и \ или "слить" всё вместе.
Так же было бы здорово добавить внутренние-программный поиск дублей и поиск решений, как их "слить".

К слову говоря то, что вы написали может хорошо подходить к двум деревьям. Я же умудрился накопить их кучу (то глюки, то сломанные флешки и интернет) и теперь разобраться без потери информации может помочь только что-то автоматическое.
https://yadi.sk/d/0-j_yZt2dG6UWw
Пока планирую купить пятую версию, после чего конвертировать каждый файл в пятую версию и после как-то совмещать.
Как, пока не знаю...
Elena Polyanskikh писал(а): 30 апр 2019 18:40
axez писал(а): 29 апр 2019 21:38 А меж тем мне так и не понятно какое дерево сначала грузить и какое добавлять?
В каких случаях какие данные заменяются или добавляются?
Постараюсь еще раз описать процесс максимально подробно.

axez
Сообщения: 19
Зарегистрирован: 24 июл 2008 12:10
Контактная информация:

Re: Как объединить два Древа в одно?

#93 Сообщение axez » 09 май 2019 00:51

Большие. Очень большие глюки при попытке слить все версии деревьев в одно.
И ладно-бы двойники. Но получается всё дерево перемешано так, что разобраться просто невозможно.
Что делал:
1. Сконвертировал некоторые файлы из версии 3 в версию 4.
2. Переконвертировал из версии 4 в версию 5
3. Выбрал самый маленький по размеру, а значит самый старый файл и попробовал по порядку добавлять все деревья в это одно от меньшего к большему (в моём случае предполагаю, что чем больше файл - тем больше внутри данных и событий, а значит чем больше файл, тем он новее).

По логике вещей к старому дереву должны прирастать новые ветки, добавленные персоны и события...
Получается же так, что к разным людям присваиваются разные события от разных людей.
В общем получилась каша в которой разобраться просто нереально.
Допускаю, что я не так что делаю... тогда как надо?

Ссылка та же, можно глянуть https://yadi.sk/d/0-j_yZt2dG6UWw

Mich Glitch
Сообщения: 820
Зарегистрирован: 06 май 2010 16:30

Re: Как объединить два Древа в одно?

#94 Сообщение Mich Glitch » 14 май 2019 09:04

Мои предложения по алгоритму слияния.

Скажем, программа Легаси, перед слиянием двух дерев проводит проверку на дубли.
Проверка некорректная. С запасом. Времязатратная.

Предлагаю иную парадигму.

1. Надо иметь механизм слияния двух записей. Скажем, двух мест. То есть, не исторические названия, а именно слияния. Одинаковые поля либо дублируем (или используем оператор ИЛИ). Либо ставим вопрос, какой из вариантов выбрать.

2. Наиболее важно иметь механизм слияния двух дублирующих персон.
При этом информация сохраняется из обоих вариантов. То есть СПРОСИВ либо сохраняем оба варианта с оператором ИЛИ, или же с продублированным полем. Либо же выбирается один вариант.

3. Далее идёт отработка по древу. Слияние, или выбор предков, потомков, кровных и некровных родственников.


*** Резюмирую. Хорошим началом для решения проблемы было бы создание механизма, позволяющего сливать несколько персон, мест, событий и т. д.

Mich Glitch
Сообщения: 820
Зарегистрирован: 06 май 2010 16:30

Re: Как объединить два Древа в одно?

#95 Сообщение Mich Glitch » 14 май 2019 09:09

Пример.

В одном дереве (файле) прописан Вася Пупкин ок.1930 г.р., умерший 12 июля 2006 года. Сын Петя.
В другом дереве (файле) прописан Василий Иванович Пупкин, родившийся 1 июля 1929 г. в Орше. Дочь Маня.

Суммарная запись будет, скажем, Василий Иванович Пупкин, родившийся 1 июля 1929 г. в Орше, умерший 12 июля 2006 года. Сын Петя и дочь Маня.

Mich Glitch
Сообщения: 820
Зарегистрирован: 06 май 2010 16:30

Re: Как объединить два Древа в одно?

#96 Сообщение Mich Glitch » 14 май 2019 09:14

Слияния проводить либо определённо, либо условно.

В первом случае, речь идёт точно об одном и том же человеке.

Во втором случае возможно имеем одного и того же человека.

Условное слияние полезно, например, по бесфамильным крестьянам. Хорошо, когда есть какой-нибудь Антиох Мамонтов.
А что делать с Иванами Васильевыми, да ещё и примерно одного года рождения? Правильно! Сливать условно с возможностью последующего разделения.

Mich Glitch
Сообщения: 820
Зарегистрирован: 06 май 2010 16:30

Re: Как объединить два Древа в одно?

#97 Сообщение Mich Glitch » 14 май 2019 09:14

Либо же использовать только один тип слияния, но с окном истории и возможностью разделения.

axez
Сообщения: 19
Зарегистрирован: 24 июл 2008 12:10
Контактная информация:

Re: Как объединить два Древа в одно?

#98 Сообщение axez » 16 май 2019 09:21

Интересно: раньше мог выгружать таблицу персон и в текст и в ексель, на сколько помню, даже тут писал на форуме про сравнение деревьев через эксель-файл. Теперь можно только HTML. И чего мне с ним делать? Как его сравнивать с таким же от другого дерева?

Обновлено:
Попробовав пришёл к тому, что современный ексель умеет открывать сам html. Правда фото подгружать не может. Думаю для сравнения и так достаточно.

Обновлено2:
Фото подгружаются. Надо только поставить галочку и сохранять фото в отдельную папку.

Elena Polyanskikh
Сообщения: 973
Зарегистрирован: 12 сен 2008 18:51
Откуда: Новосибирск
Контактная информация:

Re: Как объединить два Древа в одно?

#99 Сообщение Elena Polyanskikh » 17 май 2019 21:02

axez писал(а): 09 май 2019 00:51 Большие. Очень большие глюки при попытке слить все версии деревьев в одно.
И ладно-бы двойники. Но получается всё дерево перемешано так, что разобраться просто невозможно.
Что делал:
1. Сконвертировал некоторые файлы из версии 3 в версию 4.
2. Переконвертировал из версии 4 в версию 5
3. Выбрал самый маленький по размеру, а значит самый старый файл и попробовал по порядку добавлять все деревья в это одно от меньшего к большему (в моём случае предполагаю, что чем больше файл - тем больше внутри данных и событий, а значит чем больше файл, тем он новее).

По логике вещей к старому дереву должны прирастать новые ветки, добавленные персоны и события...
Получается же так, что к разным людям присваиваются разные события от разных людей.
В общем получилась каша в которой разобраться просто нереально.
Допускаю, что я не так что делаю... тогда как надо?

Ссылка та же, можно глянуть https://yadi.sk/d/0-j_yZt2dG6UWw
Здравствуйте. Напишите, пожалуйста, конкретно название двух файлов, которые Вы объединили, и какие конкретно события переместились к другому человеку, ФИО этого человека, будем воспроизводить.
Елена Полянских, Genery Software

axez
Сообщения: 19
Зарегистрирован: 24 июл 2008 12:10
Контактная информация:

Re: Как объединить два Древа в одно?

#100 Сообщение axez » 16 июл 2019 21:35

Ух. Скажу сразу времени у меня крайне мало и смотреть и анализировать детально два файла (а тем более ту кучу, что у меня в наличии) просто не могу из-за отсутствия этого самого времени.

По этому точно следовать вашему алгоритму не могу.
Алгоритм
1. Перед объединением файлов убедитесь, что эти файлы имеют минимум двойников одна и та же персона - в двух файлах), чтобы меньше работы делать после объединения. Если двойников много, то в одном из файлов, например, в том, где у двойников меньше данных, отфильтруйте данные так, чтобы осталось минимум двойников. Сохраните отфильтрованные данные в отдельный файл. Поясню, что отфильтровать - не значит удалить. Это значит построить дерево, свернуть ненужные ветви, в таблице персон активировать фильтр "Присутствуют в дереве", затем сохранить отфильтрованные данные в отдельный файл: меню "Все действия" - "Файл" - "Сохранить с учетом фильтров". Дать файлу запоминающееся имя, отличающееся от файла-оригинала.
2. Открыть один из объединяемых файлов (например, сохраненный с учетом фильтров на предыдущем этапе). В меню "Все действия" щелкнуть "Добавить данные из...", указать второй из объединяемых файлов.
Тут остановимся, чтобы понять, как происходит добавление. Никакие данные не заменяются, происходит только добавление новых объектов. Какой объект считается новым? Каждый объект (персона, событие, документ, место, источник, заметка) имеет свой уникальный код. При добавлении программа сравнивает коды, и если объект с таким кодом отсутствует во пополняемом файле, то объект добавляется. Если объект с таким кодом уже есть, то объект полностью игнорируется. Одинаковые коды у объектов могут быть только в том случае, если второй файл является копией первого. Например, Вы создали своё дерево с веткой Ивана, передали часть этого файла с веткой Ивана родственникам Ивана, они внесли в него еще несколько персон и прислали Вам обратно. При добавлении этого файла к Вашему будут добавлены только новые персоны, а старые будут проигнорированы. Если правки были внесены также в те персоналии, которые попали в файл из Вашего файла, то часть правок будут тоже проигнорированы, так как после внесения изменений код персоны не меняется, однако та часть правок, где был создан новый объект - например, добавлено персоне новое событие или документы, будут добавлены.
3. Дальше Вам нужно соединить два дерева в одно. Общее дерево строится на основе семьеобразующих событий: свадеб и рождений. Например, событием, которое объединяет два дерева в одно, является свадьба.Тогда нужно создать событие "Свадьба" и указать в нем мужем персону из одного дерева, а жену - из второго. Если добавленная ветка - это чьи-то дети или родители, то нужно создать или отредактировать уже имеющееся у детей событие "Рождение", указав в нём родителей из второго дерева. Однако Вы можете также увидеть, что общая для двух деревьев персона теперь представлена в списке персон два раза. В этом случае нужное событие уже создано, нужно лишь удалить дубликат персоны (например, Иван), переименовав его (например, в Иван1), и заменив Иван1 на Иван его во всех событиях, в которых Иван1 участвует.
Попробую кратко описать ситуацию:
По пункту 1 -
Перед объединением файлов убедитесь, что эти файлы имеют минимум двойников одна и та же персона Перед объединением файлов убедитесь, что эти файлы имеют минимум двойников одна и та же персона
Выполнить не реально. У меня ~30 деревьев и анализировать каждый просто мрак и по трудозатратам и по времени.
Ненужных ветвей нет. Всё нужно. Иначе зачем я делаю дерево рода своей семьи.
По пункту 2 - Пункт 2 выполнил поочерёдно от файла к файлу со всеми 30-ю деревьями. По началу мне казалось, что данные суммируются. Но, как оказалось синхронизация действует очень ужасно на конечные данные и у кого-то нет даты рождения - это ещё не так страшно, но вот некоторых перекинуло в чужие деревья, - а это уже полностью не правильно.
По пункту 3 - Объединил, но по сути всё вышло плохо. да, я знаю, что я не действовал по инструкции, но поверьте просто нет времени на столько досконально копаться во внутренностях.

Было бы время, скорее всего каждое дерево выгрузил в XLS и по-тихоньку сравнил, но на практике мне, как пользователю так не подходит.
Нужен хороший, дополнительный, инструмент для синхронизации, сравнения и добавления деревьев.
Повторюсь нужно синхронизировать все персоны в дереве и добавлять всю информацию, что бы никто и ничто не потерялось. Может быть нужно добавить новый тип персон "неопознан" (или что-то типа того) для тех чьи персоны есть в добавляемом дереве, но найти их в синхронизированных данных не предоставляется возможным. И добавить вкладку для непонятных персон и исправления их.
Можете использовать синхронизацию на моих деревьях по ссылке https://yadi.sk/d/0-j_yZt2dG6UWw при работе над новыми версиями программы для улучшения её работы.

Elena Polyanskikh
Сообщения: 973
Зарегистрирован: 12 сен 2008 18:51
Откуда: Новосибирск
Контактная информация:

Re: Как объединить два Древа в одно?

#101 Сообщение Elena Polyanskikh » 17 июл 2019 13:15

Уважаемый axez,
Вы пожаловались на глюки при объединении файлов, а именно: переместились события. Цитирую Вас: "получается же так, что к разным людям присваиваются разные события от разных людей". Ваши файлы мы загрузили, но их много, и персон в каждом из них много, мы не видим ошибок после слияния, скажите конкретно, после объединения каких двух файлов произошло упомянутое Вами перемешивание событий и у кого конкретно (ФИО), чтобы мы могли это воспроизвести, если это ошибка программы.

Вы пишете: "По логике вещей к старому дереву должны прирастать новые ветки, добавленные персоны и события"
Сами новые ветки не прирастут, нужно создать или отредактировать событие, которые объединят новые ветки со старыми в одно дерево.

Под "ненужными персонами/ветками" я подразумевала повторы, дубли. Например, в одном дереве у вас семья Ивановых, Кузнецовых и Филипповых, а в другом - семья Петуховых, Поповых и Ивановых (тех же самых). Перед объединением файлов удалите семью Ивановых из любого файла, вычищать потом дублей будет проще.

Если все 30 деревьев - это одна большая семья, то лучше сразу заносить всех в один файл: пусть в базе будут все родственники, а построить отдельные небольшие деревья из общей базы - несложно. Как и выделить их в отдельный файл при необходимости.
Елена Полянских, Genery Software

Аватара пользователя
hippocamus
Сообщения: 1044
Зарегистрирован: 09 дек 2009 16:28
Откуда: Рыбинск, Ярославская обл.
Контактная информация:

Re: Как объединить два Древа в одно?

#102 Сообщение hippocamus » 18 июл 2019 19:52

axez писал(а): 16 июл 2019 21:35 Нужен хороший, дополнительный, инструмент для синхронизации, сравнения и добавления деревьев.
Повторюсь нужно синхронизировать все персоны в дереве и добавлять всю информацию, что бы никто и ничто не потерялось. Может быть нужно добавить новый тип персон "неопознан" (или что-то типа того) для тех чьи персоны есть в добавляемом дереве, но найти их в синхронизированных данных не предоставляется возможным. И добавить вкладку для непонятных персон и исправления их.
Можете использовать синхронизацию на моих деревьях по ссылке https://yadi.sk/d/0-j_yZt2dG6UWw при работе над новыми версиями программы для улучшения её работы.
Ну так может добавить всем персонам основного дерева логическое поле "Базовая персона", добавить всех из других деревьев и сравнивать в таблице. Потом это поле просто удалить.
Скачать Информер (для Древа Жизни 4.х). Установить.
Заменить экзешник на вот этот: https://yadi.sk/d/v49r7N46tdixe
Запустить от администратора. Указать путь к базе. Отключить автообновление.
Будет последняя версия 2.43. Рабочая )

opalex
Сообщения: 622
Зарегистрирован: 05 янв 2010 15:31
Откуда: Алматы
Контактная информация:

Re: Как объединить два Древа в одно?

#103 Сообщение opalex » 18 июл 2019 20:57

Год назад при переходе от четверки к ДЖ5 слил вместе 5 баз. Было много ошибок. Особенно неприятным оказалось присоединение одной из баз (слава богу, самой небольшой из всех моих баз, примерно на тысячу персон), когда у всех людей и, как недавно выяснилось, у документов, по неизвестной причине произошла замена всех мест другими местами - из другой базы. Сами понимаете, странно было видеть, например, вместо Алма-Аты какую-нибудь деревню Зубаревку.
Приглашаю в гости на opalex.info

Elena Polyanskikh
Сообщения: 973
Зарегистрирован: 12 сен 2008 18:51
Откуда: Новосибирск
Контактная информация:

Re: Как объединить два Древа в одно?

#104 Сообщение Elena Polyanskikh » 19 июл 2019 18:00

opalex писал(а): 18 июл 2019 20:57 Год назад при переходе от четверки к ДЖ5 слил вместе 5 баз. Было много ошибок. Особенно неприятным оказалось присоединение одной из баз (слава богу, самой небольшой из всех моих баз, примерно на тысячу персон), когда у всех людей и, как недавно выяснилось, у документов, по неизвестной причине произошла замена всех мест другими местами - из другой базы. Сами понимаете, странно было видеть, например, вместо Алма-Аты какую-нибудь деревню Зубаревку.
Это было в старой версии, уже исправлено.
Елена Полянских, Genery Software

Аватара пользователя
o22
Сообщения: 713
Зарегистрирован: 12 дек 2010 00:13
Контактная информация:

Re: Как объединить два Древа в одно?

#105 Сообщение o22 » 01 авг 2019 00:02

Как хорошо, что я давно веду все свои ветви в одном дереве. Даже те, которые вряд-ли когда-нибудь соединятся между собой. Автоматическое слияние баз это задача со многими неизвестными и как правило, не поддается автоматизации (без ошибок). Здесь или делать все щепетильно (step-by-step) с использованием тонких инструментов или быстро, но топорно (разгребать потом ошибки автоматизации).
Сайт программ GedcomReport, DrevoReport http://go.inf.ua
Исследования: Васильковський, Киевский, Звенигородский уезды Киевской губернии
Нежинский уезд Черниговской губернии

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: Ahrefs [Bot], Bing [Bot] и 3 гостя