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