| # wfdesc ontology |
| # https://w3id.org/ro/wfdesc |
| # Wf4Ever Research Object Model 1.0 |
| # https://w3id.org/ro/ |
| # |
| # (c) 2011-2014 |
| # Stian Soiland-Reyes, University of Manchester |
| # Sean Bechhofer, University of Manchester |
| # Khalid Belhajjame, University of Manchester |
| # Graham Klyne, University of Oxford |
| # Daniel Garijo, UPM |
| # Oscar Corcho, UPM |
| # Esteban GarcĂa Cuesta, iSOCO |
| # Raul Palma, PSNC |
| # |
| # Licensed under a Creative Commons Attribution 3.0 License. |
| # http://creativecommons.org/licenses/by/3.0/ |
| # |
| @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . |
| @prefix parrot: <http://vocab.ctic.es/parrot#> . |
| @prefix owl: <http://www.w3.org/2002/07/owl#> . |
| @prefix wfdesc: <http://purl.org/wf4ever/wfdesc#> . |
| @prefix xml: <http://www.w3.org/XML/1998/namespace> . |
| @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . |
| @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . |
| @prefix skos: <http://www.w3.org/2004/02/skos/core#> . |
| @base <http://purl.org/wf4ever/wfdesc> . |
| |
| <http://purl.org/wf4ever/wfdesc> rdf:type owl:Ontology ; |
| |
| rdfs:comment """This ontology (\"wfdesc\") describes an abstract workflow description structure, which on the top level is defined as a wfdesc:Workflow. |
| |
| A wfdesc:Workflow contains several wfdesc:Process instances, associated using the wfdesc:hasSubProcess property. Each of these (and the workflow itself) wfdesc:hasInput and wfdesc:hasOutput some wfdesc:Parameter (wfdesc:Input or wfdesc:Output). An wfdesc:Artifact is associated with a wfdesc:Parameter using wfdesc:hasArtifact. The wfdesc:Workflow also wfdesc:hasDataLink several wfdesc:DataLink instances, which forms the connection between parameters. |
| |
| Thus this ontology allows the description a direct acyclic graph, or a dataflow. |
| |
| This ontology is meant as an upper ontology for more specific workflow definitions, and as a way to express abstract workflows. The wfprov ontology shows how to link these descriptions to a provenance trace of a workflow execution."""@en ; |
| |
| owl:versionIRI <https://raw.github.com/wf4ever/ro/master/wfdesc.owl> ; |
| |
| parrot:hasPrologue <index.html#ro> . |
| |
| |
| ################################################################# |
| # |
| # Annotation properties |
| # |
| ################################################################# |
| |
| |
| rdfs:comment rdf:type owl:AnnotationProperty . |
| |
| |
| |
| |
| |
| ################################################################# |
| # |
| # Datatypes |
| # |
| ################################################################# |
| |
| |
| |
| |
| ################################################################# |
| # |
| # Object Properties |
| # |
| ################################################################# |
| |
| |
| ### http://purl.org/wf4ever/wfdesc#hasArtifact |
| |
| wfdesc:hasArtifact rdf:type owl:ObjectProperty ; |
| |
| rdfs:comment "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."@en ; |
| |
| rdfs:range wfdesc:Artifact ; |
| |
| rdfs:domain wfdesc:Parameter ; |
| |
| rdfs:subPropertyOf owl:topObjectProperty . |
| |
| |
| |
| ### http://purl.org/wf4ever/wfdesc#hasDataLink |
| |
| wfdesc:hasDataLink rdf:type owl:ObjectProperty ; |
| |
| rdfs:comment "This property is used to specify the wfdesc:DataLink instances of a given wfdesc:Workflow."@en ; |
| |
| rdfs:range wfdesc:DataLink ; |
| |
| rdfs:domain wfdesc:Workflow ; |
| |
| rdfs:subPropertyOf owl:topObjectProperty . |
| |
| |
| |
| ### http://purl.org/wf4ever/wfdesc#hasInput |
| |
| wfdesc:hasInput rdf:type owl:ObjectProperty ; |
| |
| rdfs:comment "This object property is used to specify the wfdesc:Input parameter of a given wfdesc:Process."@en ; |
| |
| rdfs:range wfdesc:Input ; |
| |
| rdfs:domain wfdesc:Process . |
| |
| |
| |
| ### http://purl.org/wf4ever/wfdesc#hasOutput |
| |
| wfdesc:hasOutput rdf:type owl:ObjectProperty ; |
| |
| rdfs:comment """This object property is used to specify the wfdesc:Output parameter of a given wfdesc:Process. |
| """@en ; |
| |
| rdfs:range wfdesc:Output ; |
| |
| rdfs:domain wfdesc:Process . |
| |
| |
| |
| ### http://purl.org/wf4ever/wfdesc#hasSink |
| |
| wfdesc:hasSink rdf:type owl:ObjectProperty ; |
| |
| rdfs:comment "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."@en ; |
| |
| rdfs:domain wfdesc:DataLink ; |
| |
| rdfs:range wfdesc:Input ; |
| |
| rdfs:subPropertyOf owl:topObjectProperty . |
| |
| |
| |
| ### http://purl.org/wf4ever/wfdesc#hasSource |
| |
| wfdesc:hasSource rdf:type owl:ObjectProperty ; |
| |
| rdfs:comment "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."@en ; |
| |
| rdfs:domain wfdesc:DataLink ; |
| |
| rdfs:range wfdesc:Output ; |
| |
| rdfs:subPropertyOf owl:topObjectProperty . |
| |
| |
| |
| ### http://purl.org/wf4ever/wfdesc#hasSubProcess |
| |
| wfdesc:hasSubProcess rdf:type owl:ObjectProperty ; |
| |
| rdfs:comment """This object property is used to specify that the given workflow contains the given process as part of its definition. |
| |
| 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. |
| |
| A specialialisation of sub process is wfdesc:hasSubWorkflow where the sub process is a nested wfdesc:Workflow."""@en ; |
| |
| rdfs:range wfdesc:Process ; |
| |
| rdfs:domain wfdesc:Workflow . |
| |
| |
| |
| ### http://purl.org/wf4ever/wfdesc#hasSubWorkflow |
| |
| wfdesc:hasSubWorkflow rdf:type owl:ObjectProperty ; |
| |
| rdfs:comment """This object property is used to associate a wfdesc:Workflow description to another wfdesc:Workflow, specifying that the first workflow has the given sub-workflow as a contained process. |
| |
| This is a specialisation of wfdesc:hasSubProcess."""@en ; |
| |
| rdfs:domain wfdesc:Workflow ; |
| |
| rdfs:range wfdesc:Workflow ; |
| |
| rdfs:subPropertyOf wfdesc:hasSubProcess . |
| |
| |
| |
| |
| |
| ################################################################# |
| # |
| # Data properties |
| # |
| ################################################################# |
| |
| |
| ### http://www.w3.org/2000/01/rdf-schema#label |
| |
| rdfs:label rdf:type owl:DatatypeProperty . |
| |
| |
| |
| |
| |
| ################################################################# |
| # |
| # Classes |
| # |
| ################################################################# |
| |
| |
| ### http://purl.org/wf4ever/wfdesc#Artifact |
| |
| wfdesc:Artifact rdf:type owl:Class ; |
| |
| rdfs:subClassOf wfdesc:Description ; |
| |
| rdfs:comment """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. |
| |
| An wfdesc:Artifact is associated with a wfdesc:Parameter using wfdesc:hasArtifact. |
| |
| 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."""@en . |
| |
| |
| |
| ### http://purl.org/wf4ever/wfdesc#DataLink |
| |
| wfdesc:DataLink rdf:type owl:Class ; |
| |
| rdfs:subClassOf wfdesc:Description ; |
| |
| rdfs:comment """wfdesc:DataLink is used to represent data dependencies between wfdesc:Process descriptions. It means that the artifact generated at an wfdesc:Output (identified using wfdesc:hasSource) will be used by a wfdescInput (identified using wfdesc:hasSink). |
| |
| 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. |
| |
| 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)."""@en . |
| |
| |
| |
| ### http://purl.org/wf4ever/wfdesc#Description |
| |
| wfdesc:Description rdf:type owl:Class ; |
| |
| rdfs:subClassOf [ rdf:type owl:Restriction ; |
| owl:onProperty rdfs:label ; |
| owl:someValuesFrom xsd:string |
| ] . |
| |
| |
| |
| ### http://purl.org/wf4ever/wfdesc#Input |
| |
| wfdesc:Input rdf:type owl:Class ; |
| |
| rdfs:subClassOf wfdesc:Parameter ; |
| |
| rdfs:comment """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. |
| |
| 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."""@en . |
| |
| |
| |
| ### http://purl.org/wf4ever/wfdesc#Output |
| |
| wfdesc:Output rdf:type owl:Class ; |
| |
| rdfs:subClassOf wfdesc:Parameter ; |
| |
| rdfs:comment """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. |
| |
| 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."""@en . |
| |
| |
| |
| ### http://purl.org/wf4ever/wfdesc#Parameter |
| |
| wfdesc:Parameter rdf:type owl:Class ; |
| |
| owl:equivalentClass [ rdf:type owl:Class ; |
| owl:unionOf ( wfdesc:Input |
| wfdesc:Output |
| ) |
| ] ; |
| |
| rdfs:subClassOf wfdesc:Description ; |
| |
| rdfs:comment """This class represent a parameter of a wfdesc:Process. A wfdesc:Parameter must be a wfdesc:Input, a wfdesc:Output, or both. |
| |
| 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."""@en . |
| |
| |
| |
| ### http://purl.org/wf4ever/wfdesc#Process |
| |
| wfdesc:Process rdf:type owl:Class ; |
| |
| rdfs:subClassOf wfdesc:Description ; |
| |
| rdfs:comment """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. |
| |
| 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"""@en . |
| |
| |
| |
| ### http://purl.org/wf4ever/wfdesc#Workflow |
| |
| wfdesc:Workflow rdf:type owl:Class ; |
| |
| rdfs:subClassOf wfdesc:Process ; |
| |
| rdfs:comment """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 wfdesc:Process descriptions. |
| |
| A wfdesc:Workflow defines associated wfdesc:Process using wfdesc:hasSubProcess. A specialisation of this property is wfdesc:hasSubWorkflow, signifying that the process is a wfdesc:Workflow itself, which is further described in a similar fashion. |
| |
| 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) |
| |
| wfdesc:Parameter descriptions are linked using wfdesc:DataLink descriptions associated with the wfdesc:Workflow using wfdesc:hasDataLink. |
| |
| A wfdesc:Parameter defined with wfdesc:hasInput on a wfdesc:Workflow is considered an wfdesc:Input \"outside\" the workflow (ie. if it is a subworkflow), but an wfdesc:Output \"inside\" the workflow (where it can be connected to a wfdesc:Input of a wfdesc:Process). Thus such parameters can be linked \"through\" the workflow without having a \"mirrored\" port inside. |
| |
| |
| Example: |
| ## |
| @prefix wfdesc: <http://purl.org/wf4ever/wfdesc#> . |
| :outerWorkflow a wfdesc:Workflow ; |
| wfdesc:hasSubWorkflow :innerWorkflow ; |
| wfdesc:hasSubProcess :procA, :procC . |
| |
| :procA a wfdesc:Process ; |
| wfdesc:hasOutput :param1 . |
| |
| :procC a wfdesc:Process ; |
| wfdesc:hasInput :param2 ; |
| wfdesc:hasOutput :param3 . |
| |
| |
| :innerWorkflow a wfdesc:Workflow ; |
| wfdesc:hasInput :param4 ; |
| wfdesc:hasOutput :param5 ; |
| wfdesc:hasProcess :procB . |
| |
| :procB a wfdesc:Process ; |
| wfdesc:hasInput :param6 ; |
| wfdesc:hasOutput :param7 . |
| |
| :innerWorkflow wfdesc:hasDataLink |
| [ wfdesc:hasSource :param4; wfdesc:hasSink :param6 ], |
| [ wfdesc:hasSource :param7; wfdesc:hasSink :param5 ] . |
| |
| :outerWorkflow wfdesc:hasDataLink |
| [ wfdesc:hasSource :param1; wfdesc:hasSink :param4 ], |
| [ wfdesc:hasSource :param5; wfdesc:hasSink :param2 ] . |
| |
| ## |
| |
| |
| 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. |
| |
| From this :param4 is both an wfdesc:Input and wfdesc:Output (which is why these two classes are not disjoint)"""@en . |
| |
| |
| |
| ### http://purl.org/wf4ever/wfdesc#WorkflowInstance |
| |
| wfdesc:WorkflowInstance rdf:type owl:Class ; |
| |
| rdfs:subClassOf wfdesc:Workflow ; |
| |
| rdfs:comment "A wfdesc:WorkflowInstance is a specialisation of a wfdesc:Workflow description which defines all data/parameters/settings that are required to form a wfprov:WorkflowRun."@en . |
| |
| |
| |
| |
| ### Generated by the OWL API (version 3.2.3.1824) http://owlapi.sourceforge.net |
| |