Report to identify persons who are not direct ancestors

gramps AIO64-5.1.5-1 on Windows 10.

Hi - I am looking for a way to identify people who are not my direct Ancestors in Gramps. I downloaded a lot of data from the LDS site and it saved me a whole lot of time, but I’m really only interested in keeping my direct ancestors. Is there any way to produce a report to do this?

Thank you! Jim

Welcome

Probably the best way is to create a set of filters to select your family, tag them, then decide what you will do with any people not tagged.

In the People Filter editor (in a person view, menu >> Edit >> Ferson Filter Editor) create a set of filters.

Filter 1
Ancestral filters > Ancestors of <person>

Filter 2
Descendant filters > Descendants of <filter 1> match
General filters > People matching the <filter 1>

Set the Options
At least one rule must apply.

Note: adding the first filter back into this filter ensures that the endline ancestors are included. They are not their own descendants.

In the People or Grouped People view you can run Filter 2 for your direct relatives but note, this does not include spouses. To add these people…

Filter 3
Family filters > Spouses of <filter 2> match

Filter 4
General filters > People matching the <filter 2>
General filters > People matching the <filter 3>

Set the Options
At least one rule must apply.

Runing filter 4 will select for the most basic of people. But filter 4 can be expanded by adding any or all of these rules to add parents, siblings, and other marriages/children of the spouses.

Family filters > Parents of <filter 3> match
Family filters > Siblings of <filter 3> match
Family filters > Spouses of <filter 3> match
Family filters > Children of <filter 3> match

Once you have the related (and in-law) people you can select all the people and Create/set a Tag.

Now you can create another filter to find those people not related.

Filter
General filters > People with the <tag>

Options
Check the box Return values that do not match the filter rules.

@DaveSch’s suggestions are good. You could also just use your custom filter of desired people to export them to a new Gramps tree for a fresh start.

Be aware that the filter rule for siblings only returns full siblings. If you want to include half-siblings and step-siblings, check out the patch in this feature request.

You could set the Parents of the in-law spouse as their own filter then find their spouses and their children… A bit much.

I am actually paring down the siblings of the in-law spouses from my database unless there is a reason to keep them; i.e. showing up in a census report.

I am keeping any previous marriages and step-children in the database unless the step-children were adults at the time of the second marriage. And that also depends if the step children are mentioned in the relative’s obituary, etc.

I use the same filters out to the add spouses filter to find and tag various major branches of my tree. Then I tag the in-laws as in-laws not as part of the family. Instead of setting the first filter to a specific person, I set it to the ancestors of the active person. Instead of editing the first filter for a new person, all I have to do select a new active person.

I should also tell you how I named these filters. Once you have a collection of filters you will need to know which filters go together.

I named the filters…

Filter 1A: Select Ancestors of…
Filter 1B: Find their Descendants
Filter 1C: Find the Spouses
Filter 1D1: Family Member and their Spouses
Filter 1D2: Extended Family, Spouses and their Extended Families

Thank you. If I’m reading this right it sounds like I need to know the family names of all my ancestors in order to exclude those who are not in the set. Am I correct? Thx!

No.

In Filter 1, you would put your Gramps ID as the parameter entry. Then in the People view, in the sidebar Filter, you select Filter 4 as the Custon Filter option, then select Find.

Gramps will go through a few progress windows while it goes out and finds all of your parents and grandparent out to the endline grandparents. Then in Filter 2 it will find all descendants of these grandparents. Filter 3 will find the in-law spouses and as Filter 4 completes, it will return just the people that are your relatives.

Then you can select all the people that returned as true in the list (ctrl-A), then select the Tag Selected Rows icon in the toolbar Gramps-tag. If there is no Tag option (or one you want to use) then create a New Tag. Every record in the list will be tagged .

These are your relatives.

That last filter says to search all people with that tag, but instead of selecting them it will Return values that do not match the filter rules.

The people in this filter will not be related in any way to you.

Here are screenshots of the filters I described.

1 Like

Thank you! Very impressive. I appreciate your help! Jim

To find all my ancestors, their descendants and relatives of everybody, I use same kind of filters but as I use Gramps Id instead of tags to define who is who, my filters looks like that (to search for them I use the “87. PlxBk - 046p” filter):

I’m wondering - is there a report that lists individuals who have no children? TY!

There’s a filter rule “People with children”. Simply create a custom filter using this rule, and select the option “Return values that do not match the filter rules”.

I would have that as Filter 1

Filter 2
People with no Marriage Record with the “Return values that do not match the filter rules”. checked.

Filter 3
People matching the <filter 1>
People matching the <filter 2>

All rules must apply.

In Filter 3 you can add Male or Female to fine tune the filter

I don’t know about a specific report but this week-end I’ve created the following persons filters to find couples with no children:



image

Filter to call is “86. Individus mariés et sans enfant - 591p

With it, probably any people report could give what you want.

Name of the filters translated into English, and their XML code:
86. Married individuals without children - 591p

    <filter name="86. Individus mariés et sans enfant - 591p" function="and" comment="591p (I86.591p) - Filtre(&amp;) == [I87.588p, I88.590p]">
      <rule class="MatchesFilter" use_regex="False">
        <arg value="87. Personnes qui ne sont pas parents d'enfant - 588p"/>
      </rule>
      <rule class="MatchesFilter" use_regex="False">
        <arg value="88. Mariage.length(eq, 1) - 590p"/>
      </rule>
    </filter>
  1. People who are not parents of children - 588p
    <filter name="87. Personnes qui ne sont pas parents d'enfant - 588p" function="and" comment="588p (I87.588p) - Filtre(&amp;) = [I88.376i, I88.587i}">
      <rule class="MatchesFilter" use_regex="False">
        <arg value="88. Mères - 376i"/>
      </rule>
      <rule class="MatchesFilter" use_regex="False">
        <arg value="88. Pères - 587i"/>
      </rule>
    </filter>
  1. Marriage.length(eq, 1) - 590p
    <filter name="88. Mariage.length(eq, 1) - 590p" function="and" comment="590p (I88.590p) - Filtre(&amp;) == [I90.455i, I90.589p]">
      <rule class="MatchesFilter" use_regex="False">
        <arg value="90. Mariage.length(gt, 1) - 455i"/>
      </rule>
      <rule class="MatchesFilter" use_regex="False">
        <arg value="90. Mariage.length(ge, 1) - 589p"/>
      </rule>
    </filter>
  1. Marriage.length(ge, 1) - 589p
    <filter name="90. Mariage.length(ge, 1) - 589p" function="and" invert="1" comment="589p (I90.589p)">
      <rule class="NeverMarried" use_regex="False">
      </rule>
    </filter>
  1. Mothers - 376i
    <filter name="88. Mères - 376i" function="and" invert="1" comment="376i (I88.376i)">
      <rule class="MatchesFilter" use_regex="False">
        <arg value="88. Mères - 376p"/>
      </rule>
    </filter>
  1. Mothers - 376p
    <filter name="88. Mères - 376p" function="and" comment="376p (I88.376p) - Filtre(&amp;) == [I90.178p, I90.375p]">
      <rule class="MatchesFilter" use_regex="False">
        <arg value="90. Sexe['Femme'] - 178p"/>
      </rule>
      <rule class="MatchesFilter" use_regex="False">
        <arg value="90. Enfants.length(gt, 0) - 375p"/>
      </rule>
    </filter>
  1. Children.length(gt, 0) - 375p
    <filter name="90. Enfants.length(gt, 0) - 375p" function="and" comment="375p (I90.375p) - -">
      <rule class="HaveChildren" use_regex="False">
      </rule>
    </filter>
  1. Gender[‘Female’] - 178p
    <filter name="90. Sexe['Femme'] - 178p" function="and" comment="178p (I90.178p) - -">
      <rule class="IsFemale" use_regex="False">
      </rule>
    </filter>
  1. Fathers - 587i
    <filter name="88. Pères - 587i" function="and" invert="1" comment="587i (I88.587i)">
      <rule class="MatchesFilter" use_regex="False">
        <arg value="88. Pères - 587p"/>
      </rule>
    </filter>
  1. Fathers - 587p
    <filter name="88. Pères - 587p" function="and" comment="587p (I88.587p) - Filtre(&amp;) == [I90.179p, I90.375p]">
      <rule class="MatchesFilter" use_regex="False">
        <arg value="90. Enfants.length(gt, 0) - 375p"/>
      </rule>
      <rule class="MatchesFilter" use_regex="False">
        <arg value="90. Sexe['Homme'] - 179p"/>
      </rule>
    </filter>
  1. Sex[‘Male’] - 179p
    <filter name="90. Sexe['Homme'] - 179p" function="and" comment="179p (I90.179p) - -">
      <rule class="IsMale" use_regex="False">
      </rule>
    </filter>
  1. Marriage.length(gt, 1) - 455i
    <filter name="90. Mariage.length(gt, 1) - 455i" function="and" invert="1" comment="455i (I90.455i)">
      <rule class="MatchesFilter" use_regex="False">
        <arg value="90. Mariage.length(gt, 1) - 455p"/>
      </rule>
    </filter>
  1. Marriage.length(gt, 1) - 455p
    <filter name="90. Mariage.length(gt, 1) - 455p" function="and" comment="455p (I90.455p)">
      <rule class="MultipleMarriages" use_regex="False">
      </rule>
    </filter>

What we are giving you are the filters identifying the people for your report. Once you have the list of people in the People view, you can “Export View” (menu >> Family Trees >> Export View) This will create a CSV file that you can then import into a spreadsheet for printing of lists.

The export will contain all of the fields you have visible in the view. To add or remove or move fields you can access the Configure the Active View" icon on the toolbar. Gramps-config

FYI: All views have this Configure icon.

1 Like

Perfect! Worked great! Thank you!

By the way, in case you’re looking specifically for people who have no biological offspring (though they may have adopted children or step-children), that would be trickier. Offhand, I’m not sure if there are any existing filter rules you could use for that.

You can actually combine my Filters 1 & 2 into a single filter.

People with children
People with no Marriage Record

Set the options to:
Exactly one rule must apply and
Return values that do not match the filter rules

They also can be familly parents with no marriage record and having no children. Your filter will not return these persons.

With my (too long) filter list I can find 630 persons in my base, 657 with yours

When I first ran @GeorgeWilmes filter, one of the first people in the list was a child that died as an infant. I am sure this person would be someone @n88yanks would not be looking for. Then how to limit those records.

Any child of a person can only be linked within a Family record. The filter rule People with no Marriage Record is actually seeing if the person is a parent in a Family record. not that there is a family event Marriage.

Any person not a parent in a family record would be assumed to have no children, The problem with these people is, at what age would the person have reached to be considered ‘childless’. And age filters are a whole new can of worms.

Curious, I went into the Family view. There is no filter looking at the number of children in the family.