Difference between revisions of "Lossless GEDCOM Export"

From Gramps
Jump to: navigation, search
(Event)
m (no real progress)
 
(17 intermediate revisions by 3 users not shown)
Line 1: Line 1:
= Introduction =
+
{{man warn|This is an abandoned work in progress. }}
  
This page has been created to explore the custom tags necessary to create a lossless GEDCOM export. It is a work in progress.
+
Exploring which custom tags are necessary to create a lossless GEDCOM export from Gramps.
 +
= GEDCOM =
  
= Person =
+
Gramps has many information fields that don't have a standard GEDCOM tag associated with them.  The GEDCOM specification allows anyone to create new tags for this type of information.  These custom tags begin with an underscore to indicate that they are not part of the standard core tag set.  This page explores what custom tags need to be created by Gramps to support Lossless GEDCOM exports.
 +
 
 +
== Person ==
 
Add:
 
Add:
  
+1 <<EVENT_LINK>>                            {0:M}
+
  +1 <<EVENT_LINK>>                            {0:M}
+1 _PRIV Y                                    {0:1}
+
  +1 _PRIV Y                                    {0:1}
  
 
   PERSONAL_NAME_PIECES:=
 
   PERSONAL_NAME_PIECES:=
Line 31: Line 34:
  
 
   CHILD_TO_FAMILY_LINK:=
 
   CHILD_TO_FAMILY_LINK:=
   n FAMC <XREF:FAM> {1:1}
+
   n FAMC <XREF:FAM>                             {1:1}
     +1 PEDI <PEDIGREE_LINKAGE_TYPE> {0:1}
+
     +1 PEDI <PEDIGREE_LINKAGE_TYPE>             {0:1}
     +1 <<NOTE_STRUCTURE>> {0:M}
+
     +1 <<NOTE_STRUCTURE>>                       {0:M}
     +1 _FREL (0:1} *
+
     +1 _FREL                                   {0:1} *
     +1 _MREL (0:1} *
+
     +1 _MREL                                   {0:1} *
     +1 _PRIV Y {0:1} *
+
     +1 _PRIV Y                                 {0:1} *
     +1 <<SOURCE_CITATION>> {0:M} *
+
     +1 <<SOURCE_CITATION>>                     {0:M} *
  
= Event =
+
== Event ==
  
 
   ATTRIBUTE_STRUCTURE:=
 
   ATTRIBUTE_STRUCTURE:=
 
   n _ATTR <ATTRIBUTE_VALUE>                    {1:1}
 
   n _ATTR <ATTRIBUTE_VALUE>                    {1:1}
 
     +1 TYPE <ATTRIBUTE_VALUE>                  {0:1}
 
     +1 TYPE <ATTRIBUTE_VALUE>                  {0:1}
     +1 <<NOTE_STRUCTURE>> {0:M}
+
     +1 <<NOTE_STRUCTURE>>                       {0:M}
     +1 <<SOURCE_CITATION>> {0:M}
+
     +1 <<SOURCE_CITATION>>                     {0:M}
 +
    +1 _PRIV Y                                  {0:1}
  
 
   EVENT_RECORD:=
 
   EVENT_RECORD:=
   n <XREF:_EVNT> _EVNT {1:1}
+
   n <XREF:_EVNT> _EVNT                         {1:1}
     +1 <<EVENT_DETAIL>> {0:1}
+
     +1 <<EVENT_DETAIL>>                         {0:1}
     +1 <<ATTRIBUTE_STRUCTURE>> {0:M}
+
     +1 <<ATTRIBUTE_STRUCTURE>>                 {0:M}
     +1 <<CHANGE_DATE>> {0:1}
+
     +1 <<CHANGE_DATE>>                         {0:1}
     +1 _PRIV Y {0:1}
+
     +1 _PRIV Y                                 {0:1}
  
 
   EVENT_LINK:=
 
   EVENT_LINK:=
   n _EVNT <XREF:_EVNT> {1:1}
+
   n _EVNT <XREF:_EVNT>                         {1:1}
     +1 ROLE <ROLE_IN_EVENT> {1:1}
+
     +1 ROLE <ROLE_IN_EVENT>                     {1:1}
     +1 <<ATTRIBUTE_STRUCTURE>> {0:M}
+
     +1 <<ATTRIBUTE_STRUCTURE>>                 {0:M}
     +1 <<NOTE_STRUCTURE>> {0:M}
+
     +1 <<NOTE_STRUCTURE>>                       {0:M}
     +1 _PRIV Y {0:1}
+
     +1 _PRIV Y                                 {0:1}
  
= Family =
+
== Family ==
  
 
Add:
 
Add:
Line 69: Line 73:
 
   +1 _PRIV Y                                    {0:1}
 
   +1 _PRIV Y                                    {0:1}
  
= Place =
+
== Place ==
  
 
Use the _LOC structure defined in the GEDCOM-L specification.
 
Use the _LOC structure defined in the GEDCOM-L specification.
  
= Media =
+
== Media ==
  
 
   MULTIMEDIA_RECORD:=
 
   MULTIMEDIA_RECORD:=
Line 98: Line 102:
 
     +1 _PRIV Y                                  {0:1} *
 
     +1 _PRIV Y                                  {0:1} *
  
= Note =
+
== Note ==
  
 
   NOTE_RECORD:=
 
   NOTE_RECORD:=
Line 109: Line 113:
 
     +1 _TYPE <NOTE_TYPE>                        {0:1} *
 
     +1 _TYPE <NOTE_TYPE>                        {0:1} *
 
     +1 _STYLE <STYLE_TYPE>                      {0:M} *
 
     +1 _STYLE <STYLE_TYPE>                      {0:M} *
       +2 _VALUE <STYLE_TYPE>                   {0:1} *
+
       +2 _VALUE <STYLE_VALUE>                   {0:1} *
 
       +2 _RANGE <STYLE_RANGE>                  {1:1} *
 
       +2 _RANGE <STYLE_RANGE>                  {1:1} *
 
     +1 _PREFORMAT Y                            {0:1} *
 
     +1 _PREFORMAT Y                            {0:1} *
 +
    +1 _PRIV Y                                  {0:1} *
 +
 +
=See also=
 +
* [[Addon:GEDCOM_Extensions#Collection_of_GEDCOM_extension_tags_used_in_different_programs|Collection of GEDCOM extension tags used in different programs]]
 +
* [[Gramps and GEDCOM]]
 +
 +
[[Category:GEPS|G]]
 +
[[Category:Developers/Design]]

Latest revision as of 05:37, 15 October 2022

Gnome-important.png
This is an abandoned work in progress.

Exploring which custom tags are necessary to create a lossless GEDCOM export from Gramps.

GEDCOM

Gramps has many information fields that don't have a standard GEDCOM tag associated with them. The GEDCOM specification allows anyone to create new tags for this type of information. These custom tags begin with an underscore to indicate that they are not part of the standard core tag set. This page explores what custom tags need to be created by Gramps to support Lossless GEDCOM exports.

Person

Add:

 +1 <<EVENT_LINK>>                             {0:M}
 +1 _PRIV Y                                    {0:1}
 PERSONAL_NAME_PIECES:=
 n NPFX <NAME_PIECE_PREFIX>                    {0:1}
 n GIVN <NAME_PIECE_GIVEN>                     {0:1}
 n NICK <NAME_PIECE_NICKNAME>                  {0:1}
 n SPFX <NAME_PIECE_SURNAME_PREFIX>            {0:1}
 n SURN <NAME_PIECE_SURNAME>                   {0:M} *
   +1 _TYPE <NAME_PIECE_ORIGIN_TYPE>           {0:1} *
   +1 _SPFX <NAME_PIECE_SURNAME_PREFIX>        {0:1} *
   +1 _SSFX <NAME_PIECE_SURNAME_SUFFIX>        {0:1} *
   +1 _SCON <NAME_PIECE_SURNAME_CONNECTOR>     {0:1} *
 n NSFX <NAME_PIECE_SUFFIX>                    {0:1}
 n _RUFNAME                                    {0:1} *
 n _FAMNICK                                    {0:1} *
 n _GROUP_AS                                   {0:1} *
 n _SORT_AS                                    {0:1} *
 n _DISPLAY_AS                                 {0:1} *
 n _DATE                                       {0:1} *
 n _PRIV Y                                     {0:1} *
 n <<NOTE_STRUCTURE>>                          {0:M}
 n <<SOURCE_CITATION>>                         {0:M}
 CHILD_TO_FAMILY_LINK:=
 n FAMC <XREF:FAM>                             {1:1}
   +1 PEDI <PEDIGREE_LINKAGE_TYPE>             {0:1}
   +1 <<NOTE_STRUCTURE>>                       {0:M}
   +1 _FREL                                    {0:1} *
   +1 _MREL                                    {0:1} *
   +1 _PRIV Y                                  {0:1} *
   +1 <<SOURCE_CITATION>>                      {0:M} *

Event

 ATTRIBUTE_STRUCTURE:=
 n _ATTR <ATTRIBUTE_VALUE>                     {1:1}
   +1 TYPE <ATTRIBUTE_VALUE>                   {0:1}
   +1 <<NOTE_STRUCTURE>>                       {0:M}
   +1 <<SOURCE_CITATION>>                      {0:M}
   +1 _PRIV Y                                  {0:1}
 EVENT_RECORD:=
 n <XREF:_EVNT> _EVNT                          {1:1}
   +1 <<EVENT_DETAIL>>                         {0:1}
   +1 <<ATTRIBUTE_STRUCTURE>>                  {0:M}
   +1 <<CHANGE_DATE>>                          {0:1}
   +1 _PRIV Y                                  {0:1}
 EVENT_LINK:=
 n _EVNT <XREF:_EVNT>                          {1:1}
   +1 ROLE <ROLE_IN_EVENT>                     {1:1}
   +1 <<ATTRIBUTE_STRUCTURE>>                  {0:M}
   +1 <<NOTE_STRUCTURE>>                       {0:M}
   +1 _PRIV Y                                  {0:1}

Family

Add:

 +1 <<EVENT_LINK>>                             {0:M}
 +1 <<ATTRIBUTE_STRUCTURE>>                    {0:M}
 +1 _PRIV Y                                    {0:1}

Place

Use the _LOC structure defined in the GEDCOM-L specification.

Media

 MULTIMEDIA_RECORD:=
 n <XREF:OBJE> OBJE                            {1:1}
   +1 FILE <MULTIMEDIA_FILE_REFERENCE>         {1:1}
     +2 FORM <MULTIMEDIA_FORMAT>               {1:1}
       +3 TYPE <SOURCE_MEDIA_TYPE>             {0:1}
     +2 TITL <DESCRIPTIVE_TITLE>               {0:1}
   +1 REFN <USER_REFERENCE_NUMBER>             {0:M}
     +2 TYPE <USER_REFERENCE_TYPE>             {0:1}
   +1 RIN <AUTOMATED_RECORD_ID>                {0:1}
   +1 <<NOTE_STRUCTURE>>                       {0:M}
   +1 <<SOURCE_CITATION>>                      {0:M}
   +1 <<CHANGE_DATE>>                          {0:1}
   +1 <<ATTRIBUTE_STRUCTURE>>                  {0:M} *
   +1 _PRIV Y                                  {0:1} *
 MULTIMEDIA_LINK:=
 n OBJE <XREF:OBJE>                            {1:1}
   +1 _RECT x1 y1 x2 y2                        {0:1} *
   +1 <<ATTRIBUTE_STRUCTURE>>                  {0:M} *
   +1 <<NOTE_STRUCTURE>>                       {0:M} *
   +1 <<SOURCE_CITATION>>                      {0:M} *
   +1 _PRIV Y                                  {0:1} *

Note

 NOTE_RECORD:=
 n <XREF:NOTE> NOTE <USER_TEXT>                {1:1}
   +1 REFN <USER_REFERENCE_NUMBER>             {0:M}
     +2 TYPE <USER_REFERENCE_TYPE>             {0:1}
   +1 RIN <AUTOMATED_RECORD_ID>                {0:1}
   +1 <<SOURCE_CITATION>>                      {0:M}
   +1 <<CHANGE_DATE>>                          {0:1}
   +1 _TYPE <NOTE_TYPE>                        {0:1} *
   +1 _STYLE <STYLE_TYPE>                      {0:M} *
     +2 _VALUE <STYLE_VALUE>                   {0:1} *
     +2 _RANGE <STYLE_RANGE>                   {1:1} *
   +1 _PREFORMAT Y                             {0:1} *
   +1 _PRIV Y                                  {0:1} *

See also