GEDCOM question

Hi, my first post here.
I have been an FTM user since time began, but i ran into problems.
I’m investigating GRAMPS to see if it can do the following:
My ancestry tree has grown very, very large,
also because it contains 2 familiies that only have 1 marriage in common.
I would like to split the data into 2 separate trees.
Copying the tree and deleting person by person in one and the other is not an option.
Exporting into gedcom format and writing a python program to split is an option but
more convoluted than i would like.
Question: ideally in GRAMPS, i could select 1 person, and delete the whole tree upwards from there.
Is that possible?

Yes, its possible, you will need to create a search filter, with that filter you can both export the people to a new database and delete them in the active database…

Welcome Paul

Not knowing all that much about FTM, you can import the entire GEDCOM into Gramps and then create filters off of each spouse of the common family that selects just their branch and then do exports based on those filters. Then import the separate exports into their own databases.

But I will actually recommend that you keep the tree as one. Any children of that common family are descendants of the entire tree. And from a database point of view, you would then need to maintain separate place and source databases.

You say you have a large database. I have more than 200K people in both my father’s and mother’s side of the family with very little problems.

It seems as if you are asking the questions before making a commitment to Gramps. There is an active community of users that will be here to help when questions arise.

Sounds interesting, i’ll need to do some research into GRAMPS functionality.

Here’s start.


Am i correct in assuming that the whole database is in SQLite format.
And that i can run my own queries on it ?
(No, not update from the outside) :slight_smile:

No you’re not correct - the database is in SQLite format but much of the data is stored as a python pickle that is saved in the blob_data column on each table and that data is not visible from SQLite directly.

Some fields are duplicated as real database fields and those can be filtered on in an SQLite query.

You must export your db into another one using Sqlite export to be able to query this second db

There is a Query Gramplet.

(Just added the “See also:” section to that Gramplet’s wiki page but am looking for a few other items.)

Additions/corrections to the Wiki by an experienced SQL user would be most welcome. The Gramplet’s main documention page should remain in a terse reference style – so an experienced user can get up to speed quickly & efficiently. But an “Introduction to SQL for Gramps” & advanced use tutorials pages could be linked in.

Query Gramplet, sqlite export … look very interesting.
Need to convince myself to take the plunge. :slight_smile:


1 Like

There is an experimental mongodb backend, where everything is saved as json(bson) objects, that mongodb database can be queried in a “normal” mongodb matter, and you can use external tools i.e. graphs tools or create a web app … or what ever else you want to…

1 Like

One more question: does GRAMPS offer any standard reporting “quality control style”:
Things like:
People with missing key data (Birth,…) sometimes you don’t know, sometimes you forgot…
People or small clusters that have no links to the main tree and float around in space…
Suspected duplicates etc…

These reports would dork directly on the database, bearing in mind that you could develop
things yourself, but on a copy of the db.

The posting about the Query Gramplet caught the attention of @GulliblePangolin and he’s been exploring & improving that wiki section. However, he discovered that it is orphaned code which pre-dates the switch-over to SQLite.

There are problems. The gramplet was left in a partially implemented stage and will need someone to adopt it.

There are tools & techniques for each of those validation situations.

Take look at Verify the Data tool and other tool in that section of the wiki.

There is a find possible duplicates (an ugly process since data usually isn’t completely harmonized on duplicates) and a tool to add placeholders for estimated birth & death.

And there are Filter Rules to find people with missing birth or death events. Or those who are suspiciously old. Or who have Events without a source of sufficient confidence.

There is a Not Related tool. It looks at the Active Person and identifies everyone Linked to that person. It will treat in-laws of in-laws as connected. Anyone you cannot navigate through the relationships are returned as Not Related. The free floaters. You can then Tag all those people to identify them for research.

There are various filter to help identify problem/incomplete information.

Which filters in which Category?

And the tools now allow custom built filters to be added by users.

There is a Find Possible Duplicate People tool.

1 Like

Yet another question:
I have pdf files with scanned copies of documents. Although by family / individual, they can
still be 150 pages long, or more. Time consuming to search.
In Gramps, I can add a reference to a pdf document. No problem.
But: can I also add a page reference, say “78”, so that when you click on the pdf,
it automatically opens at that page?


I have not seen this and do not know how the page information could be passed to the PDF viewer.

I have many PDF books from Google Books and I create the source for the book and add the pdf to the source’s gallery. In each citation, I put the book’s page followed by the pdf’s page. Page:## (pdf:##).

Not in Gramps, but if you have that type of PDF’s, and a lot of them, I would recommend use Zotero or another Source, Citation & Bibliography software to keep track of them…
In Zotero you can use the zotfile add-on to extract all of this to a note in zotero, only problem with zotfile is that it doesnt support the newest pdf formats (1,7).

You could create something like that, since Python has libraries for annotation and extraction of comments and annotations from PDF. there are also a js library (pdf.js) that have that functionality…

Annotation and Comments in PDF are a separate layer in PDF, just like OCR…

here is a link to one projects with a python script, but its a lot of solutions on Github and there are a few in PyPi to

Edit: From Zotero you could Copy/Paste a full Bibliography string with links to any Gramps Note (i.e. a Citation Note) or text field (i.e. the “Volume/Page” field for a “Citation” or the “Pub. Info” field for a Source)…

1 Like

I think there are two parts to this … First, Gramps has to know how to pass a page parameter to a PDF viewer. Second, the PDF viewer has to know how to accept a page parameter.

Checking my system (Fedora 31) … Okular can take a command-line parameter -p or --page followed by a number.

okular --page 20 testing.pdf

Evince can take a parameter -i or --page-index=NUMBER.

evince --page-index=20 testing.pdf

Xpdf can take a page parameter as a colon followed by a number, as in

xpdf testing.pdf :20

I checked a few other PDF viewers but did not find any command line option to open on a specific page. I did not check any PDF viewers for Windows.

I suspect Gramps does not know how to pass command-line parameters to a subsidiary program, except the pathname of the file to be opened.

I know Foxit PhantomPDF support it and Adobe Reader should support it on windows, but do not know how it is implementet, other than that it work from Zotero…
I do not know if any of the open source PDF readers/editors for windows support it…

I will do a test when I get time with links generated with Zotfile in a Zotero Note, and see what happen if I add that to a Note in Gramps… (using Foxit PhantomPDF as my default pdf editor…)

EDIT: this is how its done with command line for foxit