N3O Visions arbetsunderlag för norsk lagdata — vad vi hämtat, testat och byggt. Ingen teori: allt nedan är kört mot riktiga källor.
Lovdata (Norges motsvarighet till SFS/lagrummet) öppnade nyligen ett fritt API för hela det gällande lagverket. Vi har verifierat det genom att faktiskt ladda ner och öppna datat:
legalArticle, varje ledd en legalP, med ändringshistorik per paragraf.Körtid: sekunder. Resultat över hela norska lagverket:
* inkl. 1 nynorsk-versjon av Grunnloven — 762 unika lover.
Exempel — Grunnloven § 100 (ytringsfrihet), direkt ur pipelinen:
{
"ref": "§100",
"url": "NL/lov/1814-05-17/§100",
"ledd": [
{ "id": "kapittel-5-paragraf-9-ledd-1",
"text": "Ytringsfrihet bør finne sted." },
{ "id": "kapittel-5-paragraf-9-ledd-2",
"text": "Ingen kan holdes rettslig ansvarlig for å ha meddelt eller
mottatt opplysninger, ideer og budskap med mindre …" }
],
"changes": ["Endret ved grunnlovsvedtak 30 sep 2004 …"]
}
Varje lag bär dessutom metadata: dokument-ID, departement, rättsområde, ikraftträdandedatum och "sist endret ved"-referenser.
Källan, direkt från Lovdata (ingen nyckel behövs):
# Lista gratis-dataseten curl https://api.lovdata.no/v1/publicData/list # Hämta alla gällande lover (5,8 MB, uppdateras varje natt) curl -O https://api.lovdata.no/v1/publicData/get/gjeldende-lover.tar.bz2
Vår output, att ladda ner och granska:
| Fil | Innehåll | Storlek |
|---|---|---|
| grunnloven.json | Grunnloven komplett som strukturerad JSON | 104 kB |
| norge-lover-json.tar.gz | Alla 763 lagdokument som JSON — hela körningen | 5,3 MB |
| parse_lovdata.py | Parsern som byggde ovanstående. Stdlib only, inga deps. | 5,6 kB |
Kör parsern mot arkivet ni själva hämtar från Lovdata och jämför — det är hela poängen.
Viktig distinktion: Norge är inte EU-medlem utan EES-land. EU-regler som gäller Norge tas in i norsk rätt via EØS-avtalet och blir norska lover/forskrifter — och ligger då i Lovdata-datat. Ett förbehåll: en del EØS-regler genomförs "ved henvisning", dvs. den norska forskriften pekar på EU-förordningen i stället för att återge texten — där behövs EU-texten som komplement. Omfattningen av det behöver kartläggas innan man lovar något.
"EU-lag över nationell lag"-problemet gäller den svenska produkten, där EU-förordningar gäller direkt. Där är datat åtkomligt: EU:s publikationsbyrå exponerar hela regelverket (2,7 M+ dokument) strukturerat via CELLAR — SPARQL + REST. Att hämta EU-datat är enkelt; att koppla EU-akter till rätt svenska paragrafer är däremot ett större arbete som behöver skopas separat.
Modellen: N3O levererar länder som färdig, nattligt synkad data — i mottagarens eget schema.
En ögonblicksbild av gällande rätt räcker inte för juridisk användning. Frågan en jurist ställer är "vilken lydelse gällde den 3 mars?" — och den kräver historik, inte senaste versionen.
Därför kör vi nattlig synk mot Lovdata (03:00) som tar en snapshot av hela lagverket och diffar den mot gårdagens. Varje paragraf har en stabil identitet och en innehållshash, så rapporten blir exakt:
Diffen fångar fem typer av händelser: ny lag, upphävd lag, ny paragraf, borttagen paragraf och ändrad paragraf — den sista med lydelsen före och efter. Verifierat mot syntetiskt muterade snapshots (alla fem typer fångas), och pipelinen körde skarpt på 13 sekunder.
Två detaljer som avgör om diffen går att lita på, och som vi redan löst: Grunnloven finns i både bokmål och nynorsk med samma dokument-ID (nyckling på ID tappar en version), och fyra lagar — bl.a. sjøloven — upprepar samma artikelnummer i olika bilagor. Båda hanteras, med noll tappade paragrafer.
Från datat till en färdig produkt: en granskare för norska barnevernssaker, byggd på det strukturerade Lovdata-datat ovan. Tre granskare läser dokumentet parallellt — metode, saksbehandling og rettigheter — mot barnevernsloven, forvaltningsloven, barnelova, Grunnloven och menneskerettsloven, med kilde for hvert funn.
→ norge.n3ovision.com/barnevern — öppen, ingen inloggning. Tar undersøkelsesrapporter, vedtak om omsorgsovertakelse och sakkyndigrapporter, som PDF eller mobilfoto.
Testad 3 aug med 15 körningar mot tre fiktiva norska testdokument: på ett korrekt skrivet vedtak ger den få, försiktiga fynd; på en utredning med planterade fel hittar den samtliga kärnfel i alla körningar — bl.a. nedvärderad barnröst, kontradiktionsbrister och outredda alternativhypoteser. Den citerar aldrig rättspraxis utanför sitt källmaterial och konkluderar aldrig om lovbrudd.
| Datum | Händelse |
|---|---|
| 7 aug | Rättelse: 88 267 → 70 044 ledd. Parsern klippte ledd som innehåller nästlade listor (mönstret legalP > ol > li > legalP, t.ex. barnevernsloven § 5-1): inledningstexten före listan försvann och punkterna räknades som egna ledd. Nu hålls hela leddet ihop i dokumentordning med lagens egna punktmarkörer — antalet sjunker eftersom listpunkter inte längre räknas separat, medan texten blir mer komplett (4 749 paragrafer fick längre text, ingen kortare). Bifynd: buggen hade även lyft in upphävd lagtext som gällande (skatteloven § 6-83, opphevet 2011, låg kvar via citatet i ändringsnoten "Paragrafen lød før oppheving") — nu korrekt utsorterad. Baslinjen för nattliga diffen ombyggd i samma körning. Lag-, kapitel- och paragrafantal oförändrade. |
| 25 jul | Lovdata-API:t verifierat genom nedladdning. Parser byggd och körd över hela norska lagverket (763 lagdokument → 69 927 ledd). Nedladdningsbara artefakter publicerade. Denna sida upprättad. |
| 25 jul | Versionshantering i drift. Nattlig synk mot Lovdata (03:00) med snapshot + paragrafdiff — ändringslogg byggs från och med i dag. Se avsnitt 06. |
| 3 aug | Barnevernsgranskeren live på /barnevern/ — granskningsprofil för norska barnevernssaker (65 rättskällor ur Lovdata-datat: barnevernsloven, forvaltningsloven, barnelova, Grunnloven, menneskerettsloven). Testad med 15 körningar mot tre fiktiva norska dokument: stabila fynd, inga fabricerade, korrekt återhållsam på felfria dokument. Se avsnitt 05b. |
| 28 jul | Rättelse: 69 927 → 88 267 ledd. Parsern läste legalP men inte numberedLegalP, vilket gjorde att 4 320 paragrafer kom ut tomma — bland dem barnkonventionen art. 3 och 12 samt EMK art. 8. I paragrafer som blandar numrerade och onumrerade ledd blev texten dessutom förskjuten. Fixat, och baslinjen för den nattliga diffen ombyggd i samma körning så att rättelsen inte rapporteras som lagändringar. Lag-, kapitel- och paragrafantal är oförändrade. |
Sidan uppdateras löpande med status — bokmärk den.