New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CQ11 - Parameter connections #25
Comments
We need something like: {
"@id": "packed.cwl#main/sorted",
"@type": "HowToStep",
"position": "1",
"workExample": {"@id": "packed.cwl#sorttool.cwl"},
"parameterConnections": [
{"@id": "#pc1"},
...
]
},
{
"@id": "#pc1",
"@type": "ParameterConnection",
"source": {"@id": "packed.cwl#revtool.cwl/output"},
"target": {"@id": "packed.cwl#sorttool.cwl/input"}
} |
See proposal in ResearchObject/ro-terms#12. I changed the property's name from
|
Also changed |
The problem with ResearchObject/ro-terms#12 (implemented in #29) is that all links to parameter connections are in the workflow. While this makes sense, it may not be enough to derive the actual data flow, especially when a tool is reused in different steps. As an example, consider this workflow for getting a sorted list of top level domains given a list of hostnames as input. It uses a CWL equivalent of the classic The connections for this workflow are: {
"@id": "#pc1",
"@type": "ParameterConnection",
"sourceParameter": {"@id": "packed.cwl#revtool.cwl/rev_out"},
"targetParameter": {"@id": "packed.cwl#cuttool.cwl/cut_in"}
},
{
"@id": "#pc2",
"@type": "ParameterConnection",
"sourceParameter": {"@id": "packed.cwl#main/hostnames"},
"targetParameter": {"@id": "packed.cwl#revtool.cwl/rev_in"}
},
{
"@id": "#pc3",
"@type": "ParameterConnection",
"sourceParameter": {"@id": "packed.cwl#cuttool.cwl/cut_out"},
"targetParameter": {"@id": "packed.cwl#revtool.cwl/rev_in"}
},
{
"@id": "#pc4",
"@type": "ParameterConnection",
"sourceParameter": {"@id": "packed.cwl#main/reverse_sort"},
"targetParameter": {"@id": "packed.cwl#sorttool.cwl/reverse"}
},
{
"@id": "#pc5",
"@type": "ParameterConnection",
"sourceParameter": {"@id": "packed.cwl#revtool.cwl/rev_out"},
"targetParameter": {"@id": "packed.cwl#sorttool.cwl/sort_in"}
},
{
"@id": "#pc6",
"@type": "ParameterConnection",
"sourceParameter": {"@id": "packed.cwl#sorttool.cwl/sort_out"},
"targetParameter": {"@id": "packed.cwl#main/tlds"}
} Suppose a consumer tries to build the workflow's diagram with this information. Since order is not guaranteed, connections might be processed as which is a different workflow that computes an entirely different output. To avoid this problem, we should add |
Knowing how workflow parameters were passed to individual tools is important to find out how they affected the outputs.
We are currently linking workflow and tool parameters with connectedTo from the source tool / workflow to the target tool / workflow. For instance, in revsort:
we currently have:
but that's inaccurate, since such links only exist within the
revsort
workflow.packed.cwl#revtool.cwl
andpacked.cwl#sorttool.cwl
represent standalone software tools that happen to be connected this way inrevsort
, but might be used differently in another workflow.The text was updated successfully, but these errors were encountered: