Introduction
Edoxen is a Ruby gem + JSON Schema for representing formal resolutions in a structured, machine-readable, multilingual format.
What problem does it solve?
Different organizations publish resolutions and decisions in different formats. Some use PDFs, some use Word documents, some use custom XML. Even within a single organization, the format can drift over the years.
Edoxen provides:
- A common information model that captures the universal elements of any formal resolution — its identifier, its date, who approved it, what was considered, what was decided.
- A YAML wire format that is human-readable, easy to diff, and easy to edit.
- A JSON Schema that locks the format so consumers can validate what they receive.
- A Ruby library for parsing, building, and serializing resolution data programmatically.
Quick example
yaml
metadata:
title: Resolutions of the 17th OIML Conference, Paris, France
dates:
- start: '2025-10-14'
end: '2025-10-15'
kind: meeting
venue: Paris, France
city: PAR
country_code: FR
source_urls:
- ref: https://oiml.org/.../17th-conference-english.pdf
format: pdf
language_code: eng
resolutions:
- identifier: Conference/2025/01
doi: 10.63493/resolutions/conf202501
urn: urn:oiml:doc:conf:resolution:17.01
dates:
- start: '2025-10-14'
kind: decision
localizations:
- language_code: eng
script: Latn
title: Approval of the agenda for the 17th International Conference
subject: OIML Conference
actions:
- type: approves
message: Approves the agenda for the 17th International Conference.Where to next?
- Installation — set up the gem in your project.
- Schema — see the full JSON Schema reference.
- Multilingual support — how to author EN/FR (or any language pair) resolution sets.
- CLI —
edoxen validateandedoxen normalizefrom the command line.