I harvested quite large in old parish records and got several “islands” in my database. I want to study visually the relationship opportunities by drawing Family Line graphs.
I order to do this I need to know how many islands there are and to enumerate members of these islands. This is a traditional graph problem but, since records are stored in a database, I fear a serious performance problem in Gramps with a traversal-and-mark algorithm.
I can easily get all people not related to my “main” branch by using a relational filter “People connected to root person”, applying NOT operator. But this gives me a grouped list of all other people outside the main branch without subdividing them into separate islands.
My first requirement is to compute the number of “islands”.
My second requirement is to identify which persons and families are members of the nth island. Every person and family would have an AttributeIslandNo containing the number or ID for its island (perhaps a shared Attribute to facilitate later retrieval).
How can I do it with efficiency?
Once this is in place, I want to draw a Family Line graph per island. How can I designate the collection of People of Interest based on the attribute or other property?
My only suggestion would be to tag all the people that are in an “Island”. Then to tediously pick one of these people, find who belongs to that island and Tag them “Island 1”. Repeat the process creating “Island 2”, etc. In the process, you will also learn of the island’s count.
You can first use the “Disconnected people” filter rule to identify all of the islands containing only one person (no family relationships with any other people). But if you do this, be aware that the rule does not consider any Associations the people might have.
I ruled out Tag because a tag has no value (it is present or not). An attribute has a value. Therefore a single attribute, say, IslandID directly returns the island number.
The process you describe is manual and I’m looking for something more automated. I won’t hesitate to write a dedicated plugin if it is beneficial.
For the time being, my concern is trying to reconnect the islands. I don’t consider Associations yet because they translate looser connectivity than lineage and marriage.
The quickest way is something @GeorgeWilmes recommended about 5 years ago. You can visualize the scope and size of your ‘islands’ by importing a GEDCOM export into yEd. (I prefer to think of them as windfall or downed branches.) Rolling over nodes will pop-up an identifier.