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

Legg ved valgfri sjekksummer i konverteringsinformasjonen #21

Merged
merged 1 commit into from
Jun 21, 2021

Conversation

petterreinholdtsen
Copy link
Collaborator

Med dagens beskrivelse av konverteringsinformasjon er det ikke
mulig verifisere konverteringskjeder. Hvis flere konverteringskjeder
er oppgitt, så vil det ikke være mulig å vite hvilken kjende en gitt
konvertering tilhører.

Et eksempel er et innkommet ODT-dokument, som konverteres til DOCX, så
til PDF og så til PDF/A. Hvis en så oppdager at DOCX til PDF-konverteringen
feilet og gjør en ny konvertering, så er det kun tidsstemplet som kan brukes
til å forsøke å gjenskape konverteringskjeden.

Ved å ta med sjekksum (M705) til fra- og til-fil i konverteringsoppføringen,
så blir det mulig å identifisere hvilke deler av kjeden som hører sammen
ved å se hvilken fra-fil i en konvertering som har samme sjekksum som
til-fil i en annen konvertering. Dette vil også kunne brukes til å oppdage
brutte kjeder, hvis en fil har vært endret på disk mellom to konverteringer.

Da konvertering vil ha to sjekksumverdier (det vil si M705 sjekksum), så må
disse feltene gis to ulike navn. Verdiene konvertertFraSjekksum og
konvertertTilSjekksum er altså ment å være to instanser av
metadatakatalogoppføring M705, ikke to nye typer.

Hvis kjeden skal kunne følges må en sjekksum påføres ved konvertering og
ikke ved avlevering. Beskrivelsen av M705 er justert for å ta høyde for
dette.

@petterreinholdtsen
Copy link
Collaborator Author

Se også arkivverket/schemas#17 som diskuterer konvertering.

@hanber
Copy link
Contributor

hanber commented Dec 15, 2020

Tidligere praksis er å opprette ett metadata-element for hvert element av samme type, som M712 KonvertertFraFormat og M713 konvertertTilFormat, selv om begge er av typen Format. Kommentarene til disse sier "Bruker samme verdier som M701 format". Ett unntak er systemID, som vi har lagt inn som egen datatype for referanse-metadataene. Vi kunne gjort det samme for eksempelet over, og skrevet at datatypen for disse er "format".

Jeg synes uansett vi skal opprette konvertertFraSjekksum og konvertertTilSjekksum som egne metadata-elementer i metadatakatalogen. Inntil vi får tid til en bredere gjennomgang, synes jeg også vi skal legge inn i kommentarene at de "Bruker samme verdier som M705 sjekksum"

@petterreinholdtsen
Copy link
Collaborator Author

Jeg har oppdatert forslaget og introdusert nye M717 og M718 slik du ba om, samt valgt kravnummer et nummer større enn siste i 2.7.x-serien. Ser det bedre ut?

@hanber
Copy link
Contributor

hanber commented Apr 12, 2021

Jeg har sett litt nærmere på dokumentasjon av konvertering, og kommet fram til at dette bør løses ved å opprette et nytt dokumentobjekt for hver konvertering og ta vare på dokumentobjektet som refererer til dokumentfilen det konverteres fra.

Dagens modell innebærer at filen det konverteres fra ikke tas vare på, siden ett dokumentobjekt er knyttet til flere konverteringer, og det ikke finnes noen referanse til dokumentfilen det er konvertert fra. Jeg oppfatter konvertering-objektene som er gruppert inn i samme dokumentobjekt, som sekvensen av konverteringer som førte til gjeldende dokumentobjekt og dokumentfil.

Slik jeg oppfatter det, er tanken at en dokumentbeskrivelse vil inneholde flere dokumentobjekter der hvor et dokument er satt sammen av flere filer, og eventuelt versjoner og varianter av disse.

Siden dokumentobjekt har metadataene versjonsnummer og variantformat, oppfatter jeg det slik at en dokumentversjon kan ha flere varianter (f.eks. sladdet og usladdet). Det er antakelig ikke nødvendig med varianter av annet enn den siste, ferdigstilte versjonen. Uansett kan det til én dokumentbeskrivelse være knyttet dokumentobjekter med ulike versjoner og varianter.

I dagens modell er så vidt jeg kan forstå konvertertTilFormat unødvendig, da det vil være det samme som format i dokumentobjektet konverteringen er gruppert inn i. Det er heller ikke behov for det foreslåtte metadataelementet konvertertTilSjekksum, siden denne sjekksummen er den samme som sjekksum i dokumentobjektet konverteringen er gruppert inn i.

Ved konvertering av dokumentfilen (identifisert ved referanseDokumentfil) fra ett filformat til at annet må det opprettes en ny fil med resultatet av konverteringen, referanseDokumentfil må oppdateres til å referere denne nye filen, og den gamle tas ikke vare på. For integritetssikringen er jeg helt enig i at også filen det ble konvertert fra burde bevares, i alle fall for integritetskontroll fram til overføring til depot, men helst også i depot.

Dette kan oppnås med dagens modell dersom det opprettes et nytt dokumentobjekt ved hver konvertering. Det vil også gjøre mange av metadataene i konvertering unødvendig. Det må innføres et nytt metadataelement konvertertFra som er systemID i dokumentobjektet med referanse til filen det er konvertert fra.

konvertertDato og konvertertAv i konvertering vil være det samme som opprettetDato og opprettetAv i dokumentobjektet konvertering er gruppert inn i.

konvertertFraFormat i konvertering er det samme som format i dokumentobjektet med systemID lik konvertertFra i konvertering.

Multiplisiteten til konvertering vil dermed også bli 0..1, slik at hvert dokumentobjekt bare er relatert til dokumentobjektet det er konvertert fra. Jeg synes da at vi like gjerne kan kvitte oss med konvertering som en egen objekttype, og legge de gjenværende metadataene inn i dokumentobjekt.

Jeg foreslår denne løsningen. Synspunkter mottas med takk.

@petterreinholdtsen
Copy link
Collaborator Author

petterreinholdtsen commented Apr 12, 2021 via email

@hanber
Copy link
Contributor

hanber commented Apr 14, 2021

Det er helt riktig at dette er i konflikt med krav 6.4.40, så det må eventuelt endres. Når det er sagt, er det en stadig mer utbredt oppfatning i Arkivverket om at komplette databaser bør avleveres, og sett i lys av dette ville det ikke være urimelig å kreve avlevering av produksjonsformat og alle konverterte filer på veien mot arkivformat. Dette er eventuelt en beslutning som må tas på et høyere nivå.

XML-snutten er akkurat slik jeg mener det.

Mitt forslag innebærer at konverteringsinformasjonen legges på mål-dokumentobjektet. Dette gjelder også metadataene konverteringsverktoey og konverteringskommentar.

Jeg har ingen sterke synspunkter på om konvertering bør være en egen objekttype eller ikke.

Slik jeg oppfatter det, inngår i dagens modell konvertering i en komposisjon til dokumentobjekt, altså konvertering-objektet slettes dersom dokumentobjektet slettes og konvertering-objektet har ingen identifikator. Dersom vi skal beholde modellen som den er, og likevel beholde informasjonen om mellomkonverteringer, må den gjøres om til en aggregering, og konvertering-objektet kan leve videre selv om dokumentobjektet slettes. For å kunne spore konverteringskjeden må konverteringsinformasjonen for alle de slettede dokumentobjektene tas vare på ved å knyttes til dokumentobjektet som skal bevares. I så fall vil det være aktuelt å ha med alle de eksisterende metadataene i konvertering i tillegg til konvertertFraSjekksum og konvertertTilSjekksum samt sjekksumalgoritmeFra og sjekksumalgoritmeTil.

@petterreinholdtsen
Copy link
Collaborator Author

petterreinholdtsen commented Apr 14, 2021 via email

@hanber
Copy link
Contributor

hanber commented Apr 15, 2021

Dette er helt klart en måte å gjøre det på, som ikke gjør noen strukturelle endringer i dagens modell. Jeg er enig i at vi da bør ha med konvertertFraSjekksum og konvertertTilSjekksum, slik at vi i det minste kan verifisere at konvertertFraSjekksum i en konvertering er den samme som konvertertTilSjekksum i den forrige. Men det beste ville vært å ta vare på dokumentobjektene.

@petterreinholdtsen
Copy link
Collaborator Author

petterreinholdtsen commented Apr 15, 2021 via email

@hanber
Copy link
Contributor

hanber commented Apr 15, 2021

Jeg tror det lureste er å foreslå, som du allerede har gjort, at vi oppretter metadataelementene konvertertFraSjekksum og konvertertTilSjekksum eller bare sjekksumFra og sjekksumTil i konvertering-objektet, siden det ikke krever andre endringer.

@petterreinholdtsen
Copy link
Collaborator Author

Godt. 21 dager senere lurer jeg dermed på hva jeg kan gjøre for å få en avgjørelse på om denne endringen tas inn i spesifikasjonen eller ikke?

@hanber
Copy link
Contributor

hanber commented Jun 21, 2021

Før merge, et par oppklaringskommentarer.

I nytt linjenr 683: Er det hensiktsmessig å kreve at det brukes samme sjekksumalgoritme som i dokumentobjekt både for fra-filen og til-filen? Låser vi oss ikke da til at samme algoritme må benyttes for alle sjekksummer i konverteringskjeden? Det er kanskje ikke noe problematisk krav, og i motsatt fall må vi vel også ha med sjekksumFraAlgoritme og sjekksumTilAlgoritme i konvertering-objektet.

Kommentarene til M717 og M718 skal være "Bruker samme verdier som M705 sjekksum."

@petterreinholdtsen
Copy link
Collaborator Author

petterreinholdtsen commented Jun 21, 2021 via email

@hanber
Copy link
Contributor

hanber commented Jun 21, 2021

Ja, legg inn algoritme for fra- og til-sjekksummene også, så har vi full fleksibilitet.

Med dagens beskrivelse av konverteringsinformasjon er det ikke mulig å
verifisere konverteringskjeder etter at kildefiler er slettet.  Hvis
flere konverteringskjeder er oppgitt tilknyttet et gitt dokumentobjekt,
så vil det ikke være mulig å vite hvilken kjede en gitt konvertering
tilhører.

Et eksempel er et innkommet ODT-dokument, som konverteres til DOCX, så
til PDF og så til PDF/A.  Hvis en så oppdager at DOCX til PDF-konverteringen
feilet og gjør en ny konvertering, så er det kun tidsstemplet som kan brukes
til å forsøke å gjenskape konverteringskjeden.

Ved å ta med sjekksum beskrevet i M705 for fra- og til-fil i en
konverteringsinstans, så blir det mulig å identifisere hvilke deler av
kjeden som hører sammen ved å se hvilken fra-fil i en konvertering som har
samme sjekksum som til-fil i en annen konvertering.  Dette vil også kunne
brukes til å oppdage brutte kjeder, for eksempel hvis en fil har vært endret
på disk mellom to konverteringer.

Da konvertering vil ha to sjekksumverdier, så må disse feltene gis to
ulike attributtnavn. Verdiene i M717 konvertertFraSjekksum og M719
konvertertTilSjekksum er samme type verdier som brukes i M705.  Verdiene i
M718 konvertertFraSjekksumAlgoritme og M720 konvertertTilSjekksumAlgoritme
er samme type verdier som brukes i M706.

Hvis kjeden skal kunne følges må slik sjekksum registreres ved konvertering og
ikke ved avlevering.

Kravnummer 2.7.26 er valgt ut fra at siste gjeldende krav i 2.7.x-serien i dag
er 2.7.25.
@petterreinholdtsen
Copy link
Collaborator Author

petterreinholdtsen commented Jun 21, 2021 via email

@hanber hanber merged commit 4f982f9 into arkivverket:master Jun 21, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants