Förvaltningsgemensam specifikation för leverans av enstaka publikationer till Kungliga biblioteket (FGS-PUBL)
Förvaltningsgemensam specifikation för leverans av enstaka publikationer till Kungliga biblioteket (FGS-PUBL)
Referens till det här dokumentet: xxxx://xxx.xx.xx/xxxxxxxxx/xxxxxx/xxxxxxxxxxxxxxxxxxxxx/xxxxxxx/xxx-xxxx/x0/
1. Inledning
Detta dokument är en specifikation för leverans av enstaka publikationer (resurser) till Kungliga biblioteket (KB). Specifikationen bygger på Förvaltningsgemensam specifikation (FGS) för paketstruktur för e-arkiv som tagits fram i projektet eARD1.
Denna FGS -PUBL är främst avsedd att användas för leverans av ”avslutade dokument” i myndighetens digitala publicering, t.ex. e- böcker, rapporter, tidskriftsnummer, bild- och ljudmaterial, i enlighet med lagen om e-plikt. FGS-PUBL ska även kunna användas för publikationer som inte omfattas av lagen om e-plikt men som efter överenskommelse ändå ska levereras.
1.1. Version 1.1
Denna version har kompletterats med möjlighet att ange krypteringsnyckel för en fil samt den algoritm som används för att kryptera filen.
2. Paketstruktur och leverans
• En leverans får innehålla ett eller flera leverans-paket. Varje paket får innehålla ett eller flera objekt (datafiler eller dataströmmar) avseende en publikation, dvs. en resurs, t.ex. en bok, ett tidskriftsnummer, en artikel. Om flera resurser ska levereras paketeras således var och en i ett eget paket.
1 FGS i projektet eARD, se xxxxx://xxxxxxxxxxx.xx/xxx-xxxxxx
• Metadata om resursen ska enligt specifikation nedan medfölja varje paket. Metadata skrivs i formatet METS2 i en xml-fil som döps till ’sip.xml’.
• Paketen överförs till KB via FTP (IP-adress, användarnamn och lösenord erhålls av handläggare på KB) eller på annat överenskommet vis. En leverans skall överföras som en .tar-fil där filnamnet motsvarar externt leverans-ID (dvs leverantörens referens).
• Kvittenser på alla leveranser och paket som levererats till KB publiceras via ett REST-API, där dessa kan efterfrågas via externt leverans-ID.
3. Begränsningar
4. Metadata
Specifikationen innehåller ett urval av element från den förvaltningsgemensamma specifikationen för e-arkiv. Standarden är METS3. För den bibliografiska beskrivningen i avsnittet mets:dmdSec måste ett val av annan metadatastandard göras. KB arbetar för närvarande med att ta fram specifikationer för Dublin Core4 och MODS5.
2 METS (Metadata Encoding and Transmission Standard), xxxx://xxx.xxx.xxx/xxxxxxxxx/xxxx/
3 METS (Metadata Encoding and Transmission Standard), xxxx://xxx.xxx.xxx/xxxxxxxxx/xxxx/
4 DC (Dublin Core, DCMI Metadata Terms), xxxx://xxxxxxxxxx.xxx/xxxxxxxxx/xxxx- terms/
5 MODS (Metadata Object Description Schema), xxxx://xxx.xxx.xxx/xxxxxxxxx/xxxx/
4.1. Namnrymder och scheman
I sip.xml, i avnittet mets:mets, ska pekare mot aktuella namnrymder (namespaces) och scheman för varje använd metadatastandard anges. Vilka dessa är meddelas av KB.
4.2. Metadata för leveranspaket (SIP)
Metadata för ett leveranspaket anges i form av ett antal dataelement som ska ingå i filen ”sip.xml” som ska medfölja varje leveranspaket.
Metadata i denna fil är generella för samtliga resurstyper. Tio dataelement är obligatoriska:
• Identitet
• Pakettyp
• Datum och tid
• Leveranstyp
• Leveransspecifikation
• Leveransöverenskommelse
• Namn på arkivbildare (utgivare)
• Identitetskod för arkivbildare (utgivare)
• Namn på system
• Namn på levererande organisation
• Identitetskod för levererande organisation
Nedanstående tabell visar de dataelement som ska eller bör användas för att beskriva en SIP.
Kardinaliteten ”1..1” samt ”1..N” anger att dataelementet är obligatoriskt.
Element | Definition | Förklaring och regler | Kard. | METS |
Identitet | Identifiering av paketet | En kod som unikt identifierar SIP:en. En UUID eller GUID kan användas för att skapa globalt unika identiteter. Exempel: “UUID:550e8400-e29b-41d4-a716- 446655440004" | 1..1 | <mets OBJID> |
Beskrivning | Beskrivning av paketet | En kort text som beskriver vad paketet innehåller. Attributet är inte obligatoriskt men vi rekommenderar att här lägga samma innehåll som i elementet för titel (title) i den bibliografiska beskrivningen, se Bibliografiska metadata om resursen. | 0..1 | <mets LABEL> |
Pakettyp | AIP/SIP/DIP | Anger var i OAIS-modellen detta paket hör hemma. I leveranspaket sätts värdet alltid till ”SIP”. | 1..1 | <mets TYPE> |
Datum och tid | Tidpunkten när paketet skapades | Datum och tidsstämpel för paketet enligt XML-standard för tidsangivelser. Denna tidsangivelse anger när SIP:en och filen ”sip.xml” skapats. Skrivs enligt W3CDTF time format: YYYY-MM-DDThh:mm:ss.sTZD. Exempel: "2012-04-26T12:45:00+01:00" | 1..1 | <metsHdr CREATEDATE> |
Status | Paketets status | Här är det möjligt att ange status för en SIP. Möjliga värden i detta dataelement definieras i en ordlista i METS- profilen.” ”REPLACEMENT” eller ”SUPPLEMENT” anges för paket som är ersättning respektive komplettering till tidigare levererade paket. Övriga värden som kan användas är ”NEW”, ”VERSION” och ”TEST” | 0..1 | <metsHdr RECORDSTATUS> |
Element | Definition | Förklaring och regler | Kard | METS |
Leveranstyp | Den leveranstyp som paketet tillhör | Här anges vilken leveranstyp SIP:en tillhör. En SIP kan tillhöra en och endast en leveranstyp. Möjliga värden i detta dataelement definieras i en ordlista i METS-profilen. Giltiga värden för denna FGS: ”DEPOSIT” (för resurser som ska levereras enligt lagen om eplikt); ”AGREEMENT” (övriga resurser enligt särskilt avtal) | 1..1 | <altrecordID TYPE=”DELIVERYTYPE ”> |
Leverans- specifikation | Leverans- specifikation för leveranstypen | En referens i form av en uri till det dokument som utgör den aktuella leverans-specifikationen för leveranstypen. KB meddelar värde. | 1..1 | <altrecordID TYPE=” DELIVERY- SPECIFICATION”> |
Leverans- överens- kommelse | Den leverans- överens- kommelse som en SIP tillhör | En referens i form av en uri som identifierar överenskommelsen. KB meddelar värde. | 1..1 | <altrecordID TYPE=”SUBMISSION- AGREEMENT”> |
Arkivbildaren Namn | Namn på arkivbildaren. | Namn på arkivbildaren. I denna FGS är arkivbildaren den instans som gjort publikationen tillgänglig (förlag, utgivare). Exempel: ”Förslagsmyndigheten” | 1..1 | <agent ROLE=”ARCHIVIST” TYPE= ”ORGANIZATION”> <name> |
Arkivbildare Identitetskod | En unik identitetskod för arkivbildarem | Identifiering med uri och en unik myndighetskod. Föregås av prefixet ”URI:”. Koden hämtas från KB:s Leverantörsregister. Exempel: ”URI:xxxx://xx.xx.xx/xxxxxxxxxxxxx/XX 2021001710” | 1..1 | <agent ROLE=” ARCHIVIST” TYPE=” ORGANIZATION”> <note> |
System Namn | Namn på det system ur vilket leveransens filer är exporterade | Talar om vilket system som filerna har exporterats ur, För de fall där det inte finns ett givet systemnamn anges i stället en förklarande text. | 1..1 | <agent ROLE=” ARCHIVIST” TYPE=”OTHER” OTHERTYPE= “SOFTWARE”> <name> |
System Version | Version för det system ur vilket leveransens filer är exporterade | Talar om version för det system som filerna har exporterats ur, t ex ”Version 2.76” | 0..1 | <agent ROLE=” ARCHIVIST” TYPE=”OTHER” OTHERTYPE= “SOFTWARE”> <note> |
Element | Definition | Förklaring och regler | Kard. | METS |
Levererande organisation Namn | Namn på den organisation som levererat SIP:en till KB. | Namn på den organisation som levererat SIP:en till e-arkivet. Denna organisation är ofta identisk med den som anges som arkivbildare. | 1..1 | <agent ROLE=”CREATOR” TYPE=” ORGANIZATION”> <name> |
Levererande organisation Identitetskod | En unik identitetskod för levererande organisation | Identifiering med unik myndighetskod. Föregås av prefixet ”URI:”. Koden hämtas från KB:s Leverantörsregister. Exempel: ”URI:xxxx://xx.xx.xx/xxxxxxxxxxxxx/XX 2021001710” | 1..1 | <agent ROLE=” CREATOR” TYPE=” ORGANIZATION”> <note> |
4.3. Bibliografiska metadata om resursen
Element | Definition | Förklaring och regler | Kard | METS |
Bibliografiska metadata | Deskriptiva (beskrivande) metadata om resursen. | Det är obligatoriskt med åtminstone en inbäddad bibliografisk beskrivning av den levererade resursen. Exempel på lämpliga standarder är DC och MODS. | 1..N | <dmdSec> <mdWrap MDTYPE=”[beteckning för metadatastandard]” <xmlData> |
4.4. Referens till metadata utanför sip.xml
Element | Definition | Förklaring och regler | Kard | METS |
Refererade metadata | Det är möjligt att referera till metadata i andra format utanför METS. En SIP kan exempelvis innehålla en separat metadatafil vilken refereras till i sip.xml. Detta är tillåtet enligt Paket-FGS och skulle kunna användas i vissa fall efter överenskommelse med KB. | 0..1 | <mdRef: MDTYPE=”[beteckning för metadatastandard]” Xlink:href> |
4.5. Metadata för filer refererade i filen sip.xml
Varje fysiskt objekt (datafil) som ingår i leveranspaketet ska refereras en och endast en gång i filen ”sip.xml”. För varje fil som refereras kan metadata anges i form av element och attribut i METS-formatet.
6 element är obligatoriska:
• Identitet för filen
• Filnamn
• Datum och tid
• MIME-typ
• Filformat och version
• Filstorlek
Element | Definition | Förklaring och regler | Kard | METS |
Identitet för filen | Identifierare för filobjektet | En kod som identifierar filen unikt inom METS-filen. Denna kod behöver inte ha någon funktion i övrigt. Koden består av ett prefix ”ID” direkt följt av en UUID eller GUID. Exempel: "ID550e8400-e29b-41d4-a716- 4466554400bg" | 1..1 | <file ID> |
Filnamn | Namn på filen | Filens namn inklusive sökväg och filändelse. Filnamnet måste vara unikt inom SIP:en. Filnamnet ska alltid föregås av ett prefix ”file:” Exempel: "file:namnpafilen.pdf" | 1..1 | <file <flocat LOCTYPE=”URL” xlink:type=”simple” xlink:href=”” |
Datum och tid | Tidsstämpel för filen | Datum och tid för filen. Tidsangivelsen ska följa XML- standard. Tiden avser när filen senast uppdaterades innan den paketerades in i SIP:en. Exempel: "2012-04-20T13:30:00+01:00" | 1..1 | <file CREATED> |
Element | Definition | Förklaring och regler | Kard | METS |
MIME-typ | Enkla sättet att ange filformat | Ett sätt att beskriva filens typ. Tex ”text/plain” för en textfil. Exempel: "text/xml" | 1..1 | <file MIMETYPE> |
Filformat och version | Filformat och version för filen | Förutom MIME-typ finns det behov av att ange filformat, version av formatet och eventuellt formatnyckel i ett formatregister såsom PRONOM. Formatnamn är det obligatoriska värdet att ange. Formatregistervärden i detta dataelement definieras i en ordlista i METS-profilen. Exempel: "Extensible Markup Language;1.0;PRONOM:fmt/101" | 1..1 | <file USE=”[Formatnamn]”; ”[Versionsbeteck- ning]”;”[Formatregis- ter]”:”[Formatnyckel]” > |
Filstorlek | Filens storlek i bytes | Storlek i bytes ska anges för samtliga filer som SIP:en omfattar. Exempel: ”8765324” | 1..1 | <file SIZE> |
Checksumma | Uträknat checksummevärde | En summa som räknats ut och som är unik för just denna fil. Exempel: ”574b69cf71ceb5534c8a2547f5547 dcc” | 0..1 | <file CHECKSUM> |
Check- summetype | Den checksummealgorit m som använts | Används för att ange den algoritm som använts för att generera checksumman: Värde hämtas från ordlista i METS-profilen. Exempel: ’MD5’ | 0..1 | <file CHECKSUMTYPE> |
Krypterings- nyckel | Krypteringsnyckel för krypterad fil | Det är möjligt att ange krypteringsnyckel för en fil. Exempel: ”574b69cf71ceb5534c8a2547f5547 d” | 0..1 | <file> <transformFile TRANSFORMTYPE= ”decryption” TRANSFORMKEY=”[ Krypteringsnyckel]”> |
Krypterings- algoritm | Krypterings- algoritm för krypterad fil | Det är möjligt att ange den krypteringsalgoritm som använts för att kryptera en fil. Exempel:”DES” | 0..1 | <file> <transformFile TRANSFORM- TYPE=”decryption” TRANSFORM- ALGORITHM=”[Krypt eringsalgoritm]”> |
4.6. Användning av StructMap
En METS-fil måste alltid innehålla elementet <StructMap> som används för att ange samband mellan de filer som ingår i informationspaket.
Element | Definition | Förklaring och regler | Kard. | METS |
Fysisk strukturkarta | En förteckning som klargör det fysiska sambandet mellan de datafller som ingår i paketet. | 1..1 | <structMap TYPE=”physical”> <div TYPE=”files”> | |
Överordnad division | Den översta nivån i en hierarkisk förteckning över de filer som ingår i paketet. | Det är obligatoriskt med ett <div>- element. I en fysisk strukturkarta får den alltid värde ”files”. | 1..1 | <div TYPE=”files”> |
Underordnad division | Underordnad nivå i en hierarkisk förteckning över de filer som ingår i paketet. | Listan på filer kan delas in i hierarkiska nivåer. Tillåtna värden för närvarande är ”publication”, ”coverpicture”. Listan kan byggas ut efter behov. | 0..N | <div TYPE=”[värde från lista]”> |
Filreferens | Referens till datafilens ID i paketet | 1..N | <fptr FILEID=”ID[värde i <file ID=” ”>]> |
Två exempel på den enklaste formen av structMap för denna FGS.
Exempel 1 (referens till 1 levererad fil):
<mets:structMap TYPE="physical">
<mets:div TYPE="files">
<mets:fptr FILEID="ID1" />
</mets:div>
</mets:structMap>
Exempel 2: (referens till 2 levererade filer):
<mets:structMap TYPE="physical">
<mets:div TYPE="files">
<mets:fptr FILEID="ID1" />
<mets:fptr FILEID="ID2" />
</mets:div>
</mets:structMap>
Ovanstående 2 exempel skulle egentligen inte ge mer information än vad som redan finns i paketet. Om ett paket innehåller flera filer med olika innehåll och/eller funktion, och detta även återspeglas i strukturkartan, blir informationen avsevärt mycket mer värdefull. Med hjälp av elementet div kan man skapa hierarkier som namnges med attributet TYPE vilket sedan kan sedan utnyttjas i gränssnitt för sökning och visning (t ex LIBRIS).
Exempel 3 (refererar till en pdf-fil som utgör själva publikationen samt en medföljande omslagsbild):
<mets:structMap TYPE="physical">
<mets:div TYPE="files">
<mets:div TYPE="publication">
<mets:fptr FILEID="ID1" />
</mets:div>
<mets:div TYPE="coverpicture">
<mets:fptr FILEID="ID2" />
</mets:div>
</mets:div>
</mets:structMap>