arkivverket / noark5-standard

Noark 5 versjon 5.0 – innspill før versjonering til Noark 5 versjon 5.1
Other
3 stars 5 forks source link

Samkjør datatype for M215 i metadatakatalog og objektsorterte metadata. #102

Closed petterreinholdtsen closed 3 years ago

petterreinholdtsen commented 3 years ago

Objektsortert liste og XSD sier datatypen er systemID, mens YAML-filen sier tekststreng. Endret YAML-filen.

Relatert til #24.

hanber commented 3 years ago

Det er dette Jørgen og jeg er litt uenige om. Jeg har forstått det slik at systemID ikke var ment å være en datatype, men et metadataelement av typen Tekststreng. I tjenestegrensesnittet er det definert en egen type SystemID (med stor S) som bare er en string. systemID var opprinnelig av typen string (Tekststreng i Noark).

ID er innført som en egen datatype, og burde ikke være oppført som et metadataelement. Det er ingen objekter i objektsortert metadatakatalog som inneholder elementet ID, bare systemID av typen Tekststreng. Jeg mener derfor at ID ikke er et metadataelement som hører hjemme i metadatakatalogen, på samme måte som date, string eller integer heller ikke finnes som metadataelementer (M???) i metadatakatalogen. Jeg mener altså at ID heller ikke burde være et metadataelement i metadatakatalogen (at vi fjerner M016), så får det bare være definert i XSD-en

Så vidt jeg kan forstå er ID innført av to grunner:

  1. For å legge på restriksjonen med UUID-format (pattern ...), slik at det er unødvendig å gjenta for hvert metadataelement hvis verdi er en systemID
  2. For å kunne legge på labelsystemID som en utvidelse av ID

Jeg ser fordelen med punkt 1, selv om jeg ville kalt datatypen UUID i stedet for ID, siden det er hele hensikten.

Ved innføring av referanse-metadataelementene, f.eks. referanseForloeper var tanken at hvis arkivdelA er forløperen til arkivdelB så er arkivdelA.SystemID = arkivdelB.referanseForloeper. Nå er ikke engang referanseForloeper og systemID av samme type.

For øvrig tar jeg på meg skylden for at f.eks. arkivdel.systemID er oppført som Datatype under Metadata for arkivdel i den objektsorterte metadatakatalogen, selv om det ikke er noen definert datatype. Det var bare ment som en restriksjon på tekststrengen at den bare skal kunne referere til objekter av typen arkivdel. Jeg mener det siste er en relevant begrensning, som fremgår av den tekstlige definisjonen i metadatakatalogen, men som kanskje burde komme fram av skjemaet. I tidligere versjoner av den grafiske datamodellen var disse referansene angitt som stiplede piler til objektklassen de refererte.

Punkt 2 ser jeg ikke nødvendigheten av. Dersom det faktisk er nødvendig med label i systemID, synes jeg det ville vært bedre å la det være et eget metadataelement med et norsk navn definert i metadatakatalogen (M??? etikett). Slik det er nå, er ikke semantikken til label definert noe sted. Dersom label er ment å bety noe mer spesifikt enn at den er en tekststreng, bør vi finne et mer forklarende navn på den. Hvis vi definerer label som et eget metadataelement, vil vi i ialle fall oppnå at referansene og systemID-ene blir av samme type.

For å klargjøre: systemID, referanseForloeper, referanseAvskrivesAvJournalpost osv. kan ha verdier, ID har ikke noen verdi, men sier bare hvordan verdiene av systemID og referansene skal se ut.

Mine forslag oppsummert, gitt at det ikke har store økonomiske eller administrative konsekvenser:

  1. Fjerne M016 ID fra metadatakatalogen
  2. Fjerne attributtet label fra systemID og gjøre om systemID til simpleType
  3. Navne om ID til UUID hvis hensikten med definisjonen av ID er et den skal være en UUID
  4. Dersom label er nødvendig, definere et nytt metadataelement til erstatning for label med et navn og en definisjon som sier noe om hva det skal bety
petterreinholdtsen commented 3 years ago

Er dette innlegget i feil sak? Det høres ut som et innlegg i mangelmelding #6 og endringsforslag #25. Dette endringsforslaget handler om at YAML-fil og tillegg B ikke er enige, og jeg foreslår å endre YAML-fil og ikke tillegg B. Mener du at tillegg B bør endres i stedet? Jeg mener det bør brukes samme type begge steder, og tenker #6 og #25 kanskje avslører hva som bør stå begge stedene, men at det er et annet spørsmål enn å samkjøre alle steder er typen til M215 beskrives.

hanber commented 3 years ago

Det er den samme problemstillingen som ligger til grunn for dette og #6 og #25. Mine forslag i innlegget over vil løse dem. Her noen presiseringer:

  1. Fjern ID fra metadatakatalogen, siden ID ikke er et element som inneholder en verdi, men er en datatype. Siden det ikke finnes noen YAML-fil for den, er det allerede gjort. Fjerne M016 fra documentation i metadatakatalog.xsd, og heller sette inn UUID for å si hva som er hensikten med typen. Dette løser #25.
  2. Fjern attributtet label fra systemID og gjør systemID til simpleType. Dette løser #6.
  3. Endre datatype til ID for systemID og alle referanse... (M215 etc) i YAML-filene der det nå står Tekststreng eller metadataelement.systemID, der metadataelement er registrering, klasse, mappe, etc. Fjerne kolonnen Datatype i Objektsortert metadatakatalog.
  4. Legge til krav om at referansen må referere riktig type under Betingelser i YAML-filene, f.eks. for M215 referanseAvskrivesAvJournalpost: "Verdien må være systemID til en registrering", eller bare "Må referere til en registrering". (Her burde "registrering" vært erstattet med "journalpost", men det er et eget issue).
  5. Endre ID til UUID i alle kataloger og skjemaer (siden det er hensikten med datatypen).
  6. Hvis nødvendig, opprette et nytt (valgfritt?) metadata-element av typen Tekststreng til erstatning for attributtet label. Kan noen som har en formening om hva det skal brukes til foreslå et navn på elementet?

Jeg mener alle disse punktene bør gjennomføres, men det er fullt mulig å bare gjennomføre enkelte av dem.