Vilka universitet nämns i Statens offentliga utredningar?

Jag funderar på ytterligare en dimension i SOUerna som ”kunskapsform”. Vilka universitet och högskolor nämns i utredningarna? Man kan anta att ett sådant omnämnande har två huvudsakliga orsaker. Antingen äger det rum när expertis från universiteten inkorporeras i utredningarna (professor X från Lunds Universitet, forskning vid Malmö högskola), eller när högskoleväsendet som sådant utreds.

Eventuellt skulle detta kunna vara ett alternativt sätt att mäta det som så populärt (och problematiskt) kallas för ”impact” eller ”samverkan”, givet att man kan antingen separera eller vikta de två olika ovan nämnda orsakerna till omnämning

Ambitionen är inte här att skapa ett sådant mått, utan att bara att visa hur mått kan skapas på väg mot en mätkritik av måtten. Måttkonstruktivism helt enkelt, i sin mest bokstavliga betydelse.

\\

Jag tänker att det borde vara ganska enkelt att med grova verktyg kunna göra en första insamling.

Följande lilla uttryck:


\s[A-Z]([^\s]*)\s(universitet|högskola)

Ger sökträffar i stil med:


381:samma universitet C O . Häggquist, dåvarande docenten vid Göteborgs högskola, professorn vid Stockholms högskola S. I. Karling, överbibliotekarien
390:förslag i tre promemorior, betecknade »P. M. angående Uppsala universitets drätselverk», P. M. angående Uppsala universitets kansli» och »P. M.
391:angående organisationen m. m. vid Lunds universitets kansli och räntekammare». Promemoriorna, som äro dagtecknade den 30 juni, den 3 september
398:15 januari 1947 till departementschefen avgivit en promemoria rörande Göteborgs högskolas ekonomiska ställning. Vid handläggningen av denna fråga
399:har beredningen biträtts av sekreteraren vid Göteborgs högskola, filosofie

Uttrycket säger ungefär: ”hitta allt som börjar med ett mellanslag, därefter en stor bokstav, därefter vad som helst förutom ett blanksteg, därefter ett mellanslag och sist antingen ordet ”universitet” eller ”högskola””. Uttrycket är väldigt snällt för att det går enkelt att hämta stadens namn i första parentesen och universitet/högskola i andra parentesen (ex. som $1, $2, Tyvärr ger denna sträng även några anomalier, exempelvis:


För högskolans
I universitetsstaden
En universitetslärare

Dessa går dock att sortera ut med en liten stoppordslista i ett senare skede. Vad man dessutom missar är nya uttryck såsom ”Mittuniversitetet”, ”Högskolan Väst” osv. Funderar vidare på hur dessa kan matchas.

Jag tänkte sedan stoppa in dessa uttryck i några små program. Men först kastar jag bara ut denna lilla anteckning och ni som vill kommentera är mer än välkomna att göra så.

Flattr this!

SOUernas geografi

Var är Sverige utrett? Oftast frågar man efter hur och så tänker man sig att svaret skulle vara av kvalitativ art. Men det finns en annan väg, givet att man vet exakt vilka platser som har skrivits ned i alla statliga offentliga utredningar. Rad för rad. I denna bloggpost och instruktion hade jag tänkt att försöka mig på att ta ett steg närmare en sådan empirisk datamängd.

En spännande teoretisk fråga man då kan ställa sig handlar om hur staten ”blir till” (performativt) genom att utreda ort för ort. På samma sätt som ett nätverk av ryska gasledningar kan göra anspråk på ett territorium, kan ett nätverk av utredningar sakta men säkert släppa på och av flöden av ”statsgas” som letar sig ända ut i skogarna och värmer (eller kyler) stugorna med en känsla av att tillhöra ”staten Sverige”.

Nationens gränser finns inte, de måste hela tiden (om)skapas.

Jag tänkte med denna bloggpost lägga ut steg för steg hur jag har lyckats extrahera alla ortnamn ur SOUer 1922–1996. Jag lägger ut all rådata och alla steg i bearbetningen. Det blir kanske inte så läsvänligt, men å andra sidan kan alla mina steg replikeras och kritiseras så att datan blir fullt användbar för vem som helst att använda eller publicera. Dessutom krävde det hela mycket datorkraft, så det är en miljöinsats att använda mina filer.

Med andra ord, det är alltså fritt fram att göra vad ni vill!

\\
Steg 1 – Extrahera ortsnamn
Detta tog en vecka. I skripten som Peter Krantz publicerade finns lista på ortsnamn som man kan matcha mot alla SOUer med hjälp av:


grep -owf features.txt data/30tal/*.txt > trettiotal.txt

Jag körde detta för varje katalog i åtta screens på en riktigt snabb server. I detta läge använder sig grep av Aho Corasick strängmatchning. Den letar alltså efter träffar från en (jättelång) lista av ord och så printar den ut dessa till en fil. Kanske hade jag kunnat distribuera processorlasten över alla 32 processorer i mitt system, men jag ville heller inte krascha maskinen som delas med andra. Den råa datamängden från detta kan laddas ned som:

Men dessa filer innehåller massvis av skräpdata och är bökiga att arbeta med statistiskt. Således måste de bearbetas.

\\

Formatera data

För att göra datamängden statistiskt läsbar började jag karva fram variablerna Årtal, SOU-Nummer och Ortnamn enligt följande trixande med reguljära uttryck (kommentera gärna om ni har smidigare lösningar).

Först gjorde jag en första grov extrahering av Årtal (\d{4}), Nummer (:\d{2}) och sedan Ortsnamen som kommer sist på varje rad (.*):


ag -o '\d{4}:\d{2}.*(?<=:\d{2}.txt:).*' SOU1922-1996.txt > 1.txt

Sedan gjorde jag två olika versioner. Den första filen (2.6Mb)inneåller År, Nummer, Ort och gjordes om till en kommaseparerad fil med ett enkelt perl-handgrepp:


perl -p -i -e 's/.txt:/, /g' 1.txt

Men, för enkelhets skull gjorde jag även (2.4Mb) en version med bara År och Ort ur ovanstående fil:


perl -p -i -e 's/:\d{2}//g' 1.txt

\\

Stoppord

Men nu framträder ytterligare ett problem. Ortnamn, speciellt svenska ortnamn, har ju ibland betydelser även i vardagsspråket. Staden Kista och en sådan där trälåda man läggs i när man dör, stavas likadant. Ännu värre blir det med orten ”Vi” eller ”Gran”. Jag började först med att bläddra igenom filerna induktivt och hittade själv följande lista:

Vi|Bet|När|Bön|Håll|Mark|Böj|Vad|Färjan|Kap|Så|Alla|Verksamheten|Vecka|Källa|Varmvattnet|Hallen|Bo|Gran|Björk|Viken

Men detta var väldigt tidsödande, så jag frågade runt i sociala medier och fick massvis av svar. Här är de jag samlade in i går kväll:

Lyckan|Önska|By|Ön|Holmen|Strand|Vara|Mannaminne|Ensamheten|Bor|Kärleken|Skara|Bro|Viken|Skruv|Tving|Råda|Torp|Näs|Berg|Lugnet|Torp|By|Sand|Slut

För att sortera ut dessa falska positiver använde jag mig av lite perl.


perl -p -i -e 's/^.*\b(Vi|Bet|När|Bön|Håll|Mark|Böj|Vad|Färjan|Kap|Så|Alla|Verksamheten|Vecka|Källa|Varmvattnet|Hallen|Bo|Gran|Björk|VikenLyckan|Önska|By|Ön|Holmen|Strand|Vara|Mannaminne|Ensamheten|Bor|Kärleken|Skara|Bro|Viken|Skruv|Tving|Råda|Torp|Näs|Berg|Lugnet|Torp|By|Sand|Slut|Mom)\b//g' test.txt

Detta tar bort alla rader som innehåller något av ovanstående ord. Däremot lämnar det kvar blanka rader som jag tar bort med:


perl -p -i -e 's/^(\s*|\r|\n)$//mg' test.txt

Av någon anledning fanns fortfarande orten ”Så” med, så jag fick köra en ny vända med:


perl -p -i -e 's/.*Så//g' test.txt

Och sedan ta bort blanka rader igen.

\\
Datamängden

Sedan är det bara att döpa om txt-filen till .csv. Och så har vi datamängden SOU1922-1996artal-ort-filtered.csv.zip (1.5Mb).

Denna kommaseparerade fil borde man kunna läsa in rakt i Excel om man vill. För att göra allt replikerbart har jag dock bara gjort lite enkel statistik i R. För att skapa en enkel lista över orter i SOUer (i fallande ordning), kör jag bara (byt ut sökväg):


mydata <- read.csv("/home/anon/Desktop/SOU1922-1996artal-ort-filtered.csv")
sink("Platserfrekvens.txt")
df <- as.data.frame(table(mydata$Place)) ; df[order(df$Freq, decreasing=T), ]

Här instruerar jag R att skriva ut hela resultatet till filen Platserfrekvens.txt vars topplista ser ut så här:

Stockholm 73039
Göteborg 28937
Uppsala 26130
Malmö 20032
Danmark 17324
Norrland 15245
Örebro 14191
Lund 14143
Kalmar 10821
Bohus 8124
Frankrike 7372
Umeå 6948
Gävle 6569
Norrköping 6013
Västerås 5777
Luleå 5389
Skåne 5249
Linköping 5125
Karlskrona 5015
Hälsingborg 4695
Växjö 4190
Os 4069

Jag antar att "Os" är ytterligare en sökanomali. Stoppordslistan måsta alltså uppdateras.

Men detta vara bara ett test och ett sätt att få ut datamängden så att ni andra kan börja tinka med den. Det borde vara enkelt att skapa fina grafer över tid, kanske ned till varje enskild rapport. Det skulle även vara helt magnifikt med en sverigekarta som över tid uppdaterades dynamiskt med en "prick" på kartan varje gång en SOU nämnde en ort. Då skulle man, precis som med tekniska nätverk, se precis var någonstans det finns "täckning" och var någonstans det finns "vita fläckar". Tänk en täckningskarta för mobiltelefoner.

Kommentera mer än gärna. Vad finns det mer för idéer?

Flattr this!

Medborgarforskning som motstånd

Häromveckan publicerades min artikel ”Citizen Science as Resistance: Crossing the Boundary Between Reference and Representation” i första numret av Journal of Resistance Studies. Hela numret kan laddas ned i sin helhet från tidskriftens hemsida. Eller, om man vill gå direkt till artikeln, finns en postprint-pdfGUs hemsida.

Här använder jag mig av en rad exempel hur aktivistorienterad medborgarforskning använder sig av vetenskapliga metoder som motståndspraktik. Detta skapar ett problem som jag använder för att diskutera kärnan i Latours resonemang om separeringen mellan ”vetenskap” och ”politik”, dels som den kommer till uttryck i We have never been Modern, men framförallt så som problemet formuleras i An Inquiry into Modes of Existence.

En rad förarbeten till artikeln finns att läsa på bloggen under taggarna NET, POL, REF. Allt är således väldigt systematiskt.

Flattr this!

Statens bruk av termerna ”lappar” och ”samer” – en arkivsökning i SOUer och ett metodförslag

På DN-debatt skriver ett antal forskare om Rasbiologiskt språkbruk i statens rättsprocess mot sameby. En central kritik består av att staten lutar sig mot ett rasbiologiskt och förlegat språkbruk:

Staten tar sig även rätten att omdefiniera samisk etnicitet och återinför dessutom den förlegade och nedvärderande benämningen ”lapp”.

”[D]et har ju talats om lappar förr i tiden och nu talas det om samer, men det där är inte riktigt samma sak, eftersom lappar det var nomaderna utan avseende på etnisk tillhörighet, medan samer är en etnisk grupp. […] vi tycker att det är viktigt att hålla isär dom här begreppen och kommer därför att försöka tala om lappar när det handlar om nomader och människor som levde av lappmannanäringar som var jakt, fiske och renskötsel.” (Gällivare Tingsrätt 2/6 2015)

Detta språkbruk skulle kunna vara hämtat från rasbiologins tid och vittnar om en förvånande okunskap om historiska förhållanden.

Den äldsta referensen hos författarna till artikeln är från 1976. Det är givetvis så att det är svårt att få plats med mera stoff i en debattartikel. Men eftersom vi numera har statens röst digitaliserad och sökbar är det enkelt att verifiera (eller falsifiera) författarnas påståenden (instruktion nedan).

Genom att söka på begreppen ‘lappar’ och ‘samer’ i alla Statens offentliga utredningar mellan 1922 och 1996 får vi två (massiva) sökresultat:

Givetvis får man manuellt sortera bort sökanomalier för ‘lappar’ när det betyder ”papperslappar”. Men redan här får man intressanta ledtrådar till ett historiskt ”språkbruk”.

Några exempel:

SOU 1928:17

(karies) påträffats hos eskimåer till en utbredning av ungefär 2 %\ hos australier 20.4 %; hos negrer 26..”) %; hos lappar 4.5 %.

SOU 1936:23

Med fullt duglig renvaktare förstås lapp, som besitter fullständig arbetsförmåga och har fyllt 18 år.

SOU 1950:22

vara avsedda för den nomadiserande lappbefolkningen men i mån av utrymmen även stå öppna för andra lappar som i levnadssätt och vanor kunde jämställas med de nomadiserande.

Ser man istället till användningen av ‘samer’ så förekommer detta uttryck först 1950.

Detta var bara ett exempel. Nedan följer några ingångar till den som vill söka vidare.

\\
Metod

För er som har laddat ned alls SOUer är det bara att ställa sig i katalogen och köra någon av följande alternativ (de gör ungefär samma sak men ag är snabbast):


ag ' lappar '

grep -Ei -r ' lappar ' .*

find . -exec cat {} + | perl -ne "print if / lappar /"

Byt ut ‘ lappar ‘ mot ‘ samer ‘. Lek sedan lite med reguljära uttryck för att precisera. När ni har en bra söksträng är det bara att lägga till > fil.txt så får man en behändig lista.

Flattr this!

Ämnen i SOUniversum 3 – Topic Modelling

Det regnar ute och jag funderar på olika sätt som man kan behandla SOU-materialet på. För hundra år sedan skrevs en utredning på en skrivmaskin och nu ska jag behandla den med ett dator som är designad i Kalifornien och byggd i Taiwan. Om vi någonsin har varit moderna går det att snabbspola denna modernitet i gigahertz-hastighet.

En metod som har blivit populär inom digital humaniora är ”topic modeling”, som beskrivs av Journal of Digital Humanities som:

Topic modeling is a form of text mining, a way of identifying patterns in a corpus. You take your corpus and run it through a tool which groups words across the corpus into ‘topics’. Miriam Posner has described topic modeling as “a method for finding and tracing clusters of words (called “topics” in shorthand) in large bodies of texts.”

Mitt ursprungsläge präglas av skepsis. Varför ska vi använda maskininlärning på ett material som redan är systematiserat, kategoriserat och strukturerat av författarna. En SOU har ju en rubrik, innehållsförteckning, sammanfattning, osv., och har noggrant skrivits fram enligt rådande konventioner. Stopp och belägg! Åter till humaniora som det alltid har varit.

Men skepsis är en i grunden reaktiv affekt. Vi har ju redan datorerna i våra knän, varför inte experimentera och se vad som händer?

Jag började med att ladda ned programmet Mallet och följde sedan en välskriven installationsanvisning för samtliga operativsystem. Jag körde sedan några tester på engelska textkorpus för att få lite känsla för vad programmet gjorde. Denna teknologiska hermeneutik präglades av fullständig blackboxing till en början. Ofta är det ju så vi gör med teknologier som vi tror är ”verktyg”. Vi använder dem med en lätthet tills de inte gör som vi vill.

Problemet med SOUerna är ju att de innehåller massa brus och artefakter från inskanning och konvertering till text. Jag har fortfarande inte klurat ut hur detta ska lösas, men så länge kan man ”fuska” sig fram litegrann, för att få en helhetsbild.

Som testobjekt valde jag SOU 1924:35 Ylleindustriens produktionsförhållanden. Inget slår modernitetsångesten när det regnar. Man tänker på de där fabrikerna som nu huserar designbyråers kontor, men som en gång i tiden höll textilarbetare inspärrade vid dånande maskiner. Nu utvecklar man istället appar i dessa fabriker.

För att ta en genväg (som inte håller rent lingvistiskt) runt allt brus som finns i textfilen av denna SOU, valde jag att bara inkludera ord som är längre än fem tecken. Ett exempel på hur man kan göra detta är:


ag -o '\b[\wåäöÅÄÖ]{5}(.*?)\b' Ylleindustriens\ produktionsförhållanden\ -\ SOU\ 1924\:35.txt > ylle.txt

(byt ut ag -o mot grep -Eoi om du bara har det senare installerat)

Jag vet inte om man får göra så här. Om någon lingvist läser, kommentera gärna. Men nu har jag iallafall filen ylle.txt, som består av långa ord från hela SOUn. Här kan man läsa intressanta ord, exempelvis ”vicuñageten”. Här är en bild på ett sådant djur:

Vicugna-ESO

Därefter är det dags att använda Mallet. Jag lägger filen ylle.txt i en ny katalog och börjar med att bygga ett korpus:


./bin/mallet import-dir --token-regex '[\p{L}\p{M}]+' --input /home/anon/Desktop/ylle/ylleord/ --output ylle.mallet --keep-sequence --remove-stopwords

(observera att om ni använder windows ska ni inte skriva ./ i början, samt byta ut katalogstrukturen till motsvarigheten på erat system)

Jag vet inte riktigt vad jag gör här. Men --token-regex '[\p{L}\p{M}]+' ska iallafall göra det lite snällare för icke-engelsk text. Men nu har jag i alla fall korpuset ylle.mallet. Därefter är det dags för själva topic modelingen. Jag kör:


./bin/mallet train-topics --input ylle.mallet --num-topics 10 --output-state topic-state.gz --output-topic-keys ylle_keys.txt --output-doc-topics ylle_composition.txt

Jag väljer här att Mallet ska sammanfatta tio topics. Denna variabel går att öka och minska efter smak. Ur detta får jag dels tio olika topics i filen ylle_keys.txt samt en beräkning på hur hög täckningsgrad varje topic har i filen ylle_composition.txt. Här kan man se att topic 9 har den högsta sammanfattningsgraden (undrar om man kan säga så) på ungefär 12% (vet inte vad det betyder riktigt). Detta ämne lyder:

ylleindustrien bomullsindustrien kombinerade produktionskostnader produktion inventarier förbrukning totalkostnad sydamerikansk kapitalkostnaderna framträdande rörelsekapital importerat tillverkningar kamylleindustri uppdelning spridningen undersökningen sydamerikanska

Nästa ämne är topic 4 som lyder:

sammanlagt kamyllevä kardylleindustrien innehåller utredningen egenskaper produktionsf löngodsfabriker konsumtion tillverkningen kardyllebranchen beräknats resultatet världskriget spinnerier noteringar rentvättad kortulliga verkställd

Maskinen har arbetat. Jag vet inte riktigt vad jag har gjort.

Hur går jag vidare med detta? Skulle det vara intressant att göra en liknande analys av hela SOU-materialet? Finns det något mindre brutalt sätt att göra filerna rena och snygga och anpassade till svenskt alfabet och svenska stoppord? Blir vi bildade av denna kunskap eller är detta ett intellektuellt förfall? Kommentera!

Uppdatering: Sverker Lundin har gjort en liknande analys men med flera topics. Läs här!.

Uppdatering 2: Ändrade och uppdaterade efter att ha anpassat till svenska tecken, se kommentaren nedan.

Flattr this!

Relationer i SOUniversum 2 : SOUlab

skriptet

I förra blogginlägget gick jag den långa omvägen till att bygga upp en nätverksfil som man kan visualisera med program som Gephi. Det var aningen krångligt, men ganska roligt.

Peter Krantz har skrivit en knippe pythonskript som gör allt mycket enklare. Bilden ovan (klicka för förstoring) är genererad på alla SOUer från 1922–1993, storleken justerad efter ”indegree”, dvs. ju fler citeringar en SOU får, desto större ”boll”. Exakt hur detta ska analyseras är något jag får återkomma till, så kommentera gärna!

Krantz skript är väldigt användbart men för att det ska gå att metodredovisa i detalj (ex. om man funderar på att publicera artiklar på materialet) måste man analysera enventuella felkällor.

SÅ jag tänkte att jag skriver ut en liten instruktion om hur man får igång skripten, dels för mitt eget minne, dels för om någon vill pröva själv. All kod är släppt under MIT licens av Krantz.

\\

Nu, över till terminalen.

1. Först och främst måste du ha Python installerat på din dator. Kör du Linux är det troligtvis redan installerat, annars är det lätt att hämta via distributionens pakethanterare. På MacOS går det att hämta här.

2. Python behöver några extra moduler. Dessa installeras med kommandot pip install peewee==2.6.1 lxml pygexf (lägg till sudo före pip i Linux).

3. Om du inte redan har gjort det, ladda hem alla SOUer som individuella textfiler och packa upp.

4. Om du har Git installerat kör du sedan bara:

git clone https://github.com/peterk/SOUlab.git

Annars kan du ladda ned och packa upp manuellt från Github-sidan.

5. Nu kan skripten börja köras. Det är tre stycken som körs efter varandra. Tänk på att hela tiden ange rätt sökväg, alltså till den katalog som blev till när du packade upp alla SOU-textfilerna:

python build_db.py /katalog/till/SOUfilerna
python parsesou.py /katalog/till/SOUfilerna
python gen_graph.py filnamn.gexf

Programmet bör då ge följande lilla meddelande om allt funkar


Writing to filnamn.gexf
SOU-grafen directed static
number of nodes : 4894
number of edges : 20943

.gexf-filen går sedan att öppna med Gephi.

Tack Peter Krantz för detta verktyg. Det sparar oändligt med arbete och eftersom det är öppet kan det användas för riktig forskning framöver!

Flattr this!

Relationer i SOUniversum

Att lägga ut sorlet från SOUer visade sig leda till intressanta uppslag. Bland annat har idé- och vetenskapshistorikern Gustav Holmberg gjort en inventering av amatörbegreppet genom hela SOU-korpuset, Copyriot har skrivit, och Peter Krantz på KB har gjort en graf av datamängden.

Väldigt roligt! Nu kommer en uppföljning som bitvis är teknisk, men som bör läsas mera som en humanvetenskaplig ingång som har råkat ta hjälp av några digitala verktyg.


Work in progress alltså! Det är inte vackert, men det kommer en bild på slutet!

Jag tänker att det finns två approacher till materialet; data och metadata. Att söka i innehållet (data) visar sig vara mycket kraftfullt, speciellt om man tillämpar sökverktyg som är snabbare än grep. Men här tänkte jag ge ett litet uppslag till hur man kan extrahera/skapa metadata ur SOUerna. Exakt vad det skulle vara användbart till vet jag inte riktigt ännu, men ibland måste data komma före frågorna för att man ska veta vad man ska fråga.

Inspirerad av Peter Krantz graf, började jag harva runt i SOUerna för att hitta regelbundenheter som går att ta som utgångspunkt för relationer mellan texterna. En sådan regelmässig konvention tycks vara hur man anger SOU som en källa: årtal kolon nummer, exempelvis 1945:68, eller 19\d{2}:\d{2} med reguljära uttryck.

Om jag nu ställer mig i katalogen för varje SOU som enskild fil (en sådan katalog skapas om man laddar ned och packar upp denna datamängd) så kan jag köra grep -r -Eo '19\d{2}:\d{2}' * för att söka efter detta mönster, som vi känner igen som en referens. Detta gör att datorn spottar ur sig ungefär:


20tal/Betänkande och förslag i fråga om kvinnors tillträde till statstjänster. - SOU 1923:22.txt:1923:11
20tal/Betänkande och förslag rörande understöd åt den civila luftfarten - SOU 1929:21.txt:1929:21
20tal/Betänkande om inkomst- och förmögenhetsskatt. - SOU 1923:70.txt:1923:41

Det fetade mönstret identifierar filnamnet för den SOU som vi läser ur och det kursiverade numret visar att datorn har hittat en referens till en SOU (inuti en SOU). Det är inte mera konstigt än att det finns referenser längst bak i en bok eller i en artikel. SOUer hänvisar till andra SOUer. Detta bildar ett litet SOUniversum som vi kan visualisera. Men vägen dit kräver att man processar detta brutala output till något som kan läsas av exempelvis Gephi. För att man ska få fina sociologiska monader måste man definiera vad som är noder och vad som är relationer i ett nätverk.

Det mest gångbara formatet för sociala nätverksdata är nog .gexf. Det är öppet, enkelt och läses av Gephi och Sigma.js.

Varje enskild SOU är en nod, och varje gång en SOU citerar en annan SOU har vi att göra med en ”relation”. Relationen som enskild händelse (haecceitet) kan vi inte veta så mycket om – någon eller några författare har skrivit en SOU och ”laddat ned” andra SOUer till sitt tänkande. Det enda spåret vi har bland de 166 miljoner rader (!) text som alla SOUer utgör är en ”referens”.

För att bygga om det output som vi fick ovan till .gexf-formatet så körde jag några ”hemmasnickrade” regex-sökningar. Jag tar inte alla detaljer utan skissar mest några exempel. På denna sträng:

20tal/Betänkande och förslag rörande understöd åt den civila luftfarten – SOU 1929:21.txt:1929:21

Kan vi ta allt före den första noden – 1929:21 – söka upp med ^(.*?)SOU som vi ersätter med source=". Sedan kan vi söka efter \.txt: och ersätta med " target=". Några vändor fram och tillbaka börjar vi närma oss relationer, som bör se ut ungefär så här:


source="1951:13" target="1948:42"
source="1951:13" target="1948:42"
source="1951:13" target="1948:42"
source="1951:13" target="1945:51"
source="1951:13" target="1945:51"
source="1950:21" target="1926:18"

Men, för att de ska begripas måste de numreras. Det går att lösa med ett enkelt pythonskript som ungefär lyder:


#!/usr/bin/python

items = [‘source=”1951:13″ target=”1948:42″‘, ‘source=”1950:21″ target=”1926:18″‘, ‘source=”1950:21″ target=”1926:18″‘, osv. alla edges efter varandra.]
number = 0
for item in items:
print(number, item)
number = number + 1

Skriptets output kör man sedan > fil.gexf, så har man en numrerad lista på alla relationer. Med detta gjort är det bara att fortsätta att sök-ersätta med reguljära uttryck tills man börjar få något i stil med:


edge id="0" source="1951:13" target="1948:42" /
edge id="1" source="1951:13" target="1948:42" /
edge id="2" source="1951:13" target="1948:42" /

Därefter tar man alla unika SOU-nummer och skapar en lista. Enklast är att ta filen man sparat med ovanstående information och bara suga ut varje enskild SOU med grep -Eo '19\d{2}:\d{2}' fil.gex > baranoderna.gexf. För att sedan spara lite plats kan man ta och radera duplikata nummer. Sedan kan man bygga noder som ser ut så här:

node id="1951:13"

Men för att det ska bli komplett ska varje nod ha en ”label”. För att göra labels till noderna kan man göra ungefär så här i en avancerad texteditor så som Textwrangler eller Notepad++ (glöm inte att slå på Grep).

Find

node id="(19\d{2}:\d{2})" /

Replace

node id="\1" label="\1" /

Så får man snyggt:


node id="1951:13" label="1951:13" /
node id="1948:42" label="1948:42" /
node id="1945:51" label="1945:51" /

(allt detta ska sedan vara inom < > i .gexf-filen)

Fint. Resten är bara en fråga om lite meta-uppmärkning och vi har oss en .gexf-fil som går att öppna i Gephi.

Pust. Det är nu jag tänker att någon som kan programmera kan göra allt detta så mycket fortare/smidigare. Men, skam den som ger sig!

Med lite modularitetsfilter för att lägga färger och ”degree” för att göra noderna större ju oftare de är citerade får vi en sån är liten bild:

50talet

SOU 1956:39 heter Offentliga byggnader och verkar vara den mest omtalade och citerade ”nätverkade” SOUn under 50-talet (Degree, dvs. både inkommande och utgående länkar) (jag begränsade min datamängd till 50-talet för detta test). Om vi visualiserar med raka relationslinjer ser vi tydligare riktningarna på citeringarna.

Detta var bara ett test och proof of concept. Kanske finns det något i detta som ger uppslag till tankar och funderingar på hur man kan forska vidare.

Flattr this!

Sorlet från Statens Offentliga Utredningar

Kungliga biblioteket har nu digitaliserat alla Statens offentliga utredningar från 1922 till 1996. Detta material är ju väldigt intressant för alla som vill förstå samhället. Men i formen av pappersböcker har möjligheterna för att söka I SOUer varit mycket begränsade. I min avhandling analyserar jag exempelvis fyra SOUer som handlar om samhällsvetenskaper och statistik. Men, en fråga som man ibland ställer sig, och som ibland infinner sig med en tonalitet av ångest är; om jag hade kunnat söka i fulltext i ALLA utredningar hade jag kanske hittat något mera, någonting avgörande.

Eftersom SOUerna numera är inskannade som pdf-filer och dessutom är OCR-behandlade är det bara en fråga om lite digital handpåläggning för att göra allt som är digitaliserat sökbart. Datan finns, men den måste förbehandlas för att det ska gå att söka med det allra mest kraftfulla sättet att söka på: reguljära uttryck.

Jag tänkte i denna post lägga ut lite av det material jag hittills har skapat, i tid- och bandbreddssparande syfte, ifall att någon vill experimentera. SOUerna finns även tillagda i Korp, men då med ett annat sökgränssnitt.

Jag började med att ladda hem alla SOUer från KBs servrar med hjälp av ett litet pythonskript som jag fick skickat till mig på IRC och som finns att hämta på Github. Eftersom hela materialet väger in på cirka 400Gb rekommenderar jag att man tänker efter i termer av att bandbreddsbesparingar innan man ger sig på detta. Om målet är att bara skapa textfiler så delar jag med mig av dessa nedan.

När detta var klart (2 dagar senare) så körde jag det lilla programmet pdftotext på alla filer och väntade ytterligare några timmar. Pdftotext gör precis vad det säger, det konverterar de tunga pdf-filerna till textfiler. Jag är osäker på om det finns mera exakta konverterare, så om ni känner till några, kommentera gärna.

Här är ett exempel på en enskild utredning som ren text-fil.

Att söka inne i en pdf-fil kan vara användbart om man vet vilken SOU man ska arbeta med. Men för att söka i alla SOUer är det klumpigt.

Så, här kommer det råa output från textkonverteringen i tre olika ”klumpar”.

Textversionerna är för det första inte helt exakta. Detta hänger samman med hur Kungliga bibliotekets robot skannade in dem och hur själva OCR-hanteringen gick till. Sedan borde det finnas någon form av felkälla i pdftotext. Oavsett vilket är det nu möjligt att tillämpa avancerade sökningar i hela materialet, behandla det hur man vill och göra statistik hur man vill.

Jag gillar att använda 70-talsprogrammet grep (med alternativet -E för att expandera de reguljära uttrycken) för att söka i filer med. Man kan såklart ladda in i en texteditor, men hela textmassan är 2.7Gb stor, så det är ganska körigt med minne osv. Grep är bra för att det inte behöver ladda allt till datorns minne. Men ha ändå överseende med att vissa sökningar kan dröja.

Nu kan man börja få väldigt intressanta resultat. Här ett exempel från den stora filen (det går att köra mitt lilla kommando i terminalen på ett Unix-system, ex. Linux, MacOs):

grep -Eoi 'knark.*' SOUtxtAllBigFile.txt

Så får man följande poetiska resultat (utdrag):

knarkklubbar.
knarkarkvart
knarkarkvarf”.
knarkarkvartar
knarkotikamissbruket
knarkare eller
knarkarnästen
knarkarna en dominerande
knark.
knarkare visar
knarkas inte vid kiosken, utan på andra
knarkhärvan i Växjö
knarkligan» eller »ungdomsligan» och uppgav att några
knarkade sista gången» ganska kort tid före intervjun.
Knarkar du för närvarande?» med nej och
knarket verkar. Till övervägande del tycks de ha positiva förväntningar
knarkets förmodade effekt, att de
Knarkhäktningar på löpande band
Knarkares far klagar hos JO
Knarkkliniker planeras i H-borg och Lund
knarkande. Ett exempel:
Knarkargrupper» bildas. Narkomanenernas

Ofta anklagas SOUer för att innehålla ett torrt språk. Dessa kreativa kombinationer bevisar motsatsen.

Så här långt har jag kommit. Är det någon som har bra förslag på vad nästa steg ska vara? Vilket gränssnitt kan man bygga? Vilka analyser kan man göra? Vad är intressant att göra statistik på?

Bryt facebookdriften och kommentera!

\\

Uppdatering, 2015-06-01

Det enklaste sättet att söka verkar vara att ladda ned alla utredningar som individuella textfiler. Dels kommer datorn att indexera filerna. Men framförallt får man ut filnamnet, och därmed utredningens titel, när man kör en rekursiv grep. Då kan man ställa sig i katalogen med de uppackade filerna och köra exempelvis denna söksträng för att upptäcka på vilka olika sätt begreppet ”tredje uppgiften” har använts på:


$ grep -r -Eio '.{10,100}tredje uppgift.*.{0,100}' *

30tal/Utredning rörande flottans fartygstyper m. m. - SOU 1937:25.txt:Till dessa uppgifter anslöt sig sedermera 1907 års försvarskommitté, med undantag av att i den tredje uppgiften tillfogades »i den mån sådant är behövligt och möjligt». 3
40tal/1940 års skolutrednings betänkanden och utredningar. - SOU 1947:34.txt:»Studentexamen», fortfar skolöverstyrelsen, »har emellertid ännu en tredje uppgift.
40tal/Kommunal upplysningsverksamhet - SOU 1947:76.txt:uppgiften gäller informations- och studieverksamheten bland nyvalda förtroendemän. Den tredje uppgiften gäller information för innehavare av
50tal/Kristidspolitik och kristidshushållning i Sverige under och efter andra världskriget - SOU 1952:49.txt:surserna och att på ändamålsenligaste sätt tillvarataga och fördela förefintliga varutillgångar. En tredje uppgift slutligen — vilken dock väsentligen var av handelspolitisk natur — var att till det yttersta begagna de
50tal/Högertrafik - SOU 1954:30.txt:kostnad och materialkostnader. Från karosDen tredje uppgiften har varit att med
60tal/Skoglig yrkesutbildning - SOU 1967:38.txt:huvuddelen av eleverna kommer att rekryteras. En tredje uppgift för nämnden
60tal/1960 års gymnasieutredning. - SOU 1963:42.txt:av gymnasiets mål betonade skolutredningen gymnasiets tredje uppgift, den
70tal/TRU:s försöksverksamhet 1967-1972 - SOU 1973:19.txt:den första och tredje uppgiften, eftersom man
70tal/Invandrarutredningen. - SOU 1971:51.txt:deltagande i den allmänna vuxenutbildningen. En tredje uppgift är åtgärder för att
70tal/Trafikpolitik - behov och möjligheter - SOU 1975:66.txt:skall ske. Den tredje uppgiften
70tal/Abortfrågan - SOU 1972:39.txt:Kommitténs tredje uppgift gällde att utreda frågan om samhällets åtgärder i abortförebyggande syfte samt att överväga, hur
80tal/Skolforskning och skolutveckling - SOU 1980:2.txt:att ta på sig en tredje uppgift, att svara för den
90tal/Dagspressen i 1990-talets medielandskap - SOU 1994:94.txt:fram. Det är uppenbart att den tredje uppgiften kritisk granskning har sina
90tal/Löneskillnader och lönediskriminering - SOU 1993:7.txt:ekonomiska incitamenten för kvinnor jämfört med män.--- En tredje uppgift
90tal/Kvalitet och dynamik - SOU 1993:102.txt:Hur väl fakulteterna löser högskolans s.k. tredje uppgift, dvs. att sprida


Uppdatering 2: Gustav Holmberg har bloggat om sina sökningar i materialet samt Copyriot.

Flattr this!

Vad är en citering? Några spridda anteckningar

Just nu sitter jag och skriver på en artikel som försöker spåra ”citizen science” i vetenskaplig litteratur. Men att bara söka och mäta ger inte tillfredsställande resultat. För att det ska bli meningsfullt att forska scientometriskt, måste man ha teori. Jag tänkte därför lägga ut några anteckningar om vad en citering kan tänkas vara för något.

\\

I min och Gustaf Nelhans artikel om ”lyckovändningen” använder vi oss av en utgångspunkt som formulerades av Henry Small i slutet av 70-talet, som vi försöker förena med Latours mera bekanta teorier från mitten av 80-talet. Manövern är kortfattad och koncis, som ju ofta är fallet i journalartiklar. Vi skriver:

Following Small (1978) we treat cited references as being symbolic, in the sense that they are representing ”experimental findings, methodologies, types of data, metaphysical notions, theoretical statements or equations — or, in general when dealing with citations, any statement which may be taken as characterizing or describing the cited document.” (Small 1978: 329). In other words, when an author cites an article, he or she creates its meaning — this is the symbolic dimension of the citation. But the very act of citing is also performative: statements and scientific findings acquire and change their meaning when they are in the ”hands of later users” (Latour 1987: 59).

Men att gå från Small till Latour så här snabbt är något av en ‘begreppslig krumbukt’ om man ska vara nogräknad. Detta behöver packas upp litegrann. Small rör sig nämligen med en begreppsapparat (från 1978) som lutar sig mot en ”konventionell semiotik” (som numera upplevs som aningen förlegad) och talar ofta om symboler, metaforer och metonymier. Tyvärr trasades dessa gamla fina begrepp sönder av postmodernistiska teoretiker under 80-talet, men man kan bortse från dessa snedsteg. Small menade nämligen väldigt konkreta saker.

Så jag tänkte kasta ut några spekulationer för att se om det går att hitta en syntes mellan Small’s syn på citeringar och Latour’s nutida teorier om referens [REF] och Austins performativitet. Diskussionen tar sin utgångspunkt i Nelhans avhandling Citeringens praktiker, framförallt från sidan 130 och framåt, där han presenterar sin ”performativa citeringsteori”. Men här finns också en utförlig diskussion om Latour och citeringar (s. 128ff). Läs dessa matnyttiga stycken för att få grunderna förklarade från början.

\\

Small menade att när forskare citerar andra forskare så skapas ‘symboler’. Dels på en ‘metonymisk’ nivå, alltså i formen av att vi anger författarnamn, årtal, sidor, förlag etc. (eller en hyperlänk), och dels på en ‘metaforisk’ nivå eftersom vi med en citering betecknar ett större innehåll, alltså ett forskningsresultat, en metod, data, eller teorier. Men, Small stannar inte där, utan menar att det är i denna citeringspraktik som en artikel får sin egentliga betydelse. Ett forskningsresultat blir bara meningsfullt om det används av någon annan, en teori får sin mening av att andra teoretiker diskuterar den, en metod blir fungerande bara av att den brukas av andra. För att ge ett exempel: den symboliska dimensionen av en artikel som jag och Karl Palmås skrev för några år sedan utgörs av de tio citeringar som den har fått. Den manifesta nivån (innehållet i artikeln) får sin betydelse, alltså sina kvalitéer, först när andra skapar den symboliska nivån (där citeringar är en av flera sätt att studera denna nivå). The fate of facts and machines is in later users’ hands; their qualities are thus a consequence, not a cause, of a collective action.

Small uttrycker det som:

Referencing viewed in this way is a labelling process. The language pointed to by the footnote number labels or characterizes the document cited – or, in other words, constitutes the author’s interpretation of the cited work. In citing a document an author is creating its meaning, and this, I will argue, is a process of symbol making. (328)

Citeringen är alltså i grund och botten en ”kvalitativ” händelse, som i nästa led kan ”kvantifieras”. Tyvärr har citeringsanalys kommit att associeras med ”new public management” och viljan att ”räkna” forskares citeringar för att ”mäta” ”prestationer” (ursäkta alla citattecken). Men dettta är en sentida valueringspraktik som har exkluderat ett kritiskt och tänkande perspektivsom är nödvändigt för att studera citeringsnätverk.

Men det finns även ett annat problem. Det är nämligen lätt att luras in i en ”individualistisk idealism” när man arbetar med Smalls ålderdomliga begrepp. Small försöker råda bot på detta genom att förtydliga:

I also follow Leach in regarding an ’idea’ in its written form in a scientific paper as an imperfect ‘copy of an original’ which resides in the mind of an individual. In the case of ’standard symbols’. the ’idea’ is the product of a dialogue and selection process on the part of many individuals over a period of time. It follows that any single actor’s utterance cannot be used to reconstruct the ‘standard symbol': we can achieve this only by aggregating many utterances. One of the hypotheses to be explored in this paper is that a scientist carries with him a repertoire of such collective concepts and their corresponding document-symbols. These are his tools-of-the-trade, and provide the conceptual and methodological framework for his work. (329)

Tyvärr blir det svårt att behålla begreppen idea/symbol/mind/individual/collective utan att lockas in i en ”alltför mänsklig” dualism, som visserligen är populär bland sociologer, men som ändå alltid faller tillbaka i vanföreställningen om ”individen som tänker”.

Individer tänker inte. Bara nätverk kan tänka.

Den avgörande skillnaden mellan Small och Latour är att den senare för in ett tydligare ”social dimension” (social i den ”latourianska” betydelsen). Att citera handlader inte bara om att ge erkännande till andra forskares gärningar (så som Robert Merton tänkte sig) utan citeringspraktiken kan också, via Latour, ses som ”uttryck för att forskare gör sig inskrivningsbara i ett citeringsnätverk.” (Nelhans, 135)

Denna ”inskrivningsbarhet är central för Latour, som i Science in Action (1987) presenterar en mera nätverksorienterad citeringsteori (som jag snart ska visa är kompatibel med Small).

Nelhans skriver:

När Latour i Science in Action återvände till den vetenskapliga litteraturen som ämne var citeringens roll nedtonad till förmån för den vetenskapliga textens roll i forskarpraktiken. Den vetenskapliga litteraturen beskrevs som ett retoriskt verktyg i händerna på forskare som ville övertyga sina kollegor om sina forskningsröns trovärdighet. Samtidigt hävdade Latour att hans resonemang kunde reduceras till en mening som uttryckte ”the status of a statement depends on later statements” (Latour 1987, 27). På den vetenskapliga praktikens nivå kunde detta relationella framställningssätt uttolkas som att en text inte enbart får sin betydelse genom sitt textmässiga innehåll, utan även på det sätt den i framtiden kommer att refereras. (129)

Att analysera citeringar är alltså ett sätt att analysera mening. Men inte egentligen på en symbolisk nivå, utan strikt kollektivt. Citeringsanalys är ingen litteraturvetenskap – relationen mellan författare och text är en torftig kvarleva av romantisk genikult – utan en analys som undersöker kollektiva kunskapsprocesser och hur dessa, i nästa led, förändrar samhället. Samma metod skulle dock fungera för litteraturvetenskaperna; även fiktioner ”citeras” och skapar förutsättningarna för vilka idéer vi kan ”ladda ned” till vårt tänkande – givet att vi gjorde sådana händelser spårbara bortom hermeneutikens icke-precisa metoder.

Men så har det ju hänt saker sedan Science in Action skrevs.

Detta leder oss till Latours Modes of Existence och en av de mest centrala styckena i hela boken. Det vill säga passagen som beskriver korsningen mellan fiktioner [FIC] och referens [REF]. Ett längre citat är ett måste (ursäkta upprepningen från en tidigare post):

On one side, of course, no chain of reference can be established without a narrative populated by beings who can come only from fiction. How can we speak about remote galaxies, particles of matter, upheavals of mountains, valleys, viruses, DNA, or ribosomes without having at our disposal characters apt to undergo such adventures? They are all beings of paper and words, which have to be launched through the world like so many carrier pigeons. Every scientific article, every story of an expedition, every investigation is populated with stories experienced by these beings who always seem to have sprung from the unbridled imagination of their authors, and who go through tests alongside which so-called adventure movies seem entirely lacking in suspense. As Deleuze and Guattari saw, no science is possible, and especially no abstract science, unless the world is populated by these little beings capable of going everywhere, of seeing and submitting to the most terrible trials, in place of the researcher trapped in her body and immobilized in her laboratory. It is these delegates that we have trusted, since the seventeenth century, to go off and travel everywhere. (Latour 2013, p. 250–251)

Om vi överför detta till citeringar får vi mycket bättre begrepp än ”symboler”. Vetenskapliga artiklar hela tiden arbeta med fiktioner (oftast i formen av begrepp och teorier) för att kunna sammanväva den specifika formen av referenskedjor som är typiska för vetenskaplig kunskap. Fiktionerna måste finnas för att vi ska kunna ”resa” till främmande galaxer, till atomer som vi inte kan se eller DNA-spiraler som vi bara inderekt kan mäta (ibland kallas detta för ”abstraktioner”, men det är missvisande, det finns inget mera konkret. När någon skriver att ”detta är en abstrakt teori” är det oftast ett sätt att dölja att det inte finns någon referens, REF).

När jag citerar en artikeln ”hämtar” jag hem flera olika saker till den artikel jag skriver. Låt säga att jag är intresserad hur hajen Alopias pelagicus jagar sardiner med sina stjärtfenor utanför den fillipinska kusten (jag låtsas vara Olivier et al.). För att skriva denna artikel måste jag dels hämta hem tidigare forskning om andra hajar. Men jag måste också använda mig av begrepp som kan ”hämta” hem helt nödvändiga distinktioner: taxa, kinematik, hydrodynamik osv.

Först när jag har ”laddat ned” från tidigare forskares artiklar de nödvändiga referenskedjorna (som ju delvis består av ”fiktioner”), så kan jag hämta hem från havet och hajarna en mängd inskriptioner infoga dessa i artikeln. På så sätt har jag skapat både referenskedjor till andra forskare och till hajarna i havet.
journal.pone.0067380.g002

Men det är först när hajstudien sedan refereras till som den får sin egentliga mening. Huruvida forskningen om hajarnas fenor och jakten på sardiner är värdefull, korrekt, intressant eller felaktig avgörs av nästa ”generation” användare.

Om jag, å andra sidan, skulle vilja motbevisa Oliver et al., måste jag arbeta på två fronter. Dels måste jag gå igenom deras referenslista och hitta citeringar till forskning som är felaktig på något sätt. Men, framförallt måste jag hämta hem andra videofilmer, rita nya diagram, mäta fenornas hastigheter på nytt osv. Det är detta som gör vetenskapliga artiklar så rika. De har ”täckning” över ett gigantiskt nätverk, som består både av vetenskaplig litteratur, fiktioner och referens till hajars fenor i Stilla havet som forskarna fick jaga med båtar, dykutrustning och kameror.

Flattr this!

Lyckovändningen?

FIGURE 4

För några veckor sedan publicerades min och Gustaf Nelhans artikel The happiness turn? Mapping the emergence of “happiness studies” using cited references i tidskriften Scientometrics. För att läsa originalartikeln måste man befinna sig bakom betalvägg, men man kan även ladda ned en postprint-version på antingen Researchgate eller (för den som vill slippa facebookifieringen) på en hederlig server. Det är i princip samma version som originalartikeln, förutom att sidnumren inte stämmer.

Artikeln är baserad på 25 tusen publikationer hämtade från Web of Science. Vi har lagt upp alla visualiseringar i högupplöst format på ett eget arkiv. Dessutom finns all originaldata fritt tillgänglig (och för evigheten bevarade) hos Svensk Nationell Datatjänst (DOI-nummer 10.5878/002633). Man kan alltså reproducera våra resultat. Eller så kan man använda datamängderna till att producera nya resultat.

Våra resultat visar att lyckoforskningen tog sitt avstamp (i scientometriska mått) i 1960-talets gerontologi och familjeforskning. Den inkorporerades sedan i sociala indikatorsforskningen under 70-talet och vandrade sedan till socialpsykologi och personlighetsforskning. Under 90-talet breddas lyckoforskningen avsevärt och började leta sig in i medicinsk och klinisk forskning. Vid millennieskiftet sker ett kvantitativt genombrott och under 00-talet fullkomligen exploderar lyckoforskningen, samtidigt som den letar sig in i ekonomi och specialiserade vetenskaper. Vi använder dessa resultat sedan för att diskutera bland annat Sara Ahmeds tes om ”the happiness turn”, som vi nyanserar en smula.

Och mycket mer.

Flattr this!