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

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

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

  • Группа N
  • *
  • Сообщений: 1423
  • Страна: ca
  • Рейтинг +147/-0
  • PS1 -> TT1 -> EE1 -> PS2
  • Y-ДНК: N1c1
  • мтДНК: H10a1, U5b1
Нашёл следующий компактный текстовый формат экстремально удобным. Как для записей, так и посылке помощникам, в архив, родственникам. GEDCOM не настолько удобен для ручной работы (человеку трудно разбираться в индирекшенах и ходить по ID). Идея кодировать бинарное дерево изначально пришла из подписи уважаемого МичГлича (Прадед (ЖЖМ): E1b1b1c1, Прапрадед (ММЖМ): R1a1a1*), а также нескольких его постов здесь, на молгене. Затем я стал поддерживать определённый формат записей.
Т.е. вместо гедкомовского ID используем путь (от человека, делающего исследование). Затем, например дети, смогут очень просто добавить одну свою букву как префикс к каждой строчке и получить своё дерево. Также очень легко объединять деревья или вырезать поддеревья, сделав сортировку (или grep под юниксом).
Формат конечно же не для конкуренции со стандартным GEDCOM, а как дружественное дополнение к нему. В будущем можно понаписать фильтров, верифицирующих и объединяющих программ.
Спецификацию, думаю, можно не писать - всё и так видно. При законном браке у женщин указывается фамилия мужа а их девичья фамилия - в скобках. При отсутствии документа о браке - указывается фамилия женщины без скобок. Т.е. в дереве, как мне кажется, в простой и интуитивной форме содержится достаточно много информации. Знаки вопроса сразу показывают неизвестные - которые нужно определить. Сколь угодно доп. информации (<== используется для выделения комментариев) может быть помещено в 6е поле и далее - ведь длина строк неограничена.
Буду благодарен за любые комментарии.


------8<------
М я
ММ Гаврилов ... <== отец
МЖ Гаврилова (Гусева) ... <== мать

... <== здесь вырезано большое дерево по материнской линии (все строки имеют префикс "МЖ", так что легко сортировать и удалять поддеревья)

МММ Гаврилов Георгий (Легор - удм., Егор - рус.) Константинович
ММММ Гаврилов Константин Иванович
МММЖ Гаврилова (?) Татьяна Иосифовна (Осиповна) (15.05.1874-~1940е)
МММЖМ ? <== ремарки и указывать удобно вот так
МММЖЖ ?
ММЖ Гаврилова (Ившина) Домна Гавриловна
ММЖМ Ившин Гаврила Николаевич
ММЖЖ Ившина (Кашина) Александра Тимофеевна (09.04.1883-~1960е)
ММЖЖМ Кашин Тимофей ?
ММЖЖЖ ?
МММММ Гаврилов Иван Гаврилович (~1849-12.10.1896)
ММММММ Гаврилов Гаврила?
МММММЖ ?
ММММЖ Наталия Ивановна
ММММЖМ ?
ММММЖЖ ?
ММЖММ Ившин Николай Афанасьевич (~1858-18.01.1907)
ММЖМЖ Ившина (?) Марфа Ивановна
ММЖМММ Ившин Афанасий Тимофеевич
ММЖММЖ Ившина? (?) (?-не позднее 1878)
------8<------

последняя версия нотации показана здесь
« Последнее редактирование: 28 Ноябрь 2011, 06:00:24 от Anode »

Оффлайн Yurgan

  • Кто везёт, тому везёт
  • ...
  • Сообщений: 8423
  • Страна: ar
  • Рейтинг +945/-8
  • Потомок кузнеца Ильмаринена
    • Сибирский родословец


МММ Гаврилов Георгий (Легор - удм., Егор - рус.) Константинович
ММММ Гаврилов Константин Иванович
МММЖ Гаврилова (?) Татьяна Иосифовна (Осиповна) (15.05.1874-~1940е)
МММЖМ ? <== ремарки и указывать удобно вот так
МММЖЖ ?
ММЖ Гаврилова (Ившина) Домна Гавриловна
ММЖМ Ившин Гаврила Николаевич
ММЖЖ Ившина (Кашина) Александра Тимофеевна (09.04.1883-~1960е)
ММЖЖМ Кашин Тимофей ?
ММЖЖЖ ?
МММММ Гаврилов Иван Гаврилович (~1849-12.10.1896)
ММММММ Гаврилов Гаврила?
МММММЖ ?
ММММЖ Наталия Ивановна
ММММЖМ ?
ММММЖЖ ?
ММЖММ Ившин Николай Афанасьевич (~1858-18.01.1907)
ММЖМЖ Ившина (?) Марфа Ивановна
ММЖМММ Ившин Афанасий Тимофеевич
ММЖММЖ Ившина? (?) (?-не позднее 1878)
------8<------

А цифрами не пробовали.
Вы - 1
Ваш отец - 2
Мать - 3
Дед по отцу - 4
Бабушка по отцу - 5
Дедушка по матери 6
Бабушка по матери 7

Отец деда по отцу - 8
Мать деда по отцу - 9
Отец бабушки оп отцу - 10
Мать бабушки по отцу - 11
Отец деда по матери 12
Мать деа по матери - 13
Отец бабушки по матери - 14
Мать беабушки по матери - 15
И так далее.
Т.е.  номер отца, это умноженный на два номер ребенка, а мать - это номер отца + 1.
Если нет сведений о предках, то не включаем в роспись.
Это менее громоздко
МММММ = 32


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

  • Группа N
  • *
  • Сообщений: 1423
  • Страна: ca
  • Рейтинг +147/-0
  • PS1 -> TT1 -> EE1 -> PS2
  • Y-ДНК: N1c1
  • мтДНК: H10a1, U5b1
А цифрами не пробовали.
Вы - 1
Ваш отец - 2
Мать - 3
Дед по отцу - 4
Бабушка по отцу - 5
Дедушка по матери 6
Бабушка по матери 7

Отец деда по отцу - 8
Мать деда по отцу - 9
Отец бабушки оп отцу - 10
Мать бабушки по отцу - 11
Отец деда по матери 12
Мать деа по матери - 13
Отец бабушки по матери - 14
Мать беабушки по матери - 15
И так далее.
Т.е.  номер отца, это умноженный на два номер ребенка, а мать - это номер отца + 1.
Если нет сведений о предках, то не включаем в роспись.
Это менее громоздко
МММММ = 32

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

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

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

Это менее громоздко
МММММ = 32


громоздкость с другой стороны даёт самодостаточность информации.
Например, вырезав поддерево - можно убрать один и тот же (во всех строках) префикс.

А ещё очень легко (при небольшой треннировке) - понять кто кому муж-жена, или просто вырезать приватные строки, которые по каким-то причинам кому-то не хочется показывать.
При использовнии цифр начинаются переобозначения и другие "танцы с бубнами".
« Последнее редактирование: 03 Ноябрь 2011, 20:58:22 от Anode »

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

  • Группа N
  • *
  • Сообщений: 1423
  • Страна: ca
  • Рейтинг +147/-0
  • PS1 -> TT1 -> EE1 -> PS2
  • Y-ДНК: N1c1
  • мтДНК: H10a1, U5b1
Ещё пример использования (юз-кейс).
Легко вырезаем (да хоть в ноутпеде) интересующее поддерево, убираем повторяющийся префикс и посылаем поддерево одному помощнику (например - в архив), другое поддерево - другому (родственнику), и указываем - что интересует значками "<==". Не забываем идентифицировать файлы (если убрали префикс ММЖ - то маркируем файл или делаем записи для себя).
Когда получим дерево обратно (если оно будет в той же форме) или если объединяем деревья с другим большим деревом - единственное что надо устаканить - это правильный префикс.
Сравнение отсортированных поддеревьев (например diff) - даст разницу (конфликт), которую надо разрешить перед слиянием.
Любая строка несёт самодостаточную информацию как и любое поддерево. Неизвестный только правильный префикс, зависящий от исследователя (корневой узел). Большие деревья от разных источников, наверное, можно будет объединять и автоматически эвристикой (большим количеством совпадений) и показывать - с какой вероятностью деревья могут быть объединены. Затем человек должен будет "смерджить" деревья. Но это уже совсем уж будущее - если это будет стандартным форматом и будет иметь смысл писать обрабатывающие программы. На данном этапе это для ручной обработки и обмена.

Продолжу вечером (обеденный перерыв заканчивается - надо работать)
« Последнее редактирование: 03 Ноябрь 2011, 21:17:42 от Anode »

Оффлайн Valery

  • Сообщений: 10107
  • Страна: 00
  • Рейтинг +1380/-7
  • Ultimate Matriarchy
Продолжу вечером (обеденный перерыв заканчивается - надо работать)

трудовая дисциплина :)

Мы (программисты) на работе в отличие от сотрудников других отделов никогда не разворачивались лицом к стене - зачем кому видеть сзади чем мы весь день занимаемся, на форуме сидит или работаем?  ;D

Оффлайн Valery

  • Сообщений: 10107
  • Страна: 00
  • Рейтинг +1380/-7
  • Ultimate Matriarchy
Проблема в том, что это будет изобретение для Вас одного. А вариант, предложеный Yurgan стандартный и довольно распространён (и понятен многим) и достаточно удобен. Если не ошибаюсь, называется таблица Сос-Страдоница. Зачем изобретать велосипед?

но его нельзя будет просто так смерждить с другим форматом, Anode прав

Оффлайн I2a1a

  • ...
  • Сообщений: 10364
  • Страна: ee
  • Рейтинг +761/-8
Gedcom потихоньку устаревает, планируется, что его должен заменить GedXML основанный на сементике языке XML.

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

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

И Вы можете Сос-Страдоницу выслать всем родственникам и они без проблем поймут? Не верю (С). А в данном формате всё предельно интуитивно. Можно даже на пальцах не объяснять а показать человеку одну страничку-дерево со знакомыми именами и всё станет ему понятным, и человек только заполнит места со знаками вопроса (хотя бы в ноутпеде) сам.
Потом эволюция форматов не закончилась. Если что-то удобно мне - наверняка это будет удобно и кому-то ещё.

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

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

трудовая дисциплина :)

Мы (программисты) на работе в отличие от сотрудников других отделов никогда не разворачивались лицом к стене - зачем кому видеть сзади чем мы весь день занимаемся, на форуме сидит или работаем?  ;D

С этим проблем как раз нет. Но ведь надо же ещё и на мейлы без задержки отвечать, да что-то там "производить" иногда ;)

Оффлайн Mich Glitch

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

Одно дело, когда есть полная восходящая роспись со всеми предками. Тогда и посчитать цифирки просто.

Другое дело, когда работаешь с фрагментарным деревом. ИМХО, проще проползти по одной ветви, чем делать подсчёты на каждом поколенном этаже.

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

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

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

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

Идентифитор - это фактически относительный путь (относительно данного корня), и это поддерево легко можно "перемонтировать" к другому корню. Аналог файловой системы или иерархической базы данных, без необходимости в суррогатах (искуственно изобретённых индирекшенах).
Такой вид генеалогического дерева похож на "выхлоп" какого нибудь юниксового "find", так что ничего нового. Повторение не настолько критично, так как оно растёт как логарифм от размера дерева.
« Последнее редактирование: 04 Ноябрь 2011, 03:13:34 от Anode »

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

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

Одно дело, когда есть полная восходящая роспись со всеми предками. Тогда и посчитать цифирки просто.

Другое дело, когда работаешь с фрагментарным деревом. ИМХО, проще проползти по одной ветви, чем делать подсчёты на каждом поколенном этаже.

Спасибо - за изначальную идею :)

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

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

все чистые [вы]ЖЖ... - получат вашу мито
все чистые [вы]ММ... - вашу Y-гаплу
[вы]МЖЖЖ... - мито вашей бабушки со стороны отца
[вы]ЖМММ... - Y-гаплогруппу деда со стороны матери
если есть счастливчики, кто ещё успел протестировать 3е поколение вглубь - масса других строчек автоматически заполнится.

Гаплогруппу можно ставить в квадратных скобках вторым полем.

Затем, сверяя гаплы всех своих кузенов в 23андме и фтдна, - можно понять - в какие поддеревья те кузены точно не попадут, и какие деревья отсекутся. И будет легче сконцентрироваться на нужных направлениях.

Это невозможно (из-за неявности информации) в других форматах.

Тут целый набор полезных фичей в комплексе - как с точки зрения автоматической обработки (я не поднимаю такие вопросы как масштабируемость), так и с точки зрения ясности формата для ручной правки (в отличие от гедкома и других).

Но за критику отдельное спасибо - именно сбор её и был целью этого топика.

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

  • Группа N
  • *
  • Сообщений: 1423
  • Страна: ca
  • Рейтинг +147/-0
  • PS1 -> TT1 -> EE1 -> PS2
  • Y-ДНК: N1c1
  • мтДНК: H10a1, U5b1
С гаплогруппами:
------8<------
М [N1c1] ... <== я
ММ [N1c1] Гаврилов ... <== отец
МЖ [H10a1] Гаврилова (Гусева) ... <== мать

... <== здесь вырезано большое дерево по материнской линии (все строки имеют префикс "МЖ", так что легко сортировать и удалять поддеревья)

МММ [N1c1] Гаврилов Георгий (Легор - удм., Егор - рус.) Константинович (18.04.1912-1942)
ММММ [N1c1] Гаврилов Константин Иванович (15.05.1874-~1940е)
МММЖ Гаврилова (?) Татьяна Иосифовна (Осиповна)
МММЖМ ? <== ремарки и указывать удобно вот так
МММЖЖ ?
ММЖ [U5] Гаврилова (Ившина) Домна Гавриловна (31.08.1912-1942/43)
ММЖМ Ившин Гавриил Николаевич (10.07.1887-~1960е)
ММЖЖ [U5] Ившина (Кашина) Александра Тимофеевна (09.04.1883-~1960е)
ММЖЖМ Кашин Тимофей ?
ММЖЖЖ [U5] ? (?)
МММММ [N1c1] Гаврилов Иван Гаврилович (~1849-12.10.1896)
ММММММ [N1c1] Гаврилов Гавриил?
МММММЖ ? (?)
ММММЖ ? (?) Наталия Ивановна (~1846-10.01.1906)
ММММЖМ ?
ММММЖЖ ? (?)
ММЖММ Ившин Николай Афанасьевич (~1858-18.01.1907)
ММЖМЖ Ившина (?) Марфа Ивановна (~1855-?)
ММЖМЖM ?
ММЖМЖЖ ? (?)
ММЖМММ Ившин Афанасий Тимофеевич (?-не позднее 1878)
ММЖММЖ ? (?)
ММЖМММM ?
ММЖМММЖ ? (?)
------8<------

П.С. заодно кое-что дополнил, добавил строки (чтобы было видно по одному неизвестному уровню - кого исследовать), и исправил знаки вопроса:
если у женщины
? (?) - значит пока не известна ни её девичья фамилия, ни то - был ли зарегистрирован брак
если только (?) - значит брак зарегистрирован, но не известна девичья фамилия

П.П.С. так можно и в форумах обмениваться информацией, вот например это дерево вместе с гаплогруппами сразу показывает куда идёт мито U5 моей бабки по отцу
« Последнее редактирование: 04 Ноябрь 2011, 04:05:25 от Anode »

 

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

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