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

"Conditional MUST" needs better explanation #657

Closed
koit opened this issue Aug 23, 2021 · 2 comments · Fixed by #691
Closed

"Conditional MUST" needs better explanation #657

koit opened this issue Aug 23, 2021 · 2 comments · Fixed by #691
Assignees
Labels
enhancement Issues that are an enhancement needed to be evaluated and action decided

Comments

@koit
Copy link
Contributor

koit commented Aug 23, 2021

There are many instances of "Conditional MUST" that are confusing to the reader. Several kinds exist:

  • a SHOULD requirement that depends on a certain value of a MUST requirement, e.g. CSIP3 and 2;
  • a MAY requirement that depends on a certain value of a SHOULD requirement, e.g. CSIP5 and 4;
  • a MUST requirement that depends on the existence of a SHOULD-level element, e.g. CSIP33 and 32, and the flavour of it where both have the same XPath, e.g. CSIP99 and 97 (see also Redundancies and incompatible priority levels #570);
  • a MUST requirement that depends on the existence of a MAY-level element, e.g. CSIP46 and 45;
  • a SHOULD requirement that depends on the existence of a MAY-level element, e.g. CSIP47 and 45;
  • a SHOULD requirement that has a condition in itself, e.g. CSIP8;
  • a MUST requirement that has a SHOULD in itself, e.g. CSIP113;
  • a SHOULD requirement that depends on a MUST requirement that has a secondary dependence, e.g. CSIP97 and 113.

All of these are actually "conditional MUST":

  • if the precondition is met, the dependent requirements MUST be met;
  • if the precondition is not met, the dependent requirements are SHOULD, MAY or MUST NOT (the latter in the sense that they cannot be met, e.g. rightsMD/@ID cannot exist if rightsMD does not exist).

While most of these do have a sound logic, it takes a lot of effort to learn that logic. The solution could be an explanatory paragraph somewhere before the METS requirements (e.g. in chapter 5.3) or improved descriptions of each of the specific requirements.

PS The above is valid for CSIP v.2.0.4.

@koit koit added the enhancement Issues that are an enhancement needed to be evaluated and action decided label Aug 23, 2021
@PhillipTommerholt
Copy link
Contributor

Good work, Koit. I agree. I think a visually logic could help - for example by indentation.

@karinbredenberg karinbredenberg removed their assignment Aug 30, 2021
@carlwilson carlwilson self-assigned this Sep 24, 2021
@carlwilson carlwilson modified the milestone: CSIP Version 2.1 Oct 5, 2021
@carlwilson carlwilson linked a pull request Oct 15, 2021 that will close this issue
@karinbredenberg
Copy link
Contributor

Closed with PR #691

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Issues that are an enhancement needed to be evaluated and action decided
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants