N3O Vision · lagdata

🇳🇴 Norge: färdigverifierat.

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.

01Datakällan finns — och den är öppen

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:

Gratis, ingen registrering, ingen API-nyckel. Licens NLOD 2.0 — fri användning, även kommersiell.
Uppdateras varje natt (~01:30) — nattens fil var daterad samma dag vi testade.
Semantisk markup, inte skrapning: varje paragraf är en legalArticle, varje ledd en legalP, med ändringshistorik per paragraf.
Tre dataset: gällande lover (5,8 MB), sentrale forskrifter (21 MB), historik 2001–2025 (69 MB).
Lokale forskrifter (kommunnivå) ingår inte i gratis-dataseten — det lagret kräver eget arbete. Vi ser det som en möjlighet, inte ett hinder.

02Vi har redan byggt pipelinen

curl api.lovdata.no parser (semantisk HTML) strukturerad JSON

Körtid: sekunder. Resultat över hela norska lagverket:

763
lagdokument*
5 362
kapitel
28 709
paragrafer
70 044
ledd

* 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.

02bTesta själv — inga påståenden, bara filer

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:

FilInnehållStorlek
grunnloven.json Grunnloven komplett som strukturerad JSON104 kB
norge-lover-json.tar.gz Alla 763 lagdokument som JSON — hela körningen5,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.

03EU-lagret — gäller Sverige, inte Norge

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.

04Förslag: land för land

Modellen: N3O levererar länder som färdig, nattligt synkad data — i mottagarens eget schema.

  1. Målschemat delas (formatet datat ska levereras i).
  2. Vi mappar Norge-pipelinen till det och levererar ett sample — t.ex. 10 lover i exakt det formatet — inom några dagar.
  3. Godkänt sample → hela Norge med nattlig synk mot Lovdata.
  4. Sedan nästa lager/land: EU-kopplingen, lokale forskrifter, Danmark … Samma pipeline, ny källa.

05Versionshantering — i drift sedan i dag

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:

nattlig hämtning snapshot (28 709 § hashade) diff mot gårdagen ändringsrapport

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.

05bBarnevernsgranskeren — live och testad

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.

06Logg

DatumHändelse
7 augRä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 julLovdata-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 julVersionshantering i drift. Nattlig synk mot Lovdata (03:00) med snapshot + paragrafdiff — ändringslogg byggs från och med i dag. Se avsnitt 06.
3 augBarnevernsgranskeren live/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 julRä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.