What are the validation implications of the requirement values: -, C, E, M, and X?
This is regarding the MIxS 6 Term Updates "core" sheet
For example, if no value is provided for a field with a term with cardinality M (mandatory?), then the validation will not pass?
What about the others?
- [ ] -: Not applicable. If a value is provided for this slot/term, the validation will fail
- [ ] C: Conditionally mandatory. What are the conditions? Implementing as Recommended for now, expressed with schemasheets' "R" code
- [ ] E: Environment-dependent. I don't see how this column in the core sheet adds any value. In fact, it could contradict the "packages" sheet. I intend to leave these as optional in the core sheet, and upgrades to "mandatory" will come from the "packages" sheet.
- [ ] M: Mandatory: if data are submitted and this value is omitted, validation will fail
- [ ] X: Optional. My have to change to schemasheets' optional code, "O". Validation will not be affected by whether a value is provided for this slot/term.
See also
- #436
- #329
Mandatory is a flag for INSDC. It will pass, but a notice will be sent back to user.
We have a missing value vocabulary we developed with INSDC. https://ena-docs.readthedocs.io/en/latest/submit/samples/missing-values.html
The Mandatory (and other) flag is from the community members who build a package. Therefore, we allow that there will be missing values for some of them.
@turbomam from this ticket am I correct to assert that the LinkML implentation now has 3 basic levels of requirement for any given term in any given checklist/extension combination, ie a term can be: 1 - Mandatory (those terms that are required for strict compliance) or 2 - Recommended (what previously GSC would have called "Conditionally mandatory") or 3 - Optional If so, I like it! That would be much cleaners and clearer than the previous M, E, C, X way we did it previously! (Terms that are not applicable simply aren't included in a particular extension, so this status seem redundant.)
discussed at CIG call 25Jun - proposal of the use of the simplified 3 states mentioned above. However, the LinkML backend actually has a slightly different set up, every term in a checklist or extension has 2 flags (Required, or Recomended) that can be either True or False which gives a totla of 4 possible states for a term:
| -- | Recomended =T | Recomended = F |
|---|---|---|
| Required = T | -1- | -2- |
| Required = F | -3- | -4- |
We need to define how those state relate to the mandatory/recomended/option trio ?
my proposal is this:
| -- | Recomended =T | Recomended = F |
|---|---|---|
| Required = T | Mandatory | Mandatory |
| Required = F | Recomended | Optional |
There is an additional level of complexity, when a term is listed in BOTH a checklist and an Extension it may have different Required and Recomended states!
I believe the Checklist level states over-ride the extension level states, but I may be wrong! @turbomam please confirm?
I would like to propose that we move towards a place where terms are exclusive to either checklist OR extensions and not present in both to save confusion.
See also
- https://github.com/GenomicsStandardsConsortium/mixs/pull/675
cc @jfy133