Skip to content

PYESDOC: Document Manager

The CIM ontology combined with project specific specialisations form the backbone of the ES-DOC project. A pythonic declarative mechanism built upon a domain specific langauge, allows the scientific community to take the lead role in defining the documentation requirements.

Taking as input the the vocabulary, ontology & specialisation definitions, a code generator forward engineers code that is copied into the pyesdoc library. The pyesdoc python library underpins the entire ES-DOC tooling chain. It streamlines vocabulary, ontology & specialisation usage. It thus allows upstream assets, tools & applications to be generated and/or developed.

Features

Archival

Using pyesdoc one can manage the esdoc-archive, i.e. the full set of published CIM compliant documents in JSON format. One can read/write documents to/from the archive. One can also search for documents within the archive.

Lifecycle

From the CIM ontology schema definitions, custom tooling forward engineers the full CIM typeset & associated type information. These assets are copied into pyesdoc, thereby permitting a developer to programmatically create, validate, read, write & delete CIM documents. This includes links between documents as well as the documents themselves.

Search

Using pyesdoc one can programmatically issue documentation search queries against the ES-DOC API. The queries can be by project, document type, institute, model, experiment ... etc.

Viewing

Archived documents are stored in JSON format. However using pyesdoc one can format them as either HTML or PDF. HTML formatted documents are subsequently rendered via the ES-DOC web front ends.

Specialisations

From the project specific specialisation definitions, custom tooling forward engineers the associated specialisation information. These assets are copied into pyesdoc thereby permitting a developer to programmatically work with the specialisations.

Data Request

The so-called data request is a data model for defining climatological dataset searches. The database underlying the data request has been pulled into pyesdoc and programmitic access thereby granted.

GitHub Repositories

PYESDOC

  • https://github.com/ES-DOC/esdoc-py-client

Ontologies, i.e. The CIM

  • https://github.com/ES-DOC/esdoc-cim
  • https://github.com/ES-DOC/esdoc-cim-v1-schema
  • https://github.com/ES-DOC/esdoc-cim-v2-schema

Specialisations

  • https://github.com/ES-DOC/esdoc-web-view-specialization

For CMIP6:

  • https://github.com/ES-DOC/cmip6-specializations-aerosol
  • https://github.com/ES-DOC/cmip6-specializations-atmos
  • https://github.com/ES-DOC/cmip6-specializations-atmoschem
  • https://github.com/ES-DOC/cmip6-specializations-land
  • https://github.com/ES-DOC/cmip6-specializations-landice
  • https://github.com/ES-DOC/cmip6-specializations-ocean
  • https://github.com/ES-DOC/cmip6-specializations-ocnbgchem
  • https://github.com/ES-DOC/cmip6-specializations-seaice
  • https://github.com/ES-DOC/cmip6-specializations-toplevel

For CORDEX-P:

  • https://github.com/ES-DOC/cordex-specializations-aerosol
  • https://github.com/ES-DOC/cordex-specializations-atmos
  • https://github.com/ES-DOC/cordex-specializations-land
  • https://github.com/ES-DOC/cordex-specializations-toplevel