OpenLogos 1.0.1 Installation und Anwendung
> 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.