bloghoved christian schmidt

Hobbyprojekt: Twitter-bot

Nu skal det jo ikke handle om GDPR alt sammen. Nogen gange får jeg også tid til at kode lidt.

Jeg har brugt et par aftener på at lave en Twitter-bot, @dkhoering, som kvidrer om udkast til love og bekendtgørelser i offentlig høring.

Der afholdes overraskende mange høringer. Emnerne spænder vidt – fra ændring af momsrefusionsbekendtgørelsen over grøn buspulje til regionale busser og øer til ændring af grænseværdier for pesticidrester af stofferne azinphos-methyl, bentazon, dimethomorph.

Meget af det er enormt teknisk. Men uanset om man har interesse og indsigt i buspuljer og pesticidrester eller ej, så er det betagende at følge med i, hvordan lovmøllen maler. Meget af det er ret ukontroversielt og bliver aldrig omtalt i pressen. Men det gør det ikke mindre vigtigt.

Virksomheder, interesseorganisationer og borgere med særlig indsigt kan bruge høringerne til at påpege svagheder, som ministerier og styrelser måtte have overset. Men det kræver jo, at man kender til høringens eksistens, og de færreste almindelige mennesker kommer lige forbi Høringsportalen, hvor alle høringer bliver offentliggjort.

Det er så her, min Twitter-bot kommer ind i billedet. Målet er at udbrede kendskabet til høringerne – herunder gøre det lettere for mig selv at følge med – og forhåbentlig motivere flere til at bidrage med nyttig viden.

@dkhoering’s profilside på Twitter Illustration: Christian Schmidt

Under motorhjelmen

Jeg kunne genbruge en del af koden fra en anden Twitter-bot, @togtiltiden, som jeg lavede for et par år siden, da DSB gik med planer om at fjerne deres trafikinformation fra Twitter – en beslutning, som dog aldrig blev fløjtet til afgang.

Høringsportalen har et Atom-feed, som jeg henter en gang i timen. Selve feedet indeholder dog ikke al relevant information, blandt andet hvilken myndighed der står bag høringen, så den information scraper jeg i stedet fra selve HTML-siden. Det kan virke fristende at parse HTML ved hjælp af regulære udtryk, men man løber hurtigt ind i problemer, så jeg benytter mig i stedet af en HTML-parser og XPath.

Høringerne er ofte navngivet temmelig omstændeligt men dog systematisk, så det er let at afkorte dem. Eksempelvis “Høring over udkast til forslag til lov om ændring af lov om smølfer” koger jeg ned til “Lov om smølfer”. Her er regulære udtryk til gengæld mere velegnede. Hvis navnet stadig er længere end 280 tegn (opgjort på en lidt usædvanlig måde), prøver jeg at forkorte “bekendtgørelse” til “bkg.” og ellers blot beskære teksten.

Jeg gemmer høringerne i en database. Når feedet indeholder en høring, jeg ikke er stødt på før, bliver den postet på Twitter. Hvis høringen allerede findes i databasen men har fået tilføjet et høringsnotat, dvs. en opsummering af de modtagne høringssvar udarbejdet efter svarfristen, bliver der postet en opdatering til det oprindelige tweet.

For hvert ministerium og emneområde har jeg hardkodet en liste af hashtags, som føjes til tweetet. Lad mig gerne vide, hvis jeg har overset nogle relevante tags. Bemærk dog, at hashtagget kun afhænger af ministerium og emneområde og ikke af selve høringens titel eller beskrivelse, så det er ikke altid, de rammer helt plet. Sådan må det være.

For at oprette en app, der kan bruge Twitters API, skal man igennem en manuel godkendelses­proces. Behandlingstiden var fire dage. Profilbilledet har jeg selv bikset sammen i Gimp baseret på et public domain-ikon.

Dit fingeraftryk

Jeg opfordrer dig, kære læser, til at følge med og sætte dit eget fingeraftryk på landets love. Eksempelvis ved at påpege, hvis et lovforslag ikke lever op til de syv krav til digitaliseringsklar lovgivning.

Et eksempel på en høring med en it-vinkel er høringen om det nye system til indsamling af vælgererklæringer, som erstatter det nuværende vælgererklæring.dk. Vi husker nok, at partierne Stram Kurs og Klaus Riskær Pedersen fandt en måde at omgå det gamle system. Det nye system forhindrer den form for snyd, men måske gemmer der sig andre smuthuller? Udfordringen er hermed givet videre. Høringsfristen er 12. juni.

Relateret indhold

Kommentarer (4)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
#1 Allan Lyckegaard

Tak for en interessant blogpost. Jeg kiggede selv på Høringsportalen for nogen tid siden i en anden forbindelse hvor jeg forsøgte at koble høringssvar til den endeligt vedtagne lov i Folketinget. Det lykkedes mig ikke at finde en nem måde at koble dette sammen så del gerne hvis det lykkedes dig at gøre dette på en automatisk måde.

  • 2
  • 0
#4 Christian Schmidt Blogger

Hej Kim,

Det ville være fedt, hvis I ville tilføje nogle Open Graph Protocol-tags til siderne, så de fremstår med titel og resume, når man linker til dem fra Twitter, Facebook m.fl. Se fx https://developer.twitter.com/en/docs/tweets/optimize-with-cards/guides/....

Jeg ved ikke, om den slags ændringer skal godkendes og bevilges i flere instanser, men det tager ikke lang tid, så måske kan I snige opgaven ind ved lejlighed :-)

  • 9
  • 0
Log ind eller Opret konto for at kommentere