Chain/network of marriages

Some days ago I found an old article from 1958 describing a chain/network of 40 marriages. I was interested in analysing this special and huge partner chain (Do you know a longer one?). Such marriages are ending by the end of one partner’s life or by divorce. Then the remaining partner marries again and so on …

I used Transkribus and ChatGPT to get a GEDCOM file out of that article. Finally, I could show the persons and families using the genealogical program webtrees (using the webtrees custom modules cce and LIN). I’m interested now in how Gramps could visualize such a chain of marriages. I use Gramps/GramspWeb/GrampsHub occasionally, but I’m not experienced.

My work is described in a GenWiki article in the German language: https://wiki.genealogy.net/Eine_Kette_von_40_Ehen

If you like to test the GEDCOM file, which resulted in my activity, send me a personal message because I cannot upload the file here.

5 Likes

One of the things that interested me about this was how the data could be flowed into Gramps.

Instead of using an AI to generate a GEDCOM (which is not terribly readable to most humans), I was wondering if the AI couldn’t format a table that could be pasted into the Text Import gramplet (with the Tab separated values). All I would have to do is feed the AI the column headers that Gramps necessitates.

Unfortunately, the Text Import doesn’t have an option to feed in the Divorce Events. Nor does it have the option to add Family Events other than Marriage.

I also liked the look of the hand-plotted Hieratskette (Hierarchy chain) diagram in the referenced GenWiki article and the WebTrees relationship plot in this thread.

I’d normally feed GEDCOM export from Gramps into yEd to get something like the 2nd one. But the Hieratskette? I don’t have a starting idea on doing a diagram like that.

This is an interesting approach. An alternative way would be generating Excel tables by ChatGPT and using GedTool to generate GEDCOM.

Me too! I compared that diagram with several timeline diagrams from different genealogical programs but did not find a similar one. The main feature is to show a set of persons and interlink them if they are married together. You can see each person’s birth, marriage and death events.

The first step is to identify the marriage chains (Heiratsketten) in a tree. This is done in webtrees using a custom module cce (clippings cart extended). It is done by an algorithm I developed. All single persons and all persons in a one-to-one marriage are deleted, so that you have in the end only INDI and FAM records of persons in a chain of marriages. No children, no parents.

The second step is the visualisation. This uses LINEAGE (you can find that package in GitHub). In webtrees there is a custom module (LIN) that uses that package. LIN uses the INDI and FAM records from step 1 to generate a dynamic diagram.

1 Like

Gramps already has CSV and JSON export as built-in plug-ins.

However, the Lineage tool expects a different set of headers and order to produce its family nodes animation.

It really wants a familyData.json file. There is an extra step with a convert.coffee Coffecup script to convert the familyData.csv to that format. It also seems to expect a ISO-8601 date representation.

Let’s explore what is needed to add another Gramps add-on to export the expected JSON layout. (The CSV should be easy enough to do with SuperTool. But an extra conversion step seems like excessive work.)

id name spouseId fatherId motherId gender alive? birthDate deathDate
2 Skywalker, Anakin 3 M N 1935-01-01T00:00:00.000Z 1983-01-01T00:00:00.000Z
3 Amidala, Padmé 2 F N 1925-01-01T00:00:00.000Z 1960-01-01T00:00:00.000Z
4 Skywalker, Luke 2 3 M Y 1960-01-01T00:00:00.000Z
{
    "nodes": [
            "id": 2,
            "name": "Skywalker, Anakin",
            "gender": "M",
            "lastName": "Skywalker",
            "birthDate": "1935-01-01T00:00:00.000Z",
            "deathDate": "1983-01-01T00:00:00.000Z"
        },
        {
            "id": 3,
            "name": "Amidala, Padmé",
            "gender": "F",
            "lastName": "Amidala",
            "birthDate": "1925-01-01T00:00:00.000Z",
            "deathDate": "1960-01-01T00:00:00.000Z"
        },        {
            "id": 4,
            "name": "Skywalker, Luke",
            "gender": "M",
            "lastName": "Skywalker",
            "birthDate": "1960-01-01T00:00:00.000Z",
            "deathDate": null
        },
    ]
    "links": [
        {
            "source": 2,
            "target": 3,
            "color": "#CC0",
            "relation": "spouse"
        },
        {
            "source": 3,
            "target": 2,
            "color": "#CC0",
            "relation": "spouse"
        },
        {
            "source": 4,
            "target": 3,
            "color": "#F39",
            "relation": "mother"
        },
        {
            "source": 4,
            "target": 2,
            "color": "#39F",
            "relation": "father"
        }        
}

The resulting GEDCOM file is now available for download: ehekette40.ged · main · Hermann Hartenthaler / GEDCOM Testdatei · GitLab

There are several discussions about that topic:

1 Like

This algorithm should be quite easy to implement using Gramps’s XML export (the .gramps file). I’ll give it a try in the next days. And it shouldn’t be any problem to create an appropriate JSON file to feed into LINEAGE. So this export/import pipe from Gramps to LINEAGE should be no problem at all.

The second step is the visualisation. This uses LINEAGE (you can find that package in GitHub ).

I have Python on my Win10 machine and it’s running (even if I never use it since I’m coding with R), but I did not understand how I can run this LINEAGE tool with my configuration. Can you help me out?

First you need to download the Linage package from github, save it to a folder, then add the Lineage datafile file to the same folder, open a cmd window in that folder, browse to it if you dont have the “start cmd here” or “Open in cmd” or “Open in Terminal” option in your right click meny in explorer.

Then run the python line mentioned under “Run locally” on the Lineage github page.

When that one is running, you should be able to just open a browser window and, in the address field, type “localhost:8000” and it should run…

I have not run it, so you need to read if there is anything more you need to do with Lineage.

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