Metamodels

Metamodels are ruby files that define our agreement data metamodels models, and supporting models. For example. The main metamodles are

We also extend these (optionally) for each Agreement since different agreements may have special Offerings. For example the standard Offering type has the attributes including

And the Supply Teacher framework lots have Offerings which add framework specific attributes such as:

So the Supply Teacher Framework extends our metamodel.

Once we have the metamodel, CCS agreements are defined by instanciating the relevant model domain, such as (in Ruby)

Agreements.new(:SomeCategory) {

  agreement {
    kind :Framework
    id SOME_ID
    fwk_number "RM8330"
    version "0.1.0"
    description "This agreement is for the provision of Stuff"
    start_date date(2018, 10, 01)
  }
}

Specifically, Catalogues are defined by creating instances of Offerings, either in data files, in code, or through an API. For example see the catalogue output as jsonlines