Magnus Betnér och god offentlighetsstruktur

Dagens mest retweetade inlägg måste vara Magnus Betnérs ”Sverigedemokraterna del 5”, som är den mest underhållande sifferexcercis jag läst på mycket länge. Om du inte redan läst det, gör det nu och kom tillbaka sedan.

Men av särskilt intresse för mig var en passage där Betnér beskriver mödan att få ut siffran på hur mycket av A-kassans medel som går till gruppen ”Utlands födda”:

”Efter ett antal mail och en faktura på 2 700 + moms så fick jag I alla fall ut det här dokumentet från SCB”

Vän av ordning och TF 2 kap. kanske hajar till där och undrar vad som hände med offentlighetsprincipen (och kanske även prislistan i avgiftsförordningen). Hur kan ett enstaka Excelblad med en handfull siffror kosta så mycket?

Förklaringen är att det Betnér begärde inte bedömdes vara en allmän handling. Det som efterfrågades inte fanns som ett färdigt avgränsat dokument (eller en separat fil) utan en sammanställning av information från SCB:s databaser, och ansågs därför inte vara en traditionell handling. För sådant som inte faller under begreppet ”allmän handling” är myndigheterna mycket friare att ta betalt för sitt nedlagda arbete.

Men med tanke på att rätt mycket information hos myndigheterna numera bara finns i form av uppgifter i databaser så sträcker sig offentlighetsprincipen lite längre. Även sådana handlingar som man skulle kunna skapa från databaserna — dvs potentiella handlingar — anses vara allmänna om de kan skapas utan alltför mycket arbete.

(Ska man vara noggrann, och det kan man väl tillåta sig inom parantes, så är det lite mer komplicerat. Det finns tre krav som måste vara uppfyllda för att en handling ska vara allmän. 1: Det ska vara fråga om en faktisk handling, dvs något med ett informationsinnehåll. 2: Den ska förvaras hos myndigheten. 3: Den ska vara antingen inkommen till myndigheten eller upprättad hos densamma. En potentiell handling anses vara förvarad om den kan skapas med ”rutinbetonade åtgärder” — dvs om det är enkelt att skapa den så anses den finnas,  men om det är svårt så finns den inte. Det är kanske inte en helt intuitiv lagteknisk konstruktion. Och sen kan en handling, även om den är allmän, omfattas av sekretess. Med andra ord är en handling inte offentlig bara för att den är allmän. Slut på parantesen.)

Vad gränsen för mycket arbete går är inte helt klart. I vägledningar nämns ofta en tidsgräns på två timmar som riktline, men enligt ett ganska nytt kammarrättsfall ansågs 1½ timme vara för mycket. Men den intressanta frågan kommer när man tänker på att vad som är enkelt för en person inte är enkelt för en annan. En myndighet som har en SQL/Excel-guru anställd kommer ha en mycket större mängd potentiella handlingar än en myndighet med identiska databaser, men personal som inte hittar Any-knappen.

På samma sätt kommer offentlighetsprincipen ha en större räckvidd in i en myndighet som har lättanvända och flexibla gränssnitt mot sina databaser, jämfört med en myndighet som använder en osupportad version av Filemaker från mitten av nittiotalet.

Det här är ju förstås inte helt OK. Myndigheter är skyldiga att ta hänsyn till allmänhetens rätt till insyn när de bygger upp sina IT-system — detta benämns ibland som att myndigheter är skyldiga att ha en god offentlighetsstruktur. Det är dessutom en förvaltningsrättslig princip att allmänheten  ska ha tillgång till datalagrad information i samma utsträckning som den är tillgänglig för myndigheten (likställighetsprincipen, inte att förväxla med den kommunalrättsliga principen med samma namn).

Tyvärr är kunskapen om god offentlighetsstruktur, likställighetsprincipen, och potentiella handlingar ganska eftersatt på många myndigheter. De uppgifter som Betnér ville ha från SCB tog, att döma av kostnaden, mellan en halv och en hel dag för någon tjänsteman att ta fram. Hade tjänstemannen varit en SQL-expert, eller systemet haft flexibla stöd för att generera rapporter, skulle det varit ett halvtimmesjobb max. Då hade det ansetts vara en potentiell handling, och därmed gratis att få tillgång till. Det är sorgligt, och jag hoppas att exempelvis E-delegationen i framtida betänkanden föreslår att stärka offentlighetsprincipen på det här området.

Men det riktigt sorgliga är att det inte ens skulle behövas. Om rådatan var fritt tillgänglig skulle Betnér inte behöva förlita sig på kompetensen hos en enskild tjänsteman eller myndighet. Han skulle kunna kruncha datan själv, eller få hjälp av andra som var intresserade. Kanske skulle han kunna använda färdiga tjänster för att navigera datan.

Betnérs text är ett sakligt (och källbelagt!) inlägg i en debatt som präglas av osaklighet. Siffrorna sticker effektivt hål på de främlingsfientligas argument. Den är, med tryckfrihetsförordningens ord, ett ”säkerställande av ett fritt meningsutbyte och en allsidig upplysning”. Men offentlighetsprincipen var inte till någon vidare hjälp, och en mindre ihärdig person hade kanske gett upp.  Hur många debattinlägg i klass med Betnérs förblir oskrivna för att det är för svårt att få tag på informationen?

Mediawiki som datalager

lagen.nu använder jag ingen
relationsdatabas. Alla dokument ligger i varsin statisk fil, och den
samling av metadata som behövs för att jag ska kunna exempelvis skapa
index över alla dokument ligger i en gigantisk .n3-fil som jag går
igenom med RDFLib. Anledningen är
förstås min djupt
kända misstro
mot konceptet databasserver i allmänhet och
relationsdatabaser i synnerhet. Jag tycker filsystemet är underskattat
som databas. Det finns alltid där, är snabbt, går att debugga och
manipulera med välbekanta verktyg (ls, find,
grep, xargs, tar, rsync), har ett
begripligt rättighetssystem integrerat med operativsystemet, osv.

Till nästa stora iteration av lagen.nu-koden kommer jag ändå att
börja använda någon sorts server för datalagring. Men det blir
förmodligen inte en traditionell relationsdatabas med
SQL-gränssnitt. Min datamodell är inte särskilt relationell. Med tanke
på hur djupt jag integrerat RDF i systemet blir det förmodligen en
kombination av en triplestore tillsammans med någon form av dokumentdatabas.
För det tidigare blir det förmodligen Sesame, för det senare har jag
tittat nyfiket på CouchDB.

Men i kommentarerna till ett tidigare
inlägg
om en mediaövervakningsbot föreslog Peter Krantz att använda Mediawiki som
datalagring. Jag började kolla på hur man kan automatisera hämtning
och lagring av data från en Mediawikiserver, och det visar sig att det
finns en mycket kompetent pythonmodul, mwclient, för
ändamålet (det finns även ett annat ramverk, pywikipedia,
men det gav inte alls ett lika bra första intryck). Så här enkelt är
det att skapa och ändra en sida:

    import mwclient
    
    site = mwclient.Site('www.example.org','/path/to/mediawiki/')
    site.login('myuser','secret')
    page = site.Pages['Testpage']
    page.save("Hello world", summary="initial version")
    page.save("Goodbye world", summary="updated version")
    print "Page has %d revisions" % len(page.revisions())

Allt det som mediawiki ger — revisionshantering med diffar,
användarhantering, admin- och slutanvändargränssnitt, spamkontroller,
roll- och rättighetssystem, och utökningsmöjligheter
— får man på köpet. Det är kanske inget man vill använda för att
hantera jättemånga updateringar i sekunden, men om man kan se till att
exv cachea de anrop som bara hämtar data kan man nog få det snabbt
nog.