User: Password:
|
|
Subscribe / Log in / New account

Genealogy research with Gramps

Benefits for LWN subscribers

The primary benefit from subscribing to LWN is helping to keep us publishing, but, beyond that, subscribers get immediate access to all site content and access to a number of extra site features. Please sign up today!

July 16, 2014

This article was contributed by Vladimir Perić.

Genealogy is a fairly popular pursuit, and those wishing to use open-source software in their hobby have their choice cut-out for them—Gramps is the only complete, actively-developed free-software solution. The project was started in 2001 and initially known as GRAMPS; the first stable release was in 2004. The latest, version 4.1.0 ("Name go in book") was released on June 18.

Before looking into Gramps's internals, it would be prudent to examine what genealogy entails. Researching family history is not just a matter of raw data (names, birth, death and marriage dates, locations, etc.), but also of understanding the lifestyles and motivations of people. Research can be focused on an individual and their ancestors and descendants, as is common in hobbyist genealogy, but it could also focus on a single surname (a one-name study) or a location (one-place study); the scope might simply be constrained by the free time of the researcher.

The de-facto standard format for genealogy data exchange is GEDCOM (GEnealogical Data COMmunication), though most applications also have their own, more full-featured formats, addressing issues in the slow-to-develop GEDCOM standard (the latest version was released in 1996). Gramps is able to import and export a number of file formats, while internally it uses XML.

[The People view in Gramps]

At its core, the Gramps model uses three basic object types: Person, Family, and Event. A Person has one or more names and a gender, while a Family represents two Persons and their children (i.e., a "nuclear family"). There is no larger structure connecting Family objects; Persons are just members of multiple Families—typically, one with their parents and one with their spouse. Events can either be connected to a Person or to a Family, and contain a date (or date range) and, optionally, a Place.

Other object types are used as well. Notes and Media can be attached to any other object. A Source object contains information about a single data source, while multiple Sources can grouped in a Repository object. Finally, Citation objects are used to connect a Source to other objects. All of these objects together form a Family tree. Although this relational scheme might appear complicated at first glance, it allows great flexibility for Gramps in adapting to a given workflow.

Giving freedom to the user is a defining characteristic of Gramps. There are plenty of Event types already available, encompassing everything from Birth, Baptism, Death, and Cremation to various vocational (e.g., Occupation, Military service), academic (Education, Graduation) and travel (Migration, Naturalization) events. But the user can just as easily create a custom Event by simply typing in the drop-down menu instead of selecting an Event. The same freedom is available everywhere else, though the "official" names should be preferred whenever possible (as they can be localized, used automatically in reports, etc). I have never had to introduce a custom type, as everything required was already provided by Gramps, but the option is there.

[The Relationship view in Gramps]

The Gramps interface is organized around the listed object types, with two additional tabs available, "Relationships", which provides a more intuitive representation of a Family object, and "Charts", where the user can quickly view several visualizations around the currently selected "Active person": included are a pedigree, timeline pedigree, as well as fan charts of descendants and ancestors. Each screen also has a sidebar and a bottom bar, where the user can use "Gramplets" to show whatever is required. Gramplets are a type of plugin; they represent mini-views which can be used to personalize the interface: Age on Date, Citations, and a simple to-do list are some of the available Gramplets. By default, the sidebar contains the Filter Gramplet, which can be used to quickly filter the data shown in the main window.

A workflow example

Whenever an object is opened, a new window pops out containing the data associated with the object; clicking on other objects will pop out yet more windows. This can sometimes result in many windows being open at once, which can be confusing. To make the entire process more understandable, I will provide an example of my typical workflow.

[Object editing in Gramps]

All data should be sourced, so I first check whether or not I have used this particular source before. Let's say I have found a marriage certificate on some microfilm that I had overlooked earlier. As I already have the Source object in Gramps, I would open the Family view and find the family of interest. Next, directly on the Family object, I would add a new Citation, using an existing Source, to confirm that the family in fact is indeed married. The crucial information on every Citation is the volume, page, or other information I would need to find the relevant entry again. I could also specify the confidence of the citation (a feature I do not currently use) in case I have multiple conflicting sources (for example, a birth certificate will likely have more accurate birth date information than a marriage certificate, but both pieces of data should be recorded).

Since my source has additional information, I would then open the useful Clipboard Gramplet and drag-and-drop my Citation there. Now I can easily drag it to any other object I decide to cite, simplifying my workflow and ensuring no duplicates occur. Having all of my data connected in such a way makes it easy to add an alternate source location (for example, if the certificate becomes available online) or I can attach a Media object containing a scan of the page.

Readers should note that this is just my personal workflow, and others might be equally valid; some professionals might have just cringed at my butchering of data and some hobbyists might think I am over-complicating the simple matter of drawing a pedigree. Luckily, as noted above, Gramps makes no presumptions on its users' workflow, so can be used as seen fit. For those unhappy with their current data representation, Gramps offers a number of tools for database management, including merging objects and automatic extractions of data. All of these features combine together to offer very flexible data input.

[Visualization in Gramps]

However, collecting data is only half of genealogy, with the other half being arguably more interesting—visualization of said data. Other than the aforementioned "Charts" views, which can be used for quick inspection of data, Gramps offers "Reports," divided into textual, graphical, and web. By default, 14 textual and 10 types of graphical reports are offered, though there is some overlap. Textual reports, such as an Ahnentafel table or a detailed ancestor report, can be created in various formats, including HTML, PostScript, and ODT. Graphical reports offer various tree views of data and are available in PostScript, SVG, and other formats.

Perhaps the most interesting is the narrative web report, which can represent the entire database as a website, and can be an attractive way to present the data to non-users. The plugin generates a static website, containing a page for each selected Person and all of the appropriate index pages; here's an example. All reports can be customized as appropriate or printed in any of the supported languages. Special care is given to privacy; it is easy to mark select records as private, or to not print records related to living people (and optionally those recently deceased).

Internationalization is another major focus of Gramps, exploiting a niche that proprietary software makers tend to avoid. Not only is Gramps translated into over 20 languages, it is also possible to define custom date handlers, which allow for locale-specific data parsing and display, and relationship calculators, which offer translated kinship terms (e.g., a "second cousin, thrice removed" in one culture is simply called a "brother" elsewhere). When adding dates, it is possible to use several calendars: the standard Gregorian, but also the French Republican, Swedish, and several others. Adapting any of these features to a new language or locale is relatively simple.

[Report generation in Gramps]

Gramps also offers a plugin system, which can be used to update or download new reports, or to write Gramplets, new tools, relationship calculators, and several other possibilities. Plugins are written in Python, the language Gramps itself is programmed in—at over 450,000 lines, it is one of the larger open-source Python applications. Gramps has plenty of dependencies, so installing it can be somewhat bothersome. In particular, osm-gps-map library is required for a Geography view, which I haven't successfully managed to get working. Binary packages of Gramps are available for download and most distributions provide Gramps in their package repositories (although distribution packages other than Debian and Ubuntu tend to lag behind the project). Gramps is also available for Mac OS and Windows.

Gramps switched to GTK+3 in version 4.0 and has full Python 3 support as of version 4.1. The major feature in 4.1 is a new place hierarchy model. There are also improvements to localization capabilities and other assorted updates; a full list is available in the release announcement and on the bug tracker. Unfortunately, it seems that the move to GTK+3 has resulted in performance regressions; these will undoubtedly be worked on and fixed. The program is still fast enough, but it certainly felt "snappier" in earlier versions. As is common with open-source projects, Gramps has too few developers working on it and help is always appreciated. The plugin architecture and a robust API make it easier to jump into development.

In short, Gramps is a powerful, flexible, and mature project, offering many features, with a strong focus on user freedom and internationalization. While it can certainly feel rough around the edges sometimes, it also easily surpasses proprietary solutions on several fronts; perhaps no open-source alternative has developed because Gramps can already accomplish almost everything. Anyone with an interest in genealogy will be well-served by giving Gramps a try.


(Log in to post comments)

Genealogy research with Gramps

Posted Jul 16, 2014 20:43 UTC (Wed) by mathstuf (subscriber, #69389) [Link]

> (e.g., a "second cousin, thrice removed" in one culture is simply called a "brother" elsewhere)

Is this a real example? That's a second cousin's great grandchild (if I remember the rules correctly…).

> Internationalization is another major focus of Gramps, exploiting a niche that proprietary software makers tend to avoid.

This project's niche seems to be at the intersection of all kinds of hairy i18n problems. Names (with local script and Romanization variants), addresses changing over time, cultural differences (cousins living together vs. the more Western nuclear family), calendars (both across time and between countries), and I'm sure I'm missing more. Hats off on making it a priority to actually tackle the problem rather than just sweeping it under the (AmeriEuro-shaped) rug.

Genealogy research with Gramps

Posted Jul 16, 2014 21:30 UTC (Wed) by idupree (guest, #71169) [Link]

I tried Gramps 4.0.3. I found a wide range of types of name available, thankfully (birth name, married name, also known as, fill-in-the-blank; and more for surname origin). However the only gender options were "male", "female" and "unknown" (no fill-in-the-blank). When creating a "Family", it did thankfully allow a one-parent family, but as far as I could tell it has a maximum of two parents and those parents cannot be the same sex.

It seems like it will need some work to be able to represent my people's families, unless I'm missing something. (I hope I am missing something because Gramps seems to have a lot of nice features.)

Genealogy research with Gramps

Posted Jul 16, 2014 21:38 UTC (Wed) by TomH (subscriber, #56149) [Link]

You can certainly create a family with two parents of the same sex, because I've done it. It may be that the interface currently labels one as "mother" and one as "father" but there's certainly no problem making those refer to people of the same sex.

There was some discussion of this issue on the mailing list recently so it is an issue people are aware of.

Genealogy research with Gramps

Posted Jul 17, 2014 11:07 UTC (Thu) by Seegras (guest, #20463) [Link]

> You can certainly create a family with two parents of the same sex,
> because I've done it. It may be that the interface currently labels one
> as "mother" and one as "father" but there's certainly no problem making
> those refer to people of the same sex.

I don't quite understand this. Yes, of course, somebodies legal parents can be of the same sex, but usually this isn't biological. I mean it's GENEalogy. Or can this actually be done, children with genetic material of both same-sex legal parents?

Speaking of which, how does Gramps cope with bastards?

Genealogy research with Gramps

Posted Jul 17, 2014 11:18 UTC (Thu) by TomH (subscriber, #56149) [Link]

The point is that a "family" is Gramps currently links two parents (one of which is labelled "mother" in the UI and the other is labelled "father" in the UI) to a list of children. There is also a relationship type (which has some predefined values like "married" but can be set to anything you like).

There is nothing stopping you assigning a male person to the "mother" slot or a female person to the "father" slot however, so that is how same sex relationships are normally handled at present. As I said there has been some talk of changing how those parents are labelled.

Each child in a family has fields for "relationship to father" and "relationship to father" which have predefined values like "birth", "adopted", "fostered" etc but again you can actually type in anything you like.

A bastard can simply be entered by creating a family with only one parent and assigning the child to it. If the second parent is known they can be assigned to the family but the family type set to "unmarried".

Genealogy research with Gramps

Posted Jul 17, 2014 20:24 UTC (Thu) by kleptog (subscriber, #1183) [Link]

It is true that a person has two biological parents of opposite gender, who may or may not be known. They can have one or more legal parents of any gender. It seems a little restrictive to have only two fields.

Genealogy is the study of family history and so while biological parents are important, legal parentage is also important and shouldn't be ignored.

Genealogy research with Gramps

Posted Jul 19, 2014 0:01 UTC (Sat) by giraffedata (subscriber, #1954) [Link]

while biological parents are important, legal parentage is also important and shouldn't be ignored

I would think social parentage is even more interesting that legal parentage. The fact that a person raised another person matters more to many people than the various things that legal parenthood signifies.

And there's no reason that relationship should be limited to one or two people.

They can have one or more legal parents of any gender

Is there any place where a person can have more than two legal parents?

Genealogy research with Gramps

Posted Jul 19, 2014 0:32 UTC (Sat) by rgmoore (✭ supporter ✭, #75) [Link]

Is there any place where a person can have more than two legal parents?

California has recently made it possible for someone to have more than two legal parents.

Genealogy research with Gramps

Posted Jul 19, 2014 1:07 UTC (Sat) by dlang (subscriber, #313) [Link]

not to mention that someone may have more legal parents over time, and as you are researching, it may not always be clear what the overlap for individuals is.

Genealogy research with Gramps

Posted Aug 18, 2014 21:41 UTC (Mon) by Wol (guest, #4433) [Link]

Add to that, in the UK at least, legal adoption is very much a 20th-century practice. (And I think there is no limit to the number of adoptive parents a child can have. Plus, kids can be left in a will...)

I don't know whether legal adoption even existed before that, but it was very much the norm, if the wife died, any kids were given away (to family members if they were around, or to various charities if they weren't).

And quite often, if family circumstances changed, children that had been given away were taken back.

I suspect I'm quite lucky to know my family because, even then (back in the thirties) that practice was quite common, and my grandmother died when my father was two years old. Granddad remarried within the year, though, iirc, so that may have had something to do with it ...

Cheers,
Wol

Genealogy research with Gramps

Posted Jul 19, 2014 3:04 UTC (Sat) by Cyberax (✭ supporter ✭, #52523) [Link]

Lots of countries practice polygamy. Then there are adoptions - it's possible for someone to be orphaned and then adopted (possibly several times).

Genealogy research with Gramps

Posted Aug 3, 2014 15:26 UTC (Sun) by JanC_ (guest, #34940) [Link]

A child and parents can be members of multiple "families" in Gramps, which covers for some of those use cases (although sometimes it would clearly be & look like a workaround/kludge...).

Genealogy research with Gramps

Posted Jul 17, 2014 19:00 UTC (Thu) by idupree (guest, #71169) [Link]

I wondered about whether genealogy was about genes. But I think that lots of people want to record adoptive family, among other things.

As for types of biological parentage:

Genealogy research with Gramps

Posted Jul 17, 2014 12:53 UTC (Thu) by VPeric (guest, #74293) [Link]

In Gramps 4.1, the family view is by default labeled as "Father/partner1" and "Mother/partner2", specifically to support same-sex families. Multiple person families aren't supported, though - you could create several families I guess. You can also just have separate families (in a genealogical sense) and note using Address events that they lived together in a given time period.

You are also right about the genders, there's a GEP about it, but no final solution has been reached/programmed. I invite you to participate, in the discussion at least:

https://www.gramps-project.org/wiki/index.php?title=GEPS_...
https://gramps-project.org/bugs/view.php?id=5730

Genealogy research with Gramps

Posted Jul 17, 2014 20:23 UTC (Thu) by idupree (guest, #71169) [Link]

Oh excellent! Is one of the mailing-lists or IRC good, or a comment on #5730?

I looked for for the ability to add arbitrary parent-child relationships directly, without going to the Families tab first to turn someone into a potential parent. It seemed complicated to me to need a Family for that: although I see how it makes entering data much simpler for people who marry, have several children, and don't remarry.

In creating a family (now using Gramps 4.1.0), I was able to add anyone to a family but first had to check "Show all" and then click a "▸" to show people (clicking "show all" is not necessary if the people are the "correct" gender).

I tried making a time loop (A begets B begets C begets A)... and Gramps threw an exception! It should probably handle this more gracefully (either allow it or say "sorry, not supported") (Some discussion on whether this can happen in real life.) So I filed a bug report.

Genealogy research with Gramps

Posted Jul 17, 2014 8:44 UTC (Thu) by jnareb (subscriber, #46500) [Link]

Internationalization is another major focus of Gramps, exploiting a niche that proprietary software makers tend to avoid.
This project's niche seems to be at the intersection of all kinds of hairy i18n problems. Names (with local script and Romanization variants), addresses changing over time, cultural differences (cousins living together vs. the more Western nuclear family), calendars (both across time and between countries), and I'm sure I'm missing more. Hats off on making it a priority to actually tackle the problem rather than just sweeping it under the (AmeriEuro-shaped) rug.
It is not only local script vs. Romanization for names, and addresses changing over time, but also locale-specific details, for example what are parts of the name (how the name is composed) and parts of the address:

Genealogy research with Gramps

Posted Jul 17, 2014 12:48 UTC (Thu) by VPeric (guest, #74293) [Link]

> Is this a real example? That's a second cousin's great grandchild (if I remember the rules correctly…).

Good point, I don't know what "second cousin, thrice removed" exactly is, it was a random example. But in my country, all people on the same "level" are your brothers/sisters, all people above are uncles/aunts, all people below are nephews; there is (essentially) no distinction if your last common ancestor is one or five generations away.

> i18n

Definitely right here, there's a lot of issues but a lot of care is given to it. I've found that I can always represent anything I need.

For example, in the new place model, places are arranged hierarchically. But, for each "part of" relationship, you can specify a date range; in this way, you can represent that a given city was part of that parish in that century, but a part of something else later, or country changes, or anything you wish. When marking strings for translation, care is given to support right-to-left languages as well. It's, of course, an ongoing process (and most developers are Western), but a lot of tiny things combine to offer a lot of flexibility.

Genealogy research with Gramps

Posted Aug 12, 2014 1:55 UTC (Tue) by kevinm (guest, #69913) [Link]

The "thrice removed" part indicates that they're not on the same level, so that would be an uncle/aunt - niece/nephew relationship in your country.

(The "second cousin" bit indicates that the first common ancestor is a great-grandparent to the generationally older of the two).

Genealogy research with Gramps

Posted Jul 17, 2014 1:12 UTC (Thu) by NightMonkey (subscriber, #23051) [Link]

OK, I know Ancestry.com isn't F/OSS... but can this import from Ancestry.com without major problems?

Genealogy research with Gramps

Posted Jul 17, 2014 4:34 UTC (Thu) by ernest (guest, #2355) [Link]

Export to GEDCOM file format from within ancestry.com, and import result in gramps.

Genealogy research with Gramps

Posted Jul 18, 2014 12:52 UTC (Fri) by leifbk (subscriber, #35665) [Link]

There are certainly other ways of doing genealogy research on Linux than with Gramps. When my old Windows computer died in 2005, and my genealogy program at the time refused to run under Wine, I had to look for other alternatives. I tried Gramps for maybe half an hour, and quickly decided that I'd better write my own software. As I already had a working export routine from The Master Genealogist, the Windows program that I used, and a working Web presentation of the data, it wasn't that hard.

The project currently lives in http://code.google.com/p/yggdrasil-genealogy/ for those who want to have a look. The licence is meant to be BSD style.

The intersection of people interested in genealogy, Linux, PostgreSQL and PHP scripting appears extremely small. When you add to that an explicit distaste for the US-centric GEDCOM "standard" (which has been effectively dead for almost twenty years), you seem to chase away the remaining few. However, I like my program and have been using it exclusively since 2005. I'll appreciate any comments and discussion, just write to leif at solumslekt dot org.

Import from tribalpages by scraping out the GEDCOM?

Posted Jul 21, 2014 19:03 UTC (Mon) by bpearlmutter (subscriber, #14693) [Link]

Someone in my family just sent around email about the xxx.tribalpages.com they'd just populated. Excellent, I thought! I can import the data into gramps and be happy. But tribalpages doesn't seem to allow export to GEDCOM for me, just for the administrator of that page.

But the data is there, so it seems like it should be possible to just scrape the tribalpages site and generate the GEDCOM. Does anyone know if this has been done?

Genealogy research with Gramps

Posted Dec 30, 2014 21:02 UTC (Tue) by geek (guest, #45074) [Link]

does anyone know the status of the server project? is the webapp working? sample site?

Dave

Genealogy research with Gramps

Posted Feb 4, 2015 21:36 UTC (Wed) by VPeric (guest, #74293) [Link]

Doug Blank is the developer working on Gramps Connect, here's [1] a recent (Jan 2015) mail from him on the gramps-users mailing list:

> We've discussed targeting different hardware platforms, such as iPads, Android, and tablets. But as we are such a small team, we've decided that the most effective way to handle all of these is to create a web-based application, Gramps Connect. It is designed for collaborative and large tree work, and is about 90% done; I have been using it for a few years for much of my Gramps uses. See the demo:

> http://gramps-connect.org/
> ID: admin1 (regular user)
> ID: admin (administrator)
> Password: gramps

Unfortunately, it seems the website is down currently. I haven't personally used it. If you'd like to stay in the loop, your best bet is probably following the projects' mailing lists.

[1] http://permalink.gmane.org/gmane.comp.genealogy.gramps.us...


Copyright © 2014, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds