Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • (PoC) Store and validate a set of modules (a model file)
  • (Full project) Load a model instance and validate it given a model set reference.(using a separate SPI)

1.2   Anchor

...

persistence

1.2.1       Anchor

...

persistence/retrieval

A system or human user should be able to create an anchor point . This serves the purpose of providing a name (or ID) for the model data and a root for the structure (together with the odd case of floating leaves at the top of a module).  

As a user of CPS I want to be able to: 

  • Create an anchor point given a name and a dataspace 
  • Retrieve an anchor point and the associated attributes given a name and a dataspace
  • List the anchor points anchors in the system given a dataspace
  • Delete an anchor point anchors given a name and a dataspace 

An anchor point name shall be unique within a dataspace. Duplicates shall be rejected. If a dataspace is not defined in the system, it shall be created upon anchor point creation. 

1.2.2       Anchor

...

models set association

A system or human user should be able to associate an anchor point to a model set. 

...

  • Associate an anchor point to a module set given aanchor point and a module set reference. (upon creation)
  • Retrieve a model set reference, given an anchor point 

1.3       Fragment (Node) Persistence

1.3.1       Fragment (Node) persistence

A system or human user should be able to persist and retrieve a model data fragment ie. Node under a parent fragment. A fragment is considered an anchor point, a container or a list element, the xpath identifying the fragment together with the leaf and leaf-list attributes.
As a user of CPS I want to be able to:

  • Persist a fragment given an
    • Anchor point
  • Retrieve a fragment given a
    • anchor pointAnchor
    • Xpath expression (limited to path and key equality, e.g. /A/B/C will grab a container while /A/B/C/ L[@key1='a key'][@key2='another key'] will grab a keyed list element)

...

As a user of CPS I want to be able to:

  • Retrieve the anchor point Anchor of a fragment Node given an
    • A fragmentNode

1.4.3       Containment Query

...

  • Retrieve all the relevant fragments (nodes) given an
    • Schema node identifier  

2        Database backend

...