Using Gramps as Task App

Hi,

in my journey to use Gramps for all of my genalogical research and use as few external tools as possible, I am missing more powerful task management capabilities. I am dreaming of having something like Nexcloud Deck and/or Tasks based on Gramps objects. This could be a superchaged To Do Gramplet or a page in Gramps Web.

To realize it though, the first step would be to define a data structure and a place to store it in Gramps. Basically, I see two options: tasks as sources or tasks as notes.

Example: task as source

  • Source
    • Title: task-title
    • Author: task-author
    • Change: task-lastchanged
    • Note: task-description
    • Tag: task-category
    • Attributes
      • Status: task-status
      • Assignee: task-assignee
      • Priority: task-priority
    • Repository Reference: a repository called “Tasks”

Example: task as note

  • Note
    • Text: YAML content, see below
    • Tag: task-category
    • Change: task-lastchanged

Note YAML content:

title: <task-title>
author: <task-author>
description: <task-description>
status: <task-status>
assignee: <task-assignee>
priority: <task-priority>

Any thoughts?

Why not store tasks as “Events” if you are going to create something new, then you have everything you need e.g., Start time, End time, place etc.

Give it a “Task” type or something similar and it could be a default filter in the Event View etc. that filter out those “tasks” and only show them in a “Research Task/Research Projects” list.

If my suggestion about “Main-/Sub-Events” and “Events on Places” was implemented you could create a complete Research project of research tasks with notes, media etc. and link them to a Gramps object.

Make a converter and copy function and you could convert the research project to an Event for the object you were researching…

The new Clooz version (version 4) has a really great Research Projects/Task manager where you can convert the research to “historical live data” when you are finished with the research for that object…

as of now I use Foam for VSC, Obsidian, Zotero and Aeon Timeline for all my research, inclusive making project plans/research plans.

I agree that a good project management feature for research and tasks would be great, but I would rather see “Main-/Sub-Events” and “Event on Places” be implemented first, since there is so many really good task-/project management systems out there already…


For Note based tasks, maybe implement something like project or similar into a Gramplet?
GitHub - ncornette/Python-Markdown-Editor: Standalone editor for your markdown files?

or maybe just embed VS Codium or VS Code into a Gramplet, for Gramps Web, you could then implement a version of VSC Web: Visual Studio Code for the Web ?

Yes, it might demand that the notes were file based, but Gramps already utilize file-based media, so that shouldn’t be the worst problem?

There is a lot of benefits using file-based notes, one of them is that you can choose your preferred editor when writing, and the files will always be updated regardless of which software your chose to edit the notes, AND you can sync your notes with a phone or tablet and edit them offline if needed.

The cons are as for media files, they are external from the database and the links can break if you move them outside of Gramps…
for me personally, having a full-scale markdown editor and pure text files that I can save in a folder hierarchy and open in other editors such as e.g., R-Studio, Foam for VSC etc., surpasses all the negative things, e.g., that Gramps can lose the links to the files if they are moved or deleted…

Being able to create full research projects in e.g. Obsidian with timelines and maps embedded or network graphs directly in the notes and in addition could add links to these notes in other programs, such as e.g. Aeon Timeline, Cytoscape, Gephi, Clooz 4, or open them in e.g. Open Office or Scrivener and having full integration with Zotero or Jabref (or any other reference tool that supports BibTeX or similar format), is more important than me having to check from time to time that the links to the files are not broken, I have to regardless of what to do the media files I link to when I choose to move my file storage to another storage device.

But, now I’m a big fan of interoperability and interchangeable file formats, regardless of whether it’s metadata, data or general/project related notes in plain text format.


I commented this as a feature for main Gramps, but there is a lot of markdown/plain text editors for the web also, that can be used in a similar way… and then the files can be synced with your “offline” file storage…

1 Like

Adding a YAML (not Markdown!) editor would indeed be easy (JS-YAML), but it would actually not be needed because the UI for task creation and editing would be independent of the underlying data structure. Editing raw YAML would only be necessary e.g. for a Gramps Desktop without an appropriate plugin installed, or if now such plugin exists, or in a hypothetical future where Gramps still exists but the plugin is no longer supported. This is also why I strongly tend to use the source version rather than the YAML-note version.

Concerning Events, I think they only have disadvantages compared to sources. For me, an event is something that happened in the life of a person while a source is something that contains some information relevant for research. A task is more like the latter. Also, the date field is not really useful as a task date. Tasks can have multiple dates (created, due, modified, …), but it doesn’t make sense to have calendars or spans. And hiding the task-like objects, as you suggest, would have to be done for every addon showing events - which affects much more addons than sources I would assume.

Please don’t use Notes.

The way Gramps uses positional indexes to style the text is not great. It makes editing very slow and the markdown very fragile. And merging is ugly too.

Maybe you could use a markdown style that is embedded instead?

Well, let us agree to disagree… I can’t see a task as a source even in my wildest imagination… but I can easily create a task to investigate a source, e.g., an action that I want to do sometime in a timeline…
But, since it is you and not me that are going to make this feature, I support the idea that you do it the way you feel fits for you… then others may or may not adapt to that workflow…

For me, a task is something you are going to do, a source is something that holds some kind of information and citation is the pointer to a detail in that information (wide or pinpointed).


I agree with @emyoulation, don’t use Notes as Notes are implemented in Gramps today… A minimum for a decent task management system needs both start- and end date, it needs a notification function or alarm for tasks soon to start or expire, it needs some kind of status or progress information, etc.,

Not that I want to convert you :wink: but to justify my thinking a little bit more:

In my opinion the tasks actually become genealogical sources when they are in progress or after they are done. This is because they record information about how the researcher planned obtaining, and eventually obtained a piece of information.

I am often thinking about how to pass my research on to the next generation. When I started doing genealogy and had to work with what I got on paper from the grandpa generation - and could no longer ask the researcher - I would have loved understanding better how he arrived at certain results. How great would it have been having all of his to do lists with progress reports, dates of completion etc.!

And that’s exactly what I think a Gramps-based task app should be one generation later: a log book of planned and executed research tasks. For me, that’s a source - or at least it will be.

1 Like

I like the ‘log’ aspect of showing how your research developed. But if this is to be a collaborative tool, these task lists will have to be interactive for shared management and discussion too. Do you have intentions towards that too?

Sure, on Gramps Web it’s automatically collaborative just like any other Gramps primary object.

1 Like

I understand how you think, but I still think that it is not the TASK that is the source, but all the notes and documents collected, and those are attachements and/or embeddings to the task itself.
The task is only the event on the timeline of your research and a collector/collection of links to notes and documents or other media you have collected and researched during your planned task/action.
The task can have multiple sub-tasks and each sub-task can have multiple documents (sources) attached to them… but the tasks are still work, or an action or an event on a timeline…

as an example, a wedding is an event, or a task that will be or has been done, it is not a source, but the marriage certificates, the images taken, the speeches etc. are sources of information for that event…

The note with how you found those documents will be metadata for your tasks, but not a source for the event itself (the wedding).

I agree that the information about how something was found will be of huge interest and can be important, same goes for any arguments for how someone come to a conclusion, but it is still metadata for a workflow/task/event…

This would be a good feature. I had something more elaborate in mind at one time but I have a tendancy to over complicate things.

Why can’t Task be a new top level object? It would work well with Researcher promoted to a new top level object. You could associate them with each other, as well as with the people/families/places researched and sources consulted.

How data gets exported and imported is a totally different concern than how it is modelled and represented internally in the application. I don’t think the flaws in Gedcom as a data transmission envelope should constrain doing what is right in the application itself. One can always try to export non-Gedcom supported data in notes or via other means in Gedcom exports, and try to look for them on imports as well.

No matter what decisions made one concern I have is new functionality being added to Gramps Web and not being added or backported to Gramps core. The search engine you added is a great feature, it would be nice to have on the desktop as well. This could turn into another great feature it would be nice to have on the desktop.

I totally agree this is something to be avoided, but I draw slightly different conclusions from it.

I’m usually not in favour of adding new top level objects, not because of Gedcom, but becase of how the Gramps library and database is set up. If your software has a relational database with object types corresponding to database tables with foreign keys for 1-to-many relationships and assocation tables for many to many, it is not difficult to add new object types. But that’s not how Gramps grew to be, and I think adding a new top level object would require a lot of manual (and possibly error prone) work; plus it would take long for all addons to support it.

So what I prefer is looking at the existing object types and how to build simple applications on top of them. I feel this is in the spirit of the original ToDo gramplet.

The Gramps Web Blog feature is another example: it builds a blogging application on nothing more than sources with tag “Blog” - to me this is totally consistent, because the blog articles are summaries of a genealogists research conclusions, and thus secondary sources. It is automatically compatible with Gramps (desktop) because it does not introduce new data structures.

Concerning tasks - note that this does not require any modification of Gramps Web API. It is pure UI - a different way of visualizing a list of sources with a specific tag. So, it’s also automatically compatible with desktop. It would be very easy to build a simple Gramplet showing it in a similar fashion.

So my take on the question of features missing in Gramps desktop is rather the other way around: I wouldn’t like to add features in Gramps Web which generate data that is not useful when switching back to Desktop only one day for whatever reason.

Yes, I see your point of view. Maybe that is a good way forward for a number of things.

Thinking about recording contributions in a shared tree no need for separate researchers either, they could just be people. If they contribute information about someone you could use an association with role set to contributor and the association citations and notes are available for storing further details.

To me that would make sense, yes.

Hi all, thanks for your feedback; the task feature is now released in Gramps Web v23.9 and I wrote a blog post about the motivation and implementation:

1 Like