Mapping gedcom to topoged - m0smith/topoged GitHub Wiki
Before parsing the GEDCOM, do the following:
- Create Channels
- Source
- HEAD Records
- SUBM Records
- INDI Records
- FAM Recods
- SOUR Records
- TRLR Records
The GEDCOM file itself is considered to be a source. The information in the HEAD section will be used to create the Source Document and Place Documents corresponding to publisher and repository.
If there is a submitter (SUBM), it will be used as another repository place associated with this source.
The contributor is the Type Document for the current version of the gedcom importer.
- Input Channels
- HEAD Records
- Output Channels
- Source
-
- media.type = gedcom
-
Create Source Document S
- source.media = :gedcom
- contributor.date =
- source.medium :web
- HEAD.DEST => media.destination
- HEAD.DATE => source.date
- HEAD.SOUR => source.publisher
- HEAD.SOUR.VERS => publisher.version
- HEAD.SOUR.NAME => source.publisher (replace the HEAD.SOUR)
- HEAD.SOUR.CORP => publisher.name
- HEAD.SOUR.CORP.ADDR => publisher.address
- HEAD.SOUR.DATA.DATE => source.date
- HEAD.SOUR.DATA.DATE.TIME => apply to source.date
- HEAD.FILE => source.title
- HEAD.DATE => source.accessedDate
- HEAD.DATE.TIME => apply to source.accessedDate
- HEAD.GEDC
- HEAD.GEDC.VERS => media.version
- HEAD.GEDC.FORM => media.form
- HEAD.CHAR => media.charset
- HEAD.SUBM -
- Input Channels
- SUBM Records
- Source
Use for additional details on the source S.
- SUBM.NAME => source.author
- SUBM.ADDR => place.address
- SUBM.COMM => place.notes
- SUBM.PHONE => place.phone
- SUBM._EMAIL => place.email
- SUBM.DEST => media.destination
An INDI recored is mapped to a Persona Document which is then used as the basis of an Individual Document through a Conclusion Document with a rational of "member". All of the attributes will be add to both the Persona and Individual documents. All the events (birth, death, christening, etc) will be created as Event Documents, one for each event, the place and date are linked to the event. If there are sources mentioned in the INDI record, each source will become a new Persona Document with corresponding Conclusions to combine the personas to the individual.
-
Create Persona Document persona
- INDI.NAME =>
- persona.name
- persona.attribute.value (type=name)
- INDI.NAME.GIVN => persona.attribute.value (type=given-name)
- INDI.NAME.SURN => persona.attribute.value (type=surname)
- INDI.NAME.NSFX => persona.attribute.value (type=suffix)
- INDI.TITL => persona.attribute.value (type=title)
- INDI.SEX => persona.attribute.value (type=gender)
- INDI.BIRT - persona.event (type=birth)
- INDI.BIRT.DATE => persona.event.attribute.value (type=date)
- INDI.BIRT.PLAC => persona.event.attribute.value (type=place)
- INDI.BIRT.NOTE => persona.event.notes
- INDI.CHR -persona.event (type=christening)
- INDI.CHR.DATE => persona.event.attribute.value (type=date)
- INDI.CHR.PLAC => persona.event.attribute.value (type=place)
- INDI.CHR.NOTE => persona.event.notes
- INDI.DEAT - persona.event (type=death)
- INDI.DEAT.DATE => persona.event.attribute.value (type=date)
- INDI.DEAT.PLAC => persona.event.attribute.value (type=place)
- INDI.DEAT.NOTE => persona.event.notes
- INDI.BURI - persona.event (type=burial)
- INDI.BURI.DATE => persona.event.attribute.value (type=date)
- INDI.BURI.PLAC => persona.event.attribute.value (type=place)
- INDI.BURI.NOTE => persona.event.notes
- INDI.SOUR
- Duplicate the Persona Document and Event Documents using the new Source Document S2 The rest of source info will be added when the matching top-level tag SOUR tag
- INDI.NAME =>
For each FAM create a Group Document. If there is not a source, use the Persona Document for the INDI records and use the GEDCOM as the source.
If there is a source, create a new Persona Document for each person in the FAM record and create a Conclusion Document for each, combining them with the INDI Persona Document.
-
Create a Group Document
- FAM.HUSB => edge from group to persona with label parent and order=0
- FAM.WIFE => edge from group to persona with label parent and order=1
- FAM.CHIL => edge from group to persona with label child and order starting at 0 and incerementing for each instance.
- FAM.MARR => create group.event with type=marriage
- FAM.MARR.DATE => group.event.attribute.value (type=date)
- FAM.MARR.PLAC => group.event.attribute.value (type=date)
- FAM.DIV => create group.event with type=marriage
Use as the basis of a Source Document and any other related documents as needed.
-
Using the refenced S2
- SOUR.TITL => S2 :name
- SOUR.ABBR => S2 :abbreviation
- SOUR.AUTH => S2 :author
- SOUR.PUBL => S2 :publisher
- SOUR._PAREN => S2 :parentheses
- S :city
- S :accessedDate
Ignored




