Model update language: Difference between revisions

From Endeavour Knowledge Base
No edit summary
No edit summary
Line 8: Line 8:


In order to update a model there is a need for a transactional type of syntax containing the update instructions. This article describes the syntax.
In order to update a model there is a need for a transactional type of syntax containing the update instructions. This article describes the syntax.
== <span class="mw-headline" id="General_approach.5Bedit.5D"><span class="mw-headline" id="General_approach"><span class="mw-headline" id="General_approach.5Bedit.5D"><span class="mw-headline" id="General_approach">General approach</span></span></span><span class="mw-editsection"><span class="mw-editsection-bra">[</span>[[edit]]<span class="mw-editsection-bra">]</span></span></span><span class="mw-editsection"><span class="mw-editsection-bra">[</span>[[Model_update_language|edit]]<span class="mw-editsection-bra">]</span></span> ==


The approach to the language is directly influenced by the [https://www.w3.org/TR/sparql11-update/ SPARQL update language]&nbsp;, a companion language to SPARQL query.&nbsp;
The approach to the language is directly influenced by the [https://www.w3.org/TR/sparql11-update/ SPARQL update language]&nbsp;, a companion language to SPARQL query.&nbsp;
Line 19: Line 17:
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.
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.


== <span class="mw-headline" id="Model_document_and_update_class.5Bedit.5D"><span class="mw-headline" id="Model_document_and_update_class">Model document and update class</span><span class="mw-editsection"><span class="mw-editsection-bra">[</span>[[edit]]<span class="mw-editsection-bra">]</span></span></span><span class="mw-editsection"><span class="mw-editsection-bra">[</span>[[Model_update_language|edit]]<span class="mw-editsection-bra">]</span></span> ==
== <span class="mw-headline" id="Model_document_and_update_class.5Bedit.5D.5B.5B.5B.7Cedit.5D.5D.5D.5Bedit.5D"><span class="mw-headline" id="Model_document_and_update_class.5Bedit.5D.5Bedit.5D"><span class="mw-headline" id="Model_document_and_update_class.5Bedit.5D"><span class="mw-headline" id="Model_document_and_update_class">Model document and update class</span></span></span></span> ==


Like the information model itself, update instructions are packaged in an information model document. Classes are arranged as follows; [[File:Model update language.png|center|800x200px|Information model components.png]]
Like the information model itself, update instructions are packaged in an information model document. Classes are arranged as follows; [[File:Model update language.png|center|800x200px|Information model components.png]]

Revision as of 09:05, 14 May 2020

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 transactional type of syntax containing the update instructions. This article describes the syntax.

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.

Model document and update class

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

Information model components.png