АвторТема: Удобный формат для передачи генеалогической информации  (Прочитано 52145 раз)

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

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

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

Почему?
Я же указываю полный (уникальный) путь по бинарному дереву, начиная от корня.
Вся фишка в том - что у меня - уникальные ID.
Если я, исследователь, энтити, имеющий какой-то уникальный ID (например, номер паспорта, или SIN, плюс идентификатор страны, а лучше натуральный в терминах генеалогий, т.е. имя+год.рожд.+место рожд.), то этот ID + любой путь (ID) из моей генеалогии (относительно меня) - будет уникальным идентификатором любой персоны из этой генеалогии.

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

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

/ <- я, здесь нужно указать ID данной машины/иерархии
/папа
/мама
/папа/бабушка
/мама/дедушка

итд.

Вы же предлагаете 2 корня (C:\ и D:\) с допущением - что где-то имеется ещё информация об ID машины.
И мне не нравится принимать какие-то внешние допущения: хочу всю необходимую информацию иметь в записях и поставить тот ID машины - в первую строку.
Чтобы роботами можно было строить деревья автоматически. и монтировать корневой узел / - в другую директорию/генеалогию.
Например, мои дети смогут просто скопировать моё дерево, дерево своей матери (один к одному) и "склеить" два поддерева своей одной буковкой, не делая больше ничего.  Или будущий Бриновский (или какой ещё) робот это сделает за них.

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

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

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

Но как раз в моём случае у каждого из них будет свой корень со своим ID, т.е. наши генеалогии будут различимы и понятны роботу.

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

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

Оффлайн Mich Glitch

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

У меня ещё к Вам такая идея-предложение.
Хорошо бы было сделать программу, которая по Гедком файлу кровных родственников группирует персон с общими игрек и мито гаплотипами. Т.е. восходящих по прямым линиям, мужским, или женским, к одному предку.

На этапе предварительной обработки отбираются только ныне живущие персоны (скажем, без указанной даты смерти и возрастом не старше, скажем, 90 лет). Потом по каждой из них производится поиск прямых родичей.

Все случаи, когда имеется две и более персон - сводятся в таблицу.

Как Вам?

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

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

У меня ещё к Вам такая идея-предложение.
Хорошо бы было сделать программу, которая по Гедком файлу кровных родственников группирует персон с общими игрек и мито гаплотипами. Т.е. восходящих по прямым линиям, мужским, или женским, к одному предку.

На этапе предварительной обработки отбираются только ныне живущие персоны (скажем, без указанной даты смерти и возрастом не старше, скажем, 90 лет). Потом по каждой из них производится поиск прямых родичей.

Все случаи, когда имеется две и более персон - сводятся в таблицу.

Как Вам?

Сама задача кажется не такой сложной (походить по дереву вверх да вниз), но тут надо влезать в тонкости всех типов (версий) гедкомов, изучать сам протокол в деталях. Я с гедкомами ещё плотно не работал, только в общих чертах.
Может взять время.
Если есть примеры гедкомовских файлов (реальных, а не искуственных, игрушечных, может даже выхлопов из разных программ, т.е. разных версий) и если можете что-то прислать в личку - то можно попробовать поразбираться на досуге...

Оффлайн Mich Glitch

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

Сходную задачу решает только ЛегасиЧарт. Да и то, сводит только прямые линии от заданной персоны вниз.

Программке бы такой цены не было.  8)

Оффлайн 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
Да, Вы могли бы потренироваться на своём маленьком файле. Ну, а потом я зашлю свой файл кровных родственников (более 11 тысяч).

Сходную задачу решает только ЛегасиЧарт. Да и то, сводит только прямые линии от заданной персоны вниз.

Программке бы такой цены не было.  8)

Потренируюсь. Там (в самом гедкомовском формате) есть неоднозначности в построении дерева, даже в случае отсутствия специальных случаев. И я пока подразумеваю только GEDCOM 5.5 или 5.5.1 (юникод или UTF-8), и не xml.
Сейчас много работы навалилось, может в выходные.

А Ваш 11 тысячный файл сколько мегабайт занимает? Надеюсь, это строки (HEAD, INDI, FAM, DATE), а не xml?

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

  • Группа N
  • *
  • Сообщений: 1423
  • Страна: ca
  • Рейтинг +147/-0
  • PS1 -> TT1 -> EE1 -> PS2
  • Y-ДНК: N1c1
  • мтДНК: H10a1, U5b1
Да, по топику...
Оказывается, Соса-Сострадониц известна на западе как Ahnentafel нотация.
Интереснее, что во втором методе указано и бинарное представление чисел и даже табличка перевода и сказано всё то же, что мы тут заново изобретали и говорили: 
"This construct displays a person's genealogy compactly, without the need for a diagram such as a family tree. It is particularly useful in situations where one may be restricted to presenting a genealogy in plain text, for example, in e-mails or newsgroup articles. In effect, an ahnentafel is a method for storing a binary tree in an array by listing the nodes (individuals) in level-order (in generation order)."

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

И считаю - что всё же мы его дополнили в лучшую сторону.
Похоже что всё же мы первыми начали использовать МЖМЖЖ нотацию вместо единичек и нулей, как основную нотаию, а также путь - как основной ID, а не как вспомогательный метод вычислений (легче чем вычисление прогрессий). Ну и наша Ж или М самого субъекта более информативна чем неоднозначная первая единица. Плюс стандартизация записей фамилий и вопросов (to be finalized).
Так что всё же не буду отказываться от формата - как стандарта для представления генеалогий более удобного, чем Соса-Сострадониц-Ahnentafel и кандидата в основу стандарта для будущей автоматической обработки генеалогий в интернете (об этом пока вроде речь ни у кого не идёт, хотя МичГлич вроде озвучил цели Брина).

Оффлайн Mich Glitch

  • Genus regis
  • Сообщений: 36936
  • Страна: ca
  • Рейтинг +3773/-48
  • Y-ДНК: J2b1
  • мтДНК: H6a1a5a
А Ваш 11 тысячный файл сколько мегабайт занимает? Надеюсь, это строки (HEAD, INDI, FAM, DATE), а не xml?

Да, у меня вся база (34 тысячи человек) в сжатом виде тянет на каких-то 16 МБ. (В развёрнутом около 400 МБ.)
Ну, а Гедком текстовый (я ещё лишние поля постараюсь убрать), надеюсь, будет не очень тяжёлый.

Оффлайн 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
Да, у меня вся база (34 тысячи человек) в сжатом виде тянет на каких-то 16 МБ. (В развёрнутом около 400 МБ.)

Интересно, а много ли существует генеалогий более 34 тыс. человек? И если да - то каков размер максимального используемого GEDCOM?

А у Вас это одно связанное дерево или т.н. "лес" (т.е. набор разъединённых деревьев)?

Ещё не совсем понятно - что делают программы - когда встречают конфликтующие записи и циклы, тем более - когда даты не известны (а GEDCOM сам по себе позволяет иметь противоречия, и избыточности в записях, где надо принимать решения - чему же всё-таки верить?). Видимо, разработчики программ отладили поведение программ многолетними итерациями, trial and error, которых у меня пока нет. Например, как интерпретируются таги ASSO (гражданские браки, полигамия, инцест, однополые браки итд), и прочие особенности.

П.С. У меня ещё и корыстный интерес с GEDCOM'ом имеется: написать правильную перегонку его в формат этого топика и обратно, для любого заданного узла. Но для этого надо понять все особенности и как действуют в разных неоднозначных случаях стандартные программы. Ведь для юзеров генеалогических программ - важна только картинка, а какие там конфликты внутри самого формата и как разработчики их решают - это ноу-хау конкретных программ. Однако о точности репорта будут решать именно по соответсвию с результатом программной интерпретации. Т.е. для написания точного обработчика - надо понять многое скрытое от глаза.

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

  • Группа N
  • *
  • Сообщений: 1423
  • Страна: ca
  • Рейтинг +147/-0
  • PS1 -> TT1 -> EE1 -> PS2
  • Y-ДНК: N1c1
  • мтДНК: H10a1, U5b1
Ещё по исходному топику обнаружил интересную статью по теме: http://en.wikipedia.org/wiki/Genealogical_numbering_systems
(...и добавил ЖЖМЖ нотацию туда тоже).

atree, честно говоря, пришла изначально в голову как Anode's tree, но потом скромность заставила найти более приемлемое объяснение "a tree", одно из многих деревьев.
Теперь же, после открытия западного (немецкого) названия - atree зазвучало как "Ahnentafel's tree", ведь начальная буква тоже "А" (tree же - как противовес "плоским" номерам, которые деревом станут только после вычисления и соответствующей распечатки, а у нас именно дерево с ветками, удобно для пользователей изначально, в отличие от).

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

  • Группа N
  • *
  • Сообщений: 1423
  • Страна: ca
  • Рейтинг +147/-0
  • PS1 -> TT1 -> EE1 -> PS2
  • Y-ДНК: N1c1
  • мтДНК: H10a1, U5b1
Уважаемые администраторы,
а не могли бы вы перенести ответы #59, 58, 57, 55, 53, 52, 51 в новую ветку, например, под именем "GEDCOM" (или как уважаемый МичГлич решит), под эту же категорию?
« Последнее редактирование: 10 Ноябрь 2011, 03:55:48 от Anode »

 

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

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