##    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.
## 

@prefix dc:  <http://purl.org/dc/elements/1.1/> .
@prefix prov:  <http://www.w3.org/ns/prov#> .
@prefix cnt:  <http://www.w3.org/2011/content#> .
@prefix foaf:  <http://xmlns.com/foaf/0.1/> .
@prefix dcmitype:  <http://purl.org/dc/dcmitype/> .
@prefix wfprov:  <http://purl.org/wf4ever/wfprov#> .
@prefix dcam:  <http://purl.org/dc/dcam/> .
@prefix xml:  <http://www.w3.org/XML/1998/namespace> .
@prefix vs:  <http://www.w3.org/2003/06/sw-vocab-status/ns#> .
@prefix dcterms:  <http://purl.org/dc/terms/> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix wot:  <http://xmlns.com/wot/0.1/> .
@prefix wfdesc:  <http://purl.org/wf4ever/wfdesc#> .
@prefix dct:  <http://purl.org/dc/terms/> .
@prefix tavernaprov:  <http://ns.taverna.org.uk/2012/tavernaprov/> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix skos:  <http://www.w3.org/2004/02/skos/core#> .
@prefix scufl2:  <http://ns.taverna.org.uk/2010/scufl2#> .

<http://ns.taverna.org.uk/2011/data/a85ef801-3db0-4c56-93a7-532d1b4afbf1/ref/3a82e39d-a537-40cf-91a0-2c89d4a2e62b>
        tavernaprov:content          <intermediates/3a/3a82e39d-a537-40cf-91a0-2c89d4a2e62b.txt> ;
        wfprov:describedByParameter  <http://ns.taverna.org.uk/2010/workflowBundle/01348671-5aaa-4cc2-84cc-477329b70b0d/workflow/Hello_Anyone/processor/Concatenate_two_strings/in/string1> ;
        wfprov:describedByParameter  <http://ns.taverna.org.uk/2010/workflowBundle/01348671-5aaa-4cc2-84cc-477329b70b0d/workflow/Hello_Anyone/processor/hello/out/value> ;
        wfprov:wasOutputFrom         <http://ns.taverna.org.uk/2011/run/a85ef801-3db0-4c56-93a7-532d1b4afbf1/process/2c72b19f-c6d6-4fae-88ab-f96ec0b11fb7/> ;
        prov:qualifiedGeneration     _:b0 ;
        prov:wasGeneratedBy          <http://ns.taverna.org.uk/2011/run/a85ef801-3db0-4c56-93a7-532d1b4afbf1/process/2c72b19f-c6d6-4fae-88ab-f96ec0b11fb7/> ;
        rdf:type                     wfprov:Artifact ;
        rdf:type                     prov:Entity .

_:b1    prov:atTime  "2014-05-28T11:49:43.601+01:00"^^xsd:dateTime ;
        rdf:type     prov:Start .

_:b0    prov:hadRole   <http://ns.taverna.org.uk/2010/workflowBundle/01348671-5aaa-4cc2-84cc-477329b70b0d/workflow/Hello_Anyone/processor/hello/out/value> ;
        prov:activity  <http://ns.taverna.org.uk/2011/run/a85ef801-3db0-4c56-93a7-532d1b4afbf1/process/2c72b19f-c6d6-4fae-88ab-f96ec0b11fb7/> ;
        rdf:type       prov:Generation .

<http://ns.taverna.org.uk/2010/workflowBundle/01348671-5aaa-4cc2-84cc-477329b70b0d/workflow/Hello_Anyone/processor/Concatenate_two_strings/in/string2>
        rdfs:comment  "Concatenate_two_strings input string2"@en ;
        rdfs:label    "string2" ;
        rdf:type      wfdesc:Input ;
        rdf:type      prov:Role .

_:b2    prov:atTime  "2014-05-28T10:49:45.524Z"^^xsd:dateTime ;
        rdf:type     prov:Start .

<intermediates/3a/3a82e39d-a537-40cf-91a0-2c89d4a2e62b.txt>
        rdf:type               cnt:ContentAsText ;
        cnt:characterEncoding  "UTF-8"^^xsd:string ;
        cnt:chars              "Hello, "^^xsd:string ;
        tavernaprov:byteCount  "7"^^xsd:long ;
        tavernaprov:sha512     "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e"^^xsd:string ;
        tavernaprov:sha1       "f52ab57fa51dfa714505294444463ae5a009ae34"^^xsd:string ;
        rdf:type               tavernaprov:Content .

_:b3    prov:hadRole  <http://ns.taverna.org.uk/2010/workflowBundle/01348671-5aaa-4cc2-84cc-477329b70b0d/workflow/Hello_Anyone/in/name> ;
        prov:entity   <http://ns.taverna.org.uk/2011/data/a85ef801-3db0-4c56-93a7-532d1b4afbf1/ref/d3d2e008-af7f-4c8c-9369-85d2d71c8121> ;
        rdf:type      prov:Usage .

_:b4    prov:atTime  "2014-05-28T11:49:43.711+01:00"^^xsd:dateTime ;
        rdf:type     prov:End .

<http://ns.taverna.org.uk/2010/workflowBundle/01348671-5aaa-4cc2-84cc-477329b70b0d/workflow/Hello_Anyone/processor/Concatenate_two_strings/in/string1>
        rdfs:comment  "Concatenate_two_strings input string1"@en ;
        rdfs:label    "string1" ;
        rdf:type      wfdesc:Input ;
        rdf:type      prov:Role .

<outputs/greeting.txt>
        rdf:type               cnt:ContentAsText ;
        cnt:characterEncoding  "UTF-8"^^xsd:string ;
        cnt:chars              "Hello, fred"^^xsd:string ;
        tavernaprov:byteCount  "11"^^xsd:long ;
        tavernaprov:sha512     "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e"^^xsd:string ;
        tavernaprov:sha1       "83577aa951bee185cc0d094e63af25f3d5d433d4"^^xsd:string ;
        rdf:type               tavernaprov:Content .

<http://ns.taverna.org.uk/2011/data/a85ef801-3db0-4c56-93a7-532d1b4afbf1/ref/d3d2e008-af7f-4c8c-9369-85d2d71c8121>
        tavernaprov:content          <inputs/name.txt> ;
        wfprov:describedByParameter  <http://ns.taverna.org.uk/2010/workflowBundle/01348671-5aaa-4cc2-84cc-477329b70b0d/workflow/Hello_Anyone/processor/Concatenate_two_strings/in/string2> ;
        wfprov:describedByParameter  <http://ns.taverna.org.uk/2010/workflowBundle/01348671-5aaa-4cc2-84cc-477329b70b0d/workflow/Hello_Anyone/in/name> ;
        rdf:type                     wfprov:Artifact ;
        rdf:type                     prov:Entity .

_:b5    prov:hadPlan  <http://ns.taverna.org.uk/2011/software/taverna-cmd-core-2.5.0> ;
        prov:agent    <#taverna-engine> ;
        rdf:type      prov:Association .

_:b6    prov:hadRole   <http://ns.taverna.org.uk/2010/workflowBundle/01348671-5aaa-4cc2-84cc-477329b70b0d/workflow/Hello_Anyone/out/greeting> ;
        prov:activity  <http://ns.taverna.org.uk/2011/run/a85ef801-3db0-4c56-93a7-532d1b4afbf1/> ;
        rdf:type       prov:Generation .

_:b7    prov:hadPlan  <http://ns.taverna.org.uk/2010/workflowBundle/01348671-5aaa-4cc2-84cc-477329b70b0d/workflow/Hello_Anyone/processor/Concatenate_two_strings/> ;
        prov:agent    <#taverna-engine> ;
        rdf:type      prov:Association .

<http://ns.taverna.org.uk/2011/run/a85ef801-3db0-4c56-93a7-532d1b4afbf1/process/2c72b19f-c6d6-4fae-88ab-f96ec0b11fb7/>
        rdfs:label                   "Processor execution hello"@en ;
        wfprov:describedByProcess    <http://ns.taverna.org.uk/2010/workflowBundle/01348671-5aaa-4cc2-84cc-477329b70b0d/workflow/Hello_Anyone/processor/hello/> ;
        prov:qualifiedStart          _:b8 ;
        rdf:type                     wfprov:ProcessRun ;
        wfprov:wasEnactedBy          <#taverna-engine> ;
        prov:qualifiedAssociation    _:b9 ;
        prov:qualifiedEnd            _:b10 ;
        prov:startedAtTime           "2014-05-28T11:49:43.409+01:00"^^xsd:dateTime ;
        wfprov:wasPartOfWorkflowRun  <http://ns.taverna.org.uk/2011/run/a85ef801-3db0-4c56-93a7-532d1b4afbf1/> ;
        prov:wasAssociatedWith       <#taverna-engine> ;
        prov:endedAtTime             "2014-05-28T11:49:43.461+01:00"^^xsd:dateTime .

_:b11   prov:activity  <#taverna-prov-export> ;
        rdf:type       prov:Generation .

_:b12   prov:activity  <http://ns.taverna.org.uk/2011/run/a85ef801-3db0-4c56-93a7-532d1b4afbf1/> ;
        rdf:type       prov:Communication .

_:b8    prov:atTime  "2014-05-28T11:49:43.409+01:00"^^xsd:dateTime ;
        rdf:type     prov:Start .

_:b13   prov:hadRole  <http://ns.taverna.org.uk/2010/workflowBundle/01348671-5aaa-4cc2-84cc-477329b70b0d/workflow/Hello_Anyone/processor/Concatenate_two_strings/in/string2> ;
        prov:entity   <http://ns.taverna.org.uk/2011/data/a85ef801-3db0-4c56-93a7-532d1b4afbf1/ref/d3d2e008-af7f-4c8c-9369-85d2d71c8121> ;
        rdf:type      prov:Usage .

<http://ns.taverna.org.uk/2011/software/taverna-cmd-core-2.5.0>
        rdfs:label  "Taverna command line core 2.5.0"@en ;
        rdf:type    prov:Plan .

<http://ns.taverna.org.uk/2011/run/a85ef801-3db0-4c56-93a7-532d1b4afbf1/>
        prov:qualifiedUsage         _:b3 ;
        wfprov:describedByWorkflow  <http://ns.taverna.org.uk/2010/workflowBundle/01348671-5aaa-4cc2-84cc-477329b70b0d/workflow/Hello_Anyone/> ;
        prov:qualifiedEnd           _:b14 ;
        wfprov:usedInput            <http://ns.taverna.org.uk/2011/data/a85ef801-3db0-4c56-93a7-532d1b4afbf1/ref/d3d2e008-af7f-4c8c-9369-85d2d71c8121> ;
        prov:endedAtTime            "2014-05-28T11:49:43.736+01:00"^^xsd:dateTime ;
        rdfs:label                  "Workflow run of Hello_Anyone"@en ;
        dct:hasPart                 <http://ns.taverna.org.uk/2011/run/a85ef801-3db0-4c56-93a7-532d1b4afbf1/process/2c72b19f-c6d6-4fae-88ab-f96ec0b11fb7/> ;
        prov:wasAssociatedWith      <#taverna-engine> ;
        prov:qualifiedAssociation   _:b15 ;
        prov:qualifiedStart         _:b16 ;
        wfprov:wasEnactedBy         <#taverna-engine> ;
        rdf:type                    wfprov:WorkflowRun ;
        dct:hasPart                 <http://ns.taverna.org.uk/2011/run/a85ef801-3db0-4c56-93a7-532d1b4afbf1/process/682e212e-242d-4b4d-999b-e6ea4757f595/> ;
        prov:used                   <http://ns.taverna.org.uk/2011/data/a85ef801-3db0-4c56-93a7-532d1b4afbf1/ref/d3d2e008-af7f-4c8c-9369-85d2d71c8121> ;
        prov:startedAtTime          "2014-05-28T11:49:43.166+01:00"^^xsd:dateTime .

<>      foaf:primaryTopic         <http://ns.taverna.org.uk/2011/run/a85ef801-3db0-4c56-93a7-532d1b4afbf1/> ;
        prov:qualifiedGeneration  _:b11 ;
        prov:wasGeneratedBy       <#taverna-prov-export> ;
        rdf:type                  prov:Bundle .

<http://ns.taverna.org.uk/2011/data/a85ef801-3db0-4c56-93a7-532d1b4afbf1/ref/d97338ab-e6c8-4513-a305-a237c70ee63e>
        tavernaprov:content          <outputs/greeting.txt> ;
        wfprov:describedByParameter  <http://ns.taverna.org.uk/2010/workflowBundle/01348671-5aaa-4cc2-84cc-477329b70b0d/workflow/Hello_Anyone/processor/Concatenate_two_strings/out/output> ;
        wfprov:wasOutputFrom         <http://ns.taverna.org.uk/2011/run/a85ef801-3db0-4c56-93a7-532d1b4afbf1/process/682e212e-242d-4b4d-999b-e6ea4757f595/> ;
        prov:qualifiedGeneration     _:b17 ;
        wfprov:wasOutputFrom         <http://ns.taverna.org.uk/2011/run/a85ef801-3db0-4c56-93a7-532d1b4afbf1/> ;
        prov:wasGeneratedBy          <http://ns.taverna.org.uk/2011/run/a85ef801-3db0-4c56-93a7-532d1b4afbf1/process/682e212e-242d-4b4d-999b-e6ea4757f595/> ;
        wfprov:describedByParameter  <http://ns.taverna.org.uk/2010/workflowBundle/01348671-5aaa-4cc2-84cc-477329b70b0d/workflow/Hello_Anyone/out/greeting> ;
        rdf:type                     wfprov:Artifact ;
        rdf:type                     prov:Entity .

_:b15   prov:hadPlan  <http://ns.taverna.org.uk/2010/workflowBundle/01348671-5aaa-4cc2-84cc-477329b70b0d/workflow/Hello_Anyone/> ;
        prov:agent    <#taverna-engine> ;
        rdf:type      prov:Association .

<http://ns.taverna.org.uk/2010/workflowBundle/01348671-5aaa-4cc2-84cc-477329b70b0d/workflow/Hello_Anyone/processor/Concatenate_two_strings/out/output>
        rdfs:comment  "Concatenate_two_strings output output"@en ;
        rdfs:label    "output" ;
        rdf:type      wfdesc:Output ;
        rdf:type      prov:Role .

<#taverna-prov-export>
        rdfs:label                   "taverna-prov export of workflow run provenance"@en ;
        prov:startedAtTime           "2014-05-28T10:49:45.524Z"^^xsd:dateTime ;
        prov:qualifiedStart          _:b2 ;
        prov:wasInformedBy           <http://ns.taverna.org.uk/2011/run/a85ef801-3db0-4c56-93a7-532d1b4afbf1/> ;
        rdf:type                     prov:Activity ;
        prov:qualifiedEnd            _:b18 ;
        prov:qualifiedAssociation    _:b5 ;
        prov:qualifiedCommunication  _:b12 ;
        prov:endedAtTime             "2014-05-28T10:49:45.674Z"^^xsd:dateTime ;
        prov:wasAssociatedWith       <#taverna-engine> .

<http://ns.taverna.org.uk/2011/run/a85ef801-3db0-4c56-93a7-532d1b4afbf1/process/682e212e-242d-4b4d-999b-e6ea4757f595/>
        rdf:type                     wfprov:ProcessRun ;
        wfprov:describedByProcess    <http://ns.taverna.org.uk/2010/workflowBundle/01348671-5aaa-4cc2-84cc-477329b70b0d/workflow/Hello_Anyone/processor/Concatenate_two_strings/> ;
        prov:wasAssociatedWith       <#taverna-engine> ;
        prov:startedAtTime           "2014-05-28T11:49:43.601+01:00"^^xsd:dateTime ;
        wfprov:wasPartOfWorkflowRun  <http://ns.taverna.org.uk/2011/run/a85ef801-3db0-4c56-93a7-532d1b4afbf1/> ;
        wfprov:usedInput             <http://ns.taverna.org.uk/2011/data/a85ef801-3db0-4c56-93a7-532d1b4afbf1/ref/d3d2e008-af7f-4c8c-9369-85d2d71c8121> ;
        rdfs:label                   "Processor execution Concatenate_two_strings"@en ;
        prov:used                    <http://ns.taverna.org.uk/2011/data/a85ef801-3db0-4c56-93a7-532d1b4afbf1/ref/d3d2e008-af7f-4c8c-9369-85d2d71c8121> ;
        prov:qualifiedAssociation    _:b7 ;
        wfprov:wasEnactedBy          <#taverna-engine> ;
        prov:endedAtTime             "2014-05-28T11:49:43.711+01:00"^^xsd:dateTime ;
        prov:qualifiedUsage          _:b19 ;
        prov:qualifiedEnd            _:b4 ;
        prov:qualifiedStart          _:b1 ;
        wfprov:usedInput             <http://ns.taverna.org.uk/2011/data/a85ef801-3db0-4c56-93a7-532d1b4afbf1/ref/3a82e39d-a537-40cf-91a0-2c89d4a2e62b> ;
        prov:qualifiedUsage          _:b13 ;
        prov:used                    <http://ns.taverna.org.uk/2011/data/a85ef801-3db0-4c56-93a7-532d1b4afbf1/ref/3a82e39d-a537-40cf-91a0-2c89d4a2e62b> .

<http://ns.taverna.org.uk/2010/workflowBundle/01348671-5aaa-4cc2-84cc-477329b70b0d/workflow/Hello_Anyone/in/name>
        rdfs:comment  "Workflow input name"@en ;
        rdfs:label    "name" ;
        rdf:type      wfdesc:Input ;
        rdf:type      prov:Role .

_:b10   prov:atTime  "2014-05-28T11:49:43.461+01:00"^^xsd:dateTime ;
        rdf:type     prov:End .

_:b19   prov:hadRole  <http://ns.taverna.org.uk/2010/workflowBundle/01348671-5aaa-4cc2-84cc-477329b70b0d/workflow/Hello_Anyone/processor/Concatenate_two_strings/in/string1> ;
        prov:entity   <http://ns.taverna.org.uk/2011/data/a85ef801-3db0-4c56-93a7-532d1b4afbf1/ref/3a82e39d-a537-40cf-91a0-2c89d4a2e62b> ;
        rdf:type      prov:Usage .

<http://ns.taverna.org.uk/2010/workflowBundle/01348671-5aaa-4cc2-84cc-477329b70b0d/workflow/Hello_Anyone/processor/hello/>
        rdfs:label  "Processor hello"@en ;
        rdf:type    wfdesc:Process ;
        rdf:type    prov:Plan .

_:b16   prov:atTime  "2014-05-28T11:49:43.166+01:00"^^xsd:dateTime ;
        rdf:type     prov:Start .

<http://ns.taverna.org.uk/2010/workflowBundle/01348671-5aaa-4cc2-84cc-477329b70b0d/workflow/Hello_Anyone/>
        dct:hasPart           <http://ns.taverna.org.uk/2010/workflowBundle/01348671-5aaa-4cc2-84cc-477329b70b0d/workflow/Hello_Anyone/processor/Concatenate_two_strings/> ;
        wfdesc:hasSubProcess  <http://ns.taverna.org.uk/2010/workflowBundle/01348671-5aaa-4cc2-84cc-477329b70b0d/workflow/Hello_Anyone/processor/Concatenate_two_strings/> ;
        dct:hasPart           <http://ns.taverna.org.uk/2010/workflowBundle/01348671-5aaa-4cc2-84cc-477329b70b0d/workflow/Hello_Anyone/processor/hello/> ;
        wfdesc:hasSubProcess  <http://ns.taverna.org.uk/2010/workflowBundle/01348671-5aaa-4cc2-84cc-477329b70b0d/workflow/Hello_Anyone/processor/hello/> ;
        rdf:type              wfdesc:Workflow ;
        rdf:type              prov:Plan .

<http://ns.taverna.org.uk/2010/workflowBundle/01348671-5aaa-4cc2-84cc-477329b70b0d/workflow/Hello_Anyone/processor/hello/out/value>
        rdfs:comment  "hello output value"@en ;
        rdfs:label    "value" ;
        rdf:type      wfdesc:Output ;
        rdf:type      prov:Role .

<inputs/name.txt>  rdf:type    cnt:ContentAsText ;
        cnt:characterEncoding  "UTF-8"^^xsd:string ;
        cnt:chars              "fred"^^xsd:string ;
        tavernaprov:byteCount  "4"^^xsd:long ;
        tavernaprov:sha512     "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e"^^xsd:string ;
        tavernaprov:sha1       "31017a722665e4afce586950f42944a6d331dabf"^^xsd:string ;
        rdf:type               tavernaprov:Content .

_:b9    prov:hadPlan  <http://ns.taverna.org.uk/2010/workflowBundle/01348671-5aaa-4cc2-84cc-477329b70b0d/workflow/Hello_Anyone/processor/hello/> ;
        prov:agent    <#taverna-engine> ;
        rdf:type      prov:Association .

_:b17   prov:hadRole   <http://ns.taverna.org.uk/2010/workflowBundle/01348671-5aaa-4cc2-84cc-477329b70b0d/workflow/Hello_Anyone/processor/Concatenate_two_strings/out/output> ;
        prov:activity  <http://ns.taverna.org.uk/2011/run/a85ef801-3db0-4c56-93a7-532d1b4afbf1/process/682e212e-242d-4b4d-999b-e6ea4757f595/> ;
        rdf:type       prov:Generation .

<#taverna-engine>  rdf:type  tavernaprov:TavernaEngine .

<http://ns.taverna.org.uk/2010/workflowBundle/01348671-5aaa-4cc2-84cc-477329b70b0d/workflow/Hello_Anyone/processor/Concatenate_two_strings/>
        rdfs:label  "Processor Concatenate_two_strings"@en ;
        rdf:type    wfdesc:Process ;
        rdf:type    prov:Plan .

<http://ns.taverna.org.uk/2010/workflowBundle/01348671-5aaa-4cc2-84cc-477329b70b0d/workflow/Hello_Anyone/out/greeting>
        rdfs:comment  "Workflow output greeting"@en ;
        rdfs:label    "greeting" ;
        rdf:type      wfdesc:Output ;
        rdf:type      prov:Role .

_:b18   prov:atTime  "2014-05-28T10:49:45.674Z"^^xsd:dateTime ;
        rdf:type     prov:End .

_:b14   prov:atTime  "2014-05-28T11:49:43.736+01:00"^^xsd:dateTime ;
        rdf:type     prov:End .
