Re: Definitions and provenance and invariance

On Tue, Jun 14, 2011 at 12:09, Graham Klyne <GK@ninebynine.org> wrote:

> Suppose that the "Dynamic resource has a number of different observable
> properties, some of which do not change over time, and others which do.
>  Then the View resource would be a resource for with a similar set of
> properties such that do not change over time, but correspond to the dynamic
> resource properties at a given time (including properties that do not change
> over time).  If the Dynamic resource does not change over time, then it may
> also serve as its own view resource:  the has view property can be
> reflexive.
>
> The provenance resource is an assertion about the properties of the view
> resource.  I believe the key requirement that we try to capture is that the
> properties about which the provenance resource makes assertions are
> invariant - there is no assertion in the provenance resource which is not
> always true of the view resource.


This is a very beautifully simple model which I think we should keep
in mind before digging too much into the exciting discussions.



"simplified" for the File example:


:i0 a :DynamicResource ;
  :name "/home/towns.txt" ;
  :content [ :bytes "" ] ;
  :creator :Alice .


:i0View a :ViewResource ;
   :viewOf :i0 ;
   :name "/home/towns.txt" ;
   :creator :Alice .


# Metadata stored in filesystem
:i0Provenance a :ProvenanceResource ;
   :provenanceOf :i0View ;
   :account :FileSystem ;
   :processes (
      [  :agent :Alice ;
         :location :server1 ;
         :process :fileCreation ;
         :time "2011-06-15 18:00:01 UTC"  ]
    ) .

# however the log file claims the file was created on her workstation
(not server), and 1 second later (clocks out of sync?)

:i0Provenance2 a :ProvenanceResource ;
   :provenanceOf :i0View ;
   :account :ServerLogFile ;
   :processes (
      [  :agent :Alice ;
         :location :AliceWorkstation;
         :process :fileCreation ;
         :time "2011-06-15 18:00:02 UTC"  ]
    ) .



### New graph - Content changed

:i0 a :DynamicResource ;
  :content [ :bytes "New York\nLos Angeles\n"  ] ;
  :name "/home/towns.txt" ;
  :creator :Alice ;
  :readBy (:Alice :Bob :Charles :David)


:i2 a :ViewResource ;
  :viewOf :i0 ;
  :name "/home/towns.txt" ;
  :creator :Alice ;
  :content [ :bytes "New York\nLos Angeles\n"  ] .

:i2Provenance a :ProvenanceResource ;
  :provenanceOf :i2 ;
   :account :FileSystem ;
   :processes (
      [  :agent :Alice ;
         :location :server1 ;
         :process :fileCreation ;
         :time "2011-06-15 18:00:03 UTC"  ]
# Lost as :FileSystem metadata only keeps last-modified
#     [   :agent :Alice ;
#         :location :server1 ;
#         :process :fileWrite ;
#         :time "2011-06-15 18:00:03 UTC"  ]
     [
         #  :agent :Bob;  - not recorded as only owner/creator is kept
         :location :server1 ;
         :process :fileWrite ;
         :time "2011-06-15 18:14:12 UTC"  ]
    ) .


So say there are additional mutable properties such as :readBy above -
would you consider those propagating into the view as mutable
properties? There could be another view over :i2 for the file before
it was read by Charles, where :readBy is an immutable property.

The example graph above does not distinguish between mutable and
immutable properties - perhaps we shouldn't as they could be difficult
to find, identify and measure.

Here :readBy is not kept by neither the log file or file system and is
a kind of conceptual property - it could be discovered by simply
asking everyone who could have read it, or inferred from traced file
usage, like if its sent in an email.

-- 
Stian Soiland-Reyes, myGrid team
School of Computer Science
The University of Manchester

Received on Thursday, 16 June 2011 14:38:17 UTC