(Formerly the EcoSIM Ontology)
https://bioportal.bioontology.org/ontologies/BERVO (OLS coming soon)
The source of truth for BERVO is the repository on this branch.
Editors should update:
src/ontology/bervo-src.csvfor the ROBOT template that defines BERVO termssrc/ontology/bervo-edit.owlfor the ODK edit file that imports the generated component
All terms are preceded by the BERVO: prefix.
The Google Sheet is still available as a collaboration artifact:
https://docs.google.com/spreadsheets/d/1mS8VVtr-m24vZ7nQUtUbQrN8r-UBy3AwRzTfQsmwVL8/edit?usp=sharing
However, it is no longer the authoritative source for builds or pull requests. Changes should be proposed in this repository, ideally through a GitHub issue and pull request.
To rebuild the generated source component from the tracked CSV, run:
cd src/ontology
make components/bervo-src.owlTo prepare a CSV for uploading back into Google Sheets, run:
cd src/ontology
make export-google-sheetThis repository is set up for AI coding agents (Claude Code, Codex, Copilot, Goose).
- AGENTS.md is the canonical instruction file — the source-of-truth
rules, the template contract, ID allocation policy, and the pitfalls that matter.
CLAUDE.md,.github/copilot-instructions.md, and.goosehintsare symlinks to it. .claude/skills/holds task-specific guidance:bervo-termsfor curation,bervo-buildfor builds and QC,bervo-pr-reviewfor reviewing changes..claude/commands/provides/add-term,/qc, and/pm.- A PostToolUse hook validates
bervo-src.csvautomatically after any edit. - Mentioning
@claudeon an issue or PR triggers a response, and PRs touching ontology content or agent instructions get an automated review. Both needANTHROPIC_API_KEYorCLAUDE_CODE_OAUTH_TOKENin the repository secrets, and are skipped without either. - The agents post as
github-actions[bot]by default. To give them their own identity, create a GitHub App, install it on this repository, and add its credentials as theAI4C_AGENT_APP_IDandAI4C_AGENT_PRIVATE_KEYsecrets — the workflows pick them up automatically and fall back to the default token when they are absent. Seedocs/agent-identity.md.
Common tasks are exposed through just (just --list for all):
just validate # structural checks on bervo-src.csv
just find "soil carbon" # search IDs, labels, definitions, synonyms, EcoSIM names
just next-id 0 # next free variable ID
just show BERVO:0000001 # inspect one term
just stats # term counts by ID block and category
just test # run the test suite
just build # rebuild the OWL component from the CSVjust validate runs src/scripts/validate_bervo_src.py, which checks the invariants
ROBOT does not: ragged rows, duplicate IDs and labels, malformed IDs, and references
to terms that do not exist.
See also this slide deck
chatgpt ADA was used to create a program to iterate through the bervo fortran codebase and generate an obo format file of all parameter codes plus their names.
IDs of the form BERVO:<CODE> were created
Note: in future these may be translated to numeric IDs but for now the codes are convenient
The OAK generate-definitions command was used to generate definitions for all terms
Each parameter was organized into a grouping class.
We used Claude due to the large context window. A csv of all CODE-label pairs were uploaded to Claude, Claude then suggested groupings for these. These were examined in text format, we then asked Claude to convert to OBO format.
We curated a handful of OBO stanzas where we linked each parameter to other concepts.
This was loaded into a curategpt database, to serve as in-context examples.