Monadologi och sociologi 2 – datastrukturer

I förra posten diskuterade jag några mera generella drag som karaktäriserar monader. Kort och gott monadens ontologi. Men hur denna sedan ska göras till föremål för analys är delvis en fråga om vilka datastrukturer som är möjliga att använda, utan att för den sakens skull tumma på den grundläggande idén om att delarna är större än alla helheten och att varje monad definieras av andra monader snarare än av inneboende egenskaper eller överindividuella totaliteter.

I den här posten tänkte jag pröva några strukturer och se först och främst om de håller rent filosofiskt innan jag framöver tänkte konkretisera dem alltmer mot det empiriska. All kod finns i denna Github-gist (ska fixa ett ordentligt repo framöver).

Datastruktur A: lista av monader

Den allra enklaste datastrukturen för den kvalikvantitativa analysen är ”listan”, vilket innebär att en monad är lika med alla andra monader som ingår i samma nätverk. En pseudoformel skulle se ut så här, om vi låter m står för ”monad”:

m = m + m + m...

Vilket i praktiken får ett ”socialt” nätverk att se ut så här:

Bob = Alice, Eve, Lisa...

Denna listdatastruktur har flera fördelar. Den gör ingen skillnad på förhand gällande vad som blir en del av nätverket. Allt som på något sätt relaterar till monaden går att lägga till i listan. Den enda begränsningen är att länken mellan två monader måste vara helt och hållet reell (dock inte nödvändigtvis ”materiell”, det skulle vara alldeles för snävt). Ett annat sätt att uttrycka detta är med begreppet ”aktualism”, alltså att en länk mellan två entiteter endast finns så som realiserad och direkt eller medierad. När jag trycker på mitt tangentbord aktualiseras en relation mellan mig och elektroniken under plasten och mjukvaran i arbetsminnet. En sådan koppling skapar skillnad i världen och är performativ. På samma sätt kan man förhålla sig till icke-materiella entiteter. Förvisso medierar flera lager av hårdvara och mjukvara relationen mellan ”jag” och kiselatomerna i processorn, men varje koppling mellan dessa lager är möjlig tack vare att de delar gränssnitt med varandra, på samma sätt som att det svenska språket sätter en standard som det gör det möjligt för dig att läsa denna blogg, trots att du inte känner mina fingrar när de vandrar över tangentbordet.

Men relationer måste inte vara materiella och tekniska. Om jag till exempel vill räkna ut medelhastigheten på tåget som jag färdas med behöver jag använda mig av abstraktioner av typen ”tid” och ”sträcka” som i sin tur faller tillbaka på konstruerade mått såsom timmar och kilometer. Oavsett vilket är relationerna aktuella eftersom dessa figurativa entiteter – tid, sträcka, hastighet osv. – kan utbyta olika former av data eller innehåll med varandra.

Vad som däremot inte fungerar i ”listan som datastruktur” är passiva och latenta relationer. Jag kan förvisso säga att min dator är relaterad till ”kapitalismen”, att nyheterna jag läser i tidningen uttrycker ”ideologin” eller att anledningen till att oljepriset är lågt är på grund av ”nyliberalismen”. Men dessa relationer är latenta och kräver ett mått av interpretation för att begripas. Dett finns ingen direktkoppling mellan min dator och ”kapitalismen”. För att hitta en sådan koppling kan vi inte leta efter en magisk ordning eller ett system som spänner som ett paraply över världen. Istället måste vi leta efter mycker mera konkreta relationer, exempelvis:

Dator = konsumentpris, fabriker, aktiekurser, handelsavtal, råvarupriser, transportrutter, löner...

Dessa nätverk är väldigt långa och snåriga när det kommer till en komplex konsumentprodukt. Priset på kisel, nickel eller litium kan påverkas av inflödet av kalashnikovs till en region med politisk instabilitet och min dator kan då bli dyrare. Men genom att hela tiden lägga till data till listan kan vi komma närmare en mycket rikare bild av vad som får datorn att existera än att säga att ”det är kapitalismen som har tillverkat den”. Nej, det är arbetare, ingenjörer, fabriker, gruvor, containerfartyg, designers och marknadsförare som har tillverkat den.

Jag tror att de passiva och latenta begreppen måste ut ur sociologin eftersom de inte förklarar något utöver sig själva. De fungerar däremot bra för att tolka texter och för att göra konst begriplig. Men för att förklara existens kommer man inte långt med dessa begrepp. Åter till realism.

Datastruktur B: Kvantifiering?

Kan då dessa listor ges kvantitativa värden? Låt säga att Bob är ”mera” vän med Alice än med Lisa. Kanske har de känt varandra en längre tid (ett extensivit mått) eller så är de ”närmare” vänner (ett intensivt mått). Vi skulle i första fallet få:

Bob = Alice: 10år, Eve: 2år, Lisa: 1år

och i det andra fallet skulle vi behöva konstruera en skala som man mäter ”vänskapsintensitet” med (kanske har någon socialpsykolog koll på detta). Men vi kan nöja oss för tillfället med antalet år som en indikator på vänskap.

Egentligen är denna datastruktur ganska oproblematiskt rent filosofiskt. Vi kan hitta på många olika numeriska mått på relationer. Hur många retweets fick min tweet, hur många citeringar har min artikel fått, hur många likes fick bilden jag lade upp på facebook, hur många sidvisningar har min annons på Blocket fått, hur många studenter kom på min föreläsning, hur många kronor i dricks fick restaurangpersonalen?

Så länge dessa mått så att säga är ”naturliga”, alltså, de går att empiriskt hitta i anslutning till monaden, är de förvisso komplicerade, men de är samtidigt också ”funna”. De är komplicerade i meningen att antalet citeringar inte säger något omedelbart om kvaliteten på en vetenskaplig artikel (däremot är det ofta en indikator), och antalet år som jag har känt någon säger inte så mycket om hur ”nära vi är vänner”.

Alltså öppnar sig en frestelse i denna monadologiska ontologi. Frestelsen att tillskriva monaderna identiteter. Jag har inte bestämt mig för om det är en bra eller dålig idé, utan är öppen för både för- och nackdelar, men lutar mot att det inte håller filosofiskt.

Datastruktur C: Monader och attribut

Låt säga att vi skulle vilja tillskriva monaderna ”kategorier” eller ”attribut”. Vi vet ju ganska väl vilka de primära relationerna i våra liv är. Jag skiljer intuitivt på min chef på arbetsplatsen, min vän och min hyresvärd. Våra sociala relationer har kvalitéer som vi ofta förstärker och ibland överträder. Blir man vän med sin chef kan man få problem, blir man ovän med sin hyresvärd kan man hamna på gatan. Våra relationers kvalitéer är alltså helt fundamentala för vårt vardagliga varande i världen, så att vi kan skapa den ordning som krävs för att gå vidare med våra liv. Men, fungerar de filosofiskt? Går de att använda empiriskt?

Låt säga att vi skapar följande datastruktur:

Bob = Alice: chef, Eve: vän, Lisa: hyresvärd

Ur Bobs perspektiv kan detta vara helt sant. Men helt plötsligt blir definitionerna av de entiteter som Bob står i relation till bara sanna ur Bobs monadologiska perspektiv! Alice är kanske chef över trettio anställda, men hennes chefskap uttömmer inte hennes monadologiska identitet till fullo (då behövs hela nätverket). Hon har även vänner, familj, bekanta osv. vilket återigen gör oss påminda om att alla dessa delar är mycket större än helheterna! Eve är lärare till tjugo elever, Lisa är fotbolstränare till ett helt lag. Om vi går från listan som ursprunglig datastruktur har vi nu hamnat i ett dilemma. Vi kan bara skapa lokal empiri, och varje attribut eller kategori som vi tillskriver entiterna kommer att moduleras av hur vi fortsätter att utvidga nätverket. Om vi lägger till en till modad i spelet får vi genast problem. Låt säga att vi lägger till Lisa:

Nu blir nätverket helt plötsligt konstigt. Bob är hyresgäst i förhållande till Lisa som är hyresvärd i förhållande till Bob. Men dessa identiteter stämmer inte i relation till John, Jane, Alice eller Eve. Lisa och Bob kan inte reduceras till att vara hyresgäster och hyresvärdar!

Felet är att idén om attribut och kategorier är ostensiva definitioner och därför inte passar in i en performativ och aktualistisk ontologi. Att tillskriva identitet fungerar inte ens i hyfsat slutna tekniska system. Kugghjul, spikar, borrmaskiner och batterier kan komponeras på ett oändligt antal vis. Ägg, mjöl, smör och jäst kan skapa massor av bakverk. Malt, humle och jäst, en hel dryckeskultur! Reduktionism är en fälla!

Entiteter kan alltså bara ha lokala identiteter i denna datastruktur. För att få ihop det hela filosofiskt måste vi istället förskjuta kvaliteerna till de performativa relationerna.

Grafteoretiskt betyder det att vi ger ”labels” till ”edges”, ungefär så här:

På så sätt kan vi rädda den kvalitativa bestämningen utan att inkräkta på monadernas identiteter, som vi låter även i fortsättningen vara öppna och performativa. Lisa och Bobs relation som hyresvärd och hyresgäst uppstår i mötet mellan dem, på samma sätt som Jane är tandläkare för Lisa, och Lisa är patient för Jane. Så länge vi fäster ett attribut på en performativ relation kommer vi undan reduktionism, eftersom varje monad kan ha oändligt många relationer.

Men frågan som sedan följer är hur länge en sådan relation är giltig? På ett sätt är det enkelt att svara på en sådan fråga. Bob är kanske hyresgäst hos Lisa i tio år, vilket är enkelt att mäta. Men, låt säga att han under de tio åren också blir vän med Lisa. Kan man vara både vän och hyresgäst? Rent datastrukturmässigt är det inga problem egentligen att tillverka ”multigrafer” där man kan ha oändligt många relationer (edges) mellan noder. Men, kvalitativt hamnar vi i vissa sociala paradoxer. Man kan vara vän med sin chef och sin hyresvärd, men relationerna modulerar varandra, så att hyresvärden dessutom måste ta in i beräkningarna att hyresgästen är hens vän och att vänskapen riskerar att korrumperas på grund av att det finns en maktrelation mellan värd och gäst.

Men egentligen kan vi tänka oss att det finns en hel lista av attribut till varje relation mellan två monader (nu börjar det låta lite tekniskt…). Men jag kan ju i princip vara både vän, klasskamrat, kund och medpassagerare på bussen med min tandläkare. Förvisso är kanske bara en eller ett par av relationerna empiriskt relevanta, men det hela måste gå ihop analytiskt också. Om varje monad har oändligt många andra monader, kan relationen till dessa monader också vara oändliga? Sociologiskt sett är allt ändligt, i meningen att det är inte allt som är relevant, så begränsningen i praktiken kommer ändå att finnas.

 

 

Dataroaming, existentiell tid och fotonteleportering

Under min semester upptäckte jag till min förtjusning att min operatör har slopat roamingavgifter i flera EU-länder. Helt plötsligt var smarttelefonen inte längre den där jobbiga apparaten som i efterdyningarna av de europeiska teleoperatörernas metodologiska nationalism alltid lyckades ge mig en alldeles för hög räkning någon gång i augusti. Min operatör sade ”ring, surfa och smsa som vanligt”. Vanligheten flyttade in i semestern, som man vanligtvis tänker på som ett undantag.

När jag backpackade vid millennieskiftet lämnade jag såklart min tjocka dumtelefon med två timmars batteritid och monokrom enradsdisplay hemma. Det var både ohemult kostsamt att ringa och fungerade inte i en estetik av etnotistisk världsmusik, resande-som-livsvisdom och smutsiga hostel fyllda av europeer och amerikaner som alla pratade om samma saker. Att resa som backpacker handlade om att koppla bort för att uppleva något ”annorlunda”. Det är givetvis bara en klyscha men jag visste inte bättre när jag var 20.

Men när smarttelefonen nu fungerar ”som vanligt” trots att man inte är hemma så känns det inte riktigt som att man är lika långt borta. Borta är däremot de långa tågresorna (ersatta av lågprisflyg) och de veckolånga offlineexistenserna som endast var uppbrutna av halvtimmeslånga internetcafébesök när man snabbt loggade in på Hotmail och skickade ett livstecken hem till släkt och vänner. Dataroaming till ”hemmapris” är kanske sista spiken i kistan för internetcafét, som snart bara kommer att kunna hittas utanför EUs ”integrerade marknad”.

Smarttelefonen i min ficka har nu ersatt den ihopfällbara turistkartan som man får gratis på hotell och turistbyråer. Denna säkra indikator för att observera en ”turist” försvinner i ett helt normalt stirrande ned på en skärm. Den ångest man hade som backpacker att se ut som en vanlig turist har fått oväntad draghjälp av mobilen i handen.

Google och Facebook samlar varsamt på platsdatan genererad av telefonen och ber mig snällt att recensera varje plats jag besöker. Min lunch blir genast delad till mina vänner och det finns inte längre någon mening med att berätta anekdoter när jag kommer hem. Kanske lika bra det.

Min exakta semesterposition är en konsekvens av två gigantiska framsteg inom den teoretiska fysiken. Einsteins speciella relativitetsteori kan räkna ut och kompensera för att tiden går långsammare vid den höga hastighet som GPS-satelliterna färdas med, samtidigt som den generella relativitetsteorin kan kompensera för att tiden samtidigt går lite snabbare ute i rymden än på jorden eftersom timrummets krökning är mindre längre bort från jordens massa. Utan Einstein hade jag checkat in på fel restaurang och gått ännu mera vilse än jag redan gör när jag navigerar mig med ena ögat fäst på mobilskärmen.

Samtidigt som solen bombarderar våra kroppar med ultraviolett ljus på stranden, som våra kroppar syntetiserar till D-vitamin, bombarderar GPS-satelliterna oss med tid som våra telefoner räknar om till rum.

Köttsynthesizers och kiselkalkylatorer. En existens som i båda fallen är en konsekvens av ljusets konstanta hastighet i alla riktningar.

På min kiselräkneapparat med litiumjonbatterier och skärm av flytande kristall läser jag att kinesiska forskare har lyckats skicka upp en tvillingfoton från en satellit 1400 kilometer upp i luften till en station i de ockuperade tibetanska bergen (artikeln på ArXiv). På grund av att de båda fotonerna var kvantsammanflätade registrerades information om den ena fotonens tillstånd omedelbart av den andra fotonen. ”Omedelbart” är i dessa hastigheter ett svåruppmätt begrepp, men det som är ”spooky” (Einsteins ord) i detta sammanhang är att information om  kvantsammanflätade partiklar (teoretiskt) färdas snabbare än ljusets hastighet, även över långa avstånd, vilket i teorin skulle medföra en tidsresa bakåt i tiden. Detta har dock inte kunnat visas experimentellt, och kanske är det inte möjligt. Frågan är ännu inte löst.

Men oavsett vilket ligger den teoretiska och experimentella fysiken i våra existentiella skuggor och förändrar villkoren för vår futtiga ”psykologiska” tidsuppfattning, även om våra hjärnor inte har någon förmåga att uppfatta att tiden går långsammare på botten av en dal jämfört med toppen av ett berg (atomuren är våra proteser). Den psykologiska tiden förändras inte av fysikens lagar utan av de teknologiska konsekvenser som lagarna medför. GPS-chippet i min ficka, i kombination med Google Maps-appen, får mig att navigera och förhålla mig till gator, vägar och avstånd på ett annat sätt än turistkartan och armbandsuret.

Google säger att det är 14 minuter att gå och 4 minuter att ta en buss för att komma till min destination. Ändå går jag vilse.

Att kartlägga aktörsnätverk i dokument med Named-Entity Recognition

I förra veckan var jag på en workshop arrangerad av Swe-CLARIN som arrangerats för att sprida språkteknologiska metoder till andra discipliner och ämnen. Det var en mycket lyckad tillställning och jag fick många idéer till hur man kan använda lite mer avancerade metoder för att studera dokument genom maskinell fjärrläsning, som i sin tur kan göra så att man bättre navigerar fram till kvalitativt intressanta materialfragment.

Den metod som jag genast blev intresserad av är någ0t som kallas för Named Entity Recognition (NER). NER funkar på så sätt att man applicerar olika statistiska modeller (ibland avancerad maskininlärning även) på naturligt språk för att extrahera ”entiteter” ur text.

Det har funnits flera NER-tillämpningar för engelska, men för andra språk är det ju alltid svårare. Men när jag besökte en session om annoteringsverktyget Sparv fick jag höra talas om SweNER, en tillämpning som är utformad efter svenska.  Den exakta funktionaliteten är dokumenterad i Kokkinakis D., Niemi J., Hardwick S., Lindén K. and Borin L. (2014). HFST-SweNER. A New NER Resource for Swedish. Proceedings of the 9th edition of the Language Resources and Evaluation Conference (LREC). Reykjavik, Iceland och koden hittar man här.

Vad upptäcker då SweNER i en text? Mycket intressanta saker!

Det lättaste är att ge ett exempel. När jag skickar text till SweNER svarar den så här:

$ echo "Jag bor i Göteborg. Jag är vän med Lisa som arbetar på Socialstyrelsen och tillsammans med Sven ska jag på julafton åka till Nora." | hfst-swener 

Jag bor i <ENAMEX TYPE="LOC" SBT="PPL">Göteborg. Jag</ENAMEX> är vän med <ENAMEX TYPE="PRS" SBT="HUM">Lisa</ENAMEX> som arbetar på <ENAMEX TYPE="ORG" SBT="CRP">Socialstyrelsen</ENAMEX> och tillsammans med <ENAMEX TYPE="PRS" SBT="HUM">Sven</ENAMEX> ska jag <TIMEX TYPE="TME" SBT="DAT">på julafton</TIMEX> åka till <ENAMEX TYPE="LOC" SBT="PPL">Nora.</ENAMEX>

SweNER upptäcker alltså att:

  • Göteborg – LOC – en plats.
  • Lisa – PRS/HUM – en person, mänsklig.
  • Socialstyrelsen – ORG – en organisation.
  • Sven – PRS/HUM – en person, mänsklig.
  • Julafton – TME/DAT – Datum.
  • Nora – LOC – En plats (och inte i denna kontext ett namn på en person).

Vad kan man då göra med denna typ av metadata? Jo, man kan studera vad Gabriel Tarde kallade för monader och som nutida sociologi kallar för ”aktörsnätverk”. Utan att gå in på detaljer kan man säga att varje text består av ett antal aktörer, vissa är mänskliga, andra är organisationer, teknologier, platser, händelser osv., allt som har varit med och format något genom sin verkan kan man kalla för aktörer (eller aktanter, entiteter, monader, ju obskyrare begrepp man använder desto argare kritiker får man).

En aktör definieras av sitt nätverk, vilket ger upphov till ett perspektiv på andra nätverk. Ett nätverk, i sin tur, påverkas av sina aktörer. Om jag är vän med Lisa påverkas Lisa av mig och jag av henne. Om jag bor i Göteborg påverkas Göteborg (väldigt lite förvisso) och jag påverkas av Göteborg (till och med påverkas min småländska dialekt sakta men säkert). Jag definieras litegrann av Göteborg (men jag kan inte reduceras till ”göteborgare”) och Göteborg definieras ytterst lite av min närvaro i staden.

Med NER kan man alltså skapa en (förvisso partiell och ofullständig) lista av aktörer som ingår i ett nätverk. För att ge ett exempel kan vi ta en Statlig offentlig utredning eller två. En utredning är ju skriven av en kommitté, som ofta består av flera personer (PRS/HUM). Den beskriver ofta geografiska platser (LOC) och den inhämtar massvis med information av andra organisationer (ORG).

Hur kan man använda detta för att lättare navigera i stora textmängder? Låt mig ge ett exempel på två offentliga utredningar som jag inte har läst ett enda ord i (än): SOU 1989:73 – TV-politiken och SOU 1973:10 – Reklam. Det enda dessa har gemensamt vid första anblick var att jag sökte på ”television”.

Låt oss säga att jag nu skulle vara intresserad av TV-politik. Då kan jag visualisera dessa två utredningar baserat på deras aktörsnätverk (som vi kan se konturerna av genom resultatet av NER). Så här kan det se ut vid en första anblick.

1989_73

Hela visualiseringen kan man se som en pdf. Vad betyder detta? De lila noderna representerar ORGanisationer. TV3, Marknadsdomstolen, Regeringskansliet, Europarådet och Kabelnämnden har uppenbarligen med TV-politik att göra (för att ta reda på hur måste vi givetvis läsa texten). De gröna noderna är platser (LOC), exempel Vännäs och Göteborg. Expressen, Kvällsposten och TV-konventionen klassificeras som WRK, som står för ”Work&Art”, vilket består av texter, filmer, böcker, nyhetsmedier, skulpturer etc. Men vi hittar även några manliga HUMans, här Bengt, Lars och Bertil (jag borde kanske haft med efternamnen :)).

Vi kan alltså får en första glimt av vad en SOU innehåller för entiteter. Men det intressanta blir om man lägger flera SOUer bredvid varandra. Mellan SOU 1989:73 och SOU 1973:10 finns det nämligen några gemensamma aktörer. Vi intar ett ny monadiskt perspektiv:

mellanrum

Här hittar vi inga människor, utan platser (LOC) och organisationer (ORG). Televerket, Sveriges Radio, Kommunikationsdepartementet och Jordbruksdepartementet relaterar till utredningar om television och reklam. Det gör även Stockholm, Norden, USA och Danmark.

Här kan vi fortsätta att lägga till texter och dokument, aktörsnätverk är lite som fraktaler, de blir större och större ju mer man zoomar.

Tror ni att detta kan vara något som är intressant att exempelvis applicera på alla de 8000 utredningar som nu finns tillgängliga digitalt? Givetvis inte samtidig, det skulle bli helt oöverskådligt. Men man skulle kunna hälla in alla nätverksfiler i offentligautredningar.se och så kan användarna själva komponera sina aktörsnätverk i Gephi.

\

All kod och källdata finns på min Github-sida för den som vill tillämpa detta på helt andra texter (har endast testat på Linux för det är lite enklare).

Anteckning om Folkpartistisk tillväxtkritik 1972

I mitt arbete med att analysera olika sätt att mäta välfärd på snubblade jag över en intressant folkpartistiskt motion från 1972, fyra år efter låginkomstutredningen/levnadsnivåundersökningen. Tack riksdagen för era öppna data!

Folkpartisterna är i denna motion på krigsstigen mot samhällets ekonomisering. BNP avfärdas som en indikator på välfärd så här:

Vi använder oss i dag av synnerligen bristfälliga och ibland rent
felaktiga metoder för att mäta välfärden. Ofta har man använt ökad bruttonationalprodukt som liktydigt med ekonomisk utveckling, framåtskridande och ökat välstånd, trots att bruttonationalproduktbegreppet inte täcker in värden som fritid, trygghet och valfrihet i arbetet, miljö, hälsotillstånd m. m. Sådana faktorer utövar ett stort inflytande på välfärd supplevelsen men kommer inte till uttryck i  bruttonationalproduktbegreppet. Det är helt enkelt fel att reservationslöst jämställa en ökad bruttonationalprodukt — BNP — med ökad välfärd.

Denna kritik är ju mer eller mindre allmängods på 70-talet. Men det som är intressant är att till och med Folkpartiet tänker att de nya mätmetoderna ska utvecklas av ”parlamentariker” snarare än forskare, och ansluter sig till LO:s linje:

Man borde observera vad LO skriver i sitt remissvar över denna fråga om ett bredare system av välfärdsmått. LO ser detta som en stor, och tydligen också svår, fråga. LO anser att det är lämpligt att låta det tilltänkta utrednings- och metodutvecklingsarbetet ledas av parlamentariker. LO:s syn summeras så här i utlåtandet (FiU 39, 1971, s. 8): ”Därigenom skulle en bättre anknytning till riksdagens behov av att kunna styra utformningen av underlaget för samhällsplaneringen skapas.” Det gäller enligt LO den uppenbart mycket stora frågan ”hur dessa kalkyler och de olika välfärdsmått och politiska ställningstaganden de föranleder skall kunna byggas in i prognos- och planeringsarbetet”. Detta gäller en bred och genomgripande fråga, och därför är det värdefullt att parlamentariker kan vara med på ett tidigt stadium.

Jag undrar om detta skulle vara möjligt idag? Att till och med metodarbete ska utföras av parlamentariker (och inte forskare).

Sist men inte minst uttrycker Folkpartisterna en arbetskritik som även den är en omöjlig figur på den politiska högerkanten idag.

Till detta kommer att samhället med alla sina sociala skyddssystem ändå är ett hårt samhälle för den som inte orkar med i en uppskruvad arbetstakt, har svårt att anpassa sig till etablerad arbetsmoral och konkurrenskrav eller som helt enkelt av rent fysiska skäl inte orkar. Varje år stampas ett växande antal människor ut från arbetsmarknaden. Vi måste inse att den industriella exploateringen inte kan fortsätta som hittills, att vi måste ägna en mycket större uppmärksamhet
åt tillväxtens innehåll och effekter.

Genuskontroll av Högskoleläckan

Ibland skrivs det i tidningen om att det är dålig stämning i en Facebookgrupp som heter Högskoleläckan. Gruppen startades av Ulf Dalnäs i december 2010 och har omkring tiotusen medlemmar. Dess primära inriktning är ”skvaller” från högskolevärlden, men för det mesta är inläggen som postas väldigt seriösa.

Jag blev lite nyfiken på vilka som kommenterade på Högskoleläckan, fast bara i sociologisk mening, givetvis.

Jag skrapade ned de cirka 5200 trådarna på Högskoleläckan innehållandes sammanlagt ungefär 24000 kommentarer. Jag anonymiserade datamängden. Sedan plockade jag fram algoritmen gendercounter som jag har skrivit primärt för Genuskollen, men som funkar utmärkt att importera som en modul för att analysera stora mängder namn genom att köra dem mot SCBs statistik över namn/kön från folkbokföringen.

Jag hittade 24210 namn i kommentarstrådarna. Dessa fördelade sig så här:

Kvinnor: 5837

Män: 15810

Obestämda: 2563

Vilket ger avrundar till procentfördelningen:

Kvinnor: 24%

Män: 65%

Obestämda: 11%

Kategorin ”obestämda” har flera förklaringar. För det första är det vanligt med utländska namn på en sida som har en förhållandevis internationell användarbas. För det andra så är det vanligt att Facebook-användarnamnen är smeknamn, exempelvis ”Peo” istället för ”Per-Olof” och att vissa anger efternamnet som förnamn, typ ”Svensson Sven”. På Facebook anger man förvisso kön i sin användarprofil, men jag ville inte riktigt anropa individer som sådana i denna lilla undersökning. Det är bra ändå med ett elvaprocentigt brus, eftersom det ger mycket bra data att mata tillbaka till gendercounter-algoritmen för att förfina den.

Högskoleläckan är så pass stor att den även uppvisar korrelationer med saker som händer i omvärlden. Till exempel Macchiarini-skandalen får ett bra kronologiskt avtryck, alltså, gruppens interaktioner går att relatera till händelser i ”omvärlden” (klicka för att förstora).

Screen Shot 2016-05-05 at 16.18.41

Resultaten ska tolkas med en nypa salt. De är framtagna med lite eftermiddagsprogrammering. Även om de är replikerbara är en elvaprocentig ”felmarginal” ändå inte helt obetydlig i sammanhanget.

Offentligheten och imitativ strålning – konspirationsteoretiker och tangentbordskrigare

I förra inlägget skrev jag hur man tentativt skulle kunna studera imitativa strålar i digitalt material som man skrapade från Facebook. Här kommer ytterligare en trevande idé om hur man kan vaska fram vissa typer av beteenden som kan vara intressanta för att förstå det offentliga samtalets struktur.

När jag samlar data från Facebook har jag även sparat hashsummor av användarnas femtonsiffriga ID-nummer. Detta gör att jag kan följa individer genom hela materialet, fast utan att veta vem de är eftersom hashsumman inte är reversibel. Sociologi intresserar sig ändå inte för individer, och forskning handlar ju inte om att hänga ut någon (det lämnar åt journalistiken).

Men vad som är intressant tänker jag är att se vilka ”idealtypiska” nätbeteenden som man kan vaska fram. Ofta talas det ju om ”troll” och ”tangentbordskrigare”, fast sällan hänvisar man till empiri. Kanske finns det möjlighet att ändra på det, om vi experimenterar med samhällsvetenskapliga metoder litegrann.

Observera att det jag nu skriver om är enskilda kvalitativa exempel baserade på användarmönster, och inte något uttalande om fenomenens utsträckning (kvantitet, strålningsgrad).

\\

Först tänkte jag ge ett exempel på vad man kan kalla för en ”konspirationsteoretiker”. När jag söker jag på ”Bilderberg” i min datamängd kan man se att vissa individer ger ett speciellt avtryck om man visualiserar beteendet som ett nätverk (av imitativa strålar).

bilderberg1

Individen d3eb1 har kommenterat på Moderaterna, Centerpartiet och Socialdemokraternas Facebooksidor om Bilderberggruppen. Det här är vad hen säger (klicka för att förstora):

bilder4bilder3bilder2

En övertygad konspirationsteoretiker är dels missionerande och vill berätta för så många som möjligt. Men samtidigt känner hen sig begränsad av censur och inskränkningar i yttrandefriheten. Budskapet ska fram till varje pris, men priset en får betala är att bli tystad.

Den här typen av utläggningar är typiska:

/…/ de censurerar obekväma användare genom att radera deras inlägg samt tar bort deras möjlighet att kunna kommentera! De är under ALL kritik. För istället för att SVARA på sakliga frågor som folk ställer om socialdemokratiska partimedlemmar som springer på hemliga kontroversiella Bilderbergmöten och om den snedvinklade rapporteringen från Syrien, så RADERAR de inlägg,som de sedan förnekar att de har tagit bort och som jag nämnde tidigare, tar bort funktionen att kunna KOMMENTERA!! Är det DEMOKRATI DET? Jag kommer ALDRIG mer rösta på Socialdemokraterna. Ett gäng hycklare är vad ni är som kränker människors mest fundamentala rätt att få yttra sig utan att bli censurerad!!
Nu skall jag gå ut och skriva om det här på min blogg!!

En annan typ som vi ofta möter är ”tangentbordskrigaren”. I likhet med konspirationsteoretikern finns en missionerande ambition som vänder sig utåt och vill berätta överallt om ”sin sanning”. Tangentbordskrigaren detekteras ofta genom att man söker på något ”kritiskt” begrepp (ex. ”massinvandring”, ”flyktingpolitik”) och sedan zoomar in på en användare som rör sig över flera grupper; alltså, någon som har ett nomadiskt förhållningssätt till territorier (krigsmaskin, den ”lantliga fascismen”).

tangent

Användaren 2c2b9 rör sig över flera grupper när man söker på termen ”massinvandring”. Misstanken om att vi har att göra med en tangentbordskrigare stärks. Tar man fram vad hen säger genom hela datamängden ser man att hen täcker in ett stort territorium:

Centerpartiet|Är inte regeringens politik skäl nog för att misstroendeförklaras, vad är i såfall skäligt?
Centerpartiet|Framgår inte ett smack vad graferna står för mätdata. 😒
Liberalerna|Lägg ner tankar på att gå med i nato.
Fundera på vilka som låg bakom Palme-mordet…
http://www.friatider.se/oliver-stone-cia-bakom-statskuppen-i-ukraina
Nyheter Idag|Dom där snorungarna skulle kunna  vara barn till dom där ”ensamkommande barnen”.
I takt med att invandrare förgriper sig på svenskar så får SD ökat stöd, men visst är det MYCKET SYND att det i Sverige länge inte funnits någon större nationalistisk solidaritet i annat än sportsammanhang.
Expressen|Kom mördaren till landet genom från ett arabland genom ”fri invandring” eller var han en urinvåndare som blev förtryckt av arbetslinjen?!?
Sverigedemokratisk ungdom|Läckert kaxig reklam. Politik ska alltid vara aktuellt och det visar SD exemplariskt. Dock så tror jag inte Sverige blir bra direkt vid regeringsskifte 2018, utan då har sveriges ekonomi och demografi skadats något offantligt mycket om inte moderaterna öppnar både sina hjärtan och hjärnor och utlyser nyval tillsammans med SD och övriga allianspartier. Det måste bli slut med den vänsterextrema migrationspolitiken!!
SR P1|Meningen. Må bra å ha kul! 😀🙌👍
SR P1|Räcker det inte att man luktar skit på sin fritid? På arbetstid kan man väl försöka hålla en god stil?
Stoppa maktmissbruket|I trafiken finns nolltollerans. Men den allmänna moralen och brottsstävjandet?!? KATASTROF!! Moderater och Sossar bör packa och icke göra sig besvär i riksdag och regering framöver….
Stoppa maktmissbruket|Ska vi ta in Saudi-Arabien, Irak, Egypten, Somalia och Eritrea med i EU också? När vi ändå håller på?!? :-p
Friatider.se|I Sverige är det rasism, vi är blandade och mångkulturella…
Friatider.se|Syriska och Marokanska Europer.
Bra att vi har massinvandring till sverige av sådana va?
Snart i en Svensk Stad nära dig. Säpo kanske ska höja terrorhotnivån en grad från och med idag?
Friatider.se|Igen och igen…

Tangentbordskrigaren rör sig alltså mellan högerextrema partier och grupperingar, via ”alternativmedierna” och in och ut genom de etablerade partierna. Både tantentbordskrigarna och konspirationsteoretikerna tycks dela denna mikrotaktik; breda ut sig, ockupera ett kommentarsfält, gå vidare.

\\

Nu funderar jag på om jag ska skriva en liten algoritm för att detektera beteenden som delar samma abstrakta maskin som tangentbordskrigaren och konstpirationsteoretikern. Jag tänker att följande egenskaper kan vara intressanta att kalibrera algoritmen efter:

  • Gradvis repetetiva ord och fraser (ofta upprepar sig).
  • Stor spridning över olika facebookgrupper.
  • Frekvent användning av CAPSLOCK.

Vad tror ni? Med en sådan algoritm skulle man sedan kunna kvantifiera mina icke-systematiska observationer och kanske få en bild av olika nätbeteenden.

Empati på internet, läsande och primitivism

Idag skriver jag och min forskarkollega Niclas Hagen en replik till Fredrik Svenaeus, som liknade internet vid ”hejarklackens logik”. Jag tänkte här bara länka till de referenser som inte får plats i tidningsformatet.

  • Hänvisningen till Julia Pennlerts forskning om poesi på internet finns publicerad i antologin Litteraturens nätverk.
  • Diskussionerna kring internet och arabiska kvinnliga poeter ägde rum på Göteborgs poesifestival förra året.
  • Bruno Latours begrepp homo fabricatus kommer från kapitlet om teknik i An Inquiry into Modes of Existence, närmare bestämt på sidan 230. Jag har även bloggat om detta här.
  • Läsvärt i sammanhanget om Helena Granströms teknik- och modernitetskritik är Isabelle Ståhls recension i SvD. Man blir lite mörkrädd av passagen om ”renskötaren”…

Uppdatering: Svenaeus skrev en replik till vår replik med titeln ”Ängsligt teknikkramande förbättrar inte nätkulturen”.

Recension: Digital politik: Sociala medier, deltagande och engagemang

Idag publiceras en recension av boken Digital politik: Sociala medier, deltagande och engagemang (Carlsson, Eric, Bo Nilsson & Simon Lindgren (red.) (2015). Göteborg: Daidalos) som jag har skrivit i tidskriften Human IT, som är helt och hållet open access.

Jag fick fritt fram att skriva långt, så recensionen är förhållandevis utförlig. Utrymmet gjorde även att jag fick möjlighet att driva ett antal metodologiska och teoretiska resonemang som visar hur boken med sitt diskursanalytiska perspektiv (tung inspirerat av Laclau och Mouffe) på många sätt missar den digitala politiken. Detta är dock mer än en metodfråga. Det får bland annat som konsekvens att man helt bortser från konsekvenserna av internets plattformisering, hur hypertext fungerar, vad meta-data betyder osv.

Men det finns även en annan brist i perspektivet. Genom att författarna i huvudsak analyserar hur man har talat om digital politik i konventionella massmedier, så missar man helt och hållet framväxten av ”alternativmedier” och deras (i många fall negativa) påverkan på det offentliga samtalet. Ur ett svenskt perspektiv känns det omöjligt att tala om digital politik utan att nämna Flashback, Avpixlat osv.

Eller vad tänker ni om detta?

 

Partiernas kön

I november förra året undersökte SCB i sin partisympatiundersökning hur fördelningen mellan män och kvinnor såg ut bland de som kunde tänka sig att rösta på ett visst parti i nästa val. Resultatet blev följande:

scb

Vad som kanske överraskade lite var den stora övervikten av män bland Sverigedemokraterna. Den var så stor att den fick alla andra partier att bli (svagt) kvinnodominerade. Sådan blir ju effekten av att ha riksdagsvalet som modell för vad som ”gör” ett parti. Allt kommer i slutändan bli 100 procent.

Finns det ett annat sätt att belysa kön på? En opinionsundersökning i linje med SCBs undersökning siktar ju bara på valresultatet som ett slag facit och ger ett extensivt mått. Men hur ser det ut när det politiska diskuteras? Ett sätt att studera det offentliga samtalet är att se vad som sägs på Facebook. På så sätt får man en mera processuell och rörelsebaserad indikation på hur det politiska byggs från handling till handling i offentligheterna. Vilka är det som dominerar i detta samtal?

För att undersöka detta laddade jag ned ett stort antal poster på de olika partiernas Facebooksidor (från 400 till 1000 poster, exklusive Kd som inte har något officiell sida) och gick igenom de ca. 100 000 namn som förekommer i kommentarstrådarna. Facebook håller förvisso ganska bra koll på vilket kön varje användare har, men denna information är inte öppet tillgänglig för övervakning via Graph-APIet som man använder för att skrapa data.

Så då fick jag lösa det med ett litet hack.

Jag körde alla hundratusen namn genom mitt lilla program gendercounter (som även utgör motorn i Genuskollen.se) och räknade hur ofta manliga och kvinnliga namn förekom (i absoluta tal, dvs. samma unika namn kan förekomma flera gånger). Resultatet blev så här:

resultat

När det kommer till kommentarer på Facebook är männen ständigt överrepresenterade, med undantag för Feministiskt initiativ som är det enda parti som har fler kommenterande kvinnor än män. Den generella trenden är att högerut är det fler män och vänsterut fler kvinnor. Men Sd sticker i denna undersökning inte ut mer än något annat högerparti. Istället är det Moderaterna som har flest män som kommenterar på sin Facebooksida.

Så här ser datamängden ut i tabellform för frekvens av namn (procenttalen avrundade, därför kan det bli 101% när man summerar):

Parti Kvinnor Män Obestämd N
Kommentarstrådar
Fi 55 32 13 10345 853
V 38 48 14 19429 998
S 37 48 15 20174 1004
Mp 34 53 13 15101 965
C 24 66 10 7512 732
L 27 65 9 10404 725
M 22 70 8 22354 1002
Sd 25 64 11 10529 427

Nu finns det flera metodproblem som jag ännu inte har löst, så dessa resultat ska läsas med försiktighet. Det som sorteras som ”obestämt” är  namn som inte förekommer i listorna som matchar namn. Det kan exempelvis röra sig om olika ”smeknamn”, men det kan även om genusneutrala namn. Jag jobbar kontinuerligt med att öka denna träffsäkerhet, men först måste man utsätta sig för riktig data innan man hittar anomalierna.

Trenden är ändå ganska tydlig. Kanske kastar denna typ av undersökningar nytt ljus på de politiska samtalens förutsättningar. Det verkar i så fall som att nästan alla Facebooktrådar är sorgligt mansdominerade.

\\

Metod / Kod

Först skrapade jag varje partis Facebooksida med följande skript. Fyll i sidornas ID-nummer och din access_token:

from facepy import GraphAPI
from django.core.serializers.json import DjangoJSONEncoder
import json

group_id =""
access_token = ""

graph = GraphAPI(access_token)
pages = graph.get(group_id + "/feed", page=True, retry=3, limit=1) #This is the number of posts per file!! original value 1
i = 0
for p in pages:
    print('Downloading page', i)
    with open('Partinamn/%scontent%i.json' % (group_id, i), 'w') as outfile:
        json.dump(p, outfile, indent = 4, cls=DjangoJSONEncoder, ensure_ascii=False)
    i += 1

Jag stoppade skriptet när det översteg 1000 poster för att inte översköljas av data.

Därefter körde jag följande skript för att räkna namn. Observera att jag importerar gendercounter som en modul, vilket gör att man först måste avkommentera några rader som sköter filöppning etc (se kodkommentarerna) samt lägga både gendercounter och dess namnlistor i samma katalog.

#-*- coding: utf8 -*-
import json
from json import load
from os import listdir
import gendercounter

counter = 0
kvinnocounter = 0
maencounter = 0
undetermined = 0
commentfield = 0

recordlist = []

directory = "Partinamn/"


#### Multi file parser from directory
for filename in listdir(directory):
    with open(directory + filename) as currentFile:
        jsondata = load(currentFile)

    for item in jsondata['data']:
        #print(item['status_type']) #For debugging
        if item:
            try:
                if item['comments']['data']:
                    commentfield += 1
                    print("Begin new post.")
                    for i in item['comments']['data']:
                        print("-" * 20)
                        namefield = i['from']['name']
                        splitted = namefield.split()
                        firstname = splitted[0]
                        print(firstname)
                        resultat = gendercounter.textinput(firstname)

                        if resultat[0][0]:
                            print("Kvinnonamn " + str(resultat[0][0]))
                            kvinnocounter += 1
                        elif resultat[1][0]:
                            print("Mansnamn " + str(resultat[1][0]))
                            maencounter += 1
                        else:
                            print("Couldn't determine gender")
                            undetermined += 1

            except KeyError:
                print("there was a key error")
            print("\n")


print("Results for the dicretory: " + directory)
print("There number of comment threads: " + str(commentfield))

summa = kvinnocounter + maencounter + undetermined
print("Summa namn: " + str(summa))

print("Kvinnocounter: " + str(kvinnocounter))
print("Maencounter: " + str(maencounter))
print("Undetermined: " + str(undetermined))

print("Kvinnor, " + str(kvinnocounter / summa))
print("Män, " + str(maencounter / summa))
print("Icke-bestämda, " + str(undetermined / summa))

 

Monadologiska undersökningar 2 – Överlappande facebooksidor

Jag snubblade över en liten idé (eller så snubblade den på mig) när jag satt och kodade på en anonymiseringsteknik för facebookdata. Det konventionella sättet att se på politiska ideologier är ju att de formas och formuleras ”uppifrån”, att de har en normkälla och är underblåsta av en kraftig bas som skapar dess centraliserande kraft kring ett Budskap (som forskaren tolkar och säger Sanningen om till de som inte vet bättre).

Ett annat sätt att se på saken är att börja ”nedifrån och upp”, alltså i det sorlande hav av monader, divider, aktanter (vad vi kallar dem spelar inte särskilt stor roll). Här blir det intressant att studera de politiska varelsernas rörelser, eftersom det är dessa mönster och interaktioner, dessa översättningar och allianser, som i sin tur konstituerar det som vi ser som en politisk helhet. Här talar man mindre om de totalitära idéerna som texter och teser, utan letar efter totalitära affekter, begär, existensformer, interaktionsformer etc. Här hittar man inte fascismen, utan mikrofascismen.

Den empiriska data som presenteras nedan är bara ett litet test och det går inte att dra några slutsatser av dem. Själva insamlingen gjordes medelst det lilla pythonbiblioteket facepy. Jag gick till de öppna sidorna för Sverigedemokraterna, Miljöpartiet, Svenskarnas parti och Avpixlat och laddade ned så mycket jag kunde med Facebooks API-nyckel. Inga speciella tankar om urval alltså, jag hämtade bara vad jag fick, vilket varierade från några hundra till några tusen poster. Därefter valde jag ut alla kommentarer på alla poster och förvandlade varje användares unika Facebook-id till en kryptografisk hashsumma (för anonymisering). Dessa extraherades och skrevs till nya filer som sedan jämfördes i en korstabell:

Sd Mp Svp Avpixlat
Sd 80 92 47
Mp 80 22 3
Svp 92 22 5
Avpixlat 47 3 5

Vad säger då denna figur? Den visar på samförekomst (co-occurrence) av (hashade) Facebook-id mellan Facebooksidorna. Det finns alltså 80 tillfällen då samma person har kommenterat på både Miljöpartiet och Sverigedemokraternas sida, 92 gånger på Sd och Svenskanas Partis sidor, osv. Vi följer alltså konkreta personer, men har avidentifierat dem (visst skulle detta vara en läskig form av ”åsiktsregistrering”).

Men det känns ju väldigt kontraintuitivt att det skulle vara större samförekomst mellan Sd och Mp än vad det skulle vara mellan Sd och Avpixlat. Sd och Svp ligger förvisso nära varandra ”ideologiskt”, men å andra sidan konkurrerar de om om röster. Som ni märker förklarar den aggregerade nivån väldigt lite. Men den kan ändå ge oss vissa riktningar att gå i, vissa spår att följa.

Vad är det då som förklarar siffrorna? Svaret är att informationsrikedomen ökar med förstoringen. Vi måste alltså dyka ned i de 80 samförekomsterna (i ett datamaterial av tiotusentals interaktioner) för att se vad Miljöpartister och Sverigedemokrater har gemensamt (inom ramen för mitt slarvigt genomförda testurval). Men om vi gör det så bryter vi anonymiteten!

Nu kan man förvisso tänka att det är oproblematiskt att ändå analysera detaljerna i helt öppna Facebooksidor och därmed tumma på anonymiteten, eftersom de är tillgängliga för vem som helst på internet.

En viktig sak är nämligen att varje enskilt fall av samförekomst kan ha diametralt olika anledningar till varför den uppstod. Jag hittar exempelvis en miljöpartist som gillar djur som har kommenterat på Sverigedemokraternas sida med:

”Något Sd borde fundera över? Man måste inte alltid tycka som storebror?”

Å andra sidan kommenterar en Sverigedemokrat så här på Miljopartiets sida:

TBC-fall ökar och ökningen härrör uteslutande från personer som kommer hit utifrån. Vad gör ni konkret för att säkerställa att inte diverse smittsamma sjukdomar sprids (dvs det handlar om upprätthållande av folkhälsan)? Vilka resurser tillför ni nu skolor, sjukvård, sociala myndigheter,polis, säkerhetspolis, skolor, kommuner när belastningen på dem ökar kraftigt?

Två exempel av 80 möjliga, totalt icke-representativa. Poängen med detta är bara att göra en distiktion mellan det molekylära och det molära. Hade vi genomfört en opinionsundersökning hade vi fått en jämförelse av folks åsikter utefter kategoriella frågor; vad anser du om X, Y, Z? Resultat: ett genomsnitt.

Men med denna approach, å andra sidan, får vi istället ett ”omvänt arbete”. Varje monad som interagerar med andra monader definierar själva frågan som ställs av dem, men inte utifrån en given kategori, utan snarare utefter imitation/repetition.

Vad som är målet är alltså att kvantifiera dessa kvalitéer så att man dels kan se aggregatens struktur utan att tumma på monadernas myller. Men detta sker nu  utan abstraktioner och ”abstrakt tänkande”. Istället når vi framkomlighet genom repetitioner och associativt tänkande. Lättare sagt än gjort.

Vad tror ni? Förslag på saker som skulle vara intressanta att titta närmare på?

\\

Några skriptsnuttar jag använt mig av.

För att kryptera de enskilda användarnas id-nummer i kommentarsfältena:

from json import load
from os import listdir
import hmac
import hashlib


#### Multi file parser from directory
for filename in listdir("miljopartiet/"): #change path here (1/2)
    with open("miljopartiet/" + filename) as currentFile: #change path here (2/2)
        jsondata = load(currentFile) #parse json.

        #This loop extracts comments. make sure to separate "i" and "item"
        #and hashes them
        try:
            if item['comments']['data']:
                for i in item['comments']['data']:
                    digest_maker = hmac.new(b'r3placewithmegasecretk3y', i['from']['id'].encode(), hashlib.sha256)
                    print(digest_maker.hexdigest())
        except KeyError:
            break

För att räkna fram co-occurrences är det bara att jämför hashsummorna som extraherats ovan, fil för fil. Ungefär:

with open('mpencrypted.txt', 'r') as file1:
    with open('sdencryptedt.txt', 'r') as file2:
        same = set(file1).intersection(file2)

same.discard('\n')

print(same)
print("Number of co-occurences: ")
print(len(same))