Optional: Taxonomies & categories
IMPACT OSS data model contains the following principal entities:
- Recommendations: the Recommendations and Treaty Body Observations a State receives from the different UN Human Rights Mechanisms (or Bodies)
- Actions: the Implementing actions a State defines to address the Recommendations
- SDG Targets (optional): the targets set by the UN for the 17 Sustainable Development Goals (SDGs)
- Users: the application users
Taxonomies ("category groupings")
These entities can be classified according to multiple category groupings, also called taxonomies, that need to be set up on the server - taxonomies cannot currently be managed through the UI.
Taxonomies can include universal classifications of recommendations used by the UN such as
- Human Rights Mechanisms (or Bodies)
- Reporting Cycles
- Human Rights Issues (or Themes)
- Affected Persons
- Recommending States (applicable to UPR (Universal Periodic Review) recommendations only)
... and State-specific classifications of recommendations and actions (and users) such as
- Recommendation Clusters (for clustering overlapping recommendations and assign actions to clusters)
- Organisations (for identifying Government agencies responsible for implementation of actions, and application users).
Finally, also the SDGs are regarded as taxonomies, classifying the SDG Targets (and optionally also recommendations or actions if desired).
Initialise taxonomies & categories
Taxonomies should and categories could be defined in the "Seeds" file /db/seeds.rb that allows initialising the database with default content during installation and many common taxonomies and categories are included by default.
Note: in addition to the default Seeds file in the "master" branch there is also a Seeds file for a minimal set up in the "lite" branch that only contains the most basic taxonomies and categories
While categories can easily be added through the UI after the initial, installation, taxonomies can not be managed using the UI but must be updated in the database, e.g. using the Rails CLI (Command Line Interface).
Here is an example for how a taxonomy can be set up in the Seeds file:
body = Taxonomy.new( title: 'Human Rights Mechanism', tags_recommendations: true, tags_measures: false, tags_sdgtargets: false, tags_users: false, allow_multiple: false, has_manager: true, priority: 1, is_smart: false, groups_recommendations_default: 1, ) body.save!
For each taxonomy the following attributes can be specified (see also /db/schema):
||text||✔️||the taxonomy title (not currently used and overridden by client configuration)|
||boolean||classifies SDG Targets?|
||boolean||false: categories are exclusive, true: multiple categories allowed|
||boolean||if user can be assigned and made responsible for category (will recive email reminders for overdue indicator status updates)|
||integer||display order of taxonomy (can also be used for taxonomy groups defined by client config, e.g. priority 1-10 for universal and 11-20 for national taxonomies)|
||boolean||if categories are SMART criteria - determines UI presentation|
||integer||if Actions are grouped (or subgrouped) by category in Action lists. 1: primary group, 2: subgroup|
||integer||if Recommendations are grouped (or subgrouped) by category in Recommendation lists. 1: primary group, 2: subgroup|
||integer||if SDG Targets are grouped (or subgrouped) by category in SDG Target lists. 1: primary group, 2: subgroup|
Here an example how categories can be initialised using FactoryGirl:
FactoryGirl.create( :category, taxonomy:body, title:'Universal Periodic Review', short_title:'UPR', )
Note: the taxonomy attribute must reference a taxonomy previously defined in the Seeds file (here:
For each category the following attributes can be specified (see also /db/schema):
Remember: opposed to taxonomies, categories can also be created, updated and deleted through the UI
||text||✔️||the category title|
||string||✔️||the category short title, used for tags|
||string||the category reference, should be unique, can be used for sorting|
||text||the category decsription (supports markdown)|
||string||a category URL if relevant|
||boolean||if category is draft (
||boolean||if category can only tag users (
||integer||the taxonomy id (note: in the Seeds file use previously defined taxonomy variable instead, eg
|'manager_id'||integer||a user id (not to be specified in Seeds file but using UI only)|