-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathindex.html
1699 lines (1564 loc) · 108 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<title>Wf4Ever Research Object Model</title>
<link href="css/owl.css" rel="stylesheet" type="text/css">
<link href="css/Primer.css" rel="stylesheet" type="text/css">
<link href="css/rec.css" rel="stylesheet" type="text/css">
<link href="css/extra.css" rel="stylesheet" type="text/css">
<script src="http://dev.w3.org/2009/dap/ReSpec.js/js/respec.js" class="remove"></script>
<script class="remove">
var addExtraReferences = function() {
for (var k in extraReferences)
berjon.biblio[k] = extraReferences[k];
};
var extraReferences = {
"EXEC":"Executable Papers Grand Challenge. URL: <a href=\"http://www.executablepapers.com/\">http://www.executablepapers.com/</a>",
"BECHHOFER11":"Sean Bechhofer et. al.<cite>Linked Data is Not Enough for Scientists</cite>, Future Generation Computer Systems, DOI: <a href=\"http://dx.doi.org/10.1016/j.future.2011.08.004\">201110.1016/j.future.2011.08.004</a>",
"FORCE11": "Phil Bourne, Tim Clark et. al. <cite><a href=\"http://force11.org/white_paper\">Improving Future Research Communication and e-Scholarship</a>.</cite> FORCE11 Manifesto. URL: <a href=\"http://force11.org/white_paper\">http://force11.org/white_paper</a>",
"ORE":"<cite><a href=\"http://www.openarchives.org/ore/1.0/toc.html\">Open Archives Initiative Object Reuse and Exchange</a></cite>. <em>ORE Specifications and User Guides.</em> URL: <a href=\"http://www.openarchives.org/ore/1.0/toc.html\">http://www.openarchives.org/ore/1.0/toc.html</a>",
"ORE-RDF":"Carl Lagoze and Herbert van de Sompel <cite><a href=\"http://www.openarchives.org/ore/1.0/rdfxml\">ORE User Guide - Resource Map Implementation in RDF/XML</a></cite>.",
"AO":"Paolo Ciccarese. <cite><a href=\"http://code.google.com/p/annotation-ontology/\">The Annotation Ontology</a></cite> URL: <a href=\"http://code.google.com/p/annotation-ontology/\">http://code.google.com/p/annotation-ontology</a>",
"HUNTER06":"Jane Hunter <a href=\"http://www.ijdc.net/index.php/ijdc/article/view/8\"><cite>Scientific Publication Packages: A Selective Approach to the Communication and Archival of Scientific Output.</cite></a> International Journal of Digital Curation, Vol. 1, 2006 URL: <a href=\"http://www.ijdc.net/index.php/ijdc/article/view/8\">http://www.ijdc.net/index.php/ijdc/article/view/8</a>"
};
var respecConfig = {
// specification status (e.g. WD, LCWD, NOTE, etc.). If in doubt use ED.
specStatus: "unofficial",
// the specification's short name, as in http://www.w3.org/TR/short-name/
shortName: "ro",
// if your specification has a subtitle that goes below the main
// formal title, define it here
//subtitle : "",
// if you wish the publication date to be other than today, set this
// publishDate: "2011-10-18",
// if the specification's copyright date is a range of years, specify
// the start date here:
copyrightStart: "2010",
// if there is a previously published draft, uncomment this and set its YYYY-MM-DD date
// and its maturity status
//previousPublishDate: "2012-02-02",
//previousMaturity: "WD",
// if there a publicly available Editor's Draft, this is the link
//edDraftURI: "http://dvcs.w3.org/hg/prov/raw-file/default/model/prov-dm.html",
// if this is a LCWD, uncomment and set the end of its review period
// lcEnd: "2009-08-05",
// if you want to have extra CSS, append them to this list
// it is recommended that the respec.css stylesheet be kept
extraCSS: ["http://dev.w3.org/2009/dap/ReSpec.js/css/respec.css", "./css/extra.css"],
// editors, add as many as you like
// only "name" is required
editors: [
{ name: "Stian Soiland-Reyes", url: "http://soiland-reyes.com/stian/",
company: "University of Manchester" },
{ name: "Sean Bechhofer", url: "http://www.cs.manchester.ac.uk/~seanb/",
company: "University of Manchester" },
],
// authors, add as many as you like.
// This is optional, uncomment if you have authors as well as editors.
// only "name" is required. Same format as editors.
authors: [
{ name: "Khalid Belhajjame", url: "http://semanticweb.org/wiki/Khalid_Belhajjame",
company: "University of Manchester" },
{ name: "Graham Klyne",
company: "University of Oxford" },
{ name: "Daniel Garijo", url: "http://mayor2.dia.fi.upm.es/oeg-upm/index.php/es/phdstudents/28-dgarijo",
company: "UPM" },
{ name: "Oscar Corcho", url: "http://mayor2.dia.fi.upm.es/oeg-upm/index.php/es/teachers/11-ocorcho",
company: "UPM" },
{ name: "Esteban García Cuesta",
company: "iSOCO" },
{ name: "Raul Palma",
company: "PSNC" }
],
// name of the WG
wg: "Wf4Ever project",
// URI of the public WG page
wgURI: "http://www.wf4ever-project.org/",
// Add extraReferences to bibliography database
preProcess: [addExtraReferences],
};
</script>
</head>
<body>
<section id="abstract"></section><!-- abstract --><section id="introduction"><h2>Introduction</h2>
<p>Scientific workflows are used to describe series of structured activities and computations that arise in scientific problem-solving, providing scientists from virtually any discipline with a means to specify and enact their experiments. From a computational perspective, such experiments (workflows) can be defined as directed acyclic graphs where the nodes correspond to analysis operations, which can be supplied locally or by third party web services, and where the edges specify the flow of data between those operations.</p>
<p>Besides being useful to describe and execute computations, workflows also allow encoding of scientific methods and know-how. Hence they are valuable objects from a scholarly point of view, for several reasons: (i) to allow assessment of the reproducability of results; (ii) to be reused by the same or by a different scientist; (iii) to be repurposed for other goals than those for which it was originally built; (iv) to validate the method that led to a new scientific insight; (v) to serve as live-tutorials, exposing how to take advantage of existing data infrastructure, etc. This follows a trend that can be observed in disciplines such as Biology and Astronomy, with other types of objects, such as databases, increasingly becoming part of the research outcomes of an individual or a group, and hence also being shared, cited, reused, versioned, etc. </p>
<p>Challenges for the preservation of scientific workflows in data intensive science, include: (a) the consideration of complex digital objects that comprise both their static and dynamic aspects, including workflow models, the provenance of their executions, and interconnections between workflows and related resources, (b) the provision of access, manipulation, sharing, reuse and evolution functions to these complex digital objects, (c) integral lifecycle management functions for workflows and their associated materials.</p>
<p>Thus the use of workflow specifications on their own does not guarantee to support reusability, shareability, reproducibility, or better understanding of scientific methods. Workflow environment tools evolve across the years, or they may even disappear. The services and tools used by the workflow may change or evolve too. Finally, the data used by the workflow may be updated or no longer available. To overcome these issues, additional information may be needed. This includes annotations to describe the operations performed by the workflow; annotations to provide details like authors, versions, citations, etc.; links to other resources, such as the provenance of the results obtained by executing the workflow, datasets used as input, etc.. Such additional annotations enable a comprehensive view of the experiment, and encourage inspection of the different elements of that experiment, providing the scientist with a picture of the strengths and weaknesses of the digital experiment in relation to decay, adaptability, stability, etc.</p>
<p>These richly annotation objects are what we call workflow-centric Research Objects. The notion of Research Object (as discussed in [[BECHHOFER11]]) is a general idea that aims to extend traditional publication mechanisms and take us "beyond the pdf" [[FORCE11]]]. An RO is an aggregation of resources along with annotations on those resources. The aggregation itself may also be annotated, where by annotation, we mean the association of arbitrary additional information with a resource. The Research Object thus collects together relevant resources along with annotations that enable the understanding, reuse etc. of its constituent parts. In a workflow-centric Reearch Object describing an investigation for example, annotations could describe how data sources have been used or how intermediate results were derived. Executable papers [[EXEC]] similarly aim to support validation, exploration and interaction in publication in order to support validation. Hunter [[HUNTER06]] proposes the notion of Scientific Publication Packages (SPP) to describe "the selective encapsulation of raw data, derived products, algorithms, software and textual publications". SPPs are motivated primarily by the need to create archives for the variety of artifacts produced during the course of a scientific investigation; they ideally contain data, methods, software and documents, but also their provenance as well.</p>
<section id="scope"><h3>Scope of Wf4Ever Research Objects</h3>
<p>The focus of Wf4Ever is on workflow preservation (and more specifically workflows supporting scientific investigation). Thus the objects that will be described using the model are inherently workflow-centric. Although the basic infrastructure (aggregation + annotation + domain vocabularies) that the RO model supports is applicable to many situations (for example the executable or enhanced publication of [[FORCE11]]), the specific vocabularies defined within the Wf4Ever RO model are intended to support those Research Objects that have workflows (methods) as their primary content.</p>
<p>The intention is that a Wf4Ever Research Object will aggregate information about a workflow (or collection of workflows) possibly including details of its execution trace, the data items consumed or produced by the workflow, plus provenance information about the lineage of the workflow, data items or the aggregation itself. This intention is that this information will support reproducability of the workflows, reuse of the components and, perhaps most importantly will facilitate subsequent understanding of the investigation that the workflow is intended to support. The support of "full-fat" reproducability in terms of re-execution of a process in order to produce identical results is problematic, particularly when operating in a distributed, web-service based ecosystem.</p>
</section><!-- scope --><section id="scope-doc"><h3>Scope of this document</h3>
<p>This particular document describes the vocabularies that describe Workflow-centric Research Objects within Wf4ever. A complete, functional RO based ecosystem will require a number of different services for creation, storage, manipulation, recommendation, visualisation etc. of Research Objects. These services are not considered here. Nor do we discuss vocabularies or mechanisms that support Research Object evolution.</p>
<p>This document describes the v0.1 release of the ontologies.</p>
</section><!-- scope-doc --><section id="tech-soc"><h3>Technical and Social Objects</h3>
<p>Research Objects play multiple roles. In the first case, they are
<em>technical</em> objects. They provide access to the resources that
are needed to support execution of investigations and record the
provenance traces of those executions. They encapsulate dependencies
between resources and maintain versioning information about the
lineage and evolution of those resources.</p>
<p>At the same time, they are <em>social</em> objects. They
encapsulate reusable protocols and know-how. They record best
practices and support reproducability. They are citable artifacts that
can be referred to and quoted. They record and represent information
about the people involved in investigations -- those who create, use,
extend and curate the objects.
</p>
<p>These roles bring requirements on the representation structure and
vocabularies used to describe Research Objects. This specification
focuses on the <em>technical aspects</em> and describes the core
Wf4Ever Research Object vocabularies that provide container
structures and vocabulary for describing workflow objects. Additional
vocabularies covering evolution, lifecycle, versioning and other
social aspects will be covered elsewhere.</p>
</section><!-- tech-soc --><section id="organisation"><h3>Overall Model Organisation</h3>
<div>Research Object = Aggregation + Annotation + RO Vocabularies</div>
<p>The Wf4Ever Research Object model consists of a suite of ontologies or vocabularies that are used to describe workflow-centric ROs. The key ontologies provided are:</p>
<p><b>ro</b>:<br>
Provides basic structure for the description of aggregated resources and the annotations that are made on those resources.</p>
<p><b>wfdesc</b>:<br>
A vocabulary for the description of workflows. This provides an abstraction that can be mapped to different particular workflow systems.</p>
<p><b>wfprov</b>:<br>
A vocabulary for the description of provenance information. This provides an abstraction that can be mapped to different provenance vocabularies.</p>
<p>The RO Model uses two existing vocabularies to provide aggregation and annotation functionality. Object Reuse and Exchange [[ORE]] is used for specifying aggregation of resources and the Annotation Ontology [[AO]] is used to represent annotations.</p>
<p>Each of these ontologies are described in more detail below.</p>
</section><!-- organisation --></section><!-- introduction --><section id="at-glance"><h2>Research Object Vocabularies</h2>
<section id="ro"><h3>Research object (ro)</h3>
<p>A research object aggregates a number of resources that are used and/or produced in a given scientific investigation. This aggregation supports access to those collected resources – or at least access to the identification of those resources. The resources aggregated in an RO can be distributed, thus a particular user may be allowed to see the metadata associated with a resource without necessarily having access to its content. For example, dereferencing a URI which is aggregated in a Research Object may require further authentication. A research object allows for annotation of the resources aggregated in it, where by annotation we mean the general notion of decorating a resource with some additional, arbitrary information (@@NOTE: the usage of the word "aggregated" to describe the collecting of resources in the RO rather than "contained"). The aggregation provides a container within which these annotations can be asserted, allowing for the capture of context and provenance concerning those relations and annotations. Such context is needed to support, for example, measures of trust of quality.</p>
<p>The aggregated resources of an RO could include workflow descriptions, workflow runs, artifacts, etc. The figure below illustrates a research object described using a manifest. It also illustrates the specific class of research object named workflow research object, which refers to research objects that contain at least one workflow description.</p>
<p><img src="diagrams/ro.png" imagetext="ro.png|border=1,width=600" width="600" style="border: 1px solid black"></p>
<p>The research object is described in the <a href="ro.owl"><tt>ro</tt>
ontology</a> under the namespace
<code>http://purl.org/wf4ever/ro#</code></p>
<p>This ontology extends the <a href="http://www.openarchives.org/ore/1.0/vocabulary">OAI-ORE ontology</a>.</p>
<div id="ro-model-documentation">
<h3>Classes</h3>
<h2>Classes</h2>
<ul class="hlist">
<li><a href="#d3e109" title="http://purl.org/wf4ever/ro#AggregatedAnnotation"><span>ro:AggregatedAnnotation</span></a></li>
<li><a href="#d3e175" title="http://purl.org/wf4ever/ro#Folder"><span>ro:Folder</span></a></li>
<li><a href="#d3e187" title="http://purl.org/wf4ever/ro#FolderEntry"><span>ro:FolderEntry</span></a></li>
<li><a href="#d3e225" title="http://purl.org/wf4ever/ro#Manifest"><span>ro:Manifest</span></a></li>
<li><a href="#d3e245" title="http://purl.org/wf4ever/ro#ResearchObject"><span>ro:ResearchObject</span></a></li>
<li><a href="#d3e285" title="http://purl.org/wf4ever/ro#Resource"><span>ro:Resource</span></a></li>
<li><a href="#d3e330" title="http://purl.org/wf4ever/ro#SemanticAnnotation"><span>ro:SemanticAnnotation</span></a></li>
</ul>
<div id="d3e109" class="entity">
<a name="http://purl.org/wf4ever/ro#AggregatedAnnotation"></a><h3>
<span class="dotted" title="http://purl.org/wf4ever/ro#AggregatedAnnotation">ro:AggregatedAnnotation</span><sup title="class" class="type-c">c</sup><span class="backlink"> back to <a href="#toc">ToC</a> or <a href="#classes">Class ToC</a></span>
</h3>
<p><strong>IRI:</strong> http://purl.org/wf4ever/ro#AggregatedAnnotation</p>
<div class="comment">
<p>An annotation aggregated within an ro:ResearchObject. </p>
<p>Instances of this class are used to annotated resources aggregated within the aggregating research object, proxies of these resources, or the research object itself. In other words, if :ro is the ro:ResearchObject this annotation has been ore:isAggregatedBy, then the annotation should have at least one ao:annotatesResource which is an ore:AggregatedResource which is ore:isAggregatedBy :ro, or the annotated resource is an ore:Proxy which ore:proxyIn :ro, or the annotated resource is :ro.</p>
<p>It is possible for the annotation to also annotate non-aggregated resources, but as above, at least one of them needs to be part of the RO or the RO itself.</p>
<p>As a subclass of ro:SemanticAnnotation the ao:body must point to an rdfg:Graph which contains the actual annotation. </p>
</div>
<dl class="description">
<dt>has super-classes</dt>
<dd><ul>
<li>
<a href="#d3e330" title="http://purl.org/wf4ever/ro#SemanticAnnotation">ro:SemanticAnnotation</a><sup title="class" class="type-c">c</sup>
</li>
<li>
<span class="dotted" title="http://www.openarchives.org/ore/terms/AggregatedResource">terms:AggregatedResource</span><sup title="class" class="type-c">c</sup>
</li>
<li>
<span class="dotted" title="http://purl.org/ao/annotatesResource">ao:annotatesResource</span><sup title="object property" class="type-op">op</sup><span class="logic">some</span> <a href="#d3e245" title="http://purl.org/wf4ever/ro#ResearchObject">ro:ResearchObject</a><sup title="class" class="type-c">c</sup><span class="logic">or</span> <span class="dotted" title="http://www.openarchives.org/ore/terms/AggregatedResource">terms:AggregatedResource</span><sup title="class" class="type-c">c</sup><span class="logic">or</span> <span class="dotted" title="http://www.openarchives.org/ore/terms/Proxy">terms:Proxy</span><sup title="class" class="type-c">c</sup>
</li>
<li>
<span class="dotted" title="http://purl.org/dc/terms/creator">terms2:creator</span><sup title="object property" class="type-op">op</sup><span class="logic">some</span> <span class="dotted" title="http://xmlns.com/foaf/0.1/Agent">foaf:Agent</span><sup title="class" class="type-c">c</sup>
</li>
<li>
<span class="dotted" title="http://www.openarchives.org/ore/terms/isAggregatedBy">terms:isAggregatedBy</span><sup title="object property" class="type-op">op</sup><span class="logic">some</span> <a href="#d3e245" title="http://purl.org/wf4ever/ro#ResearchObject">ro:ResearchObject</a><sup title="class" class="type-c">c</sup>
</li>
<li>
<span class="dotted" title="http://purl.org/dc/terms/created">terms2:created</span><sup title="data property" class="type-dp">dp</sup><span class="logic">some</span> <span class="dotted" title="http://www.w3.org/2001/XMLSchema#dateTime">xsd:dateTime</span>
</li>
</ul></dd>
</dl>
</div>
<div id="d3e175" class="entity">
<a name="http://purl.org/wf4ever/ro#Folder"></a><h3>
<span class="dotted" title="http://purl.org/wf4ever/ro#Folder">ro:Folder</span><sup title="class" class="type-c">c</sup><span class="backlink"> back to <a href="#toc">ToC</a> or <a href="#classes">Class ToC</a></span>
</h3>
<p><strong>IRI:</strong> http://purl.org/wf4ever/ro#Folder</p>
<div class="comment">
<p>An ro:Folder is a special kind of ore:Aggregation where every ro:AggregatedResource must have a ro:FolderEntry proxy with a unique ro:entryName within that folder.</p>
<p>Note that all resources which are aggregated within an (potentially nested) ro:Folder SHOULD also be aggregated by the same ro:ResearchObject this ro:Folder is aggregated within.</p>
<p>Such folders can be nested and (optionally) used to organize the resources of the research object into a file-like structure. All such resources should also be aggregated by the ro:ResearchObject</p>
</div>
<dl class="description">
<dt>has super-classes</dt>
<dd><ul>
<li>
<a href="#d3e285" title="http://purl.org/wf4ever/ro#Resource">ro:Resource</a><sup title="class" class="type-c">c</sup>
</li>
<li>
<span class="dotted" title="http://www.openarchives.org/ore/terms/Aggregation">terms:Aggregation</span><sup title="class" class="type-c">c</sup>
</li>
</ul></dd>
</dl>
</div>
<div id="d3e187" class="entity">
<a name="http://purl.org/wf4ever/ro#FolderEntry"></a><h3>
<span class="dotted" title="http://purl.org/wf4ever/ro#FolderEntry">ro:FolderEntry</span><sup title="class" class="type-c">c</sup><span class="backlink"> back to <a href="#toc">ToC</a> or <a href="#classes">Class ToC</a></span>
</h3>
<p><strong>IRI:</strong> http://purl.org/wf4ever/ro#FolderEntry</p>
<div class="comment"><p>An ro:FolderEntry is any ore:Proxy instance that associates a resources aggregated within an ro:Folder with a ro:entryName. This name is (case-sensitive) unique within a given folder.</p></div>
<dl class="description">
<dt>is equivalent to</dt>
<dd><ul>
<li>
<span class="dotted" title="http://www.openarchives.org/ore/terms/proxyIn">terms:proxyIn</span><sup title="object property" class="type-op">op</sup><span class="logic">some</span> <a href="#d3e175" title="http://purl.org/wf4ever/ro#Folder">ro:Folder</a><sup title="class" class="type-c">c</sup>
</li>
<li>
<a href="#d3e88" title="http://purl.org/wf4ever/ro#entryName">ro:entryName</a><sup title="data property" class="type-dp">dp</sup><span class="logic">some</span> <span class="dotted" title="http://www.w3.org/2001/XMLSchema#string">xsd:string</span>
</li>
</ul></dd>
<dt>has super-classes</dt>
<dd><ul><li>
<span class="dotted" title="http://www.openarchives.org/ore/terms/Proxy">terms:Proxy</span><sup title="class" class="type-c">c</sup>
</li></ul></dd>
<dt>is in domain of</dt>
<dd>
<a href="#d3e88" title="http://purl.org/wf4ever/ro#entryName">ro:entryName</a><sup title="data property" class="type-dp">dp</sup>
</dd>
<dt>has keys</dt>
<dd><ul><li>
<span class="dotted" title="http://www.openarchives.org/ore/terms/proxyIn">terms:proxyIn</span><sup title="object property" class="type-op">op</sup> , <a href="#d3e88" title="http://purl.org/wf4ever/ro#entryName">ro:entryName</a><sup title="data property" class="type-dp">dp</sup>
</li></ul></dd>
</dl>
</div>
<div id="d3e225" class="entity">
<a name="http://purl.org/wf4ever/ro#Manifest"></a><h3>
<span class="dotted" title="http://purl.org/wf4ever/ro#Manifest">ro:Manifest</span><sup title="class" class="type-c">c</sup><span class="backlink"> back to <a href="#toc">ToC</a> or <a href="#classes">Class ToC</a></span>
</h3>
<p><strong>IRI:</strong> http://purl.org/wf4ever/ro#Manifest</p>
<div class="comment"><p>The ro:Manifest is used to describe an ro:ResearchObject. This identifies the resource for the manifest which lists all the aggregations of the research object, typically called ".ro/manifest.rdf" relative to the research object this manifest ore:describes.</p></div>
<dl class="description">
<dt>is equivalent to</dt>
<dd><ul><li>
<span class="dotted" title="http://www.openarchives.org/ore/terms/describes">terms:describes</span><sup title="object property" class="type-op">op</sup><span class="logic">some</span> <a href="#d3e245" title="http://purl.org/wf4ever/ro#ResearchObject">ro:ResearchObject</a><sup title="class" class="type-c">c</sup>
</li></ul></dd>
<dt>has super-classes</dt>
<dd><ul><li>
<span class="dotted" title="http://www.openarchives.org/ore/terms/ResourceMap">terms:ResourceMap</span><sup title="class" class="type-c">c</sup>
</li></ul></dd>
</dl>
</div>
<div id="d3e245" class="entity">
<a name="http://purl.org/wf4ever/ro#ResearchObject"></a><h3>
<span class="dotted" title="http://purl.org/wf4ever/ro#ResearchObject">ro:ResearchObject</span><sup title="class" class="type-c">c</sup><span class="backlink"> back to <a href="#toc">ToC</a> or <a href="#classes">Class ToC</a></span>
</h3>
<p><strong>IRI:</strong> http://purl.org/wf4ever/ro#ResearchObject</p>
<div class="comment"><p>A research object aggregates a number of resources. A resource can be a workflow, web service, document, data item, data set, workflow run, software or a research object.</p></div>
<dl class="description">
<dt>is equivalent to</dt>
<dd><ul><li>
<span class="dotted" title="http://www.openarchives.org/ore/terms/isDescribedBy">terms:isDescribedBy</span><sup title="object property" class="type-op">op</sup><span class="logic">some</span> <a href="#d3e225" title="http://purl.org/wf4ever/ro#Manifest">ro:Manifest</a><sup title="class" class="type-c">c</sup>
</li></ul></dd>
<dt>has super-classes</dt>
<dd><ul>
<li>
<span class="dotted" title="http://www.openarchives.org/ore/terms/Aggregation">terms:Aggregation</span><sup title="class" class="type-c">c</sup>
</li>
<li>
<span class="dotted" title="http://purl.org/dc/terms/created">terms2:created</span><sup title="data property" class="type-dp">dp</sup><span class="logic">some</span> <span class="dotted" title="http://www.w3.org/2001/XMLSchema#dateTime">xsd:dateTime</span>
</li>
<li>
<span class="dotted" title="http://purl.org/dc/terms/creator">terms2:creator</span><sup title="object property" class="type-op">op</sup><span class="logic">some</span> <span class="dotted" title="http://xmlns.com/foaf/0.1/Agent">foaf:Agent</span><sup title="class" class="type-c">c</sup>
</li>
</ul></dd>
</dl>
</div>
<div id="d3e285" class="entity">
<a name="http://purl.org/wf4ever/ro#Resource"></a><h3>
<span class="dotted" title="http://purl.org/wf4ever/ro#Resource">ro:Resource</span><sup title="class" class="type-c">c</sup><span class="backlink"> back to <a href="#toc">ToC</a> or <a href="#classes">Class ToC</a></span>
</h3>
<p><strong>IRI:</strong> http://purl.org/wf4ever/ro#Resource</p>
<div class="comment">
<p>An ro:Resource is an ore:AggregatedResource which ore:isAggregatedBy an ro:ResearchObject. </p>
<p>This specialisation requires that there exists an ore:Proxy which is ore:proxyFor this resource, and which is ore:proxyIn the same ro:ResearchObject the resource ore:isAggregatedBy. Any annotations on such a proxy will descrive the ro:Resource within that particular ro:ResearchObject, in particular dct:creator and dct:created on the proxy will specify who added the resource to the aggregation at what time.</p>
<p>Note that annotations (ro:AggregatedAnnotation) can be added to both the ro:Resource and the ore:Proxy - depending on if the annotation is seen to be globally true (such as the provenance of how the resource was created) or locally true within the Research Object (such as the the resource playing the role of a wf4ever:Dataset).</p>
<p>Not all resources aggregated by an ro:ResearchObject are ro:Resource instances, in particular ro:AggregatedAnnotations will also be aggregated, but will not be "true" RO resources (and thus don't need their own ore:Proxy). </p>
<p>Aggregated resources MAY also be organised in (potentially nested) ro:Folders to reflect a file-system like structure. Note that any such resources SHOULD also be aggregated in the "mother" ro:ResearchObject.</p>
</div>
<dl class="description">
<dt>has super-classes</dt>
<dd><ul>
<li>
<span class="dotted" title="http://www.openarchives.org/ore/terms/AggregatedResource">terms:AggregatedResource</span><sup title="class" class="type-c">c</sup>
</li>
<li>
<span class="dotted" title="http://www.openarchives.org/ore/terms/isAggregatedBy">terms:isAggregatedBy</span><sup title="object property" class="type-op">op</sup><span class="logic">some</span> <a href="#d3e245" title="http://purl.org/wf4ever/ro#ResearchObject">ro:ResearchObject</a><sup title="class" class="type-c">c</sup>
</li>
<li>
<span class="logic">inverse</span>(<span class="dotted" title="http://www.openarchives.org/ore/terms/proxyFor">terms:proxyFor</span><sup title="object property" class="type-op">op</sup>) <span class="logic">some</span> <span class="dotted" title="http://www.openarchives.org/ore/terms/proxyIn">terms:proxyIn</span><sup title="object property" class="type-op">op</sup><span class="logic">some</span> <a href="#d3e245" title="http://purl.org/wf4ever/ro#ResearchObject">ro:ResearchObject</a><sup title="class" class="type-c">c</sup>
</li>
</ul></dd>
<dt>has sub-classes</dt>
<dd>
<a href="#d3e175" title="http://purl.org/wf4ever/ro#Folder">ro:Folder</a><sup title="class" class="type-c">c</sup>
</dd>
<dt>is in range of</dt>
<dd>
<a href="#d3e46" title="http://purl.org/wf4ever/ro#annotatesAggregatedResource">ro:annotatesAggregatedResource</a><sup title="object property" class="type-op">op</sup>
</dd>
</dl>
</div>
<div id="d3e330" class="entity">
<a name="http://purl.org/wf4ever/ro#SemanticAnnotation"></a><h3>
<span class="dotted" title="http://purl.org/wf4ever/ro#SemanticAnnotation">ro:SemanticAnnotation</span><sup title="class" class="type-c">c</sup><span class="backlink"> back to <a href="#toc">ToC</a> or <a href="#classes">Class ToC</a></span>
</h3>
<p><strong>IRI:</strong> http://purl.org/wf4ever/ro#SemanticAnnotation</p>
<div class="comment">
<p>An ro:SemanticAnnotation is a specialisation of ao:Annotation which requires that ao:body points to an RDF Graph.</p>
<p>This might be a Named Graph or a resource which can be resolved separately from the URI given by ao:body.</p>
<p>This graph SHOULD mention the resources identified by ao:annotatesResource from this annotation, preferably by using their URIs as subject or object of statements.</p>
<p>Note that this use of ao:body is distinct from ao:hasTopic, which also allows the association of a an RDF Graph with an ao:Annotation, but which also implies that this graph is the "topic" (subproperty of bookmark:hasTopic) of the annotated resource. This class does not require this interpretation, it is merely enough that the annotation body mentions the annotated resource, for instance to give it a dc:title or to relate two annotated resources. Also note that the next version of the AO ontology (v2) might change this definition of ao:hasTopic, removing the need for this class.</p>
</div>
<dl class="description">
<dt>has super-classes</dt>
<dd><ul>
<li>
<span class="dotted" title="http://purl.org/ao/Annotation">ao:Annotation</span><sup title="class" class="type-c">c</sup>
</li>
<li>
<span class="dotted" title="http://purl.org/ao/body">ao:body</span><sup title="object property" class="type-op">op</sup><span class="logic">only</span> <span class="dotted" title="http://www.w3.org/2004/03/trix/rdfg-1/Graph">rdfg-1:Graph</span><sup title="class" class="type-c">c</sup>
</li>
</ul></dd>
<dt>has sub-classes</dt>
<dd>
<a href="#d3e109" title="http://purl.org/wf4ever/ro#AggregatedAnnotation">ro:AggregatedAnnotation</a><sup title="class" class="type-c">c</sup>
</dd>
</dl>
</div>
<h3>Data Properties</h3>
<h2>Data Properties</h2>
<ul class="hlist"><li><a href="#d3e88" title="http://purl.org/wf4ever/ro#entryName"><span>ro:entryName</span></a></li></ul>
<div id="d3e88" class="entity">
<a name="http://purl.org/wf4ever/ro#entryName"></a><h3>
<span class="dotted" title="http://purl.org/wf4ever/ro#entryName">ro:entryName</span><sup title="data property" class="type-dp">dp</sup><span class="backlink"> back to <a href="#toc">ToC</a> or <a href="#dataproperties">Data Property ToC</a></span>
</h3>
<p><strong>IRI:</strong> http://purl.org/wf4ever/ro#entryName</p>
<div class="comment">
<p>This functional property specifies the name of a ro:FolderEntry within an ro:Folder. </p>
<p>This name must be case-sensitively unique within the ro:Folder, similar to a filename in a directory.</p>
<p>TODO: Need a functional property to specify the top level folder structure of an {{ro:ResearchObject}}?</p>
</div>
<div class="description">
<p><strong>has characteristics:</strong> functional</p>
<dl>
<dt>has domain</dt>
<dd><ul><li>
<a href="#d3e187" title="http://purl.org/wf4ever/ro#FolderEntry">ro:FolderEntry</a><sup title="class" class="type-c">c</sup>
</li></ul></dd>
<dt>has range</dt>
<dd><ul><li><span class="dotted" title="http://www.w3.org/2001/XMLSchema#string">xsd:string</span></li></ul></dd>
</dl>
</div>
</div>
<h3>Object Properties</h3>
<h2>Object Properties</h2>
<ul class="hlist"><li><a href="#d3e46" title="http://purl.org/wf4ever/ro#annotatesAggregatedResource"><span>ro:annotatesAggregatedResource</span></a></li></ul>
<div id="d3e46" class="entity">
<a name="http://purl.org/wf4ever/ro#annotatesAggregatedResource"></a><h3>
<span class="dotted" title="http://purl.org/wf4ever/ro#annotatesAggregatedResource">ro:annotatesAggregatedResource</span><sup title="object property" class="type-op">op</sup><span class="backlink"> back to <a href="#toc">ToC</a> or <a href="#objectproperties">Object Property ToC</a></span>
</h3>
<p><strong>IRI:</strong> http://purl.org/wf4ever/ro#annotatesAggregatedResource</p>
<div class="comment">
<p>ro:annotatesAggregatedResource specifies that an ao:Annotation annotates an aggregated ro:Resource. </p>
<p>When used on an ro:AggregatedAnnotation, both the domain and range of this property must ore:isAggregatedBy the same ro:ResearchObject. </p>
<p>TODO: Should also ro:ResearchObject and ore:Proxy be in the range of this property, or is this subproperty even needed?</p>
</div>
<div class="description"><dl>
<dt>has super-properties</dt>
<dd><ul><li>
<span class="dotted" title="http://purl.org/ao/annotatesResource">ao:annotatesResource</span><sup title="object property" class="type-op">op</sup>
</li></ul></dd>
<dt>has domain</dt>
<dd><ul><li>
<span class="dotted" title="http://purl.org/ao/Annotation">ao:Annotation</span><sup title="class" class="type-c">c</sup>
</li></ul></dd>
<dt>has range</dt>
<dd><ul><li>
<a href="#d3e285" title="http://purl.org/wf4ever/ro#Resource">ro:Resource</a><sup title="class" class="type-c">c</sup>
</li></ul></dd>
</dl></div>
</div>
</div>
</section><!-- ro --><section id="wfdesc"><h3>Workflow definition (wfdesc)</h3>
<p>Workflow descriptions can be made using the <a href="https://github.com/wf4ever/ro/blob/master/wfdesc.owl"><tt>wfdesc</tt> ontology</a> under the namespace <a href="http://purl.org/wf4ever/wfdesc#">http://purl.org/wf4ever/wfdesc#</a></p>
<p><img src="diagrams/wf.png" imagetext="wf.png|border=1,width=600" width="600" style="border: 1px solid black"></p>
<p>The <tt>wfdesc</tt> ontology describes an abstract workflow description structure, which on the top level is defined as a <tt>wfdesc:Workflow</tt>.</p>
<p>A <tt>wfdesc:Workflow</tt> contains several <tt>wfdesc:Process</tt> instances, associated using the <tt>wfdesc:hasSubProcess</tt> property. Each of these (and the workflow itself) <tt>wfdesc:hasInput</tt> and <tt>wfdesc:hasOutput</tt> some <tt>wfdesc:Parameter</tt> (<tt>wfdesc:Input</tt> or <tt>wfdesc:Output</tt>). An <tt>wfdesc:Artifact</tt> is associated with a <tt>wfdesc:Parameter</tt> using <tt>wfdesc:hasArtifact</tt>. The <tt>wfdesc:Workflow</tt> also <tt>wfdesc:hasDataLink</tt> several <tt>wfdesc:DataLink</tt> instances, which forms the connection between parameters. Thus this ontology allows the description a direct acyclic graph, or a dataflow.</p>
<p>This ontology is meant as an upper ontology for more specific workflow definitions, and as a way to express abstract workflows, which could either be hand-crafted by users ("ideal workflow description") or extracted from workflow definitions of existing workflow systems, like Taverna's <tt>.t2flow</tt> and Scufl2 formats.</p>
<p>The <tt>wfprov</tt> ontology shows how to link these workflow descriptions to a provenance trace of a workflow execution.</p>
<div id="wfdesc-model-documentation">
<h3>Classes</h3>
<h2>Classes</h2>
<ul class="hlist">
<li><a href="#d3e135" title="http://purl.org/wf4ever/wfdesc#Artifact"><span>wfdesc:Artifact</span></a></li>
<li><a href="#d3e143" title="http://purl.org/wf4ever/wfdesc#DataLink"><span>wfdesc:DataLink</span></a></li>
<li><a href="#d3e151" title="http://purl.org/wf4ever/wfdesc#Input"><span>wfdesc:Input</span></a></li>
<li><a href="#d3e162" title="http://purl.org/wf4ever/wfdesc#Output"><span>wfdesc:Output</span></a></li>
<li><a href="#d3e172" title="http://purl.org/wf4ever/wfdesc#Parameter"><span>wfdesc:Parameter</span></a></li>
<li><a href="#d3e193" title="http://purl.org/wf4ever/wfdesc#Process"><span>wfdesc:Process</span></a></li>
<li><a href="#d3e202" title="http://purl.org/wf4ever/wfdesc#Workflow"><span>wfdesc:Workflow</span></a></li>
<li><a href="#d3e212" title="http://purl.org/wf4ever/wfdesc#WorkflowInstance"><span>wfdesc:WorkflowInstance</span></a></li>
</ul>
<div id="d3e135" class="entity">
<a name="http://purl.org/wf4ever/wfdesc#Artifact"></a><h3>
<span class="dotted" title="http://purl.org/wf4ever/wfdesc#Artifact">wfdesc:Artifact</span><sup title="class" class="type-c">c</sup><span class="backlink"> back to <a href="#toc">ToC</a> or <a href="#classes">Class ToC</a></span>
</h3>
<p><strong>IRI:</strong> http://purl.org/wf4ever/wfdesc#Artifact</p>
<div class="comment">
<p>wfdesc:Artifact is used to provide information about a class of artifacts. For example, it can be used to specify the datatype of a dataset or the structure of a document.</p>
<p>An wfdesc:Artifact is associated with a wfdesc:Parameter using wfdesc:hasArtifact.</p>
<p>The distinction between a parameter and artifact is that the parameter can be customized to describe the particular role the artifact plays with regards to the process (and can be linked using wfdesc:DataLink) - while the wfdesc:Artifact can describe the syntactic and semantic datatype.</p>
</div>
<dl class="description">
<dt>is in range of</dt>
<dd>
<a href="#d3e20" title="http://purl.org/wf4ever/wfdesc#hasArtifact">wfdesc:hasArtifact</a><sup title="object property" class="type-op">op</sup>
</dd>
</dl>
</div>
<div id="d3e143" class="entity">
<a name="http://purl.org/wf4ever/wfdesc#DataLink"></a><h3>
<span class="dotted" title="http://purl.org/wf4ever/wfdesc#DataLink">wfdesc:DataLink</span><sup title="class" class="type-c">c</sup><span class="backlink"> back to <a href="#toc">ToC</a> or <a href="#classes">Class ToC</a></span>
</h3>
<p><strong>IRI:</strong> http://purl.org/wf4ever/wfdesc#DataLink</p>
<div class="comment">
<p>wfdesc:DataLink is used to represent data dependencies between process templates. It means that the artifact generated at an wfdesc:Output (identified using wfdesc:hasSource) will be used by a wfdescInput (identified using wfdesc:hasSink).</p>
<p>The wfdesc:Processes that owns the wfdesc:Parameter instances which are the source and sink of a wfdesc:DataLink must be wfdesc:hasSubProcess of a the same wfdesc:Workflow which wfdesc:hasDataLink the data link, or be be parameters of that same workflow.</p>
<p>Thus links can only be made within a wfdesc:Workflow - although ports owned by the workflow itself appear both inside and outside the workflow (in opposite roles).</p>
</div>
<dl class="description">
<dt>is in domain of</dt>
<dd>
<a href="#d3e73" title="http://purl.org/wf4ever/wfdesc#hasSink">wfdesc:hasSink</a><sup title="object property" class="type-op">op</sup>, <a href="#d3e87" title="http://purl.org/wf4ever/wfdesc#hasSource">wfdesc:hasSource</a><sup title="object property" class="type-op">op</sup>
</dd>
<dt>is in range of</dt>
<dd>
<a href="#d3e34" title="http://purl.org/wf4ever/wfdesc#hasDataLink">wfdesc:hasDataLink</a><sup title="object property" class="type-op">op</sup>
</dd>
</dl>
</div>
<div id="d3e151" class="entity">
<a name="http://purl.org/wf4ever/wfdesc#Input"></a><h3>
<span class="dotted" title="http://purl.org/wf4ever/wfdesc#Input">wfdesc:Input</span><sup title="class" class="type-c">c</sup><span class="backlink"> back to <a href="#toc">ToC</a> or <a href="#classes">Class ToC</a></span>
</h3>
<p><strong>IRI:</strong> http://purl.org/wf4ever/wfdesc#Input</p>
<div class="comment">
<p>wfdesc:Input represents an input parameter to a wfdesc:Process. This can be compared to a function parameter, command line argument, files read, or parameter set by a user interface.</p>
<p>It is out of scope of wfdesc to define the nature or classification of the parameter, such as giving it a name, position or data type. This can be done with subclasses and/or subproperties.</p>
</div>
<dl class="description">
<dt>has super-classes</dt>
<dd><ul><li>
<a href="#d3e172" title="http://purl.org/wf4ever/wfdesc#Parameter">wfdesc:Parameter</a><sup title="class" class="type-c">c</sup>
</li></ul></dd>
<dt>is in range of</dt>
<dd>
<a href="#d3e48" title="http://purl.org/wf4ever/wfdesc#hasInput">wfdesc:hasInput</a><sup title="object property" class="type-op">op</sup>, <a href="#d3e73" title="http://purl.org/wf4ever/wfdesc#hasSink">wfdesc:hasSink</a><sup title="object property" class="type-op">op</sup>
</dd>
</dl>
</div>
<div id="d3e162" class="entity">
<a name="http://purl.org/wf4ever/wfdesc#Output"></a><h3>
<span class="dotted" title="http://purl.org/wf4ever/wfdesc#Output">wfdesc:Output</span><sup title="class" class="type-c">c</sup><span class="backlink"> back to <a href="#toc">ToC</a> or <a href="#classes">Class ToC</a></span>
</h3>
<p><strong>IRI:</strong> http://purl.org/wf4ever/wfdesc#Output</p>
<div class="comment">
<p>wfdesc:Output represents an output parameter from a wfdesc:Process. This can be compared to functional return values, stdout/stdin, files written, or results shown in a user interface.</p>
<p>It is out of scope of wfdesc to define the nature or classification of the parameter, such as giving it a name, position or data type. This can be done with subclasses and/or subproperties.</p>
</div>
<dl class="description">
<dt>has super-classes</dt>
<dd><ul><li>
<a href="#d3e172" title="http://purl.org/wf4ever/wfdesc#Parameter">wfdesc:Parameter</a><sup title="class" class="type-c">c</sup>
</li></ul></dd>
<dt>is in range of</dt>
<dd>
<a href="#d3e61" title="http://purl.org/wf4ever/wfdesc#hasOutput">wfdesc:hasOutput</a><sup title="object property" class="type-op">op</sup>, <a href="#d3e87" title="http://purl.org/wf4ever/wfdesc#hasSource">wfdesc:hasSource</a><sup title="object property" class="type-op">op</sup>
</dd>
</dl>
</div>
<div id="d3e172" class="entity">
<a name="http://purl.org/wf4ever/wfdesc#Parameter"></a><h3>
<span class="dotted" title="http://purl.org/wf4ever/wfdesc#Parameter">wfdesc:Parameter</span><sup title="class" class="type-c">c</sup><span class="backlink"> back to <a href="#toc">ToC</a> or <a href="#classes">Class ToC</a></span>
</h3>
<p><strong>IRI:</strong> http://purl.org/wf4ever/wfdesc#Parameter</p>
<div class="comment">
<p>This class represent a parameter of a process template. A wfdesc:Parameter must be a wfdesc:Input, a wfdesc:Output, or both. </p>
<p>A parameter is both an wfdesc:Input and wfdesc:Output when it is used on both sides of a subworkflow - see wfdesc:Workflow and wfdesc:DataLink for details.</p>
</div>
<dl class="description">
<dt>is equivalent to</dt>
<dd><ul><li>
<a href="#d3e151" title="http://purl.org/wf4ever/wfdesc#Input">wfdesc:Input</a><sup title="class" class="type-c">c</sup><span class="logic">or</span> <a href="#d3e162" title="http://purl.org/wf4ever/wfdesc#Output">wfdesc:Output</a><sup title="class" class="type-c">c</sup>
</li></ul></dd>
<dt>has sub-classes</dt>
<dd>
<a href="#d3e151" title="http://purl.org/wf4ever/wfdesc#Input">wfdesc:Input</a><sup title="class" class="type-c">c</sup>, <a href="#d3e162" title="http://purl.org/wf4ever/wfdesc#Output">wfdesc:Output</a><sup title="class" class="type-c">c</sup>
</dd>
<dt>is in domain of</dt>
<dd>
<a href="#d3e20" title="http://purl.org/wf4ever/wfdesc#hasArtifact">wfdesc:hasArtifact</a><sup title="object property" class="type-op">op</sup>
</dd>
</dl>
</div>
<div id="d3e193" class="entity">
<a name="http://purl.org/wf4ever/wfdesc#Process"></a><h3>
<span class="dotted" title="http://purl.org/wf4ever/wfdesc#Process">wfdesc:Process</span><sup title="class" class="type-c">c</sup><span class="backlink"> back to <a href="#toc">ToC</a> or <a href="#classes">Class ToC</a></span>
</h3>
<p><strong>IRI:</strong> http://purl.org/wf4ever/wfdesc#Process</p>
<div class="comment">
<p>A wfdesc:Process is used to describe a class of actions that when enacted give rise to processes. A process can have 0 or more wfdesc:Parameter instances associated using wfdesc:hasInput and wfdesc:hasOutput, signifying what kind of parameters the process will require and return.</p>
<p>It is out of scope for wfdesc to classify or specify the nature of the process, this should be done by subclassing and additional subproperties, for instance ex:perlScript or ex:restServiceURI</p>
</div>
<dl class="description">
<dt>has sub-classes</dt>
<dd>
<a href="#d3e202" title="http://purl.org/wf4ever/wfdesc#Workflow">wfdesc:Workflow</a><sup title="class" class="type-c">c</sup>
</dd>
<dt>is in domain of</dt>
<dd>
<a href="#d3e48" title="http://purl.org/wf4ever/wfdesc#hasInput">wfdesc:hasInput</a><sup title="object property" class="type-op">op</sup>, <a href="#d3e61" title="http://purl.org/wf4ever/wfdesc#hasOutput">wfdesc:hasOutput</a><sup title="object property" class="type-op">op</sup>
</dd>
<dt>is in range of</dt>
<dd>
<a href="#d3e102" title="http://purl.org/wf4ever/wfdesc#hasSubProcess">wfdesc:hasSubProcess</a><sup title="object property" class="type-op">op</sup>
</dd>
</dl>
</div>
<div id="d3e202" class="entity">
<a name="http://purl.org/wf4ever/wfdesc#Workflow"></a><h3>
<span class="dotted" title="http://purl.org/wf4ever/wfdesc#Workflow">wfdesc:Workflow</span><sup title="class" class="type-c">c</sup><span class="backlink"> back to <a href="#toc">ToC</a> or <a href="#classes">Class ToC</a></span>
</h3>
<p><strong>IRI:</strong> http://purl.org/wf4ever/wfdesc#Workflow</p>
<div class="comment">
<p>A wfdesc:Workflow is a directed graph in which the nodes are wfdesc:Process instances and the edges (wfdesc:DataLink instances) represent data dependencies between the constituent process templates.</p>
<p>A wfdesc:Workflow defines associated wfdesc:Process using hasProcessTemplate. A specialisation of this property is hasSubWorkflowTemplate, signifying that the process is a WorkflowTemplate itself, which is further described in a similar fashion.</p>
<p>As a subclass of wfdesc:Process a wfdesc:Workflow can also define wfdesc:hasInput/wfdesc:hasOutput parameters - these would be inputs taken at workflow execution time, and final outputs of the workflow. (Note: Not all dataflow systems have this concept of workflow parameters)</p>
<p>wfdesc:Parameter instances are linked using wfdesc:DataLink instances associated with the wfdesc:Workflow using wfdesc:hasDataLink.</p>
<p>A wfdesc:Parameter defined with wfdesc:hasInput on a wfdesc:Workflow is considered an wfdesc:Input "outside" the workflow template (ie. if it is a subworkflow), but an wfdesc:Output "inside" the workflow template (where it can be connected to a wfdesc:Input of a wfdesc:Process). Thus such parameters can be linked "through" the workflow template without having a "mirrored" port inside.</p>
<p>Example:</p>
<p>##</p>
<p>@prefix wfdesc: <http://purl.org/wf4ever/wfdesc#> .</p>
<p>:outerWorkflow a wfdesc:Workflow ;</p>
<p> wfdesc:hasSubWorkflow :innerWorkflow ;</p>
<p> wfdesc:hasSubProcess :procA, :procC .</p>
<p>:procA a wfdesc:Process ;</p>
<p> wfdesc:hasOutput :param1 .</p>
<p>:procC a wfdesc:Process ;</p>
<p> wfdesc:hasInput :param2 ;</p>
<p> wfdesc:hasOutput :param3 .</p>
<p>:innerWorkflow a wfdesc:Workflow ;</p>
<p> wfdesc:hasInput :param4 ;</p>
<p> wfdesc:hasOutput :param5 ;</p>
<p> wfdesc:hasProcess :procB .</p>
<p>:procB a wfdesc:Process ;</p>
<p> wfdesc:hasInput :param6 ;</p>
<p> wfdesc:hasOutput :param7 .</p>
<p>:innerWorkflow wfdesc:hasDataLink </p>
<p> [ wfdesc:hasSource :param4; wfdesc:hasSink :param6 ], </p>
<p> [ wfdesc:hasSource :param7; wfdesc:hasSink :param5 ] .</p>
<p>:outerWorkflow wfdesc:hasDataLink</p>
<p> [ wfdesc:hasSource :param1; wfdesc:hasSink :param4 ],</p>
<p> [ wfdesc:hasSource :param5; wfdesc:hasSink :param2 ] .</p>
<p>##</p>
<p>In this example :param1 is the output of :procA. :param1 is the source in a datalink that goes to the input :param4 of the :innerWorkflow. :param4 is however also the source of an inner datalink, going to input :param6 of the nested :procB.</p>
<p>From this :param4 is both an wfdesc:Input and wfdesc:Output (which is why these two classes are not disjoint)</p>
</div>
<dl class="description">
<dt>has super-classes</dt>
<dd><ul><li>
<a href="#d3e193" title="http://purl.org/wf4ever/wfdesc#Process">wfdesc:Process</a><sup title="class" class="type-c">c</sup>
</li></ul></dd>
<dt>has sub-classes</dt>
<dd>
<a href="#d3e212" title="http://purl.org/wf4ever/wfdesc#WorkflowInstance">wfdesc:WorkflowInstance</a><sup title="class" class="type-c">c</sup>
</dd>
<dt>is in domain of</dt>
<dd>
<a href="#d3e34" title="http://purl.org/wf4ever/wfdesc#hasDataLink">wfdesc:hasDataLink</a><sup title="object property" class="type-op">op</sup>, <a href="#d3e102" title="http://purl.org/wf4ever/wfdesc#hasSubProcess">wfdesc:hasSubProcess</a><sup title="object property" class="type-op">op</sup>, <a href="#d3e114" title="http://purl.org/wf4ever/wfdesc#hasSubWorkflow">wfdesc:hasSubWorkflow</a><sup title="object property" class="type-op">op</sup>
</dd>
<dt>is in range of</dt>
<dd>
<a href="#d3e114" title="http://purl.org/wf4ever/wfdesc#hasSubWorkflow">wfdesc:hasSubWorkflow</a><sup title="object property" class="type-op">op</sup>
</dd>
</dl>
</div>
<div id="d3e212" class="entity">
<a name="http://purl.org/wf4ever/wfdesc#WorkflowInstance"></a><h3>
<span class="dotted" title="http://purl.org/wf4ever/wfdesc#WorkflowInstance">wfdesc:WorkflowInstance</span><sup title="class" class="type-c">c</sup><span class="backlink"> back to <a href="#toc">ToC</a> or <a href="#classes">Class ToC</a></span>
</h3>
<p><strong>IRI:</strong> http://purl.org/wf4ever/wfdesc#WorkflowInstance</p>
<div class="comment"><p>A wfdesc:WorkflowInstance is a specialisation of a wfdesc:Workflow template which defines all data/parameters/settings that are required to form a wfprov:WorkflowRun.</p></div>
<dl class="description">
<dt>has super-classes</dt>
<dd><ul><li>
<a href="#d3e202" title="http://purl.org/wf4ever/wfdesc#Workflow">wfdesc:Workflow</a><sup title="class" class="type-c">c</sup>
</li></ul></dd>
</dl>
</div>
<h3>Object Properties</h3>
<h2>Object Properties</h2>
<ul class="hlist">
<li><a href="#d3e20" title="http://purl.org/wf4ever/wfdesc#hasArtifact"><span>wfdesc:hasArtifact</span></a></li>
<li><a href="#d3e34" title="http://purl.org/wf4ever/wfdesc#hasDataLink"><span>wfdesc:hasDataLink</span></a></li>
<li><a href="#d3e48" title="http://purl.org/wf4ever/wfdesc#hasInput"><span>wfdesc:hasInput</span></a></li>
<li><a href="#d3e61" title="http://purl.org/wf4ever/wfdesc#hasOutput"><span>wfdesc:hasOutput</span></a></li>
<li><a href="#d3e73" title="http://purl.org/wf4ever/wfdesc#hasSink"><span>wfdesc:hasSink</span></a></li>
<li><a href="#d3e87" title="http://purl.org/wf4ever/wfdesc#hasSource"><span>wfdesc:hasSource</span></a></li>
<li><a href="#d3e102" title="http://purl.org/wf4ever/wfdesc#hasSubProcess"><span>wfdesc:hasSubProcess</span></a></li>
<li><a href="#d3e114" title="http://purl.org/wf4ever/wfdesc#hasSubWorkflow"><span>wfdesc:hasSubWorkflow</span></a></li>
</ul>
<div id="d3e20" class="entity">
<a name="http://purl.org/wf4ever/wfdesc#hasArtifact"></a><h3>
<span class="dotted" title="http://purl.org/wf4ever/wfdesc#hasArtifact">wfdesc:hasArtifact</span><sup title="object property" class="type-op">op</sup><span class="backlink"> back to <a href="#toc">ToC</a> or <a href="#objectproperties">Object Property ToC</a></span>
</h3>
<p><strong>IRI:</strong> http://purl.org/wf4ever/wfdesc#hasArtifact</p>
<div class="comment"><p>This property associates a wfdesc:Parameter with an wfdesc:Artifact which can describe the artifact which would be used/generated on execution of the workflow.</p></div>
<div class="description"><dl>
<dt>has super-properties</dt>
<dd><ul><li>
<span class="dotted" title="http://www.w3.org/2002/07/owl#topObjectProperty">owl:topObjectProperty</span><sup title="object property" class="type-op">op</sup>
</li></ul></dd>
<dt>has domain</dt>
<dd><ul><li>
<a href="#d3e172" title="http://purl.org/wf4ever/wfdesc#Parameter">wfdesc:Parameter</a><sup title="class" class="type-c">c</sup>
</li></ul></dd>
<dt>has range</dt>
<dd><ul><li>
<a href="#d3e135" title="http://purl.org/wf4ever/wfdesc#Artifact">wfdesc:Artifact</a><sup title="class" class="type-c">c</sup>
</li></ul></dd>
</dl></div>
</div>
<div id="d3e34" class="entity">
<a name="http://purl.org/wf4ever/wfdesc#hasDataLink"></a><h3>
<span class="dotted" title="http://purl.org/wf4ever/wfdesc#hasDataLink">wfdesc:hasDataLink</span><sup title="object property" class="type-op">op</sup><span class="backlink"> back to <a href="#toc">ToC</a> or <a href="#objectproperties">Object Property ToC</a></span>
</h3>
<p><strong>IRI:</strong> http://purl.org/wf4ever/wfdesc#hasDataLink</p>
<div class="comment"><p>This property is used to specify the wfdesc:DataLink instances of a given workflow template.</p></div>
<div class="description"><dl>
<dt>has super-properties</dt>
<dd><ul><li>
<span class="dotted" title="http://www.w3.org/2002/07/owl#topObjectProperty">owl:topObjectProperty</span><sup title="object property" class="type-op">op</sup>
</li></ul></dd>
<dt>has domain</dt>
<dd><ul><li>
<a href="#d3e202" title="http://purl.org/wf4ever/wfdesc#Workflow">wfdesc:Workflow</a><sup title="class" class="type-c">c</sup>
</li></ul></dd>
<dt>has range</dt>
<dd><ul><li>
<a href="#d3e143" title="http://purl.org/wf4ever/wfdesc#DataLink">wfdesc:DataLink</a><sup title="class" class="type-c">c</sup>
</li></ul></dd>
</dl></div>
</div>
<div id="d3e48" class="entity">
<a name="http://purl.org/wf4ever/wfdesc#hasInput"></a><h3>
<span class="dotted" title="http://purl.org/wf4ever/wfdesc#hasInput">wfdesc:hasInput</span><sup title="object property" class="type-op">op</sup><span class="backlink"> back to <a href="#toc">ToC</a> or <a href="#objectproperties">Object Property ToC</a></span>
</h3>
<p><strong>IRI:</strong> http://purl.org/wf4ever/wfdesc#hasInput</p>
<div class="comment"><p>This object property is used to specify the wfdesc:Input parameter of a given wfdesc:Process.</p></div>
<div class="description"><dl>
<dt>has domain</dt>
<dd><ul><li>
<a href="#d3e193" title="http://purl.org/wf4ever/wfdesc#Process">wfdesc:Process</a><sup title="class" class="type-c">c</sup>
</li></ul></dd>
<dt>has range</dt>
<dd><ul><li>
<a href="#d3e151" title="http://purl.org/wf4ever/wfdesc#Input">wfdesc:Input</a><sup title="class" class="type-c">c</sup>
</li></ul></dd>
</dl></div>
</div>
<div id="d3e61" class="entity">
<a name="http://purl.org/wf4ever/wfdesc#hasOutput"></a><h3>
<span class="dotted" title="http://purl.org/wf4ever/wfdesc#hasOutput">wfdesc:hasOutput</span><sup title="object property" class="type-op">op</sup><span class="backlink"> back to <a href="#toc">ToC</a> or <a href="#objectproperties">Object Property ToC</a></span>
</h3>
<p><strong>IRI:</strong> http://purl.org/wf4ever/wfdesc#hasOutput</p>
<div class="comment"><p>This object property is used to specify the wfdesc:Output parameter of a given wfdesc:Process.</p></div>
<div class="description"><dl>
<dt>has domain</dt>
<dd><ul><li>
<a href="#d3e193" title="http://purl.org/wf4ever/wfdesc#Process">wfdesc:Process</a><sup title="class" class="type-c">c</sup>
</li></ul></dd>
<dt>has range</dt>
<dd><ul><li>
<a href="#d3e162" title="http://purl.org/wf4ever/wfdesc#Output">wfdesc:Output</a><sup title="class" class="type-c">c</sup>
</li></ul></dd>
</dl></div>
</div>
<div id="d3e73" class="entity">
<a name="http://purl.org/wf4ever/wfdesc#hasSink"></a><h3>
<span class="dotted" title="http://purl.org/wf4ever/wfdesc#hasSink">wfdesc:hasSink</span><sup title="object property" class="type-op">op</sup><span class="backlink"> back to <a href="#toc">ToC</a> or <a href="#objectproperties">Object Property ToC</a></span>
</h3>
<p><strong>IRI:</strong> http://purl.org/wf4ever/wfdesc#hasSink</p>
<div class="comment"><p>This property is used to specify the wfdesc:Input parameter that acts as a sink from a given wfdesc:DataLink, consuming data from the link.</p></div>
<div class="description"><dl>
<dt>has super-properties</dt>
<dd><ul><li>
<span class="dotted" title="http://www.w3.org/2002/07/owl#topObjectProperty">owl:topObjectProperty</span><sup title="object property" class="type-op">op</sup>
</li></ul></dd>
<dt>has domain</dt>
<dd><ul><li>
<a href="#d3e143" title="http://purl.org/wf4ever/wfdesc#DataLink">wfdesc:DataLink</a><sup title="class" class="type-c">c</sup>
</li></ul></dd>
<dt>has range</dt>
<dd><ul><li>
<a href="#d3e151" title="http://purl.org/wf4ever/wfdesc#Input">wfdesc:Input</a><sup title="class" class="type-c">c</sup>
</li></ul></dd>
</dl></div>
</div>
<div id="d3e87" class="entity">
<a name="http://purl.org/wf4ever/wfdesc#hasSource"></a><h3>
<span class="dotted" title="http://purl.org/wf4ever/wfdesc#hasSource">wfdesc:hasSource</span><sup title="object property" class="type-op">op</sup><span class="backlink"> back to <a href="#toc">ToC</a> or <a href="#objectproperties">Object Property ToC</a></span>
</h3>
<p><strong>IRI:</strong> http://purl.org/wf4ever/wfdesc#hasSource</p>
<div class="comment"><p>This property is used to specify the wfdesc:Output parameter that acts as a source to a given wfdesc:DataLink, providing data into the link.</p></div>
<div class="description"><dl>
<dt>has super-properties</dt>
<dd><ul><li>
<span class="dotted" title="http://www.w3.org/2002/07/owl#topObjectProperty">owl:topObjectProperty</span><sup title="object property" class="type-op">op</sup>
</li></ul></dd>
<dt>has domain</dt>
<dd><ul><li>
<a href="#d3e143" title="http://purl.org/wf4ever/wfdesc#DataLink">wfdesc:DataLink</a><sup title="class" class="type-c">c</sup>
</li></ul></dd>
<dt>has range</dt>
<dd><ul><li>
<a href="#d3e162" title="http://purl.org/wf4ever/wfdesc#Output">wfdesc:Output</a><sup title="class" class="type-c">c</sup>
</li></ul></dd>
</dl></div>
</div>
<div id="d3e102" class="entity">
<a name="http://purl.org/wf4ever/wfdesc#hasSubProcess"></a><h3>
<span class="dotted" title="http://purl.org/wf4ever/wfdesc#hasSubProcess">wfdesc:hasSubProcess</span><sup title="object property" class="type-op">op</sup><span class="backlink"> back to <a href="#toc">ToC</a> or <a href="#objectproperties">Object Property ToC</a></span>
</h3>
<p><strong>IRI:</strong> http://purl.org/wf4ever/wfdesc#hasSubProcess</p>
<div class="comment">
<p>This object property is used to specify that the given workflow contains the given process as part of its definition.</p>
<p>Although not a requirement, such sub processes should have wfdesc:DataLink within the containing workflow connecting their parameters with parameters of the containing workflow, or with parameters other contained wfdesc:Process instances.</p>
<p>A specialialisation of sub process is wfdesc:hasSubWorkflow where the sub process is a nested wfdesc:Workflow.</p>
</div>
<div class="description"><dl>
<dt>has sub-properties</dt>
<dd>
<a href="#d3e114" title="http://purl.org/wf4ever/wfdesc#hasSubWorkflow">wfdesc:hasSubWorkflow</a><sup title="object property" class="type-op">op</sup>
</dd>
<dt>has domain</dt>
<dd><ul><li>
<a href="#d3e202" title="http://purl.org/wf4ever/wfdesc#Workflow">wfdesc:Workflow</a><sup title="class" class="type-c">c</sup>
</li></ul></dd>
<dt>has range</dt>
<dd><ul><li>
<a href="#d3e193" title="http://purl.org/wf4ever/wfdesc#Process">wfdesc:Process</a><sup title="class" class="type-c">c</sup>
</li></ul></dd>
</dl></div>
</div>
<div id="d3e114" class="entity">
<a name="http://purl.org/wf4ever/wfdesc#hasSubWorkflow"></a><h3>
<span class="dotted" title="http://purl.org/wf4ever/wfdesc#hasSubWorkflow">wfdesc:hasSubWorkflow</span><sup title="object property" class="type-op">op</sup><span class="backlink"> back to <a href="#toc">ToC</a> or <a href="#objectproperties">Object Property ToC</a></span>
</h3>
<p><strong>IRI:</strong> http://purl.org/wf4ever/wfdesc#hasSubWorkflow</p>
<div class="comment">
<p>This object property is used to associate a workflow template to another workflow template, specifying that the given workflow has the given sub-workflow as a contained process. </p>
<p>This is a specialisation of hasProcessTemplate.</p>
</div>
<div class="description"><dl>
<dt>has super-properties</dt>
<dd><ul><li>
<a href="#d3e102" title="http://purl.org/wf4ever/wfdesc#hasSubProcess">wfdesc:hasSubProcess</a><sup title="object property" class="type-op">op</sup>
</li></ul></dd>
<dt>has domain</dt>
<dd><ul><li>
<a href="#d3e202" title="http://purl.org/wf4ever/wfdesc#Workflow">wfdesc:Workflow</a><sup title="class" class="type-c">c</sup>
</li></ul></dd>
<dt>has range</dt>
<dd><ul><li>
<a href="#d3e202" title="http://purl.org/wf4ever/wfdesc#Workflow">wfdesc:Workflow</a><sup title="class" class="type-c">c</sup>
</li></ul></dd>
</dl></div>
</div>
</div>
<div id="wfdesc-model-examples">
<div id="examples">
<h2>Wfdesc Example</h2>
<p>The example below illustrates a workflow wf1 that is composed of three processors :procA, :wf2 and :procC, which are connected in sequence using data links. :wf2 is a subworkflow that contains the process :procB.</p>
<pre class="code-java">
@prefix wfdesc: <http:<span class="code-comment">//purl.org/wf4ever/wfdesc#> .
</span>:wf1 a wfdesc:WorkflowTemplate ;
wfdesc:hasSubWorkflow :wf2 ;
wfdesc:hasSubProcess :procA, :procC .
:procA a wfdesc:<span class="code-object">Process</span> ;
wfdesc:hasOutput :param1 .
:procC a wfdesc:<span class="code-object">Process</span> ;
wfdesc:hasInput :param2 ;
wfdesc:hasOutput :param3 .
:wf2 a wfdesc:WorkflowTemplate ;
wfdesc:hasInput :param4 ;
wfdesc:hasOutput :param5 ;
wfdesc:hasProcess :procB .
:procB a wfdesc:<span class="code-object">Process</span> ;
wfdesc:hasInput :param6 ;
wfdesc:hasOutput :param7 .
:innerWorkflow wfdesc:hasDataLink
[ wfdesc:hasSource :param4; wfdesc:hasSink :param6 ],
[ wfdesc:hasSource :param7; wfdesc:hasSink :param5 ] .
:wf1 wfdesc:hasDataLink
[ wfdesc:hasSource :param1; wfdesc:hasSink :param4 ],
[ wfdesc:hasSource :param5; wfdesc:hasSink :param2 ] .
</pre>
</div>
</div>
</section><!-- wfdesc --><section id="wfprov"><h3>Workflow execution provenance (wfprov)</h3>
<p>Provenance of workflow execution is described using the <a href="https://github.com/wf4ever/ro/blob/master/wfprov.owl" class="external-link" rel="nofollow" linktype="raw" wikidestination="https://github.com/wf4ever/ro/blob/master/wfprov.owl" aliasspecified="true">wfprov ontology</a>, under namespace <a href="http://purl.org/wf4ever/wfdesc#">http://purl.org/wf4ever/wfprov#</a>. </p>
<p><img src="diagrams/wfprov.png" imagetext="wfprov.png|border=1,width=600" width="600" style="border: 1px solid black"></p>
<p>The <tt>wfprov</tt> ontology describes the provenance of the workflow results. A <tt>wfprov:WorkflowRun</tt> describes the activity of running a <tt>wfdesc:WorkflowInstance</tt>. It groups the <tt>wfprov:ProcessRuns</tt> of the execution with the relationship <tt>wfprov:wasPartOfWorkflowRun</tt>.</p>
<p>Each <tt>wfprov:ProcessRun</tt> represents a step of the workflow execution. It may have dependencies to different <tt>wfprov:Artifacts</tt>, which are modeled with the relationship <tt>wfprov:usedInput</tt>. Every result generated by one of the <tt>wfprov:ProcessRuns</tt> is linked by the relation <tt>wfprov:wasOutputFrom</tt></p>
<p>Different <tt>wfprov:ProcessRuns</tt> may have been executed by different workflow engines. We can specify which one run each step with the <tt>wfprov:wasEnactedBy</tt> relationship.</p>
<p>Finally, we can link each <tt>wfprov:Artifact</tt>, <tt>wfprov:ProcessRun</tt> and <tt>wfprov:WorkflowRun</tt> to their correspondant <tt>wfdesc</tt> description by the <tt>wfprov:describedByParameter</tt>, <tt>wfprov:describedByProcess</tt> and <tt>wfprov:describedByWorkflow</tt> respectively.</p>
<div id="wfprov-model-documentation">
<h3>Classes</h3>
<h2>Classes</h2>
<ul class="hlist">
<li><a href="#d3e131" title="http://purl.org/wf4ever/wfprov#Artifact"><span>wfprov:Artifact</span></a></li>
<li><a href="#d3e152" title="http://purl.org/wf4ever/wfprov#ProcessRun"><span>wfprov:ProcessRun</span></a></li>
<li><a href="#d3e174" title="http://purl.org/wf4ever/wfprov#WorkflowEngine"><span>wfprov:WorkflowEngine</span></a></li>
<li><a href="#d3e188" title="http://purl.org/wf4ever/wfprov#WorkflowRun"><span>wfprov:WorkflowRun</span></a></li>
</ul>
<div id="d3e131" class="entity">
<a name="http://purl.org/wf4ever/wfprov#Artifact"></a><h3>
<span class="dotted" title="http://purl.org/wf4ever/wfprov#Artifact">wfprov:Artifact</span><sup title="class" class="type-c">c</sup><span class="backlink"> back to <a href="#toc">ToC</a> or <a href="#classes">Class ToC</a></span>
</h3>
<p><strong>IRI:</strong> http://purl.org/wf4ever/wfprov#Artifact</p>
<div class="comment"><p>An artifact is a data value or item which wfprov:wasOutputFrom of a wfprov:ProcessRun or that the process run used as input (wfprov:usedInput). Such an artifact might also be a ro:Resource if it has been aggregated in the ro:ResearchObject (typically if the artifact was used or generated by a wfprov:WorkflowRun) - but this might always not be the case for intermediate values from wfprov:ProcessRun.</p></div>
<dl class="description">
<dt>is in domain of</dt>
<dd>
<a href="#d3e28" title="http://purl.org/wf4ever/wfprov#describedByParameter">wfprov:describedByParameter</a><sup title="object property" class="type-op">op</sup>, <a href="#d3e91" title="http://purl.org/wf4ever/wfprov#wasOutputFrom">wfprov:wasOutputFrom</a><sup title="object property" class="type-op">op</sup>
</dd>
<dt>is in range of</dt>
<dd>
<a href="#d3e67" title="http://purl.org/wf4ever/wfprov#usedInput">wfprov:usedInput</a><sup title="object property" class="type-op">op</sup>
</dd>
</dl>
</div>
<div id="d3e152" class="entity">
<a name="http://purl.org/wf4ever/wfprov#ProcessRun"></a><h3>
<span class="dotted" title="http://purl.org/wf4ever/wfprov#ProcessRun">wfprov:ProcessRun</span><sup title="class" class="type-c">c</sup><span class="backlink"> back to <a href="#toc">ToC</a> or <a href="#classes">Class ToC</a></span>
</h3>
<p><strong>IRI:</strong> http://purl.org/wf4ever/wfprov#ProcessRun</p>
<div class="comment"><p>A process run is a particular execution of a wfdesc:Process description (wfprov:describedByProcess), which can wfprov:usedInput some wfprov:Artifact instances, and produce new artifacts (wfprov:wasOutputFrom). A wfprov:WorkflowRun is a specialisation of this class.</p></div>
<dl class="description">
<dt>has sub-classes</dt>
<dd>
<a href="#d3e188" title="http://purl.org/wf4ever/wfprov#WorkflowRun">wfprov:WorkflowRun</a><sup title="class" class="type-c">c</sup>
</dd>
<dt>is in domain of</dt>
<dd>
<a href="#d3e40" title="http://purl.org/wf4ever/wfprov#describedByProcess">wfprov:describedByProcess</a><sup title="object property" class="type-op">op</sup>, <a href="#d3e67" title="http://purl.org/wf4ever/wfprov#usedInput">wfprov:usedInput</a><sup title="object property" class="type-op">op</sup>, <a href="#d3e79" title="http://purl.org/wf4ever/wfprov#wasEnactedBy">wfprov:wasEnactedBy</a><sup title="object property" class="type-op">op</sup>, <a href="#d3e104" title="http://purl.org/wf4ever/wfprov#wasPartOfWorkflowRun">wfprov:wasPartOfWorkflowRun</a><sup title="object property" class="type-op">op</sup>
</dd>
<dt>is in range of</dt>
<dd>
<a href="#d3e91" title="http://purl.org/wf4ever/wfprov#wasOutputFrom">wfprov:wasOutputFrom</a><sup title="object property" class="type-op">op</sup>
</dd>
</dl>
</div>
<div id="d3e174" class="entity">
<a name="http://purl.org/wf4ever/wfprov#WorkflowEngine"></a><h3>
<span class="dotted" title="http://purl.org/wf4ever/wfprov#WorkflowEngine">wfprov:WorkflowEngine</span><sup title="class" class="type-c">c</sup><span class="backlink"> back to <a href="#toc">ToC</a> or <a href="#classes">Class ToC</a></span>
</h3>
<p><strong>IRI:</strong> http://purl.org/wf4ever/wfprov#WorkflowEngine</p>
<div class="comment"><p>A workflow engine is an foaf:Agent that is responsible for enacting a workflow definition (which could be described in a wfdesc:Workflow). The result of workflow enactment gives rise to a wfprov:WorkflowRun.</p></div>
<dl class="description">
<dt>has super-classes</dt>
<dd><ul><li>
<span class="dotted" title="http://xmlns.com/foaf/0.1/Agent">foaf:Agent</span><sup title="class" class="type-c">c</sup>
</li></ul></dd>
<dt>is in range of</dt>
<dd>
<a href="#d3e79" title="http://purl.org/wf4ever/wfprov#wasEnactedBy">wfprov:wasEnactedBy</a><sup title="object property" class="type-op">op</sup>
</dd>
</dl>
</div>
<div id="d3e188" class="entity">
<a name="http://purl.org/wf4ever/wfprov#WorkflowRun"></a><h3>
<span class="dotted" title="http://purl.org/wf4ever/wfprov#WorkflowRun">wfprov:WorkflowRun</span><sup title="class" class="type-c">c</sup><span class="backlink"> back to <a href="#toc">ToC</a> or <a href="#classes">Class ToC</a></span>
</h3>
<p><strong>IRI:</strong> http://purl.org/wf4ever/wfprov#WorkflowRun</p>
<div class="comment"><p>A workflow run is a wfprov:ProcessRun which have been enacted by a wfprov:WorkflowEngine, according to a workflow definition (which could be wfdesc:describedByWorkflow a wfdesc:Workflow). Such a process typically contains several subprocesses (wfprov:wasPartOfWorkflowRun) corresponding to wfdesc:Process descriptions</p></div>
<dl class="description">
<dt>has super-classes</dt>
<dd><ul><li>
<a href="#d3e152" title="http://purl.org/wf4ever/wfprov#ProcessRun">wfprov:ProcessRun</a><sup title="class" class="type-c">c</sup>
</li></ul></dd>
<dt>is in domain of</dt>
<dd>
<a href="#d3e52" title="http://purl.org/wf4ever/wfprov#describedByWorkflow">wfprov:describedByWorkflow</a><sup title="object property" class="type-op">op</sup>
</dd>
<dt>is in range of</dt>
<dd>
<a href="#d3e104" title="http://purl.org/wf4ever/wfprov#wasPartOfWorkflowRun">wfprov:wasPartOfWorkflowRun</a><sup title="object property" class="type-op">op</sup>
</dd>
</dl>
</div>
<h3>Object Properties</h3>
<h2>Object Properties</h2>
<ul class="hlist">
<li><a href="#d3e28" title="http://purl.org/wf4ever/wfprov#describedByParameter"><span>wfprov:describedByParameter</span></a></li>
<li><a href="#d3e40" title="http://purl.org/wf4ever/wfprov#describedByProcess"><span>wfprov:describedByProcess</span></a></li>
<li><a href="#d3e52" title="http://purl.org/wf4ever/wfprov#describedByWorkflow"><span>wfprov:describedByWorkflow</span></a></li>
<li><a href="#d3e67" title="http://purl.org/wf4ever/wfprov#usedInput"><span>wfprov:usedInput</span></a></li>
<li><a href="#d3e79" title="http://purl.org/wf4ever/wfprov#wasEnactedBy"><span>wfprov:wasEnactedBy</span></a></li>
<li><a href="#d3e91" title="http://purl.org/wf4ever/wfprov#wasOutputFrom"><span>wfprov:wasOutputFrom</span></a></li>
<li><a href="#d3e104" title="http://purl.org/wf4ever/wfprov#wasPartOfWorkflowRun"><span>wfprov:wasPartOfWorkflowRun</span></a></li>
</ul>