Re: Semantic Domain Driven Development

Adam, I'm copying this response to the list, trying to make things clearer.
I'll start by attaching a diagram about the set related stuff.

Sets depicts categories which are feed later into a functional style of
transforms / traversal (Monads). CSPOs are in the Resources category while
Kinds category renders a basic aggregation type inference. Then the three
sets intersection comprehends data (Statements), schema (Mappings) and
behavior (Transforms) categories.

Set membership is given from the Resources / Occurrences complying set
attributes of interfaces definitions (quad signatures). Occurrences quads
are aggregated by Resource quads and identified by their URN. A Resource
can have multiple occurrences and all sets definitions have their own
resources reifying their occurrences.

The interfaces for the diagram sets so far (with their hierarchy and quads
signatures) are:


   -

   Interfaces (sets / roles):
   -

   IQuad : (IContext, ISubject, IPredicate, IObject)
   -

   IResource : (ResourceURN Resources, Occurrences, Kinds Bindings) : IQuad
   -

   IContext : IResource
   -

   ISubject : IResource : (ISubjectKind, ISubject, IPredicateKind,
   IObjectKind)
   -

   IPredicate : IResource : (IPredicateKind, ISubjectKind, IPredicate,
   IObjectKind)
   -

   IObject : IResource : (ISubjectKind, ISubject, IPredicateKind,
   IObjectKind)
   -

   IKind : IContext
   -

   ISubjectKind : IKind, IPredicate, IObject : (IState, ISubjectKind,
   IPredicate, IObject)
   -

   IPredicateKind : IKind, ISubject, IObject : (IState, ISubject,
   IPredicateKind, IObject)
   -

   IObjectKind : IKind, ISubject, IPredicate : (IState, ISubject,
   IPredicate, IObjectKind)
   -

   IStatement : ISubjectKind, IPredicateKind, IObjectKind :
   (IStatementKind, IPredicate, ISubject, IObject)
   -

   IStatementKind : IKind, ISubjectKind, IPredicateKind, IObjectKind :
   (IState, PK of SK, OK: Relation, SK, OK)
   -

   IMapping : ISubjectKind, IPredicateKind, IObjectKind : (IMappingKind,
   IStatementKind, ISubject, IPredicate)
   -

   IMappingKind : IKind, ISubjectKind, IPredicateKind, IObjectKind :
   (IState, SK of PK, OK: Schema, PK, OK)
   -

   ITransform : ISubjectKind, IPredicateKind, IObjectKind :
   (ITransformKind, IMappingKind, IPredicate, IObject)
   -

   ITransformKind : IKind, ISubjectKind, IPredicateKind, IObjectKind :
   (IState, OK of SK, PK: Behavior, SK, PK);
   -

   IState : ISubjectKind, IPredicateKind, IObjectKind
   -

   IStateKind : IKind, ISubjectKind, IPredicateKind, IObjectKind
   -

   IQuad : CSPO Resource Interfaces classes quad. Builder fluent API.
   -

   (IContext, ISubject, IPredicate, IObject);
   -

   In an occurrence (Quad) CSPO Resources URNs are wrapped in their
   respective Resource roles. Occurrence Monad wraps specific Quad types
   (CSPOs, Kinds, Statements, etc.).
   -

   Kinds interfaces differentiate in their CSPOs return value types.


And have their corresponding implementing classes:


   -

   SubjectResourceQuad : ISubject
   -

   SubjectOccurrenceQuad : ISubject
   -

   SubjectKind : ISubjectKind
   -

   PredicateResourceQuad : IPredicate
   -

   PredicateOccurrenceQuad : IPredicate
   -

   PredicateKind : IPredicateKind
   -

   ObjectResourceQuad : IObject
   -

   ObjectOccurrenceQuad : IObject
   -

   ObjectKind : IObjectKind
   -

   StatementResourceQuad : IStatement
   -

   StatementOccurrenceQuad : IStatement
   -

   StatementKind : IStatementKind
   -

   MappingResourceQuad : IMapping
   -

   MappingOccurrenceQuad : IMapping
   -

   MappingKind : IMappingKind
   -

   TransformResource : ITransform
   -

   Transform : ITransform
   -

   TransformKind :  ITransformKind
   -

   StateResource : IState
   -

   State : (Relationship, Relation, Entity, Value) : DCI Model I/O.
   -

   StateKind : (PK of SK / OK: Dataflow domain / range)


Functional Features:


   -

   APIs. Traversal. State aggregate Kinds, Kinds aggregate Occurrences,
   Occurrences aggregate Resources (roles). Perform Mappings Transforms.
   Layers dataflows.



   -

   ResourceMonad<ResourceClass : IResource / ResourceURN, etc.>
   -

   KindMonad<KindClass : SubjectKind, etc.> Monad
   -

   ResourceQuadMonad<ResourceQuadClass : SubjectResourceQuad, etc.> Monad
   -

   OccurrenceQuadMonad<OccurrenceQuadClass : SubjectOccurrenceQuad, etc.>
   Monad



   -

   Augmentations:
   -

   Incremental / Feedback.
   -

   Aggregations: ResourceURNs Source IRIs Sets / Layers streams / events
   (Resources, Occurrences, Kinds) parse / Occurrences population.
   -

   Alignments: Aggregation traversal: ResourceURN URN IDs Model population.
   Merge / Matching, order / relations / contexts. Encoding (methods).
   -

   Activations: Relationship Models I/O (DCI Layers / expanded SPO
   Aggregations feedback). DIDs URN hashing / generation (HATEOAS Endpoints).
   Data Flow.


Sorry for this fuzzy set of statements. I'll be trying to clean up my notes
(raw notes for now only).

Best Regards,
Sebastián.
https://github.com/sebxama/scrapbook

Received on Thursday, 4 February 2021 00:08:10 UTC