Posts Tagged ‘semantic web’

Mer om semweb-utveckling och nya features på lagen.nu

Thursday, September 3rd, 2009

Nu har det varit obegripligt tyst här på bloggen ett bra tag, trots att det hänt massor som är värt att berätta om. Eller så är det just för att det hänt massor som det varit tyst på bloggen.

I vart fall så har sommaren ägnats åt lagen.nu-projektet, som nu går in i sin tredje månad. Jag har delat min tid ungefär lika mellan systemutveckling av själva teknikplattformen och projektledning av de som skriver. Den senare delen av arbetet är förstås den mest spännande, men den kan med fördel följas på lagen.nu-utveckling-listan, som jag tycker du ska gå med på. Eller så kan du bli ett fan av lagen.nu på facebook!

Men teknikutvecklingen har jag inte skrivit så mycket om varken här eller där, så nu är det dags. Den ombyggnad som jag beskrev här, som rör hur data från olika källor pusslas ihop med hjälp av SPARQL, har driftssatts och funkar hyfsat bra. Jag har en del problem med Sesame, där vissa saker tar omotiverat mycket tid, särskilt på linuxplattformen, men det funkar iaf, sort of. Jag har också fått en del tips på hur man kan undvika de långa kedjor av w dct:isPartOf x . x dct:isPartOf y . y dct:isPartOf z som jag idag använder. Lösningen går ut på att tala om för Sesame att dct:isPartOf är en TransitiveProperty och sedan be Sesame använda inference — på det viset kan Sesame själv förstå att w dct:isPartOf z. Exakt hur man faktiskt gör det har jag dock inte läst mig till än.

Den nya versionen finns i betatest på ferenda.lagen.nu, och vana lagen.nu-besökare kommer se ett antal förändringar redan i den grafiska designen. Sidorna är uppbyggda med en smal högerkolumn som oftast visar någon innehållsförteckning eller liknande, samt två lika breda kolumner som visar själva dokumenttexten, samt metadata kring dokumentet, exempelvis en kommentar till en paragraf, eller en lista av rättsfall som hänvisar till paragrafen. Varje kategori av metadata visas i en box som kan expanderas eller kollapsas. Det finns även en ny kategori av rättsinformation vid sidan av “Lagar” och “Domar”, nämligen “Begrepp” (men säg inte till någon jurist att jag betraktar begrepp som en rättskälla, då blir jag anklagad för att syssla med begreppsjurisprudens).

Utöver denna nya formgivning finns även ett antal nya funktioner. Jag tänkte gå igenom två av dem och visa hur den RDF/SPARQL-baserade plattformen gjort det snabbare att lägga till dem. Att lägga till ny funktionalitet på lagen.nu innebär att på ett eller annat sätt utvinna data (dokument) och metadata (egenskaper hos dokument) om/från rättskällor, för att sedan presentera och framförallt korskoppla denna data/metadata.

“Lagrum som hänvisar hit”: Bredvid varje paragraf så finns det en box (med rubriken “Lagrumshänvisningar hit”) som innehåller en lista över olika ställen i denna eller andra lagar som hänvisar till den aktuella paragrafen. Minnesgoda bloggläsare känner igen detta från det paper jag och Christine Kirchberger skrev förra vintern. Det är också implementerat på ungefär samma sätt, med en SPARQL-fråga vars svar vävs ihop med lagtexten genom XSLT. Den största skillnaden är att jag vid sidgenereringen ställer ett antal olika SPARQL-frågor (en för varje boxtyp, ungefär), väver ihop svaren till en RDF/XML-fil, som sedan används från XSLT. Det finns lite kvar att göra på den här funktionen, framförallt kryptiska beteckningar i stil med “SFS 2000:1225, P1S4″ bytas ut mot kryptiska beteckningar i stil med “1 § 4 st lagen (2000:1225) om straff för smuggling”.

Den här funktionen kunde alltså realiseras med hjälp av metadata som redan fanns, och det system för att väva ihop data och medatada som också redan fanns. Den enda nyutvecklingen var en ny SPARQL-fråga och en ny funktion i XSLT-stylesheetet.

“Legaldefinitioner”: I lagtext finns det ofta olika typer av begreppsdefinitioner. Dessa definitioner förekommer vanligtvis i samband med någon form av fasta uttrycksformer:

Tabellform, exv PUL 3 §:

I denna lag används följande beteckningar med nedan angiven betydelse.

BeteckningBetydelse
PersonuppgifterAll slags information som direkt eller indirekt kan hänföras till en fysisk person som är i livet.

Listform, exv LEK 1:7:

I lagen avses med

abonnent: den som har ingått avtal med en leverantör av allmänt tillgängliga elektroniska kommunikationstjänster om tillhandahållande av sådana tjänster,

Löpande form, exv PAL 2 §:

Med produkter avses i denna lag lösa saker. En produkt som har infogats eller på annat sätt blivit en beståndsdel i någon annan lös egendom eller i fast egendom skall alltjämt anses i lagens mening utgöra en produkt för sig.

Parantesform, exv JB 4:19 a

Köparen får inte åberopa att fastigheten är felaktig enligt 11, 12 och 17–19 §§, om han inte lämnar säljaren meddelande om felet inom skälig tid efter det att han märkt eller borde ha märkt felet (reklamation).

Brottsrubriceringsform, exv BrB 17:4

Den som, utan att fall är för handen som förut i detta kapitel är sagt, genom att sätta sig till motvärn eller eljest med våld söker hindra någon i hans myndighetsutövning, dömes för våldsamt motstånd till böter eller fängelse i högst sex månader.

En definition av ett begrepp som finns i lagtext kallas vanligen legaldefinition och har förstås en särskild tyngd jämfört med de definitioner som vi vanliga dödliga kan åstadkomma. Därför är det intressant att försöka känna igen legaldefinitionsmässigt. Hur man gör rent textprocessingsmässigt för att göra det tänker jag inte gå in på här, men den korta versionen är att det inbegriper ett stort antal, allt hårigare, regexpar. Den långa versionen finns i den allt mer feldöpta funktionen _construct_ids. Det är i vart fall inte särskilt svårt, utan jobbet ligger mest i att hitta de olika uttrycksformerna och skriva testfall. Poängen är att efter vi kört våra regexpar så har vi ytterligare drygt tusen RDF-triples på formen:

<http://rinfo.lagrummet.se/publ/sfs/1962:700#K17P4> dct:subject "Våldsamt motstånd"@sv

Under den nya fliken “Begrepp” har vi samlat begrepp från 3½ olika håll – de begrepp vi själva beskrivit i lagkommenteringsprojektet, de begrepp som används som sökord i rättsfall och de legaldefinitioner som vi utvunnit enligt ovan (samt information om huruvida svenska Wikipedia har en sida om begreppet).

För att skapa en sådan sida — exempelvis för begreppet “Konsument” – hämtar vi all data från Sesame. Tre SPARQL-frågor, samma process för att slå ihop svaren till en RDF/XML-fil, (nästan) samma process för att väva ihop ett källdokument (som i detta fallet bara innehåller själva begreppet som titel) med RDF-datan. Ny funktionalitet med ganska liten arbetsinsats.

(Även innehållsförteckningarna under flikarna “Lagar”, “Domar” och “Begrepp” genereras nu på samma sätt — in med en stor RDF-graf, några konfigurationsparametrar och ut kommer ett antal hundra sidor som sammanlagt bildar ett index över all information av en viss typ som finns i systemet).

Diverse skriverier

Wednesday, April 1st, 2009

Lite tyst här på sistone — jag jobbar mer eller mindre frenetiskt på andra saker just nu, bland annat på den allra sista kursen jag ska gå på juristprogrammet. Känns lite märkligt.

Men jag har skrivit saker på annat håll. Först upp, två krönikor i TechWorld, en om problemen med teknikneutral lagstiftning (där jag i stort utgår från vad Rasmus Fleisher sa för två år sedan), och en annan om lagstiftaren som systemarkitekt (som i princip bygger på ett tema Nicklas Lundblad presenterade för tre år sedan). Medelmåttor lånar, genier stjäl. Detta är mina sista krönikor för Techworld, vilket är synd, för jag gillade verkligen att ha deadlines, läsarkrets och inkomst. Om du vill att jag ska skriva åt just dig och kan erbjuda dessa tre faktorer, hör av dig.

Jag har tidigare nämnt att jag höll på med en text om lagen.nu till Lov & Data – nu är tidningen ute, och här kan du läsa artikeln. Om du inte redan prenumererar på Lov & Data rekommenderas ett medlemsskap i ADBJ, då en prenumeration ingår, samt tillträde till en massa intressanta seminarier i Stockholmsområdet.

För lite längre sedan skrev jag och Christine Kirchberger ett paper till en workshop vid Jurix 2008. Det kanske kommer publiceras officiellt i någon form någon gång, men tills dess finns vårt paper “Inbound links – picking the low hanging fruit from the semantic web” tillgängligt här. Bör vara intressant för både teoretiskt lagda jurister och semantic web-intressenter.

Avslutningsvis har jag även blivit skriven om: Juridicums nyhetsbrev gjorde en liten intervju angående lagen.nu. Superkul!

Antagen till JURIX-workshop!

Friday, December 5th, 2008

För några veckor sedan, mitt under brinnande konferensförberedelser, skrev jag och Christine Kirchberger ett paper om rättsinformation och semantic web, kallat “Inbound links – picking the low hanging fruit from the semantic web”. Pappret handlar om begreppet hänvisningar i juridik och hypertext, och beskriver ett exempel på en tillämpning – hur man under varje paragraf i en lagtext listar andra paragrafer som hänvisar dit – som man kan realisera med extremt enkla medel (ett minimalt XSLT-stylesheet som använder sig av en superenkel SPARQL-fråga).

Nu har det blivit antaget till en workshop vid den anrika JURIX-konferensen, som detta år äger rum i Florens, och vi har blivit inbjudna dit för att på femton minuter redogöra för våra resultat (programmet finns här, vi talar under punkten “Workshop on Legislative XML”). Efter att ha sysslat med rättsinformation i några år på hobbybasis är det otroligt kul att dels få samarbeta med en doktorand på området, dels få presentera vårt resultat i ett internationellt sammanhang. Nu ska jag bara tygla min nervositet (och motivera varför vi inte använt oss av Metalex som format).

Det hela äger rum nästa vecka, och förmodligen läggs även vårt paper ut någonstans på Jurix-webbplatsen då — återkommer med länk!

Uppdatering: Nu finns även workshopprogramet tillgängligt som PDF.

Dagens uppLYSning om RDF

Tuesday, September 30th, 2008

Ikväll klockan 18:15 håller jag en upplysning om informationsmodellering, RDF och annan semantic web-teknologi, mot bakgrund av hur jag använt dem i lagen.nu. Här är de slides jag tänkt använda, återigen i S5-format. Eftersom jag använder object-taggen för att länka in live-webbsidor funkar det kanske inte i alla webbläsare, men det verkar funka i min Firefox iallafall. Är du i Linköping ikväll, kom gärna förbi!