common-workflow-language / common-workflow-language

Repository for the CWL standards. Use https://cwl.discourse.group/ for support 😊

Home Page:https://www.commonwl.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Define the concept of an "opaque string"

mr-c opened this issue · comments

My understanding is that we meant

A nonsensical value that is swapped out with a real value later in the evaluation process. Probably some sort of easy to recognize random string

@tetron can provide more context

Yes, that's basically it. The important thing is that workflow/tool expressions shouldn't try to parse it.

The purpose being to allow the runner to swap in a value late in the evaluation process, after the workflow/tool expressions have had a chance to see it.

Today-I-Learned about opaque data types, and opaque string.

I had a look at the Wikipedia article, and also at the text where we use “opaque”.

A nonsensical value that is swapped out with a real value later in the evaluation process. Probably some sort of easy to recognize random string

This is easy to understand while reading the rest of the text. I'll try to incorporate something similar in a PR to update where “opaque” is used as I think that's clearer (saves the reader unfamiliar with the term to have to open a link or read a footer note.)

I spent some time reading more about opaque strings, and it appears to be used in specs, some programming languages, and I found this Microsoft 365 doc, this AWS doc, and this NASA doc on DOI that use the term as well.

Maybe we should leave “opaque” and “opaque string”, but clarify it somewhere else in the document? What others think? If not, maybe a replacement term could be placeholder string, always followed by a note that implementees must not rely on this value…

We could insert a glossary after https://www.commonwl.org/v1.2/CommandLineTool.html#Terminology and define the terms there; they can be linked back from where they are used