АвторТема: Определение всех степеней кровного родства для двух персон по файлу Гедком  (Прочитано 45556 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Ustimov

  • Сообщений: 219
  • Страна: ru
  • Рейтинг +23/-2
  • Y-ДНК: I2a1а2b-Y52790-DinN
  • мтДНК: V1a1
Теперь внимание! Ошибка в Древе!!!

Дед, двоюродный дед, троюродный дед и так далее.
Двоюродным дедом обзывают родного брата деда!!! Не порядок.  :-\

Должно быть:
Дед, брат деда, двоюродный дед, ... тридцативосьмиюродный дед.
Михаил, насколько помню, брат деда - это именно двоюродный дед. То есть как бы в отличие от родного деда. А брат деда, лишь другой способ определения родства в форме некой цепочки. Например есть конкретное определение "свёкор" (читай двоюродный дед), в то же время его можно обозвать "отцом мужа" (читай брат деда).

Оффлайн Mich GlitchАвтор темы

  • Genus regis
  • Сообщений: 36936
  • Страна: ca
  • Рейтинг +3773/-48
  • Y-ДНК: J2b1
  • мтДНК: H6a1a5a
Михаил, насколько помню, брат деда - это именно двоюродный дед.

У меня на форуме Древа Жизни спросили про источник. Я ответил в том духе, что всё это не более, чем мои измышления.
А вот у Вас про источник я спрошу. Достаточно будет простого явного упоминания в какой-нибудь доперестроечной книжке, дабы убедиться, что имеем устойчивое название.

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

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

Оффлайн Mich GlitchАвтор темы

  • Genus regis
  • Сообщений: 36936
  • Страна: ca
  • Рейтинг +3773/-48
  • Y-ДНК: J2b1
  • мтДНК: H6a1a5a
Приведу пример аллогичного выпадения из правил, имеющего тем не менее чёткое объяснение.

Во французском языке окончание существительных на -ie обозначает женский род.
Но есть 1 (одно) исключение. Слово orthographe, которое тоже женского рода. Объяснение просто, до второй половины 18 века это слово писалось как надо. Затем в первых полных словарях фр. языка эпохи энциклопедистов его по ошибке наборщика написали в современном виде. Словари дополнялись и переиздавались не чаще чем раз в 30 лет. Ошибочное написание превратилось в норму.

По иронии судьбы, значение данного слова - орфография.

:)

Оффлайн Ustimov

  • Сообщений: 219
  • Страна: ru
  • Рейтинг +23/-2
  • Y-ДНК: I2a1а2b-Y52790-DinN
  • мтДНК: V1a1
Вот к примеру: http://www.klikovo.ru/db/book/msg/7640. Информация взята из дореволюционного законодательства. Да и логика подсказывает то же самое. Чего уж тут придумывать. ;) А французы... Что нам французы :)

Оффлайн Mich GlitchАвтор темы

  • Genus regis
  • Сообщений: 36936
  • Страна: ca
  • Рейтинг +3773/-48
  • Y-ДНК: J2b1
  • мтДНК: H6a1a5a
Ага, действительно имеем двоюродного деда (вопреки логике, об этом чуть позже и с картинками :) ):

Цитировать
3)  Боковые линии идут от степеней, восходящих в сторону к тем лицам, которые с данным лицом имеют общих родоначальников, но с ним самим не соединяются непосредственно в прямые линии, или степени рождения.
Боковых линий в круге родства обыкновенно считается три, хотя может быть и более, если про­стирать родословную цепь слишком далеко.
Первая боковая линия исходит от первой восхо­дящей степени, т.е. от отца и матери данного лица и простирается к братьям и сестрам его, от них к племянникам и т.д. (Св. зак. т. X ч. I, ст. 205).
Вторая боковая линия исходит от второй восхо­дящей степени, т.е. от дедов и бабок и простирается к дяде данного лица, от него к двоюродному брату и т.д. (Там же ст. 206).
Третья боковая линия исходит от третьей восходя­щей степени, т.е. от прадедов и прабабок и простирает­ся к их нисходящим, т.е. к двоюродному деду и двою­родной бабке данного лица, от них к двоюродному его дяде, от него к троюдному брату и т.д. (Там же ст. 207).

Оффлайн Mich GlitchАвтор темы

  • Genus regis
  • Сообщений: 36936
  • Страна: ca
  • Рейтинг +3773/-48
  • Y-ДНК: J2b1
  • мтДНК: H6a1a5a
Внимательно рассматриваем картинки, обращая особое внимание на красный квадрат (персона, относительно которой выстроено родословие):







Заметили нестыковочки между наименованием родства и родством на поколенных этажах референтной персоны?

Оффлайн Mich GlitchАвтор темы

  • Genus regis
  • Сообщений: 36936
  • Страна: ca
  • Рейтинг +3773/-48
  • Y-ДНК: J2b1
  • мтДНК: H6a1a5a
А вот так бы было логично:



Но устоявшиеся названия не всегда следуют строгой логике.

Возражения снимаются. Двоюродный дед, так двоюродный дед.

:)

Оффлайн Anode

  • Группа N
  • *
  • Сообщений: 1423
  • Страна: ca
  • Рейтинг +147/-0
  • PS1 -> TT1 -> EE1 -> PS2
  • Y-ДНК: N1c1
  • мтДНК: H10a1, U5b1
Очень хорошо всё расжёвано, хороший спек составили, Mich Glitch, +1.

И как считать вроде понятно (дерево, вернее граф кровных родственников, мы в памяти уже строим).

Проблема найти время и желание... (а может ещё народ подтянется? Я код весь выложил)

Оффлайн Mich GlitchАвтор темы

  • Genus regis
  • Сообщений: 36936
  • Страна: ca
  • Рейтинг +3773/-48
  • Y-ДНК: J2b1
  • мтДНК: H6a1a5a
Может пока вывести только пути до ближайших общих предков?

Ну, а потом и явные названия родства.

Всё сначала делать только по ID из Гедкома с наипростейшей проверкой (типа, ID такой-то не найден).
Потому как если заморачиваться на проверки тёзок, времени и энтузиазма уйдет больше.
Короче говоря делать сначала код дураконеустойчивым, ну а потом уж доводить до товарного вида. Или ещё иначе, представляется более приоритетным добавить сначала все полезные фичи, а уж потом думать про всякие ГУИ.

*** Вы, уж, про мою просьбу найти по тридцать самых юных и престарелых родителей не запамятуйте, пожалуйста. Хотелось бы поколенные интервалы довести до ума. (Хотя цифирь будет скакать по сотым. Максимум, на одну-две десятых.)

Оффлайн Anode

  • Группа N
  • *
  • Сообщений: 1423
  • Страна: ca
  • Рейтинг +147/-0
  • PS1 -> TT1 -> EE1 -> PS2
  • Y-ДНК: N1c1
  • мтДНК: H10a1, U5b1
*** Вы, уж, про мою просьбу найти по тридцать самых юных и престарелых родителей не запамятуйте, пожалуйста. Хотелось бы поколенные интервалы довести до ума. (Хотя цифирь будет скакать по сотым. Максимум, на одну-две десятых.)

Про Вашу просьбу не забыл. Это было не сложно: всего около часа работы.
Отсортированный по возрастам на момент рождения родителя репорт (как это по-русски? отчёт?) отослал на мейл. Сами уж решайте сколько там аномальных записей: первые тридцать + последние тридцать или же больше.

Оффлайн Mich GlitchАвтор темы

  • Genus regis
  • Сообщений: 36936
  • Страна: ca
  • Рейтинг +3773/-48
  • Y-ДНК: J2b1
  • мтДНК: H6a1a5a
*** Вы, уж, про мою просьбу найти по тридцать самых юных и престарелых родителей не запамятуйте, пожалуйста. Хотелось бы поколенные интервалы довести до ума. (Хотя цифирь будет скакать по сотым. Максимум, на одну-две десятых.)

Про Вашу просьбу не забыл. Это было не сложно: всего около часа работы.
Отсортированный по возрастам на момент рождения родителя репорт (как это по-русски? отчёт?) отослал на мейл. Сами уж решайте сколько там аномальных записей: первые тридцать + последние тридцать или же больше.

Огромное спасибо!

Буду проверять все записи до 15 лет и после 75 лет.

Оффлайн Anode

  • Группа N
  • *
  • Сообщений: 1423
  • Страна: ca
  • Рейтинг +147/-0
  • PS1 -> TT1 -> EE1 -> PS2
  • Y-ДНК: N1c1
  • мтДНК: H10a1, U5b1
К вопросу печати пути до ближайших предков.

Путь от первой персоны к общему предку уже есть , а второй путь надо "накопить" (что не будет сложным - так как подобное мы уже делаем для восходящих линий). Потом развернуть последовательность наоборот - и получится путь от той, второй, персоны до общего предка. И выведем те две МЖМЖ последоваельности в новый, 4й  (вернее 5й, после аномалий) репорт.
Как тот математик в анекдоте, который при ночном пожаре, увидев в стене шланг - понял, что "решение существует", и пошёл досыпать - так и я, поняв что решение существует, - успокоился. И пока заленился делать кучу мелкой рутинной работы по чистке кода ещё с предыдущего этапа (помните - я срочно, но "грязно" ночью вывел группировку по векам? Чтобы можно было поддерживать код - надо наводить порядок). А тут ещё свои мелочи по оформлению репорта будут.
До рабочей недели надо отдохнуть от кода. А там "станки, станки" опять...
Сделаем, конечно. Подождите, немного.

Оффлайн Mich GlitchАвтор темы

  • Genus regis
  • Сообщений: 36936
  • Страна: ca
  • Рейтинг +3773/-48
  • Y-ДНК: J2b1
  • мтДНК: H6a1a5a
Василий,

Да, о чём Вы?!

Чего накопить?!!

Зачем развернуть?!!!

Делаем один предковый лист для первой персоны.
Делаем второй лист для другой персоны.

Выбираем предков, присутствующих в обоих листах. Они уже с путями!!!

Листы проверяем, скажем начиная с первого. Предка за предком. Если начальный фрагмент (комбинация М и Ж) уже был афиширован, то персона откидывается. Потому как это ветвь родителей-дедов-прадедов и т. д. уже выявленного общего предка.

Оффлайн Mich GlitchАвтор темы

  • Genus regis
  • Сообщений: 36936
  • Страна: ca
  • Рейтинг +3773/-48
  • Y-ДНК: J2b1
  • мтДНК: H6a1a5a
Может так статься, что по одному и тому же предку обе проверяемые персоны будут родственно связаны. Но пути до этого предка в каждом случае будут разные.

Оффлайн Anode

  • Группа N
  • *
  • Сообщений: 1423
  • Страна: ca
  • Рейтинг +147/-0
  • PS1 -> TT1 -> EE1 -> PS2
  • Y-ДНК: N1c1
  • мтДНК: H10a1, U5b1
Василий,

Да, о чём Вы?!

Чего накопить?!!

Зачем развернуть?!!!

Делаем один предковый лист для первой персоны.
Делаем второй лист для другой персоны.

Выбираем предков, присутствующих в обоих листах. Они уже с путями!!!

Листы проверяем, скажем начиная с первого. Предка за предком. Если начальный фрагмент (комбинация М и Ж) уже был афиширован, то персона откидывается. Потому как это ветвь родителей-дедов-прадедов и т. д. уже выявленного общего предка.

Да, это второй подход, согласен.

Честно говоря, я было хотел использовать уже существующий репорт (где группировки по гаплотипам), вернее структуры/код из него, только добавив туда путь. Но Вы правы, можно использовать код самого первого репорта (только просчёт всех восходящих линий) 2 раза, дописать пересечение тех множеств итд.
Чище, и не нужны кучи нисходящих всё равно непоказываемых линий.

Мне казалось результат должен быть одинаков, так как это только вопрос разных обходов графа. Я, как программист, обязан быть чудовищно ленив. Вот и выбираю решение покороче, энергетически для себя более выгодное ;)

+1 за алгоритмы

 

© 2007 Молекулярная Генеалогия (МолГен)

Внимание! Все сообщения отражают только мнения их авторов.
Все права на материалы принадлежат их авторам (владельцам) и сетевым изданиям, с которых они взяты.