Open main menu

Gramps β

Changes

Rule expansions

8,603 bytes added, 19:27, 30 December 2023
m
People with events with a selected role
{{Third-party plugin}}
{{#vardefine:chapter|Addons (Rules)}}
=Rule Amendments=
{{man tip| 1=Changes to Rules are inconspicuous|2=New built-in Rules appear without any fanfare. Plus there are so many of them, grouped in so many subcategories that they may remain concealed.<br />Addons require downloading and installation, so the addon Rules have more visibility than the builtins. Plus they can be searched as a category in the Plugin Manager.}}
[[File:Preferences UpdateAddons-Rule-51.png|thumb|right|450px|Fig. {{#var:chapter}}.{{#vardefineecho:figure|{{#expr:{{#var:figure}}+1}}}} Preferences: Check for Updated Addons showing Rules]]
Rules are the basic building blocks of custom [[Filter|Filters]]. A wide variety of [[Gramps_{{man version}}_Wiki_Manual_-_Filters#Which_filter_rules_in_which_Category.3F|rules have been built-in for creating custom filters in each category]].
=The following of add-on Rule Ammendments=collections have been gathered released as "Packs" of rules:{{man tip| 1=Changes to Rules are inconspicuous|2=New built* FilterRules -in Rules appear without any fanfare. Plus there a so many of themdocumentation, grouped in so many subcategories that they may remain concealed[https://github.<br com/gramps-project/addons-source/>Addons require downloading and installationtree/master/FilterRules GitHub repository]* FilterRules2 - documentation, so the addon Rules have more visibility than the builtins[https://github. Plus they can be searched as a com/gramps-project/addons-source/tree/master/FilterRules2 GitHub repository]* Generic rules (SuperTool) - (separate entries under each object category in the Plugin Manager.}}, for use with with custom rule code generated by SuperTool) - [[FileAddon:Preferences UpdateAddons-Rule-51.png|thumb|right|450px|Fig. {{#var:chapter}}.{{Isotammi_addons#vardefineecho:figureSuperTool|{{#expr:{{#var:figure}}+1}}}} Preferences: Check for Updated Addons showing Rulesdocumentation]]Rules are the basic building blocks of Filters., GitHub repository
With the Release release of [[Template:Releases/5.1.0|Gramps version 5.1]], the first addon Rules were released as [https://github.com/gramps-project/addons-source/tree/master/FilterRules posted as examples of coding a Filter Rule addon]. [[{{Version manual}}_Addons#Installing_Addons_in_Gramps|Installing similarly to any other addon]], a New Rule appears as a menu item within [[Gramps_{{Version manual}}_Wiki_Manual_-_Filters#Add_Rule_dialog|Add Rule dialog]] while [[Gramps_{{Version manual}}_Wiki_Manual_-_Filters#Define_Filter_dialog|Defining a custom Filter]].
Filters created with these Rules can tested, cloned or deleted using the [[Gramps_5.1_Wiki_Manual_-_Filters#CategoryName_Filters_dialog|Filter Editor]]. The dialog is invoked from the {{Man menu|Edit}} menu in each Category view.
-->
=locating Locating Filter Rule Add-OnsAddOns=[[File:EnhancedPlugInManager-addon-SearchRule 51win.png|thumb|right|450px|Fig. {{#var:chapter}}.{{#vardefineecho:figure|{{#expr:{{#var:figure}}+1}}}} Search for '''''Rule''''' in the Enhanced Plugin Manager]]The [[Plugin_Manager_PluginAddon:Plugin_Manager|Plugin Manager]] can be used for more than installing & and updating plug-in modules. It can help you discover the growing capabilities that might not be obvious.
Open the {{Man menu|Plugin Manager}} from the {{Man menu|Help}} menu and use its Search box to filter the view to only those addons which have a row or filename which include the 'Rule' term.
[[File:EnhancedPlugInManager-addon-Info 51win.png|thumb|right|450px|Fig. {{#var:chapter}}.{{#vardefineecho:figure|{{#expr:{{#var:figure}}+1}}}} Info on 'People related to ''<filter>''' addon Rule]]
Add-on Addon Rules that have been peer-reviewed will be added to Gramps' Update Manager system. This automates the installation process
When manually installed, each add-on addon rule's Python source code (<code>.py</code>) file and Gramps Plugin Registration (<code>.gpr.py</code>) file will be located in the <code>\gramps{{Version manual}}\plugins\FilterRules\</code> subdirectory of your [[Gramps_{{Version manual}}_Wiki_Manual_-_User_Directory|User Directory]]
Looking at the Info on any currently installed Rule will verify the file location where add-on addon rules have been installed.
{{-}}
==AddAddon Rules==Rules are added in sets/groups via the Plugin Manager. All the Rules in a set are added/removed when any Rule in that set is added/removed. Each set supports Multilingual internationalization services through [https://www.gnu.org/software/gettext/manual/html_node/PO-on Files.html .po and .pot] files using gettext. In the few months that addon Ruleshave been a feature, two sets of rules have been collected:===Individual Rules=======Active Person====[[File:Rule_Active_Person_Filter_Win.png|thumb|right|191px|Fig. {{#var:chapter}}.{{#vardefineecho:figure|{{#expr:{{#var:figure}}+1}}}} Searching for '''''person''''' rules]]'''General filters''' [[{{Version manual}}_Addons|addon]] rule to find the [[Gramps_Glossary#active_person|Active Person]]. Available for {{icon|peop}}'''Person''', {{icon|rela}}'''Relationships''', {{icon|ance}}'''Charts''', {{icon|geog}}'''Geography''' This is a useful "basic" rule for use in compound filters.  Also see:* the [[Gramps_{{Version manual}}_Wiki_Manual_-_Filters#Home_person|Home Person filter rule]].
{{-}}
{{=== Isotammi Add-}}on Rules ===Families with Rather than distributing through the Gramps open source project, the [https://github.com/Taapeli Taapeli Project] (which is a national database of Finnish Genealogical Society) curates [[Addon:Isotammi_addons|their own set of "Isotammi lisäosia"]] : “Big Oak (the mythological World Tree) add-ons" for Gramps. The [[Addon:Isotammi_addons#Installation|add-on manager installation]] files are hosted separately. Besides an initial experiment distributing a rule, they created the [[Addon:Isotammi_addons#SuperTool|SuperTool]] for directly executing queries and building custom query rules used by a "Generic &lt;Object> filter" in each category view. * [[Addon:Isotammi_addons#Events_with_an_invalid.2Fvalid_date|Events with a selected rolean invalid/valid date]]* [[Addon:Isotammi_addons#Generic_.3CObject.3E_filter|Generic &lt;Object> filter]] ===[https://github.com/gramps-project/addons-source/tree/master/FilterRules FilterRules] : Plugin Manager Rulebook Collection===General Filter Rule Addons====People related to &lt;filter&gt;====<!-- isrelatedwithfiltermatch.py -->[[File:Rule_FamiliesEvent_Role_WinRule_Person_Filter_Win.png|thumb|right|450px|Fig. {{#var:chapter}}.{{#vardefineecho:figure|{{#expr:{{#var:figure}}+1}}}} Searching by Rule name]]{{icon|famipeop}}'''Families Person &bull; Event General filters''' [[{{Version manual}}_Addons|add-onaddon]] rule to find [[Gramps_Glossary#familyperson|FamiliesPerson(s)]] having any Family member or shared Family level matching a specified filter. Matches people who are related to anybody matched by a person filter.{{-}}[[Gramps_Glossary#eventFile:Pythongadget.png|left|150px|Eventlink=https://github.com/gramps-project/addons-source/tree/master/FilterRules]] with a specified <code>'''isrelatedwithfiltermatch'''</code> provided as [[Gramps_Glossary#event_role|Event Role]https://github.com/gramps-project/addons-source/tree/master/FilterRules <code>sample '''.gpr.py''' & '''.py''' code</code> for writing addon filter rules].Demonstrates piping the output of one custom Filter into another.{{-}}
===People related to &lt;filter&gt;===[[File:Rule_Person_Filter_Win.png|thumb|right|450px|Fig. {{#var:chapter}}.{{#vardefineecho:figure|{{#expr:{{#var:figure}}+1}}}} Searching by Rule name]]Matches people who are related to anybody matched by a person filter{{-}}===People with events with a selected role====<!-- hasrolerule.py -->
[[File:Rule_PersonEvent_Role_Win.png|thumb|right|450px|Fig. {{#var:chapter}}.{{#vardefineecho:figure|{{#expr:{{#var:figure}}+1}}}} Searching for Person Rules which include the 'role' term.]]
{{icon|peop}}'''Person &bull; Event filters''' [[{{Version manual}}_Addons|add-onaddon]] rule to find [[Gramps_Glossary#person|Person(s)]] having any [[Gramps_Glossary#event|Event]] with a specified [[Gramps_Glossary#event_role|Event Role]]. This rule is particularly useful to search for people with Events having an "[[Gramps_Glossary#unknown|Unknown]]" event role. An '''Unknown''' role ''always'' a placeholder that should be resolved as soon as possible.
{{-}}
====Families with Events with a selected role====<!-- familieswitheventfiltermatch.py -->[[File:Rule_FamiliesEvent_Role_Win.png|thumb|right|450px|Fig. {{#var:chapter}}.{{#vardefineecho:figure|{{#expr:{{#var:figure}}+1}}}} Searching by Rule name]]{{icon|fami}}'''Families &bull; Event filters''' [[{{Version manual}}_Addons|addon]] rule to find [[Gramps_Glossary#family|Families]] having any Family member or shared Family level [[Gramps_Glossary#event|Event]] with a specified [[Gramps_Glossary#event_role|Event Role]].{{-}}[[File:Pythongadget.png|left|150px|link=https://github.com/gramps-project/addons-source/tree/master/FilterRules]]<code>'''hasrolerule'''</code> provided as [https://github.com/gramps-project/addons-source/tree/master/FilterRules <code>sample '''.gpr.py''' & '''.py''' code</code> for writing addon filter rules]. Demonstrates including category variants of a rule in the same addon.{{-}} ====Source matching parameters====<!-- hassourcefilter.py -->[[File:Rule_Sources_Parameters_Win.png|thumb|right|450px|Fig. {{#var:chapter}}.{{#vardefineecho:figure|{{#expr:{{#var:figure}}+1}}}} Searching by Rule name]]{{icon|sour34}}'''Sources &bull; General filters''' [[{{Version manual}}_Addons|add-onaddon]] rule to find [[Gramps_Glossary#source|Sources]] based on the following parameters: ''Title'', ''Author'', ''Abbreviation'', ''Publication''.
This add-on addon rule has similar options to the standard Filter Gramplet for the [[Gramps_{{Version manual}}_Wiki_Manual_-_Entering_and_editing_data:_detailed_-_part_2#New_Source_dialog|Source]] [[Gramps_{{Version manual}}_Wiki_Manual_-_Categories#Sources_Category|Category View]]. It can be used to save complex filter parameters. But it is also good {{-}}[[File:Pythongadget.png|left|150px|link=https://github.com/gramps-project/addons-source/tree/master/FilterRules]]<code>'''hassourcefilter'''</code> provided as sample [[Addons_development#Create_a_Gramps_Plugin_Registration_file|.gpr.py]] & '''.py''' code for new Developers wanting to experiment with [https://github.com/gramps-project/addons-source/tree/master/FilterRules writing add-on addon filter rules]. Demonstrates text based filtering with RegEx options.{{-}}
====People Separated less than &lt;N&gt; degrees of &lt;Home person&gt;====<!-- degreesofseparation.py (1)-->
[[File:Rule_DegreesOfSep_HomePerson_Win.png|thumb|right|450px|Fig. {{#var:chapter}}.{{#vardefineecho:figure|{{#expr:{{#var:figure}}+1}}}} Searching for Person Rules which include the 'degrees' term.]]
{{icon|peop}}'''Person &bull; Relationship filters''' [[{{Version manual}}_Addons|add-onaddon]] rule to find [[Gramps_Glossary#person|Person(s)]] having a relationship to the ''[[Gramps_Glossary#home_person|Home Person]]'' within a specified degree of [[Genealogy_Glossary#consanguinity|Consanguinity]] and [[Genealogy_Glossary#affinity|Affinity]].
The [[Gramps_Glossary#home_person|Home person]] is point of reference for calculating ('''&lt;N&gt;''') Degrees. For '''N''', Minimum value is 1, Maximum is value 32.
* '''Degree 3''': persons grandparents and 3 generations down. (= 2N ancestors + 3N descendants).
The ancestors and descendants generations have an offset of 1 to mimic the built-in filter rule behavior. Early versions of this rule optionally included partners and non-primary parents. Those relatives are now always included. This Rule may need to manually downloaded and installed: see the source code files on the [https://gist.github.com/Mattkmmr/4d0369cbee38bdf14395cb2f4505fb8a GitHub Repository]{{-}} ====People Separated less than &lt;N&gt; degrees of &lt;person&gt;====<!-- degreesofseparation.py (2)-->[[File:Rule_DegreesOfSep_PersonID_Win.png|thumb|right|450px|Fig. {{#var:chapter}}.{{#vardefineecho:figure|{{#expr:{{#var:figure}}+1}}}} Searching Person rules by 'degrees' term; roll-over hint for ID.]]{{icon|peop}}'''Person &bull; Relationship filters''' [[{{Version manual}}_Addons|addon]] rule to find [[Gramps_Glossary#person|Person(s)]] having a relationship to a specified Person within a specified degree of [[Genealogy_Glossary#consanguinity|Consanguinity]] and [[Genealogy_Glossary#affinity|Affinity]]. The Person corresponding to the ID is the focal point of reference for calculating ('''&lt;N&gt;''') Degrees. For '''N''', Minimum value is 1, Maximum is value 32. * '''Degree 1''': person/spouse + children ( &lt;zero N> ancestors, because the selected person is generation 1 + 1N descendants)* '''Degree 2''': person plus person’s parents, siblings, niece/nephew, children, grandchildren, etc. (= 1N ancestors + 2N descendants)* '''Degree 3''': persons grandparents and 3 generations down. (= 2N ancestors + 3N descendants). The ancestors and descendants generations have an offset of 1 to mimic the built-in filter rule behavior. Early versions of this rule optionally included partners and non-primary parents. Those relatives are now always included. Early versions of this rule optionally included partners and non-primary parents. Those relatives are now always included. See the [https://github.com/gramps-project/addons-source/pull/283 GitHub Repository files] ====Events of families matching a &lt;family filter&gt;====Events of families matching a &lt;family filter&gt; ====Families matching &lt;event filter&gt;====<!-- isfamilyfiltermatchevent.py -->Matches families that are matched by an event filter ====People who are part of families matching &lt;filter&gt;====<!-- infamilyrule.py --> People who are part of families matching &lt;filter&gt; ====Filter people by their age at death==== ====Match associations of &lt;person filter&gt;==== ====People with multiple parent records===={{icon|peop}}'''Person &bull; Family filters''' [[{{Version manual}}_Addons|addon]] rule thatmatches people who have more than one set of parents.
[https://gist.github.com/Mattkmmr/4d0369cbee38bdf14395cb2f4505fb8a GitHub Repository files]
{{-}}
===People Separated less than &lt;N&gt; degrees of &lt;person&gt;===
[[File:Rule_DegreesOfSep_PersonID_Win.png|thumb|right|450px|Fig. {{#var:chapter}}.{{#vardefineecho:figure|{{#expr:{{#var:figure}}+1}}}} Searching Person rules by 'degrees' term; roll-over hint for ID.]]
{{icon|peop}}'''Person &bull; Relationship filters''' [[{{Version manual}}_Addons|add-on]] rule to find [[Gramps_Glossary#person|Person(s)]] having a relationship to a specified Person within a specified degree of [[Genealogy_Glossary#consanguinity|Consanguinity]] and [[Genealogy_Glossary#affinity|Affinity]].
===[https://gist.github.com/Mattkmmrgramps-project/addons-source/tree/master/4d0369cbee38bdf14395cb2f4505fb8a GitHub Repository filesFilterRules2 FilterRules2]: Plugin Manager Rulebook Collection===Genetic Genealogy Filter Rule Addons The following rules are based on the logical rules of genetics, not on comparing DNA data. ====Matrilineal progenitrix of &lt;person&gt;====<!-- matrilinealprogenitrix.py -->Matches the earliest recorded matrilineal ancestor mother. ====Mitochondrial inheritance of &lt;filter&gt;====<!-- mtinheritanceoffiltermatch.py -->Matches recorded descendants of a filter result following mitochondrial inheritance patterns. ====Mitochondrial inheritance of &lt;person&gt;====<!-- mtinheritance.py -->Matches recorded descendants of person following mitochondrial inheritance patterns. ====Patrilineal progenitor of &lt;person&gt;====<!-- patrilinealprogenitor.py -->Matches the earliest recorded patrilineal ancestor father. ====X-chromosomal ancestors of &lt;person&gt;====<!-- xchromancestors.py -->Matches ancestors of &lt;person&gt; following a X-chromosomal inheritance pattern. ====X-chromosomal descendants of &lt;person&gt;====<!-- xchromdescendants.py -->Matches descendants of &lt;person&gt; following a X-chromosomal inheritance pattern. ====Y-chromosomal inheritance of &lt;person filter&gt;====<!-- yinheritanceoffiltermatch.py -->Matches recorded descendants of a filter result following Y-chromosomal inheritance patterns.====Y-chromosomal inheritance of &lt;person&gt;====<!-- yinheritance.py -->Matches recorded descendants of person following Y-chromosomal inheritance patterns.
{{-}}
===Pre-Release Rules=======Descendants of &lt;person&gt; sharing yDNA with each other====Matches descendants of a &lt;person&gt; sharing yDNA<!--Hide the Active Person rule until the necessary patch is released in 5.1.3 ====The Active Person====The active Person Requires a [https://gramps.discourse.group/t/custom-filters-based-on-currently-selected-person-s/354/17 patch] to be compatible with the Person Grouped View--> =The Evolution of of Rules as Add-OnsAddOns=
==Gramps 5.1.1 (Sept. 2019)==
* Fix bug {{Bug|0011114}}: resolve crashes in withinarea filter rule:
* Fix Custom filter update when created via sidebar.
=Developing New Rule Add-Ons AddOns =Beginning with version 5.0, Gramps implemented an database API (application programming interface) infrastructure supporting user selectable backends. This new exploration of database support lead developer to extend the add-on addon (plug-in) framework to support expanding Filter Rules via the Plugin Manager.
The 5.1 release changed the default database backend from [[Database_Backends#BSDDB_Backend|BSDDB]] (Berkeley database) to SQLite. With the broader group of user familiar with optimizing searches, it made sense to open Gramps to the specialized knowledge.
== Resources ==
* [[Develop an Add-on Rule]]
* [https://github.com/gramps-project/addons-source/tree/master/FilterRules Sample addon Filter code]
 
== See also ==
* [[Gramps_{{man version}}_Wiki_Manual_-_Filters#Which_filter_rules_in_which_Category.3F|Built-in rules by category]]
* [[Brief_introduction_to_Git|Git introduction]]
* [https://github.com/gramps-project/gramps/tree/master/gramps/gen/filters/rules Built-in Rules Source code] (Git)* [https://github.com/gramps-project/addons-source - Addon Rules Source code ] (Git)
* [https://developer.gnome.org/gtk3/stable/ch03.html Gtk+ widget gallery] - Gnome development sample code
* [https://github.com/gramps-project/addons - downloadable .tgz files] (Git)
* [[Addons_development|Addons Development]]
* [[Writing_a_plugin|Writing a Plugin]]
* [Gramps-devel]: [https://sourceforge.net/p/gramps/mailman/message/28524592 Sequencing of filter rules?]
* [Gramps-devel]: [https://sourceforge.net/p/gramps/mailman/message/7969670/ filter rules]
* [Gramps-users]: [https://sourceforge.net/p/gramps/mailman/messagegramps-users/25097338thread/ 4BD58852.3040705%40o2.co.uk/#msg25097338 Gramplet writing - newbie help needed]
*based on the [https://sourceforge.net/p/gramps/mailman/gramps-users/ Gramps-users] archived threads:
[[Category:Addons]]
[[Category:Plugins]]
[[Category:WikiContributors]][[Category:How do I...]]
<!--
{{man warn|1=WarningTitle/Heading |2=warning text }}</onlyinclude>
-->
{{Languages|Rule expansions}}
4,609
edits