Difference between revisions of "Requirements/MediaConch integration"
Line 55: | Line 55: | ||
4. Archivematica writes a PREMIS event for validation to the AIP METS file. | 4. Archivematica writes a PREMIS event for validation to the AIP METS file. | ||
+ | |||
+ | '''Diagram''' | ||
+ | |||
+ | [[File:Pre_norm_checker.png]] | ||
'''Mockups''' | '''Mockups''' | ||
− | |||
PREMIS: | PREMIS: |
Revision as of 16:49, 25 May 2016
Page for requirements gathering for integration of Media Conch in Archivematica.
Use cases
MKV conformance checking
Pre-normalization
User Story: As a digital preservationist, I need to know whether or not mkv files which I am preserving are valid before I preserve them, because if they are invalid it might impact further preservation decisions.
Process:
1. In the Archivematica FPR, a new command will be written under Validation to run Mediaconch.
Possible command:
mediaconch -mc -iv 4 -fx nameOfFile.mkv
Where iv defines the verbosity of the output and -fx prints the output in xml. Note that presently MediaConch has the same verbosity for anything under 5. More granularity of verbosity will be available later in the development project.
Outcome of above:
<?xml version="1.0" encoding="UTF-8"?> <MediaConch xmlns="https://mediaarea.net/mediaconch" version="0.1"> <media ref="testFiles/MakeUp-029f3287-4f5d-4399-8330-8b31f2b749c8.mkv"> <implementationChecks> <name>MediaConch EBML Implementation Checker</name> </implementationChecks> <implementationChecks> <name>MediaConch FFV1 Implementation Checker</name> <check icid="FFV1-VALID-VERSION-VALUE" version="1"> <context field="Valid Values" value="1 3"/> <test outcome="pass"> <value offset="@offset" name="FFV1 version"/> </test> </check> <check icid="FFV1-VALID-CODERTYPE-VALUE" version="1"> <context field="Valid Values" value="0 1 2"/> <test outcome="pass"> <value offset="@offset" name="FFV1 coder type"/> </test> </check> <check icid="FFV1-VALID-COLORSPACETYPE-VALUE" version="1"> <context field="Valid Values" value="0 1"/> <test outcome="pass"> <value offset="@offset" name="FFV1 colorspace type"/> </test> </check> </implementationChecks> </media> </MediaConch>
2. In the Archivematica FPR, a new validation rule is written to use the above command to validate any original file in mkv format.
3. The command runs in the Validation micro-service. If the outcome of any of the checks is fail, the job fails and indicates failure by colour. In the case of either success or failure, the process should proceed to the next micro-service (Examine contents). The user has the opportunity to reject the Transfer in the Create SIP from Transfer micro-service, a decision they can make based on the outcome of Validation.
4. Archivematica writes a PREMIS event for validation to the AIP METS file.
Diagram
Mockups
PREMIS:
<mets:digiprovMD ID="digiprovMD_15"> <mets:mdWrap MDTYPE="PREMIS:EVENT"> <mets:xmlData> <premis:event xmlns:premis="info:lc/xmlns/premis-v2" xsi:schemaLocation="info:lc/xmlns/premis-v2 http://www.loc.gov/standards/premis/v2/premis-v2-2.xsd" version="2.2"> <premis:eventIdentifier> <premis:eventIdentifierType>UUID</premis:eventIdentifierType> <premis:eventIdentifierValue>ceb56635-f114-46d7-af3d-5766c8f6c75f</premis:eventIdentifierValue> </premis:eventIdentifier> <premis:eventType>validation</premis:eventType> <premis:eventDateTime>2016-05-25T20:55:38</premis:eventDateTime> <premis:eventDetail>program="MediaConch"; version="16.03"</premis:eventDetail> <premis:eventOutcomeInformation> <premis:eventOutcome>pass</premis:eventOutcome> <premis:eventOutcomeDetail> <premis:eventOutcomeDetailNote>version="1" outcome="pass"; coder type="1" outcome="pass"; colorspace="1" outcome="pass"</premis:eventOutcomeDetailNote> </premis:eventOutcomeDetail> </premis:eventOutcomeInformation> <premis:linkingAgentIdentifier> <premis:linkingAgentIdentifierType>Archivematica user pk</premis:linkingAgentIdentifierType> <premis:linkingAgentIdentifierValue>1</premis:linkingAgentIdentifierValue> </premis:linkingAgentIdentifier> <premis:linkingAgentIdentifier> <premis:linkingAgentIdentifierType>preservation system</premis:linkingAgentIdentifierType> <premis:linkingAgentIdentifierValue>Archivematica-1.4.1</premis:linkingAgentIdentifierValue> </premis:linkingAgentIdentifier> <premis:linkingAgentIdentifier> <premis:linkingAgentIdentifierType>repository code</premis:linkingAgentIdentifierType> <premis:linkingAgentIdentifierValue>ORG</premis:linkingAgentIdentifierValue> </premis:linkingAgentIdentifier> </premis:event> </mets:xmlData> </mets:mdWrap> </mets:digiprovMD>
Post-normalization
User Story: As a digital preservationist, I need to verify that the preservation copies that Archivematica has created through normalization are in conformance with the FFV1 specification so that I know I am placing preservation copies in storage which are reliable.
Process:
1. In the Archivematica FPR, a new command will be written under Verfication to run Mediaconch.
Possible command:
mediaconch -mc -iv 4 -fx nameOfFile.mkv
Where iv defines the verbosity of the output and -fx prints the output in xml. Note that presently MediaConch has the same verbosity for anything under 5. More granularity of verbosity will be available later in the development project.
Outcome of above:
<?xml version="1.0" encoding="UTF-8"?> <MediaConch xmlns="https://mediaarea.net/mediaconch" version="0.1"> <media ref="testFiles/MakeUp-029f3287-4f5d-4399-8330-8b31f2b749c8.mkv"> <implementationChecks> <name>MediaConch EBML Implementation Checker</name> </implementationChecks> <implementationChecks> <name>MediaConch FFV1 Implementation Checker</name> <check icid="FFV1-VALID-VERSION-VALUE" version="1"> <context field="Valid Values" value="1 3"/> <test outcome="pass"> <value offset="@offset" name="FFV1 version"/> </test> </check> <check icid="FFV1-VALID-CODERTYPE-VALUE" version="1"> <context field="Valid Values" value="0 1 2"/> <test outcome="pass"> <value offset="@offset" name="FFV1 coder type"/> </test> </check> <check icid="FFV1-VALID-COLORSPACETYPE-VALUE" version="1"> <context field="Valid Values" value="0 1"/> <test outcome="pass"> <value offset="@offset" name="FFV1 colorspace type"/> </test> </check> </implementationChecks> </media> </MediaConch>
2. In the Archivematica FPR, a rule is written for verification to run the above command when an mkv file has been created for preservation or access.
3. A new job in the Normalization micro-service runs the command (must be before Job: Move to approve normalization directory). If the outcome of any of the checks is fail, the job fails and indicates failure by colour. The normalization micro-service should proceed to the Approval step. Failures could also be indicated in the Approve normalization report.
4. Archivematica writes a PREMIS event in the METS to record the outcomes of verification. Note: "verification" is currently not a PREMIS event but we plan to suggest it to the PREMIS editorial committee. Verification would be an appropriate event to record to verify any kind of micro-service (for example, verify that decryption worked, etc).
Diagram
Mockups
Normalization report:
Only files from fileGrp use="Preservation" which have a creation event are listed. Clicking on "Passed" or "Failed" will show MediaConch output. N/A is for file formats which do not have a verification rule, for example:
No verification rule found for .wav!
PREMIS:
<mets:digiprovMD ID="digiprovMD_428512" CREATED="2016-04-05T18:55:56"> <mets:mdWrap MDTYPE="PREMIS:EVENT"> <mets:xmlData> <premis:event xmlns:premis="info:lc/xmlns/premis-v2" xsi:schemaLocation="info:lc/xmlns/premis-v2 http://www.loc.gov/standards/premis/v2/premis-v2-2.xsd" version="2.2"> <premis:eventIdentifier> <premis:eventIdentifierType>UUID</premis:eventIdentifierType> <premis:eventIdentifierValue>e2a85831-8dcd-43be-ba3d-9b7cae0f42b5</premis:eventIdentifierValue> </premis:eventIdentifier> <premis:eventType>verification</premis:eventType> <premis:eventDateTime>2016-05-19T18:03:03</premis:eventDateTime> <premis:eventDetail>program="MediaConch"; version="16.03"</premis:eventDetail> <premis:eventOutcomeInformation> <premis:eventOutcome>pass</premis:eventOutcome> <premis:eventOutcomeDetail> <premis:eventOutcomeDetailNote>version="1" outcome="pass"; coder type="1" outcome="pass"; colorspace="1" outcome="pass"</premis:eventOutcomeDetailNote> </premis:eventOutcomeDetail> </premis:eventOutcomeInformation> <premis:linkingAgentIdentifier> <premis:linkingAgentIdentifierType>Archivematica user pk</premis:linkingAgentIdentifierType> <premis:linkingAgentIdentifierValue>1</premis:linkingAgentIdentifierValue> </premis:linkingAgentIdentifier> <premis:linkingAgentIdentifier> <premis:linkingAgentIdentifierType>preservation system</premis:linkingAgentIdentifierType> <premis:linkingAgentIdentifierValue>Archivematica-1.7</premis:linkingAgentIdentifierValue> </premis:linkingAgentIdentifier> <premis:linkingAgentIdentifier> <premis:linkingAgentIdentifierType>repository code</premis:linkingAgentIdentifierType> <premis:linkingAgentIdentifierValue>Example Repository</premis:linkingAgentIdentifierValue> </premis:linkingAgentIdentifier> </premis:event> </mets:xmlData> </mets:mdWrap> </mets:digiprovMD>