Gramps resists being a Photo detective

I was wistfully excited to receive a pair of old photos yesterday. An aunt just passed and her daughter shared a couple of treasured images.

But we were having to guess at the children and the year of one photo. So I wondered if Gramps could be used to eliminate possibilities.

It helped… but not willingly nor in a forthright manner. Gramps seemed to fight using its data in a forensic manner. It was really only useful in validating my theories… not in positing possibilities.

Here's the experiment with the "knowns" and "unknowns"

The photo had 7 people: 4 daughters or daughters-in-law of my paternal grandfather and 3 of his grandchildren. 3 adults were were known, a decoration set the photo around Christmastime at a particular home, and the grandchildren included a female of 5-8 years & 2 babies (one about 2 months & the other about 9 months). The remaining adult could only be 2 persons.

Photo Tagging seemed the obvious tool

Since I’m using the Windows version, the Photo Tagging gramplet doesn’t have the face recognition feature active. So the process started with Adding the photo (and setting a between Date span) as a Media object and manually marking face with rectangular marquees.

Photo Tagging was painful

Three of the 7 rectangles could immediately be associated with the 3 known persons.

Setting the associations this was a familiar task, nearly identical to sharing a known person in the Tree into another family. It used the Select Person dialog. This was the first problem. The selection dialog for an existing person in a 45,000 person hierarchical tree is agonizingly unresponsive.

There is no Search for the People Selection dialog. So it is necessary to either scroll or use the find-as-you-type. And the second feature, ‘Find-as-you-type’, has a timeout that tends to reset itself before finding anything in this large a set of records. So it averaged 3 times re-typing the same search term before Gramps actually scrolled to the record. Scrolling wasn’t any picnic either. The scrollbar graduation for a Surname cloud of 18,680 unique groups is still fairly uncontrollable.

Then a discovery… Although not in the documentation, the contributor of the tagging Gramplet fortunately included drag’n’drop support. ( big “thank you” is owed to Artem Glebov!) It is a bit of an odd implementation. You have to select the Preview row before dragging a Person to it. Even if you drop directly on another row, it changes the selected row. And if you mistakenly drag to the wrong thumbnailed row, you cannot drag to the right person and then fix the other. Because doing so would create a duplicate and the Gramplet demands that the wrong Marquee be removed. You cannot just make it undefined again. So lots of awkward caveats.

So, after detaching the Gramplet to allow flipping between Views with different researching options, I could go to the People view, filter to my paternal grandfather’s grandchildren, offspring and spouses of offspring. Then do drag’n’drop experiments to see who fit the photo’s “unidentified.”

Another useful feature was the experimental Profile Relationship view mode (by @cdhorn ) with a the Photo Tag gramplet to do sanity checks as to whether the the identifications are fit. Christopher is going to add a ‘age at the time’ calculations. That will be helpful since the Photo Tag only calculates how old the Persons was at time of death or are today. This new feature will help when trying to reverse-engineer a date for the Media Object.


All in all, I wasn’t able to use Gramps efficiently as a forensic tool. Biography data was too well was too segmented into information silos. Since this was a very simple case, it was a good test run.

The process of adding identifications was pretty painful. It seems like after doing one identification, the rest of the people are likely to be close associates. In my test case, the associations were well defined. But I still had to start winnowing down from the Whole Tree every time I wanted to define a new Rectangular Marquee. Even just trying drag’n’drop from immediate family using the Relationships view modes kept changing the Active Person focus. I had to fallback to the People view and apply a filter.

People naturally have a close group of contacts: those with an “Association” and immediate family: offspring, parents, siblings, niblings, in-laws, grandparents, grandchildren. And that is going to be the common selections when adding hyperlinks to to Notes too. Because the filter for these people is slow due to complexity (and kept re-filtering when data changed or was sorted) it was more efficient to copy them to the Clipboard.

(Since you cannot drag’n’drop an extended selection from a View directly to a Collections Clipboard, you can clear the Gramps main clipboard for temporary use by offloading its contents to a Collections Clipboard. The drag’n’drop of extended selections will work between clipboards.)

So I’m looking for suggestions on a better workflow. When I actually NEED to use Gramps forensically it would be nice to be able to do so.


I wish I could help but I had a similar experience. I have my g-grandfather’s photo album and other collections of photos. One in particular seems like I ought to be able to decipher it, but alas. The photo is a young man in Canadian Army Expedition uniform (WWI) and the notation on the back refers to “Aunt Lou*”. I know who Aunt Lou was and I have a pretty good idea of the age of the man in question (and thus his birth date) and that he was alive somewhere between 1914 and 1918. WWI Canadian military records are available on the internet. I found it difficult to get a decent list of candidates out of Gramps. Maybe if I knew more details about filters it would have all become clear. It seems like it should not be that hard.

*It is possible he called Lou his aunt but the relationship was something else. Say Great Aunt or second cousin once removed, etc.

I yet uses Picasa (it’s not distributed anymore but still working fine - distribution on my dropbox) to scan my pictures. It regroups them to make me naming the people. If I don’t know I name that person X1, X2, … and when it find it again it display it in the good (theoretically) person directory. Then I create some John Doe persons in Gramps with pictures found by Picasa about them.

And, I don’t know if it’s your case, on some pictures I’ve the photograph name and address, so I try some filters to find persons I don’t know. I’ve wrote a little tutorial on this, if it can help.

1 Like

I installed Picasa yesterday and applied names to all my modern family photos… just to see how it worked. It definitely became ‘smarter’ with more data points.

Unfortunately, Picasa saves the Face data as XMP metadata and Gramps only has Exif Metadata tools.

Since it is my standard test file, I added Picasa ID’s & face rectangles for this 1913 Family reunion JPEG picture.

(The picture was originally laid out for a Cascading Style Sheet toy. Where the image lived in a webpage frame that was half the width of the image. So it normally showed only the left half. But on a mouse hover, the frame origin slide to the right and showed just the right side.)

Well, THAT experiment was an excellent example of why you should not trust cloud services.

I understood from the start that Google had migrated from Picasa to Google Photos in 2016. But Google Photos didn’t recognize the XMP Face metadata created by Picasa! The only metadata it found compatible was the Caption.

It was expected that the IDs wouldn’t survive.

It did not not even recognize the Face rectangles existed.

I wonder if that is due to the linkrot in the DTD URIs? A number of the domains referenced for the Data Type schemas no longer exist. Does this cause the XML readers to crap out?

If so, is this a vulnerability in the Gramps XML format too?

In 50 years, will our XML files be uninterpretable because the domain for the RELAX NG schema is has suffered linkrot or was clobbered?

Try digiKam or Darktable with the Lua Script for face recognition (in official lua repo i think)

There is a script for importing Picasa FR tags to digiKam

or you can use this script to import to digiKam directly from Picasa ini files in each folder…

There is also multiple Python Scripts for Face Recognition, but I do not know who is best or simplest to run…

And since those scripts is Python someone with the knowledge should be able to convert it to a “Gramps Script” or Gramplet…

Maybe it also can help doing the same from a digiKam database to Gramps…