@base <http://ns.taverna.org.uk/2010/workflowBundle/8781d5f4-d0ba-48a8-a1d1-14281bd8a917/workflow/Hello_World/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix wfdesc: <http://purl.org/wf4ever/wfdesc#> .
@prefix wf4ever: <http://purl.org/wf4ever/wf4ever#> .
@prefix roterms: <http://purl.org/wf4ever/roterms#> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix comp: <http://purl.org/DP/components#> .
@prefix dep: <http://scape.keep.pt/vocab/dependencies#> .
@prefix biocat: <http://biocatalogue.org/attribute/> .
@prefix : <#> .
# 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.

<datalink?from=processor/hello/out/value&to=out/greeting> a wfdesc:DataLink ;
	wfdesc:hasSource <processor/hello/out/value> ;
	wfdesc:hasSink <out/greeting> .

<> a wfdesc:Workflow , wfdesc:Description , wfdesc:Process ;
	dc:creator "Stian Soiland-Reyes" ;
	dcterms:description "One of the simplest workflows possible. No workflow input ports, a single workflow output port \"greeting\",  outputting \"Hello, world!\" as produced by the String Constant \"hello\"." ;
	dcterms:title "Hello World" ;
	rdfs:label "Hello_World" ;
	wfdesc:hasOutput <out/greeting> ;
	wfdesc:hasSubProcess <processor/hello/> ;
	wfdesc:hasDataLink <datalink?from=processor/hello/out/value&to=out/greeting> .

<out/greeting> a wfdesc:Output , wfdesc:Description , wfdesc:Input ;
	rdfs:label "greeting" .

<processor/hello/> a wfdesc:Process , wfdesc:Description ;
	rdfs:label "hello" ;
	wfdesc:hasOutput <processor/hello/out/value> .

<processor/hello/out/value> a wfdesc:Output , wfdesc:Description ;
	rdfs:label "value" .
