Supply id via csv import

Hello,
I need to import CSVs and assign the uuid generated by a different software used for mass data collection.
This seems like a simple issue, but I cannot find any relevant information online.

Example of the ID format I need to use : uuid:be4212ad-e2a4-4742-ace2-d98a8d580714

Is this problem resolved by going: Preferences/ID formats, and manually changing the expected format there?
What is the column name I should supply for gramps to correctly read the supplied ID?

My workflow before importing to gramps:
ODK-X : for census data collection, produces csv or sqlite database,
R Studio : for tidying and manipulating data gathered, export as Gramps tailored CSV

(Gramps 5.1.3, OSX)

I wonder if the Isotammi “Super Tool” might not be the appropriate add-on for this?

Kari sent me some of its example scripts for experimentation & building non-developer documentation just today.

My objective was similar… I wanted to export a ‘local Places’ dictionary that could be used by a variety people & tools. (I’m sharing work with the county historical society.) So that People & Events would have a common frame of reference when Researchers bring their data together. The Isotammi group was working on another aspect of the merging complexity: recognizing & merging duplicate people & families.

Perhaps you could define a Custom Attribute for storing those unique IDs? You could use the Super Tool to generate expanded CSVs that include the Attribute.

I’ve tried a couple approaches for storing IDs. For WikiTree, FamilySearch, lineage societies, etc.; I created each organization as a Source. The identifier is a citation where the the Page is that organization’s internal ID & the citation is a freshness date: when their data was polled.

For other broader IDs (ISBN, LCCN, Social Security Number, etc.), I create a named Attribute and the ‘Value’ is set to the ID.

Note that each Gramps object has an Internal Handle. It is NOT normally accessible via the user interface.

Thank you, Super Tool looks incredible for all sorts of things.
I was hoping there would be an easier solution for what seemed to be a simple issue!
Also thank you for the explanations on your process, I have found them very useful.

I though I should add more info on what my requirements are:
I want to use the IDs supplied by the imported CSVs as if they are gramps IDs.
This is so I can pull in the family and marriage edgelists which use these same IDs as pointers to the person nodes.
I am trialing this to see if it feasible to use for a study involving between 400-500 individuals, so automation of the process is paramount.

Looking at on the bugtracker I can only see one feature request from 2016 for uuid’s( Universally unique identifier’s) to be used instead of gramps hashes.

0009691: Create UUIDs unstead of hashes for handles - Gramps - Bugtracker – Free Genealogy Software

The gramps developer doc’s seem indicate Gramps to already use pythons uuid module.
https://gramps-project.org/api_5_1_x/_modules/gramps/gen/utils/id.html

On the Gramps wiki the “GEPS_009:_Import_Export_Merge” one of the sections section discusses it:

  • [ UID, GUID and _UID, what is needed in Gramps?]
1 Like

When UIDs are imported via GEDCOM (_UID tag), they are currently converted to attributes. The attribute is identified with the “_UID” type, and the string is in the value.

Accordingly, I would put the UID field in attributes, as this will be a bit better supported in the future.

We have a PR in progress to give a bit better support to UIDs Better support for GEDCOM _UID by prculley · Pull Request #1005 · gramps-project/gramps · GitHub.

Now as to CSV; our current CSV importer doesn’t have any way to do what you want. It would not be too difficult to hack up the importer to add a UID column to Persons and Families. But you would need a good general understanding of programming, or Python programming in particular to get this done.

You can use the ID field, if you don’t care about future compatibility with our UID plans. In this case don’t worry about the Preferences, just put the UID you want into the right column of the CSV grampsID, and it will get used. It might not display very well, the field is generally expected to be less than 10 characters when doing reports etc.

Export a small CSV to see what the expected format looks like, and/or read Gramps 5.1 Wiki Manual - Manage Family Trees: CSV Import and Export - Gramps. Experiment a few times with small tests to make sure you are getting what you want before spending a lot of time with the main data.

2 Likes

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.