Abgesagt.
Der Workshop kann leider in diesem Semester nicht stattfinden.Relationale Datenstrukturen für die Linguistik
Florian Matter (University of Oregon)
Abgesagt
Workshopsprache: Deutsch
Wie strukturiere ich meine Daten, damit…
- ich nicht Informationen x-fach wiederholen muss?
- alle nötigen Daten abrufbar sind?
- ich den Überblick nicht verliere?
- man sie später in eine Datenbank laden kann?
Dieser Workshop behandelt diese und ähnliche Fragen, welche alle die gleiche Antwort haben: Wie eine relationale Datenbank. Relationale Datenbanken haben für jede Art von Einheit eine eigene Tabelle. Beispiele für linguistische Einheiten: Sprache, Sprecher, Morphem, Wortform, Phonem, Flexionskategorie, Wortart… Jede “Zeile” in einer Tabelle repräsentiert eine Einheit, jede “Spalte” repräsentiert eine Eigenschaft. Jede Zeile hat eine eindeutige ID, damit von anderen Tabellen aus auf die entsprechende Einheit verwiesen werden kann.
Hier ein einfaches Beispiel mit drei Tabellen: Eine Tabelle enthält Lexeme, eine Wortarten und eine Sprachen. Lexeme haben eine ID, einen Verweis auf die Sprache, einen Namen, einen Verweis auf die Wortart, sowie eine Bedeutung:
ID | Language_ID | Name | Part_Of_Speech | Meaning |
---|---|---|---|---|
achi-wilderness | yab | achi | n | wilderness |
aijkorono-recovered | yab | aijkorono | n | recovered |
ajpachi-undergrowth | yab | ajpachi | n | undergrowth |
ajyu-tucuma-palm | yab | ajyu | n | tucuma (palm) |
ako-pylon | yab | ako | n | pylon |
aki-worm | yab | akï | n | worm; maggot |
amaka-sweet-yucca | yab | amaka | n | sweet yucca |
amu-ripeness | yab | amu | n | ripeness |
… | … | … | … | … |
Das Feld/die Spalte Part_Of_Speech
verweist also auf eine andere Tabelle, welche weitere Informationen zu POS enthält.
Dies sind: ID, Sprachverweis, Name, Beschreibung:
ID | Language_ID | Name | Description |
---|---|---|---|
n | yab | noun | Everybody knows what nouns are. |
vt | yab | transitive verb | |
vi | yab | intransitive verb | |
adv | yab | adverb | |
pn | yab | pronoun | |
postp | yab | postposition | |
intj | yab | interjection | |
dem | yab | demonstrative | |
part | yab | particle | |
ideo | yab | ideophone | |
advl | yab | adverbial | |
… | … | … |
Die ersten beiden Tabellen haben eine Language_ID
, welche auf die dritte Tabelle verweist.
Nebst ID und Name haben Sprachen auch Koordinaten, zwei Spalten mit Booleans (wahr/falsch), sowie einen Verweis auf dieselbe Tabelle.
Zum Beispiel wird also das östliche Bakairí als Dialekt des Bakairí identifiziert.
ID | Name | Latitude | Longitude | Alive | Proto_Language | Dialect_Of |
---|---|---|---|---|---|---|
wbak | Western Bakairi | -14.163292 | -55.463912 | true | false | bak |
ebak | Eastern Bakairi | -14.301823 | -54.625822 | true | false | bak |
bak | Bakairi | true | false | |||
yab | Yawarana | 5.32692 | -66.276 | true | false | |
ing | Ingarikó | 6.16277 | -60.862 | true | false | kap |
aka | Akawaio | 6.16 | -60.86 | true | false | kap |
pat | Patamona | 4.76 | -59.58 | true | false | kap |
tab | Tabajari | 9.084793 | -64.317835 | true | false | kar |
gkar | Guianese Carib | 7.059752 | -60.239822 | true | false | kar |
aty | Aretyry | 5.341971 | -56.353558 | true | false | kar |
tyr | Tyrewuju | 5.707015 | -54.014828 | true | false | kar |
siku | Sikiana | 3.01 | -57.92 | true | false | kax |
yuk | Yukpa | 9.67534 | -73.0557 | true | false | |
jap | Japreria | 10.5523 | -72.7101 | true | false | |
PXin | Proto-Xinguan | false | true | |||
map | Mapoyo | 5.96952 | -67.2581 | true | false |
Daten so zu strukturieren (und nicht auf eine der 1001+ idiosynkratischen Arten, die sich Linguisten ausgedacht haben) ist effizient, konsistent, menschen- und maschinenlesbar. Es lohnt sich also auch für Linguisten ohne Programmierkenntnisse – wenn ihr dann irgendwann eine Computerperson eures Vertrauens an die Daten lässt, kann diese sicher etwas damit anfangen.
Für Linguisten mit Programmierkenntnissen empfehle ich das erfolgreiche CLDF/CLLD-Framework, welches auf diesen Prinzipien basiert. Mit verhältnismässig wenig Aufwand lassen sich damit interaktive Webapps (Beispiel) bauen. Mit R oder pandas ist es auch möglich, Tabellen in Dataframes zu laden und dann beliebige Modifikationen oder Auswertungen laufen zu lassen.
Nebst den theoretischen Grundlagen sind die Inhalte des Workshops relativ offen – Teilnehmende sind eingeladen, eigene Daten und Fragen mitzubringen. Einige mögliche Aktivitäten, je nach Bedarf und Vorkenntnissen:
- Schema für geplantes Projekt entwerfen
- Datenerfassung/-eingabe
- vorhandene Daten umstrukturieren
- Auswertung mit pandas
- CLDF/CLLD deployment
- Pivot-Tabellen mit pyradigms