Skip to content
sam.gerene edited this page May 29, 2022 · 7 revisions

Kalliope

Kalliope is a set of C# libraries used to read and write ORM2 files. Kalliope is used in RHEA products and projects to perform code generation. The Kalliope libraries are distributed with the Apache License 2.0.

Object-Role Modeling

Object-Role Modeling (ORM) is a fact-oriented approach for modeling, transforming, and querying business domain information in terms of the underlying facts of interest, where all facts and rules may be verbalized in language readily understandable by non-technical users of those business domains. Fact-oriented modeling is attribute-free, treating all elementary facts as relationships. For information modeling, fact-oriented graphical notations are typically far more expressive than other notations. Avoiding attributes in the base model enhances semantic stability and populatability, and facilitates natural verbalization.

How to use Kalliope

MORE COMING SOON

Solution Structure

The Kalliope solution contains the following projects:

  • Kalliope: Provides the POCO classes that have been (reverse-engineered) from the ORM2 and associated meta-models.
  • Kalliope.Common: Provides common C# attributes and enumeration data-types that are used throughout the solution.
  • Kalliope.DTO: Provides code-generated DTO representions of the POCO classes. Instances of DTO classes are read from a data-source such as an XML file or a REST API.
  • Kalliope.Dal: Provides code-generated factory classess and business logic that convert DTO's into a dereferenced POCO based object-graph.
  • Kalliope.Xml: Provides XML Readers that deserialize the contents of an ORM2 (XML) file.
  • Kalliope.Xml.Tests: Suite of tests to verify that the Kalliope.Xml works properly.
  • Kalliope.Generator: Provides convention-based dotliquid code generators that use the Kalliope library for code-generation
  • Kalliope.Generator.Tests: Suite of tests to verify the code-generators and to perform code-generation

For a detailed run down of the structure of each project, please read Solution Structure

License

The Kalliope libraries are provided to the community under the Apache License 2.0. The solution contains files that contain information about the ORM2 metamodel which are distributed with the Common Public License 1.0 or the zlib/libpng License. The beforementioned files can be found in the resources folder of the Kalliope project.

Contributions

Contributions to the code-base are welcome. However, before we can accept your contributions we ask any contributor to sign the Contributor License Agreement (CLA) and send this digitaly signed to s.gerene@rheagroup.com. You can find the CLA's in the CLA folder.

Kalliope

  1. Home
  2. Documentation Overview
  3. Quick Start
  4. Roadmap

Soultion Structure

  1. Solution Structure

Kalliope Data Model

  1. The Data Model
  2. Kalliope Attributes
  3. Code Generation

Kalliope ORM to OO

  1. Intermediate OO classes

Code Generation with Kalliope

  1. Code Generation

Developer Environment

  1. Developers Experience
  2. Build and Release
Clone this wiki locally