From be5cd5b36e092d1fb0a34d2a7007da9a5c7a2378 Mon Sep 17 00:00:00 2001
From: Ruslan Kashapov <ruslan.kashapov@pantheon.tech>
Date: Tue, 2 Mar 2021 16:48:41 +0200
Subject: Docs: overview, architecture, design, modeling

Issue-ID: CPS-268
Change-Id: I31480a9a6186af0ddedae4f0eca06a744a2e2d64
Signed-off-by: Ruslan Kashapov <ruslan.kashapov@pantheon.tech>
(cherry picked from commit 55dc654964942aa67c48f09b0ba56059be8e923b)
---
 docs/modeling.rst | 47 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 47 insertions(+)
 create mode 100644 docs/modeling.rst

(limited to 'docs/modeling.rst')

diff --git a/docs/modeling.rst b/docs/modeling.rst
new file mode 100644
index 0000000000..74ee8ec86a
--- /dev/null
+++ b/docs/modeling.rst
@@ -0,0 +1,47 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright (C) 2021 Pantheon.tech
+.. _modeling:
+
+CPS Modeling
+############
+
+.. toctree::
+   :maxdepth: 1
+
+Basic Concepts
+==============
+
+.. image:: _static/cps-modeling-concepts.png
+   :alt: Basic entities relationship
+
+Administrative entities
+
+- **Dataspace** is a primary logical separation of data.
+
+  Any application can define its own dataspace to store the model(s) and data it owns.
+  Dataspace is uniquely identified by it's name.
+
+- **Schema Set** describes a data model(s).
+
+  Schema Set holds reference(s) to single or multiple YANG modules. Schema Set belongs to dataspace
+  and uniquely identified by its name (within its own dataspace). Same YANG resources (source files) can be
+  referenced by multiple schema sets from different dataspaces.
+
+- **Anchor** identifies the unique data set (data record) within a dataspace
+
+  Anchor always references a schema set within same dataspace which describes a data model of associated data.
+  Multiple anchors may reference same schema set. Anchor is uniquely identified by its name (within own dataspace).
+
+Data
+
+- **Data Node** represents a data fragment.
+
+  Each data node can have zero or more descendants and together they form a data instance tree.
+  The data node tree belongs to an anchor.
+
+  Data node is representing a data fragment described in a YANG model as a *container* and/or a *list*.
+  The data described as a *leaf* and/or a *leaf-list* are stored within a parent data node.
+
+  The data node position within a tree is uniquely identified by the node's unique **xpath** which can be used
+  for partial data query.
-- 
cgit