Skip to content
Remy Vanherweghem edited this page Nov 17, 2022 · 36 revisions

Welcome to the PBOML wiki! This wiki is used to describe the PBOML language, a human-readable data serialization language based on YAML and used to publish analysis products on the PBO website.


🌐 English • Français


Why PBOML?

PBOML is used to publish certain types of reports and analyses produced by the Office of the Parliamentary Budget Officer. Although its design was strongly oriented by this rather specific use, the imperative to keep the language and related tools content agnostic is a guiding value in their development.

The PBOML language was designed to meet simple but crucial requirements in the context of an organization producing a large quantity of specialized publications under high time and staffing constraints.

Target Users

The use of PBOML in publishing operations must be possible for a continuum of three levels of users

  • Administrative staff: with a one-hour training, with no prior programming experience, to make minor changes (e.g., fixing a typo) via a graphical interface or, very occasionally, directly in a document's source code.
  • Economic/Financial Analysts: one hour training and prior experience with command line statistical analysis tools and/or script programming (Stata, MATLAB, R, etc.). These users should be able to assist the developer during the publishing process (by manually modifying numbers or text contained in a pre-structured PBOML document).
  • Junior Developer: advanced training, able to manipulate an entire document based on the documentation and involving analysts in the review/publishing process.

PBOML stands in contrast to other alternative formats that are more difficult to operate without extensive training, such as LaTeX.

Human and machine readable

In many situations, it is important for the OPBO to have the ability to make bulk changes to documents at publication time. For example, it is crucial to be able to change the publication date of a series of documents or to insert missing data from an external database. These content manipulation processes must be scripted to be performed consistently, without human intervention.

Conversely, it is also useful to be able to use a script to extract data from a document. For example, in the context of OPBO-related publications, it might be useful to extract from a series of costings notes for a single legislative measure the set of costs attributed to it so that a single table could be constructed and automatically kept up to date as publications are made.

Our experience with a permissive markup language, such as HTML, shows us that these manipulations are very difficult to reproduce on a large scale and prone to breaking. As for stricter serialization languages - such as XML or JSON - their ability to remain human readable and editable diminishes very fast.

Language // Langue

Clone this wiki locally