Root Processes
Root processes are named families that group related processes. Every process in the process schema must belong to a root process. Root processes themselves are stored in process.root_process and registered before any other processes in the setup_processes workflow.
Process file
File: ./setup/zzz/ai4sh/setup_processes/json_ai4sh/root_process/root_processes_v10_sql.json
Registered root processes
The AI4SH database registers two root processes:
manage_table_data
{
"process": "add_root_process",
"parameters": {
"root_process_id": "manage_table_data",
"title": "Manage table data",
"label": "Root for processes for inserting, updating and deleting table data"
}
}
All data management operations — inserting, updating, and deleting records in any schema — belong to this root. Every process registered in the subsequent community, utility, observation_utility, observation, landscape, and eDNA process files will reference manage_table_data as its root.
translate_data
{
"process": "translate_data",
"parameters": {
"root_process_id": "translate_data",
"title": "Translate data",
"label": "Process for translating data between different formats — note that translate data does not affect the database, it prepares data in different formats to be handled by other processes."
}
}
Translation processes convert data between formats (e.g. from a tabular spreadsheet to the JSON process file format expected by the framework). Crucially, translation processes do not write to the database directly — they prepare data for subsequent processes that do.
Why root processes matter
The root process is part of the primary key structure for process lookup. When the framework receives a process call it uses both the root_process_id and the process_id to find the correct Python function to execute. This two-level lookup means you can have the same process name in different root families without collision.
Root processes also serve as a grouping mechanism in the user interface — all processes under manage_table_data can be presented together as the “data management” operations for a given schema.