<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--

 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership.  The ASF licenses this file
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.

-->

<rdf:RDF xmlns="http://purl.org/wf4ever/roevo#" 
	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:prov="http://www.w3.org/ns/prov#"
	xmlns:dcterms="http://purl.org/dc/terms/" xmlns:owl="http://www.w3.org/2002/07/owl#"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="RoEvoDocument"
	xml:base="http://example.com/test/base"
	xsi:schemaLocation="http://purl.org/wf4ever/roevo# ../../../../../../../main/resources/org/apache/taverna/scufl2/rdfxml/xsd/roevo.xsd">
	<VersionableResource rdf:about="v3">
		<wasChangedBy>
			<ChangeSpecification>
				<rdf:type rdf:resource="http://example.com/InsertNestedWorkflow"/>
				<fromVersion rdf:resource="v2" />
				<hasChange>
					<Removal>
						<relatedResource rdf:resource="http://example.net/removed-item"/>
						<relatedResource rdf:resource="removed-item2"/>
					</Removal>
				</hasChange>
				<hasChange>
					<Addition> 
						<relatedResource rdf:resource="nested-workflow1" />
						<relatedResource rdf:resource="http://example.net/nested-workflow2" />
					</Addition>
				</hasChange>
				<hasChange>
					<Modification>
						<relatedResource rdf:resource="modified"/>
						<relatedResource rdf:resource="http://example.net/modified2"/>
					</Modification>
				</hasChange>
			</ChangeSpecification>
		</wasChangedBy>
		<prov:generatedAtTime rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2012-12-24T18:00:00+01:00</prov:generatedAtTime>
		<prov:wasRevisionOf rdf:resource="v2" />
		<prov:hadOriginalSource rdf:resource="http://example.org/originalSource1"/>
		<prov:hadOriginalSource rdf:resource="originalSource2"/>		
		<prov:wasAttributedTo rdf:resource="../Fred" />
		<prov:wasAttributedTo rdf:resource="http://example.net/SomeoneElse#me" />
	</VersionableResource>
	<VersionableResource rdf:about="v2">		
		<prov:generatedAtTime rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2010-01-15T11:00:00+01:00</prov:generatedAtTime>
		<prov:wasRevisionOf rdf:resource="http://example.net/v1" />
	</VersionableResource>
	<VersionableResource rdf:about="http://example.net/v1">		
		<prov:generatedAtTime rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2010-01-15T11:00:00+01:00</prov:generatedAtTime>
		<prov:wasRevisionOf rdf:resource="http://example.net/v0" />
	</VersionableResource>
</rdf:RDF>
