Posts Tagged ‘informationsmodellering’

Modellmissmatch

fredag, december 7th, 2007

Det borde inte vara så svårt att modellera lagtext efter ett etablerat schema för textinformation, kan man tycka. Låt gå att HTML4 inte är världens mest sofistikerade modell, men den har rubriker, stycken och listor - det har ju lagtext också. På den nivån borde semantiken stämma överrens, eller?

Nej, naturligtvis inte, för då skulle jag ju inte sitta och skriva det här. Ett exempel är att HTML4 (och därmed XHTML1) inte har någon strukturmekanism som matchar de olika nivåerna som finns i lagtext (avdelningar, kapitel, paragrafer) — det enda som finns är stycken samt och den ganska intetsägande grupperingskonstruktionen <div>.

Ett annat är att i HTML-modellen är en lista (numrerad eller onumrerad) något som befinner sig utanför ett stycke. Det är helt enkelt inte tillåtet att ha en lista i ett stycke. Men enligt modellen/kutymen som används i svensk lagtext så hör en lista till närmast föregående stycke — ska man exempelvis hänvisa till den text i upphovsrättslagen som lyder “skönlitterär eller beskrivande framställning i skrift eller tal” säger man “1 § 1 st 1 p” (observera att man inte säger “1 kap. 1 § 1 st 1 p.” — kapitelhänvisningen utelämnas när paragrafnumreringen räcker för att unikt identifiera en given paragraf, vilket det gör i upphovsrättslagen)

XHTML2 löser de här problemen. Man kan ange att delar av texten logiskt sett är delar av ett större sammanhang genom <section>-taggen (som dessutom ger effekt på rubriker, så att man kan använda <h>-taggen genomgående utan att behöva fippla med h1, h2, h3 osv.

Den tillåter även att en lista (numrerad eller onumrerad) är en del av ett stycke.

Men det finns fortfarande ytterligare minst ett förekommande mönster i svensk lagtext som XHTML2 inte kan efterlikna, nämligen ovanan att stoppa in nya element i en numrerad lista. Ta exempelvis Mervärdesskattelagen, 5 kap. 9 § och den lista som finns där - nånstans under lagens levnad bestämde lagstiftaren att stoppa något nytt mellan punkt 4 och 5 – resultatet blev punkt 4 a. Visst känns det lite som att lagstiftaren programmerat BASIC på 1980-talets hemdatorer? Man får vara glad att det inte finns någon juridisk RENUM.

Det här kan XHTML2 inte efterlikna, eftersom dess modell kräver att alla element i en numrerad lista ska ha ett nummer som faktiskt är ett nummer och inte en friformsetikett.

För att överkomma den här modellimpedansmismatchen får jag helt enkelt modellera numrerade listor i lagtexter som onumrerade listor, och låta numreringen utgöra en del av varje punkts PCDATA-text (samt uttrycka samma information som del av ett xml:id-attribut).

Samma mönster att stoppa in nya element förekommer för övrigt på andra ställen i lagstiftningen, såsom paragraf- och kapitelnivå — se exv 11 a § och 2 a kap. i upphovsrättslagen. Det här är dock inget egentligt problem för XHTML2-modellering, eftersom det här inte finns något alternativ till att låta dessa elements numrering uttryckas på annat sätt än som en del av dess PCDATA. Det är bara det att just för listor så finns potentialen att göra Rätt, men på grund av en restriktiv XHTML2-modell, alternativt en slarvig lagstiftare, är det ändå inte möjligt.

Värst är det när nya stycken stoppas in — eftersom dessa inte numreras explicit blir en hänvisning till “4 § 3 st” trasig när lagstiftaren bestämmer sig för att stoppa in ett nytt stycke mellan första och andra stycket i den paragrafen.