04.11.2013 Aufrufe

proc AutoBuild {templ hier} - IPdS in Kiel

proc AutoBuild {templ hier} - IPdS in Kiel

proc AutoBuild {templ hier} - IPdS in Kiel

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Automatische<br />

Etikettierung <strong>in</strong> Sprachdatenbanken<br />

T<strong>in</strong>a John


Der Weg zur automatischen Etikettierung<br />

automatisch<br />

manuell


Der Weg zur automatischen Etikettierung<br />

automatisch<br />

manuell


Der Weg zur automatischen Etikettierung<br />

package require emu::autobuild<br />

E<strong>in</strong>e solche Datei kann selbst<br />

geschrieben werden und mit<br />

e<strong>in</strong>em beliebigen Namen (ext:<br />

.tcl) an e<strong>in</strong>em beliebigen Ort<br />

gespeichert werden.<br />

E<strong>in</strong> Beispiel e<strong>in</strong>er solchen Datei<br />

bef<strong>in</strong>det sich im Verzeichnis<br />

*…/Emu/lib/autobuild/examples<br />

*W<strong>in</strong>dows: C:\Programme<br />

Sun: /opt<br />

####################################<br />

## <strong>AutoBuild</strong>Init <strong>in</strong>itialises any rulesets needed<br />

## by <strong>AutoBuild</strong><br />

####################################<br />

<strong>proc</strong> <strong>AutoBuild</strong>Init {<strong>templ</strong>} {<br />

}<br />

####################################<br />

## <strong>AutoBuild</strong> builds the <strong>hier</strong>archy us<strong>in</strong>g whatever<br />

## means are appropriate<br />

####################################<br />

<strong>proc</strong> <strong>AutoBuild</strong> {<strong>templ</strong> <strong>hier</strong>} {<br />

L<strong>in</strong>kAllFromTimes $<strong>templ</strong> $<strong>hier</strong><br />

}


Das <strong>AutoBuild</strong>-Script<br />

Kommentare-nicht wichtig<br />

Obligatorische Angabendas<br />

Grundgerüst<br />

Vorbereitende D<strong>in</strong>ge-wird<br />

von verschiedenen<br />

Prozeduren verlangt<br />

Aufruf e<strong>in</strong>er Prozedur, die<br />

die eigentliche Arbeit des<br />

automatischen<br />

Etikettierens macht-<strong>hier</strong> ist<br />

es die Prozedur<br />

L<strong>in</strong>kAllFromTimes, die alle<br />

Segmente auf den<br />

zeitgebundenen Ebenen<br />

nach ihren Zeitpunkten<br />

assoziiert (L<strong>in</strong>ks setzt)<br />

package require emu::autobuild<br />

####################################<br />

## <strong>AutoBuild</strong>Init <strong>in</strong>itialises any rulesets needed<br />

## by <strong>AutoBuild</strong><br />

####################################<br />

<strong>proc</strong> <strong>AutoBuild</strong>Init {<strong>templ</strong>} {<br />

{<br />

}<br />

####################################<br />

## <strong>AutoBuild</strong> builds the <strong>hier</strong>archy us<strong>in</strong>g whatever<br />

## means are appropriate<br />

####################################<br />

<strong>proc</strong> <strong>AutoBuild</strong> {<strong>templ</strong> <strong>hier</strong>} <strong>hier</strong>} {<br />

{<br />

L<strong>in</strong>kAllFromTimes $<strong>templ</strong> $<strong>hier</strong><br />

$<strong>hier</strong><br />

}


Das <strong>AutoBuild</strong>-Script-Zeichensetzung<br />

_ Leerstelle<br />

↵ Zeilenwechsel<br />

package_require_emu::autobuild↵<br />

emu::autobuild<br />

####################################<br />

## <strong>AutoBuild</strong>Init <strong>in</strong>itialises any rulesets needed<br />

## by <strong>AutoBuild</strong><br />

####################################<br />

<strong>proc</strong>_<strong>AutoBuild</strong>Init_{<strong>templ</strong>}_{↵<br />

{<br />

{<br />

↵<br />

} ↵<br />

####################################<br />

## <strong>AutoBuild</strong> builds the <strong>hier</strong>archy us<strong>in</strong>g whatever<br />

## means are appropriate<br />

####################################<br />

<strong>proc</strong>_<strong>AutoBuild</strong>_{<strong>templ</strong>_<strong>hier</strong>}_{↵<br />

{<br />

{<br />

L<strong>in</strong>kAllFromTimes_$<strong>templ</strong>_$<strong>hier</strong> $<strong>hier</strong><br />

↵<br />

} ↵


L<strong>in</strong>kAllFromTimes<br />

<strong>AutoBuild</strong> Prozedur L<strong>in</strong>kAllFromTimes


<strong>AutoBuild</strong> Prozeduren mal anders<br />

Szenario: Nach der Vorlesung verlasse ich die Uni und frage mich wie es jetzt weitergeht<br />

package require emu::autobuild<br />

Prozeduren des Pakets:<br />

- bef<strong>in</strong>den sich <strong>in</strong> den Dateien im<br />

Verzeichnis …/Emu/lib/autobuild/tcl<br />

- s<strong>in</strong>d teilweise dokumentiert <strong>in</strong><br />

…\Emu\doc\emu\html\ch08s02.html<br />

Es können auch neue Prozeduren<br />

selbst programmiert werden.<br />

<strong>proc</strong> <strong>AutoBuild</strong>Init {<strong>templ</strong>} {<br />

Paket von Möglichkeiten:<br />

KaffeeTr<strong>in</strong>kenGehen {ich jetzt mitWem}<br />

ZurUbGehen {ich jetzt}<br />

MitDemBusNachHause {ich jetzt wannMgl}<br />

erfahreWannNächsterBusFährt<br />

Vorbereitung {ich}<br />

}<br />

<strong>proc</strong> <strong>AutoBuild</strong> {<strong>templ</strong> <strong>hier</strong>} {<br />

Ausführung {ich jetzt}<br />

L<strong>in</strong>kAllFromTimes $<strong>templ</strong> $<strong>hier</strong><br />

}<br />

ZurUbGehen ich jetzt


<strong>AutoBuild</strong> Prozeduren mal anders<br />

Paket von Möglichkeiten:<br />

KaffeeTr<strong>in</strong>kenGehen {ich jetzt mitWem}<br />

ZurUbGehen {ich jetzt}<br />

MitDemBusNachHause {ich jetzt wannMgl}<br />

erfahreWannNächsterBusFährt<br />

Vorbereitung {ich}<br />

merkeDir wannMgl<br />

wannMgl = erfahreWannNächsterBusFährt<br />

Ausführung {ich jetzt}<br />

merkeDir wannMgl<br />

MitDemBusNachHause ich jetzt wannMgl


MapLevels<br />

t h -> t<br />

p h -> p<br />

k h -> k<br />

<strong>AutoBuild</strong> Prozedur MapLevels Can Pho $rules


MapLevels<br />

package require emu::autobuild Paket von Möglichkeiten:<br />

KaffeeTr<strong>in</strong>kenGehen {ich jetzt mitWem}<br />

ZurUbGehen {ich jetzt}<br />

MitDemBusNachHause {ich jetzt wannMgl}<br />

erfahreWannNächsterBusFährt<br />

<strong>proc</strong> <strong>AutoBuild</strong>Init {<strong>templ</strong>} {<br />

global rules<br />

set rules [ReadLevelRules rules.txt]<br />

}<br />

<strong>proc</strong> <strong>AutoBuild</strong> {<strong>templ</strong> <strong>hier</strong>} {<br />

global rules<br />

MapLevels $<strong>templ</strong> $<strong>hier</strong> Can Pho $rules<br />

}<br />

Vorbereitung {ich}<br />

merkeDir wannMgl<br />

wannMgl = erfahreWannNächsterBusFährt<br />

Ausführung {ich jetzt}<br />

merkeDir wannMgl<br />

MitDemBusNachHause ich jetzt wannMgl


<strong>AutoBuild</strong> Komb<strong>in</strong>ationen<br />

package require emu::autobuild<br />

<strong>proc</strong> <strong>AutoBuild</strong>Init {<strong>templ</strong>} {<br />

global rules<br />

set rules [ReadLevelRules rules.txt]<br />

}<br />

<strong>proc</strong> <strong>AutoBuild</strong> {<strong>templ</strong> <strong>hier</strong>} {<br />

global rules<br />

L<strong>in</strong>kFromTimes $<strong>templ</strong> $<strong>hier</strong><br />

MapLevels $<strong>templ</strong> $<strong>hier</strong> Can Pho $rules<br />

Paket von Möglichkeiten:<br />

KaffeeTr<strong>in</strong>kenGehen {ich jetzt mitWem}<br />

ZurUbGehen {ich jetzt}<br />

MitDemBusNachHause {ich jetzt wannMgl}<br />

erfahreWannNächsterBusFährt<br />

Vorbereitung {ich}<br />

merkeDir wannMgl<br />

wannMgl = erfahreWannNächsterBusFährt<br />

Ausführung {ich jetzt}<br />

merkeDir wannMgl<br />

ZurUbGehen ich jetzt<br />

MitDemBusNachHause ich jetzt wannMgl<br />

}


L<strong>in</strong>kAllFromTimes + MapLevels<br />

<strong>AutoBuild</strong> Prozedur L<strong>in</strong>kAllFromTimes<br />

<strong>AutoBuild</strong> Prozedur MapLevels Can Pho $rules


Vorteile und Nachteile<br />

Sehr schnell<br />

Macht ke<strong>in</strong>e menschlichen Fehler<br />

(vertippen, vergessen)<br />

Kriterien s<strong>in</strong>d immer konsistent<br />

<strong>AutoBuild</strong>-Scripts müssen erst<br />

geschrieben werden<br />

Fehleranfällig, da sich die<br />

Sprache nicht immer an die<br />

Regeln hält<br />

Kann nicht spontan auf<br />

Ausnahmefälle reagieren<br />

Ausnahmen können nachprogrammiert werden<br />

Fehleranfälligkeit kann somit verr<strong>in</strong>gert werden


Zusammenfassung<br />

Automatische Etikettierung<br />

Das automatische Etikettieren ist e<strong>in</strong>e schnelle Methode<br />

für den Aufbau e<strong>in</strong>er Sprachdatenbank, dennoch sollten<br />

auch die Nachteile nicht ignoriert werden.<br />

Das automatische Etikettieren funktioniert über <strong>AutoBuild</strong>-<br />

Scripts- selbsteditierte Textdateien.


Zusammenfassung<br />

<strong>AutoBuild</strong>-Script<br />

<strong>AutoBuild</strong>-Script enthalten die Zeilen:<br />

package require emu::autobuild, e<strong>in</strong> Paket mit e<strong>in</strong>er<br />

Auswahl an Prozeduren<br />

<strong>proc</strong> <strong>AutoBuild</strong>Init {<strong>templ</strong>} {…}, <strong>hier</strong> werden vorbereitend<br />

verschiedene D<strong>in</strong>ge angegeben, die <strong>in</strong> der eigentlichen<br />

<strong>AutoBuild</strong> Prozedur benötigt werden.<br />

<strong>proc</strong> <strong>AutoBuild</strong> {<strong>templ</strong> <strong>hier</strong>} {…} , die eigentliche<br />

<strong>AutoBuild</strong> Prozedur, <strong>in</strong> der Prozeduren aus dem<br />

emu::autobuild Paket bzw. selbst programmierte<br />

Prozeduren aufgerufen werden.


Zusammenfassung<br />

Anwendung von <strong>AutoBuild</strong>-Scripts<br />

Um e<strong>in</strong> <strong>AutoBuild</strong>-Script auf Äußerungen e<strong>in</strong>er<br />

Sprachdatenbank anzuwenden, muss der Pfad zum Script<br />

<strong>in</strong> der Template-Datei unter Variables-<strong>AutoBuild</strong><br />

angegeben werden.<br />

(<strong>AutoBuild</strong>-Scripts können mit dem EMU-Tool <strong>AutoBuild</strong>-e<strong>in</strong><br />

Wizard auch auf Sprachdatenbanken angewendet werden<br />

ohne sie <strong>in</strong> der Template-Datei anzugeben mit dem Nachteil:<br />

ke<strong>in</strong>e direkte Fehlerüberprüfung)

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!