How to make visual research of a person/people with with their associations?

As I know Gramps doesnt have built in functionality to make visual research of a person/people with with their associations. I mean graph drawing. Maybe anybody has another solutions or tools how is it possible visualise. First of all I would like see such relatrions between people which are under research: parents, childs, families and also additionally witnesses, godchilds, godparents. I have also another associations but they are much more rare.

I found a nice article about the subject in the newsletter of CompGen.de:

It’s in German, but I trust that you get the picture. :slight_smile:

1 Like

I have two solutions for you for this problem.

  • You can use a Network Graph software like Gephi, yEd or Cytoscape (or others of your liking), or a manual diagram software like Draw.io.
    In the two first you add all objects as Nodes with the attributes/properties you like, you can add as many as you want to in the table view of any of the programs.
  • Then you add every relation you find as an edge and label that edge with the type, you can have as many properties/attributes to the edge as you like to, it is also possible to use a column for notes.

  • In Draw.io or Open Office Draw, you need to create any bok and line yourself… and place it on your “canvas”.
    I personally think this is to much work, to little on the research, to much on the "drawing.

Use Obsidian or another Note Management tool, similar to it, the important thing is that it supports making internal links in text.

I like Obsidian because it supports wikilinks with aliases. And it has a graph that can show all the links/connections/relations in your notes.

Simple example:

You have a few persons, you make a “person”-folder, as sub folders you create a folder for each person you know of, and any new ones you need to create notes for as your research develop.
Also create a folder for your sources, one for places, etc. (you can mirror the structure of Gramps object if you like to).
Then create a basic “template” for people with names etc., as you go you just make a keyword pair in the note for the person you research, e.g., "Witnesses: “[Peter Pan|Pan, Peter]”, “[Johannes Freckle, Freckle, Johannes]”.
etc. etc.

In your sources you can just transcribe or copy the text to a markdown note, then start to add wikilinks to the important text.

The good thing is that it is all in plain text, so you can either copy the text to notes in Gramps later if needed, or you can add them as media-links with “a little planning”.

In addition, regarding Obsidian, it is a lot of useful addons to that software, so you can add timelines, maps, diagrams etc. to your notes.

If you use YAML headers, you can style your graph view with colors for all of the nodes, you can style them based on tags etc. too.


Even though it seems difficult, it is really easy to use Obsidian to more than a note taking and writing tool.
There is also an addon for labeling links/relations.

Another great thing about Obsidian is the community, it is a lot of really knowledgeable people using it, and there is a ton and more of Youtube videos for how to using it…
There are even a few videos on how to do genealogy research with it on Youtube.


Just don’t get too fixated on the fact that Obsidian is described as a writer’s tool and a note-taking tool.
It can be used as so much more than that…

There is a lot of other similar software out there that is FOSS (Free Open Source Software), but Obsidian is one of the easiest to learn and if you find it useful, you can just add som addons to do more.

1 Like

Is it possible make export of my tree with associations into Obsidian to reach the goal? Manual adding to Obsidian, Draw.io or anywhere else is a very big and extra job.

There is a script that can transcode a CSV to Markdown on github.

It is also possible to create a script that transcribe the gramps xml or the sqlite export to markdown including a folder structure you want, but it is a job…

Personally, I did most of that the first time, through an import to Excel Power Query, edited the tables as I wanted them and then saved those tables as csv.

Copilot or gpt-4 will be able to help you create a script that can convert a gramps xml to markdown really easy, both in Python or e.g., PowerShell.

But there is no easy “one click” solution today, sorry…


I would just have started with the ones I researched, writing in one by one as I go, because most likely you don’t need the whole database to do the research for those individuals.

After you have done your research for a person or family or “branch” of people, you can register the conclusions in Gramps as normal, and link to the notes, that way, you will always be able to do more research in the same way later for those people.


There is also a lot of gedcom to html converters out there, but I have never tried any of them because I don’t use gedcom anymore… you will find most of the good ones on github.

2 Likes

It Looks great! One only small problem - how convert Gramps DB into Gephi? ))

Obsidian is also interesting, but not so good, it does not have vector edges.

1 Like

Looks like I can use SuperTool “Download CSV” feature for this purpose.

Because it is two totally different type of tools…

You can either export a csv or make a transcribing script from xml to a network graph format, or you could install yEd and import a gedcom directly to eYd, then if you like Gephi better, just save the yEd graph to a network graph file format and open/import it to Gephi.

Gephi needs two CSV tables, one for Nodes (objects) and one for the edges, so you can in practice create all your relations in Excel and then import them to Gephi… just a tip.


Today there are no simple “One Click”-button to export data from Gramps to any Open-Data Open-Source interchangeable network graph format or any other interchangeable formats that can be used outside of the genealogy niche…

I would be very happy if more people actually started to ask for that feature…

I have made my own workflow for this, to be able to exporting to both Markdown and a network graph format.


There is two other possibilities to, and that is to create a DOT (Graphviz) report and open the dot file in Cytoscape or Tulip, with Tulip, you can also use Python, so if you i.e. have a Python script that read and convert a gedcom or a gramps xml file, you can use it in Tulip… maybe with some minor tweaking… not sure.

It might be that you first need to do a change in the dot file using either notepad++ or the built in editor in Graphviz,to change the network graph algoritm used in the report export, I had to do that to import to Cytoscape a few years back when I tested it.

1 Like

I have written experimental GraphML and GEXF exporters. They export the whole tree which is probably not what you want.

What exactly do you want to see? I have used Gephi, but Tulip is also an option.

2 Likes

I love obsidian as well and a lot of the suggestions you have gotten here are really good. I think I can give you a one click solution as well. Give me about an hour and I’ll modify an old script and get back to you on that.

4 Likes

I want draw graph with nodes and directed edges.
Nodes - there are people with fullname labels
directed edges - there are associations and relations (children, parents, spouces, witnesses, godparents,…) and also with labels. Labels - there are names of associations.

This is the most simple scenario. Maybe also birth dates near the fullnames…

I created special person filter in Gramps for this purpose. It filters a group of related people. But what the next… Im trying use Supertool to log nodes at first:

I9461;Сергієнко Микитович, Данило
I9462;Сергієнко Максимович, Павло
I9463;Сергієнко Василівна, Анастасія
I9464;Сергієнко Павлівна, Євдокія
I9465;Шкарбань Володимирівна, Олена
I9466;Сергієнко Григорович, Іван
I9467;Сергієнко Луківна, Дарія
I9468;Сергієнко Іванович, Ніканор
I9469;Касьяненко Михайлович, Федот
I9470;Краснопольська Федорівна Касьяненко, Тетяна
I9471;Кисіль Кирилович, Григорій
I9472;Копиченко Тимофійович, Омелян
I9473;Качан Кононович, Тимофій
I9474;Цицюрина Петрівна Качан, Зиновія
I9475;Іващенко Матвійович, Павло
I9476;Сергієнко Амвросійович, Максим

Make the same for edges looks like is much more difficult

After looking into it a bit I can do this. I’ll have a script for you that will create a dot file within possibly a few hours. It will be a bit more complicated than I initially thought but I think I can figure it out.

My (very) old script was this: Gedcom-Mapper/gedcom_mapper.py at master · rentheroot/Gedcom-Mapper · GitHub it was built to work with Legacy Family Tree which has a custom tag _SHAR which is used to share events across people.

Gramps doesn’t have an equivalent within its gedcom export probably due to wanting to maintain full compatibility which is understandable.

I looked at the different export types and JSON seems to provide data in the easiest format for this task. I should also be able to include edge descriptors.

1 Like

My code exports all Gramps objects which is probably more then you want.

1 Like

Of course we testers can export a trimmed dataset and import the subset to a new Tree to use your export. Which would give a good idea if a filtered export is worth pursuing.

This ‘pruning for export’ comes up often enough that an “export to temporary tree” feature might be reasonable. Where, instead of using the Database path, the export goes to a temporary database in the OS temp directory and switches that to the Loaded tree.

If people want to prune that tree and export to another format, this would streamline the workflow. (They can always backup if they want to save the tree.) Normally, this temp tree would just evaporate when the OS determines it needs to recover drive space.

1 Like

I no need export all Gramps objects, this is not a goal. But all objects - it is also OK if graph visualization will not glitch. I tried import 3000 nodes to Gephi (with labels) and it really glitches. So, I thing filtered group of people would be better.

Thank you a lot. Ideally I imagine it like this if possible
Untitled Diagram

1 Like

No problem, I had been meaning to make something like this for using with gramps since I switched from legacy and I use cluster research / associations to break brick walls.

3 Likes

FYI: Gramps also has own tool which makes almost the same what I need. This is “Relationship graph”. But unfortunately it doesnt draw arrows for Associations.
MAybe it could be the easiest solution?

But any solution is OK for me: Supertool script, Relationship graph, some external converters or something else.

For LibreOffice / Draw there is an extension ged2dot to load GEDCOM File to visualize. Here is the Page for it at LibreOffice site:

And here the github page where you can get the newest version to download and install:

4 Likes

I created 21,000 nodes and 25,000 edges from our example database. It was very slow!

Do you have a preference for GEXF or GraphML?