Skip to content
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

Handle various representations of "multiple" I/O values #579

Open
fmigneault opened this issue Oct 27, 2023 · 0 comments
Open

Handle various representations of "multiple" I/O values #579

fmigneault opened this issue Oct 27, 2023 · 0 comments
Assignees
Labels
feature/CWL Issue related to CWL support process/wps1 Issue related to WPS 1.x processes support process/wps2 Issue related to WPS 2.x processes support project/OGC Related to OGC testbeds or relavant projects. triage/feature New requested feature.

Comments

@fmigneault
Copy link
Collaborator

Description

The minOccurs/maxOccurs are used in inputs/outputs OGC API definitions to indicate the cardinality of an input "item".
This "item" can then itself be a single literal value, an array, or a complex object, which is represented by schema.

Therefore, a minOccurs: 1/maxOccurs: 1 (default) with a schema defining a type: array needs to be passed to remote processes as a single-value "complex data" represented by a JSON array. In CWL, that would be mapped to a File containing the JSON array.

If minOccurs >= 2 and schema has type: array, that input must have at least 2 "item" values, each being an array on its own. In order words, something like [ [1,2], [3,4] ]. In CWL, that would be represented as File[], each respectively containing [1,2] and [3,4]. In a remote WPS, the input would be provide twice, with the same respective complex data arrays.

The tricky portion is that WPS does not support "multiple outputs". No "cadinality" can be defined by minOccurs. In contrast, OGC API and CWL can support multiple outputs without any problem. In order to somewhat support them, the schema has been loosely updated using a oneOf representation of the single value vs multi-value representation when minOccurs >= 2 was detected.

All of this needs to be sorted out according to recommendations and future discussions from OGC API.

References

@fmigneault fmigneault added process/wps1 Issue related to WPS 1.x processes support process/wps2 Issue related to WPS 2.x processes support triage/feature New requested feature. feature/CWL Issue related to CWL support project/OGC Related to OGC testbeds or relavant projects. labels Oct 27, 2023
@fmigneault fmigneault self-assigned this Oct 27, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature/CWL Issue related to CWL support process/wps1 Issue related to WPS 1.x processes support process/wps2 Issue related to WPS 2.x processes support project/OGC Related to OGC testbeds or relavant projects. triage/feature New requested feature.
Projects
None yet
Development

No branches or pull requests

1 participant