10 januari 2024

Actueel…

  1. Apache op urd2
    • rechten voor y.
  2. Overleaf
    • aparte drive voor data
  3. DbXML: functionaliteit van dbxml_*, alpinocorpus_* en dtsearch
    • een “gestroomlijnde” set tools, zie beneden
  4. alpinods
    • DTD versie 1.3

Later…

  1. urd2
    • binnenkort upgrade naar Ubuntu 22.04
  2. migratie naar colossus

DbXML

Tool 1: alto

Ik heb mkcorpus omgedoopt tot alto, voor ALpino TOol.

Je kunt er nog steeds corpora mee omzetten, van het ene formaat in het andere, zoals:

alto output.dact *.xml
alto output.data.dz input.dact

Je kunt de namen van invoerbestanden ook via stdin geven:

find . -name '*.xml' | alto output.dact

Je kunt nu allerlei acties definiëren. Het patroon is:

alto ouput actie... input...

Eigenlijk zou alto input acties output logischer zijn, maar zo is het makkelijk (?).

Acties worden uitgevoerd in de volgorde waarop ze zijn gegeven.

Als de uitvoer een minus is, dan gaat de uitvoer naar de terminal. Wat voorbeelden…

Dit maakt een nieuw corpus met alleen de matchende bestanden in de invoer, maar omdat de uitvoer naar stdout gaat gaat alle uitvoer van de gematchte bestanden naar stdout:

alto - "fp://node[@root='fiets']" /net/corpora/paqu/cdb.dact

Je kunt de uitvoer transformeren, bijvoorbeeld met een template met placeholders:

alto - "fp://node[node[@root='fiets']]" "tt:%c:%-10f%s" /net/corpora/paqu/cdb.dact

Er zijn vele manieren waarop je dit kunt doen. Dit is een ander voorbeeld:

alto - "fp://node[node[@root='fiets']]" "tt:%c:%f\n%S\n%M\n" /net/corpora/paqu/cdb.dact

Je kunt gefilterde bestanden nog een keer filteren:

alto - "fp://node[@root='fiets']" "fp://node[@root='baas']" "tt:%I -- %s" /net/corpora/paqu/cdb.dact

Je kunt dingen tellen:

alto - "fp://node[@root='fiets']/@word" "ac:sum" /net/corpora/paqu/cdb.dact

Je kunt ook transformeren met een stylesheet: xslt of xquery. Hier is een voorbeeld met xquery dat je alle multi-word units geeft:

alto - "fp://node[@cat='mwu']" "tq:/net/aistaff/kleiweg/alto/mwu.xq" /net/corpora/paqu/cdb.dact

Je kunt die tellen, maar dan zie je iets merkwaardigs:

alto - "fp://node[@cat='mwu']" "tq:/net/aistaff/kleiweg/alto/mwu.xq" "ac:sum" /net/corpora/paqu/cdb.dact

Dit komt omdat mwu.xq werd toegepast op de matchende bestanden. Het kan anders, door mwu.xq op elk matchende node toe te passen:

alto - "fp://node[@cat='mwu']" "Tq:/net/aistaff/kleiweg/alto/mwu.xq" "ac:sum" /net/corpora/paqu/cdb.dact

Tool 2: Bewerking van bestaan corpus

Corpora:

Overigen: Wat doen we hiermee?

Hoe werk dtsearch in combinatie met dtview?

TL;DR — dtview kleurt nodes op basis van XPath-expressie

Voorbeeld:

dtsearch -q '//node[@cat="np"]' -v file.xml

Als er een match is, dan wordt dtview gestart door dtsearch:

dtview -query '//node[@cat="np"]' -s

… en de naam file.xml wordt gepipet.

Voor het tekenen van de boom gebruikt dtview het programma dtxslt dat een boom produceert in het formaat voor CLIG extendible grapher for Computational Linguistics. Met een query erbij worden de matchende nodes gekleurd:

dtxslt --stylesheet $ALPINO_HOME/TreebankTools/stylesheets/dt2clig1.xsl --stringparam expr='//node[@cat="np"]' --param extended-attributes=0 file.xml

Uitvoer, eerste regels:

clig {stack {vspace 5}
{tree {color-area white { drs {color black {plain-text {top}}}
{color black {plain-text {top}}}
}}
{color-area white {drs {color black {plain-text {--}}}
{stack {color black {plain-text {"}}}
dbxml latex overleaf