Monday, June 27, 2011

Another look at GRAMPS

Back in January I took a look at the free genealogy program GRAMPS. GRAMPS started on Linux, but is now available for Windows and Mac. I was looking at it specifically for use on the Mac, as that's the platform I use. At the time, at version 3.2.5, it was not yet stable enough on the Mac to use. Indeed there was at least one major issue which I submitted as a bug to the developers, but I haven't had time since then to fully test it again. Recently version 3.3.0 was released, and I decided to give it a spin once again. As I mentioned back in January, I really like the idea of a free open-source cross-platform genealogy program, and I'm rooting for GRAMPS to be competitive with other genealogy programs out on the market.

This time, things went a lot smoother than my first attempt. For one, everything installed easily and I didn't see any error messages when loading the program. Oddly the program loaded on my second monitor, which is very unusual. It's possible I had moved the application to my second monitor back in January and this version accessed some preference file from the old version, but in any case I've never seen an app boot directly to my second monitor.

Exporting and Correcting a GEDCOM from Reunion

The first thing I did was export a GEDCOM file from Reunion to load into GRAMPS. Knowing from previous attempts that GRAMPS would not recognize the relative paths used int the image file locations, I opened the GEDCOM first in a text editor and did a find-and-replace on the relative path:

GEDCOM excerpt showing relative path to an image file
In the above image (click to enlarge) you can see the relative path on the line that starts with FILE starts with ~/ which is supposed to point to my home directory. This is a UNIX shortcut, which makes it is surprising that GRAMPS doesn't know how to deal with it. In any event, on the Mac your home directory is located at /Users/USERNAME/ or in my case /Users/philip/ and as you can see in the Find box, I replace all instances of ~/ with /Users/philip/.

GEDCOM excerpt showing absolute path to an image file (after Replace All)
In the above image you can see that 935 instances of ~/ were replaced, including in the image location shown in the GEDCOM.

One other thing to notice in the GEDCOM is that Reunion output not only the image location, but a line called _CROP which gives coordinates of how the image was cropped within Reunion. Reunion lets you re-use images with different people (or even multiple times with the same person) and for each instance of the image you can crop it how you'd like. For example, if you have a family photo that shows two parents and four children, you can assign that photo to all six people, and crop the photo for each person so when displayed will only show the head of the person you want. This is a very nice feature, but GEDCOM doesn't have a standard way to deal with it. I don't even know if GRAMPS can handle per-instance cropping of photos, but in any case it certainly doesn't know how to import Reunion's cropping information. Hopefully the efforts to improve/replace GEDCOM will in the future include a standard way to share that kind of information, and hopefully GRAMPS will add this feature as well.

Importing the GEDCOM into GRAMPS

Once I made the replacements in the file I wanted to load it into GRAMPS. For those used to standard Mac user-interface norms, GRAMPS doesn't try to match them. This has been a complaint by other users of GRAMPS, that they should try to adapt to the user-interface 'widgets' of the operating systems they are targeting. Beyond the look of an app, there are also usage norms of which Linux users, Mac users and Windows users all expect something different. That said, I'm not sure if some of the user-interface issues are due to the fact that the program originated on Linux, or are just the user-interface decisions of the developers. When getting started, GRAMPS makes you create a new family tree, then load the new tree (which oddly takes more than a few seconds) and then lets you import a GEDCOM. The GEDCOM import was quite fast, and in my case importing 1800 records took only few moments. Why couldn't I just import a GEDCOM into a new family tree? No idea.


GRAMPS offers several very interesting views of your data - People, Relationships, Families, and Ancestry. GRAMPS also lets you look at your Events, Places, Geography, Sources, Media and Notes. These views are great, as they let you look at your data in some very useful ways very quickly. One thing that is very interesting, for example, is to be able to see all the Places that are present in your family tree. As Reunion does not standardize place names, in my case the list of Places shows some of the many duplicate and inconsistent names I've used in my tree. It also lets you easily correct the names and then merge duplicate names so that they link to a single reference. Thus, if you choose to change the name of the town later, the change will show up in all records that reference that location.

I also tried the Geography view which starts out as a map of the world, but somehow I zoomed out so far that I couldn't see anything and I couldn't get it to go back to a normal view of the Map. In fact, the coordinates shown for my location on the map was:
Geography view coordinates
Now I wasn't a geography major, but I'm pretty sure it's not possible to go to W 16534˚ on a map. Now the way I zoomed was using the multi-touch trackpad on my MacBook Pro, which the developers who use Linux might not be familiar with, so perhaps this bug isn't possible to reproduce on Linux, but it definitely exists on the Mac. A map reset button might be good here.

In any event, I like that with each view there is a Filter panel that lets you search within the view and reduce the number of records shown to match what you're searching. Reunion lets you search lots of fields, probably more than GRAMPS, but it does so from a single search window, and you either search one field or all fields at once. GRAMPS' filtering seems more useful for quick searches within the view you're currently in.

I have to say, having used Reunion for more than ten years, the views in GRAMPS seem a bit strange to me. Obviously one can argue over what views are best in genealogy program, and having many options (Reunion is really just one view) is a good thing, but I find the views somewhat redundant and inconsistent. For example, The Relationships view is a view that shows all the direct relationships of a person, such as parents, spouse(s), children and siblings. The siblings are a nice touch since most genealogy programs only show parents  and children of a person in a single view. That said, I generally need to scroll down to see all the information in this view, which limits its usefulness for quick navigation through family members. In Reunion, which is based on a Family view (a Couple is the center of the view, which shows basic information on each of the couple's parents above them, and of all of their children below them), if I want to see someone's siblings I click on the parents of the person, and the parents become the couple at the center of view, and the children at the bottom include the person I was originally looking at and all of his/her siblings. That isn't necessarily the most natural way to see this information, but it works in a very consistent manner. Thus it is easy for me to navigate up and down through the tree using just this single Family view.

In GRAMPS, the closest thing to the view in Reunion is the Families view, except that its usage is user-interface-challenged. For example, if I go to the Families view I see a list of families, which is essentially a list of couples and their marriage dates if known. If I click on a couple I get a view that is similar to Reunion's view that pops up in a new window (except it only shows parents and children, not the parents of the couple). In this new window, if I click on the one of the parents' names, for example, nothing happens. There is a little document icon next to the names, however, and if I click on that icon I get a third window which lets me edit the person's details (this is actually the same as Reunion except Reunion doesn't use an icon but lets you just click on the name). Indeed this is the People view in GRAMPS, so you are seeing more than one view at a time). If I click on the childrens' names, I get a different window which just seems to allow me to define the relationship of the child to the parent (birth, adopted, etc.). This seems like a waste of a window. If I was going to have a window like this, I would at least allow you to switch who the parents are of the child (such as when there are multiple marriages and you find that a child was born from a different set of parents than you thought). This raises a few other UI decisions I don't understand in GRAMPS. In the view showing the parents and children, there is a minus sign that lets you remove one of the parents as a parent - but of which child? What if the father is the father of one child but not the other? In addition, there seems no logical way to add additional spouses in this view. Second marriages are common enough that this should be integrated into the view.

No Easy Navigation

The worst part of the UI seems to be that there is no way to easily navigate to other families through the view itself. Instead, I need to close the window, go back to the list of families and find the right family. That's a bit absurd actually, especially if you have lots of people with similar names in your tree, or if you simply don't remember the names of the parents. Reunion is a bit limited in its single view, but it is actually very easy to navigate within that view to find almost all the information you need quickly.

You might have noticed that earlier I said above that the user-interface in GRAMPS is inconsistent. Let me give an example. In the above mentioned view you can't easy switch to the parents or children. In the Ancestry view, which is a kind of navigatable graphic tree, you can click on a parent of the person at the 'bottom' of the tree (it's actually on the left side) to make them the bottom of the tree, but if the tree doesn't show the children of the bottom person. There is a pop-up menu you can click on and then choose a child in order to make them the bottom person. This seems a weak UI choice. Why not show all the children of the primary person in the tree, to allow quick navigation of the entire tree. My main problem with GRAMPS is navigation-oriented, and when I see different (inconsistent) choices made in different views, and no easy way to navigate in a single window to information on different families, it is a big problem for me.

In the End...

After writing the above I decided to check out the different graphical views and reporting options, but ran into a roadblock. When trying to switch to a different Ancestry view (Timeline Pedigree) an error message was generated, and I was unable to continue. Indeed, this issue has prevented me from adding many of the screenshots I intended to add to the above to illustrate various features. I was prompted to submit a bug report which I did, but when I tried to re-launch GRAMPS and re-load my family tree I kep getting an error message saying the database was corrupt and to run a tool to fix it, but the program would crash before I could access the tool to fix the database. I suppose I could delete the tree and start over, but for the time being I'm going to wait. While this version (3.3.0) is much more stable than the previous version I tested, it clearly is not ready yet for everyday use, at least not on a Mac. I look forward to testing it in the future when these issues have been worked out.