OIOREST nyhedsbrev
Torsdag d. 25. november 2009
Offentlige data i spil – et eksempel
Borger Finn er lidt klemt af finanskrisen og vil gerne lave lidt penge ved siden
af sit dagjob. På Digitaliser.dk læser han, at der er
penge i offentlige data.
Dem vil han gerne have fingre i. Gennemblader
Datakildekataloget,
for at se hvilke data det offentlige ligger inde med og for at få ideer til hvad
de kan bruges til. Familiestyrelsen har listerne over godkendte fornavne, som nybagte
forældre kan vælge navn til deres barn fra.
Danmarks Statistik har en række statistikker som vedrører navne: hitlister for de
mest populære navne for danskere født et bestemt år, hvor mange der er navngivet
et bestemt navn et givet år, hvor mange danskere der er med et bestemt navn mm.
Wikipedia har artikler om mange fornavne, som f.eks for
Pernille.
Disse data må kunne bruges til hjælpe kommende forældre med at finde et passende
navn til deres afkom, som opfylder deres og myndighedernes krav og ønsker til et
navn. Borger Finn kunne godt huske den gang han og hans kone skulle navnegive deres
børn. Det var ikke nemt. For det første at få overblik over mulighederne samt vælge
mellem de bedste kandidater. Dernæst at sørge for, at navnet ikke var belastet af
knap så tiltalende personer bærende samme navn. Finde ud af om det var et sjældent
eller meget populært navn osv. Uvist af hvilken grund har nybagte forældre en tendens
til finde frem til samme navn. Finn og hans kone mente i hvert fald, at de havde
været rimeligt omhyggelige med at finde et godt navn, som der ikke var så mange,
som hed. Det troede de på indtil barnet skulle i vuggestue. Her viste det sig, at
der var en del andre forældre, der havde fået samme gode ide til et navn. Det kunne
have været undgået, hvis de havde brugt den mashup, som borger Finn var i færd med
at udtænke. Give kommende og nybagte forældre en mashup, som kan give overblik over
godkendte fornavn samt give yderligere information om udvalgte navnekandidater.
Der må behov for en sådan mashup, og der må være muligt at lave lidt indtjening
på reklamer. Kommende og nybagte forældre skal ud og købe alle mulige ting, for
at give deres barn den bedst mulige start. Mashup’en skulle selvfølgelig også kunne
bruges, hvis man ønsker at skifte navn, måske efter at have været hos numerolog,
eller hvis man blot ønsker at se statistik på ens eget navn. Borger Finn syntes,
at det var en god ide og gik straks i gang med at forfølge den.
Det er jo ikke kun børn der skal have navne. Mashups skal også. Navnene NemNavn
eller FindNavnet kom hurtigt på banen, derefter BarnetsNavn , men han besluttede
sig til sidst for at kalde servicen Navnelaboratoriet pga. af den forsøgsagtige
brugsmåde samt de forskellige kurver, der blev brugt til at vise forskellige trends.
Efter 80 linjer html, 79 linjer css og 169 linjer JavaScript var mashup’en klar:
http://jordal.dk/navnelaboratoriet.
Navnelaboratoriet fungerer på følgende måde. Lad os sige, at det vordende forældrepar
Jonstrup venter en pige, som de meget gerne vil have navngivet med et navn, som
starter med ’F’ og ender med ’ja’. De taster følgende ind i søgefelterne:
Klikker på Søg-knappen og bliver præsenteret for følgende godkendte navne:
De syntes at Freja Jonstrup er et godt bud og klikker derfor på det, hvorpå der
dannes et faneblad med pågældende navn:
Fanebladet indeholder en række oplysninger om navnet Freja Jonstrup. Først oplysninger
om hvor mange der i Danmark hedder henholdsvis Freja, Jonstrup og endelig Freja
Jonstrup:
Dernæst oplysninger om hvor mange piger, der bliver navngivet Freja pr. år:
Eventuelle placeringer på navngivningens Top 50:
Og endelig lidt mere information om navnet:
Herefter kan parret gå tilbage til søgefanebladet, klikke på andre gode navnekandidater,
danne faneblade for disse navne og blive klogere før deres endelige navnevalg.
Borger Finn, som er fra hulkortsgenerationen og havde sin største udviklingserfaring
i FORTRAN IV, blev imponeret over mulighederne i JavaScript, udviklingsbiblioteket
JQuery og Google Visualization API kombineret med REST services til Familiestyrelsen
og Danmarks Statistiks data. Den enkle arkitektur ses nedenfor:
Der var blot et lille problem med denne arkitektur: De to styrelser havde ingen
REST services til navnedata. Det var lidt ærgerligt. Tænk hvis man kunne nøjes med
få linjer html, css og JavaScript, så ville det jo være rimeligt overkommeligt at
lave en lille mashup baseret på offentlige data. I stedet for ovenstående simple
arkitektur, skulle borger Finn etablere følgende arkitektur:
Det betød, at borger Finn i stedet for kun at frembringe den viste browserapplikation
også skulle frembringe/etablere følgende:
- En database til at lagre navnedata.
- Et program til at læse den kommaseparerede fil med godkendte fornavne fra familiensstyrelsens
web site. Borger Finn satte pris på at Familiestyrelsen gav mulighed for at downloade
den maskinlæsbare fil med godkendte fornavne.
- Programmer til at batch web scrape
navnedata fra Danmarks Statistiks web site.
- Funktionalitet til dynamisk at web scrape antallet af personer med et givet navn
fra Danmarks statistiks web site. Baggrunden for at web scrapingen skal foregå dynamisk
er hovedsagligt at der ikke som med fornavns data er et kendt sæt nøgler – nemlig
godkendte fornavne, men en ukendt mængde af efternavne. Med dynamisk web scraping
menes, at alle data ikke en gang for alle kopieres over på Navnelaboratoriets database,
men aktiveres efter behov fra Navnelaboratoriets brugergrænseflade. Dynamisk web
scraping er meget følsom for ændringer i den scrapede web side.
- En REST service til at udstille navnedata over for mashup’en.
Det resulterede i, at borger Finn skulle etablere et noget mere komplekst driftsmiljø
samt udvikle væsentlig mere end de par hundrede linjers kode, der skulle til at
etablere browserapplikationen(mashup’en). Derudover skulle han til at finde ud af,
hvordan hans sæt af navndata skulle synkroniseres med Familiestyrelsen og Danmarks
statistiks navnedata, når de blev opdateret. Det var trælst at skulle etablere alt
dette for at lave denne lille mashup. Hvis nu bare myndighederne udstillede deres
data via en REST snitflade, så kunne borger Finn undgået at skulle etablere det
noget mere komplekse driftsetup, undgået at skulle kode en række web scrapingsprogrammer
samt undgået at skulle forholde og gøre noget ved opdateringsproblemstillingen.
Det var ikke en situation, som borger Finn ønskede, at andre skulle komme i, så
han offentliggjorde navnelaboratoriets REST API:
http://jordal.dk/navnelaboratoriet/api.htm
med et par eksempler på brugen: http://jordal.dk/navnelaboratoriet/eksempler.htm.
Og kildekoden blev lagt
her.
REST API’et var egentlig kun rettet mod hans egen mashup, men han mente, at andre
måske kunne få glæde af det. Desuden var han fascineret af figuren fra W3C’s
Publishing
Open Government Data:
Borger Finn nåede ikke at nyde sin lille mashup-kreation længe, før han begyndte
at spekulere over om det overhovedet var lovligt at bruge de to myndigheders data
på denne måde. Det måtte han hellere til at finde ud af.
Finn Jordal / @OIOREST
IT- og Telestyrelsen