Using Gramps as Task App

Hi,

in my journey to use Gramps for all of my genealogical 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?

1 Like

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.,

2 Likes

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ā€¦

1 Like

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.

1 Like

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.

1 Like

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

I was just thinking about visting a remote ā€œRepositoryā€ and systematically pulling Sources that arenā€™t available at more locally accessible Repositories. (Particularly, those that do not have a ā€œCall Numberā€ in my Personal repository/fond.)

Another ā€˜Taskā€™ might be to have a ā€œshot listā€ for a Cemeteryā€¦ where there is no Gallery item for burial Events in that Cemetery Place.

Do you think Gramps Web will ever create task that can be fed to an app like Trelloā€¦ where there is an offline option for tasks in a ā€œboardā€? (Walking a cemetery often puts you in a cell reception dead zone.)

1 Like

I donā€™t know about Trello, but the way to do that (link Gramps Web with other task management apps) would be to expose the tasks via CalDAV. Could be a fun programming project for somebody who has time.

1 Like

Slept on the idea about the cemetery Task List. Seems like exporting a vCard list to import into a phoneā€™s Contact Manager might be a way to approach that photography task.

(I might look for a separate Contact Manager app from my phone list.)

Look up a contact, snap a photo for the contact, move on.

Many have preview thumbnails of the photo. So you can see which youā€™ve completed.

Then import back into Gramps & sync to Gramps Web.

I have similar requirements. For every new person in my database, I have a checklist of tasks. These may be to look for a baptism record in an archive or perhaps a gravestone in a cemetery. They donā€™t really need to be scheduled - just ticked off the list when done.

Iā€™ve been using Todo.txt format and Getting things done methodology in Gramps ToDo notes. It is easy to generate a task list that can be used directly in a variety of external applications. This could provide an alternative to vCard or CalDAV. I donā€™t know anything about Trello though.

1 Like

Our vCard import/export plugin is problematic anyway. It supports only the version 3.0 format and the 4.0 version was published August 2011. Oddly, my relatively recent smart phone only supports the 2.1 version.

Sample:

BEGIN:VCARD
VERSION:2.1
N:McCullough;Brian;;;
FN:Brian McCullough
TEL;CELL:3525551212
ADR;HOME:;;Main St.;Austin;Texas;78728;US
ORG:self
X-ANDROID-CUSTOM:vnd.android.cursor.item/relation;Brother McCullough;2;;;;;;;;;;;;;
X-ANDROID-CUSTOM:vnd.android.cursor.item/relation;Sister McCullough;13;;;;;;;;;;;;;
END:VCARD

It would be nice to be able to have

  • Lists and
  • Checkboxes

in Gramps StyledText :slight_smile: