<slc = 'http://www.argeo.org/ns/slc'>
+// COMMON
[slc:nameVersion] > nt:base
mixin
- slc:name (STRING) m
- slc:version (STRING) m
-[slc:agentProxy] > mix:title
+// AGENT
+[slc:agentFactory] > nt:unstructured, mix:title
++ * (slc:agent)
+
+[slc:agent] > nt:unstructured, mix:title
++ * (slc:module)
+
+[slc:module] > slc:nameVersion, mix:title
mixin
-[slc:module] > slc:nameVersion,mix:title
+[slc:activableModule] > slc:module
mixin
-[slc:executionFlow] > mix:title
+[slc:executionModule] > slc:activableModule
mixin
+
+[slc:executionSpec] > nt:unstructured, mix:referenceable, mix:title
- slc:name (STRING) m
++ * (slc:executionSpecAttribute) *
+
+[slc:executionSpecAttribute] > nt:base
+mixin abstract
+- slc:isImmutable (BOOLEAN)
+- slc:isConstant (BOOLEAN)
+- slc:isHidden (BOOLEAN)
+
+[slc:primitiveSpecAttribute] > slc:executionSpecAttribute
+mixin
+- slc:type (STRING)
+- slc:value (UNDEFINED)
+[slc:refSpecAttribute] > slc:executionSpecAttribute
+mixin
+// typically a class name
+- slc:type (STRING)
++ slc:value
++ * (mix:title)
+
+[slc:executionFlow] > nt:unstructured, mix:title
+- slc:name (STRING) ! m
+// if the execution spec is a referenceable node
+- slc:spec (REFERENCE)
+// if the execution spec is internal (without name)
++ * (slc:executionSpecAttribute) *
+
+// PROCESS
[slc:process] > nt:unstructured, mix:created, mix:lastModified
-- slc:uuid (STRING) m
+- slc:uuid (STRING) ! m
- slc:status (STRING) m
+ slc:flow (slc:realizedFlow)
[slc:realizedFlow] > nt:base
mixin
+// the name of the flow
+// - slc:flow (STRING)
+// the name of the execution spec
+// - slc:spec (STRING)
- slc:started (DATE)
- slc:completed (DATE)
+//- slc:status (STRING)
+ slc:address (nt:address)
+ slc:flow (slc:realizedFlow) *
+// the realized execution spec attributes
++ * (slc:executionSpecAttribute) *
+
+// RESULT
+[slc:result] > nt:unstructured, mix:created, mix:lastModified
+- slc:uuid (STRING) ! m
+- slc:completed (DATE)
+[slc:check] > nt:unstructured
+// true for PASSED, false for FAILED or ERROR
+- slc:success (BOOLEAN) ! m
+- slc:message (STRING)
+// ERROR if set, the check could not be performed because of an unexpected exception
+- slc:errorMessage (STRING)
++ * (slc:property) *
+[slc:property] > nt:unstructured
+- slc:name (STRING) ! m
+- slc:value (STRING) m