Difference between revisions of "GEPS 021: Additional Name Fields"

From Gramps
Jump to: navigation, search
Line 26: Line 26:
 
# José de Mascarenhas da Silva e Lencastre  
 
# José de Mascarenhas da Silva e Lencastre  
  
=== What is going the problem?===
+
=== What is the problem?===
 
====Let's discuss: García Álvarez de Toledo y Carrillo de Toledo====
 
====Let's discuss: García Álvarez de Toledo y Carrillo de Toledo====
  
Line 96: Line 96:
 
surname field: de Mascarenhas da Silva e Lencastre
 
surname field: de Mascarenhas da Silva e Lencastre
  
=GEDCOM export==
+
= XML support=
 +
== Gramps 3.2 xml 1.3.0 ==
 +
Name is now defined as:
  
# GEDCOM has support for is multiple surnames.  They are separated by commas in the value of the SURN tag.  No such provision is there for the NAME tag, so leaving the commas there is arguably not permitted by GEDCOM. Hence, SURN should contain both surnames, seperated by a comma.
+
  <define name="person-content">
 +
    ...
 +
    <zeroOrMore><element name="name">
 +
        <ref name="name-content"/>
 +
    </element></zeroOrMore>
 +
    <optional><element name="nick"><text/></element></optional>
 +
    ...
 +
    </define>
 +
 
 +
  <define name="name-content">
 +
    <optional><attribute name="alt"><choice>
 +
        <value>0</value>
 +
        <value>1</value>
 +
    </choice></attribute></optional>
 +
    <optional><attribute name="priv">
 +
        <ref name="priv-content"/>
 +
    </attribute></optional>
 +
    <optional><attribute name="type"><choice>
 +
        <value>Also Known As</value>
 +
        <value>Birth Name</value>
 +
        <value>Married Name</value>
 +
        <value>Other Name</value>
 +
    </choice></attribute></optional>
 +
    <optional><attribute name="sort"><text/></attribute></optional>
 +
    <optional><attribute name="display"><text/></attribute></optional>
 +
    <optional><element name="first"><text/></element></optional>
 +
    <optional><element name="call"><text/></element></optional>
 +
    <optional><element name="last">
 +
        <text/>
 +
        <optional><attribute name="prefix"><text/></attribute></optional>
 +
        <optional><attribute name="group"><text/></attribute></optional>
 +
    </element></optional>
 +
    <optional><element name="suffix"><text/></element></optional>
 +
    <optional><element name="patronymic"><text/></element></optional>
 +
    <optional><element name="title"><text/></element></optional>
 +
    <optional><ref name="date-content"/></optional>
 +
    <zeroOrMore><element name="noteref">
 +
        <ref name="noteref-content"/>
 +
    </element></zeroOrMore>
 +
    <zeroOrMore><element name="sourceref">
 +
        <ref name="sourceref-content"/>
 +
    </element></zeroOrMore>
 +
  </define>
 +
 
 +
In above ''alt'' indicates an alternative name
 +
 
 +
== Gramps 3.3 xml 1.4.0 ==
 +
The new xml would be
 +
 
 +
  <define name="person-content">
 +
    ...
 +
    <zeroOrMore><element name="name">
 +
        <ref name="name-content"/>
 +
    </element></zeroOrMore>
 +
    <optional><element name="nick"><text/></element></optional>
 +
    <optional><element name="familynick"><text/></element></optional>
 +
    ...
 +
    </define>
 +
 
 +
  <define name="name-content">
 +
    <optional><attribute name="alt"><choice>
 +
        <value>0</value>
 +
        <value>1</value>
 +
    </choice></attribute></optional>
 +
    <optional><attribute name="priv">
 +
        <ref name="priv-content"/>
 +
    </attribute></optional>
 +
    <optional><attribute name="type"><choice>
 +
        <value>Also Known As</value>
 +
        <value>Birth Name</value>
 +
        <value>Married Name</value>
 +
        <value>Other Name</value>
 +
    </choice></attribute></optional>
 +
    <optional><attribute name="sort"><text/></attribute></optional>
 +
    <optional><attribute name="display"><text/></attribute></optional>
 +
    <optional><element name="first"><text/></element></optional>
 +
    <optional><element name="call"><text/></element></optional>
 +
    <zeroOrMore><element name="surname">
 +
        <ref name="surname-content"/>
 +
    </element></zeroOrMore>
 +
    <optional><element name="title"><text/></element></optional>
 +
    <optional><ref name="date-content"/></optional>
 +
    <zeroOrMore><element name="noteref">
 +
        <ref name="noteref-content"/>
 +
    </element></zeroOrMore>
 +
    <zeroOrMore><element name="sourceref">
 +
        <ref name="sourceref-content"/>
 +
    </element></zeroOrMore>
 +
    <optional><attribute name="group"><text/></attribute></optional>
 +
  </define>
 +
 
 +
  <define name="surname-content">
 +
    <element name="surname">
 +
        <text/>
 +
        <optional><attribute name="prefix"><text/></attribute></optional>
 +
        <optional><element name="suffix"><text/></element></optional>
 +
        <optional><attribute name="primary"><choice>
 +
        <value>0</value>
 +
        <value>1</value>
 +
        </choice></attribute></optional>
 +
        <optional><attribute name="patronymic"><choice>
 +
        <value>0</value>
 +
        <value>1</value>
 +
        </choice></attribute></optional>
 +
        <optional><attribute name="matronymic"><choice>
 +
        <value>0</value>
 +
        <value>1</value>
 +
        </choice></attribute></optional>
 +
        <optional><element name="connector"><text/></element></optional>
 +
    </element>
 +
  </define>
 +
 
 +
=GEDCOM export=
 +
 
 +
== GEDCOM definition ==
 +
 
 +
  n  NAME <NAME_PERSONAL>  {1:1}
 +
    +1 NPFX <NAME_PIECE_PREFIX>  {0:1}
 +
    +1 GIVN <NAME_PIECE_GIVEN>  {0:1}
 +
    +1 NICK <NAME_PIECE_NICKNAME>  {0:1}
 +
    +1 SPFX <NAME_PIECE_SURNAME_PREFIX>  {0:1}
 +
    +1 SURN <NAME_PIECE_SURNAME>  {0:1}
 +
    +1 NSFX <NAME_PIECE_SUFFIX>  {0:1}
 +
    +1 <<SOURCE_CITATION>>  {0:M}
 +
      +2 <<NOTE_STRUCTURE>>  {0:M}
 +
      +2 <<MULTIMEDIA_LINK>>  {0:M}
 +
    +1 <<NOTE_STRUCTURE>>  {0:M}
 +
 
 +
  NAME_PERSONAL: = {Size=1:120}
 +
  [
 +
  <TEXT> |
 +
  /<TEXT>/ |
 +
  <TEXT> /<TEXT>/ |
 +
  /<TEXT>/ <TEXT> |
 +
  <TEXT> /<TEXT>/ <TEXT>
 +
  ]
 +
 
 +
NAME_PIECE_GIVEN: = {Size=1:120}
 +
[ <NAME_PIECE> | <NAME_PIECE_GIVEN>, <NAME_PIECE> ]
 +
Given name or earned name. Different given names are separated by a comma.
 +
 
 +
NAME_PIECE_NICKNAME: = {Size=1:30}
 +
[ <NAME_PIECE> | <NAME_PIECE_NICKNAME>, <NAME_PIECE> ]
 +
A descriptive or familiar name used in connection with one's proper name.
 +
 
 +
NAME_PIECE_PREFIX: = {Size=1:30}
 +
[ <NAME_PIECE> | <NAME_PIECE_PREFIX>, <NAME_PIECE> ]
 +
Non indexing name piece that appears preceding the given name and surname parts.
 +
Different name prefix parts  are separated by a comma. For example :
 +
Lt. Cmndr. Joseph /Allen/ jr.
 +
In this example Lt. Cmndr. is considered as the name prefix portion.
 +
 
 +
NAME_PIECE_SUFFIX: = {Size=1:30}
 +
[ <NAME_PIECE> | <NAME_PIECE_SUFFIX>, <NAME_PIECE> ]
 +
Non-indexing name piece that appears after the given name and surname parts.
 +
Different name suffix parts are  separated by a comma.
 +
For example :
 +
Lt. Cmndr. Joseph /Allen/ jr.
 +
In this example jr. is considered as the name suffix portion.
 +
 
 +
NAME_PIECE_SURNAME: = {Size=1:120}
 +
[ <NAME_PIECE> | <NAME_PIECE_SURNAME>, <NAME_PIECE> ]
 +
Surname or family name. Different surnames are separated by a comma.
 +
 
 +
NAME_PIECE_SURNAME_PREFIX: = {Size=1:30}
 +
[ <NAME_PIECE> | <NAME_PIECE_SURNAME_PREFIX>, <NAME_PIECE> ]
 +
Surname prefix or article used in a family name. Different surname articles are separated by a comma,
 +
for  example in the name "de la Cruz", this value would be "de, la".
 +
 
 +
Examples of NAME_PERSONAL:
 +
William Lee (given name only or surname not known)
 +
/Parry/ (surname only)
 +
William Lee /Parry/
 +
William Lee /Mac Parry/ (both parts (Mac and Parry) are surname parts
 +
William /Lee/ Parry (surname imbedded in the name string)
 +
William Lee /Pa.../
 +
 
 +
# GEDCOM has support for multiple surnames.  They are separated by commas in the value of the SURN tag.  No such provision is there for the NAME tag, so leaving the commas there is arguably not permitted by GEDCOM. Hence, SURN should contain all surnames, seperated by a comma.
 
# PhpGedview has an extension to the name field that otherwise is not supported, should we follow it?:  
 
# PhpGedview has an extension to the name field that otherwise is not supported, should we follow it?:  
 
:1 NAME Cándida /Sánchez de la Torre/
 
:1 NAME Cándida /Sánchez de la Torre/
 
:2 GIVN Cándida
 
:2 GIVN Cándida
 
:2 SURN Sánchez, Torre
 
:2 SURN Sánchez, Torre
 +
 +
==Suggested workflow for export from Gramps==
 +
# all surnames are given to the SURN field divided by comma's
 +
# name field corresponds to the '''Formatted Name''' as seen in Gramps, with slashes (/) around the surnames
 +
# title is exported to NPFX
 +
# primary surname prefix and suffix go to SPFX, NSFX.
 +
 +
As a consequence, a lot of information is lost on Gedcom export (callname, which is the primary name, connector), but all of the surname _is_ present in the NAME field.
 +
 +
==Suggested workflow for import from Gramps==
 +
# all surnames in SURN (divided by comma's) are one entry in the surname list of Gramps
 +
# NAME field is parsed identifying the surname piece. All before a name goes to prefix of the surname behind it, what comes at the end goes to suffix of the last surname. If SPFX, NSFX is given, the surname that corresponds with that in name is set primary name, and prefix/suffix updated as needed
 +
# if primary surname cannot be identified, the first one is set primary.
  
 
= References =
 
= References =

Revision as of 09:52, 8 September 2010

This Gramps Enhancement Proposal is to add new fields to the name object so as to better store a person's name for several cultures. Also GUI refinements are proposed

New Nick Name Fields

Nick Name

A field for a nick name is added. Many people like to store nick name as part of the name, while now it can only be stored as an attribute. Many people use callname, but that is wrong use of that field. The Nick Name is for a nick name of a single person

Family Nick Name

A field for a nick name used to indicate the family

Minor User interface changes

Relabel Given Name

Given name is relabeled in the UI as Given name(s)

Validate callname

Callname becomes a validated field (like eg date, longitude). That is, it becomes red if the callname is not present in the given name(s)

Surname redesign

Introduction

In several cultures people have two or more surnames. Examples:

  1. Cándida Sánchez de la Torre: here Sánchez and Torre are the surnames.
  2. Santiago Ramón y Cajal: here Ramón and Cajal are the surnams
  3. Portugal/Brazil: 4 surnames is common: Given Name | Mother Surname(s)| Father Surname(s)
  4. Joaquim de Lima e Silva
  5. García Álvarez de Toledo y Carrillo de Toledo [1]
  6. José de Mascarenhas da Silva e Lencastre

What is the problem?

Let's discuss: García Álvarez de Toledo y Carrillo de Toledo

  • How should it be parsed? How many surnames are in it? Well, García is a given name that is now seen only as a surname, but things were different in the past. It seems that "Carrillo de Toledo" would be a second surname, but there are other problems.
  • Is "Álvarez" a real patronymic? This means García is the child of some Álvaro (possibly "de Toledo", but no guarantee). His children will probably use the "Garcés" (or even "García") as patronymic and, possibly, "de Toledo" as surname. This scheme was valid until ca. 1200. In this case, Álvarez should go into the patronymic field or, as is common, as part of the given names. "de" would go into the surname prefix field.
  • Is "Álvarez" a false patronymic? In this case, his father was not Álvaro, but he got his name (given plus patronymic) from some ancestor or relative of notice named "García Álvarez" (not necessarily "de Toledo"). In this case, the best coding is probably the same as for real patronymics except that context does not help a lot. This is after ca. 1200.
  • Is it a non fixed part of the surname? It is a dark period where patronymics start being inherited but they have not solidified. In this case, García's father was "Álvarez de Toledo" but some of Garc'ia's siblings would be just "de Toledo", as would some of his children. Some of them might even have a different patronymic. In this case, IMHO, I think it is best to put all of "Álvarez de" as surname prefix. Otherwise it would sort García under "A" and only an amateur would want that.
  • Is it a solidified part of the surname? In this case "Álvarez de Toledo" is uniformly inherited as a block and exceptions are rare. All of it should go into the surname (and sort under "A").

Let's discuss: Maria Venancia Dávalos de Rivera Mendoza Mate de Luna y Córdova

in reading page 64 of the 4th volume of Solares Montañeses by Mateo Escagedo Salmón, I find that José Gregorio Ceballos el Caballero (that's just one surname, BTW) married "Maria Venancia Dávalos de Rivera Mendoza Mate de Luna y Córdova". From the context I make the educated guess that those are four sunames: Dávalos de Rivera, Mendoza, Mate de Luna and Córdova. It would be nice to record that, especially since there is no explanation in the source of that "Mate de Luna", that flags the possibility that the source is wrong or an interesting line of research.

Proposed Solution: surname list

The proposal is to introduce:

  1. In the UI and not editable: Formatted Name. This is a field indicating the full name as given upto now. So it has the same function as the title bar now in the person editor. However, the format is fixed and not changeable: given names - surnames. This field is to give a quick overview of the total name
  2. In the UI and not editable: Sort Name. This is the field indicating on what the name is normally sorted in the grouped view and some reports. This field shows or the primary surname, or the group name if that is set. This field is to give a quick overview of how the name will be sorted.
  3. Surname list: the surname consist of a list of surnames. The user sets prefix, suffix, type, connector as per his desires. One surname must be set as the primary surname.
  4. Quick data entry. We do not want to slow down entry of names for people with simple names. Therefore, the user interface shows all options of a single surname, and the user can add extra surnames via an add button.
  5. Patronymic is deprecated. It becomes a type of surname (a boolean value). At the same time, Matronymic [2] is added.

Details

Example of the surname list:

Formatted Name: José de Mascarenhas da Silva e Lencastre

Sort: Mascarenhas

order prefix surname suffix primary? connector to next? patronymic? matronymic?
1 de Mascarenhas Y N N
2 da Silva N e N N
3 Lencastre N N N

surname field: de Mascarenhas da Silva e Lencastre

XML support

Gramps 3.2 xml 1.3.0

Name is now defined as:

 <define name="person-content">
   ...
   <zeroOrMore><element name="name">
       <ref name="name-content"/>
   </element></zeroOrMore>
   <optional><element name="nick"><text/></element></optional>
   ...
   </define>
 <define name="name-content">
   <optional><attribute name="alt"><choice>
       <value>0</value>
       <value>1</value>
   </choice></attribute></optional>
   <optional><attribute name="priv">
       <ref name="priv-content"/>
   </attribute></optional>
   <optional><attribute name="type"><choice>
       <value>Also Known As</value>
       <value>Birth Name</value>
       <value>Married Name</value>
       <value>Other Name</value>
   </choice></attribute></optional>
   <optional><attribute name="sort"><text/></attribute></optional>
   <optional><attribute name="display"><text/></attribute></optional>
   <optional><element name="first"><text/></element></optional>
   <optional><element name="call"><text/></element></optional>
   <optional><element name="last">
       <text/>
       <optional><attribute name="prefix"><text/></attribute></optional>
       <optional><attribute name="group"><text/></attribute></optional>
   </element></optional>
   <optional><element name="suffix"><text/></element></optional>
   <optional><element name="patronymic"><text/></element></optional>
   <optional><element name="title"><text/></element></optional>
   <optional><ref name="date-content"/></optional>
   <zeroOrMore><element name="noteref">
       <ref name="noteref-content"/>
   </element></zeroOrMore>
   <zeroOrMore><element name="sourceref">
       <ref name="sourceref-content"/>
   </element></zeroOrMore>
 </define>

In above alt indicates an alternative name

Gramps 3.3 xml 1.4.0

The new xml would be

 <define name="person-content">
   ...
   <zeroOrMore><element name="name">
       <ref name="name-content"/>
   </element></zeroOrMore>
   <optional><element name="nick"><text/></element></optional>
   <optional><element name="familynick"><text/></element></optional>
   ...
   </define>
 <define name="name-content">
   <optional><attribute name="alt"><choice>
       <value>0</value>
       <value>1</value>
   </choice></attribute></optional>
   <optional><attribute name="priv">
       <ref name="priv-content"/>
   </attribute></optional>
   <optional><attribute name="type"><choice>
       <value>Also Known As</value>
       <value>Birth Name</value>
       <value>Married Name</value>
       <value>Other Name</value>
   </choice></attribute></optional>
   <optional><attribute name="sort"><text/></attribute></optional>
   <optional><attribute name="display"><text/></attribute></optional>
   <optional><element name="first"><text/></element></optional>
   <optional><element name="call"><text/></element></optional>
   <zeroOrMore><element name="surname">
       <ref name="surname-content"/>
   </element></zeroOrMore>
   <optional><element name="title"><text/></element></optional>
   <optional><ref name="date-content"/></optional>
   <zeroOrMore><element name="noteref">
       <ref name="noteref-content"/>
   </element></zeroOrMore>
   <zeroOrMore><element name="sourceref">
       <ref name="sourceref-content"/>
   </element></zeroOrMore>
   <optional><attribute name="group"><text/></attribute></optional>
 </define>
 <define name="surname-content">
   <element name="surname">
       <text/>
       <optional><attribute name="prefix"><text/></attribute></optional>
       <optional><element name="suffix"><text/></element></optional>
       <optional><attribute name="primary"><choice>
       <value>0</value>
       <value>1</value>
       </choice></attribute></optional>
       <optional><attribute name="patronymic"><choice>
       <value>0</value>
       <value>1</value>
       </choice></attribute></optional>
       <optional><attribute name="matronymic"><choice>
       <value>0</value>
       <value>1</value>
       </choice></attribute></optional>
       <optional><element name="connector"><text/></element></optional>
   </element>
 </define>

GEDCOM export

GEDCOM definition

  n  NAME <NAME_PERSONAL>  {1:1}
   +1 NPFX <NAME_PIECE_PREFIX>  {0:1}
   +1 GIVN <NAME_PIECE_GIVEN>  {0:1}
   +1 NICK <NAME_PIECE_NICKNAME>  {0:1}
   +1 SPFX <NAME_PIECE_SURNAME_PREFIX>  {0:1}
   +1 SURN <NAME_PIECE_SURNAME>  {0:1}
   +1 NSFX <NAME_PIECE_SUFFIX>  {0:1}
   +1 <<SOURCE_CITATION>>  {0:M}
     +2 <<NOTE_STRUCTURE>>  {0:M}
     +2 <<MULTIMEDIA_LINK>>  {0:M}
   +1 <<NOTE_STRUCTURE>>  {0:M}
  NAME_PERSONAL: = {Size=1:120}
  [
  <TEXT> |
  /<TEXT>/ |
  <TEXT> /<TEXT>/ |
  /<TEXT>/ <TEXT> |
  <TEXT> /<TEXT>/ <TEXT>
  ] 
NAME_PIECE_GIVEN: = {Size=1:120}
[ <NAME_PIECE> | <NAME_PIECE_GIVEN>, <NAME_PIECE> ]
Given name or earned name. Different given names are separated by a comma.
NAME_PIECE_NICKNAME: = {Size=1:30}
[ <NAME_PIECE> | <NAME_PIECE_NICKNAME>, <NAME_PIECE> ]
A descriptive or familiar name used in connection with one's proper name.
NAME_PIECE_PREFIX: = {Size=1:30}
[ <NAME_PIECE> | <NAME_PIECE_PREFIX>, <NAME_PIECE> ]
Non indexing name piece that appears preceding the given name and surname parts. 
Different name prefix parts  are separated by a comma. For example : 
Lt. Cmndr. Joseph /Allen/ jr.
In this example Lt. Cmndr. is considered as the name prefix portion.
NAME_PIECE_SUFFIX: = {Size=1:30}
[ <NAME_PIECE> | <NAME_PIECE_SUFFIX>, <NAME_PIECE> ]
Non-indexing name piece that appears after the given name and surname parts. 
Different name suffix parts are  separated by a comma.
For example :
Lt. Cmndr. Joseph /Allen/ jr.
In this example jr. is considered as the name suffix portion.
NAME_PIECE_SURNAME: = {Size=1:120}
[ <NAME_PIECE> | <NAME_PIECE_SURNAME>, <NAME_PIECE> ]
Surname or family name. Different surnames are separated by a comma.
NAME_PIECE_SURNAME_PREFIX: = {Size=1:30}
[ <NAME_PIECE> | <NAME_PIECE_SURNAME_PREFIX>, <NAME_PIECE> ]
Surname prefix or article used in a family name. Different surname articles are separated by a comma, 
for  example in the name "de la Cruz", this value would be "de, la". 

Examples of NAME_PERSONAL: William Lee (given name only or surname not known) /Parry/ (surname only) William Lee /Parry/ William Lee /Mac Parry/ (both parts (Mac and Parry) are surname parts William /Lee/ Parry (surname imbedded in the name string) William Lee /Pa.../

  1. GEDCOM has support for multiple surnames. They are separated by commas in the value of the SURN tag. No such provision is there for the NAME tag, so leaving the commas there is arguably not permitted by GEDCOM. Hence, SURN should contain all surnames, seperated by a comma.
  2. PhpGedview has an extension to the name field that otherwise is not supported, should we follow it?:
1 NAME Cándida /Sánchez de la Torre/
2 GIVN Cándida
2 SURN Sánchez, Torre

Suggested workflow for export from Gramps

  1. all surnames are given to the SURN field divided by comma's
  2. name field corresponds to the Formatted Name as seen in Gramps, with slashes (/) around the surnames
  3. title is exported to NPFX
  4. primary surname prefix and suffix go to SPFX, NSFX.

As a consequence, a lot of information is lost on Gedcom export (callname, which is the primary name, connector), but all of the surname _is_ present in the NAME field.

Suggested workflow for import from Gramps

  1. all surnames in SURN (divided by comma's) are one entry in the surname list of Gramps
  2. NAME field is parsed identifying the surname piece. All before a name goes to prefix of the surname behind it, what comes at the end goes to suffix of the last surname. If SPFX, NSFX is given, the surname that corresponds with that in name is set primary name, and prefix/suffix updated as needed
  3. if primary surname cannot be identified, the first one is set primary.

References