While reviewing GEPS 11: Tagging, it seemed some design decisions might be worth discussing. Not changing… just discussing.
The performance of Tags (adding, removing and filtering) is currently pretty slow & cumbersome. And it is unfortunate that adding/removing a Tag involves a modification date change for such something genealogically irrelevant.
So, would it be more efficient to flip Tag from being a secondary object (being referenced by Parent view objects) to a Primary Object that points at other objects?
It seem like the tag operations would become MUCH faster since every tag maniplulation would open only a single table instead of every table.
There would be some other benefits. Each record would have its own timestamps. So you could does worklists by choosing to filter on View records that haven’t been modified Today() with MyNewTag records that HAVE been modified Today().
And Tags might be able to expand to have more CSS options. So rows of list view might inherent a cascade of CSS… allowing more than one tag to be indicated. (Tag1 has a foreground color, tag2 has a background color, tag3 has Bold styling, tag4 has italic styling, tag5 has font-variant: smallcaps.)
People on the forum are posting about using a much larger spectrum of Tags. (Often for permanent characteristics that seem better suited to Custom Attributes.) But they do so because tags can appear as indicators on charts & in Views. So the ability to hide most of the Tags when they are unimportant (or even distracting) could make managing Tag easier. (It seems like it should be relatively straightforward to convert between Tags & Custom Attributes too.
I don’t know if this will be helpful to you or others, but I share it just in case. I have started using a separate Note for each research question that I’m working on, and attaching the Note to the various objects involved in the research. I also assign one or more Tags to each such Note to indicate which of my overall research goals the question pertains to.
But my database is not large enough to have performance issues in the first place, and I generally don’t look at last change dates, so I can’t say whether this would work better for you. I guess I would suggest, as a thought experiment, imagine what you might do instead of using Tags if didn’t even exist, and whether Notes might be part of the solution. I don’t yet have a lot of experience with my approach but it’s helped me so far.
By the way, I notice in the data model that Tags and Notes both have change dates of their own, but I don’t think those are visible in the GUI?
Note modification dates are accessible I. The Note view and some Gramplets.
I think the Tag modification date is just when the name color or priority is changed. But that is not visible.
I think my biggest concern for Tag is for imported data when it is tagged or has the Import file added as the ‘Source’.
Those changes cause widespread loss of the modification date for each record imported. Which means that there will be one less reliable reference point for determining the freshest data when importing synchronization exports for the same source. [This is not a workflow that affects me. But it is frequently discussed in the forums.]