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

Using requirement dictionary pairs for dependencies #709

Open
carlwilson opened this issue Sep 7, 2023 · 9 comments
Open

Using requirement dictionary pairs for dependencies #709

carlwilson opened this issue Sep 7, 2023 · 9 comments
Assignees

Comments

@carlwilson
Copy link
Collaborator

TODO: Check that RELATEDMAT attribute cannot be used for dependencies.
TODO: Discuss use of XPath to make some of these more explicit.

This could be achieved using the dictionary pairs. The example below shows the <agent> element and its ROLE and TYPE attributes. XPath and Cardinality pairs are removed in the example see #707.

<requirement ID="CSIP10" REQLEVEL="MUST">
    <description>
        <head>Agent</head>
        <p xmlns="http://www.w3.org/1999/xhtml">A mandatory agent element records the software used to create the package. Other uses of agents may be described in any local implementations that extend the profile.</p>
    </description>
</requirement>
<requirement ID="CSIP11" REQLEVEL="MUST" EXAMPLES="metsHdrElementExample1">
    <description>
        <head>Agent role</head>
        <p xmlns="http://www.w3.org/1999/xhtml">The mandatory agent element MUST have a `@ROLE` attribute with the value “CREATOR”.</p>
        <dl xmlns="http://www.w3.org/1999/xhtml">
            <dt>dependsOn</dt><dd>CSIP10</dd>
        </dl>
    </description>
    <tests>
    </tests>
</requirement>
<requirement ID="CSIP12" REQLEVEL="MUST" EXAMPLES="metsHdrElementExample1">
    <description>
        <head>Agent type</head>
        <p xmlns="http://www.w3.org/1999/xhtml">The mandatory agent element MUST have a `@TYPE` attribute with the value “OTHER”.</p>
        <dl xmlns="http://www.w3.org/1999/xhtml">
            <dt>dependsOn</dt><dd>CSIP10</dd>
        </dl>
    </description>
</requirement>

Are other types of dependency or relationship required? For example could a requirement depend on another failing?

@karinbredenberg
Copy link
Contributor

The issue is going to be discussed by the DILCIS Board

@karinbredenberg
Copy link
Contributor

From the documentation of the METS Profile schema:
The attribute RELATEDMAT has this meaning: "an optional IDREFS attribute called RELATEDMAT, which you may use to indicate other portions of the profile document where this particular requirement is relevant"

@jmaferreira
Copy link

What is exactly being proposed here? I'm missing a bit of context to better understand the goal of the change request.

@jmaferreira
Copy link

I understood it better after reading issue #710.

Even though the improved documentation is appreaciated, I fear that this enhancement will not bring any actionable benefits while processing METS files.

Is the expectation that this change will provoke a change in the behaviour of validation tools?

@shsdev
Copy link
Contributor

shsdev commented Nov 29, 2023

We agreed on this in the CORE.3 Validation WG Status Meeting. This is related to the consolidation of validators. The purpose is to achieve a informed comparision between validation results. This way we can know if discrepancies can be ignored, e.g., if one validator complains about dependant attributes while the other one only highlights the parent error.

@karinbredenberg
Copy link
Contributor

@shsdev: Could you add what have you agreed that the specifications needs to be updated with for aiding with that

@carlwilson
Copy link
Collaborator Author

I understood it better after reading issue #710.

Even though the improved documentation is appreaciated, I fear that this enhancement will not bring any actionable benefits while processing METS files.

Is the expectation that this change will provoke a change in the behaviour of validation tools?

I seem to recall that Luis was keen on this as a way to prevent redundant requirements from been triggered during validation. The canonical example is don't report that the agent was missing a @ROLE attribute when there is no agent element at all. I could be wrong but it is worth asking him.

@karinbredenberg
Copy link
Contributor

karinbredenberg commented Jan 22, 2024

The suggestion is:

  • In the requirement attribute RELATEDMAT add dependencies between requirements
  • The dependency will be stated in the subsequent requirement so it points to its gathering/main requirement like for example already is made in CSIP5 where CSIP4 describes the used vocabulary and CSIP5 says what should happen if a specific value is used
  • To observe is that the RELATEDMAT attribute is also used for defining which vocabulary is used
  • Creation of issues for all specifications with METS profiles to make this addition

Board members acknowledgment of the issue:
Tick the box in front of you name to indicate that you have looked at the suggestion.

  • Karin Bredenberg (Kommunalförbundet Sydarkivera, chair)
  • Anders Bo Nielsen (National Archives of Denmark)
  • Anja Paulič (National Archives of Slovenia)
  • Arne-Kristian Groven (National Archives of Norway)
  • Gregor Zavrsnik (Geoarh)
  • Janet Anderson (Highbury Research & Development Ltd.)
  • Maya Bangerter (Swiss Federal Archives)
  • Miguel Ferreira (KEEP Solutions)
  • Stephen Mackey (Penwern Limited)
  • Sven Schlarb (Austrian Institute of Technology)

Voting
(Decision making will be carried out on the basis of majority voting by all eligible members of the Board. In the case of a tied vote, decisions will be made at the discretion of the Chair)

Tick the box in front of you name to say yes to the suggestion.

  • Karin Bredenberg (Kommunalförbundet Sydarkivera, chair)
  • Anders Bo Nielsen (National Archives of Denmark)
  • Anja Paulič (National Archives of Slovenia)
  • Arne-Kristian Groven (National Archives of Norway)
  • Gregor Zavrsnik (Geoarh)
  • Janet Anderson (Highbury Research & Development Ltd.)
  • Maya Bangerter (Swiss Federal Archives)
  • Miguel Ferreira (KEEP Solutions)
  • Stephen Mackey (Penwern Limited)
  • Sven Schlarb (Austrian Institute of Technology)

@karinbredenberg
Copy link
Contributor

karinbredenberg commented Feb 14, 2024

7 DILCIS Board members have acknowledge the issue
6 DILCIS Board members agree with the solution

The suggestion of updated handling of dependent requirements will be part of the next release of the specifications

Issues will be created in the relevant repositories.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: In progress
Development

No branches or pull requests

4 participants