1 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns=
"http://www.w3.org/1999/xhtml" dir=
"ltr">
5 <meta http-equiv=
"Content-Type" content=
"text/html;charset=utf-8" />
6 <title>Petter Reinholdtsen: Entries Tagged noark5
</title>
7 <link rel=
"stylesheet" type=
"text/css" media=
"screen" href=
"http://people.skolelinux.org/pere/blog/style.css" />
8 <link rel=
"stylesheet" type=
"text/css" media=
"screen" href=
"http://people.skolelinux.org/pere/blog/vim.css" />
9 <link rel=
"alternate" title=
"RSS Feed" href=
"noark5.rss" type=
"application/rss+xml" />
14 <a href=
"http://people.skolelinux.org/pere/blog/">Petter Reinholdtsen
</a>
21 <h3>Entries tagged "noark5".
</h3>
25 <a href=
"http://people.skolelinux.org/pere/blog/Nikita_og_Noark_5_tjenestegrensesnittet_tilbyr_ny_m_te___tenke_arkivering.html">Nikita og Noark
5 tjenestegrensesnittet tilbyr ny måte å tenke arkivering
</a>
31 <p><em>av Thomas Sødring (OsloMet) og Petter Reinholdtsen (foreningen
34 <p>Nikita Noark
5-kjerne er et fri programvareprosjekt som tar i bruk
35 Arkivverkets spesifikasjonen for Noark
5 Tjenestegrensesnitt og tilbyr
36 et maskinlesbart grensesnitt (arkiv-API) til datasystemer som trenger å
37 arkivere dokumenter og informasjon. I tillegg tilbyr Nikita et
38 nettleserbasert brukergrensesnitt for brukere av arkivet. Dette
39 brukergrensesnittet benytter det maskinlesbare grensesnittet. Noark
5
40 Tjenestegrensesnitt er en ny måte å tenke arkivering, med fokus på
41 automatisering og maskinell behandling av arkivmateriale, i stedet for
42 å fokusere på brukergrensesnitt. En kan tenke på
43 tjenestegrensesnittet som arkivet uten brukergrensesnitt, der flere
44 aktører kan koble til ulike brukergrensesnitt, tilpasset ulike
47 <p>Historisk sett gjorde Noark standarden en veldig bra jobb med
49 papir til digital saksbehandling, men det har kommet til kort på andre
50 områder. Den teknologiske utviklingen har brakt oss ditt at vi kan og
51 skal forvente langt mer fra en arkivkjerne enn før, men det offentlig
52 er ofte konservativ når det gjelder nytenking. For lengst skulle
53 begreper som samvirke mellom datasystemer, metadata, prosess og
54 tjenestegrensesnitt (API) vært dominerende når systemer kjøpes
55 inn. Dessverre er det slik at ikke alle ønsker samvirke mellom
56 datasystemer velkommen, og det kan være trygt å kjøpe «svarte bokser»
57 der du slipper å ta stilling til hvordan man skal få flere systemer
58 til å virke sammen. Men IT-arkitektur er et begrep arkivfolk også
59 begynner å ta inn over seg.
</p>
61 <p>Slike systemer for å organisere metadata bør ha nettbaserte
62 tjenestegrensesnitt der brukergrensesnitt er tydelig adskilt fra
63 bakenforliggende system. Det finnes mange rapporter som snakker om å
64 bryte ned siloer i forvaltningen og standardiserte tjenestegrensesnitt
65 er det viktigste virkemiddel mot datasiloer og legger til rette for
66 økt samvirke mellom systemer. Et standardisert tjenestegrensesnitt er
67 et viktig middel for å få systemer til å samhandle da det sikrer at
68 ulike produsenters systemer kan snakke sammen på tvers. Samfunnet
69 fungerer ikke uten standardisering. Vi har alle samme strømstyrke og
70 kontakter i veggene og kjører alle på høyre side av veien i Norge. Det er i en slik
71 sammenheng at prosjektet «Noark
5 Tjenestegrensesnitt» er veldig
72 viktig. Hvis alle leverandører av arkivsystemer forholdt seg til et
73 standardisert tjenestegrensesnitt kunne kostnadene for arkivering
74 reduseres. Tenk deg at du er en kommune som ønsker et fagsystem integrert
75 med arkivløsningen din. I dag må fagsystemleverandøren vite og
76 tilpasse seg den spesifikke versjonen og varianten av arkivløsningen
77 du har. Hvis vi antar at alle leverandører av arkivkjerner har solgt
78 inn enten SOAP eller REST-grensesnitt til kunder de siste
10 årene og
79 det kommer endret versjon av grensesnittet innimellom, så gir det
80 veldig mange forskjellige tjenestegrensesnitt en fagsystemleverandør
81 må forholde seg til. Med
12 leverandører og kvartalsvise oppdateringer
82 kan det potensielt bli
96 ulike varianter hvert eneste år. Det sier
83 seg selv at det blir dyrt. Men det blir faktisk verre. Hvis du senere
84 ønsker å bytte ut arkivsystemet med et annet så er du avhengig å få
85 alle integrasjonene dine laget på nytt. Dette kan gjøre at du velger å
86 forbli hos en dårlig leverandør framfor å skaffe nytt system, fordi
87 det blir for vanskelig og dyrt å bytte. Dermed etableres det «små»
88 monopolsituasjoner som er vanskelig å bryte ut av. Dårlige valg i dag
89 kan ha uante kostander på sikt. I Nikita-prosjektet har vi kun jobbet
90 opp mot Noark
5 Tjenestegrensesnittet. Det har tatt en god del
91 ressurser å sette seg inn i spesifikasjonen og ta den i bruk, spesielt
92 på grunn av uklarheter i spesifikasjonen. Hvis vi måtte gjøre det
93 samme for alle versjoner og varianter av de forskjellige
94 tjenestegrensesnittene ville det blitt veldig tidkrevende og
97 <p>For deg som arkivar er digitalisering og systemer som skal virke
98 sammen en del av den nye hverdagen. Du har kanskje blitt skånet for
99 det ved å kjøpe svarte bokser, men du risikerer at du gjør deg selv en
100 bjørnetjeneste. Det kan oppleves som kjedelig å fortelle kolleger at
101 du skal sette deg inn i et tjenestegrensesnitt, men dette er faktisk
102 veldig spennende. Tjenestegrensesnittet er på en måte blitt levende og
103 det er spesielt et begrep du bør merke deg: OData. Å trekke inn deler
104 av OData-standarden som en måte å filtrere entitetsøk i et arkivsystem
105 var et nyttig trekk i prosjektet. Følgende eksempel er en
106 OData-spørring det går an å sende inn til en standardisert
110 .../sakarkiv/journalpost?filter=contains(tittel, 'nabovarsel')
113 <p>Spørringen over vil hente en liste av alle dine journalposter der
114 tittelen til journalposten inneholder ordet 'nabovarsel'. Alle
115 leverandører som implementerer tjenestegrensesnittet vil måtte tilby
116 dette. Det betyr at hvis du lærer dette språket for et system, vil det
117 være gjeldende for alle. Dette er egentlig en ny måte å søke i
118 arkivdatabasen på og vil være svært nyttig, for eksempel kan søk i
119 tjenestegrensesnittet antagelig brukes til å hente ut offentlig
120 postjournal. I arkivverden pleier vi å like teknologier som er
121 menneskelesbart, da vet vi det er enkelt og nyttig! OData er også
122 viktig fordi det kan bli en ny måte å svare innsynsforespørsler på i
123 tråd med offentlighetsloven §
9, der retten til å kreve innsyn i
124 sammenstilling fra databaser er nedfelt. I dag ser vi
125 forvaltningsorganer som avviser slike krav fordi det «ikke kan gjøres
126 med enkle framgangsmåter». Bruken av OData i tjenestegrensesnittet,
127 sammen med maskinlesbar markeringsformater kan være et viktig bidrag
128 til å åpne arkivene i tråd med prinsippene om en åpen og transparent
131 <p>Standardisering er viktig fordi det
<em>kan
</em> sikre samvirke.
132 Men den effekten kommer kun hvis standardiseringen sikrer at alle
133 forstår standarden på samme måte, dvs. at den er entydig og klar. En
134 god måte å sikre en entydig og klar spesifikasjon er ved å kreve at
135 det finnes minst to ulike implementasjoner som følger spesifikasjonen
136 og som kan snakke sammen, det vil si at de snakker samme språk, slik
137 IETF krever for alle sine standarder, før spesifikasjonen anses å være
138 ferdig. Tilbakemelding fra miljøet forteller at både leverandører og
139 kunder har et avslappet forhold til Noark
5 Tjenestegrensesnitt og det
140 er så langt kun Evry som har visst offentlig at de har en
141 implementasjon av tjenestegrensesnittet. Evry, HK Data og Fredrikstad
142 kommune er igang med et pilotprosjekt på Noark
5
143 Tjenestegrensesnitt. For å redusere kostnadene for samvirkende
144 datasystemer betraktelig, er det veldig viktig at vi kommer i en
145 situasjon der alle leverandører har sine egne implementasjoner av
146 tjenestegrensesnittet, og at disse oppfører seg likt og i tråd med det
147 som er beskrevet i spesifikasjonen.
</p>
149 <p>Det er her fri programvare spiller en viktig rolle. Med en uklar
150 standard blir det som en polsk riksdag, der ingenting fungerer. Nikita
151 er en fri programvareimplementasjon av tjenestegrensesnitt og kan
152 fungere som teknisk referanse slik at leverandører enklere kan se og
153 forstå hvordan standarden skal tolkes. Vi har i Nikitaprosjektet
154 erfart å ende opp med vidt forskjellige tolkninger når
155 prosjektmedlemmene leser spesifikasjonsteksten, en effekt av en uklar
156 spesifikasjon. Men Nikitaprosjektet har også utviklet et test-program
157 som sjekker om et tjenestegrensesnitt er i samsvar med standarden, og
158 prosjektet bruker det hele tiden for å sikre at endringer og
159 forbedringer fungerer. Egenerklæringsskjemaenes dager kan være talte!
160 Snart vil du selv kunne teste hver oppdatering av arkivsystemet med en
163 <p>Fri programvare representerer en demokratisering av kunnskap der
164 tolkning- og innlåsingsmakt flyttes fra leverandør til allmenheten.
165 Med fri programvare har du en litt annerledes verdikjede, der selve
166 produktet ikke holdes hemmelig for å tjene penger, slik en gjør med
167 ufri programvare og skytjenester som ikke bruker fri programvare, men
168 du kan tjene penger på andre deler av verdikjeden. Med fri programvare
169 kan samfunnet betale for å videreutvikle nyttig
170 fellesfunksjonalitet.
</p>
172 <p>Nikita er en fri programvareimplementasjon av tjenestegrensesnittet og
173 kan fungere som en referanseimplementasjon dersom det er ønskelig.
174 Alle har lik tilgang til koden og det koster ingenting å ta den i bruk
175 og utforske det. Nikitaprosjektet ønsker tjenestegrensesnittet
176 velkommen og stiller veldig gjerne opp i diskusjoner om tolkning av
177 tjenestegrensesnittet. Nikita er bygget på moderne
178 programmeringsrammeverk og utviklet i full åpenhet. Men Nikita er ikke
179 noe du kan kjøpe. Nikita er først og fremst et verktøy for forsking og
180 utvikling laget for å fremme forskning på arkivfeltet. Systemer som
181 virker sammen har alltid vært hovedfokus og vil være det fremover.
182 Det brukes som undervisningsverktøy der studentene ved OsloMet lærer
183 om administrativt oppsett, saksbehandling, uttrekk og samvirkende
184 datasystemer. Det brukes også som forskningsobjekt der vi ser på
185 import av dokumentsamlinger, bruk av blokkjede og andre nyskapende
186 måter å tenke arkiv på. Det er dog helt greit om andre tar Nikita og
187 pakker det for å selge det som produkt. Forvaltningsorganer med
188 sterke drift- og utviklingsmiljøer kan også se på Nikita og utforske
189 hva som er mulig. Dette kan de gjøre uten å måtte betale for
190 bruksrettigheter eller tilgang til konsulenter. Men arkivering blir
191 ikke gratis på grunn av Nikita. Det trengs fortsatt folk med
192 kompetanse og tid til å ta i bruk Nikita.
</p>
194 <p>Nikita har nylig kommet med en ny utgave, den sjette i rekken.
195 Systemet er ikke ferdig, mest på grunn av at API-spesifikasjonen for
196 Noark
5 Tjenestegrensesnitt ikke er ferdig, men allerede i dag kan en
197 bruke Nikita som arkiv. Vi har laget eksempelsystem for å importere
198 data fra deponi-XML og slik gjøre eksisterende arkivdata tilgjengelig
199 via et API. Vi har også laget en testklient som importerer epost inn
200 i arkivet med vedlegg der epostenes trådinformasjon brukes til å legge
201 eposttråder i samme arkivmappe, og en annen testklient som henter
202 epost ut av en arkivmappe på mbox-format slik at en vanlig epostklient
203 kan brukes til å lese igjennom og svare på epostene i en
204 arkivmappe. De som vil ta en titt på Nikita kan besøke
205 <a href=
"https://nikita.oslomet.no">https://nikita.oslomet.no
</a> og
206 logge inn med brukernavn «admin@example.com» og passord «password».
207 Dette gir tilgang til det forenklede brukergrensesnittet som brukes
208 til undervisning. De som heller vil ta en titt under panseret kan
210 <a href=
"https://nikita.oslomet.no/browse.html">https://nikita.oslomet.no/browse.html
</a>
211 og der se hvordan API-et fungerer mer i detalj. Innloggingsdetaljer
212 her er det samme som for brukergrensesnittet.
</p>
214 <p>Fremover er fokuset på forbedring av spesifikasjonen Noark
5
215 Tjenestegrensesnitt. De som skrev tjenestegrensesnittet gjorde et
216 interessant og framtidsrettet grep, de skilte sak fra arkiv.
217 Tjenestegrensesnittet består av flere "pakker", der noen er
218 grunnleggende mens andre bygger på de grunnleggende pakkene. Pakkene
219 som er beskrevet så langt heter «arkivstruktur», «sakarkiv»,
220 «administrasjon», «loggogsporing» og «moeter» (dessverre
221 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/pull/120">planlagt
222 fjernet
</a> i første utgave). Etter hvert håper vi å utforske
223 prosses- og metadatabeskrivelser til flere fagområder og bidra til at
224 tjenestegrensesnittet kan legge til flere pakker som «byggarkiv»,
225 «barnevern», «personal», «barnehage», der arkivfaglig metadata- og
226 dokumentasjonsbehov er kartlagt og standardisert.
</p>
228 <p>Nikita utvikles av en liten prosjektgruppe, og vi er alltid
229 interessert å bli flere. Hvis en åpen, fri og standardisert tilnærming
230 til arkivering høres interessant ut, bli med oss på veien videre. Vi
231 er tilstede på IRC-kanalen #nikita hos FreeNode (tilgjengelig via
233 <a href=
"https://webchat.freenode.net?channels=#nikita">https://webchat.freenode.net?channels=#nikita
</a>),
234 og har en e-postliste nikita-noark@nuug.no hos NUUG (tilgjengelig for
235 påmelding og arkiv på
236 <a href=
"https://lists.nuug.no/mailman/listinfo/nikita-noark">https://lists.nuug.no/mailman/listinfo/nikita-noark
</a>)
237 der en kan følge med eller være med oss på den spennende veien videre.
238 Spesifikasjonen for Noark
5 Tjenestegrensesnitt vedlikeholdes på
240 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/">https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/
</a>.
</p>
242 <p>Som vanlig, hvis du bruker Bitcoin og ønsker å vise din støtte til
243 det jeg driver med, setter jeg pris på om du sender Bitcoin-donasjoner
245 <b><a href=
"bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a></b>.
</p>
251 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/noark5">noark5
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/norsk">norsk
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/standard">standard
</a>.
256 <div class=
"padding"></div>
260 <a href=
"http://people.skolelinux.org/pere/blog/Official_MIME_type__text_vnd_sosi__for_SOSI_map_data.html">Official MIME type "text/vnd.sosi" for SOSI map data
</a>
267 <ahref=
"http://people.skolelinux.org/pere/blog/MIME_type__text_vnd_sosi__for_SOSI_map_data.html">I
268 mentioned
</a> my submission to IANA to register an official MIME type
269 for the SOSI vector map format. This morning, just an hour ago, I was
271 <a href=
"https://www.iana.org/assignments/media-types/text/vnd.sosi">the
272 MIME type "text/vnd.sosi"
</a> is registered for this format. In
273 addition to this registration, my
274 <a href=
"https://github.com/file/file/blob/master/magic/Magdir/sosi">file(
1)
275 patch for a pattern matching rule for SOSI files
</a> has been accepted
276 into the official source of that program (pending a new release), and
277 I've been told by the team behind
278 <a href=
"https://www.nationalarchives.gov.uk/PRONOM/">PRONOM
</a> that
279 the SOSI format will be included in the next release of PRONOM, which
280 they plan to release this summer around July.
</p>
282 <p>I am very happy to see all of this fall into place, for use by
283 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/">the
284 Noark
5 Tjenestegrensesnitt
</a> implementations.
</p>
286 <p>As usual, if you use Bitcoin and want to show your support of my
287 activities, please send Bitcoin donations to my address
288 <b><a href=
"bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a></b>.
</p>
294 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/kart">kart
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/noark5">noark5
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/standard">standard
</a>.
299 <div class=
"padding"></div>
303 <a href=
"http://people.skolelinux.org/pere/blog/Nikita_version_0_4_released___free_software_archive_API_server.html">Nikita version
0.4 released - free software archive API server
</a>
309 <p>This morning, a new release of
310 <a href=
"https://gitlab.com/OsloMet-ABI/nikita-noark5-core/">Nikita
311 Noark
5 core project
</a> was
312 <a href=
"https://lists.nuug.no/pipermail/nikita-noark/2019-May/000468.html">announced
313 on the project mailing list
</a>. The Nikita free software solution is
314 an implementation of the Norwegian archive standard Noark
5 used by
315 government offices in Norway. These were the changes in version
0.4
316 since version
0.3, see the email link above for links to a demo site:
</p>
320 <li>Roll out OData handling to all endpoints where applicable
</li>
321 <li>Changed the relation key for "ny-journalpost" to the official one.
</li>
322 <li>Better link generation on outgoing links.
</li>
323 <li>Tidy up code and make code and approaches more consistent throughout
325 <li>Update rels to be in compliance with updated version in the
326 interface standard
</li>
327 <li>Avoid printing links on empty objects as they can't have links
</li>
328 <li>Small bug fixes and improvements
</li>
329 <li>Start moving generation of outgoing links to @Service layer so access
330 control can be used when generating links
</li>
331 <li>Log exception that was being swallowed so it's traceable
</li>
332 <li>Fix name mapping problem
</li>
333 <li>Update templated printing so templated should only be printed if it
334 is set true. Requires more work to roll out across entire
336 <li>Remove Record-
>DocumentObject as per domain model of n5v4
</li>
337 <li>Add ability to delete lists filtered with OData
</li>
338 <li>Return NO_CONTENT (
204) on delete as per interface standard
</li>
339 <li>Introduce support for ConstraintViolationException exception
</li>
340 <li>Make Service classes extend NoarkService
</li>
341 <li>Make code base respect X-Forwarded-Host, X-Forwarded-Proto and
342 X-Forwarded-Port
</li>
343 <li>Update CorrespondencePart* code to be more in line with Single
344 Responsibility Principle
</li>
345 <li>Make package name follow directory structure
</li>
346 <li>Make sure Document number starts at
1, not
0</li>
347 <li>Fix isues discovered by FindBugs
</li>
348 <li>Update from Date to ZonedDateTime
</li>
349 <li>Fix wrong tablename
</li>
350 <li>Introduce Service layer tests
</li>
351 <li>Improvements to CorrespondencePart
</li>
352 <li>Continued work on Class / Classificationsystem
</li>
353 <li>Fix feature where authors were stored as storageLocations
</li>
354 <li>Update HQL builder for OData
</li>
355 <li>Update OData search capability from webpage
</li>
359 <p>If free and open standardized archiving API sound interesting to
360 you, please contact us on IRC
361 (
<a href=
"irc://irc.freenode.net/%23nikita">#nikita on
362 irc.freenode.net
</a>) or email
363 (
<a href=
"https://lists.nuug.no/mailman/listinfo/nikita-noark">nikita-noark
364 mailing list
</a>).
</p>
366 <p>As usual, if you use Bitcoin and want to show your support of my
367 activities, please send Bitcoin donations to my address
368 <b><a href=
"bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a></b>.
</p>
374 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/noark5">noark5
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/nuug">nuug
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/standard">standard
</a>.
379 <div class=
"padding"></div>
383 <a href=
"http://people.skolelinux.org/pere/blog/MIME_type__text_vnd_sosi__for_SOSI_map_data.html">MIME type "text/vnd.sosi" for SOSI map data
</a>
389 <p>As part of my involvement in the work to
390 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard">standardise
391 a REST based API for Noark
5</a>, the Norwegian archiving standard, I
392 spent some time the last few months to try to register a
393 <a href=
"https://www.iana.org/assignments/media-types/">MIME type
</a>
394 and
<a href=
"https://www.nationalarchives.gov.uk/PRONOM/">PRONOM
395 code
</a> for the SOSI file format. The background is that there is a
396 set of formats approved for long term storage and archiving in Norway,
397 and among these formats, SOSI is the only format missing a MIME type
400 <p>What is SOSI, you might ask? To quote Wikipedia: SOSI is short for
401 Samordnet Opplegg for Stedfestet Informasjon (literally "Coordinated
402 Approach for Spatial Information", but more commonly expanded in
403 English to Systematic Organization of Spatial Information). It is a
404 text based file format for geo-spatial vector information used in
405 Norway. Information about the SOSI format can be found in English
406 from
<a href=
"https://en.wikipedia.org/wiki/SOSI">Wikipedia
</a>. The
407 specification is available in Norwegian from
408 <a href=
"https://www.kartverket.no/geodataarbeid/Standarder/SOSI/">the
409 Norwegian mapping authority
</a>. The SOSI standard, which originated
410 in the beginning of nineteen eighties, was the inspiration and formed the
411 basis for the XML based
412 <a href=
"https://en.wikipedia.org/wiki/Geography_Markup_Language">Geography
413 Markup Language
</a>.
</p>
415 <p>I have so far written
416 <a href=
"https://github.com/file/file/pull/67">a pattern matching
417 rule
</a> for the file(
1) unix tool to recognize SOSI files, submitted
418 a request to the PRONOM project to have a PRONOM ID assigned to the
419 format (reference TNA1555078202S60), and today send a request to IANA
420 to register the "text/vnd.sosi" MIME type for this format (referanse
421 <a href=
"https://tools.iana.org/public-view/viewticket/1143144">IANA
422 #
1143144</a>). If all goes well, in a few months, anyone implementing
423 the Noark
5 Tjenestegrensesnitt API spesification should be able to
424 use an official MIME type and PRONOM code for SOSI files. In
425 addition, anyone using SOSI files on Linux should be able to
426 automatically recognise the format and web sites handing out SOSI
427 files can begin providing a more specific MIME type. So far, SOSI
428 files has been handed out from web sites using the
429 "application/octet-stream" MIME type, which is just a nice way of
430 stating "I do not know". Soon, we will know. :)
</p>
432 <p>As usual, if you use Bitcoin and want to show your support of my
433 activities, please send Bitcoin donations to my address
434 <b><a href=
"bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a></b>.
</p>
440 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/kart">kart
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/noark5">noark5
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/standard">standard
</a>.
445 <div class=
"padding"></div>
449 <a href=
"http://people.skolelinux.org/pere/blog/PlantUML_for_text_based_UML_diagram_modelling___nice_free_software.html">PlantUML for text based UML diagram modelling - nice free software
</a>
455 <p>As part of my involvement with the
456 <a href=
"https://gitlab.com/OsloMet-ABI/nikita-noark5-core/">Nikita
457 Noark
5 core project
</a>, I have been proposing improvements to the
458 API specification created by
<a href=
"https://www.arkivverket.no/">The
459 National Archives of Norway
</a> and helped migrating the text from a
460 version control system unfriendly binary format (docx) to Markdown in
461 git. Combined with the migration to a public git repository (on
462 github), this has made it possible for anyone to suggest improvement
465 <p>The specification is filled with UML diagrams. I believe the
466 original diagrams were modelled using Sparx Systems Enterprise
467 Architect, and exported as EMF files for import into docx. This
468 approach make it very hard to track changes using a version control
469 system. To improve the situation I have been looking for a good text
470 based UML format with associated command line free software tools on
471 Linux and Windows, to allow anyone to send in corrections to the UML
472 diagrams in the specification. The tool must be text based to work
473 with git, and command line to be able to run it automatically to
474 generate the diagram images. Finally, it must be free software to
475 allow anyone, even those that can not accept a non-free software
476 license, to contribute.
</p>
478 <p>I did not know much about free software UML modelling tools when I
479 started. I have used dia and inkscape for simple modelling in the
480 past, but neither are available on Windows, as far as I could tell. I
482 <a href=
"https://modeling-languages.com/text-uml-tools-complete-list/">list
483 of text mode uml tools
</a>, and tested out a few of the tools listed
484 there.
<a href=
"http://plantuml.com/">The PlantUML tool
</a> seemed
485 most promising. After verifying that the packages
486 <a href=
"https://tracker.debian.org/pkg/plantuml">is available in
487 Debian
</a> and found
<a href=
"https://github.com/plantuml/plantuml">its
488 Java source
</a> under a GPL license on github, I set out to test if it
489 could represent the diagrams we needed, ie the ones currently in
490 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/">the
491 Noark
5 Tjenestegrensesnitt specification
</a>. I am happy to report
492 that it could represent them, even thought it have a few warts here
495 <p>After a few days of modelling I completed the task this weekend. A
496 temporary link to the complete set of diagrams (original and from
497 PlantUML) is available in
498 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues/76">the
499 github issue discussing the need for a text based UML format
</a>, but
500 please note I lack a sensible tool to convert EMF files to PNGs, so
501 the "original" rendering is not as good as the original was in the
504 <p>Here is an example UML diagram, showing the core classes for
505 keeping metadata about archived documents:
</p>
509 skinparam classAttributeIconSize
0
511 !include media/uml-class-arkivskaper.iuml
512 !include media/uml-class-arkiv.iuml
513 !include media/uml-class-klassifikasjonssystem.iuml
514 !include media/uml-class-klasse.iuml
515 !include media/uml-class-arkivdel.iuml
516 !include media/uml-class-mappe.iuml
517 !include media/uml-class-merknad.iuml
518 !include media/uml-class-registrering.iuml
519 !include media/uml-class-basisregistrering.iuml
520 !include media/uml-class-dokumentbeskrivelse.iuml
521 !include media/uml-class-dokumentobjekt.iuml
522 !include media/uml-class-konvertering.iuml
523 !include media/uml-datatype-elektronisksignatur.iuml
525 Arkivstruktur.Arkivskaper "+arkivskaper
1..*"
<-o "+arkiv 0..*" Arkivstruktur.Arkiv
526 Arkivstruktur.Arkiv o-->
"+underarkiv 0..*" Arkivstruktur.Arkiv
527 Arkivstruktur.Arkiv
"+arkiv 1" o-->
"+arkivdel 0..*" Arkivstruktur.Arkivdel
528 Arkivstruktur.Klassifikasjonssystem
"+klassifikasjonssystem [0..1]" <--o
"+arkivdel 1..*" Arkivstruktur.Arkivdel
529 Arkivstruktur.Klassifikasjonssystem
"+klassifikasjonssystem [0..1]" o-->
"+klasse 0..*" Arkivstruktur.Klasse
530 Arkivstruktur.Arkivdel
"+arkivdel 0..1" o-->
"+mappe 0..*" Arkivstruktur.Mappe
531 Arkivstruktur.Arkivdel
"+arkivdel 0..1" o-->
"+registrering 0..*" Arkivstruktur.Registrering
532 Arkivstruktur.Klasse
"+klasse 0..1" o-->
"+mappe 0..*" Arkivstruktur.Mappe
533 Arkivstruktur.Klasse
"+klasse 0..1" o-->
"+registrering 0..*" Arkivstruktur.Registrering
534 Arkivstruktur.Mappe -->
"+undermappe 0..*" Arkivstruktur.Mappe
535 Arkivstruktur.Mappe
"+mappe 0..1" o-->
"+registrering 0..*" Arkivstruktur.Registrering
536 Arkivstruktur.Merknad
"+merknad 0..*" <--* Arkivstruktur.Mappe
537 Arkivstruktur.Merknad
"+merknad 0..*" <--* Arkivstruktur.Dokumentbeskrivelse
538 Arkivstruktur.Basisregistrering -|
> Arkivstruktur.Registrering
539 Arkivstruktur.Merknad "+merknad
0..*" <--* Arkivstruktur.Basisregistrering
540 Arkivstruktur.Registrering "+registrering
1..*" o--> "+dokumentbeskrivelse
0..*" Arkivstruktur.Dokumentbeskrivelse
541 Arkivstruktur.Dokumentbeskrivelse "+dokumentbeskrivelse
1" o-
> "+dokumentobjekt 0..*" Arkivstruktur.Dokumentobjekt
542 Arkivstruktur.Dokumentobjekt *-
> "+konvertering 0..*" Arkivstruktur.Konvertering
543 Arkivstruktur.ElektroniskSignatur -[hidden]-
> Arkivstruktur.Dokumentobjekt
547 <p><a href=
"http://plantuml.com/class-diagram">The format
</a> is quite
548 compact, with little redundant information. The text expresses
549 entities and relations, and there is little layout related fluff. One
550 can reuse content by using include files, allowing for consistent
551 naming across several diagrams. The include files can be standalone
552 PlantUML too. Here is the content of
553 <tt>media/uml-class-arkivskaper.iuml
<tt>:
</p>
557 class Arkivstruktur.Arkivskaper
<Arkivenhet> {
558 +arkivskaperID : string
559 +arkivskaperNavn : string
560 +beskrivelse : string [
0.
.1]
565 <p>This is what the complete diagram for the PlantUML notation above
568 <p><img width=
"80%" src=
"http://people.skolelinux.org/pere/blog/images/2019-03-25-noark5-plantuml-diagrameksempel.png"></p>
570 <p>A cool feature of PlantUML is that the generated PNG files include
571 the entire original source diagram as text. The source (with include
572 statements expanded) can be extracted using for example
573 <tt>exiftool
</tt>. Another cool feature is that parts of the entities
574 can be hidden after inclusion. This allow to use include files with
575 all attributes listed, even for UML diagrams that should not list any
578 <p>The diagram also show some of the warts. Some times the layout
579 engine place text labels on top of each other, and some times it place
580 the class boxes too close to each other, not leaving room for the
581 labels on the relationship arrows. The former can be worked around by
582 placing extra newlines in the labes (ie "\n"). I did not do it here
583 to be able to demonstrate the issue. I have not found a good way
584 around the latter, so I normally try to reduce the problem by changing
585 from vertical to horizontal links to improve the layout.
</p>
587 <p>All in all, I am quite happy with PlantUML, and very impressed with
588 how quickly its lead developer responds to questions. So far I got an
589 answer to my questions in a few hours when I send an email. I
590 definitely recommend looking at PlantUML if you need to make UML
591 diagrams. Note, PlantUML can draw a lot more than class relations.
592 Check out the documention for a complete list. :)
</p>
594 <p>As usual, if you use Bitcoin and want to show your support of my
595 activities, please send Bitcoin donations to my address
596 <b><a href=
"bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a></b>.
</p>
602 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/noark5">noark5
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/nuug">nuug
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/standard">standard
</a>.
607 <div class=
"padding"></div>
611 <a href=
"http://people.skolelinux.org/pere/blog/Release_0_3_of_free_software_archive_API_system_Nikita_announced.html">Release
0.3 of free software archive API system Nikita announced
</a>
617 <p>Yesterday, a new release of
618 <a href=
"https://gitlab.com/OsloMet-ABI/nikita-noark5-core/">Nikita
619 Noark
5 core project
</a> was
620 <a href=
"https://lists.nuug.no/pipermail/nikita-noark/2019-March/000451.html">announced
621 on the project mailing list
</a>. The free software solution is an
622 implementation of the Norwegian archive standard Noark
5 used by
623 government offices in Norway. These were the changes in version
0.3
624 since version
0.2.1 (from NEWS.md):
</p>
627 <li>Improved ClassificationSystem and Class behaviour.
</li>
628 <li>Tidied up known inconsistencies between domain model and hateaos links.
</li>
629 <li>Added experimental code for blockchain integration.
</li>
630 <li>Make token expiry time configurable at upstart from properties file.
</li>
631 <li>Continued work on OData search syntax.
</li>
632 <li>Started work on pagination for entities, partly implemented for Saksmappe.
</li>
633 <li>Finalise ClassifiedCode Metadata entity.
</li>
634 <li>Implement mechanism to check if authentication token is still
635 valid. This allow the GUI to return a more sensible message to the
636 user if the token is expired.
</li>
637 <li>Reintroduce browse.html page to allow user to browse JSON API using
639 <li>Fix bug in handling file/mappe sequence number. Year change was
640 not properly handled.
</li>
641 <li>Update application yml files to be in sync with current development.
</li>
642 <li>Stop 'converting' everything to PDF using libreoffice. Only
643 convert the file formats doc, ppt, xls, docx, pptx, xlsx, odt, odp
645 <li>Continued code style fixing, making code more readable.
</li>
646 <li>Minor bug fixes.
</li>
650 <p>If free and open standardized archiving API sound interesting to
651 you, please contact us on IRC
652 (
<a href=
"irc://irc.freenode.net/%23nikita">#nikita on
653 irc.freenode.net
</a>) or email
654 (
<a href=
"https://lists.nuug.no/mailman/listinfo/nikita-noark">nikita-noark
655 mailing list
</a>).
</p>
657 <p>As usual, if you use Bitcoin and want to show your support of my
658 activities, please send Bitcoin donations to my address
659 <b><a href=
"bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a></b>.
</p>
665 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/noark5">noark5
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/nuug">nuug
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/standard">standard
</a>.
670 <div class=
"padding"></div>
674 <a href=
"http://people.skolelinux.org/pere/blog/_pen_og_gjennomsiktig_vedlikehold_av_spesifikasjonen_for_Noark_5_Tjenestegrensesnitt.html">Åpen og gjennomsiktig vedlikehold av spesifikasjonen for Noark
5 Tjenestegrensesnitt
</a>
680 <p>Et virksomhetsarkiv for meg, er et arbeidsverktøy der en enkelt kan
681 finne informasjonen en trenger når en trenger det, og der
682 virksomhetens samlede kunnskap er tilgjengelig. Det må være greit å
683 finne frem i, litt som en bibliotek. Men der et bibliotek gjerne tar
684 vare på offentliggjort informasjon som er tilgjengelig flere steder,
685 tar et arkiv vare på virksomhetsintern og til tider personlig
686 informasjon som ofte kun er tilgjengelig fra et sted.
</p>
688 <p>Jeg mistenker den eneste måten å sikre at arkivet inneholder den
689 samlede kunnskapen i en virksomhet, er å bruke det som virksomhetens
690 kunnskapslager. Det innebærer å automatisk kopiere (brev, epost,
691 SMS-er etc) inn i arkivet når de sendes og mottas, og der filtrere
692 vekk det en ikke vil ta vare på, og legge på metadata om det som er
693 samlet inn for enkel gjenfinning. En slik bruk av arkivet innebærer at
694 arkivet er en del av daglig virke, ikke at det er siste hvilested for
695 informasjon ingen lenger har daglig bruk for. For å kunne være en del
696 av det daglige virket må arkivet enkelt kunne integreres med andre
697 systemer. I disse dager betyr det å tilby arkivet som en
698 nett-tjeneste til hele virksomheten, tilgjengelig for både mennesker
699 og datamaskiner. Det betyr i tur å både tilby nettsider og et
700 maskinlesbart grensesnitt.
</p>
702 <p>For noen år siden erkjente visjonære arkivarer fordelene med et
703 standardisert maskinlesbart grensesnitt til organisasjonens arkiv. De
704 gikk igang med å lage noe de kalte
705 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/">Noark
706 5 Tjenestegrensesnitt
</a>. Gjort riktig, så åpner slike maskinlesbare
707 grensesnitt for samvirke på tvers av uavhengige programvaresystemer.
708 Gjort feil, vil det blokkere for samvirke og bidra til
709 leverandørinnlåsing. For å gjøre det riktig så må grensesnittet være
710 klart og entydig beskrevet i en spesifikasjon som gjør at
711 spesifikasjonen tolkes på samme måte uavhengig av hvem som leser den,
712 og uavhengig av hvem som tar den i bruk.
</p>
714 <p>For å oppnå klare og entydige beskrivelser i en spesifikasjon, som
715 trengs for å kunne få en fri og åpen standard (se
716 <a href=
"http://people.skolelinux.org/pere/blog/Fri_og__pen_standard__slik_Digistan_ser_det.html">Digistan-definisjon
</a>),
717 så trengs det en åpen og gjennomsiktig inngangsport med lav terskel,
718 der de som forsøker å ta den i bruk enkelt kan få inn korreksjoner,
719 etterlyse klargjøringer og rapportere uklarheter i spesifikasjonen.
720 En trenger også automatiserte datasystemer som måler og sjekker at et
721 gitt grensesnitt fungerer i tråd med spesifikasjonen.
</p>
723 <p>For Noark
5 Tjenestegrensesnittet er det nå etablert en slik åpen
724 og gjennomsiktig inngangsport på prosjekttjenesten github. Denne
725 inngangsporten består først og fremst av en åpen portal som lar enhver
726 se hva som er gjort av endringer i spesifikasjonsteksten over tid, men
727 det hører også med et åpent
"diskusjonsforum
" der en kan
728 komme med endringsforslag og forespørsler om klargjøringer. Alle
729 registrerte brukere på github kan bidra med innspill til disse
732 <p>I samarbeide med Arkivverket har jeg fått opprettet et git-depot
733 med spesifikasjonsteksten for tjenestegrensesnittet, der det er lagt
734 inn historikk for endringer i teksten de siste årene, samt lagt inn
735 endringsforslag og forespørsler om klargjøring av teksten. Bakgrunnen
736 for at jeg bidro med dette er at jeg er involvert i
737 <a href=
"https://gitlab.com/OsloMet-ABI/nikita-noark5-core">Nikita-prosjektet
</a>,
738 som lager en fri programvare-utgave av Noark
5 Tjenestegrensesnitt.
739 Det er først når en forsøker å lage noe i tråd med en spesifikasjon at
740 en oppdager hvor mange detaljer som må beskrives i spesifikasjonen for
741 å sikre samhandling.
</p>
743 <p>Spesifikasjonen vedlikeholdes i et rent tekstformat, for å ha et
744 format egnet for versjonskontroll via versjontrollsystemet git. Dette
745 gjør det både enkelt å se konkret hvilke endringer som er gjort når,
746 samt gjør det praktisk mulig for enhver med github-konto å sende inn
747 endringsforslag med formuleringer til spesifikasjonsteksten. Dette
748 tekstformatet vises frem som nettsider på github, slik at en ikke
749 trenger spesielle verktøy for å se på siste utgave av
752 <p>Fra dette rene tekstformatet kan det så avledes ulike formater, som
753 HTML for websider, PDF for utskrift på papir og ePub for lesing med
754 ebokleser. Avlednings-systemet (byggesystemet) bruker i dag
755 verktøyene pandoc, latex, docbook-xsl og GNU make til
756 transformasjonen. Tekstformatet som brukes dag er
757 <a href=
"https://www.markdownguide.org/">Markdown
</a>, men det vurderes
759 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues/9">endre
760 til formatet RST
</a> i fremtiden for bedre styring av utseende på
763 <p>Versjonskontrollsystemet git ble valgt da det er både fleksibelt,
764 avansert og enkelt å ta i bruk. Github ble valgt (foran f.eks. Gitlab
765 som vi bruker i Nikita), da Arkivverket allerede hadde tatt i bruk
766 Github i andre sammenhenger.
</p>
768 <p>Enkle endringer i teksten kan gjøres av priviligerte brukere
769 direkte i nettsidene til Github, ved å finne aktuell fil som skal
770 endres (f.eks. kapitler/
03-konformitet.md), klikke på den lille
771 bokstaven i høyre hjørne over teksten. Det kommer opp en nettside der
772 en kan endre teksten slik en ønsker. Når en er fornøyd med endringen
773 så må endringen
"sjekkes inn
" i historikken. Det gjøres ved
774 å gi en kort beskrivelse av endringen (beskriv helst hvorfor endringen
775 trengs, ikke hva som er endret), under overskriften
"Commit
776 changes
". En kan og bør legge inn en lengre forklaring i det
777 større skrivefeltet, før en velger om endringen skal sendes direkte
778 til 'master'-grenen (dvs. autorativ utgave av spesifikasjonen) eller
779 om en skal lage en ny gren for denne endringen og opprette en
780 endringsforespørsel (aka
"Pull Request
"/PR). Når alt dette
781 er gjort kan en velge
"Commit changes
" for å sende inn
782 endringen. Hvis den er lagt inn i
"master
"-grenen så er den
783 en offisiell del av spesifikasjonen med en gang. Hvis den derimot er
784 en endringsforespørsel, så legges den inn i
785 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/pulls">listen
786 over forslag til endringer
</a> som venter på korrekturlesing og
789 <p>Større endringer (for eksempel samtidig endringer i flere filer)
790 gjøres enklest ved å hente ned en kopi av git-depoet lokalt og gjøre
791 endringene der før endringsforslaget sendes inn. Denne prosessen er
792 godt beskrivet i dokumentasjon fra github. Git-prosjektet som skal
793 "klones
" er
794 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/">https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/
</a>.
</p>
796 <p>For å registrere nye utfordringer (issues) eller kommentere på
797 eksisterende utfordringer benyttes nettsiden
798 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues">https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues
</a>.
799 I skrivende stund er det
48 åpne og
11 avsluttede utfordringer. Et
800 forslag til hva som bør være med når en beskriver en utfordring er
801 tilgjengelig som utfordring
802 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues/14">#
14</a>.
</p>
804 <p>For å bygge en PDF-utgave av spesifikasjonen så bruker jeg i dag en
805 Debian GNU/Linux-maskin med en rekke programpakker installert. Når
806 dette er på plass, så holder det å kjøre kommandoen 'make pdf html' på
807 kommandolinjen, vente ca.
20 sekunder, før spesifikasjon.pdf og
808 spesifikasjon.html ligger klar på disken. Verktøyene for bygging av
809 PDF, HTML og ePub-utgave er også tilgjengelig på Windows og
812 <p>Github bidrar med rammeverket. Men for at åpent vedlikehold av
813 spesifikasjonen skal fungere, så trengs det folk som bidrar med sin
814 tid og kunnskap. Arkivverket har sagt de skal bidra med innspill og
815 godkjenne forslag til endringer, men det blir størst suksess hvis alle
816 som bruker og lager systemer basert på Noark
5 Tjenestegrensesnitt
817 bidrar med sin kunnskap og kommer med forslag til forebedringer. Jeg
818 stiller. Blir du med?
</p>
820 <p>Det er viktig å legge til rette for åpen diskusjon blant alle
821 interesserte, som ikke krever at en må godta lange kontrakter med
822 vilkår for deltagelse. Inntil Arkivverket dukker opp på IRC har vi
823 laget en IRC-kanal der interesserte enkelt kan orientere seg og
824 diskutere tjenestegrensesnittet. Alle er velkommen til å ta turen
826 <a href=
"https://webchat.freenode.net/?channels=nikita">#nikita
</a>
827 (f.eks. via irc.freenode.net) for å møte likesinnede.
</p>
829 <p>Det holder dog ikke å ha en god spesifikasjon, hvis ikke de som tar
830 den i bruk gjør en like god jobb. For å automatisk teste om et konkret
831 tjenestegrensesnitt følger (min) forståelse av
832 spesifikasjonsdokumentet, har jeg skrevet et program som kobler seg
833 opp til et Noark
5v4 REST-tjeneste og tester alt den finner for å se
834 om det er i henhold til min tolkning av spesifikasjonen. Dette
835 verktøyet er tilgjengelig fra
836 <a href=
"https://github.com/petterreinholdtsen/noark5-tester">https://github.com/petterreinholdtsen/noark5-tester
</a>,
837 og brukes daglig mens vi utvikler Nikita for å sikre at vi ikke
838 introduserer nye feil. Hvis en skal sikre samvirke på tvers av ulike
839 systemer er det helt essensielt å kunne raskt og automatisk sjekke at
840 tjenestegrensesnittet oppfører seg som forventet. Jeg håper andre som
841 lager sin utgave av tjenestegrensesnittet vi bruke dette verktøyet,
842 slik at vi tidlig og raskt kan oppdage hvor vi har tolket
843 spesifikasjonen ulikt, og dermed få et godt grunnlag for å gjøre
844 spesifikasjonsteksten enda klarere og bedre.
</p>
846 <p>Dagens beskrivelse av Noark
5 Tjenestegrensesnitt er et svært godt
847 utgangspunkt for å gjøre virksomhetens arkiv til et dynamisk og
848 sentralt arbeidsverktøy i organisasjonen. Blir du med å gjøre den
855 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/digistan">digistan
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/noark5">noark5
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/norsk">norsk
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/standard">standard
</a>.
860 <div class=
"padding"></div>
864 <a href=
"http://people.skolelinux.org/pere/blog/Time_for_an_official_MIME_type_for_patches_.html">Time for an official MIME type for patches?
</a>
870 <p>As part of my involvement in
871 <a href=
"https://gitlab.com/OsloMet-ABI/nikita-noark5-core">the Nikita
872 archive API project
</a>, I've been importing a fairly large lump of
873 emails into a test instance of the archive to see how well this would
874 go. I picked a subset of
<a href=
"https://notmuchmail.org/">my
875 notmuch email database
</a>, all public emails sent to me via
876 @lists.debian.org, giving me a set of around
216 000 emails to import.
877 In the process, I had a look at the various attachments included in
878 these emails, to figure out what to do with attachments, and noticed
879 that one of the most common attachment formats do not have
880 <a href=
"https://www.iana.org/assignments/media-types/media-types.xhtml">an
881 official MIME type
</a> registered with IANA/IETF. The output from
882 diff, ie the input for patch, is on the top
10 list of formats
883 included in these emails. At the moment people seem to use either
884 text/x-patch or text/x-diff, but neither is officially registered. It
885 would be better if one official MIME type were registered and used
888 <p>To try to get one official MIME type for these files, I've brought
890 <a href=
"https://www.ietf.org/mailman/listinfo/media-types">the
891 media-types mailing list
</a>. If you are interested in discussion
892 which MIME type to use as the official for patch files, or involved in
893 making software using a MIME type for patches, perhaps you would like
894 to join the discussion?
</p>
896 <p>As usual, if you use Bitcoin and want to show your support of my
897 activities, please send Bitcoin donations to my address
898 <b><a href=
"bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a></b>.
</p>
904 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/debian">debian
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/noark5">noark5
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/standard">standard
</a>.
909 <div class=
"padding"></div>
913 <a href=
"http://people.skolelinux.org/pere/blog/Release_0_2_of_free_software_archive_system_Nikita_announced.html">Release
0.2 of free software archive system Nikita announced
</a>
919 <p>This morning, the new release of the
920 <a href=
"https://gitlab.com/OsloMet-ABI/nikita-noark5-core/">Nikita
921 Noark
5 core project
</a> was
922 <a href=
"https://lists.nuug.no/pipermail/nikita-noark/2018-October/000406.html">announced
923 on the project mailing list
</a>. The free software solution is an
924 implementation of the Norwegian archive standard Noark
5 used by
925 government offices in Norway. These were the changes in version
0.2
926 since version
0.1.1 (from NEWS.md):
929 <li>Fix typos in REL names
</li>
930 <li>Tidy up error message reporting
</li>
931 <li>Fix issue where we used Integer.valueOf(), not Integer.getInteger()
</li>
932 <li>Change some String handling to StringBuffer
</li>
933 <li>Fix error reporting
</li>
934 <li>Code tidy-up
</li>
935 <li>Fix issue using static non-synchronized SimpleDateFormat to avoid
937 <li>Fix problem where deserialisers were treating integers as strings
</li>
938 <li>Update methods to make them null-safe
</li>
939 <li>Fix many issues reported by coverity
</li>
940 <li>Improve equals(), compareTo() and hash() in domain model
</li>
941 <li>Improvements to the domain model for metadata classes
</li>
942 <li>Fix CORS issues when downloading document
</li>
943 <li>Implementation of case-handling with registryEntry and document upload
</li>
944 <li>Better support in Javascript for OPTIONS
</li>
945 <li>Adding concept description of mail integration
</li>
946 <li>Improve setting of default values for GET on ny-journalpost
</li>
947 <li>Better handling of required values during deserialisation
</li>
948 <li>Changed tilknyttetDato (M620) from date to dateTime
</li>
949 <li>Corrected some opprettetDato (M600) (de)serialisation errors.
</li>
950 <li>Improve parse error reporting.
</li>
951 <li>Started on OData search and filtering.
</li>
952 <li>Added Contributor Covenant Code of Conduct to project.
</li>
953 <li>Moved repository and project from Github to Gitlab.
</li>
954 <li>Restructured repository, moved code into src/ and web/.
</li>
955 <li>Updated code to use Spring Boot version
2.
</li>
956 <li>Added support for OAuth2 authentication.
</li>
957 <li>Fixed several bugs discovered by Coverity.
</li>
958 <li>Corrected handling of date/datetime fields.
</li>
959 <li>Improved error reporting when rejecting during deserializatoin.
</li>
960 <li>Adjusted default values provided for ny-arkivdel, ny-mappe,
961 ny-saksmappe, ny-journalpost and ny-dokumentbeskrivelse.
</li>
962 <li>Several fixes for korrespondansepart*.
</li>
965 <li>Now handle both file upload and download.
</li>
966 <li>Uses new OAuth2 authentication for login.
</li>
967 <li>Forms now fetches default values from API using GET.
</li>
968 <li>Added RFC
822 (email), TIFF and JPEG to list of possible file formats.
</li>
972 <p>The changes and improvements are extensive. Running diffstat on
973 the changes between git tab
0.1.1 and
0.2 show
1098 files changed,
974 108666 insertions(+),
54066 deletions(-).
</p>
976 <p>If free and open standardized archiving API sound interesting to
977 you, please contact us on IRC
978 (
<a href=
"irc://irc.freenode.net/%23nikita">#nikita on
979 irc.freenode.net
</a>) or email
980 (
<a href=
"https://lists.nuug.no/mailman/listinfo/nikita-noark">nikita-noark
981 mailing list
</a>).
</p>
983 <p>As usual, if you use Bitcoin and want to show your support of my
984 activities, please send Bitcoin donations to my address
985 <b><a href=
"bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a></b>.
</p>
991 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/noark5">noark5
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/nuug">nuug
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/standard">standard
</a>.
996 <div class=
"padding"></div>
1000 <a href=
"http://people.skolelinux.org/pere/blog/Fetching_trusted_timestamps_using_the_rfc3161ng_python_module.html">Fetching trusted timestamps using the rfc3161ng python module
</a>
1006 <p>I have earlier covered the basics of trusted timestamping using the
1007 'openssl ts' client. See blog post for
1008 <a href=
"http://people.skolelinux.org/pere/blog/Public_Trusted_Timestamping_services_for_everyone.html">2014</a>,
1009 <a href=
"http://people.skolelinux.org/pere/blog/syslog_trusted_timestamp___chain_of_trusted_timestamps_for_your_syslog.html">2016</a>
1011 <a href=
"http://people.skolelinux.org/pere/blog/Idea_for_storing_trusted_timestamps_in_a_Noark_5_archive.html">2017</a>
1012 for those stories. But some times I want to integrate the timestamping
1013 in other code, and recently I needed to integrate it into Python.
1014 After searching a bit, I found
1015 <a href=
"https://dev.entrouvert.org/projects/python-rfc3161">the
1016 rfc3161 library
</a> which seemed like a good fit, but I soon
1017 discovered it only worked for python version
2, and I needed something
1018 that work with python version
3. Luckily I next came across
1019 <a href=
"https://github.com/trbs/rfc3161ng/">the rfc3161ng library
</a>,
1020 a fork of the original rfc3161 library. Not only is it working with
1021 python
3, it have fixed a few of the bugs in the original library, and
1022 it has an active maintainer. I decided to wrap it up and make it
1023 <a href=
"https://tracker.debian.org/pkg/python-rfc3161ng">available in
1024 Debian
</a>, and a few days ago it entered Debian unstable and testing.
</p>
1026 <p>Using the library is fairly straight forward. The only slightly
1027 problematic step is to fetch the required certificates to verify the
1028 timestamp. For some services it is straight forward, while for others
1029 I have not yet figured out how to do it. Here is a small standalone
1030 code example based on of the integration tests in the library code:
</p>
1037 Python
3 script demonstrating how to use the rfc3161ng module to
1038 get trusted timestamps.
1040 The license of this code is the same as the license of the rfc3161ng
1041 library, ie MIT/BSD.
1046 import pyasn1.codec.der
1050 import urllib.request
1057 def fetch(url, f=None):
1058 response = urllib.request.urlopen(url)
1059 data = response.read()
1065 with tempfile.NamedTemporaryFile() as cert_f,\
1066 tempfile.NamedTemporaryFile() as ca_f,\
1067 tempfile.NamedTemporaryFile() as msg_f,\
1068 tempfile.NamedTemporaryFile() as tsr_f:
1070 # First fetch certificates used by service
1071 certificate_data = fetch('https://freetsa.org/files/tsa.crt', cert_f)
1072 ca_data_data = fetch('https://freetsa.org/files/cacert.pem', ca_f)
1074 # Then timestamp the message
1076 rfc3161ng.RemoteTimestamper('http://freetsa.org/tsr',
1077 certificate=certificate_data)
1078 data = b"Python forever!\n"
1079 tsr = timestamper(data=data, return_tsr=True)
1081 # Finally, convert message and response to something 'openssl ts' can verify
1083 store(tsr_f, pyasn1.codec.der.encoder.encode(tsr))
1084 args = ["openssl", "ts", "-verify",
1085 "-data", msg_f.name,
1087 "-CAfile", ca_f.name,
1088 "-untrusted", cert_f.name]
1089 subprocess.check_call(args)
1091 if '__main__' == __name__:
1095 <p>The code fetches the required certificates, store them as temporary
1096 files, timestamp a simple message, store the message and timestamp to
1097 disk and ask 'openssl ts' to verify the timestamp. A timestamp is
1098 around
1.5 kiB in size, and should be fairly easy to store for future
1101 <p>As usual, if you use Bitcoin and want to show your support of my
1102 activities, please send Bitcoin donations to my address
1103 <b><a href=
"bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a></b>.
</p>
1109 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/noark5">noark5
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet
</a>.
1114 <div class=
"padding"></div>
1118 <a href=
"http://people.skolelinux.org/pere/blog/Release_0_1_1_of_free_software_archive_system_Nikita_announced.html">Release
0.1.1 of free software archive system Nikita announced
</a>
1124 <p>I am very happy to report that the
1125 <a href=
"https://github.com/hiOA-ABI/nikita-noark5-core">Nikita Noark
5
1126 core project
</a> tagged its second release today. The free software
1127 solution is an implementation of the Norwegian archive standard Noark
1128 5 used by government offices in Norway. These were the changes in
1129 version
0.1.1 since version
0.1.0 (from NEWS.md):
1133 <li>Continued work on the angularjs GUI, including document upload.
</li>
1134 <li>Implemented correspondencepartPerson, correspondencepartUnit and
1135 correspondencepartInternal
</li>
1136 <li>Applied for coverity coverage and started submitting code on
1138 <li>Started fixing bugs reported by coverity
</li>
1139 <li>Corrected and completed HATEOAS links to make sure entire API is
1140 available via URLs in _links.
</li>
1141 <li>Corrected all relation URLs to use trailing slash.
</li>
1142 <li>Add initial support for storing data in ElasticSearch.
</li>
1143 <li>Now able to receive and store uploaded files in the archive.
</li>
1144 <li>Changed JSON output for object lists to have relations in _links.
</li>
1145 <li>Improve JSON output for empty object lists.
</li>
1146 <li>Now uses correct MIME type application/vnd.noark5-v4+json.
</li>
1147 <li>Added support for docker container images.
</li>
1148 <li>Added simple API browser implemented in JavaScript/Angular.
</li>
1149 <li>Started on archive client implemented in JavaScript/Angular.
</li>
1150 <li>Started on prototype to show the public mail journal.
</li>
1151 <li>Improved performance by disabling Sprint FileWatcher.
</li>
1152 <li>Added support for 'arkivskaper', 'saksmappe' and 'journalpost'.
</li>
1153 <li>Added support for some metadata codelists.
</li>
1154 <li>Added support for Cross-origin resource sharing (CORS).
</li>
1155 <li>Changed login method from Basic Auth to JSON Web Token (RFC
7519)
1157 <li>Added support for GET-ing ny-* URLs.
</li>
1158 <li>Added support for modifying entities using PUT and eTag.
</li>
1159 <li>Added support for returning XML output on request.
</li>
1160 <li>Removed support for English field and class names, limiting ourself
1161 to the official names.
</li>
1166 <p>If this sound interesting to you, please contact us on IRC (#nikita
1167 on irc.freenode.net) or email
1168 (
<a href=
"https://lists.nuug.no/mailman/listinfo/nikita-noark">nikita-noark
1175 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/noark5">noark5
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/nuug">nuug
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/standard">standard
</a>.
1180 <div class=
"padding"></div>
1184 <a href=
"http://people.skolelinux.org/pere/blog/Idea_for_storing_trusted_timestamps_in_a_Noark_5_archive.html">Idea for storing trusted timestamps in a Noark
5 archive
</a>
1190 <p><em>This is a copy of
1191 <a href=
"https://lists.nuug.no/pipermail/nikita-noark/2017-June/000297.html">an
1192 email I posted to the nikita-noark mailing list
</a>. Please follow up
1193 there if you would like to discuss this topic. The background is that
1194 we are making a free software archive system based on the Norwegian
1195 <a href=
"https://www.arkivverket.no/forvaltning-og-utvikling/regelverk-og-standarder/noark-standarden">Noark
1196 5 standard
</a> for government archives.
</em></p>
1198 <p>I've been wondering a bit lately how trusted timestamps could be
1200 <a href=
"https://en.wikipedia.org/wiki/Trusted_timestamping">Trusted
1201 timestamps
</a> can be used to verify that some information
1202 (document/file/checksum/metadata) have not been changed since a
1203 specific time in the past. This is useful to verify the integrity of
1204 the documents in the archive.
</p>
1206 <p>Then it occured to me, perhaps the trusted timestamps could be
1207 stored as dokument variants (ie dokumentobjekt referered to from
1208 dokumentbeskrivelse) with the filename set to the hash it is
1211 <p>Given a "dokumentbeskrivelse" with an associated "dokumentobjekt",
1212 a new dokumentobjekt is associated with "dokumentbeskrivelse" with the
1213 same attributes as the stamped dokumentobjekt except these
1218 <li>format -
> "RFC3161"
1219 <li>mimeType -
> "application/timestamp-reply"
1220 <li>formatDetaljer -
> "<source URL for timestamp service>"
1221 <li>filenavn -
> "<sjekksum>.tsr"
1225 <p>This assume a service following
1226 <a href=
"https://tools.ietf.org/html/rfc3161">IETF RFC
3161</a> is
1227 used, which specifiy the given MIME type for replies and the .tsr file
1228 ending for the content of such trusted timestamp. As far as I can
1229 tell from the Noark
5 specifications, it is OK to have several
1230 variants/renderings of a dokument attached to a given
1231 dokumentbeskrivelse objekt. It might be stretching it a bit to make
1232 some of these variants represent crypto-signatures useful for
1233 verifying the document integrity instead of representing the dokument
1236 <p>Using the source of the service in formatDetaljer allow several
1237 timestamping services to be used. This is useful to spread the risk
1238 of key compromise over several organisations. It would only be a
1239 problem to trust the timestamps if all of the organisations are
1242 <p>The following oneliner on Linux can be used to generate the tsr
1243 file. $input is the path to the file to checksum, and $sha256 is the
1244 SHA-
256 checksum of the file (ie the "
<sjekksum>.tsr" value mentioned
1247 <p><blockquote><pre>
1248 openssl ts -query -data "$inputfile" -cert -sha256 -no_nonce \
1249 | curl -s -H "Content-Type: application/timestamp-query" \
1250 --data-binary "@-" http://zeitstempel.dfn.de
> $sha256.tsr
1251 </pre></blockquote></p>
1253 <p>To verify the timestamp, you first need to download the public key
1254 of the trusted timestamp service, for example using this command:
</p>
1256 <p><blockquote><pre>
1257 wget -O ca-cert.txt \
1258 https://pki.pca.dfn.de/global-services-ca/pub/cacert/chain.txt
1259 </pre></blockquote></p>
1261 <p>Note, the public key should be stored alongside the timestamps in
1262 the archive to make sure it is also available
100 years from now. It
1263 is probably a good idea to standardise how and were to store such
1264 public keys, to make it easier to find for those trying to verify
1265 documents
100 or
1000 years from now. :)
</p>
1267 <p>The verification itself is a simple openssl command:
</p>
1269 <p><blockquote><pre>
1270 openssl ts -verify -data $inputfile -in $sha256.tsr \
1271 -CAfile ca-cert.txt -text
1272 </pre></blockquote></p>
1274 <p>Is there any reason this approach would not work? Is it somehow against
1275 the Noark
5 specification?
</p>
1281 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/noark5">noark5
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/standard">standard
</a>.
1286 <div class=
"padding"></div>
1290 <a href=
"http://people.skolelinux.org/pere/blog/Epost_inn_som_arkivformat_i_Riksarkivarens_forskrift_.html">Epost inn som arkivformat i Riksarkivarens forskrift?
</a>
1296 <p>I disse dager, med frist
1. mai, har Riksarkivaren ute en høring på
1297 sin forskrift. Som en kan se er det ikke mye tid igjen før fristen
1298 som går ut på søndag. Denne forskriften er det som lister opp hvilke
1299 formater det er greit å arkivere i
1300 <a href=
"http://www.arkivverket.no/arkivverket/Offentleg-forvalting/Noark/Noark-5">Noark
1301 5-løsninger
</a> i Norge.
</p>
1303 <p>Jeg fant høringsdokumentene hos
1304 <a href=
"https://www.arkivrad.no/aktuelt/riksarkivarens-forskrift-pa-horing">Norsk
1305 Arkivråd
</a> etter å ha blitt tipset på epostlisten til
1306 <a href=
"https://github.com/hiOA-ABI/nikita-noark5-core">fri
1307 programvareprosjektet Nikita Noark5-Core
</a>, som lager et Noark
5
1308 Tjenestegresesnitt. Jeg er involvert i Nikita-prosjektet og takket
1309 være min interesse for tjenestegrensesnittsprosjektet har jeg lest en
1310 god del Noark
5-relaterte dokumenter, og til min overraskelse oppdaget
1311 at standard epost ikke er på listen over godkjente formater som kan
1312 arkiveres. Høringen med frist søndag er en glimrende mulighet til å
1313 forsøke å gjøre noe med det. Jeg holder på med
1314 <a href=
"https://github.com/petterreinholdtsen/noark5-tester/blob/master/docs/hoering-arkivforskrift.tex">egen
1315 høringsuttalelse
</a>, og lurer på om andre er interessert i å støtte
1316 forslaget om å tillate arkivering av epost som epost i arkivet.
</p>
1318 <p>Er du igang med å skrive egen høringsuttalelse allerede? I så fall
1319 kan du jo vurdere å ta med en formulering om epost-lagring. Jeg tror
1320 ikke det trengs så mye. Her et kort forslag til tekst:
</p>
1324 <p>Viser til høring sendt ut
2017-
02-
17 (Riksarkivarens referanse
1325 2016/
9840 HELHJO), og tillater oss å sende inn noen innspill om
1326 revisjon av Forskrift om utfyllende tekniske og arkivfaglige
1327 bestemmelser om behandling av offentlige arkiver (Riksarkivarens
1330 <p>Svært mye av vår kommuikasjon foregår i dag på e-post. Vi
1331 foreslår derfor at Internett-e-post, slik det er beskrevet i IETF
1333 <a href=
"https://tools.ietf.org/html/rfc5322">https://tools.ietf.org/html/rfc5322
</a>. bør
1334 inn som godkjent dokumentformat. Vi foreslår at forskriftens
1335 oversikt over godkjente dokumentformater ved innlevering i §
5-
16
1336 endres til å ta med Internett-e-post.
</p>
1340 <p>Som del av arbeidet med tjenestegrensesnitt har vi testet hvordan
1341 epost kan lagres i en Noark
5-struktur, og holder på å skrive et
1342 forslag om hvordan dette kan gjøres som vil bli sendt over til
1343 arkivverket så snart det er ferdig. De som er interesserte kan
1344 <a href=
"https://github.com/petterreinholdtsen/noark5-tester/blob/master/docs/epostlagring.md">følge
1345 fremdriften på web
</a>.
</p>
1347 <p>Oppdatering
2017-
04-
28: I dag ble høringuttalelsen jeg skrev
1348 <a href=
"https://www.nuug.no/news/NUUGs_h_ringuttalelse_til_Riksarkivarens_forskrift.shtml">sendt
1349 inn av foreningen NUUG
</a>.
</p>
1355 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/noark5">noark5
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/norsk">norsk
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/standard">standard
</a>.
1360 <div class=
"padding"></div>
1364 <a href=
"http://people.skolelinux.org/pere/blog/Free_software_archive_system_Nikita_now_able_to_store_documents.html">Free software archive system Nikita now able to store documents
</a>
1370 <p>The
<a href=
"https://github.com/hiOA-ABI/nikita-noark5-core">Nikita
1371 Noark
5 core project
</a> is implementing the Norwegian standard for
1372 keeping an electronic archive of government documents.
1373 <a href=
"http://www.arkivverket.no/arkivverket/Offentlig-forvaltning/Noark/Noark-5/English-version">The
1374 Noark
5 standard
</a> document the requirement for data systems used by
1375 the archives in the Norwegian government, and the Noark
5 web interface
1376 specification document a REST web service for storing, searching and
1377 retrieving documents and metadata in such archive. I've been involved
1378 in the project since a few weeks before Christmas, when the Norwegian
1380 <a href=
"https://www.nuug.no/news/NOARK5_kjerne_som_fri_programvare_f_r_epostliste_hos_NUUG.shtml">announced
1381 it supported the project
</a>. I believe this is an important project,
1382 and hope it can make it possible for the government archives in the
1383 future to use free software to keep the archives we citizens depend
1384 on. But as I do not hold such archive myself, personally my first use
1385 case is to store and analyse public mail journal metadata published
1386 from the government. I find it useful to have a clear use case in
1387 mind when developing, to make sure the system scratches one of my
1390 <p>If you would like to help make sure there is a free software
1391 alternatives for the archives, please join our IRC channel
1392 (
<a href=
"irc://irc.freenode.net/%23nikita">#nikita on
1393 irc.freenode.net
</a>) and
1394 <a href=
"https://lists.nuug.no/mailman/listinfo/nikita-noark">the
1395 project mailing list
</a>.
</p>
1397 <p>When I got involved, the web service could store metadata about
1398 documents. But a few weeks ago, a new milestone was reached when it
1399 became possible to store full text documents too. Yesterday, I
1400 completed an implementation of a command line tool
1401 <tt>archive-pdf
</tt> to upload a PDF file to the archive using this
1402 API. The tool is very simple at the moment, and find existing
1403 <a href=
"https://en.wikipedia.org/wiki/Fonds">fonds
</a>, series and
1404 files while asking the user to select which one to use if more than
1405 one exist. Once a file is identified, the PDF is associated with the
1406 file and uploaded, using the title extracted from the PDF itself. The
1407 process is fairly similar to visiting the archive, opening a cabinet,
1408 locating a file and storing a piece of paper in the archive. Here is
1409 a test run directly after populating the database with test data using
1412 <p><blockquote><pre>
1413 ~/src//noark5-tester$ ./archive-pdf mangelmelding/mangler.pdf
1414 using arkiv: Title of the test fonds created
2017-
03-
18T23:
49:
32.103446
1415 using arkivdel: Title of the test series created
2017-
03-
18T23:
49:
32.103446
1417 0 - Title of the test case file created
2017-
03-
18T23:
49:
32.103446
1418 1 - Title of the test file created
2017-
03-
18T23:
49:
32.103446
1419 Select which mappe you want (or search term):
0
1420 Uploading mangelmelding/mangler.pdf
1421 PDF title: Mangler i spesifikasjonsdokumentet for NOARK
5 Tjenestegrensesnitt
1422 File
2017/
1: Title of the test case file created
2017-
03-
18T23:
49:
32.103446
1423 ~/src//noark5-tester$
1424 </pre></blockquote></p>
1426 <p>You can see here how the fonds (arkiv) and serie (arkivdel) only had
1427 one option, while the user need to choose which file (mappe) to use
1428 among the two created by the API tester. The
<tt>archive-pdf
</tt>
1429 tool can be found in the git repository for the API tester.
</p>
1431 <p>In the project, I have been mostly working on
1432 <a href=
"https://github.com/petterreinholdtsen/noark5-tester">the API
1433 tester
</a> so far, while getting to know the code base. The API
1434 tester currently use
1435 <a href=
"https://en.wikipedia.org/wiki/HATEOAS">the HATEOAS links
</a>
1436 to traverse the entire exposed service API and verify that the exposed
1437 operations and objects match the specification, as well as trying to
1438 create objects holding metadata and uploading a simple XML file to
1439 store. The tester has proved very useful for finding flaws in our
1440 implementation, as well as flaws in the reference site and the
1443 <p>The test document I uploaded is a summary of all the specification
1444 defects we have collected so far while implementing the web service.
1445 There are several unclear and conflicting parts of the specification,
1447 <a href=
"https://github.com/petterreinholdtsen/noark5-tester/tree/master/mangelmelding">started
1448 writing down
</a> the questions we get from implementing it. We use a
1449 format inspired by how
<a href=
"http://www.opengroup.org/austin/">The
1450 Austin Group
</a> collect defect reports for the POSIX standard with
1451 <a href=
"http://www.opengroup.org/austin/mantis.html">their
1452 instructions for the MANTIS defect tracker system
</a>, in lack of an official way to structure defect reports for Noark
5 (our first submitted defect report was a
<a href=
"https://github.com/petterreinholdtsen/noark5-tester/blob/master/mangelmelding/sendt/2017-03-15-mangel-prosess.md">request for a procedure for submitting defect reports
</a> :).
1454 <p>The Nikita project is implemented using Java and Spring, and is
1455 fairly easy to get up and running using Docker containers for those
1456 that want to test the current code base. The API tester is
1457 implemented in Python.
</p>
1463 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/noark5">noark5
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/nuug">nuug
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/standard">standard
</a>.
1468 <div class=
"padding"></div>
1472 <a href=
"http://people.skolelinux.org/pere/blog/Hva__mangler__i_OEP___litt_statistikk_utledet_fra_saksnummer_og_dokumentnummer.html">Hva «mangler» i OEP - litt statistikk utledet fra saksnummer og dokumentnummer
</a>
1478 <p>En ting jeg har lurt på når det gjelder offentlige postjournaler,
1479 er hvor stor andel av det som ligger i de interne databasene kommer
1480 ikke med i postjournalen. Dette er det mulig å finne ut basert på det
1481 som ligger i postjournalen. For å forstå hva jeg mener, trengs det
1482 litt bakgrunnsinformasjon. I henhold til
1483 <a href=
"http://www.arkivverket.no/arkivverket/Offentleg-forvalting/Noark">NOARK-standarden
</a>
1484 for norske offentlige arkiv skal enhver sak ha et årstall og et
1485 løpenummer, og ethvert dokument i saken skal gis et
1486 dokument-løpenummer. Det vil si at en ender opp med dokument-ID som
1487 ser ut som ÅÅÅÅ/SAKNR-DOKNR, f.eks.
2014/
2-
1 eller
2014/
12312-
14.
1488 Mange oppgir kun tosifret årstall, men prinsippet er det samme. Så
1489 vidt jeg vet skal saksnummer og dokumentnummer tildeles løpende og i
1490 stigende rekkefølge. Gitt en instans med følgende dokument-ID i
1491 postjournalen, så kan en regne ut hvor mye som ikke finnes i
1500 <p>Her ser en at saksnummer
2 og
5 finnes i postjournalen, mens
1501 nummerene
1,
3 og
4 mangler. En ser også at i sak
2014/
5 mangler
1502 dokument
2. Ved hjelp av denne informasjonen har jeg regnet ut hvor
1503 stor andel av saksnummer og dokumentløpenummer som ikke har dukket opp
1504 i
<a href=
"https://www.oep.no/">Offentlig Elektronisk Postjournal
</a>
1505 (OEP). For saksnummer har jeg tatt utgangspunkt i at en ikke trenger
1506 å starte på
1, og dermed regnet med området fra laveste til høyeste
1507 saksnummer og talt antall unike saksnummer som forekommer i OEP. I
1508 dette tilfellet betyr de at
2 av
4 saksnummer er ubrukte (
50%). For
1509 dokumentløpenummer har jeg tilsvarende tatt utgangspunkt i laveste og
1510 høyeste kjente dokumentløpenummer, for å handtere databaser der jeg
1511 mangler komplett postjournal. For sak
2014/
5 her betyr det at
1 av
3
1512 dokumenter mangler (
33%).
</p>
1514 <p>Det er flere årsaker til at det kan bli hull i nummerseriene.
1515 Feilføring der et dokument tildeles et nytt saksnummer ved en feil, og
1516 deretter flyttes inn i riktig sak vil gi et ubrukt saksnummer, da
1517 saksnummer skal tildeles i stigende rekkefølge og en ikke får opprette
1518 nye saker innimellom gamle saker. Tilsvarende kan skje med
1519 dokument-løpenummer. Det er jo heller ikke sikkert at et saksnummer i
1520 OEP er det samme som løpenummeret som brukes som saksnummeret i
1521 instansens interne datasystem. Kanskje snakker vi om ulike ontologier
1522 der en delmengde av interne saksnummer tilsvarer saksnummer i OEP.
1523 Hvis like nummer også tildeles andre ting enn saker som skal til OEP
1524 vil en tilsvarende få «hull» i saksnumrene i postjournalen.
</p>
1526 <p>Jeg er litt usikker på hva denne statistikken egentlig viser, og
1527 heller ikke sikker på om det er reelt sett mangler i OEP (som kanskje
1528 kunne anses å være kritikkverdig), bare er resultatet av hendelige
1529 uhell i nummertildelingen eller resultat av ulik ontologi i OEP og
1530 instansens datasystem. Men jeg syntes tallene og variasjonen var så
1531 interessant at jeg hadde lyst til å dele dem med mine lesere. Jeg har
1532 sortert listen på prosent upubliserte saksnummer for
2014.
</p>
1535 <tr><th colspan=
"6">Saksnummer
</th><th colspan=
"3">Dokumentnummer
</th><th rowspan=
"3">Instans
</th></tr>
1536 <tr><th colspan=
"3">2014</th><th colspan=
"3">2013</th><th colspan=
"3">2014</th></tr>
1537 <tr><th>%
</th><th>Upubl. saksnr.
</th><th>Totalt
</th>
1538 <th>%
</th><th>Upubl. saksnr
</th><th>Totalt
</th>
1539 <th>%
</th><th>Upubl. dok.nr.
</th><th>Totalt
</th>
1542 <tr><td> 0.6</td><td> 8</td><td> 1282</td><td> 0.2</td><td> 2</td><td> 861</td><td> 0.0</td><td> 0</td><td> 6105</td><td>Vox, nasjonalt fagorgan for kompetansepolitikk
</td></tr>
1543 <tr><td> 0.9</td><td> 91</td><td> 9863</td><td> 2.7</td><td> 313</td><td> 11703</td><td> 0.0</td><td> 0</td><td> 24029</td><td>Direktoratet for byggkvalitet
</td></tr>
1544 <tr><td> 1.0</td><td> 161</td><td> 15663</td><td> 3.3</td><td> 558</td><td> 17045</td><td> 0.0</td><td> 0</td><td> 41954</td><td>Justervesenet
</td></tr>
1545 <tr><td> 1.1</td><td> 325</td><td> 28515</td><td> 1.2</td><td> 357</td><td> 29621</td><td> 0.0</td><td> 0</td><td> 66871</td><td>Arkivverket
</td></tr>
1546 <tr><td> 1.8</td><td> 28</td><td> 1568</td><td> 1.0</td><td> 17</td><td> 1722</td><td> 0.0</td><td> 0</td><td> 9259</td><td>Statistisk sentralbyrå
</td></tr>
1547 <tr><td> 1.8</td><td> 92</td><td> 5066</td><td>75.4</td><td>3144</td><td> 4169</td><td> 0.0</td><td> 0</td><td> 17056</td><td>Arbeids- og sosialdepartementet
</td></tr>
1548 <tr><td> 2.2</td><td> 32</td><td> 1470</td><td> 2.4</td><td> 36</td><td> 1471</td><td> 0.0</td><td> 0</td><td> 9757</td><td>Norsk Filminstitutt
</td></tr>
1549 <tr><td> 2.3</td><td> 34</td><td> 1478</td><td> 2.9</td><td> 41</td><td> 1425</td><td> 0.0</td><td> 0</td><td> 4522</td><td>Datatilsynet
</td></tr>
1550 <tr><td> 2.7</td><td> 49</td><td> 1795</td><td> 2.8</td><td> 34</td><td> 1199</td><td> 0.0</td><td> 0</td><td> 5824</td><td>Direktoratet for mineralforvaltning med Bergmesteren for Svalbard
</td></tr>
1551 <tr><td> 3.1</td><td> 134</td><td> 4326</td><td> 2.8</td><td> 144</td><td> 5119</td><td> 0.0</td><td> 0</td><td> 12223</td><td>Brønnøysundregistrene
</td></tr>
1552 <tr><td> 3.1</td><td> 201</td><td> 6571</td><td> 6.1</td><td> 603</td><td> 9870</td><td> 0.0</td><td> 0</td><td> 22390</td><td>Statens kartverk
</td></tr>
1553 <tr><td> 3.2</td><td> 228</td><td> 7092</td><td> 2.0</td><td> 143</td><td> 7032</td><td> 0.1</td><td> 14</td><td> 24491</td><td>Lotteri- og stiftelsestilsynet
</td></tr>
1554 <tr><td> 3.6</td><td> 32</td><td> 891</td><td> 4.9</td><td> 37</td><td> 753</td><td> 0.0</td><td> 0</td><td> 3055</td><td>Statens innkrevingssentral
</td></tr>
1555 <tr><td> 3.8</td><td>1016</td><td> 26466</td><td> 2.5</td><td> 716</td><td> 28727</td><td> 0.0</td><td> 0</td><td> 86951</td><td>Husbanken
</td></tr>
1556 <tr><td> 3.9</td><td> 52</td><td> 1326</td><td>14.4</td><td> 180</td><td> 1247</td><td> 0.0</td><td> 0</td><td> 4922</td><td>Sysselmannen på Svalbard
</td></tr>
1557 <tr><td> 4.0</td><td> 248</td><td> 6250</td><td> 4.6</td><td> 332</td><td> 7159</td><td> 0.0</td><td> 0</td><td> 22063</td><td>Post- og teletilsynet
</td></tr>
1558 <tr><td> 4.1</td><td> 102</td><td> 2488</td><td> 2.7</td><td> 62</td><td> 2291</td><td> 0.0</td><td> 0</td><td> 9707</td><td>Forbrukerombudet
</td></tr>
1559 <tr><td> 4.8</td><td> 51</td><td> 1060</td><td>12.6</td><td> 132</td><td> 1046</td><td> 0.0</td><td> 0</td><td> 3616</td><td>Statens strålevern
</td></tr>
1560 <tr><td> 5.2</td><td> 924</td><td> 17781</td><td> 6.3</td><td>1184</td><td> 18665</td><td> 0.0</td><td> 0</td><td> 59772</td><td>Fiskeridirektoratet
</td></tr>
1561 <tr><td> 5.5</td><td> 254</td><td> 4638</td><td> 6.1</td><td> 315</td><td> 5168</td><td> 0.0</td><td> 0</td><td> 15470</td><td>Barne-, likestillings- og inkluderingsdepartementet
</td></tr>
1562 <tr><td> 6.0</td><td> 80</td><td> 1336</td><td> 3.7</td><td> 48</td><td> 1314</td><td> 0.0</td><td> 0</td><td> 2691</td><td>Medietilsynet
</td></tr>
1563 <tr><td> 6.1</td><td> 91</td><td> 1486</td><td> 5.0</td><td> 83</td><td> 1651</td><td> 0.2</td><td> 17</td><td> 7473</td><td>Petroleumstilsynet
</td></tr>
1564 <tr><td> 6.2</td><td> 248</td><td> 3997</td><td>73.7</td><td>3459</td><td> 4693</td><td> 0.0</td><td> 0</td><td> 10963</td><td>Klima- og miljødepartementet
</td></tr>
1565 <tr><td> 7.0</td><td> 190</td><td> 2700</td><td>10.2</td><td> 207</td><td> 2033</td><td> 0.0</td><td> 1</td><td> 14299</td><td>Samferdselsdepartementet
</td></tr>
1566 <tr><td> 7.1</td><td> 35</td><td> 492</td><td> 4.5</td><td> 41</td><td> 909</td><td> 0.0</td><td> 0</td><td> 2960</td><td>Konkurransetilsynet
</td></tr>
1567 <tr><td> 7.1</td><td> 482</td><td> 6800</td><td> 6.4</td><td> 532</td><td> 8259</td><td> 0.0</td><td> 0</td><td> 28684</td><td>Justis- og beredskapsdepartementet
</td></tr>
1568 <tr><td> 7.2</td><td> 87</td><td> 1204</td><td> 4.2</td><td> 50</td><td> 1199</td><td> 0.0</td><td> 3</td><td> 7428</td><td>Oljedirektoratet
</td></tr>
1569 <tr><td> 7.2</td><td> 106</td><td> 1478</td><td> 6.3</td><td> 129</td><td> 2045</td><td> 0.0</td><td> 2</td><td> 4987</td><td>Statens jernbanetilsyn
</td></tr>
1570 <tr><td> 7.2</td><td> 131</td><td> 1813</td><td> 8.5</td><td> 124</td><td> 1452</td><td> 0.0</td><td> 2</td><td> 8758</td><td>Statsministerens kontor
</td></tr>
1571 <tr><td> 7.3</td><td> 816</td><td> 11218</td><td> 6.1</td><td> 655</td><td> 10665</td><td> 0.0</td><td> 0</td><td> 47160</td><td>Norges forskningsråd
</td></tr>
1572 <tr><td> 7.8</td><td>1150</td><td> 14712</td><td> 6.7</td><td> 746</td><td> 11202</td><td> 0.0</td><td> 0</td><td> 33794</td><td>Miljødirektoratet
</td></tr>
1573 <tr><td> 7.9</td><td> 411</td><td> 5216</td><td> 8.3</td><td> 446</td><td> 5365</td><td> 0.0</td><td> 0</td><td> 16441</td><td>Helse- og omsorgsdepartementet
</td></tr>
1574 <tr><td> 8.3</td><td> 376</td><td> 4514</td><td> 8.2</td><td> 457</td><td> 5548</td><td> 0.0</td><td> 3</td><td> 20840</td><td>Luftfartstilsynet
</td></tr>
1575 <tr><td> 8.5</td><td> 185</td><td> 2181</td><td> 9.8</td><td> 175</td><td> 1780</td><td> 0.0</td><td> 0</td><td> 7669</td><td>Landbruks- og matdepartementet
</td></tr>
1576 <tr><td> 8.6</td><td> 10</td><td> 116</td><td> 0.8</td><td> 1</td><td> 127</td><td> 0.0</td><td> 0</td><td> 318</td><td>Statens institutt for rusmiddelforskning
</td></tr>
1577 <tr><td> 9.0</td><td> 597</td><td> 6648</td><td> 9.7</td><td> 705</td><td> 7236</td><td> 0.0</td><td> 3</td><td> 35663</td><td>Utdanningsdirektoratet
</td></tr>
1578 <tr><td> 9.0</td><td>1139</td><td> 12632</td><td> 8.2</td><td>1100</td><td> 13344</td><td> 0.0</td><td> 2</td><td> 36987</td><td>Finanstilsynet
</td></tr>
1579 <tr><td> 9.1</td><td> 540</td><td> 5949</td><td>13.4</td><td> 769</td><td> 5743</td><td> 0.0</td><td> 0</td><td> 13908</td><td>Finansdepartementet
</td></tr>
1580 <tr><td> 9.2</td><td> 256</td><td> 2787</td><td> 6.5</td><td> 203</td><td> 3147</td><td> 0.0</td><td> 0</td><td> 9487</td><td>Riksantikvaren - Direktoratet for kulturminneforvaltning
</td></tr>
1581 <tr><td> 9.3</td><td>1596</td><td> 17209</td><td> 2.5</td><td> 463</td><td> 18438</td><td> 0.0</td><td> 0</td><td> 53119</td><td>Statens legemiddelverk
</td></tr>
1582 <tr><td> 9.7</td><td> 299</td><td> 3085</td><td>10.7</td><td> 329</td><td> 3072</td><td> 0.1</td><td> 6</td><td> 7579</td><td>Forsvarsdepartementet
</td></tr>
1583 <tr><td>10.1</td><td> 167</td><td> 1650</td><td> 4.5</td><td> 65</td><td> 1445</td><td> 0.0</td><td> 0</td><td> 11157</td><td>Statens helsetilsyn
</td></tr>
1584 <tr><td>10.9</td><td> 59</td><td> 542</td><td> 7.7</td><td> 44</td><td> 569</td><td> 0.0</td><td> 0</td><td> 1283</td><td>Statens arbeidsmiljøinstitutt
</td></tr>
1585 <tr><td>11.3</td><td> 46</td><td> 407</td><td>96.1</td><td>2591</td><td> 2695</td><td> 0.0</td><td> 0</td><td> 1489</td><td>Landbruksdirektoratet Alta
</td></tr>
1586 <tr><td>11.4</td><td> 675</td><td> 5933</td><td>13.6</td><td> 613</td><td> 4492</td><td> 0.0</td><td> 0</td><td> 24598</td><td>Kystverket
</td></tr>
1587 <tr><td>11.6</td><td> 739</td><td> 6383</td><td>12.2</td><td> 748</td><td> 6121</td><td> 0.0</td><td> 1</td><td> 18605</td><td>Kunnskapsdepartementet
</td></tr>
1588 <tr><td>11.9</td><td> 641</td><td> 5398</td><td> 9.3</td><td> 432</td><td> 4655</td><td> 0.0</td><td> 0</td><td> 14438</td><td>Kulturdepartementet
</td></tr>
1589 <tr><td>11.9</td><td> 934</td><td> 7835</td><td> 0.0</td><td> 0</td><td> 0</td><td> 0.0</td><td> 0</td><td> 33448</td><td>Kommunal- og moderniseringsdepartementet
</td></tr>
1590 <tr><td>12.1</td><td> 588</td><td> 4860</td><td>12.2</td><td> 522</td><td> 4294</td><td> 0.0</td><td> 0</td><td> 14173</td><td>Politidirektoratet
</td></tr>
1591 <tr><td>12.1</td><td>1444</td><td> 11893</td><td>46.0</td><td>5212</td><td> 11331</td><td> 0.0</td><td> 0</td><td> 51438</td><td>Helsedirektoratet
</td></tr>
1592 <tr><td>12.6</td><td> 220</td><td> 1745</td><td>17.5</td><td> 112</td><td> 640</td><td> 0.1</td><td> 3</td><td> 4184</td><td>Språkrådet
</td></tr>
1593 <tr><td>12.7</td><td> 211</td><td> 1664</td><td> 9.7</td><td> 226</td><td> 2318</td><td> 0.0</td><td> 0</td><td> 9151</td><td>Direktoratet for utviklingssamarbeid
</td></tr>
1594 <tr><td>13.9</td><td> 321</td><td> 2309</td><td>15.1</td><td> 329</td><td> 2185</td><td> 0.0</td><td> 0</td><td> 6307</td><td>Olje- og energidepartementet
</td></tr>
1595 <tr><td>14.3</td><td> 429</td><td> 2996</td><td>12.5</td><td> 303</td><td> 2432</td><td> 0.0</td><td> 0</td><td> 7560</td><td>Nasjonalt folkehelseinstitutt
</td></tr>
1596 <tr><td>14.4</td><td>1408</td><td> 9785</td><td> 0.0</td><td> 0</td><td> 0</td><td> 0.0</td><td> 0</td><td> 38923</td><td>Nærings- og fiskeridepartementet
</td></tr>
1597 <tr><td>14.7</td><td> 143</td><td> 973</td><td> 7.7</td><td> 83</td><td> 1084</td><td> 0.0</td><td> 0</td><td> 4130</td><td>Utlendingsnemnda
</td></tr>
1598 <tr><td>15.8</td><td> 173</td><td> 1097</td><td>38.8</td><td> 621</td><td> 1602</td><td> 0.0</td><td> 0</td><td> 7557</td><td>Direktoratet for forvaltning og IKT
</td></tr>
1599 <tr><td>16.7</td><td>1345</td><td> 8069</td><td> 8.6</td><td> 703</td><td> 8219</td><td> 0.0</td><td> 0</td><td> 20834</td><td>Norges vassdrags- og energidirektorat
</td></tr>
1600 <tr><td>17.5</td><td> 61</td><td> 348</td><td>17.2</td><td> 67</td><td> 389</td><td> 0.0</td><td> 0</td><td> 7732</td><td>Senter for internasjonalisering av utdanning
</td></tr>
1601 <tr><td>18.9</td><td>3737</td><td> 19734</td><td> 4.4</td><td> 606</td><td> 13752</td><td> 0.0</td><td> 0</td><td> 49938</td><td>Direktoratet for samfunnssikkerhet og beredskap
</td></tr>
1602 <tr><td>19.1</td><td>1392</td><td> 7269</td><td>19.1</td><td>1263</td><td> 6601</td><td> 0.0</td><td> 0</td><td> 19869</td><td>Fylkesmannen i Troms
</td></tr>
1603 <tr><td>20.4</td><td> 768</td><td> 3758</td><td>15.7</td><td> 471</td><td> 3008</td><td> 0.1</td><td> 9</td><td> 11280</td><td>Integrerings- og mangfoldsdirektoratet
</td></tr>
1604 <tr><td>21.0</td><td> 995</td><td> 4737</td><td>17.8</td><td> 978</td><td> 5508</td><td> 0.0</td><td> 0</td><td> 11260</td><td>Fylkesmannen i Sogn og Fjordane
</td></tr>
1605 <tr><td>21.6</td><td> 16</td><td> 74</td><td>97.3</td><td>2626</td><td> 2698</td><td> 0.0</td><td> 0</td><td> 155</td><td>Statens reindriftsforvaltning
</td></tr>
1606 <tr><td>22.1</td><td> 96</td><td> 435</td><td>17.6</td><td> 81</td><td> 459</td><td> 0.2</td><td> 3</td><td> 1943</td><td>Norges geologiske undersøkelse
</td></tr>
1607 <tr><td>22.3</td><td> 27</td><td> 121</td><td>10.6</td><td> 15</td><td> 141</td><td> 0.1</td><td> 1</td><td> 779</td><td>Kunst i offentlige rom
</td></tr>
1608 <tr><td>22.4</td><td>1939</td><td> 8659</td><td>21.8</td><td>1992</td><td> 9120</td><td> 0.0</td><td> 1</td><td> 17738</td><td>Fylkesmannen i Nordland
</td></tr>
1609 <tr><td>22.5</td><td> 52</td><td> 231</td><td>14.7</td><td> 32</td><td> 217</td><td> 0.0</td><td> 0</td><td> 896</td><td>Fredskorpset
</td></tr>
1610 <tr><td>22.5</td><td>2017</td><td> 8957</td><td>95.5</td><td>40498</td><td> 42425</td><td> 0.0</td><td> 0</td><td> 14223</td><td>Statens landbruksforvaltning
</td></tr>
1611 <tr><td>22.9</td><td> 116</td><td> 507</td><td>15.2</td><td> 81</td><td> 532</td><td> 0.0</td><td> 0</td><td> 2069</td><td>Nasjonalbiblioteket
</td></tr>
1612 <tr><td>25.5</td><td> 211</td><td> 829</td><td>20.8</td><td> 205</td><td> 987</td><td> 0.0</td><td> 0</td><td> 3867</td><td>Direktoratet for økonomistyring
</td></tr>
1613 <tr><td>26.1</td><td> 6</td><td> 23</td><td> 9.7</td><td> 3</td><td> 31</td><td> 0.0</td><td> 0</td><td> 106</td><td>Kompetansesenter for distriktsutvikling
</td></tr>
1614 <tr><td>26.6</td><td> 187</td><td> 702</td><td>28.5</td><td> 248</td><td> 871</td><td> 0.0</td><td> 1</td><td> 3154</td><td>Nasjonalt organ for kvalitet i utdanningen
</td></tr>
1615 <tr><td>27.1</td><td> 90</td><td> 332</td><td>13.2</td><td> 41</td><td> 311</td><td> 0.0</td><td> 0</td><td> 2400</td><td>Norsk Akkreditering
</td></tr>
1616 <tr><td>28.3</td><td> 562</td><td> 1986</td><td>20.0</td><td> 518</td><td> 2586</td><td> 0.0</td><td> 0</td><td> 6267</td><td>Statens lånekasse for utdanning
</td></tr>
1617 <tr><td>28.8</td><td> 443</td><td> 1538</td><td>41.0</td><td> 688</td><td> 1679</td><td> 0.0</td><td> 0</td><td> 5556</td><td>Havforskningsinstituttet
</td></tr>
1618 <tr><td>29.8</td><td>1473</td><td> 4944</td><td>24.8</td><td>1047</td><td> 4230</td><td> 0.0</td><td> 0</td><td> 9850</td><td>Utlendingsdirektoratet
</td></tr>
1619 <tr><td>29.8</td><td>1563</td><td> 5249</td><td>31.0</td><td>1421</td><td> 4588</td><td> 0.0</td><td> 0</td><td> 15660</td><td>Fylkesmannen i Finnmark
</td></tr>
1620 <tr><td>30.8</td><td> 314</td><td> 1021</td><td>58.4</td><td> 941</td><td> 1610</td><td> 0.3</td><td> 13</td><td> 3979</td><td>Direktoratet for nødkommunikasjon
</td></tr>
1621 <tr><td>31.4</td><td> 463</td><td> 1475</td><td>37.0</td><td> 280</td><td> 757</td><td> 0.1</td><td> 7</td><td> 4797</td><td>Domstoladministrasjonen
</td></tr>
1622 <tr><td>31.8</td><td>4708</td><td> 14785</td><td>25.2</td><td>2236</td><td> 8879</td><td> 0.0</td><td> 2</td><td> 39313</td><td>Utenriksdepartementet
</td></tr>
1623 <tr><td>36.1</td><td> 526</td><td> 1456</td><td>76.6</td><td>1364</td><td> 1781</td><td> 0.0</td><td> 0</td><td> 4472</td><td>Departementenes sikkerhets- og serviceorganisasjon
</td></tr>
1624 <tr><td>36.7</td><td> 447</td><td> 1217</td><td>63.8</td><td>1503</td><td> 2355</td><td> 1.8</td><td> 92</td><td> 5121</td><td>Garantiinstituttet for eksportkreditt
</td></tr>
1625 <tr><td>38.2</td><td>3341</td><td> 8744</td><td>34.7</td><td>3096</td><td> 8927</td><td> 0.0</td><td> 3</td><td> 15180</td><td>Fylkesmannen i Oppland
</td></tr>
1626 <tr><td>39.3</td><td>6267</td><td> 15947</td><td>37.7</td><td>6262</td><td> 16606</td><td> 0.1</td><td> 15</td><td> 29707</td><td>Fylkesmannen i Hordaland
</td></tr>
1627 <tr><td>39.6</td><td>2122</td><td> 5365</td><td>41.3</td><td>2242</td><td> 5428</td><td> 0.0</td><td> 0</td><td> 12680</td><td>Fylkesmannen i Telemark
</td></tr>
1628 <tr><td>40.8</td><td>3137</td><td> 7698</td><td>37.0</td><td>3059</td><td> 8272</td><td> 0.0</td><td> 5</td><td> 13848</td><td>Fylkesmannen i Nord-Trøndelag
</td></tr>
1629 <tr><td>42.1</td><td>1528</td><td> 3627</td><td>19.2</td><td> 529</td><td> 2750</td><td> 0.0</td><td> 1</td><td> 13524</td><td>Statsbygg
</td></tr>
1630 <tr><td>42.4</td><td>2844</td><td> 6700</td><td>42.4</td><td>2913</td><td> 6863</td><td> 0.0</td><td> 0</td><td> 12090</td><td>Fylkesmannen i Vest-Agder
</td></tr>
1631 <tr><td>42.9</td><td> 6</td><td> 14</td><td>88.9</td><td>2398</td><td> 2698</td><td> 0.0</td><td> 0</td><td> 23</td><td>Reindriftsforvaltningen
</td></tr>
1632 <tr><td>43.3</td><td>3310</td><td> 7645</td><td>42.6</td><td>3369</td><td> 7908</td><td> 0.0</td><td> 0</td><td> 15739</td><td>Fylkesmannen i Vestfold
</td></tr>
1633 <tr><td>43.4</td><td>3433</td><td> 7905</td><td>40.8</td><td>3508</td><td> 8594</td><td> 0.0</td><td> 0</td><td> 12921</td><td>Fylkesmannen i Møre og Romsdal
</td></tr>
1634 <tr><td>43.4</td><td>5540</td><td> 12773</td><td>40.1</td><td>5429</td><td> 13534</td><td> 0.0</td><td> 0</td><td> 22389</td><td>Fylkesmannen i Rogaland
</td></tr>
1635 <tr><td>43.6</td><td>2334</td><td> 5350</td><td>39.5</td><td>2314</td><td> 5861</td><td> 0.0</td><td> 0</td><td> 9997</td><td>Fylkesmannen i Aust-Agder
</td></tr>
1636 <tr><td>43.7</td><td>2656</td><td> 6079</td><td>23.1</td><td> 890</td><td> 3853</td><td> 0.1</td><td> 21</td><td> 18064</td><td>Forsvarsbygg
</td></tr>
1637 <tr><td>48.9</td><td>4276</td><td> 8747</td><td>48.0</td><td>4189</td><td> 8734</td><td> 0.0</td><td> 0</td><td> 16281</td><td>Fylkesmannen i Buskerud
</td></tr>
1638 <tr><td>50.9</td><td>5106</td><td> 10024</td><td>45.7</td><td>4584</td><td> 10022</td><td> 0.0</td><td> 0</td><td> 15340</td><td>Fylkesmannen i Sør-Trøndelag
</td></tr>
1639 <tr><td>51.4</td><td>4477</td><td> 8703</td><td>45.8</td><td>4240</td><td> 9253</td><td> 0.0</td><td> 5</td><td> 12067</td><td>Fylkesmannen i Hedmark
</td></tr>
1640 <tr><td>51.5</td><td> 210</td><td> 408</td><td>36.8</td><td> 656</td><td> 1785</td><td> 0.0</td><td> 0</td><td> 658</td><td>Departementenes servicesenter
</td></tr>
1641 <tr><td>52.7</td><td>4663</td><td> 8852</td><td>46.6</td><td>4110</td><td> 8824</td><td> 0.0</td><td> 0</td><td> 13869</td><td>Fylkesmannen i Østfold
</td></tr>
1642 <tr><td>59.7</td><td>14852</td><td> 24867</td><td>56.6</td><td>14366</td><td> 25404</td><td> 0.0</td><td> 0</td><td> 38706</td><td>Fylkesmannen i Oslo og Akershus
</td></tr>
1643 <tr><td>61.1</td><td>44900</td><td> 73495</td><td>95.1</td><td>40365</td><td> 42462</td><td> 0.0</td><td> 11</td><td> 63747</td><td>Landbruksdirektoratet Oslo
</td></tr>
1644 <tr><td>63.8</td><td>68121</td><td>106802</td><td>18.5</td><td>7592</td><td> 41093</td><td> 0.0</td><td> 0</td><td>144950</td><td>Arbeidstilsynet
</td></tr>
1645 <tr><td>69.8</td><td>110225</td><td>157962</td><td>70.8</td><td>105811</td><td>149449</td><td> 0.0</td><td> 14</td><td>106772</td><td>Statens vegvesen Region øst
</td></tr>
1646 <tr><td>72.2</td><td>16772</td><td> 23215</td><td>95.2</td><td>16409</td><td> 17238</td><td> 0.0</td><td> 0</td><td> 16705</td><td>Norsk kulturråd
</td></tr>
1647 <tr><td>78.6</td><td>124131</td><td>157956</td><td>77.6</td><td>115949</td><td>149462</td><td> 0.0</td><td> 0</td><td> 77689</td><td>Statens vegvesen Region sør
</td></tr>
1648 <tr><td>80.7</td><td>55587</td><td> 68896</td><td>71.9</td><td>36121</td><td> 50269</td><td> 0.0</td><td> 0</td><td> 42152</td><td>Sjøfartsdirektoratet
</td></tr>
1649 <tr><td>81.0</td><td>128006</td><td>157956</td><td>80.1</td><td>119743</td><td>149456</td><td> 0.0</td><td> 8</td><td> 74195</td><td>Statens vegvesen Region vest
</td></tr>
1650 <tr><td>87.2</td><td>137798</td><td>157962</td><td>87.6</td><td>130971</td><td>149449</td><td> 0.0</td><td> 9</td><td> 50814</td><td>Statens vegvesen Region midt
</td></tr>
1651 <tr><td>88.0</td><td>12239</td><td> 13902</td><td>86.1</td><td>19158</td><td> 22244</td><td> 0.0</td><td> 0</td><td> 5492</td><td>Barne-, ungdoms- og familiedirektoratet
</td></tr>
1652 <tr><td>90.8</td><td>143453</td><td>157956</td><td>90.6</td><td>135441</td><td>149453</td><td> 0.0</td><td> 0</td><td> 39961</td><td>Statens vegvesen Region nord
</td></tr>
1653 <tr><td>93.8</td><td>5865</td><td> 6250</td><td>99.3</td><td>7093</td><td> 7140</td><td> 0.0</td><td> 0</td><td> 984</td><td>Nasjonal kommunikasjonsmyndighet
</td></tr>
1654 <tr><td>95.3</td><td>4655</td><td> 4883</td><td>94.3</td><td>3819</td><td> 4049</td><td> 0.1</td><td> 1</td><td> 967</td><td>Landinfo
</td></tr>
1655 <tr><td>96.2</td><td>151935</td><td>157870</td><td>96.0</td><td>143497</td><td>149452</td><td> 0.0</td><td> 0</td><td> 19555</td><td>Statens vegvesen Vegdirektoratet
</td></tr>
1656 <tr><td>97.5</td><td>100799</td><td>103373</td><td>96.9</td><td>119802</td><td>123636</td><td> 0.0</td><td> 0</td><td> 7605</td><td>Toll- og avgiftsdirektoratet
</td></tr>
1657 <tr><td>97.7</td><td>24104</td><td> 24666</td><td>98.2</td><td>23640</td><td> 24062</td><td> 0.2</td><td> 5</td><td> 2108</td><td>Kriminalomsorgsdirektoratet
</td></tr>
1658 <tr><td>98.3</td><td>60845</td><td> 61922</td><td>98.3</td><td>58575</td><td> 59605</td><td> 0.0</td><td> 0</td><td> 2837</td><td>Statens pensjonskasse
</td></tr>
1659 <tr><td>99.5</td><td>990661</td><td>995873</td><td>99.4</td><td>953094</td><td>958529</td><td> 0.0</td><td> 0</td><td> 18246</td><td>Skattedirektoratet
</td></tr>
1663 <p>Det kunne vært interessant å se hva som skjedde hvis en ba om
1664 innsyn i en dokument-ID som ikke finnes i OEP... :) Det hadde også
1665 vært interessant å få vite hva årsaken til at noen saksnummer ikke
1666 dukker opp i OEP der det er få og mange. Jeg mistenker jo at årsaken
1667 ikke er den samme hos Skattedirektoratet og hos Landinfo, selv om
1668 andelen upubliserte nummer er ganske lik.
</p>
1674 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/noark5">noark5
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/norsk">norsk
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/nuug">nuug
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn
</a>.
1679 <div class=
"padding"></div>
1683 <a href=
"http://people.skolelinux.org/pere/blog/Hvordan_b_r_RFC_822_formattert_epost_lagres_i_en_NOARK5_database_.html">Hvordan bør RFC
822-formattert epost lagres i en NOARK5-database?
</a>
1689 <p>For noen uker siden ble NXCs fri programvarelisenserte
1691 <a href=
"http://www.nuug.no/aktiviteter/20140211-noark/">presentert hos
1693 <a href=
"https://www.youtube.com/watch?v=JCb_dNS3MHQ">på youtube
1694 foreløbig
</a>), og det fikk meg til å titte litt mer på NOARK5,
1695 standarden for arkivhåndtering i det offentlige Norge. Jeg lurer på
1696 om denne kjernen kan være nyttig i et par av mine prosjekter, og for ett
1697 av dem er det mest aktuelt å lagre epost. Jeg klarte ikke finne noen
1698 anbefaling om hvordan RFC
822-formattert epost (aka Internett-epost)
1699 burde lagres i NOARK5, selv om jeg vet at noen arkiver tar
1700 PDF-utskrift av eposten med sitt epostprogram og så arkiverer PDF-en
1701 (eller enda værre, tar papirutskrift og lagrer bildet av eposten som
1704 <p>Det er ikke så mange formater som er akseptert av riksarkivet til
1705 langtidsoppbevaring av offentlige arkiver, og PDF og XML er de mest
1706 aktuelle i så måte. Det slo meg at det måtte da finnes en eller annen
1707 egnet XML-representasjon og at det kanskje var enighet om hvilken som
1708 burde brukes, så jeg tok mot til meg og spurte
1709 <a href=
"http://samdok.com/">SAMDOK
</a>, en gruppe tilknyttet
1710 arkivverket som ser ut til å jobbe med NOARK-samhandling, om de hadde
1716 <p>Usikker på om dette er riktig forum å ta opp mitt spørsmål, men jeg
1717 lurer på om det er definert en anbefaling om hvordan RFC
1718 822-formatterte epost (aka vanlig Internet-epost) bør lages håndteres
1719 i NOARK5, slik at en bevarer all informasjon i eposten
1720 (f.eks. Received-linjer). Finnes det en anbefalt XML-mapping ala den
1722 <URL:
<a href=
"https://www.informit.com/articles/article.aspx?p=32074">https://www.informit.com/articles/article.aspx?p=
32074</a> >? Mitt
1723 mål er at det skal være mulig å lagre eposten i en NOARK5-kjerne og
1724 kunne få ut en identisk formattert kopi av opprinnelig epost ved
1728 <p>Postmottaker hos SAMDOK mente spørsmålet heller burde stilles
1729 direkte til riksarkivet, og jeg fikk i dag svar derfra formulert av
1730 seniorrådgiver Geir Ivar Tungesvik:
</p>
1733 <p>Riksarkivet har ingen anbefalinger når det gjelder konvertering fra
1734 e-post til XML. Det står arkivskaper fritt å eventuelt definere/bruke
1735 eget format. Inklusive da - som det spørres om - et format der det er
1736 mulig å re-etablere e-post format ut fra XML-en. XML (e-post)
1737 dokumenter må være referert i arkivstrukturen, og det må vedlegges et
1738 gyldig XML skjema (.xsd) for XML-filene. Arkivskaper står altså fritt
1739 til å gjøre hva de vil, bare det dokumenteres og det kan dannes et
1740 utrekk ved avlevering til depot.
</p>
1742 <p>De obligatoriske kravene i Noark
5 standarden må altså oppfylles -
1743 etter dialog med Riksarkivet i forbindelse med godkjenning. For
1744 offentlige arkiv er det særlig viktig med filene loependeJournal.xml
1745 og offentligJournal.xml. Private arkiv som vil forholde seg til Noark
1746 5 standarden er selvsagt frie til å bruke det som er relevant for dem
1747 av obligatoriske krav.
</p>
1750 <p>Det ser dermed ut for meg som om det er et lite behov for å
1751 standardisere XML-lagring av RFC-
822-formatterte meldinger. Noen som
1752 vet om god spesifikasjon i så måte? I tillegg til den omtalt over,
1753 har jeg kommet over flere aktuelle beskrivelser (søk på "rfc
822
1754 xml", så finner du aktuelle alternativer).
</p>
1758 <li><a href=
"http://www.openhealth.org/xmtp/">XML MIME Transformation
1759 protocol (XMTP)
</a> fra OpenHealth, sist oppdatert
2001.
</li>
1761 <li><a href=
"https://tools.ietf.org/html/draft-klyne-message-rfc822-xml-03">An
1762 XML format for mail and other messages
</a> utkast fra IETF datert
1765 <li><a href=
"http://www.informit.com/articles/article.aspx?p=32074">xMail:
1766 E-mail as XML
</a> en artikkel fra
2003 som beskriver python-modulen
1767 rfc822 som gir ut XML-representasjon av en RFC
822-formattert epost.
</li>
1771 <p>Finnes det andre og bedre spesifikasjoner for slik lagring? Send
1772 meg en epost hvis du har innspill.
</p>
1778 Tags:
<a href=
"http://people.skolelinux.org/pere/blog/tags/noark5">noark5
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/norsk">norsk
</a>,
<a href=
"http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn
</a>.
1783 <div class=
"padding"></div>
1785 <p style=
"text-align: right;"><a href=
"noark5.rss"><img src=
"http://people.skolelinux.org/pere/blog/xml.gif" alt=
"RSS Feed" width=
"36" height=
"14" /></a></p>
1796 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2019/01/">January (
4)
</a></li>
1798 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2019/02/">February (
3)
</a></li>
1800 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2019/03/">March (
3)
</a></li>
1802 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2019/05/">May (
2)
</a></li>
1804 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2019/06/">June (
5)
</a></li>
1806 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2019/07/">July (
1)
</a></li>
1813 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2018/01/">January (
1)
</a></li>
1815 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2018/02/">February (
5)
</a></li>
1817 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2018/03/">March (
5)
</a></li>
1819 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2018/04/">April (
3)
</a></li>
1821 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2018/06/">June (
2)
</a></li>
1823 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2018/07/">July (
5)
</a></li>
1825 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2018/08/">August (
3)
</a></li>
1827 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2018/09/">September (
3)
</a></li>
1829 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2018/10/">October (
5)
</a></li>
1831 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2018/11/">November (
2)
</a></li>
1833 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2018/12/">December (
4)
</a></li>
1840 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/01/">January (
4)
</a></li>
1842 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/02/">February (
3)
</a></li>
1844 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/03/">March (
5)
</a></li>
1846 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/04/">April (
2)
</a></li>
1848 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/06/">June (
5)
</a></li>
1850 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/07/">July (
1)
</a></li>
1852 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/08/">August (
1)
</a></li>
1854 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/09/">September (
3)
</a></li>
1856 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/10/">October (
5)
</a></li>
1858 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/11/">November (
3)
</a></li>
1860 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2017/12/">December (
4)
</a></li>
1867 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/01/">January (
3)
</a></li>
1869 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/02/">February (
2)
</a></li>
1871 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/03/">March (
3)
</a></li>
1873 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/04/">April (
8)
</a></li>
1875 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/05/">May (
8)
</a></li>
1877 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/06/">June (
2)
</a></li>
1879 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/07/">July (
2)
</a></li>
1881 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/08/">August (
5)
</a></li>
1883 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/09/">September (
2)
</a></li>
1885 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/10/">October (
3)
</a></li>
1887 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/11/">November (
8)
</a></li>
1889 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2016/12/">December (
5)
</a></li>
1896 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/01/">January (
7)
</a></li>
1898 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/02/">February (
6)
</a></li>
1900 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/03/">March (
1)
</a></li>
1902 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/04/">April (
4)
</a></li>
1904 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/05/">May (
3)
</a></li>
1906 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/06/">June (
4)
</a></li>
1908 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/07/">July (
6)
</a></li>
1910 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/08/">August (
2)
</a></li>
1912 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/09/">September (
2)
</a></li>
1914 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/10/">October (
9)
</a></li>
1916 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/11/">November (
6)
</a></li>
1918 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2015/12/">December (
3)
</a></li>
1925 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/01/">January (
2)
</a></li>
1927 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/02/">February (
3)
</a></li>
1929 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/03/">March (
8)
</a></li>
1931 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/04/">April (
7)
</a></li>
1933 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/05/">May (
1)
</a></li>
1935 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/06/">June (
2)
</a></li>
1937 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/07/">July (
2)
</a></li>
1939 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/08/">August (
2)
</a></li>
1941 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/09/">September (
5)
</a></li>
1943 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/10/">October (
6)
</a></li>
1945 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/11/">November (
3)
</a></li>
1947 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2014/12/">December (
5)
</a></li>
1954 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/01/">January (
11)
</a></li>
1956 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/02/">February (
9)
</a></li>
1958 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/03/">March (
9)
</a></li>
1960 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/04/">April (
6)
</a></li>
1962 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/05/">May (
9)
</a></li>
1964 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/06/">June (
10)
</a></li>
1966 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/07/">July (
7)
</a></li>
1968 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/08/">August (
3)
</a></li>
1970 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/09/">September (
5)
</a></li>
1972 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/10/">October (
7)
</a></li>
1974 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/11/">November (
9)
</a></li>
1976 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2013/12/">December (
3)
</a></li>
1983 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/01/">January (
7)
</a></li>
1985 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/02/">February (
10)
</a></li>
1987 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/03/">March (
17)
</a></li>
1989 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/04/">April (
12)
</a></li>
1991 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/05/">May (
12)
</a></li>
1993 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/06/">June (
20)
</a></li>
1995 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/07/">July (
17)
</a></li>
1997 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/08/">August (
6)
</a></li>
1999 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/09/">September (
9)
</a></li>
2001 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/10/">October (
17)
</a></li>
2003 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/11/">November (
10)
</a></li>
2005 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2012/12/">December (
7)
</a></li>
2012 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/01/">January (
16)
</a></li>
2014 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/02/">February (
6)
</a></li>
2016 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/03/">March (
6)
</a></li>
2018 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/04/">April (
7)
</a></li>
2020 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/05/">May (
3)
</a></li>
2022 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/06/">June (
2)
</a></li>
2024 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/07/">July (
7)
</a></li>
2026 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/08/">August (
6)
</a></li>
2028 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/09/">September (
4)
</a></li>
2030 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/10/">October (
2)
</a></li>
2032 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/11/">November (
3)
</a></li>
2034 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2011/12/">December (
1)
</a></li>
2041 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/01/">January (
2)
</a></li>
2043 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/02/">February (
1)
</a></li>
2045 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/03/">March (
3)
</a></li>
2047 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/04/">April (
3)
</a></li>
2049 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/05/">May (
9)
</a></li>
2051 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/06/">June (
14)
</a></li>
2053 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/07/">July (
12)
</a></li>
2055 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/08/">August (
13)
</a></li>
2057 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/09/">September (
7)
</a></li>
2059 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/10/">October (
9)
</a></li>
2061 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/11/">November (
13)
</a></li>
2063 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2010/12/">December (
12)
</a></li>
2070 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/01/">January (
8)
</a></li>
2072 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/02/">February (
8)
</a></li>
2074 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/03/">March (
12)
</a></li>
2076 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/04/">April (
10)
</a></li>
2078 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/05/">May (
9)
</a></li>
2080 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/06/">June (
3)
</a></li>
2082 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/07/">July (
4)
</a></li>
2084 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/08/">August (
3)
</a></li>
2086 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/09/">September (
1)
</a></li>
2088 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/10/">October (
2)
</a></li>
2090 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/11/">November (
3)
</a></li>
2092 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2009/12/">December (
3)
</a></li>
2099 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2008/11/">November (
5)
</a></li>
2101 <li><a href=
"http://people.skolelinux.org/pere/blog/archive/2008/12/">December (
7)
</a></li>
2112 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (
16)
</a></li>
2114 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/amiga">amiga (
1)
</a></li>
2116 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/aros">aros (
1)
</a></li>
2118 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bankid">bankid (
4)
</a></li>
2120 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/betalkontant">betalkontant (
8)
</a></li>
2122 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (
11)
</a></li>
2124 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (
17)
</a></li>
2126 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/bsa">bsa (
2)
</a></li>
2128 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (
2)
</a></li>
2130 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/debian">debian (
168)
</a></li>
2132 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (
158)
</a></li>
2134 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/debian-handbook">debian-handbook (
4)
</a></li>
2136 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/digistan">digistan (
11)
</a></li>
2138 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/dld">dld (
17)
</a></li>
2140 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/docbook">docbook (
26)
</a></li>
2142 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (
4)
</a></li>
2144 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/english">english (
407)
</a></li>
2146 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (
23)
</a></li>
2148 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (
14)
</a></li>
2150 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (
34)
</a></li>
2152 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (
9)
</a></li>
2154 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (
20)
</a></li>
2156 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/h264">h264 (
20)
</a></li>
2158 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/intervju">intervju (
42)
</a></li>
2160 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (
16)
</a></li>
2162 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/kart">kart (
22)
</a></li>
2164 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/kodi">kodi (
4)
</a></li>
2166 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/ldap">ldap (
9)
</a></li>
2168 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/lego">lego (
4)
</a></li>
2170 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/lenker">lenker (
8)
</a></li>
2172 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/lsdvd">lsdvd (
2)
</a></li>
2174 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (
1)
</a></li>
2176 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (
8)
</a></li>
2178 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (
42)
</a></li>
2180 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/nice free software">nice free software (
12)
</a></li>
2182 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/noark5">noark5 (
16)
</a></li>
2184 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/norsk">norsk (
306)
</a></li>
2186 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/nuug">nuug (
196)
</a></li>
2188 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (
37)
</a></li>
2190 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/open311">open311 (
2)
</a></li>
2192 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (
73)
</a></li>
2194 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/personvern">personvern (
109)
</a></li>
2196 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/raid">raid (
2)
</a></li>
2198 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/reactos">reactos (
1)
</a></li>
2200 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/reprap">reprap (
11)
</a></li>
2202 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/rfid">rfid (
3)
</a></li>
2204 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/robot">robot (
12)
</a></li>
2206 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/rss">rss (
1)
</a></li>
2208 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/ruter">ruter (
7)
</a></li>
2210 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (
2)
</a></li>
2212 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (
56)
</a></li>
2214 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (
4)
</a></li>
2216 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (
5)
</a></li>
2218 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/standard">standard (
65)
</a></li>
2220 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (
6)
</a></li>
2222 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (
12)
</a></li>
2224 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (
56)
</a></li>
2226 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (
4)
</a></li>
2228 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/usenix">usenix (
2)
</a></li>
2230 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/valg">valg (
9)
</a></li>
2232 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri (
15)
</a></li>
2234 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/video">video (
73)
</a></li>
2236 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (
4)
</a></li>
2238 <li><a href=
"http://people.skolelinux.org/pere/blog/tags/web">web (
42)
</a></li>
2244 <p style=
"text-align: right">
2245 Created by
<a href=
"http://steve.org.uk/Software/chronicle">Chronicle v4.6
</a>