Kalliope Data Model - RHEAGROUP/Kalliope GitHub Wiki

Kalliope Data Model

The Kalliope libraries are an implementation of the ORM2 data-model. The ORM2 data-model used by Kalliope stems from the NORMA software provided by ORM Solutions. The data-model is expressed using the microsoft "Domain Specific Language" toolkit and the generated XML schema. Both the DSL files and XML schema files are available at the following locations:

ORM2 models are serialized as XML files according to the various ORM XML schema which can be used to verify the correctness of the files. The following schema are typically used:

The ORM2 data-model contains data-types, classes and relationships (associations) between the classes. The data-model is made up of different parts (which are reflected in the previously mentioned XML schema):

  • Core
  • Diagrams
  • Custom Properties

Core

The core part of the ORM2 data-model is encoded in the ORMCore.dsl file. The classes, relationships and datatypes encoded in the ORMCore.dsl file are translated into C# POCO classes in the Kalliope.Core namespace of the Kalliope library. Each class ORM2 model derives from the derives from the abstract super-type ModelThing which contains the Id property (a string-based unique identifier). The Enumeration data-types contained in the ORM2 data-model are contained in the Kalliope.Common library.

Diagrams

The Diagramming part of the ORM2 data-model is encoded in the ORMShape.dsl file. The classes, relationships and datatypes encoded in the ORMShape.dsl files are translated into C# POCO classes in the Kalliope.Diagrams namespace of the Kalliope library.

Custom Properties

MORE COMING SOON

Absorption

MORE COMING SOON

DiagramDisplay

MORE COMING SOON

ShapeGrouping

MORE COMING SOON

C# Code

The Kalliope data-model is translated into C# code, read more about the translation conventions here.