model changes following meeting with Paolo
authorLuc Moreau <l.moreau@ecs.soton.ac.uk>
Mon, 12 Sep 2011 20:50:24 +0100
changeset 265 f0c7299355ae
parent 264 18e3c4ef0fc6
child 267 7f8a11c49bfd
child 268 03317c031234
model changes following meeting with Paolo
model/extensibility.txt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/model/extensibility.txt	Mon Sep 12 20:50:24 2011 +0100
@@ -0,0 +1,201 @@
+
+
+Extensibility points:
+
+- for entities: a standard attribute (type),  note compatible with definition of attribute since remaining constant during caracterization interval
+
+
+- for process execution: recipe link, built in the definitin of process exectuion
+
+      where you subtype process execution is with recipe link, 
+      it up to the application to define how to encode type
+
+     Note, if requirement comes up, we may expose it as a first-class property.
+
+
+
+
+
+
+- Should everything be annotable
+ 
+
+
+recipe link: need a production
+  is recipe link a uri or identifier
+
+identifier what is it
+
+
+
+
+
+
+- Declaration of namespace in container
+
+- General annotation mechanism for unconstrained name value pairs
+     such as rendering metadata for provenance graphs (eg. label, colour)
+
+  -  WHAT can we annotate?  
+    - annotations are first class citizens, they are an element of the model
+    - can be associated to anything that has an identifier (using standard notation, has annotation)
+         and that includes relations (e.g. wasGeneratedBy) since they have implicitly an identifier
+            (id x id x role)
+    - annotations must have an identifier
+     
+
+e is entity
+  hasAnnotation [ is Annotation
+                  hasName "ex:foo"
+                  hasValue "bar"
+                  hasAnnotation ...
+                  hasAccount ... ]
+
+e is entity
+  ex:foo "bar"
+
+annotation(ann1,[ attr: val, ...])
+hasAnnotation(e1, ann1)
+hasAnnotation(e2, ann1)
+
+what's the difference between attributes and annotations
+
+- Colour as annotation is not same as color as attribute
+
+- attributes are intrisic part of characterization
+  annotations, are application dependent, and do not help characterize entities
+   colour as attribyte characterizes a car
+   colour as annotation is application dependent, and may be used for instance to render the graph.
+
+-> types: attributes of entities,
+          
+  for processexecutoin, st, et, type, rl, are standard attributes (in the same sense as for entities)
+
+   needs to adopt same syntax as entities.
+
+
+
+In 8.2.1. say that type is a reserved name for attributes
+Need a section for standard attributes
+
+
+processExecution := processExecution ( identifier [, recipe] [, time] [, time] )
+
+processExecution := processExecution ( identifier , [ attribute-values ] )
+
+
+
+ 
+
+   
+----------------------------------------------------------------------
+
+Should role be [attribute-values]
+
+use() ...=use(..., useQualifiers)
+
+useQualifiers= attribute-values
+
+
+A given qualifier must be "unique" for a process execution:
+  Failing to do so, would prevent us from annotating use,generation, derivation
+  or expressing pe-linked-derivation
+
+If you want to annoate an edge or express pe-linked-derivation, qualifiers must be unique.
+
+example of streamTO WRITE
+  x:port 1,  x:pos=1, 
+  x:port 1,  x:pos=2, 
+
+
+prov:role 
+
+
+procedrue: proc:parameterName, proc:parameterType
+
+
+pe-linked-derivation:= wasDerivedFrom ( identifier , identifier [, processExecution , generateQualifier , useQualifier] )
+
+multiple occurrences of type attributes
+
+----------------------------------------------------------------------
+
+- Action Luc: keep on renaming xxx -> xxxExpression
+- Action Luc: replace roles by xxxQualifier  (use/generatedBy)
+    and expand the grammer of those xxxQualifiers
+
+- 
+interoperability: must exchange prov:concept
+
+----------------------------------------------------------------------
+
+
+31: prov-dm, prov-asn
+
+42: ?? no action
+
+43: ?? no action
+
+44: needs aligning to new terminology/grammars
+
+64: solved with qualifers + if ..., then MUST
+
+69: give example of two process executions one paused, the other
+relocated, attribute changing is location, part of the characterization of the PE.
+
+71: closeable
+
+81: 
+     given a scope, 
+     nultiple entity expressions with a same id,
+    they should be understood as taking the union of all attributes (as conformant to grammar)
+     authro=john
+     authro=bar  ->  [authro=bar, authro=john] 
+
+     id
+
+accounts:  
+  - hierarchical nature is useful
+  -   give example e1 isComplementOf e0 should be in 
+     e0 in toplevel account, e1 in lowerlevel account, scope of e0 includes lowevel account
+
+- container is wrapper, namespace declarations, and mul
+            house keekping concept
+            containing multiple accounts, potentially 
+            an index of all accounts
+            all expressions belong to a default account, placed inside a container
+
+            is it named?
+   
+
+   
+
+82: event was introduced in the conceptualisation, but there is no first class expression in the model to represents, annotate them, or associate relationships with them.
+  We should see whether this is enough, or whether we have more requirements
+
+
+
+85: to be closed pending review
+
+86: paolo to do an ER diagram
+
+87: now addressed by the new structure
+
+48: to close
+
+29: ask stephen, can this be closed , see complementOf
+
+50: add some text around wasScheduledAfter, close issue 50 (pending)
+    raise another issue, to ask about wasScheduledAfter
+
+91: locations are optional attributes for entities and process if they characterize them
+    for the duration,
+    alternative they can be expressed an annotation,
+    
+    standard name: location
+    multiple locations are possible
+
+94: yes
+
+
+if role becomes qualifier, should time be encoded in qualifier??