Overview
Filters are used to select people, events, or names. You add one or more terms to a list, and Gedcom Publisher applies the terms to each eligible item. If the item's data passes the criteria defined by the filter terms, the item is selected.
Filters are used in multiple places in Gedcom Publisher, including:
- In the People section to determine which people are eligible to be included in the book.
- In Chapter People items to identify people to include in a chapter.
- In the List of People User Item to create a filtered list of people.
- In Tag Sets to select a subset of people, events, or names.
Terms
A filter may include one or more terms. Each term returns true or false; true if the person, event, or name met the qualifications of the filter, or false if not.
An example of a simple term is Gender which returns true if the person is one of the genders indicated by the choice in the term's pull-down menu. To include females and exclude males, you would add a Gender term and set its property to "Females only".
Gedcom Publisher also supports complex terms that include their own filters, like the Event Count term. The Event Count term supports filters that are applied to a person's events. So, for example, you can configure an Event Count term to select people who have one or more census events.
Grouping Terms
You may add multiple terms. By default, if you add multiple terms, each term must return true in order for a person to be included in subsequent processing.
You may group terms using the And/Or term. The And/Or term may be set to "All must pass (And)" or "At least one must pass (Or)". The "And" or "Or" logic applies to the terms nested under the group term.
For example, if you want to include people who are either an ancestor of a certain person or a descendant of that person, you would use an And/Or term set to "At least one must pass (Or)":

Each nesting level essentially creates a pair of parentheses. If the "Ancestor of" term is "A" and the "Descendant of" term is "B", the inclusion expression is:
If (A OR B) is true, include the person
You may create complex filtering logic by nesting And/Or terms.
Explain Command
For several filter properties, you may right-click to choose the Explain command from the context menu.

The Explain command writes a text representation of the filter property. For example:

Term Properties
Simple terms have no properties. If you add a simple term to the list, Gedcom Publisher will not open a window to edit the term; there is nothing to edit.
Some terms do have properties, and if you add one to the list, Gedcom Publisher will open an "add" window where you can set the properties as desired.
Term Titles
Some terms do not have Title properties. Those terms use a title based on how the term properties are set. So, for example, the Gender property uses the choice from its only property as the title.
Some terms have a Title property that you set yourself. For those terms, it is impractical for Gedcom Publisher to summarize the intent of the term.
Some terms have a Title property that Gedcom Publisher will set based on the term's property values, but the Title is editable and you may change it. In those cases, however, changing the property values will reset the Title to the automatic value supplied by Gedcom Publisher. Edit the Title after you set the other properties.
Term List
Each term in column one is a link to a help page that provides more details.
Term | Definition |
---|---|
And/Or | As explained above, the And/Or term is used to group other terms. You may configure the And/Or term such that when it evaluates its child terms, all nested terms must be true, or at least one nested term must be true. |
Not | Returns true when its nested terms meet its Operator condition. You may configure the Not term such that when it evaluates its child terms, either all nested terms must be false, or at least one nested term must be false. |
Age | Returns true if the person's age passes the conditions described by the term's properties. |
Ancestor Generation | Returns true when the person is an ancestor of the subject person within a specified range. |
Ancestor Of | Returns true when the person is an ancestor of a given person within a specified number of generations. |
Attribute Text | Returns true when the Attribute named in the term properties passes the filter condition described by the term's comparison properties. |
Cousin within Generations | Returns true when the person is a descendant of one of the ancestors of the subject person within the generation count you specify.
For example, if you choose yourself as the subject, and set the Generations property to 1, Cousins within Generations will select your parents and their descendants. That includes your siblings, but also includes any grandchildren of your parents, any great-grandchildren, etc. You may also specify whether or not to include spouses of selected cousins. |
Deceased | Returns true when the person is deceased. This term has no properties. |
Descendant Generation | Returns true when the person is a descendant of the subject person within the range of generations specified by "Min Generations" and "Max Generations". You may also specify whether the spouses of qualified descendants are included. To include the subject person, the "Min Generation" must be zero. |
Descendant Of | Returns true when the person is a descendant of a given person within a specified number of generations. |
DNA Descendant Of | Returns true when the person inherits the DNA of a given person with inheritance rules for three type of DNA. |
Event Count | Returns true when a person's events pass the filter defined in the term's properties. See the Event Count section below. |
Gender | Returns true if the person is one of the genders indicated by the choice in the term's pull-down menu. |
ID Number | Returns true if the person has an ID number that passes the conditions described by the term's properties. |
Last Edited | Returns true if the person's last edited date (AKA changed date) passes the term's date filter properties. |
Living | Returns true when the person is not deceased. This term has no properties. |
Name Count | Returns true when a person's names pass the filter defined in the term's properties. See the Name Count section below. |
Primary Birth | Returns true when the person's primary birth event passes the term's Event Filter property. If the person has no primary birth event, this term will return false. |
Primary Death | Returns true when the person's primary death event passes the term's Event Filter property. If the person has no primary death event, this term will return false. |
Primary Image | Returns true when the presence or absence of a primary image matches the filter properties. |
Event Count
The Event Count term filters people based on their events. Gedcom Publisher counts the events that pass the Event Filter specified in the Event Count window, and compares the actual count to the desired count. There are several comparison operators, and this allows you to filter people based on having, or not having, the specified events.
For example, to select people who have at least one Census event in Massachusetts:

The Event Filter in the example includes two terms, "Tag Place Contains Massachusetts" and "Census Tag Types". The outermost terms in a filter are ANDed together, so both terms must be true for an event to qualify. The first term restricts the events to those with "Massachusetts" in the Place, and the second restricts the events to those with certain Tag Types. The Operator is "greater than" and the Count is zero, so the Event Count term will select people who have at least one census event in Massachusetts.
Editing the "Census Tag Types" term opens this window which shows that several census Tag Types have checkmarks.

Event Filter Terms
Event Filters are used with the Event Count term and also by other items that filter events, such as Tag Sets.
Event Filters support the following terms.
Term | Definition |
---|---|
And/Or | As explained above, the And/Or term is used to group other terms. You may configure the And/Or term such that when it evaluates its child terms, all nested terms must be true, or at least one nested term must be true. |
Not | Returns true when its nested terms meet its Operator condition. You may configure the Not term such that when it evaluates its child terms, either all nested terms must be false, or at least one nested term must be false. |
Primary or Non-primary | Returns true when the tag is primary for the person and "Primary only" is selected, or when the tag is not primary for the person and "Non-primary only" is selected. |
Principal or Witness | Returns true when the person is a principal in the event and "Principal only" is selected, or when the person is not a principal in the event and "Witness only" is selected. |
Role | Returns true when the subject's Role name passes the filter condition described by the term's comparison properties. |
Subject Age | Returns true if the subject's age passes the conditions described by the term's properties. The age is determined by subtracting the primary birth date from the event date. You specify:
If the subject's age cannot be determined, the result is false. |
Tag Date | Returns true if the tag's date passes the condition described by the term's comparison properties. |
Tag Group | Returns true if the tag's Tag Type Group (Birth, Death, etc.) matches the selected group (when Operator is set to "Equals") or does not match the selected group (when Operator set to "Does not equal"). |
Tag Note | Returns true when the tag's Note text passes the filter condition described by the term's comparison properties. |
Tag Participants | Returns true when the number of participants (all participants, principals only, or witnesses only) passes the comparison terms. |
Tag Participant Index | Returns true when the subject's index in the Tag's participant list matches the comparand. May be used to select the first principal, first witness, etc. See: Help Page |
Tag Place | Returns true when the text created by combining all the tag's place records passes the filter condition described by the term's comparison properties. |
Tag Place Part | Returns true when a specific part of the place record passes the filter condition described by the term's comparison properties. Most GEDCOM files do not provide named place parts so you may need to use the Tag Place term instead. |
Tag Place 1 | Returns true when the tag's Place 1 passes the filter condition described by the term's comparison properties. Place 1 typically contains the text from the tag's PLAC GEDCOM record. |
Tag Place 2 | Returns true when the tag's Place 2 passes the filter condition described by the term's comparison properties. Place 2 typically contains the text from the tag's ADDR GEDCOM record, but may represent the text from a custom GEDCOM tag. |
Tag Text | Returns true when the event's Text value passes the filter condition described by the term's comparison properties. |
Tag Type | Returns true when the event's Tag Type is one of the selected Tag Types specified in the term's Tag Type filter properties. |
Name Count
The Name Count term filters people based on their names. Gedcom Publisher counts the names that pass the Name Filter specified in the Name Count window, and compares the actual count to the desired count. There are several comparison operators, and this allows you to filter people based on having, or not having, the specified names.
For example, to select people who have at least one name with the Surname "Smith":

The Name Filter in the example includes the Name Part term, "Surname Equals Smith". The Operator is "greater than" and the Count is zero, so the Name Count term will select people who have at least one name where the surname is Smith.
Name Filter Terms
Name Filters are used with the Name Count term and also by other items that filter names, such as Tag Sets.
Name Filters support the following terms.
Term | Definition |
---|---|
And/Or | As explained above, the And/Or term is used to group other terms. You may configure the And/Or term such that when it evaluates its child terms, all nested terms must be true, or at least one nested term must be true. |
Not | Returns true when its nested terms meet its Operator condition. You may configure the Not term such that when it evaluates its child terms, either all nested terms must be false, or at least one nested term must be false. |
Name Part | Returns true when the selected name part matches the filter condition described by the term's comparison properties. |
Primary or Non-primary | Returns true when the tag is primary for the person and "Primary only" is selected, or when the tag is not primary for the person and "Non-primary only" is selected. |
Tag Note | Returns true when the tag's Note text matches the filter condition described by the term's comparison properties. |
Tag Type | Returns true when the name's Tag Type is one of the selected Tag Types specified in the term's Tag Type filter properties. |