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=
"https://people.skolelinux.org/pere/blog/style.css" />
8 <link rel=
"stylesheet" type=
"text/css" media=
"screen" href=
"https://people.skolelinux.org/pere/blog/vim.css" />
9 <link rel=
"alternate" title=
"RSS Feed" href=
"noark5.rss" type=
"application/rss+xml" />
14 <a href=
"https://people.skolelinux.org/pere/blog/">Petter Reinholdtsen
</a>
21 <h3>Entries tagged "noark5".
</h3>
25 <a href=
"https://people.skolelinux.org/pere/blog/Nikita_version_0_6_released___free_software_archive_API_server.html">Nikita version
0.6 released - free software archive API server
</a>
31 <p>I am very pleased to be able to share with you
32 <a href=
"https://lists.nuug.no/pipermail/nikita-noark/2021-June/000576.html">the
33 announcement of a new version of the archiving system Nikita
</a>
34 published by its lead developer Thomas Sødring:
</p>
38 <p>It is with great pleasure that we can announce a new release of
40 (
<a href=
"https://gitlab.com/OsloMet-ABI/nikita-noark5-core">https://gitlab.com/OsloMet-ABI/nikita-noark5-core
</a>). This
41 release makes new record keeping functionality available. This really
42 is a maturity release. Both in terms of functionality but also code.
43 Considerable effort has gone into refactoring the codebase and
44 simplifying the code. Notable changes for this release include:
</p>
48 <li>Significantly improved OData parsing
</li>
49 <li>Support for business specific metadata and national identifiers
</li>
50 <li>Continued implementation of domain model and endpoints
</li>
51 <li>Improved testing
</li>
52 <li>Ability to export and import from arkivstruktur.xml
</li>
56 <p>We are currently in the process of reaching an agreement with an
57 archive institution to publish their picture archive using nikita with
58 business specific metadata and we hope that we can share this with you
59 soon. This is an interesting project as it allows the organisation to
60 bring an older picture archive back to life while using the original
61 metadata values stored as business specific metadata. Combined with
62 OData means the scope and use of the archive is significantly
63 increased and will showcase both the flexibility and power of
66 <p>I really think we are approaching a version
1.0 of nikita, even
67 though there is still a lot of work to be done. The notable work at
68 the moment is to implement access-control and full text indexing of
71 <p>My sincere thanks to everyone who has contributed to this
76 <p><strong>Release
0.6 2021-
06-
10 (d1ba5fc7e8bad0cfdce45ac20354b19d10ebbc7b)
</strong></p>
80 <li>Refactor metadata entity search
</li>
81 <li>Remove redundant security configuration
</li>
82 <li>Make OpenAPI documentation work
</li>
83 <li>Change database structure / inheritance model to a more sensible approach
</li>
84 <li>Make it possible to move entities around the fonds structure
</li>
85 <li>Implemented a number of missing endpoints
</li>
86 <li>Make sure yml files are in sync
</li>
87 <li>Implemented/finalised storing and use of
89 <li>Business Specific Metadata
</li>
90 <li>Norwegian National Identifiers
</li>
91 <li>Cross Reference
</li>
93 <li>StorageLocation
</li>
95 <li>Screening for relevant objects
</li>
99 <li>Make generation of updated docker image part of successful CI pipeline
</li>
100 <li>Implement pagination for all list requests
102 <li>Refactor code to support lists
</li>
103 <li>Refactor code for readability
</li>
104 <li>Standardise the controller/service code
</li>
106 <li>Finalise File-
>CaseFile expansion and Record-
>registryEntry/recordNote
108 <li>Improved Continuous Integration (CI) approach via gitlab
</li>
109 <li>Changed conversion approach to generate tagged PDF documents
</li>
110 <li>Updated dependencies
112 <li>For security reasons
</li>
113 <li>Brought codebase to spring-boot version
2.5.0</li>
114 <li>Remove import of necessary dependencies
</li>
115 <li>Remove non-used metrics classes
</li>
117 <li>Added new analysis to CI including
</li>
118 <li>Implemented storing of Keyword
</li>
119 <li>Implemented storing of Screening and ScreeningMetadata
</li>
120 <li>Improved OData support
122 <li>Better support for inheritance in queries where applicable
</li>
123 <li>Brought in more OData tests
</li>
124 <li>Improved OData/hibernate understanding of queries
</li>
125 <li>Implement $count, $orderby
</li>
126 <li>Finalise $top and $skip
</li>
127 <li>Make sure & is used between query parameters
</li>
129 <li>Improved Testing in codebase
131 <li>A new approach for integration tests to make test more readable
</li>
132 <li>Introduce tests in parallel with code development for TDD approach
</li>
133 <li>Remove test that required particular access to storage
</li>
135 <li>Implement case-handling process from received email to case-handler
137 <li>Develop required GUI elements (digital postroom from email)
</li>
138 <li>Introduced leader, quality control and postroom roles
</li>
140 <li>Make PUT requests return
200 OK not
201 CREATED
</li>
141 <li>Make DELETE requests return
204 NO CONTENT not
200 OK
</li>
142 <li>Replaced 'oppdatert*' with 'endret*' everywhere to match latest spec
</li>
143 <li>Upgrade Gitlab CI to use python
> 3 for CI scripts
</li>
146 <li>Fix missing ALLOW
</li>
147 <li>Fix reading of objects from jar file during start-up
</li>
148 <li>Reduce the number of warnings in the codebase
</li>
149 <li>Fix delete problems
</li>
150 <li>Make better use of cascade for "leaf" objects
</li>
151 <li>Add missing annotations where relevant
</li>
152 <li>Remove the use of ETAG for delete
</li>
153 <li>Fix missing/wrong/broken rels discovered by runtest
</li>
154 <li>Drop unofficial convertFil (konverterFil) end point
</li>
155 <li>Fix regex problem for dateTime
</li>
156 <li>Fix multiple static analysis issues discovered by coverity
</li>
157 <li>Fix proxy problem when looking for object class names
</li>
158 <li>Add many missing translated Norwegian to English (internal)
159 attribute/entity names
</li>
160 <li>Change UUID generation approach to allow code also set a value
</li>
161 <li>Fix problem with Part/PartParson
</li>
162 <li>Fix problem with empty OData search results
</li>
163 <li>Fix metadata entity domain problem
</li>
165 <li>General Improvements
167 <li>Makes future refactoring easier as coupling is reduced
</li>
168 <li>Allow some constant variables to be set from property file
</li>
169 <li>Refactor code to make reflection work better across codebase
</li>
170 <li>Reduce the number of @Service layer classes used in @Controller
172 <li>Be more consistent on naming of similar variable types
</li>
173 <li>Start printing rels/href if they are applicable
</li>
174 <li>Cleaner / standardised approach to deleting objects
</li>
175 <li>Avoid concatenation when using StringBuilder
</li>
176 <li>Consolidate code to avoid duplication
</li>
177 <li>Tidy formatting for a more consistent reading style across
178 similar class files
</li>
179 <li>Make throw a log.error message not an log.info message
</li>
180 <li>Make throw print the log value rather than printing in multiple
182 <li>Add some missing pronom codes
</li>
183 <li>Fix time formatting issue in Gitlab CI
</li>
184 <li>Remove stale / unused code
</li>
185 <li>Use only UUID datatype rather than combination String/UUID for systemID
</li>
186 <li>Mark variables final and @NotNull where relevant to indicate
189 <li>Change Date values to DateTime to maintain compliance with Noark
5
191 <li>Domain model improvements using Hypersistence Optimizer
193 <li>Move @Transactional from class to methods to avoid borrowing the JDBC Connection unnecessarily
</li>
194 <li>Fix OneToOne performance issues
</li>
195 <li>Fix ManyToMany performance issues
</li>
196 <li>Add missing bidirectional synchronization support
</li>
197 <li>Fix ManyToMany performance issue
</li>
199 <li>Make List<
> and Set<
> use final-keyword to avoid potential problems
200 during update operations
</li>
201 <li>Changed internal URLs, replaced "hateoas-api" with "api".
</li>
202 <li>Implemented storing of Precedence.
</li>
203 <li>Corrected handling of screening.
</li>
204 <li>Corrected _links collection returned for list of mixed entity types
205 to match the specific entity.
</li>
206 <li>Improved several internal structures.
</li>
211 <p>If free and open standardized archiving API sound interesting to
212 you, please contact us on IRC
213 (
<a href=
"irc://irc.oftc.net/%23nikita">#nikita on
214 irc.oftc.net
</a>) or email
215 (
<a href=
"https://lists.nuug.no/mailman/listinfo/nikita-noark">nikita-noark
216 mailing list
</a>).
</p>
218 <p>As usual, if you use Bitcoin and want to show your support of my
219 activities, please send Bitcoin donations to my address
220 <b><a href=
"bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a></b>.
</p>
226 Tags:
<a href=
"https://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/noark5">noark5
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/nuug">nuug
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/standard">standard
</a>.
231 <div class=
"padding"></div>
235 <a href=
"https://people.skolelinux.org/pere/blog/Nikita_version_0_5_released___updated_free_software_archive_API_server.html">Nikita version
0.5 released - updated free software archive API server
</a>
241 <p>Today, after many months of development, a new release of
242 <ahref=
"https://gitlab.com/OsloMet-ABI/nikita-noark5-core/">Nikita
243 Noark
5 core project
</a> was finally
244 <ahref=
"https://lists.nuug.no/pipermail/nikita-noark/2020-March/000519.html">announced
245 on the project mailing list
</a>. The Nikita free software solution is
246 an implementation of the Norwegian archive standard Noark
5 used by
247 government offices in Norway. These were the changes in version
0.5
248 since version
0.4, see the email link above for links to a demo
253 <li>Updated to Noark
5 versjon
5.0 API specification.
255 <li>Changed formatting of _links from [] to {} to match IETF draft
257 <li>Merged Registrering og Basisregistrering in version
4 to
258 combined Registrering.
</li>
259 <li>DokumentObjekt is now subtype of ArkivEnhet.
</li>
260 <li>Introducing new entity Arkivnotat.
</li>
261 <li>Changed all relation keys to use /v5/ instead of /v4/.
</li>
262 <li>Corrected to use new official relation keys when possible.
</li>
263 <li>Renamed Sakspart to Part and connect it to Mappe, Registrering
264 and Dokumentbeskrivelse instead of only Saksmappe.
</li>
265 <li>Moved Korrespondansepart connection from Journalpost to
267 <li>Moved Part and Korrespondansepart from package sakarkiv to
269 <li>Renamed presedensstatus to presedensStatus.
</li>
270 <li>Use new JSON content-type "application/vnd.noark5+json".
</li>
271 <li>Updated prepopulated format list to use PRONOM codes.
</li>
272 <li>Implemented endpoint for system information.
</li>
273 <li>Implemented national identifiers for both file and record.
</li>
274 <li>Implemented comments.
</li>
275 <li>implemented sign off.
</li>
276 <li>implemented conversion.
</li>
278 <li>Improved/implemented OData search and paging support for more entities.
</li>
279 <li>No longer exposes attribute Dokumentobjekt.referanseDokumentfil,
280 one should use the relation in _links instead.
</li>
281 <li>Corrected relation keys under
282 https://rel.arkivverket.no/noark5/v5/api/administrasjon/, replacing
283 'administrasjon' with 'admin'.
</li>
284 <li>Fixed several security and stability issues discovered by Coverity.
</li>
285 <li>Corrected handling ETag errors, now return code
409.
</li>
286 <li>Improved handling of Kryssreferanse.
</li>
287 <li>Changed internal database model to use UUID/SystemID as primary keys
289 <li>Changed internal database table names to use package prefix.
</li>
290 <li>Changed time zone handling for date and datetime attributes, to be
291 more according to the new definition in the API specification.
</li>
292 <li>Change revoke-token to only drop token on POST requests, not GET.
</li>
293 <li>Updated to newer Spring version.
</li>
294 <li>Changed primary key and URL component for metadata code lists to
295 use the 'kode' value instead of a SystemID.
</li>
296 <li>Corrected implementation of Part and Sakspart.
</li>
297 <li>Changed instance lists with subtypes (like .../registrering/ and
298 .../mappe/) to include the attributes and _links entries for the
299 subtype in the supertype lists.
</li>
300 <li>Adjusted _links relations to make it possible to figure out the
301 entity of an instance using the self-
>href-
>relation key lookup
303 <li>Fixed several end points to make sure GET, PUT, POST and DELETE
304 match each other.
</li>
305 <li>Updated DELETE endpoints to work with UUID based entity
307 <li>Restructured code to use more common URL related constants in entry
308 point values and replace @RequestMapping with method specific
310 <li>Added first unit test code.
</li>
311 <li>Updated web GUI to work with the updated API.
</li>
312 <li>Changed integer fields, enforce them as numeric.
</li>
313 <li>Rewrote and simplify metadata handling to use common service and
314 controller code instead of duplicating for each type.
</li>
315 <li>Implemented the remaining metadata types.
</li>
316 <li>Changed Country list source from Wikipedia to Debian iso-codes and
317 updated the list of Countries.
</li>
318 <li>Many many corrections and improvements.
</li>
322 <p>If free and open standardized archiving API sound interesting to
323 you, please contact us on IRC
324 (
<a href=
"irc://irc.freenode.net/%23nikita">#nikita on
325 irc.freenode.net
</a>) or email
326 (
<a href=
"https://lists.nuug.no/mailman/listinfo/nikita-noark">nikita-noark
327 mailing list
</a>).
</p>
329 <p>As usual, if you use Bitcoin and want to show your support of my
330 activities, please send Bitcoin donations to my address
331 <b><a href=
"bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a></b>.
</p>
337 Tags:
<a href=
"https://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/noark5">noark5
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/nuug">nuug
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/standard">standard
</a>.
342 <div class=
"padding"></div>
346 <a href=
"https://people.skolelinux.org/pere/blog/Blockchain_and_IoT_articles_accepted_into_Records_Management_Journal.html">Blockchain and IoT articles accepted into Records Management Journal
</a>
352 <p>On Tuesday, two scietific articles we have been working on for a
353 while, was finally accepted for publication into
354 <a href=
"https://www.emerald.com/insight/publication/issn/0956-5698">Records
355 Management Journal
</a>. Still waiting for the assigned DOI urls to
356 start working, but you can have a look at the LaTeX originals here.
</p>
358 <p>The first article is
359 "
<a href=
"http://people.skolelinux.org/pere/blog/images/2020-02-25-rmj-iot-record-keeping.pdf">A
360 record-keeping approach to managing IoT-data for government
361 agencies
</a>" (<a href="https://doi.org/
10.1108/RMJ-
09-
2019-
0050">DOI
362 10.1108/RMJ-09-2019-0050<a/>) by Thomas Sødring, Petter Reinholdtsen
363 and David Massey, and sketches some approaches for storing measurement
364 data (aka Internet of Things sensor data) in a archive, thus providing
365 a well defined mechanism for screening and deletion of the information </p>
367 <p>The second article is
368 "<a href=
"http://people.skolelinux.org/pere/blog/images/2020-02-25-rmj-block-chain-record-keeping.pdf">Publishing
369 and using record-keeping structural information in a blockchain
</a>"
370 (<a href="https://doi.org/
10.1108/RMJ-
09-
2019-
0056">DOI
371 10.1108/RMJ-09-2019-0056</a>) by Thomas Sødring, Petter Reinholdtsen
372 and Svein Ølnes, where we describe a way for third parties to validate
373 authenticity and thus improve trust in the records kept in a
376 <p>As usual, if you use Bitcoin and want to show your support of my
377 activities, please send Bitcoin donations to my address
378 <b><a href="bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p>
380 <p><strong>Update 2020-04-26</strong>: Initially managed to swap the
381 DOI numbers. Fixed it.</p>
387 Tags: <a href="https://people.skolelinux.org/pere/blog/tags/english
">english</a>, <a href="https://people.skolelinux.org/pere/blog/tags/noark5
">noark5</a>.
392 <div class="padding
"></div>
396 <a href="https://people.skolelinux.org/pere/blog/Redaksjon_p__plass_for_Noark_5_tjenestegrensesnitt.html
">Redaksjon på plass for Noark 5 tjenestegrensesnitt</a>
402 <p>Arbeidet med å lage et godt, fritt og åpent standardisert maskinelt
403 grensesnitt for arkivering, med tilhørende fri
404 programvareimplementasjon fortsetter. Jeg snakker om
405 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard
">Noark
406 5 Tjenestegrensesnitt</a> og
407 <a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core/
">Nikita</a>.
409 <a href="https://www.nuug.no/aktiviteter/
20200127-noark-seminar/
">seminaret
410 for noen dager siden</a>, er vi i Nikita-prosjektet har fått beskjed
411 fra Arkivverket at det blir satt ned en redaksjon for å videreutvikle
412 spesifikasjonen. Redaksjonen består av Mona Danielsen og Anne Sofie
413 Knutsen ved arkivverket, Thomas Sødring ved OsloMet, og meg selv fra
414 NUUG. De to sistenevnte tar seg av de åpenbare forbedringene, mens
415 hele redaksjonen diskuterer tvilstilfeller. Jeg håper dette vil bidra
416 til at vi lykkes i å gjøre denne protokollspesifikasjonen så entydig
417 og klar at den vil bidra til et velfungerende marked for
418 arkivsystemer, og sikre at programmer som trenger å snakke med
419 arkivsystemet kan snakke med enhver implementasjon av
420 API-spesifikasjonen. Nikita er den første implementasjonen, men det
423 <p>Det gjenstår riktig nok endel før vi er i mål, selv om svært mye
424 allerede er på plass. Med innspill og forslag til forbedringer fra
425 alle som vil ha et leverandøruavhengig og fullstendig
426 datamaskinlesbart grensesnitt til arkivet, så tror jeg vi vil
429 <p>Som vanlig, hvis du bruker Bitcoin og ønsker å vise din støtte til
430 det jeg driver med, setter jeg pris på om du sender Bitcoin-donasjoner
432 <b><a href="bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.
433 Merk, betaling med bitcoin er ikke anonymt. :)</p>
439 Tags: <a href="https://people.skolelinux.org/pere/blog/tags/noark5
">noark5</a>, <a href="https://people.skolelinux.org/pere/blog/tags/norsk
">norsk</a>, <a href="https://people.skolelinux.org/pere/blog/tags/standard
">standard</a>.
444 <div class="padding
"></div>
448 <a href="https://people.skolelinux.org/pere/blog/Artikkel_om_Noark_5_Tjenestegrensesnitt_og_Nikita_i_Arkivr_d_nummer_3_for_2019.html
">Artikkel om Noark 5 Tjenestegrensesnitt og Nikita i Arkivråd nummer 3 for 2019</a>
454 <p>Like før julaften ble en artikkel jeg har skrevet om vedlikehold av
455 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard
">Noark
456 5 Tjenestegrensesnitt</a> og Nikita publisert i <a
457 href="https://www.arkivrad.no/arkivrad
">tidsskriftet Arkivråd</a>.
459 <a href="http://people.skolelinux.org/pere/blog/_pen_og_gjennomsiktig_vedlikehold_av_spesifikasjonen_for_Noark_5_Tjenestegrensesnitt.html
">min bloggpost
460 om samme tema</a> som ble publisert 2019-03-11. Jeg oppdaget nettopp
461 at nettsiden til tidsskriftet Arkivråd er oppdatert med siste utgave,
462 og artikkelen dermed er tilgjengelig for alle. Du finner den i
463 <a href="https://www.arkivrad.no/sites/arkivrad/files/arkivrad_03_2019_nett.pdf
">PDF-en
464 til nummer 2019/3 på side 30-33</a>. Jeg håper leserne av
465 tidsskriftet får lyst til å sjekke ut tjenestegrensesnittet og at
466 artikkelen vil gjøre det enklere for flere å bidra til en enda bedre,
467 klarere og mer entydig API-spesifikasjon. Det kan gjøre at
468 <a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core/
">arkivsystemet
469 Nikita</a> kan bli enda bedre når spesifikasjonen forbedres.</p>
471 <p>Som vanlig, hvis du bruker Bitcoin og ønsker å vise din støtte til
472 det jeg driver med, setter jeg pris på om du sender Bitcoin-donasjoner
474 <b><a href="bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.
475 Merk, betaling med bitcoin er ikke anonymt. :)</p>
481 Tags: <a href="https://people.skolelinux.org/pere/blog/tags/noark5
">noark5</a>, <a href="https://people.skolelinux.org/pere/blog/tags/norsk
">norsk</a>, <a href="https://people.skolelinux.org/pere/blog/tags/standard
">standard</a>.
486 <div class="padding
"></div>
490 <a href="https://people.skolelinux.org/pere/blog/Artikkel_om_Nikita_i_Arkheion_nummer_2019_2.html
">Artikkel om Nikita i Arkheion nummer 2019/2</a>
496 <p>Jeg hadde i dag gleden av å oppdage at en artikkel om
497 <a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core/
">arkivsystemet
498 Nikita</a> som vi skrev i sommer, nå er publisert i
499 <a href="http://www.arkheion.no/
">Arkheion, fagtidsskrift for kommunial
500 arkivsektor</a>. Du finner artikkelen på side 30-33 i nummer 2019/2,
501 PDF kan lastes ned fra nettstedet til tidsskriftet. Kanskje
502 publiseringen kan føre til at noen flere får øynene opp for verdien av
503 et åpent standardisert API for arkivering og søk i arkivet.</p>
505 <p>Som vanlig, hvis du bruker Bitcoin og ønsker å vise din støtte til
506 det jeg driver med, setter jeg pris på om du sender Bitcoin-donasjoner
508 <b><a href="bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.
509 Merk, betaling med bitcoin er ikke anonymt. :)</p>
515 Tags: <a href="https://people.skolelinux.org/pere/blog/tags/noark5
">noark5</a>, <a href="https://people.skolelinux.org/pere/blog/tags/norsk
">norsk</a>, <a href="https://people.skolelinux.org/pere/blog/tags/standard
">standard</a>.
520 <div class="padding
"></div>
524 <a href="https://people.skolelinux.org/pere/blog/Oppdatert_Noark_5_Tjenestegrenesnitt_versjon_1_0_for_Noark_5_5_0.html
">Oppdatert Noark 5 Tjenestegrenesnitt versjon 1.0 for Noark 5.5.0</a>
530 <p>Jeg er veldig glad for å kunne fortelle at i går ble ny versjon av
531 <a href="https://www.arkivverket.no/forvaltning-og-utvikling/noark-standarden/noark-
5/tjenestegrensesnitt-noark5
">API-spesifikasjonen
532 for Noark 5 Tjenestegrensesnitt</a> gitt ut. Det så lenge mørkt ut
533 for sjansene for å få inn nødvendige korreksjoner i
534 spesifikasjonsteksten innen rimelig tid, men takket være intens og god
535 innsats fra Mona og Anne Sofie hos Arkivverket de siste ukene, så ble
536 resultatet som ble gitt ut på USAs uavhengighetsdag mye bedre enn jeg
539 <p>Spesifikasjonen er
540 <a href="https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/
">tilgjengelig
541 som markdown-filer i Arkivverkets github-prosjekt for dette</a>, og de
542 aller fleste av forslagene til forbedringer fra oss som holder på med
543 <a href="https://gitlab.com/OsloMet-ABI/nikita-noark5-core
">Nikita-prosjektet</a>
544 kom med i denne nye og oppdaterte spesifikasjonsteksten. Det er
545 fortsatt mye som gjenstår før den er entydig, klar og sikrer samvirke
546 på tvers av leverandører, men utgangspunktet er veldig mye bedre enn
547 forrige versjon fra 2016. Ta gjerne en titt.</p>
549 <p>Ellers må jeg jo si at det var hyggelig å se at min forrige
550 bloggpost om tjenestegrensesnittet fikk en
551 <a href="https://beta.arkivverket.no/post/
186020592045/noark-
5-versjon-
50-tjenestegrensesnitt-
10">lenke
552 fra Arkivverket Beta</a>.</p>
554 <p>Som vanlig, hvis du bruker Bitcoin og ønsker å vise din støtte til
555 det jeg driver med, setter jeg pris på om du sender Bitcoin-donasjoner
557 <b><a href="bitcoin:
15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.
558 Merk, betaling med bitcoin er ikke anonymt. :)</p>
564 Tags: <a href="https://people.skolelinux.org/pere/blog/tags/noark5
">noark5</a>, <a href="https://people.skolelinux.org/pere/blog/tags/norsk
">norsk</a>, <a href="https://people.skolelinux.org/pere/blog/tags/standard
">standard</a>.
569 <div class="padding
"></div>
573 <a href="https://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>
579 <p><em>av Thomas Sødring (OsloMet) og Petter Reinholdtsen (foreningen
582 <p>Nikita Noark 5-kjerne er et fri programvareprosjekt som tar i bruk
583 Arkivverkets spesifikasjonen for Noark 5 Tjenestegrensesnitt og tilbyr
584 et maskinlesbart grensesnitt (arkiv-API) til datasystemer som trenger å
585 arkivere dokumenter og informasjon. I tillegg tilbyr Nikita et
586 nettleserbasert brukergrensesnitt for brukere av arkivet. Dette
587 brukergrensesnittet benytter det maskinlesbare grensesnittet. Noark 5
588 Tjenestegrensesnitt er en ny måte å tenke arkivering, med fokus på
589 automatisering og maskinell behandling av arkivmateriale, i stedet for
590 å fokusere på brukergrensesnitt. En kan tenke på
591 tjenestegrensesnittet som arkivet uten brukergrensesnitt, der flere
592 aktører kan koble til ulike brukergrensesnitt, tilpasset ulike
595 <p>Historisk sett gjorde Noark standarden en veldig bra jobb med
597 papir til digital saksbehandling, men det har kommet til kort på andre
598 områder. Den teknologiske utviklingen har brakt oss ditt at vi kan og
599 skal forvente langt mer fra en arkivkjerne enn før, men det offentlig
600 er ofte konservativ når det gjelder nytenking. For lengst skulle
601 begreper som samvirke mellom datasystemer, metadata, prosess og
602 tjenestegrensesnitt (API) vært dominerende når systemer kjøpes
603 inn. Dessverre er det slik at ikke alle ønsker samvirke mellom
604 datasystemer velkommen, og det kan være trygt å kjøpe «svarte bokser»
605 der du slipper å ta stilling til hvordan man skal få flere systemer
606 til å virke sammen. Men IT-arkitektur er et begrep arkivfolk også
607 begynner å ta inn over seg.</p>
609 <p>Slike systemer for å organisere metadata bør ha nettbaserte
610 tjenestegrensesnitt der brukergrensesnitt er tydelig adskilt fra
611 bakenforliggende system. Det finnes mange rapporter som snakker om å
612 bryte ned siloer i forvaltningen og standardiserte tjenestegrensesnitt
613 er det viktigste virkemiddel mot datasiloer og legger til rette for
614 økt samvirke mellom systemer. Et standardisert tjenestegrensesnitt er
615 et viktig middel for å få systemer til å samhandle da det sikrer at
616 ulike produsenters systemer kan snakke sammen på tvers. Samfunnet
617 fungerer ikke uten standardisering. Vi har alle samme strømstyrke og
618 kontakter i veggene og kjører alle på høyre side av veien i Norge. Det er i en slik
619 sammenheng at prosjektet «Noark 5 Tjenestegrensesnitt» er veldig
620 viktig. Hvis alle leverandører av arkivsystemer forholdt seg til et
621 standardisert tjenestegrensesnitt kunne kostnadene for arkivering
622 reduseres. Tenk deg at du er en kommune som ønsker et fagsystem integrert
623 med arkivløsningen din. I dag må fagsystemleverandøren vite og
624 tilpasse seg den spesifikke versjonen og varianten av arkivløsningen
625 du har. Hvis vi antar at alle leverandører av arkivkjerner har solgt
626 inn enten SOAP eller REST-grensesnitt til kunder de siste 10 årene og
627 det kommer endret versjon av grensesnittet innimellom, så gir det
628 veldig mange forskjellige tjenestegrensesnitt en fagsystemleverandør
629 må forholde seg til. Med 12 leverandører og kvartalsvise oppdateringer
630 kan det potensielt bli 96 ulike varianter hvert eneste år. Det sier
631 seg selv at det blir dyrt. Men det blir faktisk verre. Hvis du senere
632 ønsker å bytte ut arkivsystemet med et annet så er du avhengig å få
633 alle integrasjonene dine laget på nytt. Dette kan gjøre at du velger å
634 forbli hos en dårlig leverandør framfor å skaffe nytt system, fordi
635 det blir for vanskelig og dyrt å bytte. Dermed etableres det «små»
636 monopolsituasjoner som er vanskelig å bryte ut av. Dårlige valg i dag
637 kan ha uante kostander på sikt. I Nikita-prosjektet har vi kun jobbet
638 opp mot Noark 5 Tjenestegrensesnittet. Det har tatt en god del
639 ressurser å sette seg inn i spesifikasjonen og ta den i bruk, spesielt
640 på grunn av uklarheter i spesifikasjonen. Hvis vi måtte gjøre det
641 samme for alle versjoner og varianter av de forskjellige
642 tjenestegrensesnittene ville det blitt veldig tidkrevende og
645 <p>For deg som arkivar er digitalisering og systemer som skal virke
646 sammen en del av den nye hverdagen. Du har kanskje blitt skånet for
647 det ved å kjøpe svarte bokser, men du risikerer at du gjør deg selv en
648 bjørnetjeneste. Det kan oppleves som kjedelig å fortelle kolleger at
649 du skal sette deg inn i et tjenestegrensesnitt, men dette er faktisk
650 veldig spennende. Tjenestegrensesnittet er på en måte blitt levende og
651 det er spesielt et begrep du bør merke deg: OData. Å trekke inn deler
652 av OData-standarden som en måte å filtrere entitetsøk i et arkivsystem
653 var et nyttig trekk i prosjektet. Følgende eksempel er en
654 OData-spørring det går an å sende inn til en standardisert
658 .../sakarkiv/journalpost?filter=contains(tittel, 'nabovarsel')
661 <p>Spørringen over vil hente en liste av alle dine journalposter der
662 tittelen til journalposten inneholder ordet 'nabovarsel'. Alle
663 leverandører som implementerer tjenestegrensesnittet vil måtte tilby
664 dette. Det betyr at hvis du lærer dette språket for et system, vil det
665 være gjeldende for alle. Dette er egentlig en ny måte å søke i
666 arkivdatabasen på og vil være svært nyttig, for eksempel kan søk i
667 tjenestegrensesnittet antagelig brukes til å hente ut offentlig
668 postjournal. I arkivverden pleier vi å like teknologier som er
669 menneskelesbart, da vet vi det er enkelt og nyttig! OData er også
670 viktig fordi det kan bli en ny måte å svare innsynsforespørsler på i
671 tråd med offentlighetsloven § 9, der retten til å kreve innsyn i
672 sammenstilling fra databaser er nedfelt. I dag ser vi
673 forvaltningsorganer som avviser slike krav fordi det «ikke kan gjøres
674 med enkle framgangsmåter». Bruken av OData i tjenestegrensesnittet,
675 sammen med maskinlesbar markeringsformater kan være et viktig bidrag
676 til å åpne arkivene i tråd med prinsippene om en åpen og transparent
679 <p>Standardisering er viktig fordi det <em>kan</em> sikre samvirke.
680 Men den effekten kommer kun hvis standardiseringen sikrer at alle
681 forstår standarden på samme måte, dvs. at den er entydig og klar. En
682 god måte å sikre en entydig og klar spesifikasjon er ved å kreve at
683 det finnes minst to ulike implementasjoner som følger spesifikasjonen
684 og som kan snakke sammen, det vil si at de snakker samme språk, slik
685 IETF krever for alle sine standarder, før spesifikasjonen anses å være
686 ferdig. Tilbakemelding fra miljøet forteller at både leverandører og
687 kunder har et avslappet forhold til Noark 5 Tjenestegrensesnitt og det
688 er så langt kun Evry som har visst offentlig at de har en
689 implementasjon av tjenestegrensesnittet. Evry, HK Data og Fredrikstad
690 kommune er igang med et pilotprosjekt på Noark 5
691 Tjenestegrensesnitt. For å redusere kostnadene for samvirkende
692 datasystemer betraktelig, er det veldig viktig at vi kommer i en
693 situasjon der alle leverandører har sine egne implementasjoner av
694 tjenestegrensesnittet, og at disse oppfører seg likt og i tråd med det
695 som er beskrevet i spesifikasjonen.</p>
697 <p>Det er her fri programvare spiller en viktig rolle. Med en uklar
698 standard blir det som en polsk riksdag, der ingenting fungerer. Nikita
699 er en fri programvareimplementasjon av tjenestegrensesnitt og kan
700 fungere som teknisk referanse slik at leverandører enklere kan se og
701 forstå hvordan standarden skal tolkes. Vi har i Nikitaprosjektet
702 erfart å ende opp med vidt forskjellige tolkninger når
703 prosjektmedlemmene leser spesifikasjonsteksten, en effekt av en uklar
704 spesifikasjon. Men Nikitaprosjektet har også utviklet et test-program
705 som sjekker om et tjenestegrensesnitt er i samsvar med standarden, og
706 prosjektet bruker det hele tiden for å sikre at endringer og
707 forbedringer fungerer. Egenerklæringsskjemaenes dager kan være talte!
708 Snart vil du selv kunne teste hver oppdatering av arkivsystemet med en
711 <p>Fri programvare representerer en demokratisering av kunnskap der
712 tolkning- og innlåsingsmakt flyttes fra leverandør til allmenheten.
713 Med fri programvare har du en litt annerledes verdikjede, der selve
714 produktet ikke holdes hemmelig for å tjene penger, slik en gjør med
715 ufri programvare og skytjenester som ikke bruker fri programvare, men
716 du kan tjene penger på andre deler av verdikjeden. Med fri programvare
717 kan samfunnet betale for å videreutvikle nyttig
718 fellesfunksjonalitet.</p>
720 <p>Nikita er en fri programvareimplementasjon av tjenestegrensesnittet og
721 kan fungere som en referanseimplementasjon dersom det er ønskelig.
722 Alle har lik tilgang til koden og det koster ingenting å ta den i bruk
723 og utforske det. Nikitaprosjektet ønsker tjenestegrensesnittet
724 velkommen og stiller veldig gjerne opp i diskusjoner om tolkning av
725 tjenestegrensesnittet. Nikita er bygget på moderne
726 programmeringsrammeverk og utviklet i full åpenhet. Men Nikita er ikke
727 noe du kan kjøpe. Nikita er først og fremst et verktøy for forsking og
728 utvikling laget for å fremme forskning på arkivfeltet. Systemer som
729 virker sammen har alltid vært hovedfokus og vil være det fremover.
730 Det brukes som undervisningsverktøy der studentene ved OsloMet lærer
731 om administrativt oppsett, saksbehandling, uttrekk og samvirkende
732 datasystemer. Det brukes også som forskningsobjekt der vi ser på
733 import av dokumentsamlinger, bruk av blokkjede og andre nyskapende
734 måter å tenke arkiv på. Det er dog helt greit om andre tar Nikita og
735 pakker det for å selge det som produkt. Forvaltningsorganer med
736 sterke drift- og utviklingsmiljøer kan også se på Nikita og utforske
737 hva som er mulig. Dette kan de gjøre uten å måtte betale for
738 bruksrettigheter eller tilgang til konsulenter. Men arkivering blir
739 ikke gratis på grunn av Nikita. Det trengs fortsatt folk med
740 kompetanse og tid til å ta i bruk Nikita.</p>
742 <p>Nikita har nylig kommet med en ny utgave, den sjette i rekken.
743 Systemet er ikke ferdig, mest på grunn av at API-spesifikasjonen for
744 Noark 5 Tjenestegrensesnitt ikke er ferdig, men allerede i dag kan en
745 bruke Nikita som arkiv. Vi har laget eksempelsystem for å importere
746 data fra deponi-XML og slik gjøre eksisterende arkivdata tilgjengelig
747 via et API. Vi har også laget en testklient som importerer epost inn
748 i arkivet med vedlegg der epostenes trådinformasjon brukes til å legge
749 eposttråder i samme arkivmappe, og en annen testklient som henter
750 epost ut av en arkivmappe på mbox-format slik at en vanlig epostklient
751 kan brukes til å lese igjennom og svare på epostene i en
752 arkivmappe. De som vil ta en titt på Nikita kan besøke
753 <a href="https://nikita.oslomet.no
">https://nikita.oslomet.no</a> og
754 logge inn med brukernavn «admin@example.com» og passord «password».
755 Dette gir tilgang til det forenklede brukergrensesnittet som brukes
756 til undervisning. De som heller vil ta en titt under panseret kan
758 <a href="https://nikita.oslomet.no/browse.html
">https://nikita.oslomet.no/browse.html</a>
759 og der se hvordan API-et fungerer mer i detalj. Innloggingsdetaljer
760 her er det samme som for brukergrensesnittet.</p>
762 <p>Fremover er fokuset på forbedring av spesifikasjonen Noark 5
763 Tjenestegrensesnitt. De som skrev tjenestegrensesnittet gjorde et
764 interessant og framtidsrettet grep, de skilte sak fra arkiv.
765 Tjenestegrensesnittet består av flere "pakker", der noen er
766 grunnleggende mens andre bygger på de grunnleggende pakkene. Pakkene
767 som er beskrevet så langt heter «arkivstruktur», «sakarkiv»,
768 «administrasjon», «loggogsporing» og «moeter» (dessverre
769 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/pull/120">planlagt
770 fjernet
</a> i første utgave). Etter hvert håper vi å utforske
771 prosses- og metadatabeskrivelser til flere fagområder og bidra til at
772 tjenestegrensesnittet kan legge til flere pakker som «byggarkiv»,
773 «barnevern», «personal», «barnehage», der arkivfaglig metadata- og
774 dokumentasjonsbehov er kartlagt og standardisert.
</p>
776 <p>Nikita utvikles av en liten prosjektgruppe, og vi er alltid
777 interessert å bli flere. Hvis en åpen, fri og standardisert tilnærming
778 til arkivering høres interessant ut, bli med oss på veien videre. Vi
779 er tilstede på IRC-kanalen #nikita hos FreeNode (tilgjengelig via
781 <a href=
"https://webchat.freenode.net?channels=#nikita">https://webchat.freenode.net?channels=#nikita
</a>),
782 og har en e-postliste nikita-noark@nuug.no hos NUUG (tilgjengelig for
783 påmelding og arkiv på
784 <a href=
"https://lists.nuug.no/mailman/listinfo/nikita-noark">https://lists.nuug.no/mailman/listinfo/nikita-noark
</a>)
785 der en kan følge med eller være med oss på den spennende veien videre.
786 Spesifikasjonen for Noark
5 Tjenestegrensesnitt vedlikeholdes på
788 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/">https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/
</a>.
</p>
790 <p>Som vanlig, hvis du bruker Bitcoin og ønsker å vise din støtte til
791 det jeg driver med, setter jeg pris på om du sender Bitcoin-donasjoner
793 <b><a href=
"bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a></b>.
</p>
799 Tags:
<a href=
"https://people.skolelinux.org/pere/blog/tags/noark5">noark5
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/norsk">norsk
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/standard">standard
</a>.
804 <div class=
"padding"></div>
808 <a href=
"https://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>
815 <ahref=
"http://people.skolelinux.org/pere/blog/MIME_type__text_vnd_sosi__for_SOSI_map_data.html">I
816 mentioned
</a> my submission to IANA to register an official MIME type
817 for the SOSI vector map format. This morning, just an hour ago, I was
819 <a href=
"https://www.iana.org/assignments/media-types/text/vnd.sosi">the
820 MIME type "text/vnd.sosi"
</a> is registered for this format. In
821 addition to this registration, my
822 <a href=
"https://github.com/file/file/blob/master/magic/Magdir/sosi">file(
1)
823 patch for a pattern matching rule for SOSI files
</a> has been accepted
824 into the official source of that program (pending a new release), and
825 I've been told by the team behind
826 <a href=
"https://www.nationalarchives.gov.uk/PRONOM/">PRONOM
</a> that
827 the SOSI format will be included in the next release of PRONOM, which
828 they plan to release this summer around July.
</p>
830 <p>I am very happy to see all of this fall into place, for use by
831 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/">the
832 Noark
5 Tjenestegrensesnitt
</a> implementations.
</p>
834 <p>As usual, if you use Bitcoin and want to show your support of my
835 activities, please send Bitcoin donations to my address
836 <b><a href=
"bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a></b>.
</p>
842 Tags:
<a href=
"https://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/kart">kart
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/noark5">noark5
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/standard">standard
</a>.
847 <div class=
"padding"></div>
851 <a href=
"https://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>
857 <p>This morning, a new release of
858 <a href=
"https://gitlab.com/OsloMet-ABI/nikita-noark5-core/">Nikita
859 Noark
5 core project
</a> was
860 <a href=
"https://lists.nuug.no/pipermail/nikita-noark/2019-May/000468.html">announced
861 on the project mailing list
</a>. The Nikita free software solution is
862 an implementation of the Norwegian archive standard Noark
5 used by
863 government offices in Norway. These were the changes in version
0.4
864 since version
0.3, see the email link above for links to a demo site:
</p>
868 <li>Roll out OData handling to all endpoints where applicable
</li>
869 <li>Changed the relation key for "ny-journalpost" to the official one.
</li>
870 <li>Better link generation on outgoing links.
</li>
871 <li>Tidy up code and make code and approaches more consistent throughout
873 <li>Update rels to be in compliance with updated version in the
874 interface standard
</li>
875 <li>Avoid printing links on empty objects as they can't have links
</li>
876 <li>Small bug fixes and improvements
</li>
877 <li>Start moving generation of outgoing links to @Service layer so access
878 control can be used when generating links
</li>
879 <li>Log exception that was being swallowed so it's traceable
</li>
880 <li>Fix name mapping problem
</li>
881 <li>Update templated printing so templated should only be printed if it
882 is set true. Requires more work to roll out across entire
884 <li>Remove Record-
>DocumentObject as per domain model of n5v4
</li>
885 <li>Add ability to delete lists filtered with OData
</li>
886 <li>Return NO_CONTENT (
204) on delete as per interface standard
</li>
887 <li>Introduce support for ConstraintViolationException exception
</li>
888 <li>Make Service classes extend NoarkService
</li>
889 <li>Make code base respect X-Forwarded-Host, X-Forwarded-Proto and
890 X-Forwarded-Port
</li>
891 <li>Update CorrespondencePart* code to be more in line with Single
892 Responsibility Principle
</li>
893 <li>Make package name follow directory structure
</li>
894 <li>Make sure Document number starts at
1, not
0</li>
895 <li>Fix isues discovered by FindBugs
</li>
896 <li>Update from Date to ZonedDateTime
</li>
897 <li>Fix wrong tablename
</li>
898 <li>Introduce Service layer tests
</li>
899 <li>Improvements to CorrespondencePart
</li>
900 <li>Continued work on Class / Classificationsystem
</li>
901 <li>Fix feature where authors were stored as storageLocations
</li>
902 <li>Update HQL builder for OData
</li>
903 <li>Update OData search capability from webpage
</li>
907 <p>If free and open standardized archiving API sound interesting to
908 you, please contact us on IRC
909 (
<a href=
"irc://irc.freenode.net/%23nikita">#nikita on
910 irc.freenode.net
</a>) or email
911 (
<a href=
"https://lists.nuug.no/mailman/listinfo/nikita-noark">nikita-noark
912 mailing list
</a>).
</p>
914 <p>As usual, if you use Bitcoin and want to show your support of my
915 activities, please send Bitcoin donations to my address
916 <b><a href=
"bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a></b>.
</p>
922 Tags:
<a href=
"https://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/noark5">noark5
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/nuug">nuug
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/standard">standard
</a>.
927 <div class=
"padding"></div>
931 <a href=
"https://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>
937 <p>As part of my involvement in the work to
938 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard">standardise
939 a REST based API for Noark
5</a>, the Norwegian archiving standard, I
940 spent some time the last few months to try to register a
941 <a href=
"https://www.iana.org/assignments/media-types/">MIME type
</a>
942 and
<a href=
"https://www.nationalarchives.gov.uk/PRONOM/">PRONOM
943 code
</a> for the SOSI file format. The background is that there is a
944 set of formats approved for long term storage and archiving in Norway,
945 and among these formats, SOSI is the only format missing a MIME type
948 <p>What is SOSI, you might ask? To quote Wikipedia: SOSI is short for
949 Samordnet Opplegg for Stedfestet Informasjon (literally "Coordinated
950 Approach for Spatial Information", but more commonly expanded in
951 English to Systematic Organization of Spatial Information). It is a
952 text based file format for geo-spatial vector information used in
953 Norway. Information about the SOSI format can be found in English
954 from
<a href=
"https://en.wikipedia.org/wiki/SOSI">Wikipedia
</a>. The
955 specification is available in Norwegian from
956 <a href=
"https://www.kartverket.no/geodataarbeid/Standarder/SOSI/">the
957 Norwegian mapping authority
</a>. The SOSI standard, which originated
958 in the beginning of nineteen eighties, was the inspiration and formed the
959 basis for the XML based
960 <a href=
"https://en.wikipedia.org/wiki/Geography_Markup_Language">Geography
961 Markup Language
</a>.
</p>
963 <p>I have so far written
964 <a href=
"https://github.com/file/file/pull/67">a pattern matching
965 rule
</a> for the file(
1) unix tool to recognize SOSI files, submitted
966 a request to the PRONOM project to have a PRONOM ID assigned to the
967 format (reference TNA1555078202S60), and today send a request to IANA
968 to register the "text/vnd.sosi" MIME type for this format (referanse
969 <a href=
"https://tools.iana.org/public-view/viewticket/1143144">IANA
970 #
1143144</a>). If all goes well, in a few months, anyone implementing
971 the Noark
5 Tjenestegrensesnitt API spesification should be able to
972 use an official MIME type and PRONOM code for SOSI files. In
973 addition, anyone using SOSI files on Linux should be able to
974 automatically recognise the format and web sites handing out SOSI
975 files can begin providing a more specific MIME type. So far, SOSI
976 files has been handed out from web sites using the
977 "application/octet-stream" MIME type, which is just a nice way of
978 stating "I do not know". Soon, we will know. :)
</p>
980 <p>As usual, if you use Bitcoin and want to show your support of my
981 activities, please send Bitcoin donations to my address
982 <b><a href=
"bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a></b>.
</p>
988 Tags:
<a href=
"https://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/kart">kart
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/noark5">noark5
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/standard">standard
</a>.
993 <div class=
"padding"></div>
997 <a href=
"https://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>
1003 <p>As part of my involvement with the
1004 <a href=
"https://gitlab.com/OsloMet-ABI/nikita-noark5-core/">Nikita
1005 Noark
5 core project
</a>, I have been proposing improvements to the
1006 API specification created by
<a href=
"https://www.arkivverket.no/">The
1007 National Archives of Norway
</a> and helped migrating the text from a
1008 version control system unfriendly binary format (docx) to Markdown in
1009 git. Combined with the migration to a public git repository (on
1010 github), this has made it possible for anyone to suggest improvement
1013 <p>The specification is filled with UML diagrams. I believe the
1014 original diagrams were modelled using Sparx Systems Enterprise
1015 Architect, and exported as EMF files for import into docx. This
1016 approach make it very hard to track changes using a version control
1017 system. To improve the situation I have been looking for a good text
1018 based UML format with associated command line free software tools on
1019 Linux and Windows, to allow anyone to send in corrections to the UML
1020 diagrams in the specification. The tool must be text based to work
1021 with git, and command line to be able to run it automatically to
1022 generate the diagram images. Finally, it must be free software to
1023 allow anyone, even those that can not accept a non-free software
1024 license, to contribute.
</p>
1026 <p>I did not know much about free software UML modelling tools when I
1027 started. I have used dia and inkscape for simple modelling in the
1028 past, but neither are available on Windows, as far as I could tell. I
1030 <a href=
"https://modeling-languages.com/text-uml-tools-complete-list/">list
1031 of text mode uml tools
</a>, and tested out a few of the tools listed
1032 there.
<a href=
"http://plantuml.com/">The PlantUML tool
</a> seemed
1033 most promising. After verifying that the packages
1034 <a href=
"https://tracker.debian.org/pkg/plantuml">is available in
1035 Debian
</a> and found
<a href=
"https://github.com/plantuml/plantuml">its
1036 Java source
</a> under a GPL license on github, I set out to test if it
1037 could represent the diagrams we needed, ie the ones currently in
1038 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/">the
1039 Noark
5 Tjenestegrensesnitt specification
</a>. I am happy to report
1040 that it could represent them, even thought it have a few warts here
1043 <p>After a few days of modelling I completed the task this weekend. A
1044 temporary link to the complete set of diagrams (original and from
1045 PlantUML) is available in
1046 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues/76">the
1047 github issue discussing the need for a text based UML format
</a>, but
1048 please note I lack a sensible tool to convert EMF files to PNGs, so
1049 the "original" rendering is not as good as the original was in the
1052 <p>Here is an example UML diagram, showing the core classes for
1053 keeping metadata about archived documents:
</p>
1057 skinparam classAttributeIconSize
0
1059 !include media/uml-class-arkivskaper.iuml
1060 !include media/uml-class-arkiv.iuml
1061 !include media/uml-class-klassifikasjonssystem.iuml
1062 !include media/uml-class-klasse.iuml
1063 !include media/uml-class-arkivdel.iuml
1064 !include media/uml-class-mappe.iuml
1065 !include media/uml-class-merknad.iuml
1066 !include media/uml-class-registrering.iuml
1067 !include media/uml-class-basisregistrering.iuml
1068 !include media/uml-class-dokumentbeskrivelse.iuml
1069 !include media/uml-class-dokumentobjekt.iuml
1070 !include media/uml-class-konvertering.iuml
1071 !include media/uml-datatype-elektronisksignatur.iuml
1073 Arkivstruktur.Arkivskaper "+arkivskaper
1..*"
<-o "+arkiv 0..*" Arkivstruktur.Arkiv
1074 Arkivstruktur.Arkiv o-->
"+underarkiv 0..*" Arkivstruktur.Arkiv
1075 Arkivstruktur.Arkiv
"+arkiv 1" o-->
"+arkivdel 0..*" Arkivstruktur.Arkivdel
1076 Arkivstruktur.Klassifikasjonssystem
"+klassifikasjonssystem [0..1]" <--o
"+arkivdel 1..*" Arkivstruktur.Arkivdel
1077 Arkivstruktur.Klassifikasjonssystem
"+klassifikasjonssystem [0..1]" o-->
"+klasse 0..*" Arkivstruktur.Klasse
1078 Arkivstruktur.Arkivdel
"+arkivdel 0..1" o-->
"+mappe 0..*" Arkivstruktur.Mappe
1079 Arkivstruktur.Arkivdel
"+arkivdel 0..1" o-->
"+registrering 0..*" Arkivstruktur.Registrering
1080 Arkivstruktur.Klasse
"+klasse 0..1" o-->
"+mappe 0..*" Arkivstruktur.Mappe
1081 Arkivstruktur.Klasse
"+klasse 0..1" o-->
"+registrering 0..*" Arkivstruktur.Registrering
1082 Arkivstruktur.Mappe -->
"+undermappe 0..*" Arkivstruktur.Mappe
1083 Arkivstruktur.Mappe
"+mappe 0..1" o-->
"+registrering 0..*" Arkivstruktur.Registrering
1084 Arkivstruktur.Merknad
"+merknad 0..*" <--* Arkivstruktur.Mappe
1085 Arkivstruktur.Merknad
"+merknad 0..*" <--* Arkivstruktur.Dokumentbeskrivelse
1086 Arkivstruktur.Basisregistrering -|
> Arkivstruktur.Registrering
1087 Arkivstruktur.Merknad "+merknad
0..*" <--* Arkivstruktur.Basisregistrering
1088 Arkivstruktur.Registrering "+registrering
1..*" o--> "+dokumentbeskrivelse
0..*" Arkivstruktur.Dokumentbeskrivelse
1089 Arkivstruktur.Dokumentbeskrivelse "+dokumentbeskrivelse
1" o-
> "+dokumentobjekt 0..*" Arkivstruktur.Dokumentobjekt
1090 Arkivstruktur.Dokumentobjekt *-
> "+konvertering 0..*" Arkivstruktur.Konvertering
1091 Arkivstruktur.ElektroniskSignatur -[hidden]-
> Arkivstruktur.Dokumentobjekt
1095 <p><a href=
"http://plantuml.com/class-diagram">The format
</a> is quite
1096 compact, with little redundant information. The text expresses
1097 entities and relations, and there is little layout related fluff. One
1098 can reuse content by using include files, allowing for consistent
1099 naming across several diagrams. The include files can be standalone
1100 PlantUML too. Here is the content of
1101 <tt>media/uml-class-arkivskaper.iuml
</tt>:
</p>
1105 class Arkivstruktur.Arkivskaper
<Arkivenhet> {
1106 +arkivskaperID : string
1107 +arkivskaperNavn : string
1108 +beskrivelse : string [
0.
.1]
1113 <p>This is what the complete diagram for the PlantUML notation above
1116 <p><img width=
"80%" src=
"http://people.skolelinux.org/pere/blog/images/2019-03-25-noark5-plantuml-diagrameksempel.png"></p>
1118 <p>A cool feature of PlantUML is that the generated PNG files include
1119 the entire original source diagram as text. The source (with include
1120 statements expanded) can be extracted using for example
1121 <tt>exiftool
</tt>. Another cool feature is that parts of the entities
1122 can be hidden after inclusion. This allow to use include files with
1123 all attributes listed, even for UML diagrams that should not list any
1126 <p>The diagram also show some of the warts. Some times the layout
1127 engine place text labels on top of each other, and some times it place
1128 the class boxes too close to each other, not leaving room for the
1129 labels on the relationship arrows. The former can be worked around by
1130 placing extra newlines in the labes (ie "\n"). I did not do it here
1131 to be able to demonstrate the issue. I have not found a good way
1132 around the latter, so I normally try to reduce the problem by changing
1133 from vertical to horizontal links to improve the layout.
</p>
1135 <p>All in all, I am quite happy with PlantUML, and very impressed with
1136 how quickly its lead developer responds to questions. So far I got an
1137 answer to my questions in a few hours when I send an email. I
1138 definitely recommend looking at PlantUML if you need to make UML
1139 diagrams. Note, PlantUML can draw a lot more than class relations.
1140 Check out the documention for a complete list. :)
</p>
1142 <p>As usual, if you use Bitcoin and want to show your support of my
1143 activities, please send Bitcoin donations to my address
1144 <b><a href=
"bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a></b>.
</p>
1150 Tags:
<a href=
"https://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/nice free software">nice free software
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/noark5">noark5
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/nuug">nuug
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/standard">standard
</a>.
1155 <div class=
"padding"></div>
1159 <a href=
"https://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>
1165 <p>Yesterday, a new release of
1166 <a href=
"https://gitlab.com/OsloMet-ABI/nikita-noark5-core/">Nikita
1167 Noark
5 core project
</a> was
1168 <a href=
"https://lists.nuug.no/pipermail/nikita-noark/2019-March/000451.html">announced
1169 on the project mailing list
</a>. The free software solution is an
1170 implementation of the Norwegian archive standard Noark
5 used by
1171 government offices in Norway. These were the changes in version
0.3
1172 since version
0.2.1 (from NEWS.md):
</p>
1175 <li>Improved ClassificationSystem and Class behaviour.
</li>
1176 <li>Tidied up known inconsistencies between domain model and hateaos links.
</li>
1177 <li>Added experimental code for blockchain integration.
</li>
1178 <li>Make token expiry time configurable at upstart from properties file.
</li>
1179 <li>Continued work on OData search syntax.
</li>
1180 <li>Started work on pagination for entities, partly implemented for Saksmappe.
</li>
1181 <li>Finalise ClassifiedCode Metadata entity.
</li>
1182 <li>Implement mechanism to check if authentication token is still
1183 valid. This allow the GUI to return a more sensible message to the
1184 user if the token is expired.
</li>
1185 <li>Reintroduce browse.html page to allow user to browse JSON API using
1187 <li>Fix bug in handling file/mappe sequence number. Year change was
1188 not properly handled.
</li>
1189 <li>Update application yml files to be in sync with current development.
</li>
1190 <li>Stop 'converting' everything to PDF using libreoffice. Only
1191 convert the file formats doc, ppt, xls, docx, pptx, xlsx, odt, odp
1193 <li>Continued code style fixing, making code more readable.
</li>
1194 <li>Minor bug fixes.
</li>
1198 <p>If free and open standardized archiving API sound interesting to
1199 you, please contact us on IRC
1200 (
<a href=
"irc://irc.freenode.net/%23nikita">#nikita on
1201 irc.freenode.net
</a>) or email
1202 (
<a href=
"https://lists.nuug.no/mailman/listinfo/nikita-noark">nikita-noark
1203 mailing list
</a>).
</p>
1205 <p>As usual, if you use Bitcoin and want to show your support of my
1206 activities, please send Bitcoin donations to my address
1207 <b><a href=
"bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a></b>.
</p>
1213 Tags:
<a href=
"https://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/noark5">noark5
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/nuug">nuug
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/standard">standard
</a>.
1218 <div class=
"padding"></div>
1222 <a href=
"https://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>
1228 <p>Et virksomhetsarkiv for meg, er et arbeidsverktøy der en enkelt kan
1229 finne informasjonen en trenger når en trenger det, og der
1230 virksomhetens samlede kunnskap er tilgjengelig. Det må være greit å
1231 finne frem i, litt som en bibliotek. Men der et bibliotek gjerne tar
1232 vare på offentliggjort informasjon som er tilgjengelig flere steder,
1233 tar et arkiv vare på virksomhetsintern og til tider personlig
1234 informasjon som ofte kun er tilgjengelig fra et sted.
</p>
1236 <p>Jeg mistenker den eneste måten å sikre at arkivet inneholder den
1237 samlede kunnskapen i en virksomhet, er å bruke det som virksomhetens
1238 kunnskapslager. Det innebærer å automatisk kopiere (brev, epost,
1239 SMS-er etc) inn i arkivet når de sendes og mottas, og der filtrere
1240 vekk det en ikke vil ta vare på, og legge på metadata om det som er
1241 samlet inn for enkel gjenfinning. En slik bruk av arkivet innebærer at
1242 arkivet er en del av daglig virke, ikke at det er siste hvilested for
1243 informasjon ingen lenger har daglig bruk for. For å kunne være en del
1244 av det daglige virket må arkivet enkelt kunne integreres med andre
1245 systemer. I disse dager betyr det å tilby arkivet som en
1246 nett-tjeneste til hele virksomheten, tilgjengelig for både mennesker
1247 og datamaskiner. Det betyr i tur å både tilby nettsider og et
1248 maskinlesbart grensesnitt.
</p>
1250 <p>For noen år siden erkjente visjonære arkivarer fordelene med et
1251 standardisert maskinlesbart grensesnitt til organisasjonens arkiv. De
1252 gikk igang med å lage noe de kalte
1253 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/">Noark
1254 5 Tjenestegrensesnitt
</a>. Gjort riktig, så åpner slike maskinlesbare
1255 grensesnitt for samvirke på tvers av uavhengige programvaresystemer.
1256 Gjort feil, vil det blokkere for samvirke og bidra til
1257 leverandørinnlåsing. For å gjøre det riktig så må grensesnittet være
1258 klart og entydig beskrevet i en spesifikasjon som gjør at
1259 spesifikasjonen tolkes på samme måte uavhengig av hvem som leser den,
1260 og uavhengig av hvem som tar den i bruk.
</p>
1262 <p>For å oppnå klare og entydige beskrivelser i en spesifikasjon, som
1263 trengs for å kunne få en fri og åpen standard (se
1264 <a href=
"http://people.skolelinux.org/pere/blog/Fri_og__pen_standard__slik_Digistan_ser_det.html">Digistan-definisjon
</a>),
1265 så trengs det en åpen og gjennomsiktig inngangsport med lav terskel,
1266 der de som forsøker å ta den i bruk enkelt kan få inn korreksjoner,
1267 etterlyse klargjøringer og rapportere uklarheter i spesifikasjonen.
1268 En trenger også automatiserte datasystemer som måler og sjekker at et
1269 gitt grensesnitt fungerer i tråd med spesifikasjonen.
</p>
1271 <p>For Noark
5 Tjenestegrensesnittet er det nå etablert en slik åpen
1272 og gjennomsiktig inngangsport på prosjekttjenesten github. Denne
1273 inngangsporten består først og fremst av en åpen portal som lar enhver
1274 se hva som er gjort av endringer i spesifikasjonsteksten over tid, men
1275 det hører også med et åpent
"diskusjonsforum
" der en kan
1276 komme med endringsforslag og forespørsler om klargjøringer. Alle
1277 registrerte brukere på github kan bidra med innspill til disse
1280 <p>I samarbeide med Arkivverket har jeg fått opprettet et git-depot
1281 med spesifikasjonsteksten for tjenestegrensesnittet, der det er lagt
1282 inn historikk for endringer i teksten de siste årene, samt lagt inn
1283 endringsforslag og forespørsler om klargjøring av teksten. Bakgrunnen
1284 for at jeg bidro med dette er at jeg er involvert i
1285 <a href=
"https://gitlab.com/OsloMet-ABI/nikita-noark5-core">Nikita-prosjektet
</a>,
1286 som lager en fri programvare-utgave av Noark
5 Tjenestegrensesnitt.
1287 Det er først når en forsøker å lage noe i tråd med en spesifikasjon at
1288 en oppdager hvor mange detaljer som må beskrives i spesifikasjonen for
1289 å sikre samhandling.
</p>
1291 <p>Spesifikasjonen vedlikeholdes i et rent tekstformat, for å ha et
1292 format egnet for versjonskontroll via versjontrollsystemet git. Dette
1293 gjør det både enkelt å se konkret hvilke endringer som er gjort når,
1294 samt gjør det praktisk mulig for enhver med github-konto å sende inn
1295 endringsforslag med formuleringer til spesifikasjonsteksten. Dette
1296 tekstformatet vises frem som nettsider på github, slik at en ikke
1297 trenger spesielle verktøy for å se på siste utgave av
1298 spesifikasjonen.
</p>
1300 <p>Fra dette rene tekstformatet kan det så avledes ulike formater, som
1301 HTML for websider, PDF for utskrift på papir og ePub for lesing med
1302 ebokleser. Avlednings-systemet (byggesystemet) bruker i dag
1303 verktøyene pandoc, latex, docbook-xsl og GNU make til
1304 transformasjonen. Tekstformatet som brukes dag er
1305 <a href=
"https://www.markdownguide.org/">Markdown
</a>, men det vurderes
1307 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues/9">endre
1308 til formatet RST
</a> i fremtiden for bedre styring av utseende på
1311 <p>Versjonskontrollsystemet git ble valgt da det er både fleksibelt,
1312 avansert og enkelt å ta i bruk. Github ble valgt (foran f.eks. Gitlab
1313 som vi bruker i Nikita), da Arkivverket allerede hadde tatt i bruk
1314 Github i andre sammenhenger.
</p>
1316 <p>Enkle endringer i teksten kan gjøres av priviligerte brukere
1317 direkte i nettsidene til Github, ved å finne aktuell fil som skal
1318 endres (f.eks. kapitler/
03-konformitet.md), klikke på den lille
1319 bokstaven i høyre hjørne over teksten. Det kommer opp en nettside der
1320 en kan endre teksten slik en ønsker. Når en er fornøyd med endringen
1321 så må endringen
"sjekkes inn
" i historikken. Det gjøres ved
1322 å gi en kort beskrivelse av endringen (beskriv helst hvorfor endringen
1323 trengs, ikke hva som er endret), under overskriften
"Commit
1324 changes
". En kan og bør legge inn en lengre forklaring i det
1325 større skrivefeltet, før en velger om endringen skal sendes direkte
1326 til 'master'-grenen (dvs. autorativ utgave av spesifikasjonen) eller
1327 om en skal lage en ny gren for denne endringen og opprette en
1328 endringsforespørsel (aka
"Pull Request
"/PR). Når alt dette
1329 er gjort kan en velge
"Commit changes
" for å sende inn
1330 endringen. Hvis den er lagt inn i
"master
"-grenen så er den
1331 en offisiell del av spesifikasjonen med en gang. Hvis den derimot er
1332 en endringsforespørsel, så legges den inn i
1333 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/pulls">listen
1334 over forslag til endringer
</a> som venter på korrekturlesing og
1337 <p>Større endringer (for eksempel samtidig endringer i flere filer)
1338 gjøres enklest ved å hente ned en kopi av git-depoet lokalt og gjøre
1339 endringene der før endringsforslaget sendes inn. Denne prosessen er
1340 godt beskrivet i dokumentasjon fra github. Git-prosjektet som skal
1341 "klones
" er
1342 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/">https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/
</a>.
</p>
1344 <p>For å registrere nye utfordringer (issues) eller kommentere på
1345 eksisterende utfordringer benyttes nettsiden
1346 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues">https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues
</a>.
1347 I skrivende stund er det
48 åpne og
11 avsluttede utfordringer. Et
1348 forslag til hva som bør være med når en beskriver en utfordring er
1349 tilgjengelig som utfordring
1350 <a href=
"https://github.com/arkivverket/noark5-tjenestegrensesnitt-standard/issues/14">#
14</a>.
</p>
1352 <p>For å bygge en PDF-utgave av spesifikasjonen så bruker jeg i dag en
1353 Debian GNU/Linux-maskin med en rekke programpakker installert. Når
1354 dette er på plass, så holder det å kjøre kommandoen 'make pdf html' på
1355 kommandolinjen, vente ca.
20 sekunder, før spesifikasjon.pdf og
1356 spesifikasjon.html ligger klar på disken. Verktøyene for bygging av
1357 PDF, HTML og ePub-utgave er også tilgjengelig på Windows og
1360 <p>Github bidrar med rammeverket. Men for at åpent vedlikehold av
1361 spesifikasjonen skal fungere, så trengs det folk som bidrar med sin
1362 tid og kunnskap. Arkivverket har sagt de skal bidra med innspill og
1363 godkjenne forslag til endringer, men det blir størst suksess hvis alle
1364 som bruker og lager systemer basert på Noark
5 Tjenestegrensesnitt
1365 bidrar med sin kunnskap og kommer med forslag til forebedringer. Jeg
1366 stiller. Blir du med?
</p>
1368 <p>Det er viktig å legge til rette for åpen diskusjon blant alle
1369 interesserte, som ikke krever at en må godta lange kontrakter med
1370 vilkår for deltagelse. Inntil Arkivverket dukker opp på IRC har vi
1371 laget en IRC-kanal der interesserte enkelt kan orientere seg og
1372 diskutere tjenestegrensesnittet. Alle er velkommen til å ta turen
1374 <a href=
"https://webchat.freenode.net/?channels=nikita">#nikita
</a>
1375 (f.eks. via irc.freenode.net) for å møte likesinnede.
</p>
1377 <p>Det holder dog ikke å ha en god spesifikasjon, hvis ikke de som tar
1378 den i bruk gjør en like god jobb. For å automatisk teste om et konkret
1379 tjenestegrensesnitt følger (min) forståelse av
1380 spesifikasjonsdokumentet, har jeg skrevet et program som kobler seg
1381 opp til et Noark
5v4 REST-tjeneste og tester alt den finner for å se
1382 om det er i henhold til min tolkning av spesifikasjonen. Dette
1383 verktøyet er tilgjengelig fra
1384 <a href=
"https://github.com/petterreinholdtsen/noark5-tester">https://github.com/petterreinholdtsen/noark5-tester
</a>,
1385 og brukes daglig mens vi utvikler Nikita for å sikre at vi ikke
1386 introduserer nye feil. Hvis en skal sikre samvirke på tvers av ulike
1387 systemer er det helt essensielt å kunne raskt og automatisk sjekke at
1388 tjenestegrensesnittet oppfører seg som forventet. Jeg håper andre som
1389 lager sin utgave av tjenestegrensesnittet vi bruke dette verktøyet,
1390 slik at vi tidlig og raskt kan oppdage hvor vi har tolket
1391 spesifikasjonen ulikt, og dermed få et godt grunnlag for å gjøre
1392 spesifikasjonsteksten enda klarere og bedre.
</p>
1394 <p>Dagens beskrivelse av Noark
5 Tjenestegrensesnitt er et svært godt
1395 utgangspunkt for å gjøre virksomhetens arkiv til et dynamisk og
1396 sentralt arbeidsverktøy i organisasjonen. Blir du med å gjøre den
1403 Tags:
<a href=
"https://people.skolelinux.org/pere/blog/tags/digistan">digistan
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/noark5">noark5
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/norsk">norsk
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/standard">standard
</a>.
1408 <div class=
"padding"></div>
1412 <a href=
"https://people.skolelinux.org/pere/blog/Time_for_an_official_MIME_type_for_patches_.html">Time for an official MIME type for patches?
</a>
1418 <p>As part of my involvement in
1419 <a href=
"https://gitlab.com/OsloMet-ABI/nikita-noark5-core">the Nikita
1420 archive API project
</a>, I've been importing a fairly large lump of
1421 emails into a test instance of the archive to see how well this would
1422 go. I picked a subset of
<a href=
"https://notmuchmail.org/">my
1423 notmuch email database
</a>, all public emails sent to me via
1424 @lists.debian.org, giving me a set of around
216 000 emails to import.
1425 In the process, I had a look at the various attachments included in
1426 these emails, to figure out what to do with attachments, and noticed
1427 that one of the most common attachment formats do not have
1428 <a href=
"https://www.iana.org/assignments/media-types/media-types.xhtml">an
1429 official MIME type
</a> registered with IANA/IETF. The output from
1430 diff, ie the input for patch, is on the top
10 list of formats
1431 included in these emails. At the moment people seem to use either
1432 text/x-patch or text/x-diff, but neither is officially registered. It
1433 would be better if one official MIME type were registered and used
1436 <p>To try to get one official MIME type for these files, I've brought
1438 <a href=
"https://www.ietf.org/mailman/listinfo/media-types">the
1439 media-types mailing list
</a>. If you are interested in discussion
1440 which MIME type to use as the official for patch files, or involved in
1441 making software using a MIME type for patches, perhaps you would like
1442 to join the discussion?
</p>
1444 <p>As usual, if you use Bitcoin and want to show your support of my
1445 activities, please send Bitcoin donations to my address
1446 <b><a href=
"bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a></b>.
</p>
1452 Tags:
<a href=
"https://people.skolelinux.org/pere/blog/tags/debian">debian
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/noark5">noark5
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/standard">standard
</a>.
1457 <div class=
"padding"></div>
1461 <a href=
"https://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>
1467 <p>This morning, the new release of the
1468 <a href=
"https://gitlab.com/OsloMet-ABI/nikita-noark5-core/">Nikita
1469 Noark
5 core project
</a> was
1470 <a href=
"https://lists.nuug.no/pipermail/nikita-noark/2018-October/000406.html">announced
1471 on the project mailing list
</a>. The free software solution is an
1472 implementation of the Norwegian archive standard Noark
5 used by
1473 government offices in Norway. These were the changes in version
0.2
1474 since version
0.1.1 (from NEWS.md):
1477 <li>Fix typos in REL names
</li>
1478 <li>Tidy up error message reporting
</li>
1479 <li>Fix issue where we used Integer.valueOf(), not Integer.getInteger()
</li>
1480 <li>Change some String handling to StringBuffer
</li>
1481 <li>Fix error reporting
</li>
1482 <li>Code tidy-up
</li>
1483 <li>Fix issue using static non-synchronized SimpleDateFormat to avoid
1484 race conditions
</li>
1485 <li>Fix problem where deserialisers were treating integers as strings
</li>
1486 <li>Update methods to make them null-safe
</li>
1487 <li>Fix many issues reported by coverity
</li>
1488 <li>Improve equals(), compareTo() and hash() in domain model
</li>
1489 <li>Improvements to the domain model for metadata classes
</li>
1490 <li>Fix CORS issues when downloading document
</li>
1491 <li>Implementation of case-handling with registryEntry and document upload
</li>
1492 <li>Better support in Javascript for OPTIONS
</li>
1493 <li>Adding concept description of mail integration
</li>
1494 <li>Improve setting of default values for GET on ny-journalpost
</li>
1495 <li>Better handling of required values during deserialisation
</li>
1496 <li>Changed tilknyttetDato (M620) from date to dateTime
</li>
1497 <li>Corrected some opprettetDato (M600) (de)serialisation errors.
</li>
1498 <li>Improve parse error reporting.
</li>
1499 <li>Started on OData search and filtering.
</li>
1500 <li>Added Contributor Covenant Code of Conduct to project.
</li>
1501 <li>Moved repository and project from Github to Gitlab.
</li>
1502 <li>Restructured repository, moved code into src/ and web/.
</li>
1503 <li>Updated code to use Spring Boot version
2.
</li>
1504 <li>Added support for OAuth2 authentication.
</li>
1505 <li>Fixed several bugs discovered by Coverity.
</li>
1506 <li>Corrected handling of date/datetime fields.
</li>
1507 <li>Improved error reporting when rejecting during deserializatoin.
</li>
1508 <li>Adjusted default values provided for ny-arkivdel, ny-mappe,
1509 ny-saksmappe, ny-journalpost and ny-dokumentbeskrivelse.
</li>
1510 <li>Several fixes for korrespondansepart*.
</li>
1511 <li>Updated web GUI:
1513 <li>Now handle both file upload and download.
</li>
1514 <li>Uses new OAuth2 authentication for login.
</li>
1515 <li>Forms now fetches default values from API using GET.
</li>
1516 <li>Added RFC
822 (email), TIFF and JPEG to list of possible file formats.
</li>
1520 <p>The changes and improvements are extensive. Running diffstat on
1521 the changes between git tab
0.1.1 and
0.2 show
1098 files changed,
1522 108666 insertions(+),
54066 deletions(-).
</p>
1524 <p>If free and open standardized archiving API sound interesting to
1525 you, please contact us on IRC
1526 (
<a href=
"irc://irc.freenode.net/%23nikita">#nikita on
1527 irc.freenode.net
</a>) or email
1528 (
<a href=
"https://lists.nuug.no/mailman/listinfo/nikita-noark">nikita-noark
1529 mailing list
</a>).
</p>
1531 <p>As usual, if you use Bitcoin and want to show your support of my
1532 activities, please send Bitcoin donations to my address
1533 <b><a href=
"bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a></b>.
</p>
1539 Tags:
<a href=
"https://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/noark5">noark5
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/nuug">nuug
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/standard">standard
</a>.
1544 <div class=
"padding"></div>
1548 <a href=
"https://people.skolelinux.org/pere/blog/Fetching_trusted_timestamps_using_the_rfc3161ng_python_module.html">Fetching trusted timestamps using the rfc3161ng python module
</a>
1554 <p>I have earlier covered the basics of trusted timestamping using the
1555 'openssl ts' client. See blog post for
1556 <a href=
"http://people.skolelinux.org/pere/blog/Public_Trusted_Timestamping_services_for_everyone.html">2014</a>,
1557 <a href=
"http://people.skolelinux.org/pere/blog/syslog_trusted_timestamp___chain_of_trusted_timestamps_for_your_syslog.html">2016</a>
1559 <a href=
"http://people.skolelinux.org/pere/blog/Idea_for_storing_trusted_timestamps_in_a_Noark_5_archive.html">2017</a>
1560 for those stories. But some times I want to integrate the timestamping
1561 in other code, and recently I needed to integrate it into Python.
1562 After searching a bit, I found
1563 <a href=
"https://dev.entrouvert.org/projects/python-rfc3161">the
1564 rfc3161 library
</a> which seemed like a good fit, but I soon
1565 discovered it only worked for python version
2, and I needed something
1566 that work with python version
3. Luckily I next came across
1567 <a href=
"https://github.com/trbs/rfc3161ng/">the rfc3161ng library
</a>,
1568 a fork of the original rfc3161 library. Not only is it working with
1569 python
3, it have fixed a few of the bugs in the original library, and
1570 it has an active maintainer. I decided to wrap it up and make it
1571 <a href=
"https://tracker.debian.org/pkg/python-rfc3161ng">available in
1572 Debian
</a>, and a few days ago it entered Debian unstable and testing.
</p>
1574 <p>Using the library is fairly straight forward. The only slightly
1575 problematic step is to fetch the required certificates to verify the
1576 timestamp. For some services it is straight forward, while for others
1577 I have not yet figured out how to do it. Here is a small standalone
1578 code example based on of the integration tests in the library code:
</p>
1585 Python
3 script demonstrating how to use the rfc3161ng module to
1586 get trusted timestamps.
1588 The license of this code is the same as the license of the rfc3161ng
1589 library, ie MIT/BSD.
1594 import pyasn1.codec.der
1598 import urllib.request
1605 def fetch(url, f=None):
1606 response = urllib.request.urlopen(url)
1607 data = response.read()
1613 with tempfile.NamedTemporaryFile() as cert_f,\
1614 tempfile.NamedTemporaryFile() as ca_f,\
1615 tempfile.NamedTemporaryFile() as msg_f,\
1616 tempfile.NamedTemporaryFile() as tsr_f:
1618 # First fetch certificates used by service
1619 certificate_data = fetch('https://freetsa.org/files/tsa.crt', cert_f)
1620 ca_data_data = fetch('https://freetsa.org/files/cacert.pem', ca_f)
1622 # Then timestamp the message
1624 rfc3161ng.RemoteTimestamper('http://freetsa.org/tsr',
1625 certificate=certificate_data)
1626 data = b"Python forever!\n"
1627 tsr = timestamper(data=data, return_tsr=True)
1629 # Finally, convert message and response to something 'openssl ts' can verify
1631 store(tsr_f, pyasn1.codec.der.encoder.encode(tsr))
1632 args = ["openssl", "ts", "-verify",
1633 "-data", msg_f.name,
1635 "-CAfile", ca_f.name,
1636 "-untrusted", cert_f.name]
1637 subprocess.check_call(args)
1639 if '__main__' == __name__:
1643 <p>The code fetches the required certificates, store them as temporary
1644 files, timestamp a simple message, store the message and timestamp to
1645 disk and ask 'openssl ts' to verify the timestamp. A timestamp is
1646 around
1.5 kiB in size, and should be fairly easy to store for future
1649 <p>As usual, if you use Bitcoin and want to show your support of my
1650 activities, please send Bitcoin donations to my address
1651 <b><a href=
"bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b
</a></b>.
</p>
1657 Tags:
<a href=
"https://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/noark5">noark5
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet
</a>.
1662 <div class=
"padding"></div>
1666 <a href=
"https://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>
1672 <p>I am very happy to report that the
1673 <a href=
"https://github.com/hiOA-ABI/nikita-noark5-core">Nikita Noark
5
1674 core project
</a> tagged its second release today. The free software
1675 solution is an implementation of the Norwegian archive standard Noark
1676 5 used by government offices in Norway. These were the changes in
1677 version
0.1.1 since version
0.1.0 (from NEWS.md):
1681 <li>Continued work on the angularjs GUI, including document upload.
</li>
1682 <li>Implemented correspondencepartPerson, correspondencepartUnit and
1683 correspondencepartInternal
</li>
1684 <li>Applied for coverity coverage and started submitting code on
1686 <li>Started fixing bugs reported by coverity
</li>
1687 <li>Corrected and completed HATEOAS links to make sure entire API is
1688 available via URLs in _links.
</li>
1689 <li>Corrected all relation URLs to use trailing slash.
</li>
1690 <li>Add initial support for storing data in ElasticSearch.
</li>
1691 <li>Now able to receive and store uploaded files in the archive.
</li>
1692 <li>Changed JSON output for object lists to have relations in _links.
</li>
1693 <li>Improve JSON output for empty object lists.
</li>
1694 <li>Now uses correct MIME type application/vnd.noark5-v4+json.
</li>
1695 <li>Added support for docker container images.
</li>
1696 <li>Added simple API browser implemented in JavaScript/Angular.
</li>
1697 <li>Started on archive client implemented in JavaScript/Angular.
</li>
1698 <li>Started on prototype to show the public mail journal.
</li>
1699 <li>Improved performance by disabling Sprint FileWatcher.
</li>
1700 <li>Added support for 'arkivskaper', 'saksmappe' and 'journalpost'.
</li>
1701 <li>Added support for some metadata codelists.
</li>
1702 <li>Added support for Cross-origin resource sharing (CORS).
</li>
1703 <li>Changed login method from Basic Auth to JSON Web Token (RFC
7519)
1705 <li>Added support for GET-ing ny-* URLs.
</li>
1706 <li>Added support for modifying entities using PUT and eTag.
</li>
1707 <li>Added support for returning XML output on request.
</li>
1708 <li>Removed support for English field and class names, limiting ourself
1709 to the official names.
</li>
1714 <p>If this sound interesting to you, please contact us on IRC (#nikita
1715 on irc.freenode.net) or email
1716 (
<a href=
"https://lists.nuug.no/mailman/listinfo/nikita-noark">nikita-noark
1723 Tags:
<a href=
"https://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/noark5">noark5
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/nuug">nuug
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/standard">standard
</a>.
1728 <div class=
"padding"></div>
1732 <a href=
"https://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>
1738 <p><em>This is a copy of
1739 <a href=
"https://lists.nuug.no/pipermail/nikita-noark/2017-June/000297.html">an
1740 email I posted to the nikita-noark mailing list
</a>. Please follow up
1741 there if you would like to discuss this topic. The background is that
1742 we are making a free software archive system based on the Norwegian
1743 <a href=
"https://www.arkivverket.no/forvaltning-og-utvikling/regelverk-og-standarder/noark-standarden">Noark
1744 5 standard
</a> for government archives.
</em></p>
1746 <p>I've been wondering a bit lately how trusted timestamps could be
1748 <a href=
"https://en.wikipedia.org/wiki/Trusted_timestamping">Trusted
1749 timestamps
</a> can be used to verify that some information
1750 (document/file/checksum/metadata) have not been changed since a
1751 specific time in the past. This is useful to verify the integrity of
1752 the documents in the archive.
</p>
1754 <p>Then it occured to me, perhaps the trusted timestamps could be
1755 stored as dokument variants (ie dokumentobjekt referered to from
1756 dokumentbeskrivelse) with the filename set to the hash it is
1759 <p>Given a "dokumentbeskrivelse" with an associated "dokumentobjekt",
1760 a new dokumentobjekt is associated with "dokumentbeskrivelse" with the
1761 same attributes as the stamped dokumentobjekt except these
1766 <li>format -
> "RFC3161"
1767 <li>mimeType -
> "application/timestamp-reply"
1768 <li>formatDetaljer -
> "<source URL for timestamp service>"
1769 <li>filenavn -
> "<sjekksum>.tsr"
1773 <p>This assume a service following
1774 <a href=
"https://tools.ietf.org/html/rfc3161">IETF RFC
3161</a> is
1775 used, which specifiy the given MIME type for replies and the .tsr file
1776 ending for the content of such trusted timestamp. As far as I can
1777 tell from the Noark
5 specifications, it is OK to have several
1778 variants/renderings of a dokument attached to a given
1779 dokumentbeskrivelse objekt. It might be stretching it a bit to make
1780 some of these variants represent crypto-signatures useful for
1781 verifying the document integrity instead of representing the dokument
1784 <p>Using the source of the service in formatDetaljer allow several
1785 timestamping services to be used. This is useful to spread the risk
1786 of key compromise over several organisations. It would only be a
1787 problem to trust the timestamps if all of the organisations are
1790 <p>The following oneliner on Linux can be used to generate the tsr
1791 file. $input is the path to the file to checksum, and $sha256 is the
1792 SHA-
256 checksum of the file (ie the "
<sjekksum>.tsr" value mentioned
1795 <p><blockquote><pre>
1796 openssl ts -query -data "$inputfile" -cert -sha256 -no_nonce \
1797 | curl -s -H "Content-Type: application/timestamp-query" \
1798 --data-binary "@-" http://zeitstempel.dfn.de
> $sha256.tsr
1799 </pre></blockquote></p>
1801 <p>To verify the timestamp, you first need to download the public key
1802 of the trusted timestamp service, for example using this command:
</p>
1804 <p><blockquote><pre>
1805 wget -O ca-cert.txt \
1806 https://pki.pca.dfn.de/global-services-ca/pub/cacert/chain.txt
1807 </pre></blockquote></p>
1809 <p>Note, the public key should be stored alongside the timestamps in
1810 the archive to make sure it is also available
100 years from now. It
1811 is probably a good idea to standardise how and were to store such
1812 public keys, to make it easier to find for those trying to verify
1813 documents
100 or
1000 years from now. :)
</p>
1815 <p>The verification itself is a simple openssl command:
</p>
1817 <p><blockquote><pre>
1818 openssl ts -verify -data $inputfile -in $sha256.tsr \
1819 -CAfile ca-cert.txt -text
1820 </pre></blockquote></p>
1822 <p>Is there any reason this approach would not work? Is it somehow against
1823 the Noark
5 specification?
</p>
1829 Tags:
<a href=
"https://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/noark5">noark5
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/standard">standard
</a>.
1834 <div class=
"padding"></div>
1838 <a href=
"https://people.skolelinux.org/pere/blog/Epost_inn_som_arkivformat_i_Riksarkivarens_forskrift_.html">Epost inn som arkivformat i Riksarkivarens forskrift?
</a>
1844 <p>I disse dager, med frist
1. mai, har Riksarkivaren ute en høring på
1845 sin forskrift. Som en kan se er det ikke mye tid igjen før fristen
1846 som går ut på søndag. Denne forskriften er det som lister opp hvilke
1847 formater det er greit å arkivere i
1848 <a href=
"http://www.arkivverket.no/arkivverket/Offentleg-forvalting/Noark/Noark-5">Noark
1849 5-løsninger
</a> i Norge.
</p>
1851 <p>Jeg fant høringsdokumentene hos
1852 <a href=
"https://www.arkivrad.no/aktuelt/riksarkivarens-forskrift-pa-horing">Norsk
1853 Arkivråd
</a> etter å ha blitt tipset på epostlisten til
1854 <a href=
"https://github.com/hiOA-ABI/nikita-noark5-core">fri
1855 programvareprosjektet Nikita Noark5-Core
</a>, som lager et Noark
5
1856 Tjenestegresesnitt. Jeg er involvert i Nikita-prosjektet og takket
1857 være min interesse for tjenestegrensesnittsprosjektet har jeg lest en
1858 god del Noark
5-relaterte dokumenter, og til min overraskelse oppdaget
1859 at standard epost ikke er på listen over godkjente formater som kan
1860 arkiveres. Høringen med frist søndag er en glimrende mulighet til å
1861 forsøke å gjøre noe med det. Jeg holder på med
1862 <a href=
"https://github.com/petterreinholdtsen/noark5-tester/blob/master/docs/hoering-arkivforskrift.tex">egen
1863 høringsuttalelse
</a>, og lurer på om andre er interessert i å støtte
1864 forslaget om å tillate arkivering av epost som epost i arkivet.
</p>
1866 <p>Er du igang med å skrive egen høringsuttalelse allerede? I så fall
1867 kan du jo vurdere å ta med en formulering om epost-lagring. Jeg tror
1868 ikke det trengs så mye. Her et kort forslag til tekst:
</p>
1872 <p>Viser til høring sendt ut
2017-
02-
17 (Riksarkivarens referanse
1873 2016/
9840 HELHJO), og tillater oss å sende inn noen innspill om
1874 revisjon av Forskrift om utfyllende tekniske og arkivfaglige
1875 bestemmelser om behandling av offentlige arkiver (Riksarkivarens
1878 <p>Svært mye av vår kommuikasjon foregår i dag på e-post. Vi
1879 foreslår derfor at Internett-e-post, slik det er beskrevet i IETF
1881 <a href=
"https://tools.ietf.org/html/rfc5322">https://tools.ietf.org/html/rfc5322
</a>. bør
1882 inn som godkjent dokumentformat. Vi foreslår at forskriftens
1883 oversikt over godkjente dokumentformater ved innlevering i §
5-
16
1884 endres til å ta med Internett-e-post.
</p>
1888 <p>Som del av arbeidet med tjenestegrensesnitt har vi testet hvordan
1889 epost kan lagres i en Noark
5-struktur, og holder på å skrive et
1890 forslag om hvordan dette kan gjøres som vil bli sendt over til
1891 arkivverket så snart det er ferdig. De som er interesserte kan
1892 <a href=
"https://github.com/petterreinholdtsen/noark5-tester/blob/master/docs/epostlagring.md">følge
1893 fremdriften på web
</a>.
</p>
1895 <p>Oppdatering
2017-
04-
28: I dag ble høringuttalelsen jeg skrev
1896 <a href=
"https://www.nuug.no/news/NUUGs_h_ringuttalelse_til_Riksarkivarens_forskrift.shtml">sendt
1897 inn av foreningen NUUG
</a>.
</p>
1903 Tags:
<a href=
"https://people.skolelinux.org/pere/blog/tags/noark5">noark5
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/norsk">norsk
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/standard">standard
</a>.
1908 <div class=
"padding"></div>
1912 <a href=
"https://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>
1918 <p>The
<a href=
"https://github.com/hiOA-ABI/nikita-noark5-core">Nikita
1919 Noark
5 core project
</a> is implementing the Norwegian standard for
1920 keeping an electronic archive of government documents.
1921 <a href=
"http://www.arkivverket.no/arkivverket/Offentlig-forvaltning/Noark/Noark-5/English-version">The
1922 Noark
5 standard
</a> document the requirement for data systems used by
1923 the archives in the Norwegian government, and the Noark
5 web interface
1924 specification document a REST web service for storing, searching and
1925 retrieving documents and metadata in such archive. I've been involved
1926 in the project since a few weeks before Christmas, when the Norwegian
1928 <a href=
"https://www.nuug.no/news/NOARK5_kjerne_som_fri_programvare_f_r_epostliste_hos_NUUG.shtml">announced
1929 it supported the project
</a>. I believe this is an important project,
1930 and hope it can make it possible for the government archives in the
1931 future to use free software to keep the archives we citizens depend
1932 on. But as I do not hold such archive myself, personally my first use
1933 case is to store and analyse public mail journal metadata published
1934 from the government. I find it useful to have a clear use case in
1935 mind when developing, to make sure the system scratches one of my
1938 <p>If you would like to help make sure there is a free software
1939 alternatives for the archives, please join our IRC channel
1940 (
<a href=
"irc://irc.freenode.net/%23nikita">#nikita on
1941 irc.freenode.net
</a>) and
1942 <a href=
"https://lists.nuug.no/mailman/listinfo/nikita-noark">the
1943 project mailing list
</a>.
</p>
1945 <p>When I got involved, the web service could store metadata about
1946 documents. But a few weeks ago, a new milestone was reached when it
1947 became possible to store full text documents too. Yesterday, I
1948 completed an implementation of a command line tool
1949 <tt>archive-pdf
</tt> to upload a PDF file to the archive using this
1950 API. The tool is very simple at the moment, and find existing
1951 <a href=
"https://en.wikipedia.org/wiki/Fonds">fonds
</a>, series and
1952 files while asking the user to select which one to use if more than
1953 one exist. Once a file is identified, the PDF is associated with the
1954 file and uploaded, using the title extracted from the PDF itself. The
1955 process is fairly similar to visiting the archive, opening a cabinet,
1956 locating a file and storing a piece of paper in the archive. Here is
1957 a test run directly after populating the database with test data using
1960 <p><blockquote><pre>
1961 ~/src//noark5-tester$ ./archive-pdf mangelmelding/mangler.pdf
1962 using arkiv: Title of the test fonds created
2017-
03-
18T23:
49:
32.103446
1963 using arkivdel: Title of the test series created
2017-
03-
18T23:
49:
32.103446
1965 0 - Title of the test case file created
2017-
03-
18T23:
49:
32.103446
1966 1 - Title of the test file created
2017-
03-
18T23:
49:
32.103446
1967 Select which mappe you want (or search term):
0
1968 Uploading mangelmelding/mangler.pdf
1969 PDF title: Mangler i spesifikasjonsdokumentet for NOARK
5 Tjenestegrensesnitt
1970 File
2017/
1: Title of the test case file created
2017-
03-
18T23:
49:
32.103446
1971 ~/src//noark5-tester$
1972 </pre></blockquote></p>
1974 <p>You can see here how the fonds (arkiv) and serie (arkivdel) only had
1975 one option, while the user need to choose which file (mappe) to use
1976 among the two created by the API tester. The
<tt>archive-pdf
</tt>
1977 tool can be found in the git repository for the API tester.
</p>
1979 <p>In the project, I have been mostly working on
1980 <a href=
"https://github.com/petterreinholdtsen/noark5-tester">the API
1981 tester
</a> so far, while getting to know the code base. The API
1982 tester currently use
1983 <a href=
"https://en.wikipedia.org/wiki/HATEOAS">the HATEOAS links
</a>
1984 to traverse the entire exposed service API and verify that the exposed
1985 operations and objects match the specification, as well as trying to
1986 create objects holding metadata and uploading a simple XML file to
1987 store. The tester has proved very useful for finding flaws in our
1988 implementation, as well as flaws in the reference site and the
1991 <p>The test document I uploaded is a summary of all the specification
1992 defects we have collected so far while implementing the web service.
1993 There are several unclear and conflicting parts of the specification,
1995 <a href=
"https://github.com/petterreinholdtsen/noark5-tester/tree/master/mangelmelding">started
1996 writing down
</a> the questions we get from implementing it. We use a
1997 format inspired by how
<a href=
"http://www.opengroup.org/austin/">The
1998 Austin Group
</a> collect defect reports for the POSIX standard with
1999 <a href=
"http://www.opengroup.org/austin/mantis.html">their
2000 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> :).
2002 <p>The Nikita project is implemented using Java and Spring, and is
2003 fairly easy to get up and running using Docker containers for those
2004 that want to test the current code base. The API tester is
2005 implemented in Python.
</p>
2011 Tags:
<a href=
"https://people.skolelinux.org/pere/blog/tags/english">english
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/noark5">noark5
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/nuug">nuug
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/standard">standard
</a>.
2016 <div class=
"padding"></div>
2020 <a href=
"https://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>
2026 <p>En ting jeg har lurt på når det gjelder offentlige postjournaler,
2027 er hvor stor andel av det som ligger i de interne databasene kommer
2028 ikke med i postjournalen. Dette er det mulig å finne ut basert på det
2029 som ligger i postjournalen. For å forstå hva jeg mener, trengs det
2030 litt bakgrunnsinformasjon. I henhold til
2031 <a href=
"http://www.arkivverket.no/arkivverket/Offentleg-forvalting/Noark">NOARK-standarden
</a>
2032 for norske offentlige arkiv skal enhver sak ha et årstall og et
2033 løpenummer, og ethvert dokument i saken skal gis et
2034 dokument-løpenummer. Det vil si at en ender opp med dokument-ID som
2035 ser ut som ÅÅÅÅ/SAKNR-DOKNR, f.eks.
2014/
2-
1 eller
2014/
12312-
14.
2036 Mange oppgir kun tosifret årstall, men prinsippet er det samme. Så
2037 vidt jeg vet skal saksnummer og dokumentnummer tildeles løpende og i
2038 stigende rekkefølge. Gitt en instans med følgende dokument-ID i
2039 postjournalen, så kan en regne ut hvor mye som ikke finnes i
2048 <p>Her ser en at saksnummer
2 og
5 finnes i postjournalen, mens
2049 nummerene
1,
3 og
4 mangler. En ser også at i sak
2014/
5 mangler
2050 dokument
2. Ved hjelp av denne informasjonen har jeg regnet ut hvor
2051 stor andel av saksnummer og dokumentløpenummer som ikke har dukket opp
2052 i
<a href=
"https://www.oep.no/">Offentlig Elektronisk Postjournal
</a>
2053 (OEP). For saksnummer har jeg tatt utgangspunkt i at en ikke trenger
2054 å starte på
1, og dermed regnet med området fra laveste til høyeste
2055 saksnummer og talt antall unike saksnummer som forekommer i OEP. I
2056 dette tilfellet betyr de at
2 av
4 saksnummer er ubrukte (
50%). For
2057 dokumentløpenummer har jeg tilsvarende tatt utgangspunkt i laveste og
2058 høyeste kjente dokumentløpenummer, for å handtere databaser der jeg
2059 mangler komplett postjournal. For sak
2014/
5 her betyr det at
1 av
3
2060 dokumenter mangler (
33%).
</p>
2062 <p>Det er flere årsaker til at det kan bli hull i nummerseriene.
2063 Feilføring der et dokument tildeles et nytt saksnummer ved en feil, og
2064 deretter flyttes inn i riktig sak vil gi et ubrukt saksnummer, da
2065 saksnummer skal tildeles i stigende rekkefølge og en ikke får opprette
2066 nye saker innimellom gamle saker. Tilsvarende kan skje med
2067 dokument-løpenummer. Det er jo heller ikke sikkert at et saksnummer i
2068 OEP er det samme som løpenummeret som brukes som saksnummeret i
2069 instansens interne datasystem. Kanskje snakker vi om ulike ontologier
2070 der en delmengde av interne saksnummer tilsvarer saksnummer i OEP.
2071 Hvis like nummer også tildeles andre ting enn saker som skal til OEP
2072 vil en tilsvarende få «hull» i saksnumrene i postjournalen.
</p>
2074 <p>Jeg er litt usikker på hva denne statistikken egentlig viser, og
2075 heller ikke sikker på om det er reelt sett mangler i OEP (som kanskje
2076 kunne anses å være kritikkverdig), bare er resultatet av hendelige
2077 uhell i nummertildelingen eller resultat av ulik ontologi i OEP og
2078 instansens datasystem. Men jeg syntes tallene og variasjonen var så
2079 interessant at jeg hadde lyst til å dele dem med mine lesere. Jeg har
2080 sortert listen på prosent upubliserte saksnummer for
2014.
</p>
2083 <tr><th colspan=
"6">Saksnummer
</th><th colspan=
"3">Dokumentnummer
</th><th rowspan=
"3">Instans
</th></tr>
2084 <tr><th colspan=
"3">2014</th><th colspan=
"3">2013</th><th colspan=
"3">2014</th></tr>
2085 <tr><th>%
</th><th>Upubl. saksnr.
</th><th>Totalt
</th>
2086 <th>%
</th><th>Upubl. saksnr
</th><th>Totalt
</th>
2087 <th>%
</th><th>Upubl. dok.nr.
</th><th>Totalt
</th>
2090 <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>
2091 <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>
2092 <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>
2093 <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>
2094 <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>
2095 <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>
2096 <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>
2097 <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>
2098 <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>
2099 <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>
2100 <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>
2101 <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>
2102 <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>
2103 <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>
2104 <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>
2105 <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>
2106 <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>
2107 <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>
2108 <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>
2109 <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>
2110 <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>
2111 <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>
2112 <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>
2113 <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>
2114 <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>
2115 <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>
2116 <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>
2117 <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>
2118 <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>
2119 <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>
2120 <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>
2121 <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>
2122 <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>
2123 <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>
2124 <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>
2125 <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>
2126 <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>
2127 <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>
2128 <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>
2129 <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>
2130 <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>
2131 <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>
2132 <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>
2133 <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>
2134 <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>
2135 <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>
2136 <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>
2137 <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>
2138 <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>
2139 <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>
2140 <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>
2141 <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>
2142 <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>
2143 <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>
2144 <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>
2145 <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>
2146 <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>
2147 <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>
2148 <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>
2149 <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>
2150 <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>
2151 <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>
2152 <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>
2153 <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>
2154 <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>
2155 <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>
2156 <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>
2157 <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>
2158 <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>
2159 <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>
2160 <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>
2161 <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>
2162 <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>
2163 <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>
2164 <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>
2165 <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>
2166 <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>
2167 <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>
2168 <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>
2169 <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>
2170 <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>
2171 <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>
2172 <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>
2173 <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>
2174 <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>
2175 <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>
2176 <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>
2177 <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>
2178 <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>
2179 <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>
2180 <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>
2181 <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>
2182 <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>
2183 <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>
2184 <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>
2185 <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>
2186 <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>
2187 <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>
2188 <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>
2189 <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>
2190 <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>
2191 <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>
2192 <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>
2193 <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>
2194 <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>
2195 <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>
2196 <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>
2197 <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>
2198 <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>
2199 <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>
2200 <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>
2201 <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>
2202 <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>
2203 <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>
2204 <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>
2205 <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>
2206 <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>
2207 <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>
2211 <p>Det kunne vært interessant å se hva som skjedde hvis en ba om
2212 innsyn i en dokument-ID som ikke finnes i OEP... :) Det hadde også
2213 vært interessant å få vite hva årsaken til at noen saksnummer ikke
2214 dukker opp i OEP der det er få og mange. Jeg mistenker jo at årsaken
2215 ikke er den samme hos Skattedirektoratet og hos Landinfo, selv om
2216 andelen upubliserte nummer er ganske lik.
</p>
2222 Tags:
<a href=
"https://people.skolelinux.org/pere/blog/tags/noark5">noark5
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/norsk">norsk
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/nuug">nuug
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn
</a>.
2227 <div class=
"padding"></div>
2231 <a href=
"https://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>
2237 <p>For noen uker siden ble NXCs fri programvarelisenserte
2239 <a href=
"http://www.nuug.no/aktiviteter/20140211-noark/">presentert hos
2241 <a href=
"https://www.youtube.com/watch?v=JCb_dNS3MHQ">på youtube
2242 foreløbig
</a>), og det fikk meg til å titte litt mer på NOARK5,
2243 standarden for arkivhåndtering i det offentlige Norge. Jeg lurer på
2244 om denne kjernen kan være nyttig i et par av mine prosjekter, og for ett
2245 av dem er det mest aktuelt å lagre epost. Jeg klarte ikke finne noen
2246 anbefaling om hvordan RFC
822-formattert epost (aka Internett-epost)
2247 burde lagres i NOARK5, selv om jeg vet at noen arkiver tar
2248 PDF-utskrift av eposten med sitt epostprogram og så arkiverer PDF-en
2249 (eller enda værre, tar papirutskrift og lagrer bildet av eposten som
2252 <p>Det er ikke så mange formater som er akseptert av riksarkivet til
2253 langtidsoppbevaring av offentlige arkiver, og PDF og XML er de mest
2254 aktuelle i så måte. Det slo meg at det måtte da finnes en eller annen
2255 egnet XML-representasjon og at det kanskje var enighet om hvilken som
2256 burde brukes, så jeg tok mot til meg og spurte
2257 <a href=
"http://samdok.com/">SAMDOK
</a>, en gruppe tilknyttet
2258 arkivverket som ser ut til å jobbe med NOARK-samhandling, om de hadde
2264 <p>Usikker på om dette er riktig forum å ta opp mitt spørsmål, men jeg
2265 lurer på om det er definert en anbefaling om hvordan RFC
2266 822-formatterte epost (aka vanlig Internet-epost) bør lages håndteres
2267 i NOARK5, slik at en bevarer all informasjon i eposten
2268 (f.eks. Received-linjer). Finnes det en anbefalt XML-mapping ala den
2270 <URL:
<a href=
"https://www.informit.com/articles/article.aspx?p=32074">https://www.informit.com/articles/article.aspx?p=
32074</a> >? Mitt
2271 mål er at det skal være mulig å lagre eposten i en NOARK5-kjerne og
2272 kunne få ut en identisk formattert kopi av opprinnelig epost ved
2276 <p>Postmottaker hos SAMDOK mente spørsmålet heller burde stilles
2277 direkte til riksarkivet, og jeg fikk i dag svar derfra formulert av
2278 seniorrådgiver Geir Ivar Tungesvik:
</p>
2281 <p>Riksarkivet har ingen anbefalinger når det gjelder konvertering fra
2282 e-post til XML. Det står arkivskaper fritt å eventuelt definere/bruke
2283 eget format. Inklusive da - som det spørres om - et format der det er
2284 mulig å re-etablere e-post format ut fra XML-en. XML (e-post)
2285 dokumenter må være referert i arkivstrukturen, og det må vedlegges et
2286 gyldig XML skjema (.xsd) for XML-filene. Arkivskaper står altså fritt
2287 til å gjøre hva de vil, bare det dokumenteres og det kan dannes et
2288 utrekk ved avlevering til depot.
</p>
2290 <p>De obligatoriske kravene i Noark
5 standarden må altså oppfylles -
2291 etter dialog med Riksarkivet i forbindelse med godkjenning. For
2292 offentlige arkiv er det særlig viktig med filene loependeJournal.xml
2293 og offentligJournal.xml. Private arkiv som vil forholde seg til Noark
2294 5 standarden er selvsagt frie til å bruke det som er relevant for dem
2295 av obligatoriske krav.
</p>
2298 <p>Det ser dermed ut for meg som om det er et lite behov for å
2299 standardisere XML-lagring av RFC-
822-formatterte meldinger. Noen som
2300 vet om god spesifikasjon i så måte? I tillegg til den omtalt over,
2301 har jeg kommet over flere aktuelle beskrivelser (søk på "rfc
822
2302 xml", så finner du aktuelle alternativer).
</p>
2306 <li><a href=
"http://www.openhealth.org/xmtp/">XML MIME Transformation
2307 protocol (XMTP)
</a> fra OpenHealth, sist oppdatert
2001.
</li>
2309 <li><a href=
"https://tools.ietf.org/html/draft-klyne-message-rfc822-xml-03">An
2310 XML format for mail and other messages
</a> utkast fra IETF datert
2313 <li><a href=
"http://www.informit.com/articles/article.aspx?p=32074">xMail:
2314 E-mail as XML
</a> en artikkel fra
2003 som beskriver python-modulen
2315 rfc822 som gir ut XML-representasjon av en RFC
822-formattert epost.
</li>
2319 <p>Finnes det andre og bedre spesifikasjoner for slik lagring? Send
2320 meg en epost hvis du har innspill.
</p>
2326 Tags:
<a href=
"https://people.skolelinux.org/pere/blog/tags/noark5">noark5
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/norsk">norsk
</a>,
<a href=
"https://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn
</a>.
2331 <div class=
"padding"></div>
2333 <p style=
"text-align: right;"><a href=
"noark5.rss"><img src=
"https://people.skolelinux.org/pere/blog/xml.gif" alt=
"RSS Feed" width=
"36" height=
"14" /></a></p>
2344 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2023/01/">January (
2)
</a></li>
2351 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2022/02/">February (
1)
</a></li>
2353 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2022/03/">March (
3)
</a></li>
2355 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2022/04/">April (
2)
</a></li>
2357 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2022/06/">June (
2)
</a></li>
2359 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2022/07/">July (
1)
</a></li>
2361 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2022/09/">September (
1)
</a></li>
2363 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2022/10/">October (
1)
</a></li>
2365 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2022/12/">December (
1)
</a></li>
2372 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2021/01/">January (
2)
</a></li>
2374 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2021/02/">February (
1)
</a></li>
2376 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2021/05/">May (
1)
</a></li>
2378 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2021/06/">June (
1)
</a></li>
2380 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2021/07/">July (
3)
</a></li>
2382 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2021/08/">August (
1)
</a></li>
2384 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2021/09/">September (
1)
</a></li>
2386 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2021/10/">October (
1)
</a></li>
2388 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2021/12/">December (
1)
</a></li>
2395 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2020/02/">February (
2)
</a></li>
2397 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2020/03/">March (
2)
</a></li>
2399 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2020/04/">April (
2)
</a></li>
2401 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2020/05/">May (
3)
</a></li>
2403 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2020/06/">June (
2)
</a></li>
2405 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2020/07/">July (
1)
</a></li>
2407 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2020/09/">September (
1)
</a></li>
2409 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2020/10/">October (
1)
</a></li>
2411 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2020/11/">November (
1)
</a></li>
2418 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2019/01/">January (
4)
</a></li>
2420 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2019/02/">February (
3)
</a></li>
2422 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2019/03/">March (
3)
</a></li>
2424 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2019/05/">May (
2)
</a></li>
2426 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2019/06/">June (
5)
</a></li>
2428 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2019/07/">July (
2)
</a></li>
2430 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2019/08/">August (
1)
</a></li>
2432 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2019/09/">September (
1)
</a></li>
2434 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2019/11/">November (
1)
</a></li>
2436 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2019/12/">December (
4)
</a></li>
2443 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2018/01/">January (
1)
</a></li>
2445 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2018/02/">February (
5)
</a></li>
2447 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2018/03/">March (
5)
</a></li>
2449 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2018/04/">April (
3)
</a></li>
2451 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2018/06/">June (
2)
</a></li>
2453 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2018/07/">July (
5)
</a></li>
2455 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2018/08/">August (
3)
</a></li>
2457 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2018/09/">September (
3)
</a></li>
2459 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2018/10/">October (
5)
</a></li>
2461 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2018/11/">November (
2)
</a></li>
2463 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2018/12/">December (
4)
</a></li>
2470 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2017/01/">January (
4)
</a></li>
2472 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2017/02/">February (
3)
</a></li>
2474 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2017/03/">March (
5)
</a></li>
2476 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2017/04/">April (
2)
</a></li>
2478 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2017/06/">June (
5)
</a></li>
2480 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2017/07/">July (
1)
</a></li>
2482 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2017/08/">August (
1)
</a></li>
2484 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2017/09/">September (
3)
</a></li>
2486 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2017/10/">October (
5)
</a></li>
2488 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2017/11/">November (
3)
</a></li>
2490 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2017/12/">December (
4)
</a></li>
2497 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2016/01/">January (
3)
</a></li>
2499 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2016/02/">February (
2)
</a></li>
2501 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2016/03/">March (
3)
</a></li>
2503 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2016/04/">April (
8)
</a></li>
2505 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2016/05/">May (
8)
</a></li>
2507 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2016/06/">June (
2)
</a></li>
2509 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2016/07/">July (
2)
</a></li>
2511 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2016/08/">August (
5)
</a></li>
2513 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2016/09/">September (
2)
</a></li>
2515 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2016/10/">October (
3)
</a></li>
2517 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2016/11/">November (
8)
</a></li>
2519 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2016/12/">December (
5)
</a></li>
2526 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2015/01/">January (
7)
</a></li>
2528 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2015/02/">February (
6)
</a></li>
2530 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2015/03/">March (
1)
</a></li>
2532 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2015/04/">April (
4)
</a></li>
2534 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2015/05/">May (
3)
</a></li>
2536 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2015/06/">June (
4)
</a></li>
2538 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2015/07/">July (
6)
</a></li>
2540 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2015/08/">August (
2)
</a></li>
2542 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2015/09/">September (
2)
</a></li>
2544 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2015/10/">October (
9)
</a></li>
2546 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2015/11/">November (
6)
</a></li>
2548 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2015/12/">December (
3)
</a></li>
2555 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2014/01/">January (
2)
</a></li>
2557 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2014/02/">February (
3)
</a></li>
2559 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2014/03/">March (
8)
</a></li>
2561 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2014/04/">April (
7)
</a></li>
2563 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2014/05/">May (
1)
</a></li>
2565 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2014/06/">June (
2)
</a></li>
2567 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2014/07/">July (
2)
</a></li>
2569 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2014/08/">August (
2)
</a></li>
2571 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2014/09/">September (
5)
</a></li>
2573 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2014/10/">October (
6)
</a></li>
2575 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2014/11/">November (
3)
</a></li>
2577 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2014/12/">December (
5)
</a></li>
2584 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2013/01/">January (
11)
</a></li>
2586 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2013/02/">February (
9)
</a></li>
2588 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2013/03/">March (
9)
</a></li>
2590 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2013/04/">April (
6)
</a></li>
2592 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2013/05/">May (
9)
</a></li>
2594 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2013/06/">June (
10)
</a></li>
2596 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2013/07/">July (
7)
</a></li>
2598 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2013/08/">August (
3)
</a></li>
2600 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2013/09/">September (
5)
</a></li>
2602 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2013/10/">October (
7)
</a></li>
2604 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2013/11/">November (
9)
</a></li>
2606 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2013/12/">December (
3)
</a></li>
2613 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2012/01/">January (
7)
</a></li>
2615 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2012/02/">February (
10)
</a></li>
2617 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2012/03/">March (
17)
</a></li>
2619 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2012/04/">April (
12)
</a></li>
2621 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2012/05/">May (
12)
</a></li>
2623 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2012/06/">June (
20)
</a></li>
2625 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2012/07/">July (
17)
</a></li>
2627 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2012/08/">August (
6)
</a></li>
2629 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2012/09/">September (
9)
</a></li>
2631 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2012/10/">October (
17)
</a></li>
2633 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2012/11/">November (
10)
</a></li>
2635 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2012/12/">December (
7)
</a></li>
2642 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2011/01/">January (
16)
</a></li>
2644 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2011/02/">February (
6)
</a></li>
2646 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2011/03/">March (
6)
</a></li>
2648 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2011/04/">April (
7)
</a></li>
2650 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2011/05/">May (
3)
</a></li>
2652 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2011/06/">June (
2)
</a></li>
2654 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2011/07/">July (
7)
</a></li>
2656 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2011/08/">August (
6)
</a></li>
2658 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2011/09/">September (
4)
</a></li>
2660 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2011/10/">October (
2)
</a></li>
2662 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2011/11/">November (
3)
</a></li>
2664 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2011/12/">December (
1)
</a></li>
2671 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2010/01/">January (
2)
</a></li>
2673 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2010/02/">February (
1)
</a></li>
2675 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2010/03/">March (
3)
</a></li>
2677 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2010/04/">April (
3)
</a></li>
2679 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2010/05/">May (
9)
</a></li>
2681 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2010/06/">June (
14)
</a></li>
2683 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2010/07/">July (
12)
</a></li>
2685 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2010/08/">August (
13)
</a></li>
2687 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2010/09/">September (
7)
</a></li>
2689 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2010/10/">October (
9)
</a></li>
2691 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2010/11/">November (
13)
</a></li>
2693 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2010/12/">December (
12)
</a></li>
2700 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2009/01/">January (
8)
</a></li>
2702 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2009/02/">February (
8)
</a></li>
2704 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2009/03/">March (
12)
</a></li>
2706 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2009/04/">April (
10)
</a></li>
2708 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2009/05/">May (
9)
</a></li>
2710 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2009/06/">June (
3)
</a></li>
2712 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2009/07/">July (
4)
</a></li>
2714 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2009/08/">August (
3)
</a></li>
2716 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2009/09/">September (
1)
</a></li>
2718 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2009/10/">October (
2)
</a></li>
2720 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2009/11/">November (
3)
</a></li>
2722 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2009/12/">December (
3)
</a></li>
2729 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2008/11/">November (
5)
</a></li>
2731 <li><a href=
"https://people.skolelinux.org/pere/blog/archive/2008/12/">December (
7)
</a></li>
2742 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (
19)
</a></li>
2744 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/amiga">amiga (
1)
</a></li>
2746 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/aros">aros (
1)
</a></li>
2748 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/bankid">bankid (
4)
</a></li>
2750 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/betalkontant">betalkontant (
9)
</a></li>
2752 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (
12)
</a></li>
2754 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (
17)
</a></li>
2756 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/bsa">bsa (
2)
</a></li>
2758 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (
2)
</a></li>
2760 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/debian">debian (
186)
</a></li>
2762 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (
159)
</a></li>
2764 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/debian-handbook">debian-handbook (
9)
</a></li>
2766 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/digistan">digistan (
11)
</a></li>
2768 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/dld">dld (
18)
</a></li>
2770 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/docbook">docbook (
30)
</a></li>
2772 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (
4)
</a></li>
2774 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/english">english (
442)
</a></li>
2776 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (
23)
</a></li>
2778 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (
14)
</a></li>
2780 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (
34)
</a></li>
2782 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (
9)
</a></li>
2784 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (
20)
</a></li>
2786 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/h264">h264 (
20)
</a></li>
2788 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/intervju">intervju (
43)
</a></li>
2790 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (
16)
</a></li>
2792 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/kart">kart (
23)
</a></li>
2794 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/kodi">kodi (
4)
</a></li>
2796 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/ldap">ldap (
9)
</a></li>
2798 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/lego">lego (
5)
</a></li>
2800 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/lenker">lenker (
8)
</a></li>
2802 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/linuxcnc">linuxcnc (
4)
</a></li>
2804 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/lsdvd">lsdvd (
2)
</a></li>
2806 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (
1)
</a></li>
2808 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/madewithcc">madewithcc (
3)
</a></li>
2810 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (
8)
</a></li>
2812 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (
44)
</a></li>
2814 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/nice free software">nice free software (
13)
</a></li>
2816 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/noark5">noark5 (
23)
</a></li>
2818 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/norsk">norsk (
320)
</a></li>
2820 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/nuug">nuug (
198)
</a></li>
2822 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (
40)
</a></li>
2824 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/open311">open311 (
2)
</a></li>
2826 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (
75)
</a></li>
2828 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/personvern">personvern (
114)
</a></li>
2830 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/raid">raid (
2)
</a></li>
2832 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/reactos">reactos (
1)
</a></li>
2834 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/reprap">reprap (
11)
</a></li>
2836 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/rfid">rfid (
3)
</a></li>
2838 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/robot">robot (
17)
</a></li>
2840 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/rss">rss (
1)
</a></li>
2842 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/ruter">ruter (
7)
</a></li>
2844 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (
2)
</a></li>
2846 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (
59)
</a></li>
2848 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (
4)
</a></li>
2850 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (
5)
</a></li>
2852 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/standard">standard (
74)
</a></li>
2854 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (
7)
</a></li>
2856 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (
14)
</a></li>
2858 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (
64)
</a></li>
2860 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (
5)
</a></li>
2862 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/usenix">usenix (
2)
</a></li>
2864 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/valg">valg (
9)
</a></li>
2866 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/verkidetfri">verkidetfri (
20)
</a></li>
2868 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/video">video (
77)
</a></li>
2870 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (
4)
</a></li>
2872 <li><a href=
"https://people.skolelinux.org/pere/blog/tags/web">web (
42)
</a></li>
2878 <p style=
"text-align: right">
2879 Created by
<a href=
"http://steve.org.uk/Software/chronicle">Chronicle v4.6
</a>