KI – automatische Sprachverarbeitung

January 16, 2018 | Author: Anonymous | Category: Kunst & Geisteswissenschaften, Schreiben, Grammatik
Share Embed Donate


Short Description

Download KI – automatische Sprachverarbeitung...

Description

Kü / eN Info

Skript KI - automatische Sprachverarbeitung

Sj. 2013/2014

Inhalt KI – automatische Sprachverarbeitung ...................................................................................... 2 Kompetenzen, die am Ende erreicht sein müssen ................................................... 2 Anleitung – Wie gehe ich mit einem Skript um? ....................................................... 3 Materialien zum Skript ............................................................................................................... 7 Projekt automatische Sprachübersetzung ................................................................................. 9 Mit oder ohne Skript weitermachen .................................................................................... 11 Modul 1 Bearbeitung von Listen in Scheme: first und rest ...................................................... 12 Elektronisches Wörterbuch .................................................................................................. 12 Zusatz Was genau bedeutet first (eigentlich car genannt) und rest (eigentlich cdr genannt)? ............................................................................................................................. 14 Modul 2 Funktionen selber schreiben ..................................................................................... 16 Modul 3 Rekursion .................................................................................................................... 18 Modul 4 Ein einfacher Wort und Satzübersetzer...................................................................... 20 Mängel eines Wort-zu-Wort-Übersetzers ............................................................................ 21 Zusatz Modul 5 Funktionen als Parameter.............................................................................. 23 Modul 6 Grammatik ................................................................................................................ 24 Modul 7 Grammatikprüfer (Parser) ......................................................................................... 25 Zusatz Modul 8 Grammatik-Prüfung und Übersetzung (Parser) ............................................. 30 Zusatz Modul 9 Ein abschließendes Projekt ............................................................................ 32 Zusatz Projekt: U-Bahn-Planer ................................................................................................. 32

Monika Seiffert / überarbeitet A. Kück

Seite 1

Kü / eN Info

Skript KI - automatische Sprachverarbeitung

Sj. 2013/2014

KI – automatische Sprachverarbeitung Ziele: 1. Mit Scheme als funktionaler Programmiersprache rekursive Funktionen programmieren können. 2. Einen einfachen Übersetzer mit Grammatikprüfung in Scheme implementieren können. 3. Probleme und Grenzen der KI speziell der Sprachübersetzung kennen und beurteilen können.

Kompetenzen, die am Ende erreicht sein müssen Fülle folgenden Fragebogen zu Beginn des Themas und am Ende einmal aus: Kompetenzen, die du nun erreicht haben solltest Ich kenne grundlegende Konstrukte in Scheme und kann sie in einfachen Funktionen anwenden: - first/rest - cons - append - cond - Ergebnisraum Ich kann einfache Funktionen in Scheme selbst schreiben Ich verstehe, wie Rekursion funktioniert. Ich kann rekursive Funktionen in Scheme implementieren Ich kann gegebene Problemstellungen in formalisierter Umgangssprache zusammenfassen und dann in Scheme implementieren Ich kann einen Wortübersetzer in Scheme implementieren Ich kann einen einfachen Satzübersetzer in Scheme implementieren. Ich kenne formale Grammatiken und kenne ihren Einsatzzweck in der Informatik. Ich verstehe den Unterschied zwischen natürlich sprachlichen Grammatiken und formalen Grammatiken. Ich kann zu gegebenen Grammatiken Suchbäume aufbauen. Ich kann zu gegebenen Suchbäumen die passende formale Grammatik aufbauen. Ich kann mit Hilfe eines Suchbaumes oder einer gegebenen Grammatik feststellen, on ein gegebener Satz entsprechend der gegebenen Grammatik korrekt ist. Ich kann Sätze mit Hilfe eines vorgegebenen Parsers auf grammatikalische Korrektheit prüfen. Ich kann einen vorgegebenen Parser entsprechend einer neuen Grammatik erweitern bzw. anpassen. Zusatz Ich kann zusätzlich zur Grammatikprüfung den Satz auch übersetzen

Monika Seiffert / überarbeitet A. Kück

+

0

-

Seite 2

Kü / eN Info

Skript KI - automatische Sprachverarbeitung

Sj. 2013/2014

Anleitung – Wie gehe ich mit einem Skript um? 

Im Folgenden wird genau beschrieben, wie du mit einem Skript arbeiten kannst und worauf du dabei achten musst. Du kannst dir dies zusätzlich – oder stattdessen – auch in einem Video erklären lassen: Schaue dir dazu auf www.youtube.com/alexkueck11 das Video mit dem Namen „Aufbau eines Skriptes“ an. Um dir das Thema „KI-automatische Sprachverarbeitung “ zu erarbeiten, kannst du grundsätzlich zwei verschiedene Wege gehen:

 













Weg A – Du bearbeitest eigenständig die Projektaufgabe. Dazu kannst du dir aus den Materialien raussuchen, was du gebrauchen kannst oder dir auch ganz eigene erklärende Materialien suchen. Weg B – Du gehst die einzelnen Module Schritt für Schritt durch und erarbeitest dir so nach und nach die einzelnen Module (hier lernst du sozusagen Stück für Stück, wie die Projektaufgabe gelöst werden kann. Die Projektaufgabe wurde daher auch in „kleine Häppchen“ aufgeteilt und am Ende von jedem Modul wird ein Stück der Projektaufgabe gelöst). Mit beiden Wegen kannst du die geforderten Kompetenzen erwerben. Wenn du schon einiges über die funktionale Programmierung weist und gerne an etwas knobelst, kannst du Weg A wählen. Behalte dabei aber immer auch im Auge, was du am Ende der Einheit können musst. Wenn du in diesem Bereich aber noch unsicher bist und das Thema lieber Schritt für Schritt erklärt bekommen möchtest, um es zu begreifen, wähle zunächst lieber Weg B. Auch hier löst du die Projektaufgabe, aber eben Schritt für Schritt und es wird dir vorgegeben, wie der Lösungsweg aussehen kann. Wenn du einen der beiden Wege eingeschlagen hast, bedeutet das allerdings nicht, dass du darauf festgelegt bist! Natürlich kannst du vom Projekt auch wieder auf die Module umsteigen, zum Beispiel, wenn du bei einer Sache nicht weiterkommst. Ebenso kannst du auch zur Projektaufgabe wechseln, wenn du nach ein paar Modulen merkst, dass du jetzt schon gut im Thema drin bist, und versuchen möchtest, eigenständig weiter zu knobeln. Lege dir eine Mappe an, in der du alle Lösungen und (Zwischen-) Ergebnisse zu den Aufgaben bzw. dem Projektvorhaben festhältst.

Wichtig: Du kannst deine Ergebnisse immer zwischendurch mit dem Lehrer abgleichen, um zu sehen, ob du auf dem richtigen Weg bist. Gerade wenn du an dem Projekt arbeitest (aber auch wenn du mit dem Skript eigenverantwortlich durch das Thema gehst), ist es wichtig, dass du festhältst, wie du vorgegangen bist. Das tust du bitte in einem Blog oder einer Mappe. Dort hältst du fest, in welche Probleme du gelaufen bist und wie du sie gelöst hast – und vor allem, was du dadurch gelernt hast.

Monika Seiffert / überarbeitet A. Kück

Seite 3

Kü / eN Info

Skript KI - automatische Sprachverarbeitung

Sj. 2013/2014

Wichtige Ergebnisse, Erkenntnisse, Merksätze oder Lösungsstrategien gehören hier ebenfalls hin. Am besten ist es, wenn du das in deinen eigenen Worten oder auch durch eine Skizze ausdrücken kannst. Selbst wenn das dann nicht ganz richtig ist, ist es besser so, als etwas Fertiges abzuschreiben. Der Lehrer kann so drauf schauen und dir helfen, wenn du etwas noch nicht vollständig verstanden hast. Problemlösestrategien stehen bei diesem Projekt im Vordergrund nicht die Inhalte! Wenn du nicht genau weißt, was du aufschreiben sollst, lasse es dir vom Lehrer erläutern. Vorgefertigte Bögen, wo du Hilfestellung zu den Inhalten bekommst, kannst du beim Lehrer abholen. Weg A – Bearbeitung der Projektaufgabe:  Wie du die Projektaufgabe löst, bleibt dir und deiner Kreativität ganz allein überlassen. Du kannst selbst im Internet recherchieren und nachsehen, ob es dort Erklärungen oder Videos gibt, die dir weiterhelfen. Du kannst aber auch die in diesem Skript angegebenen Materialien weiter hinten verwenden – denn sie passen zu der Projektaufgabe.  Ein Anhaltspunkt, um dich mit dem Thema auseinanderzusetzen, sind die Begriffe, die bei den zu erreichenden Kompetenzen am Anfang der Beschreibung angegeben sind. Damit könntest du z.B. anfangen. Wenn du die Begriffe verstehst und was für Ideen damit verknüpft sind, bist du meistens schon voll mit dem Thema beschäftigt. Vielleicht hast du ja auch schon für dich einen Weg gefunden, wie du an neue Projekte herangehst, dann solltest du diesen Weg hier auch gehen.  Wichtig ist unbedingt, dass du im Auge behältst, was du am Ende der Einheit können musst. Die Projektaufgaben sind so formuliert, dass du am Ende alles, was gefordert ist, auch kannst. Aber es gibt ja viele Lösungswege und vielleicht kannst du am Ende das ein oder andere noch nicht so gut. Dann frage bitte nach zusätzlichen Übungsaufgaben zu dem jeweiligen Thema oder Begriff - bis du das Gefühl hast, es gut genug anwenden zu können. Weg B – Bearbeitung der Module  Gehe die Module Schritt für Schritt durch. Um die in jedem Modul angegebenen Aufgaben bearbeiten zu können, musst du vorher lernen, wie das geht. Nicht der Lehrer erklärt dir das, du entscheidest, auf welchem Weg du die Informationen haben möchtest und musst sie dann selbst so für dich zusammenstellen, dass du die Aufgaben lösen kannst. In der Regel kannst du wählen zwischen einem erklärenden Text, Webseiten, auf denen du passende Informationen findest oder erklärenden Videos. Diese kannst du dir so oft ansehen, wie du es brauchst und magst. Wenn du dennoch weitere Erklärungen benötigst, notiere dir deine Fragen und wende dich damit an deinen Lehrer oder suche im Internet selbst nach weiteren erklärende Texten oder Videos. Der Lehrer ist da, um dich in deinem Lernen zu unterstützen, aber du musst aktiv werden und nachfragen, wenn etwas unklar ist.  Es ist wichtig, dass du alle neuen Begriffe, die du nicht kennst, klärst und richtig verstehst. Du musst sie in eigenen Worten beschreiben oder sie in einer Skizze darstellen können.

Monika Seiffert / überarbeitet A. Kück

Seite 4

Kü / eN Info 

Skript KI - automatische Sprachverarbeitung

Sj. 2013/2014

Gehe bei jedem der Kapitel wie folgt vor: 1. Zu Beginn jedes Kapitels findest du Verweise auf Materialien, die dir helfen sollen, das Thema zu verstehen, damit du später die dazugehörigen Aufgaben lösen kannst. Das können zum Beispiel sein: -

erklärende Videos,

-

Infotexte (parallel zu den Videos),

-

Seiten in einem Schulbuch und

-

Texte in Zeitschriften oder auch

-

Internetseiten

2. Eventuell brauchst du trotz der Materialien eine zusätzliche Erklärung, dann frage beim Lehrer nach. Eventuell haben andere ja auch diese Frage, dann kannst du auch einen kurzen Lehrvortag dazu bekommen oder ein zusätzliches erklärendes Video. 3. Die Videos und Dateien, auf die in diesem Skript verwiesen werden, findest du a. auf dem YouTube-Kanal: youtube.com/alexkueck11 Die Videos beginnen alle mit „Ki-„ 4. Falls du in den Materialien auf unbekannte Begriffe stößt, notiere diese. Das können auch einfache Worte sein. Versuche sie mithilfe der weiteren Materialien oder durch eigene Recherchen zu klären. 5. Wenn du das Thema verstanden hast und alle darin enthaltenen Fachbegriffe in deinen eigenen Worten oder mittels einer Skizze erklären kannst, gehst du weiter zu den Aufgaben: -

Die Aufgaben fordern dich auf, das Gelernte nun anzuwenden.

-

Gehe die Aufgabe, die im Skript angegeben sind der Reihe nach durch (die Aufgaben sind logisch aufeinander aufgebaut, daher der Reihe nach durchgehen).

-

Wenn du eine Aufgabe nicht bearbeiten kannst, gehe noch einmal über die Materialien oder schaue dir das erklärende Video erneut an. Vielleicht hast du einen neuen Begriff oder eine neue Idee noch nicht ganz verstanden – dann hole das nun nach.

-

Wenn das nichts hilft, frage bei Mitschülern oder dem Lehrer nach. Lass dir aber nicht die ganze Aufgabe lösen. Wichtig ist, dass du eigenständig an einer Lösung arbeitest – auch wenn sie am Ende vielleicht nicht ganz richtig ist.

-

Wenn du an deiner Lösung zweifelst, schaue in den Musterlösungen nach (falls vorhanden) oder frage den Lehrer, ob er sich deine Ergebnisse auch zwischendurch anschauen kann.

Falls du bei einer Aufgabe doch noch Schwierigkeiten hast, schaue dir noch einmal die erklärenden Materialien an. Wichtig ist, dass du selbst an den Lösungen arbeitest und nicht andere das mache

Monika Seiffert / überarbeitet A. Kück

Seite 5

Kü / eN Info

Skript KI - automatische Sprachverarbeitung

Sj. 2013/2014

lässt. 6. Wenn Aufgaben, die mit einem Zusatz gekennzeichnet sind, brauchst du nicht bearbeiten. Diese Aufgaben sind schwieriger und gehen über das hinaus, was du als Minimum erreichen musst, um das Skript erfolgreich abzuschließen. Für eine abschließende Note im Einser- oder Zweier-Bereich solltest du aber zumindest einige dieser Zusatzaufgaben bearbeiten. 7. Es wird zwischendurch Tests geben, diese werden rechtzeitig angegeben. Auch welche Kompetenzen in den Tests angefragt werden. Wichtig: Wichtig ist, dass du bei der Arbeit mit dem Skript selbst aktiv wirst und deinen eigenen Lernprozess überwachst:  Liege ich noch gut in der Zeit?  Habe ich alles verstanden/begriffen oderbrauche ich noch Hilfe oder zusätzliche Erklärungen?  Wie kann ich Zusammenhänge besser verstehen/begreifen, die noch unklar sind?  Wer kann mir bei der Bearbeitung der Aufgaben helfen? Du musst selbst entscheiden, wo du dir weitere Informationen/hilfen holen möchtest und von dir aus auf deinen Lehrer oder Mitschüler zugehen, um Fragen zu stellen, damit du die Themen und Begriffe besser verstehst und am Ende die geforderten Zielkompetenzen erreichst!

Es wird am Ende eine Klausur geben, die du bestehst, wenn du alle Aufgaben bearbeitet und verstanden/begriffen hast und die Kompetenzen erreicht hast.

Monika Seiffert / überarbeitet A. Kück

Seite 6

Kü / eN Info

Skript KI - automatische Sprachverarbeitung

Sj. 2013/2014

Materialien zum Skript Videos Die Videos sind alle auf dem YouTube-Kanal „alexkueck11“ zu finden und fangen fast alle mit “KI – ” an. „KI- Scheme Editor“ - http://youtu.be/CJnPlzK694M „KI - Konstanten“ - http://youtu.be/0KOybwo0iVI „KI - Scheme – First-Rest“ - http://youtu.be/UJD14Erbq2M „KI- Scheme – Listen I“ – http://youtu.be/TeGOhvoSdc4 „KI- Scheme – Listen II“ – http://youtu.be/hCqdeVBo1LE „KI - Scheme – Funktionen selber schreiben I“ - http://youtu.be/oOVD1-XK5b4 „KI - Scheme – Funktionen selber schreiben II“ - http://youtu.be/o-I24QJCQnc „KI - Rekursion – die Treppe“ - http://youtu.be/jHwfpSM9jvo “KI – Rekursion I mit Aufgabe ” - http://youtu.be/5ekHE0r9bUA “KI – Rekursion II mit Aufgabe” - http://youtu.be/G7Nr8Pbe6bk “KI - Scheme - Rekursion am Beispiel” - http://youtu.be/azFBpZo_UAw „KI-Scheme - Hilfen zu Funktionen - Potenzieren“- http://youtu.be/A4pJ9g7eAqg „KI - Grammatiken“ - http://youtu.be/vMBnrkZHN5k „KI - Grammatiken – Parsebaum einfach“ - http://youtu.be/I3mukYnES5o „KI - Grammatiken - Suchbaum Tiefensuche“ – http://youtu.be/TAtRFgyjYzA „KI - Grammatiken - Suchbaum Breitensuche“ - http://youtu.be/dCk9L90mwW0

Texte Skript KI und Scheme -Text Editor und Lexikon Skript KI und Scheme -Text first-rest-als Liste Skript KI und Scheme -Text Einschub I Grundlagen in Scheme Skript KI und Scheme -Text Funktionen selber schreiben Skript KI und Scheme -Text Rekursion Skript KI und Scheme -Grammatiken Skript KI und Scheme -Grammatik Prüfung Skript KI und Scheme -Grammatik Prüfung und Übersetzung Parser Skript KI und Scheme -Parser breitensucheparserschülerversion.ss Parser alternativ.doc parser mit übersetzung ohne genus parser mit übersetzung.ss ubahnfahrplanmitzeiten.rkt

Monika Seiffert / überarbeitet A. Kück

Seite 7

Kü / eN Info

Skript KI - automatische Sprachverarbeitung

Sj. 2013/2014

Lösungen Skript automatische Sprachübersetzung ohne Text Lsg parserneualex parserneualex incl übersetzung neu

Monika Seiffert / überarbeitet A. Kück

Seite 8

Kü / eN Info

Skript KI - automatische Sprachverarbeitung

Sj. 2013/2014

Projekt automatische Sprachübersetzung Voraufgabe Bitte fülle die zugehörige Kompetenzübersicht vor dem Beginn des Skriptes einmal aus Projekt-Aufgabe: Einen automatischen Übersetzer zu Programmieren (mit einer funktionalen Programmiersprache – hier Scheme), der folgendes kann: 1. Version: einfache Wort-zu-Wort-Übersetzung 1. Einen einfachen Wortübersetzer schaffen, der Worte von einer Sprache in eine andere übersetzt. 2. Einen einfachen Satzübersetzer schaffen, der einen Satz wortweise ohne Bezug auf eine Grammatik übersetzt. 2. Version: mit Grammatik und Grammatikprüfung - deutsche Sätze anhand einer vorgegebenen Grammatik auf deren grammatikalische Richtigkeit überprüfen. - eine Wortweise Übersetzung liefern, wenn der ursprüngliche Satz grammatikalisch korrekt ist. - Zumindest Ansätze sollten möglich sein, einen Satz nicht nur wortweise zu übersetzen, sondern auch auf die richtige Grammatik zu achten (z.B. richtige Artikelwahl, richtiger Fall, richtige Konjugation, etc.) - von Deutsch in eine andere Sprache übersetzen (und umgekehrt). Konkrete Aufgabe: 1. Mache dich zunächst mit dem Projekt vertraut. 2. Scheme ist eine funktionale Programmiersprache – dies ist eine für dich bisher unbekannte Art zu programmieren, da Funktionen ineinander verschachtelt werden, anstatt sie wie bisher bekannt, hintereinander weg zu schreiben. Du solltest dich also ganz grundsätzlich mit der neuen Programmiersprache auseinander setzen. 3. Implementieren den geforderten Wort- und Satzübersetzer in Scheme. 4. Verbessere die Übersetzung, indem du Grammatiken mit einbeziehst. Dazu beschäftige dich zunächst mit formalen Grammatiken. Stelle ein einfaches Regelwerk einer formalen Grammatik auf, um einige wenige Sätze korrekt zu erkennen (hier geht es zunächst um das Parsen von gegebenen Sätzen, das heißt zu erkennen, ob ein gegebener Satz anhand einer gegebenen Grammatik korrekt zusammengestellt ist oder nicht). Stelle ein dazu passendes Regelwerk einer formalen Grammatik auf. Erweitere es in seiner Funktionalität, indem du zusätzliche Regeln einfügst und somit den zu testenden Sprachumfang erweiterst. 5. Es wird dir ein einfacher Parser vorgegeben (s.u.), in dem eine solche Grammatik umgesetzt wurde und der somit in der Lage ist, Sätze anhand dieser Grammatik als korrekt oder nicht zu erkennen. Stelle die zu dem Parser gehörenden Grammatikregeln zusammen, erweitere den Parser, so dass er auch komplexere Sätze erkennen kann. Passe die Grammatik ebenfalls an. 6. Schaffe eine Möglichkeit, geprüfte Sätze auch zu übersetzen. Wenn möglich sollte die Übersetzung auch schon grammatikalische Regeln beachten (zumindest im Ansatz).

Monika Seiffert / überarbeitet A. Kück

Seite 9

Kü / eN Info

Skript KI - automatische Sprachverarbeitung

Sj. 2013/2014

Vorgabe des Parsers: Skript KI und Scheme -Parser Erstelle ein Video, in dem du deine Überlegungen und Implementierungen dazu erläuterst. Füge dies deinem Portfolio hinzu.

Fülle folgenden Fragebogen erneut am Ende des Projektes zu deiner Sicherheit aus: Kompetenzen, die du nun erreicht haben solltest + 0 Ich kenne grundlegende Konstrukte in Scheme und kann sie in einfachen Funktionen anwenden: - first/rest - cons - append - cond - Ergebnisraum Ich kann einfache Funktionen in Scheme selbst schreiben Ich verstehe, wie Rekursion funktioniert. Ich kann rekursive Funktionen in Scheme implementieren Ich kann gegebene Problemstellungen in formalisierter Umgangssprache zusammenfassen und dann in Scheme implementieren Ich kann einen Wortübersetzer in Scheme implementieren Ich kann einen einfachen Satzübersetzer in Scheme implementieren. Ich kenne formale Grammatiken und kenne ihren Einsatzzweck in der Informatik. Ich verstehe den Unterschied zwischen natürlich sprachlichen Grammatiken und formalen Grammatiken. Ich kann zu gegebenen Grammatiken Suchbäume aufbauen. Ich kann zu gegebenen Suchbäumen die passende formale Grammatik aufbauen. Ich kann mit Hilfe eines Suchbaumes oder einer gegebenen Grammatik feststellen, on ein gegebener Satz entsprechend der gegebenen Grammatik korrekt ist. Ich kann Sätze mit Hilfe eines vorgegebenen Parsers auf grammatikalische Korrektheit prüfen. Ich kann einen vorgegebenen Parser entsprechend einer neuen Grammatik erweitern bzw. anpassen. Zusatz Ich kann zusätzlich zur Grammatikprüfung den Satz auch übersetzen

-

(ein weiteres mögliches Projekt findest du am Ende des Skriptes)

Monika Seiffert / überarbeitet A. Kück

Seite 10

Kü / eN Info

Skript KI - automatische Sprachverarbeitung

Sj. 2013/2014

Mit oder ohne Skript weitermachen Vorgehen: Am Anfang des Skriptes wird dir eine Projektaufgabe gestellt. 1.

du wechselst auf das Projekt, in dem du nur diese Aufgabe bearbeiten musst (behalte dabei im Auge, was du am Ende können musst - siehe "Kompetenzen")!

2.

In diesem Skript wird das Projekt Stück für Stück erarbeitet und du bekommst detaillierte Erklärungen und einen Weg, wie du vorgehen musst, vorgegeben. Es gibt dir gezielt Hilfestellung mit erklärenden Texten und Videos, um die Projektaufgabe Stück für Stück zu lösen.

Wenn du unsicher bist, welchen Weg du einschlagen sollst, komme zu mir und wir klären das. Wichtig: Du kannst deine Ergebnisse immer zwischendurch mit dem Lehrer abgleichen, um zu sehen, ob du auf dem richtigen Weg bist, aber du musst in einem Blog oder einer Mappe dokumentieren, in welche Probleme du gelaufen bist und wie du sie gelöst hast – und vor allem, was du dadurch gelernt hast. Problemlösestrategien stehen bei diesem Projekt im Vordergrund nicht die Inhalte!

Monika Seiffert / überarbeitet A. Kück

Seite 11

Kü / eN Info

Skript KI - automatische Sprachverarbeitung

Sj. 2013/2014

Modul 1 Bearbeitung von Listen in Scheme: first und rest Ein automatisches Übersetzungssystem benötigt sicherlich: -

ein elektronisches Wörterbuch oder auch Lexikon (hier *lex* genannt), in dem alle relevanten Wörter und ihre dazu passenden Übersetzungen gespeichert sind. Z.B. bei einem Wörterbuch Englisch-Deutsch: dog



Hund

cat



Katze

……

-

eine Funktion, die die Übersetzung selbst vornimmt. D.h. die die passenden Übersetzungen aus dem Wörterbuch/Lexikon zu einem vorgegebenen Wort raussucht (dazu später!!!).

Wir wollen ein solches Übersetzungssystem mit Hilfe der Sprache SCHEME erstellen.

Elektronisches Wörterbuch Wir fangen erst mal mit dem elektronischen Wörterbuch an. Wie man das in Scheme umsetzt - lies dazu den unten angegebenen Text oder schaue die Videos.  Video: o „KI- Scheme Editor“ - http://youtu.be/CJnPlzK694M o „KI - Konstanten“ - http://youtu.be/0KOybwo0iVI  Eigenständige Recherche im Internet: o …  Erklärender Text: o Skript KI und Scheme -Text Editor und Lexikon

Dann kannst du die folgenden Aufgaben bearbeiten.  Video: o „KI – Scheme – First-Rest“ - http://youtu.be/UJD14Erbq2M o „KI- Scheme – Listen I“ – http://youtu.be/TeGOhvoSdc4 o „KI- Scheme – Listen II“ – http://youtu.be/hCqdeVBo1LE Gib die folgenden Ausdrücke im Interpreterfenster (unteres Fenster) ein und notiere die Antworten: Eingabe

Ausgabe

(first *lex*)

Monika Seiffert / überarbeitet A. Kück

Seite 12

Kü / eN Info

Skript KI - automatische Sprachverarbeitung

Sj. 2013/2014

(rest *lex*) (first (rest *lex*)) (first (first *lex*)) (rest (first *lex*)) (first (rest (first *lex*)))

Beschreibe, was die Funktionen first und rest machen:

Stellt man jeden Funktionsaufruf durch eine Box dar, so können die obigen Hintereinanderausführungen der Funktionen first und rest wie folgt dargestellt werden (beachte, dass verschachtelte Funktionen immer von innen nach außen bearbeitet werden): (Video „KI – Scheme – First-Rest“ - http://youtu.be/UJD14Erbq2M)

Eingabe

Darstellung

(first *lex*)

(rest *lex*)

(first (rest *lex*))

Monika Seiffert / überarbeitet A. Kück

Seite 13

Kü / eN Info

Skript KI - automatische Sprachverarbeitung

Sj. 2013/2014

Aufgabe 1.1: Ergänze die Darstellungen für die restlichen Funktionsaufrufe:

(first (first *lex*))

(rest (first *lex*))

(first (rest (first *lex*)))

Zusätzlich: Angenommen, folgende Liste sei gegeben: `((1 2 3) (4 5 6) (7 8 9)) i. Gib an, welche Ausgaben durch folgende verkettete Funktionen erfolgen würden: a. (first (rest (rest (first ´((1 2 3) (4 5 6) (7 8 9)))))) b. (rest (first (rest ´((1 2 3) (4 5 6) (7 8 9))))) c. (first (first (rest ´((1 2 3) (4 5 6) (7 8 9))))) ii. Gib an durch welche Verkettung der Funktionen „first“ und „rest“ du folgende Ausgaben erhalten würdest: a. 2 b. 6 c. (2 3)

Zusatz Was genau bedeutet first (eigentlich car genannt) und rest (eigentlich cdr genannt)?  Erklärender Text: o Skript KI und Scheme -Text first-rest-als Liste

Monika Seiffert / überarbeitet A. Kück

Seite 14

Kü / eN Info

Skript KI - automatische Sprachverarbeitung

Sj. 2013/2014

Aufgabe 1.2. Überprüfe zu deiner Sicherheit, ob du folgende Dinge nun kannst (fordere gegebenenfalls weitere Aufgaben zum Üben beim Lehrer an): Kompetenzen, die du nun erreicht haben solltest + 0 Ich kann mit dem Editor Dr. Racket (für die Implementierung von SchemeFunktionen) umgehen. Ich kenne die polnische Schreibweise und kann sie in Scheme-Funktionen umsetzen. Ich verstehe, dass man in Scheme statt mit Variablen mit Listen arbeitet. Ich kann Listen in Scheme anlegen und sie mit first“ und rest bearbeiten. Ich kann Konstanten in Scheme anlegen und verstehe ihren Einsatzzweck. Ich kenne grundlegende Konstrukte in Scheme und kann sie in einfachen Funktionen anwenden: - first/rest

Wenn du dich sicher fühlst bearbeite nun den Test A und gib ihn anschließend zur Korrektur beim Lehrer ab.

Monika Seiffert / überarbeitet A. Kück

Seite 15

Kü / eN Info

Skript KI - automatische Sprachverarbeitung

Sj. 2013/2014

Modul 2 Funktionen selber schreiben  Video: o „KI - Scheme – Funktionen selber schreiben I“ - http://youtu.be/oOVD1-XK5b4 o „KI - Scheme – Funktionen selber schreiben II“ - http://youtu.be/o-I24QJCQnc o „KI - Scheme – Funktionen selber schreiben III“ - http://youtu.be/_DRw8_0F-og  Eigenständige Recherche im Internet: o …  Erklärender Text: o Skript KI und Scheme -Text Funktionen selber schreiben Aufgabe 2.1: Schreibe nach dem Muster der Funktion zweites ebenso die Funktionen a) drittes (mit Probe, ob die Liste überhaupt lang genug ist!) b) eine Funktion ohneErstes (die Funktion gibt den Rest der Liste ohne das erste Element zurück). c) eine Funktion ohneErstesundZweites (die Funktion gibt den Rest der Liste ohne das erste und zweite Element zurück). d) Eine Funktion ohneZweites (die Funktion gibt den Rest der Liste ohne das zweite Element zurück). e) Eine Funktion ohneViertes (die Funktion gibt den Rest der Liste ohne das dritte Element zurück). o Tipp: benutze für d) und e) die Scheme-Funktion cons, append bzw. list um Listen zusammenzusetzen. Siehe dazu Video „KI - Scheme – Funktionen selber schreiben III“ - http://youtu.be/_DRw8_0F-og

c) Zusätzlich: Probiere auch, eine Funktion n-tes zu schreiben. Tipp: Die Funktion n-tes muss offensichtlich zwei Parameter haben, nämlich die Zahl n und die liste (also (define (n-tes n liste), dessen n-tes Element zurückgegeben werden soll. Ein Problem besteht darin, dass es von dem Wert des Parameters n abhängt, wie oft eine Restliste gebildet werden muss. Dies ist zum Zeitpunkt der Funktionsdefinition unbekannt. Eine mögliche funktionale Modellierung lautet: Für den Fall, dass 1. die Liste leer ist, gib zurück: „die liste enthaelt nicht genug elemente“; 2. die Zahl n 3)) b) Die Funktion enthalten? soll prüfen, ob ein objekt in einer liste enthalten ist. Falls ja, soll sie #t (true) zurückgeben, andernfalls #f (false) Bsp: (enthalten? 3 `(1 2 3 4)) -> #t.

Monika Seiffert / überarbeitet A. Kück

Seite 18

Kü / eN Info

Skript KI - automatische Sprachverarbeitung

Sj. 2013/2014

c) Die Funktion entfernen2 soll die Liste zurückgeben, die entsteht, wenn man alle Vorkommen von objekt aus einer vorgegebenen liste entfernt. Bsp: (entfernen2 3 `(1 2 3 4 5) -> (1 2 4 5) d) Die Funktion ersetzen soll die Liste zurückgeben, die entsteht, wenn man alle Vorkommen von objekt1 in einer vorgegebenen liste durch objekt2 ersetzt. e) Erstelle ein kurzes Video zu einer der oben aufgeführten Funktionen, in dem du deine Überlegungen und Implementierungen dazu erläuterst. Füge dies deinem Portfolio hinzu.

Zusätzlich: a) Die Funktion verketten soll eine Liste aller Elemente von liste1 und liste2 zurückgeben. Die Reihenfolge der Listenelemente soll unverändert bleiben. Bsp.:(verketten `(a b c) `(1 2 3)) liefert als Ergebnis `(a 1 b 2 c 3). b) Die Funktion umdrehen soll eine Liste zurückgeben, die die Elemente einer vorgegebenen liste in umgekehrter Reihenfolge enthält.

Aufgabe 3.2. Überprüfe zu deiner Sicherheit, ob du folgende Dinge nun kannst (fordere gegebenenfalls weitere Aufgaben zum Üben beim Lehrer an): Kompetenzen, die du nun erreicht haben solltest + 0 Ich verstehe, wie Rekursion funktioniert. Ich kann rekursive Funktionen in Scheme implementieren

Resümee: Was haben wir bisher in Bezug auf unser Ziel einen eigenen automatischen Übersetzer zu implementieren, geschafft? 4. Wir kennen grundlegende Konstrukte in Scheme, 5. Wir können einfache Funktionen in Scheme selber schreiben. 6. Wir haben das Prinzip der Rekursion verstanden und können rekursive Funktionen selbst schreiben. Was fehlt noch? 7. Wie kann ich einen automatischen Wortübersetzer in Scheme programmieren? 8. Wie kann ich Sätze automatisch übersetzen lassen (zunächst ohne Beachtung der Grammatik, später dann mit Beachtung der Grammatik)?

Wenn du dich sicher fühlst bearbeite nun den Test C und gib ihn anschließend zur Korrektur beim Lehrer ab.

Monika Seiffert / überarbeitet A. Kück

Seite 19

Kü / eN Info

Skript KI - automatische Sprachverarbeitung

Sj. 2013/2014

Modul 4 Ein einfacher Wort und Satzübersetzer Zurück zu unserem Sprachübersetzer! Es soll eine Funktion wortUebersetzung erstellt werden, mit der ein vom Benutzer vorgegebenes Wort mit Hilfe unseres Lexikons übersetzt werden kann. Aufgabe 4.1: a) Formuliere einen Algorithmus in formalisierter Umgangssprache, um ein gegebenes Wort entsprechend eines Lexikons zu übersetzen. b) Implementiere eine passende SCHEME-Funktion (wortUebersetzung wort lexikon). (Bsp: (wortuebersetzer `cat *lex*) -> katze). Zusätzlich: c) Implementiere die Funktion (wortUebersetzung wort lexikon) so, dass man in beide Richtungen übersetzen kann (Bsp: (wortuebersetzer `cat *lex*) -> katze) und (wortuebersetzer `katze *lex*) -> cat). d) Erweitere die Funktion (wortUebersetzung wort lexikon) und das Lexikon entsprechend, so dass man in zwei Sprachen gleichzeitig übersetzen kann. e) Teste die Funktion sorgfältig. Überlege dazu, welche grundsätzlich unterschiedlichen Fälle vorkommen können. Verbessere die Funktion, falls erforderlich. Anschließend soll nun ein ganzer Satz Wort für Wort aus dem Englischen ins Deutsche übersetzt werden. Wir gehen dabei davon aus, dass der englische Satz in Form einer Liste vorliegt, beispielsweise '(the cat eats). Ein etwas umfangreicheres Lexikon findest du hier: lexikon.ss.

Aufgabe 4.2: a) Formuliere einen Algorithmus in formalisierter Umgangssprache um einen ganzen Satz wortweise zu übersetzen. b) Fertige einen Rekursionsbaum zu a) an o (“KI – Rekursion II mit Aufgabe” - http://youtu.be/G7Nr8Pbe6bk) c) Erstelle eine passende SCHEME-Funktion zu a) (satzUebersetzung satz lexikon). Bsp: (satzuebersetzer `(the cat eats) *lex*) -> (die katze frisst) (Hinweis: mit Hilfe der SCHEME-Funktion cons kann ein neues Element vorn in eine Liste eingefügt werden (siehe Scheme-Kurzreferenz). Beispiel: (cons 'a '(b c d)) ergibt (a b c d)). d) Teste die Funktion sorgfältig. Verbessere die Funktion, falls erforderlich.

Monika Seiffert / überarbeitet A. Kück

Seite 20

Kü / eN Info

Skript KI - automatische Sprachverarbeitung

Sj. 2013/2014

Zusätzlich: e) Implementiere die Funktion (satzUebersetzung satz lexikon) so, dass man in beide Richtungen übersetzen kann. f) Erweitere die Funktion (satzUebersetzung satz lexikon) und das Lexikon entsprechend, so dass man in zwei Sprachen gleichzeitig übersetzen kann. g) Formuliere schriftlich, welche Übersetzungen die Funktion zufrieden stellend vornehmen kann und welche Übersetzungsfehler unvermeidlich sind. Überlege, wie die Übersetzung verbessert werden könnte.

Mängel eines Wort-zu-Wort-Übersetzers Während ein Lexikon mit einem zu geringen Umfang nur ein Zeitproblem darstellt, können Wort-zu-Wort-Übersetzer einige Übersetzungsfehler grundsätzlich nicht vermeiden: 1. Bei Worten der Quellsprache, denen in der Zielsprache mehrere unterschiedliche Worte zugeordnet sind (Wortambiguität), kann nicht entschieden werden, welches Wort der Zielsprache die adäquate Übersetzung ist. Beispiel: Peter is a football fan --> Peter ist ein Fußball Ventilator. 2. Zusammen gehörige Wörter werden getrennt übersetzt. Beispiel: The cat runs into the mouse. --> Die Katze rennt in die Maus. 3. Grammatisch falsche Übersetzung, beispielsweise Eat the mouse! --> Fressen die Maus! und The cat takes a walk --> Die Katze nimmt ein Spaziergang. 4. Falsche Wortstellung in der Übersetzung. Beispiel: The cat runs after the mouse. --> Die Katze rennt hinterher der Maus. Viele Grammatikfehler lassen sich vermeiden, wenn der Übersetzer Grammatikkenntnisse hat. Dabei ist zunächst zu prüfen, ob der eingegebene Satz überhaupt grammatisch korrekt bezüglich der Grammatik der Quellsprache eingegeben wurde (Grammatikprüfer oder Parser genannt). Anschließend ist dafür zu sorgen, dass ein passender grammatisch korrekter Satz in der Zielsprache erzeugt wird. Um die Qualität unseres Übersetzers zu verbessern, ist es also erforderlich, sich mit der Grammatik englischer und deutscher Sätze zu befassen. Wir beschränken uns dabei exemplarisch auf einen kleinen Grammatikausschnitt.

Monika Seiffert / überarbeitet A. Kück

Seite 21

Kü / eN Info

Skript KI - automatische Sprachverarbeitung

Sj. 2013/2014

Wenn du dich sicher fühlst bearbeite nun den Test D und gib ihn anschließend zur Korrektur beim Lehrer ab.

Aufgabe 4.3. Überprüfe zu deiner Sicherheit, ob du folgende Dinge nun kannst (fordere gegebenenfalls weitere Aufgaben zum Üben beim Lehrer an): Kompetenzen, die du nun erreicht haben solltest + 0 Ich kann gegebene Problemstellungen in formalisierter Umgangssprache zusammenfassen und dann in Scheme implementieren Ich kann einen Wortübersetzer in Scheme implementieren Ich kann einen einfachen Wort-zu-Wort - Satzübersetzer in Scheme implementieren. Resümee: Was haben wir bisher in Bezug auf unser Ziel einen eigenen automatischen Übersetzer zu implementieren, geschafft? 1. Wir kennen grundlegende Konstrukte in Scheme, 2. Wir können einfache Funktionen in Scheme selber schreiben. 3. Wir haben das Prinzip der Rekursion verstanden und können rekursive Funktionen selbst schreiben. 4. Wir können einzelne Wort oder ganze Sätze wortweise übersetzen. Was fehlt noch? 5. Wie kann ich gewährleisten, dass die zu übersetzenden Sätze grammatikalisch korrekt sind? 6. Wenn die zu übersetzenden Sätze grammatikalisch korrekt sind, wie kann ich sie dann übersetzen und am besten auch mit korrekter Grammatik in der neuen Sprache?

Monika Seiffert / überarbeitet A. Kück

Seite 22

Kü / eN Info

Skript KI - automatische Sprachverarbeitung

Sj. 2013/2014

Zusatz Modul 5 Funktionen als Parameter Das Lexikon für unseren Wort-zu-Wort-Übersetzer enthält nur wenige Einträge. Es wäre gut, wenn ein Benutzer neue Lexikoneinträge hinzufügen könnte. Dazu soll eine universelle Funktion geschrieben werden, mit der man in eine beliebige Liste ein neues Element sortiert einfügen kann. Funktionale Modellierung (Algorithmus in formalisierter Umgangssprache): 1. Wenn die Liste leer ist, füge das objekt vorne in die Liste ein 2. Wenn das objekt entsprechend des in der Funktion angegebenen vergleichs mit dem ersten Element der Liste true ergibt, dann hänge das objekt vorne an die Liste an und gib es zusammen mit dem Rest der Liste aus. 3. Sonst merke dir das erste Element der Liste und rufe dich selbst wieder auf mit dem Rest der Liste. Die folgende SCHEME-Implemention leistet das Gewünschte: (define (einfuegen objekt liste vergleich) (cond ((null? liste) (cons objekt '())) ((vergleich objekt (first liste)) (cons objekt liste)) (else (cons (first liste) (einfuegen objekt (rest liste) vergleich)))))

Die Funktion kann etwa wie folgt aufgerufen werden: (einfuegen

4

'(2 7 9)

pp) - (np->pp) - (pp->p np) Erstelle ein kurzes Video, in dem du deine Überlegungen und Implementierungen dazu erläuterst. Füge dies deinem Portfolio hinzu.

Monika Seiffert / überarbeitet A. Kück

Seite 27

Kü / eN Info

Skript KI - automatische Sprachverarbeitung

Sj. 2013/2014

Wir arbeiten im Folgenden mit einem Parser, der eine Tiefensuche durchführt. Der Grammatikprüfer, der mit einer Breitensuche arbeitet steht ebenfalls zur Verfügung, ist aber wesentlich komplexer und steht daher nur für zusätzliche Untersuchungen zur Verfügung:

Zusätzlich Aufgabe 7.5: Im Folgenden sind zwei weitere Parser gegeben a) breitensucheparserschülerversion.ss b) Parser alternativ.doc (Tiefensuche) -

Schaue dir die gegebene Implementierung an und versuche es nachzuvollziehen (stelle eine Zustandsliste dazu auf, um es besser nachvollziehen zu können). Vervollständige die Parser.

Aufgabe 7.6. Überprüfe zu deiner Sicherheit, ob du folgende Dinge nun kannst (fordere gegebenenfalls weitere Aufgaben zum Üben beim Lehrer an): Kompetenzen, die du nun erreicht haben solltest + 0 Ich kann zu gegebenen Grammatiken Suchbäume aufbauen Ich kann zu gegebenen Suchbäumen die passende formale Grammatik aufbauen Ich kann mit Hilfe eines Suchbaumes oder einer gegebenen Grammatik feststellen, on ein gegebener Satz entsprechend der gegebenen Grammatik korrekt ist. Ich kann Sätze mit Hilfe eines vorgegebenen Parsers auf grammatikalische Korrektheit prüfen. Ich kann einen vorgegebenen Parser entsprechend einer neuen Grammatik erweitern bzw. anpassen. Resümee: Was haben wir bisher in Bezug auf unser Ziel einen eigenen automatischen Übersetzer zu implementieren, geschafft? 7. Wir kennen grundlegende Konstrukte in Scheme, 8. Wir können einfache Funktionen in Scheme selber schreiben. 9. Wir haben das Prinzip der Rekursion verstanden und können rekursive Funktionen selbst schreiben. 10. Wir können einzelne Wort oder ganze Sätze wortweise übersetzen. 11. Wir können feststellen, ob die zu übersetzenden Sätze grammatikalisch korrekt sind. Was fehlt noch? 12. Wenn die zu übersetzenden Sätze grammatikalisch korrekt sind, wie kann ich sie dann übersetzen und am besten so, dass die Grammatik in der neuen Sprache ebenfalls passend ist? Monika Seiffert / überarbeitet A. Kück

Seite 28

Kü / eN Info

Skript KI - automatische Sprachverarbeitung

Monika Seiffert / überarbeitet A. Kück

Sj. 2013/2014

Seite 29

Kü / eN Info

Skript KI - automatische Sprachverarbeitung

Sj. 2013/2014

Zusatz Modul 8 Grammatik-Prüfung und Übersetzung (Parser) Der oben implementierte Grammatikprüfer liefert als Ergebnis lediglich, ob der Satz grammatisch korrekt ist (d.h. den Regeln entspricht) oder nicht. Es handelt sich also um einen Akzeptor. Es wäre doch sinnvoll, bei der Prüfung auch gleich eine Übersetzung anzufertigen und diese anschließend im Erfolgsfall auszugeben. Also anstatt einfach „true“ auszugeben, soll der übersetzte Satz ausgegeben werden. Aufgabe 8.1: Schreibe den Akzeptor aus Teil 7 so um, dass er während der Prüfung gleichzeitig übersetzt. Die Übersetzung ist aber immer noch eine einfache Wortübersetzung. Dies soll nun verbessert werden.  Erklärender Text: o Skript KI und Scheme -Grammatik Prüfung und Übersetzung

Aufgabe 8.2: Ändere den ursprünglichen Parser mit Wortübersetzung dahingehend ab, dass er bei jedem Wort, welches er übersetzt die Wortart hinzufügt, also (n Hund) oder (v laufen). Implementiere nun eine entsprechende Funktion „uebersetzen“, die entsprechend einer Zielgrammatik die Ausgabe des Parsers übersetzt. Falls der zweite Teil zu schwer erscheint, hier eine einfache Version dazu, die um weitere Grammatikregeln erweitert werden sollte: parser mit übersetzung ohne genus

Wie du sicherlich erkannt hast, ist die deutsche Sprache sehr komplex und um einen Anfang zu finden, muss man die Art der zugelassenen Sätze erst mal beschränken. Das gibt dir aber vielleicht auch eine Idee, wie umfangreich ein automatischer Übersetzer sein muss, der eine solche Beschränkung nicht braucht.

Aufgabe 8.3. Überprüfe zu deiner Sicherheit, ob du folgende Dinge nun kannst (fordere gegebenenfalls weitere Aufgaben zum Üben beim Lehrer an): Kompetenzen, die du nun erreicht haben solltest + 0 Zusatz Ich kann zusätzlich zur Grammatikprüfung den Satz auch übersetzen

Monika Seiffert / überarbeitet A. Kück

Seite 30

Kü / eN Info

Skript KI - automatische Sprachverarbeitung

Sj. 2013/2014

Resümee: Was haben wir bisher in Bezug auf unser Ziel einen eigenen automatischen Übersetzer zu implementieren, geschafft? 13. Wir kennen grundlegende Konstrukte in Scheme, 14. Wir können einfache Funktionen in Scheme selber schreiben. 15. Wir haben das Prinzip der Rekursion verstanden und können rekursive Funktionen selbst schreiben. 16. Wir können einzelne Wort oder ganze Sätze wortweise übersetzen. 17. Wir können feststellen, ob die zu übersetzenden Sätze grammatikalisch korrekt sind. 18. Wir können den geprüften Satz wortweise übersetzen 19. Wir können erste grammatikalische Feinheiten bei der Übersetzung berücksichtigen (Verb korrekt konjugiert übersetzen) Was fehlt noch? 20. Wie kann ich den zu übersetzenden Satz grammatikalisch korrekt in die neue Sprache übersetzen (z.B. den richtigen Fällen nach Präpositionen, die richtigen Artikel,…)?

Monika Seiffert / überarbeitet A. Kück

Seite 31

Kü / eN Info

Skript KI - automatische Sprachverarbeitung

Sj. 2013/2014

Zusatz Modul 9 Ein abschließendes Projekt Ein Anfang ist gemacht, ich kann einfache Sätze entsprechend einer Zielgrammatik übersetzen. Als nächstes bietet es sich sicherlich an, dafür zu sorgen, dass die richtigen Artikel zu den Substantiven verwendet werden, die Verben korrekt konjugiert werden etc. Aufgabe 9.1 Erweitere das Lexikon, so dass sich mehrere Sätze abbilden und übersetzen lassen. Beschäftige dich mit der deutschen Sprache, welche grammatischen Regeln kannst du finden, die sich in den Akzeptor einbauen lassen, um die Übersetzung zu verbessern. Schreibt den Akzeptor entsprechend um. Beurteile, wie gut deine Übersetzung ist, bzw. welche Schwächen sie hat. Hilfestellung: Parser mit Übersetzung entsprechend einer Zielgrammatik und Auswahl des richtigen Genus und Artikels: parser mit übersetzung.ss Erstelle ein kurzes Video, in dem du deine Überlegungen und Implementierungen dazu erläuterst. Füge dies deinem Portfolio hinzu.

_______________________________________________________________________ Zur Vertiefung kann auch ein weiteres Projekt bearbeitet werden:

Zusatz Projekt: U-Bahn-Planer Ziel: Das Hamburger U-Bahn-Netz in Scheme-Listen abbilden. Diese Listen sollen so durchsucht werden können, dass das Programm die kürzeste (oder schnellste) Verbindung von Start zum Ziel angibt incl. aller Umsteigemöglichkeiten.

Siehe U-Bahnprojekt ubahnfahrplanmitzeiten.rkt

Monika Seiffert / überarbeitet A. Kück

Seite 32

View more...

Comments

Copyright � 2017 NANOPDF Inc.
SUPPORT NANOPDF