"Workflows" in Gramps

There have many discussions about how the flexibility of Gramps allows (and, indeed, requires) users to figure out what works best for them, and how new users often struggle because of that. There have also been many feature requests for UI changes to help both new and experienced users to work more efficiently.

What I would like to discuss here is not yet specific enough to be a feature request, but may eventually become one. (I’m thinking long-term, like 6.0, not 5.3!)

Suppose Gramps had a concept of a “workflow” which consisted of a set of related UI actions that could be ordered and parameterized in various ways (sort of like a flow chart, though it need not be presented that way).

There could be a number of sample workflows included in Gramps, which new users might find helpful, and which experienced users could modify (or create new ones).

The workflows would leverage existing UI elements (add a new person, copy them to the clipboard, etc.) along with some “smarts” (add a new event for the person that I just copied to the clipboard, etc.).

I guess the idea is somewhat analogous to a “macro” in a program like Excel, or a “wizard” in many other applications", but I don’t want to limit anyone’s thinking in those terms.

And I wouldn’t expect this to help with trickier workflows such as merging databases.

To facilitate further discussion, if any is merited, it might be helpful to reflect on some of your own current practices, and whether and how they might fit such a paradigm, or better ways of generalizing it.


I had done some cogitating on this and wondered if such workflows couldn’t be designed with PDF forms? And then integrated using Python PDF data mining libraries?

What you’d end up with is the next generation of the Data Entry or Forms Gramplets. But as a View instead a Gramplet — with the potential of having the workflows self documented on each form. (Like medical forms that have instruction boxes printed on them about how to fill them in.) A basic Gramplet for a PDF form might let a user build a metadata crosswalk that associates the PDF form fieldname and associates them with Gramps data model objects… or with a parser that decomposes an aggregate string into Gramps data model objects.

Our current form editor is in a primitive state. It is functional but has no aesthetic designing capabilities. But there are excellent PDF form building tools that let anyone design forms. And they are several generation ahead of us. Why try to re-invent the wheel?

Imagine that you downloaded the following editable form to your phone and filled it in digitally while at a reunion or library. Then you bring it home and importing the PDF let’s you commit the data with a single-click. Or the view compares & contrasts the data side-by-side using the same form but filled in from the Active Person. Then you choose to accept or decline field or sections.

Alternatively, you decide the form is a faster way to input directly. So, instead of endless popup dialogs (add Person, 3 add Events Birth/Death/Burial per person with a select Place for each event, repeated for 8 children, 2 spouse & 4 grandparents.), you just transcribe it all in 1 form an hit ‘Commit’.

1 Like

About my own workflows practices:

Macro Workflow:
As I said sometimes ago, I try to interact between Notion to manage my genealogical projects and actions, my “physical” researches, Gramps to register researches results, and Gramps again to export genealogical results.

Gramps Workflows:
For my Gramps workflows, I try to describe them on a specific page on my Notion (It need to be continued):

  • their prerequisites:
    • what are my conventions
    • what are my tags and when to use them
    • what are my filters (and now Supertool scripts or filters) and when to use them
  • what are my “manual worflows” using these Gramps usages I’ve described before

To go further it could be cool to have some Gramps inside workflows wich can be defined:

  • like defining some sequences:
    • WF1 - preparation sequence:
      • create a citation of a source and let the user manually enter information in it
        • open a new citation
        • open 3 new attributes for that citation
        • open media selecting tool to associate an image to the citation
        • eventualy create a source for that citation (so I need two wfs: WF 1A - select an existing source and WF 1B create a new one)
      • run a supertool script to dupplicate the citation three times
      • add these 4 citations to the clipboard
    • maybe manually selecting some places to add them to the clipboard (?)
    • WF2 - some “run” sequence (a basic possible one - i.e if source was a birth certificate):
      • create a new family
      • create a child person
      • create a birth event
        • assign it one of the citations from the clipboard
        • assign it the place from the clipboard
        • more difficult, assign the birth date to the event (some variables could be needed to these workflows to work automatically: birth date, source citation date, people’s names…)
      • store the event into the clipboard
      • close the child
      • create parents, witnesses…
      • etc…
  • and maybe then a WF3 to run WF1 then WF2 sequentially with a break between them to do manual stuff

About how:

  1. I’ve seen it exist an open Workflow Description Language. Some links about it:
  1. I remember a discussion (1 or 2 years ago) on the Gramps mailing list about improvement of the form gramplet to allow it to manage things like that but I don’t know what happen after. It could be a starting point more feasible??
1 Like

Interesting … an “Import from Family Group Sheet” utility would be handy, especially if had OCR to read scans of Aunt Martha’s forms that she filled in on on her typewriter or by hand. I wonder if someone has already created an app that converts family group sheets to mini-GEDCOM files. It would still be painful to merge them, I suppose.

I am on windows and have used Gramps for ten years.

I would like to use the keyboard more (both because I find it quicker
and to reduce the risk of rsi). However, as the design of Gramps
encourages, I use the clipboard a lot. The clipboard and keyboard are
not integrated.

Currently, the keyboard bindings tend to be high-level, such as “Export
family tree”, which is used infrequently, and not low level, such as
“Add last used citation” to active event, which I do frequently.

In addition, those keyboard bindings that are low-level, the Editor Tab
bindings, only work if the lower half of the editor window is in focus.
For example, if you open an existing person, [insert] does nothing, you
need either to click in the bottom half of the window or hit [tab] 12
times or [down-arrow] 4 times then hit [insert]. This makes the
lower-level bindings much less useful.

To mitigate these shortcomings, I have an AutoHotKey script with the
following actions:

   Simulates clicking “OK” on any window

   Change role to Primary and close an event window

   Create a new birth event and put focus on date field

   Similarly for Christening, Occupation and Census.

The following keyboard bindings would help my workflow:

   Change focus to clipboard

   Change focus to active window.

If the focus on an an event window:

   Add the most recently used citation to the active event.

   Add the most recently used place to the active event.

   Add the most recently used source to the active event.

   Add the most recently used citation to the clipboard.

   Add the most recently used place to the clipboard.

   Add the most recently used source to the clipboard.

If the focus in on the clipboard:

   Add the item to the event window that is open (if any)

David Lynch

1 Like

I have Excel worksheets with templates for some of my most used sources, where I only have open cells in correct TAB order for the input data…

When I save that workbook, I copy all the data to a common table for all of the workbooks of that type formatted to be imported with Gramps CSV, but since the CSV import overwrite objects in the database it it can’t be used, so I export to Markdown documents with YAML and Wikilinks, then I use the Juggl plugin for Obsidian to save a Cytoscape JSON file of the Graph View of the vault, and import it to Cytoscape…

I have 12 “templates” in Excel and 8 of them also work as PDF Forms… but not connected to a database at this point, can’t find a way to connect them to mongodb…