1 <?xml version=
"1.0" encoding=
"utf-8"?>
2 <rss version='
2.0' xmlns:lj='http://www.livejournal.org/rss/lj/
1.0/'
>
4 <title>Petter Reinholdtsen - Entries tagged noark5
</title>
5 <description>Entries tagged noark5
</description>
6 <link>http://people.skolelinux.org/pere/blog/
</link>
10 <title>PlantUML for text based UML diagram modelling - nice free software
</title>
11 <link>http://people.skolelinux.org/pere/blog/PlantUML_for_text_based_UML_diagram_modelling___nice_free_software.html
</link>
12 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/PlantUML_for_text_based_UML_diagram_modelling___nice_free_software.html
</guid>
13 <pubDate>Mon,
25 Mar
2019 09:
35:
00 +
0100</pubDate>
14 <description><p
>As part of my involvement with the
15 <a href=
"https://gitlab.com/OsloMet-ABI/nikita-noark5-core/
">Nikita
16 Noark
5 core project
</a
>, I have been proposing improvements to the
17 API specification created by
<a href=
"https://www.arkivverket.no/
">The
18 National Archives of Norway
</a
> and helped migrating the text from a
19 version control system unfriendly binary format (docx) to Markdown in
20 git. Combined with the migration to a public git repository (on
21 github), this has made it possible for anyone to suggest improvement
22 to the text.
</p
>
24 <p
>The specification is filled with UML diagrams. I believe the
25 original diagrams were modelled using Sparx Systems Enterprise
26 Architect, and exported as EMF files for import into docx. This
27 approach make it very hard to track changes using a version control
28 system. To improve the situation I have been looking for a good text
29 based UML format with associated command line free software tools on
30 Linux and Windows, to allow anyone to send in corrections to the UML
31 diagrams in the specification. The tool must be text based to work
32 with git, and command line to be able to run it automatically to
33 generate the diagram images. Finally, it must be free software to
34 allow anyone, even those that can not accept a non-free software
35 license, to contribute.
</p
>
37 <p
>I did not know much about free software UML modelling tools when I
38 started. I have used dia and inkscape for simple modelling in the
39 past, but neither are available on Windows, as far as I could tell. I
41 <a href=
"https://modeling-languages.com/text-uml-tools-complete-list/
">list
42 of text mode uml tools
</a
>, and tested out a few of the tools listed
43 there.
<a href=
"http://plantuml.com/
">The PlantUML tool
</a
> seemed
44 most promising. After verifying that the packages
45 <a href=
"https://tracker.debian.org/pkg/plantuml
">is available in
46 Debian
</a
> and found
<a href=
"https://github.com/plantuml/plantuml
">its
47 Java source
</a
> under a GPL license on github, I set out to test if it
48 could represent the diagrams we needed, ie the ones currently in
49 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/
">the
50 Noark
5 Tjenestegrensesnitt specification
</a
>. I am happy to report
51 that it could represent them, even thought it have a few warts here
54 <p
>After a few days of modelling I completed the task this weekend. A
55 temporary link to the complete set of diagrams (original and from
56 PlantUML) is available in
57 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues/
76">the
58 github issue discussing the need for a text based UML format
</a
>, but
59 please note I lack a sensible tool to convert EMF files to PNGs, so
60 the
"original
" rendering is not as good as the original was in the
61 publised PDF.
</p
>
63 <p
>Here is an example UML diagram, showing the core classes for
64 keeping metadata about archived documents:
</p
>
68 skinparam classAttributeIconSize
0
70 !include media/uml-class-arkivskaper.iuml
71 !include media/uml-class-arkiv.iuml
72 !include media/uml-class-klassifikasjonssystem.iuml
73 !include media/uml-class-klasse.iuml
74 !include media/uml-class-arkivdel.iuml
75 !include media/uml-class-mappe.iuml
76 !include media/uml-class-merknad.iuml
77 !include media/uml-class-registrering.iuml
78 !include media/uml-class-basisregistrering.iuml
79 !include media/uml-class-dokumentbeskrivelse.iuml
80 !include media/uml-class-dokumentobjekt.iuml
81 !include media/uml-class-konvertering.iuml
82 !include media/uml-datatype-elektronisksignatur.iuml
84 Arkivstruktur.Arkivskaper
"+arkivskaper
1..*
" <-o
"+arkiv
0..*
" Arkivstruktur.Arkiv
85 Arkivstruktur.Arkiv o--
> "+underarkiv
0..*
" Arkivstruktur.Arkiv
86 Arkivstruktur.Arkiv
"+arkiv
1" o--
> "+arkivdel
0..*
" Arkivstruktur.Arkivdel
87 Arkivstruktur.Klassifikasjonssystem
"+klassifikasjonssystem [
0.
.1]
" <--o
"+arkivdel
1..*
" Arkivstruktur.Arkivdel
88 Arkivstruktur.Klassifikasjonssystem
"+klassifikasjonssystem [
0.
.1]
" o--
> "+klasse
0..*
" Arkivstruktur.Klasse
89 Arkivstruktur.Arkivdel
"+arkivdel
0.
.1" o--
> "+mappe
0..*
" Arkivstruktur.Mappe
90 Arkivstruktur.Arkivdel
"+arkivdel
0.
.1" o--
> "+registrering
0..*
" Arkivstruktur.Registrering
91 Arkivstruktur.Klasse
"+klasse
0.
.1" o--
> "+mappe
0..*
" Arkivstruktur.Mappe
92 Arkivstruktur.Klasse
"+klasse
0.
.1" o--
> "+registrering
0..*
" Arkivstruktur.Registrering
93 Arkivstruktur.Mappe --
> "+undermappe
0..*
" Arkivstruktur.Mappe
94 Arkivstruktur.Mappe
"+mappe
0.
.1" o--
> "+registrering
0..*
" Arkivstruktur.Registrering
95 Arkivstruktur.Merknad
"+merknad
0..*
" <--* Arkivstruktur.Mappe
96 Arkivstruktur.Merknad
"+merknad
0..*
" <--* Arkivstruktur.Dokumentbeskrivelse
97 Arkivstruktur.Basisregistrering -|
> Arkivstruktur.Registrering
98 Arkivstruktur.Merknad
"+merknad
0..*
" <--* Arkivstruktur.Basisregistrering
99 Arkivstruktur.Registrering
"+registrering
1..*
" o--
> "+dokumentbeskrivelse
0..*
" Arkivstruktur.Dokumentbeskrivelse
100 Arkivstruktur.Dokumentbeskrivelse
"+dokumentbeskrivelse
1" o-
> "+dokumentobjekt
0..*
" Arkivstruktur.Dokumentobjekt
101 Arkivstruktur.Dokumentobjekt *-
> "+konvertering
0..*
" Arkivstruktur.Konvertering
102 Arkivstruktur.ElektroniskSignatur -[hidden]-
> Arkivstruktur.Dokumentobjekt
106 <p
><a href=
"http://plantuml.com/class-diagram
">The format
</a
> is quite
107 compact, with little redundant information. The text expresses
108 entities and relations, and there is little layout related fluff. One
109 can reuse content by using include files, allowing for consistent
110 naming across several diagrams. The include files can be standalone
111 PlantUML too. Here is the content of
112 <tt
>media/uml-class-arkivskaper.iuml
<tt
>:
</p
>
116 class Arkivstruktur.Arkivskaper
<Arkivenhet
> {
117 +arkivskaperID : string
118 +arkivskaperNavn : string
119 +beskrivelse : string [
0.
.1]
124 <p
>This is what the complete diagram for the PlantUML notation above
127 <p
><img width=
"80%
" src=
"http://people.skolelinux.org/pere/blog/images/
2019-
03-
25-noark5-plantuml-diagrameksempel.png
"></p
>
129 <p
>A cool feature of PlantUML is that the generated PNG files include
130 the entire original source diagram as text. The source (with include
131 statements expanded) can be extracted using for example
132 <tt
>exiftool
</tt
>. Another cool feature is that parts of the entities
133 can be hidden after inclusion. This allow to use include files with
134 all attributes listed, even for UML diagrams that should not list any
135 attributes.
</p
>
137 <p
>The diagram also show some of the warts. Some times the layout
138 engine place text labels on top of each other, and some times it place
139 the class boxes too close to each other, not leaving room for the
140 labels on the relationship arrows. The former can be worked around by
141 placing extra newlines in the labes (ie
"\n
"). I did not do it here
142 to be able to demonstrate the issue. I have not found a good way
143 around the latter, so I normally try to reduce the problem by changing
144 from vertical to horizontal links to improve the layout.
</p
>
146 <p
>All in all, I am quite happy with PlantUML, and very impressed with
147 how quickly its lead developer responds to questions. So far I got an
148 answer to my questions in a few hours when I send an email. I
149 definitely recommend looking at PlantUML if you need to make UML
150 diagrams. Note, PlantUML can draw a lot more than class relations.
151 Check out the documention for a complete list. :)
</p
>
153 <p
>As usual, if you use Bitcoin and want to show your support of my
154 activities, please send Bitcoin donations to my address
155 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
160 <title>Release
0.3 of free software archive API system Nikita announced
</title>
161 <link>http://people.skolelinux.org/pere/blog/Release_0_3_of_free_software_archive_API_system_Nikita_announced.html
</link>
162 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Release_0_3_of_free_software_archive_API_system_Nikita_announced.html
</guid>
163 <pubDate>Sun,
24 Mar
2019 14:
30:
00 +
0100</pubDate>
164 <description><p
>Yesterday, a new release of
165 <a href=
"https://gitlab.com/OsloMet-ABI/nikita-noark5-core/
">Nikita
166 Noark
5 core project
</a
> was
167 <a href=
"https://lists.nuug.no/pipermail/nikita-noark/
2019-March/
000451.html
">announced
168 on the project mailing list
</a
>. The free software solution is an
169 implementation of the Norwegian archive standard Noark
5 used by
170 government offices in Norway. These were the changes in version
0.3
171 since version
0.2.1 (from NEWS.md):
</p
>
174 <li
>Improved ClassificationSystem and Class behaviour.
</li
>
175 <li
>Tidied up known inconsistencies between domain model and hateaos links.
</li
>
176 <li
>Added experimental code for blockchain integration.
</li
>
177 <li
>Make token expiry time configurable at upstart from properties file.
</li
>
178 <li
>Continued work on OData search syntax.
</li
>
179 <li
>Started work on pagination for entities, partly implemented for Saksmappe.
</li
>
180 <li
>Finalise ClassifiedCode Metadata entity.
</li
>
181 <li
>Implement mechanism to check if authentication token is still
182 valid. This allow the GUI to return a more sensible message to the
183 user if the token is expired.
</li
>
184 <li
>Reintroduce browse.html page to allow user to browse JSON API using
185 hateoas links.
</li
>
186 <li
>Fix bug in handling file/mappe sequence number. Year change was
187 not properly handled.
</li
>
188 <li
>Update application yml files to be in sync with current development.
</li
>
189 <li
>Stop
'converting
' everything to PDF using libreoffice. Only
190 convert the file formats doc, ppt, xls, docx, pptx, xlsx, odt, odp
192 <li
>Continued code style fixing, making code more readable.
</li
>
193 <li
>Minor bug fixes.
</li
>
197 <p
>If free and open standardized archiving API sound interesting to
198 you, please contact us on IRC
199 (
<a href=
"irc://irc.freenode.net/%
23nikita
">#nikita on
200 irc.freenode.net
</a
>) or email
201 (
<a href=
"https://lists.nuug.no/mailman/listinfo/nikita-noark
">nikita-noark
202 mailing list
</a
>).
</p
>
204 <p
>As usual, if you use Bitcoin and want to show your support of my
205 activities, please send Bitcoin donations to my address
206 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
211 <title>Åpen og gjennomsiktig vedlikehold av spesifikasjonen for Noark
5 Tjenestegrensesnitt
</title>
212 <link>http://people.skolelinux.org/pere/blog/_pen_og_gjennomsiktig_vedlikehold_av_spesifikasjonen_for_Noark_5_Tjenestegrensesnitt.html
</link>
213 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/_pen_og_gjennomsiktig_vedlikehold_av_spesifikasjonen_for_Noark_5_Tjenestegrensesnitt.html
</guid>
214 <pubDate>Mon,
11 Mar
2019 16:
00:
00 +
0100</pubDate>
215 <description><p
>Et virksomhetsarkiv for meg, er et arbeidsverktøy der en enkelt kan
216 finne informasjonen en trenger når en trenger det, og der
217 virksomhetens samlede kunnskap er tilgjengelig. Det må være greit å
218 finne frem i, litt som en bibliotek. Men der et bibliotek gjerne tar
219 vare på offentliggjort informasjon som er tilgjengelig flere steder,
220 tar et arkiv vare på virksomhetsintern og til tider personlig
221 informasjon som ofte kun er tilgjengelig fra et sted.
</p
>
223 <p
>Jeg mistenker den eneste måten å sikre at arkivet inneholder den
224 samlede kunnskapen i en virksomhet, er å bruke det som virksomhetens
225 kunnskapslager. Det innebærer å automatisk kopiere (brev, epost,
226 SMS-er etc) inn i arkivet når de sendes og mottas, og der filtrere
227 vekk det en ikke vil ta vare på, og legge på metadata om det som er
228 samlet inn for enkel gjenfinning. En slik bruk av arkivet innebærer at
229 arkivet er en del av daglig virke, ikke at det er siste hvilested for
230 informasjon ingen lenger har daglig bruk for. For å kunne være en del
231 av det daglige virket må arkivet enkelt kunne integreres med andre
232 systemer. I disse dager betyr det å tilby arkivet som en
233 nett-tjeneste til hele virksomheten, tilgjengelig for både mennesker
234 og datamaskiner. Det betyr i tur å både tilby nettsider og et
235 maskinlesbart grensesnitt.
</p
>
237 <p
>For noen år siden erkjente visjonære arkivarer fordelene med et
238 standardisert maskinlesbart grensesnitt til organisasjonens arkiv. De
239 gikk igang med å lage noe de kalte
240 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/
">Noark
241 5 Tjenestegrensesnitt
</a
>. Gjort riktig, så åpner slike maskinlesbare
242 grensesnitt for samvirke på tvers av uavhengige programvaresystemer.
243 Gjort feil, vil det blokkere for samvirke og bidra til
244 leverandørinnlåsing. For å gjøre det riktig så må grensesnittet være
245 klart og entydig beskrevet i en spesifikasjon som gjør at
246 spesifikasjonen tolkes på samme måte uavhengig av hvem som leser den,
247 og uavhengig av hvem som tar den i bruk.
</p
>
249 <p
>For å oppnå klare og entydige beskrivelser i en spesifikasjon, som
250 trengs for å kunne få en fri og åpen standard (se
251 <a href=
"http://people.skolelinux.org/pere/blog/Fri_og__pen_standard__slik_Digistan_ser_det.html
">Digistan-definisjon
</a
>),
252 så trengs det en åpen og gjennomsiktig inngangsport med lav terskel,
253 der de som forsøker å ta den i bruk enkelt kan få inn korreksjoner,
254 etterlyse klargjøringer og rapportere uklarheter i spesifikasjonen.
255 En trenger også automatiserte datasystemer som måler og sjekker at et
256 gitt grensesnitt fungerer i tråd med spesifikasjonen.
</p
>
258 <p
>For Noark
5 Tjenestegrensesnittet er det nå etablert en slik åpen
259 og gjennomsiktig inngangsport på prosjekttjenesten github. Denne
260 inngangsporten består først og fremst av en åpen portal som lar enhver
261 se hva som er gjort av endringer i spesifikasjonsteksten over tid, men
262 det hører også med et åpent
&quot;diskusjonsforum
&quot; der en kan
263 komme med endringsforslag og forespørsler om klargjøringer. Alle
264 registrerte brukere på github kan bidra med innspill til disse
265 henvendelsene.
</p
>
267 <p
>I samarbeide med Arkivverket har jeg fått opprettet et git-depot
268 med spesifikasjonsteksten for tjenestegrensesnittet, der det er lagt
269 inn historikk for endringer i teksten de siste årene, samt lagt inn
270 endringsforslag og forespørsler om klargjøring av teksten. Bakgrunnen
271 for at jeg bidro med dette er at jeg er involvert i
272 <a href=
"https://gitlab.com/OsloMet-ABI/nikita-noark5-core
">Nikita-prosjektet
</a
>,
273 som lager en fri programvare-utgave av Noark
5 Tjenestegrensesnitt.
274 Det er først når en forsøker å lage noe i tråd med en spesifikasjon at
275 en oppdager hvor mange detaljer som må beskrives i spesifikasjonen for
276 å sikre samhandling.
</p
>
278 <p
>Spesifikasjonen vedlikeholdes i et rent tekstformat, for å ha et
279 format egnet for versjonskontroll via versjontrollsystemet git. Dette
280 gjør det både enkelt å se konkret hvilke endringer som er gjort når,
281 samt gjør det praktisk mulig for enhver med github-konto å sende inn
282 endringsforslag med formuleringer til spesifikasjonsteksten. Dette
283 tekstformatet vises frem som nettsider på github, slik at en ikke
284 trenger spesielle verktøy for å se på siste utgave av
285 spesifikasjonen.
</p
>
287 <p
>Fra dette rene tekstformatet kan det så avledes ulike formater, som
288 HTML for websider, PDF for utskrift på papir og ePub for lesing med
289 ebokleser. Avlednings-systemet (byggesystemet) bruker i dag
290 verktøyene pandoc, latex, docbook-xsl og GNU make til
291 transformasjonen. Tekstformatet som brukes dag er
292 <a href=
"https://www.markdownguide.org/
">Markdown
</a
>, men det vurderes
294 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues/
9">endre
295 til formatet RST
</a
> i fremtiden for bedre styring av utseende på
296 PDF-utgaven.
</p
>
298 <p
>Versjonskontrollsystemet git ble valgt da det er både fleksibelt,
299 avansert og enkelt å ta i bruk. Github ble valgt (foran f.eks. Gitlab
300 som vi bruker i Nikita), da Arkivverket allerede hadde tatt i bruk
301 Github i andre sammenhenger.
</p
>
303 <p
>Enkle endringer i teksten kan gjøres av priviligerte brukere
304 direkte i nettsidene til Github, ved å finne aktuell fil som skal
305 endres (f.eks. kapitler/
03-konformitet.md), klikke på den lille
306 bokstaven i høyre hjørne over teksten. Det kommer opp en nettside der
307 en kan endre teksten slik en ønsker. Når en er fornøyd med endringen
308 så må endringen
&quot;sjekkes inn
&quot; i historikken. Det gjøres ved
309 å gi en kort beskrivelse av endringen (beskriv helst hvorfor endringen
310 trengs, ikke hva som er endret), under overskriften
&quot;Commit
311 changes
&quot;. En kan og bør legge inn en lengre forklaring i det
312 større skrivefeltet, før en velger om endringen skal sendes direkte
313 til
'master
'-grenen (dvs. autorativ utgave av spesifikasjonen) eller
314 om en skal lage en ny gren for denne endringen og opprette en
315 endringsforespørsel (aka
&quot;Pull Request
&quot;/PR). Når alt dette
316 er gjort kan en velge
&quot;Commit changes
&quot; for å sende inn
317 endringen. Hvis den er lagt inn i
&quot;master
&quot;-grenen så er den
318 en offisiell del av spesifikasjonen med en gang. Hvis den derimot er
319 en endringsforespørsel, så legges den inn i
320 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/pulls
">listen
321 over forslag til endringer
</a
> som venter på korrekturlesing og
322 godkjenning.
</p
>
324 <p
>Større endringer (for eksempel samtidig endringer i flere filer)
325 gjøres enklest ved å hente ned en kopi av git-depoet lokalt og gjøre
326 endringene der før endringsforslaget sendes inn. Denne prosessen er
327 godt beskrivet i dokumentasjon fra github. Git-prosjektet som skal
328 &quot;klones
&quot; er
329 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/
">https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/
</a
>.
</p
>
331 <p
>For å registrere nye utfordringer (issues) eller kommentere på
332 eksisterende utfordringer benyttes nettsiden
333 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues
">https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues
</a
>.
334 I skrivende stund er det
48 åpne og
11 avsluttede utfordringer. Et
335 forslag til hva som bør være med når en beskriver en utfordring er
336 tilgjengelig som utfordring
337 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues/
14">#
14</a
>.
</p
>
339 <p
>For å bygge en PDF-utgave av spesifikasjonen så bruker jeg i dag en
340 Debian GNU/Linux-maskin med en rekke programpakker installert. Når
341 dette er på plass, så holder det å kjøre kommandoen
'make pdf html
' på
342 kommandolinjen, vente ca.
20 sekunder, før spesifikasjon.pdf og
343 spesifikasjon.html ligger klar på disken. Verktøyene for bygging av
344 PDF, HTML og ePub-utgave er også tilgjengelig på Windows og
347 <p
>Github bidrar med rammeverket. Men for at åpent vedlikehold av
348 spesifikasjonen skal fungere, så trengs det folk som bidrar med sin
349 tid og kunnskap. Arkivverket har sagt de skal bidra med innspill og
350 godkjenne forslag til endringer, men det blir størst suksess hvis alle
351 som bruker og lager systemer basert på Noark
5 Tjenestegrensesnitt
352 bidrar med sin kunnskap og kommer med forslag til forebedringer. Jeg
353 stiller. Blir du med?
</p
>
355 <p
>Det er viktig å legge til rette for åpen diskusjon blant alle
356 interesserte, som ikke krever at en må godta lange kontrakter med
357 vilkår for deltagelse. Inntil Arkivverket dukker opp på IRC har vi
358 laget en IRC-kanal der interesserte enkelt kan orientere seg og
359 diskutere tjenestegrensesnittet. Alle er velkommen til å ta turen
361 <a href=
"https://webchat.freenode.net/?channels=nikita
">#nikita
</a
>
362 (f.eks. via irc.freenode.net) for å møte likesinnede.
</p
>
364 <p
>Det holder dog ikke å ha en god spesifikasjon, hvis ikke de som tar
365 den i bruk gjør en like god jobb. For å automatisk teste om et konkret
366 tjenestegrensesnitt følger (min) forståelse av
367 spesifikasjonsdokumentet, har jeg skrevet et program som kobler seg
368 opp til et Noark
5v4 REST-tjeneste og tester alt den finner for å se
369 om det er i henhold til min tolkning av spesifikasjonen. Dette
370 verktøyet er tilgjengelig fra
371 <a href=
"https://github.com/petterreinholdtsen/noark5-tester
">https://github.com/petterreinholdtsen/noark5-tester
</a
>,
372 og brukes daglig mens vi utvikler Nikita for å sikre at vi ikke
373 introduserer nye feil. Hvis en skal sikre samvirke på tvers av ulike
374 systemer er det helt essensielt å kunne raskt og automatisk sjekke at
375 tjenestegrensesnittet oppfører seg som forventet. Jeg håper andre som
376 lager sin utgave av tjenestegrensesnittet vi bruke dette verktøyet,
377 slik at vi tidlig og raskt kan oppdage hvor vi har tolket
378 spesifikasjonen ulikt, og dermed få et godt grunnlag for å gjøre
379 spesifikasjonsteksten enda klarere og bedre.
</p
>
381 <p
>Dagens beskrivelse av Noark
5 Tjenestegrensesnitt er et svært godt
382 utgangspunkt for å gjøre virksomhetens arkiv til et dynamisk og
383 sentralt arbeidsverktøy i organisasjonen. Blir du med å gjøre den
384 enda bedre?
</p
>
389 <title>Time for an official MIME type for patches?
</title>
390 <link>http://people.skolelinux.org/pere/blog/Time_for_an_official_MIME_type_for_patches_.html
</link>
391 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Time_for_an_official_MIME_type_for_patches_.html
</guid>
392 <pubDate>Thu,
1 Nov
2018 08:
15:
00 +
0100</pubDate>
393 <description><p
>As part of my involvement in
394 <a href=
"https://gitlab.com/OsloMet-ABI/nikita-noark5-core
">the Nikita
395 archive API project
</a
>, I
've been importing a fairly large lump of
396 emails into a test instance of the archive to see how well this would
397 go. I picked a subset of
<a href=
"https://notmuchmail.org/
">my
398 notmuch email database
</a
>, all public emails sent to me via
399 @lists.debian.org, giving me a set of around
216 000 emails to import.
400 In the process, I had a look at the various attachments included in
401 these emails, to figure out what to do with attachments, and noticed
402 that one of the most common attachment formats do not have
403 <a href=
"https://www.iana.org/assignments/media-types/media-types.xhtml
">an
404 official MIME type
</a
> registered with IANA/IETF. The output from
405 diff, ie the input for patch, is on the top
10 list of formats
406 included in these emails. At the moment people seem to use either
407 text/x-patch or text/x-diff, but neither is officially registered. It
408 would be better if one official MIME type were registered and used
409 everywhere.
</p
>
411 <p
>To try to get one official MIME type for these files, I
've brought
413 <a href=
"https://www.ietf.org/mailman/listinfo/media-types
">the
414 media-types mailing list
</a
>. If you are interested in discussion
415 which MIME type to use as the official for patch files, or involved in
416 making software using a MIME type for patches, perhaps you would like
417 to join the discussion?
</p
>
419 <p
>As usual, if you use Bitcoin and want to show your support of my
420 activities, please send Bitcoin donations to my address
421 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
426 <title>Release
0.2 of free software archive system Nikita announced
</title>
427 <link>http://people.skolelinux.org/pere/blog/Release_0_2_of_free_software_archive_system_Nikita_announced.html
</link>
428 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Release_0_2_of_free_software_archive_system_Nikita_announced.html
</guid>
429 <pubDate>Thu,
18 Oct
2018 14:
40:
00 +
0200</pubDate>
430 <description><p
>This morning, the new release of the
431 <a href=
"https://gitlab.com/OsloMet-ABI/nikita-noark5-core/
">Nikita
432 Noark
5 core project
</a
> was
433 <a href=
"https://lists.nuug.no/pipermail/nikita-noark/
2018-October/
000406.html
">announced
434 on the project mailing list
</a
>. The free software solution is an
435 implementation of the Norwegian archive standard Noark
5 used by
436 government offices in Norway. These were the changes in version
0.2
437 since version
0.1.1 (from NEWS.md):
440 <li
>Fix typos in REL names
</li
>
441 <li
>Tidy up error message reporting
</li
>
442 <li
>Fix issue where we used Integer.valueOf(), not Integer.getInteger()
</li
>
443 <li
>Change some String handling to StringBuffer
</li
>
444 <li
>Fix error reporting
</li
>
445 <li
>Code tidy-up
</li
>
446 <li
>Fix issue using static non-synchronized SimpleDateFormat to avoid
447 race conditions
</li
>
448 <li
>Fix problem where deserialisers were treating integers as strings
</li
>
449 <li
>Update methods to make them null-safe
</li
>
450 <li
>Fix many issues reported by coverity
</li
>
451 <li
>Improve equals(), compareTo() and hash() in domain model
</li
>
452 <li
>Improvements to the domain model for metadata classes
</li
>
453 <li
>Fix CORS issues when downloading document
</li
>
454 <li
>Implementation of case-handling with registryEntry and document upload
</li
>
455 <li
>Better support in Javascript for OPTIONS
</li
>
456 <li
>Adding concept description of mail integration
</li
>
457 <li
>Improve setting of default values for GET on ny-journalpost
</li
>
458 <li
>Better handling of required values during deserialisation
</li
>
459 <li
>Changed tilknyttetDato (M620) from date to dateTime
</li
>
460 <li
>Corrected some opprettetDato (M600) (de)serialisation errors.
</li
>
461 <li
>Improve parse error reporting.
</li
>
462 <li
>Started on OData search and filtering.
</li
>
463 <li
>Added Contributor Covenant Code of Conduct to project.
</li
>
464 <li
>Moved repository and project from Github to Gitlab.
</li
>
465 <li
>Restructured repository, moved code into src/ and web/.
</li
>
466 <li
>Updated code to use Spring Boot version
2.
</li
>
467 <li
>Added support for OAuth2 authentication.
</li
>
468 <li
>Fixed several bugs discovered by Coverity.
</li
>
469 <li
>Corrected handling of date/datetime fields.
</li
>
470 <li
>Improved error reporting when rejecting during deserializatoin.
</li
>
471 <li
>Adjusted default values provided for ny-arkivdel, ny-mappe,
472 ny-saksmappe, ny-journalpost and ny-dokumentbeskrivelse.
</li
>
473 <li
>Several fixes for korrespondansepart*.
</li
>
474 <li
>Updated web GUI:
476 <li
>Now handle both file upload and download.
</li
>
477 <li
>Uses new OAuth2 authentication for login.
</li
>
478 <li
>Forms now fetches default values from API using GET.
</li
>
479 <li
>Added RFC
822 (email), TIFF and JPEG to list of possible file formats.
</li
>
480 </ul
></li
>
483 <p
>The changes and improvements are extensive. Running diffstat on
484 the changes between git tab
0.1.1 and
0.2 show
1098 files changed,
485 108666 insertions(+),
54066 deletions(-).
</p
>
487 <p
>If free and open standardized archiving API sound interesting to
488 you, please contact us on IRC
489 (
<a href=
"irc://irc.freenode.net/%
23nikita
">#nikita on
490 irc.freenode.net
</a
>) or email
491 (
<a href=
"https://lists.nuug.no/mailman/listinfo/nikita-noark
">nikita-noark
492 mailing list
</a
>).
</p
>
494 <p
>As usual, if you use Bitcoin and want to show your support of my
495 activities, please send Bitcoin donations to my address
496 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
501 <title>Fetching trusted timestamps using the rfc3161ng python module
</title>
502 <link>http://people.skolelinux.org/pere/blog/Fetching_trusted_timestamps_using_the_rfc3161ng_python_module.html
</link>
503 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Fetching_trusted_timestamps_using_the_rfc3161ng_python_module.html
</guid>
504 <pubDate>Mon,
8 Oct
2018 12:
30:
00 +
0200</pubDate>
505 <description><p
>I have earlier covered the basics of trusted timestamping using the
506 'openssl ts
' client. See blog post for
507 <a href=
"http://people.skolelinux.org/pere/blog/Public_Trusted_Timestamping_services_for_everyone.html
">2014</a
>,
508 <a href=
"http://people.skolelinux.org/pere/blog/syslog_trusted_timestamp___chain_of_trusted_timestamps_for_your_syslog.html
">2016</a
>
510 <a href=
"http://people.skolelinux.org/pere/blog/Idea_for_storing_trusted_timestamps_in_a_Noark_5_archive.html
">2017</a
>
511 for those stories. But some times I want to integrate the timestamping
512 in other code, and recently I needed to integrate it into Python.
513 After searching a bit, I found
514 <a href=
"https://dev.entrouvert.org/projects/python-rfc3161
">the
515 rfc3161 library
</a
> which seemed like a good fit, but I soon
516 discovered it only worked for python version
2, and I needed something
517 that work with python version
3. Luckily I next came across
518 <a href=
"https://github.com/trbs/rfc3161ng/
">the rfc3161ng library
</a
>,
519 a fork of the original rfc3161 library. Not only is it working with
520 python
3, it have fixed a few of the bugs in the original library, and
521 it has an active maintainer. I decided to wrap it up and make it
522 <a href=
"https://tracker.debian.org/pkg/python-rfc3161ng
">available in
523 Debian
</a
>, and a few days ago it entered Debian unstable and testing.
</p
>
525 <p
>Using the library is fairly straight forward. The only slightly
526 problematic step is to fetch the required certificates to verify the
527 timestamp. For some services it is straight forward, while for others
528 I have not yet figured out how to do it. Here is a small standalone
529 code example based on of the integration tests in the library code:
</p
>
536 Python
3 script demonstrating how to use the rfc3161ng module to
537 get trusted timestamps.
539 The license of this code is the same as the license of the rfc3161ng
545 import pyasn1.codec.der
549 import urllib.request
556 def fetch(url, f=None):
557 response = urllib.request.urlopen(url)
558 data = response.read()
564 with tempfile.NamedTemporaryFile() as cert_f,\
565 tempfile.NamedTemporaryFile() as ca_f,\
566 tempfile.NamedTemporaryFile() as msg_f,\
567 tempfile.NamedTemporaryFile() as tsr_f:
569 # First fetch certificates used by service
570 certificate_data = fetch(
'https://freetsa.org/files/tsa.crt
', cert_f)
571 ca_data_data = fetch(
'https://freetsa.org/files/cacert.pem
', ca_f)
573 # Then timestamp the message
575 rfc3161ng.RemoteTimestamper(
'http://freetsa.org/tsr
',
576 certificate=certificate_data)
577 data = b
"Python forever!\n
"
578 tsr = timestamper(data=data, return_tsr=True)
580 # Finally, convert message and response to something
'openssl ts
' can verify
582 store(tsr_f, pyasn1.codec.der.encoder.encode(tsr))
583 args = [
"openssl
",
"ts
",
"-verify
",
584 "-data
", msg_f.name,
585 "-in
", tsr_f.name,
586 "-CAfile
", ca_f.name,
587 "-untrusted
", cert_f.name]
588 subprocess.check_call(args)
590 if
'__main__
' == __name__:
594 <p
>The code fetches the required certificates, store them as temporary
595 files, timestamp a simple message, store the message and timestamp to
596 disk and ask
'openssl ts
' to verify the timestamp. A timestamp is
597 around
1.5 kiB in size, and should be fairly easy to store for future
600 <p
>As usual, if you use Bitcoin and want to show your support of my
601 activities, please send Bitcoin donations to my address
602 <b
><a href=
"bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a
></b
>.
</p
>
607 <title>Release
0.1.1 of free software archive system Nikita announced
</title>
608 <link>http://people.skolelinux.org/pere/blog/Release_0_1_1_of_free_software_archive_system_Nikita_announced.html
</link>
609 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Release_0_1_1_of_free_software_archive_system_Nikita_announced.html
</guid>
610 <pubDate>Sat,
10 Jun
2017 00:
40:
00 +
0200</pubDate>
611 <description><p
>I am very happy to report that the
612 <a href=
"https://github.com/hiOA-ABI/nikita-noark5-core
">Nikita Noark
5
613 core project
</a
> tagged its second release today. The free software
614 solution is an implementation of the Norwegian archive standard Noark
615 5 used by government offices in Norway. These were the changes in
616 version
0.1.1 since version
0.1.0 (from NEWS.md):
620 <li
>Continued work on the angularjs GUI, including document upload.
</li
>
621 <li
>Implemented correspondencepartPerson, correspondencepartUnit and
622 correspondencepartInternal
</li
>
623 <li
>Applied for coverity coverage and started submitting code on
624 regualr basis.
</li
>
625 <li
>Started fixing bugs reported by coverity
</li
>
626 <li
>Corrected and completed HATEOAS links to make sure entire API is
627 available via URLs in _links.
</li
>
628 <li
>Corrected all relation URLs to use trailing slash.
</li
>
629 <li
>Add initial support for storing data in ElasticSearch.
</li
>
630 <li
>Now able to receive and store uploaded files in the archive.
</li
>
631 <li
>Changed JSON output for object lists to have relations in _links.
</li
>
632 <li
>Improve JSON output for empty object lists.
</li
>
633 <li
>Now uses correct MIME type application/vnd.noark5-v4+json.
</li
>
634 <li
>Added support for docker container images.
</li
>
635 <li
>Added simple API browser implemented in JavaScript/Angular.
</li
>
636 <li
>Started on archive client implemented in JavaScript/Angular.
</li
>
637 <li
>Started on prototype to show the public mail journal.
</li
>
638 <li
>Improved performance by disabling Sprint FileWatcher.
</li
>
639 <li
>Added support for
'arkivskaper
',
'saksmappe
' and
'journalpost
'.
</li
>
640 <li
>Added support for some metadata codelists.
</li
>
641 <li
>Added support for Cross-origin resource sharing (CORS).
</li
>
642 <li
>Changed login method from Basic Auth to JSON Web Token (RFC
7519)
644 <li
>Added support for GET-ing ny-* URLs.
</li
>
645 <li
>Added support for modifying entities using PUT and eTag.
</li
>
646 <li
>Added support for returning XML output on request.
</li
>
647 <li
>Removed support for English field and class names, limiting ourself
648 to the official names.
</li
>
649 <li
>...
</li
>
653 <p
>If this sound interesting to you, please contact us on IRC (#nikita
654 on irc.freenode.net) or email
655 (
<a href=
"https://lists.nuug.no/mailman/listinfo/nikita-noark
">nikita-noark
656 mailing list).
</p
>
661 <title>Idea for storing trusted timestamps in a Noark
5 archive
</title>
662 <link>http://people.skolelinux.org/pere/blog/Idea_for_storing_trusted_timestamps_in_a_Noark_5_archive.html
</link>
663 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Idea_for_storing_trusted_timestamps_in_a_Noark_5_archive.html
</guid>
664 <pubDate>Wed,
7 Jun
2017 21:
40:
00 +
0200</pubDate>
665 <description><p
><em
>This is a copy of
666 <a href=
"https://lists.nuug.no/pipermail/nikita-noark/
2017-June/
000297.html
">an
667 email I posted to the nikita-noark mailing list
</a
>. Please follow up
668 there if you would like to discuss this topic. The background is that
669 we are making a free software archive system based on the Norwegian
670 <a href=
"https://www.arkivverket.no/forvaltning-og-utvikling/regelverk-og-standarder/noark-standarden
">Noark
671 5 standard
</a
> for government archives.
</em
></p
>
673 <p
>I
've been wondering a bit lately how trusted timestamps could be
675 <a href=
"https://en.wikipedia.org/wiki/Trusted_timestamping
">Trusted
676 timestamps
</a
> can be used to verify that some information
677 (document/file/checksum/metadata) have not been changed since a
678 specific time in the past. This is useful to verify the integrity of
679 the documents in the archive.
</p
>
681 <p
>Then it occured to me, perhaps the trusted timestamps could be
682 stored as dokument variants (ie dokumentobjekt referered to from
683 dokumentbeskrivelse) with the filename set to the hash it is
686 <p
>Given a
"dokumentbeskrivelse
" with an associated
"dokumentobjekt
",
687 a new dokumentobjekt is associated with
"dokumentbeskrivelse
" with the
688 same attributes as the stamped dokumentobjekt except these
689 attributes:
</p
>
693 <li
>format -
> "RFC3161
"
694 <li
>mimeType -
> "application/timestamp-reply
"
695 <li
>formatDetaljer -
> "&lt;source URL for timestamp service
&gt;
"
696 <li
>filenavn -
> "&lt;sjekksum
&gt;.tsr
"
700 <p
>This assume a service following
701 <a href=
"https://tools.ietf.org/html/rfc3161
">IETF RFC
3161</a
> is
702 used, which specifiy the given MIME type for replies and the .tsr file
703 ending for the content of such trusted timestamp. As far as I can
704 tell from the Noark
5 specifications, it is OK to have several
705 variants/renderings of a dokument attached to a given
706 dokumentbeskrivelse objekt. It might be stretching it a bit to make
707 some of these variants represent crypto-signatures useful for
708 verifying the document integrity instead of representing the dokument
711 <p
>Using the source of the service in formatDetaljer allow several
712 timestamping services to be used. This is useful to spread the risk
713 of key compromise over several organisations. It would only be a
714 problem to trust the timestamps if all of the organisations are
715 compromised.
</p
>
717 <p
>The following oneliner on Linux can be used to generate the tsr
718 file. $input is the path to the file to checksum, and $sha256 is the
719 SHA-
256 checksum of the file (ie the
"<sjekksum
>.tsr
" value mentioned
722 <p
><blockquote
><pre
>
723 openssl ts -query -data
"$inputfile
" -cert -sha256 -no_nonce \
724 | curl -s -H
"Content-Type: application/timestamp-query
" \
725 --data-binary
"@-
" http://zeitstempel.dfn.de
> $sha256.tsr
726 </pre
></blockquote
></p
>
728 <p
>To verify the timestamp, you first need to download the public key
729 of the trusted timestamp service, for example using this command:
</p
>
731 <p
><blockquote
><pre
>
732 wget -O ca-cert.txt \
733 https://pki.pca.dfn.de/global-services-ca/pub/cacert/chain.txt
734 </pre
></blockquote
></p
>
736 <p
>Note, the public key should be stored alongside the timestamps in
737 the archive to make sure it is also available
100 years from now. It
738 is probably a good idea to standardise how and were to store such
739 public keys, to make it easier to find for those trying to verify
740 documents
100 or
1000 years from now. :)
</p
>
742 <p
>The verification itself is a simple openssl command:
</p
>
744 <p
><blockquote
><pre
>
745 openssl ts -verify -data $inputfile -in $sha256.tsr \
746 -CAfile ca-cert.txt -text
747 </pre
></blockquote
></p
>
749 <p
>Is there any reason this approach would not work? Is it somehow against
750 the Noark
5 specification?
</p
>
755 <title>Epost inn som arkivformat i Riksarkivarens forskrift?
</title>
756 <link>http://people.skolelinux.org/pere/blog/Epost_inn_som_arkivformat_i_Riksarkivarens_forskrift_.html
</link>
757 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Epost_inn_som_arkivformat_i_Riksarkivarens_forskrift_.html
</guid>
758 <pubDate>Thu,
27 Apr
2017 11:
30:
00 +
0200</pubDate>
759 <description><p
>I disse dager, med frist
1. mai, har Riksarkivaren ute en høring på
760 sin forskrift. Som en kan se er det ikke mye tid igjen før fristen
761 som går ut på søndag. Denne forskriften er det som lister opp hvilke
762 formater det er greit å arkivere i
763 <a href=
"http://www.arkivverket.no/arkivverket/Offentleg-forvalting/Noark/Noark-
5">Noark
764 5-løsninger
</a
> i Norge.
</p
>
766 <p
>Jeg fant høringsdokumentene hos
767 <a href=
"https://www.arkivrad.no/aktuelt/riksarkivarens-forskrift-pa-horing
">Norsk
768 Arkivråd
</a
> etter å ha blitt tipset på epostlisten til
769 <a href=
"https://github.com/hiOA-ABI/nikita-noark5-core
">fri
770 programvareprosjektet Nikita Noark5-Core
</a
>, som lager et Noark
5
771 Tjenestegresesnitt. Jeg er involvert i Nikita-prosjektet og takket
772 være min interesse for tjenestegrensesnittsprosjektet har jeg lest en
773 god del Noark
5-relaterte dokumenter, og til min overraskelse oppdaget
774 at standard epost ikke er på listen over godkjente formater som kan
775 arkiveres. Høringen med frist søndag er en glimrende mulighet til å
776 forsøke å gjøre noe med det. Jeg holder på med
777 <a href=
"https://github.com/petterreinholdtsen/noark5-tester/blob/master/docs/hoering-arkivforskrift.tex
">egen
778 høringsuttalelse
</a
>, og lurer på om andre er interessert i å støtte
779 forslaget om å tillate arkivering av epost som epost i arkivet.
</p
>
781 <p
>Er du igang med å skrive egen høringsuttalelse allerede? I så fall
782 kan du jo vurdere å ta med en formulering om epost-lagring. Jeg tror
783 ikke det trengs så mye. Her et kort forslag til tekst:
</p
>
785 <p
><blockquote
>
787 <p
>Viser til høring sendt ut
2017-
02-
17 (Riksarkivarens referanse
788 2016/
9840 HELHJO), og tillater oss å sende inn noen innspill om
789 revisjon av Forskrift om utfyllende tekniske og arkivfaglige
790 bestemmelser om behandling av offentlige arkiver (Riksarkivarens
791 forskrift).
</p
>
793 <p
>Svært mye av vår kommuikasjon foregår i dag på e-post. Vi
794 foreslår derfor at Internett-e-post, slik det er beskrevet i IETF
796 <a href=
"https://tools.ietf.org/html/rfc5322
">https://tools.ietf.org/html/rfc5322
</a
>. bør
797 inn som godkjent dokumentformat. Vi foreslår at forskriftens
798 oversikt over godkjente dokumentformater ved innlevering i §
5-
16
799 endres til å ta med Internett-e-post.
</p
>
801 </blockquote
></p
>
803 <p
>Som del av arbeidet med tjenestegrensesnitt har vi testet hvordan
804 epost kan lagres i en Noark
5-struktur, og holder på å skrive et
805 forslag om hvordan dette kan gjøres som vil bli sendt over til
806 arkivverket så snart det er ferdig. De som er interesserte kan
807 <a href=
"https://github.com/petterreinholdtsen/noark5-tester/blob/master/docs/epostlagring.md
">følge
808 fremdriften på web
</a
>.
</p
>
810 <p
>Oppdatering
2017-
04-
28: I dag ble høringuttalelsen jeg skrev
811 <a href=
"https://www.nuug.no/news/NUUGs_h_ringuttalelse_til_Riksarkivarens_forskrift.shtml
">sendt
812 inn av foreningen NUUG
</a
>.
</p
>
817 <title>Free software archive system Nikita now able to store documents
</title>
818 <link>http://people.skolelinux.org/pere/blog/Free_software_archive_system_Nikita_now_able_to_store_documents.html
</link>
819 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Free_software_archive_system_Nikita_now_able_to_store_documents.html
</guid>
820 <pubDate>Sun,
19 Mar
2017 08:
00:
00 +
0100</pubDate>
821 <description><p
>The
<a href=
"https://github.com/hiOA-ABI/nikita-noark5-core
">Nikita
822 Noark
5 core project
</a
> is implementing the Norwegian standard for
823 keeping an electronic archive of government documents.
824 <a href=
"http://www.arkivverket.no/arkivverket/Offentlig-forvaltning/Noark/Noark-
5/English-version
">The
825 Noark
5 standard
</a
> document the requirement for data systems used by
826 the archives in the Norwegian government, and the Noark
5 web interface
827 specification document a REST web service for storing, searching and
828 retrieving documents and metadata in such archive. I
've been involved
829 in the project since a few weeks before Christmas, when the Norwegian
831 <a href=
"https://www.nuug.no/news/NOARK5_kjerne_som_fri_programvare_f_r_epostliste_hos_NUUG.shtml
">announced
832 it supported the project
</a
>. I believe this is an important project,
833 and hope it can make it possible for the government archives in the
834 future to use free software to keep the archives we citizens depend
835 on. But as I do not hold such archive myself, personally my first use
836 case is to store and analyse public mail journal metadata published
837 from the government. I find it useful to have a clear use case in
838 mind when developing, to make sure the system scratches one of my
841 <p
>If you would like to help make sure there is a free software
842 alternatives for the archives, please join our IRC channel
843 (
<a href=
"irc://irc.freenode.net/%
23nikita
">#nikita on
844 irc.freenode.net
</a
>) and
845 <a href=
"https://lists.nuug.no/mailman/listinfo/nikita-noark
">the
846 project mailing list
</a
>.
</p
>
848 <p
>When I got involved, the web service could store metadata about
849 documents. But a few weeks ago, a new milestone was reached when it
850 became possible to store full text documents too. Yesterday, I
851 completed an implementation of a command line tool
852 <tt
>archive-pdf
</tt
> to upload a PDF file to the archive using this
853 API. The tool is very simple at the moment, and find existing
854 <a href=
"https://en.wikipedia.org/wiki/Fonds
">fonds
</a
>, series and
855 files while asking the user to select which one to use if more than
856 one exist. Once a file is identified, the PDF is associated with the
857 file and uploaded, using the title extracted from the PDF itself. The
858 process is fairly similar to visiting the archive, opening a cabinet,
859 locating a file and storing a piece of paper in the archive. Here is
860 a test run directly after populating the database with test data using
861 our API tester:
</p
>
863 <p
><blockquote
><pre
>
864 ~/src//noark5-tester$ ./archive-pdf mangelmelding/mangler.pdf
865 using arkiv: Title of the test fonds created
2017-
03-
18T23:
49:
32.103446
866 using arkivdel: Title of the test series created
2017-
03-
18T23:
49:
32.103446
868 0 - Title of the test case file created
2017-
03-
18T23:
49:
32.103446
869 1 - Title of the test file created
2017-
03-
18T23:
49:
32.103446
870 Select which mappe you want (or search term):
0
871 Uploading mangelmelding/mangler.pdf
872 PDF title: Mangler i spesifikasjonsdokumentet for NOARK
5 Tjenestegrensesnitt
873 File
2017/
1: Title of the test case file created
2017-
03-
18T23:
49:
32.103446
874 ~/src//noark5-tester$
875 </pre
></blockquote
></p
>
877 <p
>You can see here how the fonds (arkiv) and serie (arkivdel) only had
878 one option, while the user need to choose which file (mappe) to use
879 among the two created by the API tester. The
<tt
>archive-pdf
</tt
>
880 tool can be found in the git repository for the API tester.
</p
>
882 <p
>In the project, I have been mostly working on
883 <a href=
"https://github.com/petterreinholdtsen/noark5-tester
">the API
884 tester
</a
> so far, while getting to know the code base. The API
886 <a href=
"https://en.wikipedia.org/wiki/HATEOAS
">the HATEOAS links
</a
>
887 to traverse the entire exposed service API and verify that the exposed
888 operations and objects match the specification, as well as trying to
889 create objects holding metadata and uploading a simple XML file to
890 store. The tester has proved very useful for finding flaws in our
891 implementation, as well as flaws in the reference site and the
892 specification.
</p
>
894 <p
>The test document I uploaded is a summary of all the specification
895 defects we have collected so far while implementing the web service.
896 There are several unclear and conflicting parts of the specification,
898 <a href=
"https://github.com/petterreinholdtsen/noark5-tester/tree/master/mangelmelding
">started
899 writing down
</a
> the questions we get from implementing it. We use a
900 format inspired by how
<a href=
"http://www.opengroup.org/austin/
">The
901 Austin Group
</a
> collect defect reports for the POSIX standard with
902 <a href=
"http://www.opengroup.org/austin/mantis.html
">their
903 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
> :).
905 <p
>The Nikita project is implemented using Java and Spring, and is
906 fairly easy to get up and running using Docker containers for those
907 that want to test the current code base. The API tester is
908 implemented in Python.
</p
>
913 <title>Hva «mangler» i OEP - litt statistikk utledet fra saksnummer og dokumentnummer
</title>
914 <link>http://people.skolelinux.org/pere/blog/Hva__mangler__i_OEP___litt_statistikk_utledet_fra_saksnummer_og_dokumentnummer.html
</link>
915 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Hva__mangler__i_OEP___litt_statistikk_utledet_fra_saksnummer_og_dokumentnummer.html
</guid>
916 <pubDate>Thu,
29 Jan
2015 20:
30:
00 +
0100</pubDate>
917 <description><p
>En ting jeg har lurt på når det gjelder offentlige postjournaler,
918 er hvor stor andel av det som ligger i de interne databasene kommer
919 ikke med i postjournalen. Dette er det mulig å finne ut basert på det
920 som ligger i postjournalen. For å forstå hva jeg mener, trengs det
921 litt bakgrunnsinformasjon. I henhold til
922 <a href=
"http://www.arkivverket.no/arkivverket/Offentleg-forvalting/Noark
">NOARK-standarden
</a
>
923 for norske offentlige arkiv skal enhver sak ha et årstall og et
924 løpenummer, og ethvert dokument i saken skal gis et
925 dokument-løpenummer. Det vil si at en ender opp med dokument-ID som
926 ser ut som ÅÅÅÅ/SAKNR-DOKNR, f.eks.
2014/
2-
1 eller
2014/
12312-
14.
927 Mange oppgir kun tosifret årstall, men prinsippet er det samme. Så
928 vidt jeg vet skal saksnummer og dokumentnummer tildeles løpende og i
929 stigende rekkefølge. Gitt en instans med følgende dokument-ID i
930 postjournalen, så kan en regne ut hvor mye som ikke finnes i
934 <li
>2014/
2-
1</li
>
935 <li
>2014/
5-
1</li
>
936 <li
>2014/
5-
3</li
>
939 <p
>Her ser en at saksnummer
2 og
5 finnes i postjournalen, mens
940 nummerene
1,
3 og
4 mangler. En ser også at i sak
2014/
5 mangler
941 dokument
2. Ved hjelp av denne informasjonen har jeg regnet ut hvor
942 stor andel av saksnummer og dokumentløpenummer som ikke har dukket opp
943 i
<a href=
"https://www.oep.no/
">Offentlig Elektronisk Postjournal
</a
>
944 (OEP). For saksnummer har jeg tatt utgangspunkt i at en ikke trenger
945 å starte på
1, og dermed regnet med området fra laveste til høyeste
946 saksnummer og talt antall unike saksnummer som forekommer i OEP. I
947 dette tilfellet betyr de at
2 av
4 saksnummer er ubrukte (
50%). For
948 dokumentløpenummer har jeg tilsvarende tatt utgangspunkt i laveste og
949 høyeste kjente dokumentløpenummer, for å handtere databaser der jeg
950 mangler komplett postjournal. For sak
2014/
5 her betyr det at
1 av
3
951 dokumenter mangler (
33%).
</p
>
953 <p
>Det er flere årsaker til at det kan bli hull i nummerseriene.
954 Feilføring der et dokument tildeles et nytt saksnummer ved en feil, og
955 deretter flyttes inn i riktig sak vil gi et ubrukt saksnummer, da
956 saksnummer skal tildeles i stigende rekkefølge og en ikke får opprette
957 nye saker innimellom gamle saker. Tilsvarende kan skje med
958 dokument-løpenummer. Det er jo heller ikke sikkert at et saksnummer i
959 OEP er det samme som løpenummeret som brukes som saksnummeret i
960 instansens interne datasystem. Kanskje snakker vi om ulike ontologier
961 der en delmengde av interne saksnummer tilsvarer saksnummer i OEP.
962 Hvis like nummer også tildeles andre ting enn saker som skal til OEP
963 vil en tilsvarende få «hull» i saksnumrene i postjournalen.
</p
>
965 <p
>Jeg er litt usikker på hva denne statistikken egentlig viser, og
966 heller ikke sikker på om det er reelt sett mangler i OEP (som kanskje
967 kunne anses å være kritikkverdig), bare er resultatet av hendelige
968 uhell i nummertildelingen eller resultat av ulik ontologi i OEP og
969 instansens datasystem. Men jeg syntes tallene og variasjonen var så
970 interessant at jeg hadde lyst til å dele dem med mine lesere. Jeg har
971 sortert listen på prosent upubliserte saksnummer for
2014.
</p
>
973 <table border=
"1">
974 <tr
><th colspan=
"6">Saksnummer
</th
><th colspan=
"3">Dokumentnummer
</th
><th rowspan=
"3">Instans
</th
></tr
>
975 <tr
><th colspan=
"3">2014</th
><th colspan=
"3">2013</th
><th colspan=
"3">2014</th
></tr
>
976 <tr
><th
>%
</th
><th
>Upubl. saksnr.
</th
><th
>Totalt
</th
>
977 <th
>%
</th
><th
>Upubl. saksnr
</th
><th
>Totalt
</th
>
978 <th
>%
</th
><th
>Upubl. dok.nr.
</th
><th
>Totalt
</th
>
981 <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
>
982 <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
>
983 <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
>
984 <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
>
985 <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
>
986 <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
>
987 <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
>
988 <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
>
989 <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
>
990 <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
>
991 <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
>
992 <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
>
993 <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
>
994 <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
>
995 <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
>
996 <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
>
997 <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
>
998 <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
>
999 <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
>
1000 <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
>
1001 <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
>
1002 <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
>
1003 <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
>
1004 <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
>
1005 <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
>
1006 <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
>
1007 <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
>
1008 <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
>
1009 <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
>
1010 <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
>
1011 <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
>
1012 <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
>
1013 <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
>
1014 <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
>
1015 <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
>
1016 <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
>
1017 <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
>
1018 <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
>
1019 <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
>
1020 <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
>
1021 <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
>
1022 <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
>
1023 <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
>
1024 <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
>
1025 <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
>
1026 <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
>
1027 <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
>
1028 <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
>
1029 <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
>
1030 <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
>
1031 <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
>
1032 <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
>
1033 <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
>
1034 <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
>
1035 <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
>
1036 <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
>
1037 <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
>
1038 <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
>
1039 <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
>
1040 <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
>
1041 <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
>
1042 <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
>
1043 <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
>
1044 <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
>
1045 <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
>
1046 <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
>
1047 <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
>
1048 <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
>
1049 <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
>
1050 <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
>
1051 <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
>
1052 <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
>
1053 <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
>
1054 <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
>
1055 <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
>
1056 <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
>
1057 <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
>
1058 <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
>
1059 <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
>
1060 <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
>
1061 <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
>
1062 <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
>
1063 <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
>
1064 <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
>
1065 <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
>
1066 <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
>
1067 <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
>
1068 <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
>
1069 <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
>
1070 <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
>
1071 <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
>
1072 <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
>
1073 <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
>
1074 <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
>
1075 <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
>
1076 <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
>
1077 <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
>
1078 <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
>
1079 <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
>
1080 <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
>
1081 <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
>
1082 <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
>
1083 <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
>
1084 <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
>
1085 <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
>
1086 <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
>
1087 <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
>
1088 <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
>
1089 <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
>
1090 <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
>
1091 <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
>
1092 <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
>
1093 <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
>
1094 <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
>
1095 <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
>
1096 <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
>
1097 <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
>
1098 <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
>
1102 <p
>Det kunne vært interessant å se hva som skjedde hvis en ba om
1103 innsyn i en dokument-ID som ikke finnes i OEP... :) Det hadde også
1104 vært interessant å få vite hva årsaken til at noen saksnummer ikke
1105 dukker opp i OEP der det er få og mange. Jeg mistenker jo at årsaken
1106 ikke er den samme hos Skattedirektoratet og hos Landinfo, selv om
1107 andelen upubliserte nummer er ganske lik.
</p
>
1112 <title>Hvordan bør RFC
822-formattert epost lagres i en NOARK5-database?
</title>
1113 <link>http://people.skolelinux.org/pere/blog/Hvordan_b_r_RFC_822_formattert_epost_lagres_i_en_NOARK5_database_.html
</link>
1114 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Hvordan_b_r_RFC_822_formattert_epost_lagres_i_en_NOARK5_database_.html
</guid>
1115 <pubDate>Fri,
7 Mar
2014 15:
20:
00 +
0100</pubDate>
1116 <description><p
>For noen uker siden ble NXCs fri programvarelisenserte
1118 <a href=
"http://www.nuug.no/aktiviteter/
20140211-noark/
">presentert hos
1119 NUUG
</a
> (video
1120 <a href=
"https://www.youtube.com/watch?v=JCb_dNS3MHQ
">på youtube
1121 foreløbig
</a
>), og det fikk meg til å titte litt mer på NOARK5,
1122 standarden for arkivhåndtering i det offentlige Norge. Jeg lurer på
1123 om denne kjernen kan være nyttig i et par av mine prosjekter, og for ett
1124 av dem er det mest aktuelt å lagre epost. Jeg klarte ikke finne noen
1125 anbefaling om hvordan RFC
822-formattert epost (aka Internett-epost)
1126 burde lagres i NOARK5, selv om jeg vet at noen arkiver tar
1127 PDF-utskrift av eposten med sitt epostprogram og så arkiverer PDF-en
1128 (eller enda værre, tar papirutskrift og lagrer bildet av eposten som
1129 PDF i arkivet).
</p
>
1131 <p
>Det er ikke så mange formater som er akseptert av riksarkivet til
1132 langtidsoppbevaring av offentlige arkiver, og PDF og XML er de mest
1133 aktuelle i så måte. Det slo meg at det måtte da finnes en eller annen
1134 egnet XML-representasjon og at det kanskje var enighet om hvilken som
1135 burde brukes, så jeg tok mot til meg og spurte
1136 <a href=
"http://samdok.com/
">SAMDOK
</a
>, en gruppe tilknyttet
1137 arkivverket som ser ut til å jobbe med NOARK-samhandling, om de hadde
1140 <p
><blockquote
>
1141 <p
>Hei.
</p
>
1143 <p
>Usikker på om dette er riktig forum å ta opp mitt spørsmål, men jeg
1144 lurer på om det er definert en anbefaling om hvordan RFC
1145 822-formatterte epost (aka vanlig Internet-epost) bør lages håndteres
1146 i NOARK5, slik at en bevarer all informasjon i eposten
1147 (f.eks. Received-linjer). Finnes det en anbefalt XML-mapping ala den
1149 &lt;URL:
<a href=
"https://www.informit.com/articles/article.aspx?p=
32074">https://www.informit.com/articles/article.aspx?p=
32074</a
> &gt;? Mitt
1150 mål er at det skal være mulig å lagre eposten i en NOARK5-kjerne og
1151 kunne få ut en identisk formattert kopi av opprinnelig epost ved
1153 </blockquote
></p
>
1155 <p
>Postmottaker hos SAMDOK mente spørsmålet heller burde stilles
1156 direkte til riksarkivet, og jeg fikk i dag svar derfra formulert av
1157 seniorrådgiver Geir Ivar Tungesvik:
</p
>
1159 <p
><blockquote
>
1160 <p
>Riksarkivet har ingen anbefalinger når det gjelder konvertering fra
1161 e-post til XML. Det står arkivskaper fritt å eventuelt definere/bruke
1162 eget format. Inklusive da - som det spørres om - et format der det er
1163 mulig å re-etablere e-post format ut fra XML-en. XML (e-post)
1164 dokumenter må være referert i arkivstrukturen, og det må vedlegges et
1165 gyldig XML skjema (.xsd) for XML-filene. Arkivskaper står altså fritt
1166 til å gjøre hva de vil, bare det dokumenteres og det kan dannes et
1167 utrekk ved avlevering til depot.
</p
>
1169 <p
>De obligatoriske kravene i Noark
5 standarden må altså oppfylles -
1170 etter dialog med Riksarkivet i forbindelse med godkjenning. For
1171 offentlige arkiv er det særlig viktig med filene loependeJournal.xml
1172 og offentligJournal.xml. Private arkiv som vil forholde seg til Noark
1173 5 standarden er selvsagt frie til å bruke det som er relevant for dem
1174 av obligatoriske krav.
</p
>
1175 </blockquote
></p
>
1177 <p
>Det ser dermed ut for meg som om det er et lite behov for å
1178 standardisere XML-lagring av RFC-
822-formatterte meldinger. Noen som
1179 vet om god spesifikasjon i så måte? I tillegg til den omtalt over,
1180 har jeg kommet over flere aktuelle beskrivelser (søk på
"rfc
822
1181 xml
", så finner du aktuelle alternativer).
</p
>
1185 <li
><a href=
"http://www.openhealth.org/xmtp/
">XML MIME Transformation
1186 protocol (XMTP)
</a
> fra OpenHealth, sist oppdatert
2001.
</li
>
1188 <li
><a href=
"https://tools.ietf.org/html/draft-klyne-message-rfc822-xml-
03">An
1189 XML format for mail and other messages
</a
> utkast fra IETF datert
1192 <li
><a href=
"http://www.informit.com/articles/article.aspx?p=
32074">xMail:
1193 E-mail as XML
</a
> en artikkel fra
2003 som beskriver python-modulen
1194 rfc822 som gir ut XML-representasjon av en RFC
822-formattert epost.
</li
>
1198 <p
>Finnes det andre og bedre spesifikasjoner for slik lagring? Send
1199 meg en epost hvis du har innspill.
</p
>