OpenLogos 1.0.1 Installation und Anwendung
Dieser Artikel führt durch die Installation des maschinellen Übersetzungssystems
> cd openlogos-1.0.1/testapi > cat apitest.input Keiner weiß, wer Kanzler werden wird. > ./testolgs.sh [...] Output = /tmp/openlogos/api17575.out [...] > cat /tmp/openlogos/api17575.out None knows who will become chancellor.
Die Handhabung des oben benutzten Skriptes, der Steuerdatei und der Ausgabedatei lässt Wünsche offen. Um OpenLogos bequemer einzusetzen, habe ich mir ein Shell-Skript gebastelt. Der Einfachheit halber können Sie es als openlogos.sh hier herunterladen. Sie können es z.B. als /usr/local/bin/ol speichern, müssen aber noch die Ausführungsrechte für die Datei setzen.
#!/bin/sh
# vim: set ts=2 et sw=2 tw=80 ai:
#
# ol - wrapper script for OpenLogos 1.0.1
# v0.1 2005-12-02 torsten.scheck@gmx.de
#
# uses 'recode' for UTF-8 files
settings="openlogos_settings.txt"
workfile="openlogos_file"
log="openlogos.log"
logstdout="openlogos_stdout.log"
usage() {
echo "usage: $0 source-language target-language filename
source-language: e[ng]
target-languages: g[er] f[re] s[pa] i[ta] p[or]
source-language: g[er]
target-languages: e[ng] f[re] i[ta]" >&2
}
source="$1"
target="$2"
filename="$3"
case $source in
[eE]*) source="ENG"
case $target in
[gG]*) target="GER";;
[fF]*) target="FRE";;
[sS]*) target="SPA";;
[iI]*) target="ITA";;
[pP]*) target="POR";;
*) usage
echo "error: unsupported target-language '$target'"
exit 1;;
esac;;
[gG]*) source="GER"
case $target in
[eE]*) target="ENG";;
[fF]*) target="FRE";;
[iI]*) target="ITA";;
*) usage
echo "error: unsupported target-language '$target'"
exit 1;;
esac;;
*) usage
echo "error: unknown source-language '$source'"
exit 1;;
esac
if [ -f proxy.log -o -f TransL_JobControlArguments -o -f "$settings" \
-o -f "$log" -o -f "$logstdout" -o -f "$workfile" ]; then
echo "Temp files from a previous OpenLogos session seems to be left over."
echo "Type 'yes' to proceed (files will be overwritten): "
read prompt_overwrite
if [ "$prompt_overwrite" != "yes" ]; then
exit 1
fi
fi
if [ ! -f "$filename" ]; then
usage
echo "error: file '$filename' not found"
exit 1
fi
filenameout="${filename}.${target}"
# openlogos is picky about filenames (e.g. >5 chars) and expects ISO-8859-1 character set
cp "$filename" "$workfile"
# this won't hurt if file is already ISO-8859-1
if [ ! -z "`which recode`" ]; then
recode "UTF-8..ISO-8859-1" "$workfile" 2>/dev/null
fi
cat > ${settings} << EOF
OPERATION_TYPE;#TRANSLATE_DOC;TRANSLATE_TEXT;TERM_SEARCH_DOC;TERM_SEARCH_TEXT;QRY_PROPERTIES;;invalid
INPUT_FILE;#filename;
SOURCE_LANGUAGE;ENG;GER;;invalid
TARGET_LANGUAGE;ENG;GER;FRE;SPA;ITA;POR;;invalid
INPUT_FORMAT;#LGS_TXT_EXCHANGE;;invalid
PROTECTION_CHAR;#@;;invalid
SOURCE_LOCALE;#.,/:.mdy;,./:.dmy;;invalid
TARGET_LOCALE;#,./:.dmy;.,/:.mdy;;invalid
DB_MODE;#Yes;No;;invalid
PM_RULES;Yes;#No;;invalid
EXTENDED_SEARCH;REG_SRCH;#EXT_SRCH;;invalid
SUBJECT_MATTER_CODES;#001;003161;Returned value;;invalid
COMPANY_CODES;#LOG;ABC;LOG ABC SEW;Returned value;;invalid
FLAG_UNFOUND_WORDS;#Yes;No;;invalid
TARGET_FORM_IMPERATIVE;#Yes;No;;invalid
GENERATE_ALIGNMENT;Yes;No;;invalid;;;;
DIAG_LEVEL;Deep;#Short;Long;Deep;;invalid;;;
DIAG_LINE_START;1;10;;invalid;;;;
DIAG_LINE_END;1;100000;;invalid;;;;
RULE_OVERRIDE_FILE_NAME;VALIDFILE.ini;;invalid;;;;;
SENTENCE_COUNT;Returned value;;;;;;;
WORD_COUNT;Returned value;;;;;;;
TRANSLATED_FILE;Returned value;;;;;;;
SESSION_ID;Returned value;;;;;;;
ERROR_DESC;Returned value;;;;;;;
ALIGNMENT_FILE;Returned value;;;;;;;
DIAG_FILE;Returned value;;;;;;;
INPUT_TEXT;#Tippen Sie Ihren Text hier ein.;;
TRANSLATED_TEXT;Returned value;;;;;;;
DIAG_TEXT;Returned value;;;;;;;
ALIGNED_TEXT;Returned value;;;;;;;
WORD_SEARCH_OPTIONS;UNFOUND;FOUND_NOUN;UNFOUND+FOUND_NOUN+FOUND_VERB+FOUND_ADJ+FOUND_ADV;;invalid
WORD_SEARCH_FOUND_START;1;2;;invalid
WORD_SEARCH_FOUND_LIMIT;1;2;;invalid
WORD_SEARCH_UNFOUND_START;1;2;;invalid
WORD_SEARCH_UNFOUND_LIMIT;1;2;;invalid
STATISTICS;Yes;#No
DEBUG_FLAG;Yes;#No
EOF
sed -i "/^SOURCE_LANGUAGE/ s/${source}/#${source}/
/^TARGET_LANGUAGE/ s/${target}/#${target}/
/^INPUT_FILE/ s|filename|${workfile}|" "$settings"
PATH=$PATH:/usr/local/bin openlogos "$settings" . "$log" 2>&1 | tee "$logstdout"
outfile=`grep "^ Output" "$logstdout" | cut -d= -f2 | sed "s/ //g"`
cp "$outfile" "$filenameout"
echo "Result: '$filenameout'"
cat "$filenameout"
'rm' -f proxy.log TransL_JobControlArguments "$settings" "$log" \
"$logstdout" "$workfile" "$outfile" "${outfile%out}diag"
exit 0
Das nachfolgende Beispiel zeigt OpenLogos und ol im Einsatz, d.h. beim Übersetzen der Einleitung dieses Kapitels. Auf einem modernen Notebook benötigte OpenLogos hierfür knapp über 1 Minute.
> ol ger eng einleitung.txt [...] Result: 'einleitung.txt.ENG' Since October 2005, the mechanical translation system ?OpenLogos has been available as a free software. With the portability, the project persons responsible of the 'Deutschen research center for artificial Intelligenz' (?DFKI) did entire work. Unfortunately the installation and the application are still very complicated. Is added that the documentation is something more for the puzzle and puzzle friends between us. In the commentaries on the ?OpenLogos announcements of the ?Linux portals e.g. (per ?Linux: Translator Logos becomes provides ?Open source) it scarcely any references to successful installations. Even the ?OpenLogos ?Mailingliste is still very quiet.
Ausblick
Da die Portierung auf ein anderes Datenbanksystem und auf freie Entwicklungswerkzeuge erst vor kurzem durchgeführt wurde, bleibt noch viel Raum für Verbesserungen. Aus den Reihen der zukünftigen Anwender kommen hoffentlich Lösungen zur Komprimierung der Datenbank oder gar zur Optimierung der Übersetzungsgdauer. Immerhin genügt für den Übersetzungsvorgang ausschließlich lesender Zugriff. Auch die Konfigurationsmöglichkeiten des Übersetzungssystems sollten noch genauer untersucht werden.
Für Fragen und Tipps zum Einsatz unter anderen Distributionen richtet man sich am besten an die OpenLogos-Mailingliste. Bevor das Übersetzungssystem von der Anwendergemeinde selbst verbessert werden kann, muss noch einiges an Dokumentation geschrieben werden. Die Einrichtung eines OpenLogos-Wikis wäre hierfür ein wichtiger Schritt. Der empfohlene Artikel zur Übersicht des Logos-Modells, The Logos Model: An Historical Perspective, ist leider nur käuflich zu erwerben (30 USD).
Vielleicht gibt es auch andere vielversprechende Ansätze zur maschinellen Übersetzung. Die Möglichkeit, Einblick in die Funktionsweise eines Übersetzungssystems zu nehmen, könnte das generelle Interesse für dieses Forschungsgebiet erhöhen. In jedem Fall profitieren wir Anwender jedoch heute schon von OpenLogos.

