example of nested account
authorLuc Moreau <l.moreau@ecs.soton.ac.uk>
Wed, 05 Oct 2011 12:38:08 +0100
changeset 499 a3c90ebf5455
parent 498 7121d4cfff37
child 500 d994be55672b
example of nested account
model/container3.prov
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/model/container3.prov	Wed Oct 05 12:38:08 2011 +0100
@@ -0,0 +1,90 @@
+
+; An example of container,
+; - declaring three namespaces with prefix x, viz, prov
+; - two nested accounts
+; - some identifiers (urn:demo:0, urn:demo:100) declared in the toplevel account (acc1)
+;    and reusable in the innermost account
+;
+; The example shows illustrations of prov attributes and application
+;  specific attributes, and application specific annotations.
+
+; identifiers in this example follow the URN syntax with "demo" namespace
+
+container([x http://x.com/,
+           prov: http://w3.org/prov/,
+           viz: http://viz.com/,
+           ],
+           [http://x.com/acc1, http://x.com/acc2]
+           ,
+           account(http://x.com/acc1,
+                   http://x.com/asserter1,
+                entity(urn:demo:0, [ prov:type="File", prov:location="/shared/crime.txt", x:creator="Alice" ])
+                processExecution(urn:demo:100,http://myapp/create-file,t,,[])
+                wasGeneratedBy(urn:demo:0, urn:demo:100, qualifier())
+                
+                account(http://x.com/acc2,
+                        http://x.com/asserter1,      
+                
+                        entity(urn:demo:1, [ prov:type="File", prov:location="/shared/crime.txt", x:creator="Alice", x:content="" ])
+                        entity(urn:demo:2, [ prov:type="File", prov:location="/shared/crime.txt", x:creator="Alice", x:content="There was a lot of crime in London last month."])
+                        entity(urn:demo:3, [ prov:type="File", prov:location="/shared/crime.txt", x:creator="Alice", x:content="There was a lot of crime in London and New York last month."])
+                        entity(urn:demo:4, [ ])
+                        entity(urn:demo:5, [ ])
+                        entity(urn:demo:6, [ prov:type="File", prov:location="/shared/crime.txt", x:creator="Alice", x:content="There was a lot of crime in London and New York last month.", x:spellchecked="yes"])
+
+
+                        processExecution(urn:demo:101,http://myapp/add-crime-in-london,t+1,,[])
+                        processExecution(urn:demo:102,http://myapp/email,t+2,,[])
+                        processExecution(urn:demo:103,http://myapp/edit-London-New-York,t+3,,[])
+                        processExecution(urn:demo:104,http://myapp/email,t+4,,[])
+                        processExecution(urn:demo:105,http://myapp/spellcheck,,,[])
+                        
+                        wasGeneratedBy(urn:demo:1, urn:demo:100, qualifier(x:fct="create"))
+                        wasGeneratedBy(urn:demo:2, urn:demo:101, qualifier(x:fct="save"))     
+                        wasGeneratedBy(urn:demo:3, urn:demo:103, qualifier(x:fct="save"))     
+                        wasGeneratedBy(urn:demo:4, urn:demo:102, qualifier(x:port="smtp", x:section="attachment"))  
+                        wasGeneratedBy(urn:demo:5, urn:demo:104, qualifier(x:port="smtp", x:section="attachment"))    
+                        wasGeneratedBy(urn:demo:6, urn:demo:105, qualifier(x:file="stdout"))
+                        
+                        used(urn:demo:101,urn:demo:1,qualifier(x:fct="load"))
+                        used(urn:demo:103,urn:demo:2,qualifier(x:fct="load"))
+                        used(urn:demo:102,urn:demo:2,qualifier(x:fct="attach"))
+                        used(urn:demo:104,urn:demo:3,qualifier(x:fct="attach"))
+                        used(urn:demo:105,urn:demo:3,qualifier(x:file="stdin"))
+                        
+                        wasDerivedFrom(urn:demo:2,urn:demo:1)
+                        wasDerivedFrom(urn:demo:3,urn:demo:2)
+                        wasDerivedFrom(urn:demo:4,urn:demo:2,urn:demo:102,qualifier(x:port=smtp, x:section="attachment"),qualifier(x:fct="attach"))
+                        wasDerivedFrom(urn:demo:5,urn:demo:3,urn:demo:104,qualifier(x:port=smtp, x:section="attachment"),qualifier(x:fct="attach"))
+                        
+                        wasComplementOf(urn:demo:1,urn:demo:0)
+                        wasComplementOf(urn:demo:2,urn:demo:0)
+                        wasComplementOf(urn:demo:3,urn:demo:0)
+                        wasComplementOf(urn:demo:6,urn:demo:3) 
+                        
+                        
+                        entity(urn:demo:201, [ prov:type="Person", x:name="Alice" ])
+                        agent(urn:demo:201)
+                        
+                        entity(urn:demo:202, [ prov:type="Person", x:name="Bob" ])
+                        agent(urn:demo:202)
+                        
+                        entity(urn:demo:203, [ prov:type="Person", x:name="Charles" ])
+                        agent(urn:demo:203)
+                        
+                        entity(urn:demo:204, [ prov:type="Person", x:name="David" ])
+                        agent(urn:demo:204)
+                        
+                        entity(urn:demo:205, [ prov:type="Person", x:name="Edith" ])
+                        agent(urn:demo:205)
+                        
+                        annotation(urn:demo:301,[viz:icon="person.png"])
+                        hasAnnotation(urn:demo:201,urn:demo:301)
+                        hasAnnotation(urn:demo:202,urn:demo:301)
+                        hasAnnotation(urn:demo:203,urn:demo:301)
+                        hasAnnotation(urn:demo:204,urn:demo:301)
+                        hasAnnotation(urn:demo:205,urn:demo:301)
+                        )
+                ))
+
+