ResearchObject / workflow-run-crate

Workflow Run RO-Crate profile
https://www.researchobject.org/workflow-run-crate/
Apache License 2.0
8 stars 9 forks source link

CQ3 - Configuration files #11

Closed simleo closed 1 year ago

simleo commented 2 years ago

What are the configuration files used in a workflow execution step?

ChooseAction? Though maybe the crate generator should just merge the params with the other ones if it can parse the config file. To link to the config file as a black box instead we probably need a new property.

simleo commented 1 year ago

There are two main cases here:

Example:

{
    "@id": "#c0080ce4-e220-44bf-92b3-c59e6d590059",
    "@type": "SoftwareApplication",
    "name": "StreamFlow 0.2.0.dev2",
    "softwareConfiguration": "streamflow.yml"
},
{
    "@id": "streamflow.yml",
    "@type": "File",
    "name": "StreamFlow configuration file",
    "encodingFormat": "application/yaml"
}

On a side note, it seems that the application/yaml media type is not official yet.

GlassOfWhiskey commented 1 year ago

Maybe it is worth adding a pointer to the SoftwareApplication it refers to

GlassOfWhiskey commented 1 year ago

Maybe it is worth adding a pointer to the SoftwareApplication it refers to

Oh sorry I didn't see it. I was looking for it the other way around :)

simleo commented 1 year ago

I've been rethinking this, and the above does not work. The reason is that the configuration is not an intrinsic property of the workflow engine, but rather one of the parameters of a specific execution of the engine, which can change from one execution to another, so the description of multiple engine runs (not forbidden by the spec, and there's been talk about a use case for it yesterday in a BY-COVID meeting) in general is not possible. The configuration file should instead be added to the object of the OrganizeAction that represents the engine run:

{
    "@id": "#e55c4723-7814-4cef-b3b6-96c1dbf1ae9b",
    "@type": "SoftwareApplication",
    "name": "StreamFlow 0.2.0.dev2"
},
{
    "@id": "#7ff2f0b6-0294-4da5-9ecc-5846b8aa4e66",
    "@type": "OrganizeAction",
    "instrument": {"@id": "#e55c4723-7814-4cef-b3b6-96c1dbf1ae9b"},
    "name": "Run of StreamFlow 0.2.0.dev2",
    "object": [
        {"@id": "7ff2f0b6-0294-4da5-9ecc-5846b8aa4e66/streamflow.yml"},
        {"@id": "#a203c665-668d-4488-bf57-5b2eedf77905"},
        ...
    ],
    "result": {"@id": "#9984d778-7cd8-49ea-984d-7c58a0404f85"}
},
{
    "@id": "7ff2f0b6-0294-4da5-9ecc-5846b8aa4e66/streamflow.yml",
    "@type": "File",
    "encodingFormat": "application/yaml"
},
{
    "@id": "#a203c665-668d-4488-bf57-5b2eedf77905",
    "@type": "ControlAction",
    "instrument": {"@id": "predictions.cwl#extract-tissue-low"},
    "object": {"@id": "#465dafb2-66cf-4af9-a6cf-b8fea0e8acc9"}
},
...
simleo commented 1 year ago

See https://github.com/ResearchObject/workflow-run-crate/pull/39