Model update language

From Endeavour Knowledge Base

The common information model is constantly evolving and there is a a constant need to update the contents. There generally two types of sources for updating a model:

  • An authoring tool providing the facility to add, edit and delete the content of a local model instance.
  • A message from a remote system using a remote Information model instance, triggered by an update to that remote model

Both these approaches result in exchange of data via the IM API resulting in a series of actions that update a model instance.

In order to update a model there is a need for a transaction type of syntax containing the update instructions. This article describes the syntax.

General approach

The approach to the language is directly influenced by the SPARQL update language , a companion language to SPARQL query. 

The rationale behind this approach is that at a lower level than OWL2 and the remainder of the Discovery IM language , all data components of the information model are conceptually stored as a property graph.  Essentially this means that data is represented as a chain of nodes and relationships, with properties assigned to nodes and sometimes relationships. In some cases the nodes and relationships represent OWL2 language constructs and in  others, the simpler data model or value set constructs. 

As in all messaging based updates, there is a need for a transaction i.e. the set of things that must be completed before another transaction occurs, and the order of those transactions must be preserved. Thus the language explicitly packages transactions.

The variation on SPARQL update is as a result of node properties. SPARQL update supports inserts and deletes. Discovery modelling language also supports the idea of an update.

Like the information model itself, update instructions are packaged in an information model document. Classes are arranged as follows;

Information model components.png