De tre zip-filerna innehåller samtliga sessionerfrån CEW under november, inalles 1661 st. Men de är förpackade på lite olika sätt så du har full frihet att greja med innehållet och testa olika tekniker för att få ut datat.

Länkar till filerna är:

https://malleus.se/dl/CEW2411TXT.zip (1.5 GB)
https://malleus.se/dl/CEW2411ZIP.zip (1.5 GB)
https://malleus.se/dl/CEW2411WEB.zip (1.6 GB)
https://malleus.se/dl/OSEPROGS.zip (8 kB)
https://malleus.se/dl/README.txt (den här texten, 5 kB)

OSEPROGS.zip innehåller en radda program och script jag hackat ihop för att hantera OSE-datat, extrahera data, skapa kataloger, trolla med XML etc. De är inte skrivna för att begripas av andra men jag skickar med dem med förhoppningen att de är till någon nytta för att se hur man kan göra (alt. inte skall göra…).

Den som skapar sessioneskatalogerna med index.html och metadataa.txt heter osezip2webdir.py och är kommenterad. Basic Python, men lång.

CEW2411TXT.zip innehpåller uppackat data som det ser ut på verket. Innehållet är XML-filer egen katalog “XML” och genrerade textfiler i “TXT” samt, vernakular och andra bilagor direkt under CEW-katalogen i en stor hög. Inte helt lätt att hitta i om man letar efter något specifik, det är så många filer. Men väldigt bra om man bara vill browsa dem med Windows Explorer och Preview.

CEW2411TXT.zip (1544930339 bytes)
2024/CEW/
|__ VernacularXYZ.pdf
|__ MonthlySummary.docx
|__ screenshot01.jpg
|__ XML/
    |__ 0d0db-102bd-02dah-12345-12345.xml
    |__ ...
|__ TXT/
    |__ CEW20241101nnnnnnn_V1_andAveryLongName01.txt
    |__ CEW20241102nnnnnnn_V1_andAnotherVeryLongName02.txt
    |__ ...

I filen CEW2411ZIP.zip ligger OSE:s zip-filer från CEW för november precis som de ser ut när de kommer från bucketen. Det är filer med långa namn, sessions-id, versionsbeteckning och löpnummer, inalles 1661 stycken filer.

CEW2411ZIP.zip (1542309997 bytes)
|__ CEW202411MMDDnnnnnnnn_V1_nnnnnnnn.zip
|__ CEW202411MMDDnnnnnnnn_V1_nnnnnnnn.zip
|__ CEW202411MMDDnnnnnnnn_V1_nnnnnnnn.zip
|__ CEW202411MMDDnnnnnnnn_V1_nnnnnnnn.zip
|__ ...

Innehållet i OSE:s zip-filer ligger INTE i kataloger, packar man upp dem så hamnar allt innehåll där man står. Det kan vara problematiskt, då vissa verknikular och bilder har samma namn i olika arkiv, t.ex. “screenshot.jpg” eller “transcription.pdf”.

I filen CEW2411WEB.zip finns alla arkivfiler från november lagrade på vad jag försökt få både “webbvänligt” och “kommandoradssökvänligt” sätt: uppackade i kataloger med samma namn som sessions-id (CEW2024MMDDxxxxxxxxxx), också totalt 1661 st.

CEW2411WEB.zip (1623070781 bytes)
|__ CEW202411MMDDnnnnnnnn/
    |__ 0d0db-102bd-02dah-12345-12345.xml
    |__ Vernacular2411DD.pdf
    |__ screenshot.jpg
    |__ ...
    |__ ...
    |__ index.html
    |__ metadata.txt

I den sessionskatalogen finns hela innehållet i arkivfilen: XML-fil, vernikular, mediafiler, dokument; vad som nu följde med.

Där finns också HTML-blobben från <text>-taggen i XML-filen. Den har samma namn i alla sessions-kataloger, den heter alltid “index.html”.

Det beror på att dels att OSI inte specificerar något särskilt namn för den, och dels för att när en webbserver delar ut innehållet i en katalog, så visas automatiskt filen “index.html” först, om den finns.

HTML-filen har all text på en rad så den är enkelt sökbar. Man får ju träff på söksträngar i texten även om den är omgärdad av HTML. (Med vissa begränsningar om det finns en massa formattering i HTML-koden. Men i OSE:s fall gör det sällan det, de använder standardelement (mestadels <p> och <h6>.)

I sessionskatalogen finns också en fil metadata.txt som extraheras ur XML-filen när sessionskatalogerna skapas. Den innehåller alla metadata från XML-filen, en per rad så den blir lätt att söka i.

Alla sessioner för november som har topic:TECHNOLOGY ochinnehåller optic. (Täcker även “fibre optic” och “fibre optics”.)

Här har vi en for-loop som tar alla sessionsnamn som ger träff på topic:TECHNOLOGY och söker i deras index.html-filer efter ordet “optic”.

for f in $(grep -F -l topic:TECHNOLOGY CEW202411*/metadata.txt); \
do grep -F -l optic $(dirname $f)/index.html; done

Obs att raden är bruten, men \ “escapes the newline” så det skall läsas som en hel rad. Ge akt på parenteser och semikolon!

Första grep-kommandot letar i metadatafilerna. Blir det träff så skrivs katalog och filnamn ut (grep -l).

Formen $(…) tar outputen från kommandot inom parenteserna och skriver det som en radda strängar till for-loopen att snurra igenom. Variabeln “f” sätts till en av dessa strängar åt gången.

Kommandot dirname plockar bort filnamnet i en sökväg och returnerar katalogdelen. (Testa “dirname /path/to/filename”). Värdet av variabeln f skrivs $f. Formen $(…) kör kommandot inne i parenteserna.

Det andra grep-kommandot letar nu i HTML-filerna efter ordet “optic”. Det kommer att blir tre fräffar. Sessionskatalogen och HTML-filen skrivs ut:

CEW2024110842358998/index.html
CEW2024111446272335/index.html
CEW2024111948807238/index.html

och antingen läsas, eller som det egentligen är tänkt, matas till en browser. HTML-filen länkar ju allt övrigt innehåll från sessionen; vernakular och bilder etcetera. Det är enklare att kika på dem via browsern.