Plans to Update Forms Addon Over the 2024 Summer

I agree that the row orientation for individuals is better and more suited to data extraction organised by individual.

Where a document describes a familial relationship, of say son, daug, wife, wife’s father, mother, e.g.in a census, will, manorial copyhold transfer, the form should capture this information and create the appropriate individuals and relationships automatically, if not already present. Nephew, aunt/uncle, grand-children might pose a bigger challenge, but in principle there are limited possibilities. In some cases the only evidence for a familial relationship may be from one of the above documents.

1 Like

I have stopped using the the Add button for people in Forms to often
they were visitors, boarders, servant on the census and came up as
disconnected individuals and I still suffer from numerous of these who
are on my to do list for clearing out after inspection
I only use a Form when I am convinced all relevant people are in my tree
if by name only at that point.
phil

1 Like

This is an interesting workflow I hadn’t considered people might have.
Would it be helpful for you to have an option to add a line without connecting it to an individual in your tree? I personally always include everyone from a household in my tree simply because I like to have community connections represented, however I can see why some people might not want that.

Basically what I’m asking is would you like the option to add a row to your form without attaching said row to an individual? That way it is recorded correctly but you don’t need an extra person to your tree.

I actually think this would be extremely helpful. I will try to include this feature.

So if I am understanding this correctly, do you want a entry box added where you can enter a description for the form event? So for example: you have a form for a probate, you would like to be able to change the event description directly within the form to say, for example, something like: [Person’s name]'s final will and testament.

I am hesitant to include a feature like this simply because of the potential issues and confusion it could bring about. My concern is that oftentimes records could include the wrong relationship or incorrectly decide that the person does not already exist in the tree when in fact they do.

There could be a way for me to incorporate this however, I am not certain yet of whether I will or won’t. I could add a “extract relationships” button or similar. This button would not be included in the forms gramplet unless the user has made it visible via the form gramplet’s global settings window I have created.

The function would assume that the relationship does not already exist and parse the entry box that has been assigned to the “role” portion of the shared event. It would compare that role to available roles and ask the user if the one it identified matches. the user could then click the button in the menu to decide whether or not to add this new person with the selected relationship to the family.

I am still very hesitant to add this feature however, and if I do it will be further along in the development process.

A few years ago, there was a request to use a zero-to-three “Degrees of Separation” filter for this purpose of winnowing the Object Selector … rather than the more narrow-minded “Generations” approach. (@Mattkmmr created an add-on filter rules for Degrees of Separation from a “specific person” and the “Home Person” that could be used for reference. See FilterRules addon source)

1 Like

The same is actual for me also. I am going move already existing people from Clipboard to a Form.

1 Like

The semester is officially over and I have passed all my classes! I have a research fellowship over the summer, as well as a personal research project involving Assistive and Augmentative Communication devices (accessibility is something I’m pretty passionate about as I myself am physically disabled- I have ideas for future accessibility improvements for gramps but thats another project :slight_smile: ), but other than that I am free for the summer to really develop out the gramplet extension. Expect large progress updates over the coming weeks! And of course continue sending your suggestions, concerns, opinions, etc.!

5 Likes

This is the concept of a persona or evidence person. You know that the person exists in a source, but you haven’t decided which conclusion person it refers to.
It would be useful to record the same information for a persona, even if you aren’t going to add them to your tree yet.

If we kept the data structures for a persona the same as those for a conclusion person, then it would be easy to connect the two together. For example, if a conclusion person was connected to a persona then we could “add” the event references for the persona to those of the conclusion person.

The actual mechanism would need to be decided, and we would probably need to make a few changes to core Gramps to make it work.

1 Like

This could get complicated if a user removes a person from a form and replaces them with someone else. Do you then delete family objects and recreate them?

Another option to start with would be just a “check relationships” option which could check that the relationships were consistent with the data on the form. You could then progress to “extract relationships” at a later date.

Another issue with relationships is that we deal with different languages and cultures. For example, in Turkish there is a words for uncle and aunt which indicate the mother’s or father’s side. In Chinese things get even more complicated.

I see, this makes sense. I will hold off on implementation of personas until I am further along with the gramplet, or potentially until after the gramplet has been completed. Then we can make decisions around implementation as a larger gramps component.

This is one of the complications I was thinking could potentially arise. I think implementing such a feature would overall require enough testing / debugging that if it were to be implemented it would probably be best added as its own update.

I was also thinking about how spelling changing over time could complicate this. I imagine some people keep true to source transcriptions complete with spelling differences / errors. That could again introduce new issues. And then there is the problem I have come across in some censuses where, for instance, “mother” is used instead of “mother-in-law” with the “mother” of the wife of the head of household being placed beneath the wife and the “mother” of the head of household being placed beneath the head.

This is nearly exactly what I described earlier in the comment I wrote about a “research log”/“Research Project”…

Just add any “Object of Interest” as a not connected Gramps object, but add a flag to it so that any cleanup tool does not delete it.

It would be great to be able to add those types of objects via a form as well as a seperate “research object”.

I like the ideas of the persona/ disconnected research object. My thought currently is that maybe I can add an infant version of this concept to the forms addon as part of the current update:

I am thinking maybe I can add the option to add in a line that is not connected to a person or a gramps object of any sort. Basically just preservation of the information as a pure transcription for now. However, allowing people to add this line now would mean that when personas are eventually introduced, they can be directly attached to that part of the form addon. All the pure transcription lines people created would then become personas automatically once the larger personas updates were implemented.

1 Like

Yes, an “infant” object will be the first step to something more, those can easily be “converted” to a research project object if that goes any longer than talks…

Maybe you could add TAGS to the columns or it could be possible to just use a custom attribute e.g., “Research Object” if needed…
Just throwing out some “longshot in the dark” ideas…

2 Likes

A quick progress update: I have now gotten a button to grab the settings from the user’s entry. Eventually this will evolve into a save button for template files.

The code is a little messy and I am not a huge fan of the way I implemented it. I am thinking once I get further along in the development I will come back to it and do some rewrites.

I think this type of template builder with save / load functionality could be useful in other areas of gramps so I am going to try and make it as modular and understandable as possible. Maybe with a dedicated template builder class with methods that allow for easy building of this type of gui element.

There is also an issue with accessibility for screen readers that I need to sort out.


4 Likes

Writing a prototype or proof of concept is often helpful. Don’t worry about messy code at this stage.

Try to think about how you are going to handle all the different requirements. You can also start to get a feel for the user interface.

2 Likes

I have reached another decision and am looking for opinions once again!

My form settings allows multiple configurations to be created by the user for each form. They will be able to select which configuration to apply to individual forms or set a default configuration if they want the configuration to be automatically applied.

The decision I am making is how to save these “Templates”. I have two options that I have thought of.

The current version uses a directory-file structure:

Pros: Easy to edit configuration files outside of the main gramps interface if you prefer text editors.
Cons: Lots of folders and files.

The alternate solution I have thought of is a database of configurations. Now, a database would remove the large number of directories and files but it would be more difficult for people to edit directly.

I am not sure which version would load faster / be more efficient.

I am also open to hearing other solutions if anyone has any ideas.

I’d suggest using the experimental CardView configuration template creation and saving code by @cdhorn as example code.

1 Like

Also of interest:

SuperTool allows scripts to be saved to and loaded from Notes of “SuperTool Script” type. This makes sharing easy because the Notes can be attached to a person, exported as a 1‐person tree, shared and imported. (However, Notes in Gramps are a bit fragile due to its format. The markdown is a position list appended at the end of the text. Slow and easy to break.)

SuperTool also has that Help system that can be customized with a JSON file.

1 Like