From 5497bfaf6e0072155179ca9e1018c9aa3c9cc418 Mon Sep 17 00:00:00 2001 From: Luca Frosini Date: Thu, 26 Jan 2023 18:28:54 +0100 Subject: [PATCH] Adding sphinx documentation --- docs/index.rst | 55 +++++++++++++++++++++++++++++++++++++++---- docs/is-model-er.png | Bin 0 -> 22498 bytes docs/is-model.png | Bin 0 -> 16189 bytes 3 files changed, 50 insertions(+), 5 deletions(-) create mode 100644 docs/is-model-er.png create mode 100644 docs/is-model.png diff --git a/docs/index.rst b/docs/index.rst index dd15882..fdc2b08 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -40,6 +40,10 @@ An previous paper about this work is: The IS Model ************ +.. image:: ./is-model.png + +.. image:: ./is-model-er.png + The Information System Model (henceforth IS Model) is a graph model with Entities as nodes and Relations as edges. * Two typologies of entities are envisaged: @@ -47,6 +51,7 @@ The Information System Model (henceforth IS Model) is a graph model with Entitie * Resources, i.e. entities representing a description of "thing" to be managed: * Every Resource is described by a number of Facets. + * Facets, i.e. entities contributing to "build" a description of a Resource. Every facet, once attached to a Resource profile captures a certain aspect / characterization of the resource: * Every facet is characterised by a number of properties. @@ -83,14 +88,54 @@ The Free Dictionary defines a facet as “One of numerous aspects, as of a subje .... +Type Attributes +=============== -******************************** -IS Model Base Concept Definition -******************************** +Any Property defined in the schema is characterised by: -Any extension of the IS Model will be defined as following +Name: + Property Name - +Type: + The Type of the Property (e.g. String, Integer, ...). It can be a Basic Type or a Derived Type or a Complex Type + +Description: + The description of the Property. default=null. + +Mandatory (M): + Indicate if the Property is mandatory. default=false. + +ReadOnly (RO): + The Property cannot change its value. default=false. + +NotNull (NN): + Whether the property must assume a value diverse from 'null' or not. default=false + +Max (Max): + default=null + +Min (Min): + default=null + +Regex (Reg)): + A Regular Expression to validate the property value, default=null. A good online tool for regex is avalable at https://regex101.com/ + + +Basic Types +----------- + + +Derived Types +----------- + +The following are obtained using a String as real type and adding a validation regex. + + + +Complex Types +----------- + +Any property defined by composing basic types, complex types and other complex types. Any complex type can be defined by extending Property type. Property diff --git a/docs/is-model-er.png b/docs/is-model-er.png new file mode 100644 index 0000000000000000000000000000000000000000..be9e408c8330a877fe787cdc869609153504b60b GIT binary patch literal 22498 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 literal 0 HcmV?d00001 diff --git a/docs/is-model.png b/docs/is-model.png new file mode 100644 index 0000000000000000000000000000000000000000..3f2fa7ef926b4c300a345a9fd898ff78541efdcb GIT binary patch literal 16189 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