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

Skal konvertering knyttes til kilde eller mål-dokumentobjekt? #17

Open
petterreinholdtsen opened this issue Jul 25, 2019 · 6 comments
Open

Comments

@petterreinholdtsen
Copy link
Contributor

I følge XSD for n5v5 så kan et dokumentobjekt inneholde ingen eller flere (aka 0..*) oppføringer av konvertering. Dette gjør det uklart hvordan konvertering skal brukes. Gitt et dokumentobjekt A i produksjonsformat som konverteres til et dokumentobjekt B i arkivformat, skal tilhørende konvertering K knyttes til A eller B? Dokument A kan konverteres flere ganger (f.eks. til dokumentobjekt B, C, D osv), men et gitt dokument B kan kun være resultat av en enkelt konvertering.

XSD indikerer at det kan være potensielt uendelig mange konvertering knyttet til et gitt dokumentobjekt, hvilket taler for at slike konvertering-oppføringer skal kobles til dokumentobjekt A i eksemplet over. Men det virker mer fornuftig å knytte konvertering-oppføringen til resultatet av konverteringen, dokumentobjekt B i eksemplet over.

Er det beskrevet noe sted hvilket dokumentobjekt i en slik konverteringsprosess en gitt konvertering-oppføring skal knyttes til? Jeg har ikke klart å finne det. Kan noen avklare om det er dokumentobjekt det konverteres fra eller til som skal ha konvertering-oppføringen?

Eventuelt er det feil multiplisitet på konvertering i XSD-en, og det skulle vært 0..1? Hvis 0..* er riktig og konvertering skal være knyttet til resultatet av konverteringen, kan noen forklare hva det er ment å bety?

@hanber
Copy link

hanber commented Oct 18, 2019

Jeg er usikker på hva konvertering skal beskrive.

Hovedscenario 1: Det opprettes et nytt dokumentobjekt når en dokumentfil konverteres, som refererer til den konverterte filen ved egenskapen referanseDokument, eventuelt med ulike versjonsnummer.

Scenario 1a): En dokumentfil A konverteres til flere nye dokumentfiler B, C, D osv. på ulike tidspunkt, med ulike verktøy eller andre omstendigheter som gjør at samme dokumentfil A konverteres flere ganger. Da må konvertering knyttes til dokumentobjektene B, C, D osv. Da blir det bare én konvertering per dokumentobjekt, og multiplisiteten burde være 0..1.

Scenario 1b): En dokumentfil A konverteres til en ny dokumentfil B, som deretter konverteres til en ny dokumentfil C osv. I dette scenariet er også det bare én konvertering per dokumentobjekt, og multiplisiteten burde være 0..1. Også i dette scenariet må konvertering knyttes til dokumentobjektene B, C osv.

Hovedscenario 2: Det opprettes ikke noe nytt dokumentobjekt når en dokumentfil konverteres. Siden det bare kan være én dokumentfil per dokumentobjekt, må originalfilen erstattes av den konverterte filen, og vi mister originalfilen. Da vil konvertering være en dokumentasjon på konverteringen, og det vil være behov for flere konverteringer per dokumentobjekt, slik at multiplisiteten må være 0..*.
I dette hovedscenariet vil scenario a) beskrevet i hovedscenario 1 ikke være mulig.

Den gjeldende modellen vil støtte begge hovedscenariene. Jeg vil imidlertid anbefale Hovedscenario 1, hvor originalen og alle de konverterte filene tas vare på ved versjonering av dokumentobjektet, så kan man vurdere hva som eventuelt skal overføres til depot.

@petterreinholdtsen
Copy link
Contributor Author

petterreinholdtsen commented Oct 18, 2019

Dette var lærerikt. Jeg hadde ikke forestilt meg hovedscenario 2 som en mulighet, gikk ut fra at dokumentobjekt inneholder filsjekksum og jeg hadde det for meg at det sto en eller annen plass at dokumentobjekt ikke skulle endres men erstattes hvis filinnholdet skulle erstattes.

For meg gir hovedscenario 1 mest mening, og tror forslaget fra #14 om en attributt referanseKildefil er godt.

Er det en offisiel beskrivelse i en eller annen spesifikasjon for bruk av XML-formatet som kan oppdateres med forklaring om hvordan disse konvertering-verdiene skal brukes, slik at alle har en sjanse til å gjøre det på samme vis?

@hanber
Copy link

hanber commented Jun 16, 2020

Jeg synes vi skal skjære gjennom og beslutte at det bare kan finnes én konvertering per dokumentobjekt, dvs. multiplisitet 0..1 fra dokumentobjekt til konvertering. Videre skal konvertering knyttes til dokumentobjektet det konverteres til.

Ved å innføre konvertertFra som en systemID til dokumentobjektet det konverteres fra, trenger vi verken konvertertFraFormat eller konvertertTilFormat, da disse vil være det samme som dokumentobjekt.format i dokumentobjektene det er konvertert hhv. fra og til.
Det samme gjelder konvertertFraSjekksum og formatertTilSjekksum som er det samme som dokumentobjekt.sjekksum i dokumentobjektene det er konvertert hhv. fra og til.

I tillegg kan vi fjerne konvertering.konvertertDato og konvertering.konvertertAv, fordi det vil være det samme som dokumentobjekt.opprettetDato og dokumentobjekt.opprettetAv.

Det man kan vurdere er om vi skal ta med konvertertTil som en systemID til objektet det er konvertert til. Jeg synes det er uheldig, fordi man da må oppdatere begge dokumentobjektene ved konvertering og man kan risikere inkonsistens. Med mitt forslag vil objekttypene se slik ut (nye elementer i kursiv):

dokumentobjekt
systemID [1..1] (M001)
versjonsnummer [1..1] (M005)
variantformat [1..1] (M700)
format [1..1] (M701)
mimeType [0..1] (M716)
formatdetaljer [0..1] (M702)
opprettetDato [1..1] (M600)
opprettetAv [1..1] (M601)
referanseOpprettetAv [1..1] (M225)
referanseDokumentfil [1..1] (M218)
sjekksum [1..1] (M705)
sjekksumalgoritme [1..1] (M706)
filstoerrelse [1..1] (M707)

konvertering
konvertertFra [1..1] (nytt metadataelement av typen Tekststreng)
referanseKonvertertFra [1..1] (nytt metadataelement av typen systemID)
konverteringsverktøy [0..1] (M714)
konverteringskommentar [0..1] (M715)

Assosiasjonen fra dokumentobjekt til konvertering har multiplisitet [0..1].
Assosiasjonen fra konvertering til dokumentobjekt har multiplisitet [1..1].

@petterreinholdtsen
Copy link
Contributor Author

petterreinholdtsen commented Jun 17, 2020 via email

@hanber
Copy link

hanber commented Jun 17, 2020

Først: Jeg ser at jeg var litt for opphengt i vanen med at referanser alltid har en tekstlig tvilling. Det er selvsagt feil. Vi har ikke bruk for konvertertFra [1..1] (nytt metadataelement av typen Tekststreng), jeg vet ikke hva det skulle inneholde. Det er tilstrekkelig med referanseKonvertertFra [1..1] (nytt metadataelement av typen systemID) som refererer til dokumentobjektet det er konvertert fra.

Jeg har forstått det slik at ved kassasjon skal dokumentobjektet også slettes sammen med dokumentfilen. Når dokumentobjektet slettes, slettes også konvertering-objektet. Dermed har vi ingen mulighet til å spore konverterings-kjeder ved kassasjon av dokumentobjekter i kjeden. Nå er disse sporene heller ikke så mye verd dersom filen det konverteres fra er slettet. Jeg tror at den eneste måten å få bevart konverterings-historikken er å ta vare på dokumentobjektet ved kassasjon.

@hanber
Copy link

hanber commented Jul 6, 2020

Oppsummert foreslår jeg:

1. konvertering knyttes til dokumentobjektet det konverteres til

2. Det opprettes et nytt metadataelement

Nr M231
Navn referanseKonvertertFra
Definisjon Referanse til dokumentobjekt det er konvertert fra (systemID)
Arkivenhet dokumentobjekt
Kilde Registreres automatisk ved filformatkonvertering
Arv Nei
Betingelser Skal ikke kunne endres

3. dokumentobjekt og konvertering endres til (nye elementer i kursiv):

dokumentobjekt
systemID [1..1] (M001)
versjonsnummer [1..1] (M005)
variantformat [1..1] (M700)
format [1..1] (M701)
mimeType [0..1] (M716)
formatdetaljer [0..1] (M702)
opprettetDato [1..1] (M600)
opprettetAv [1..1] (M601)
referanseOpprettetAv [1..1] (M225)
referanseDokumentfil [1..1] (M218)
sjekksum [1..1] (M705)
sjekksumalgoritme [1..1] (M706)
filstoerrelse [1..1] (M707)

konvertering
referanseKonvertertFra [1..1] (M231)
konverteringsverktøy [0..1] (M714)
konverteringskommentar [0..1] (M715)

konvertertFraFormat og konvertertTilFormat vil være unødvendige, da disse er ivaretatt av elementet format i henholdsvis dokumentobjektet som refereres i referanseKonvertertFra og dokumentobjektet konvertering er knyttet til.

Assosiasjonen fra dokumentobjekt til konvertering har multiplisitet [0..1].
Assosiasjonen fra konvertering til dokumentobjekt har multiplisitet [1..1].

4. dokumentobjekt tas vare på ved kassasjon og avleveres

På denne måten kan man spore konverteringskjeder. Ved kassasjon vil da noen dokumentobjekter mangle dokumentfil. Vi kan derfor i disse tilfellene ikke få verifisert sjekksummene tilbake til originalfilen, men vi kan identifisere sekvensen av konverteringer.

Hva mener dere om dette, @joergen-vs, @[email protected], @monadan, @AnnKnu og @oivkru?

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

No branches or pull requests

2 participants