Information Retrieval, Neuronale Netze und anderes Zeug Wie im Vortrag zu BAIM bzw. BAIM plus gezeigt wurde, ist ein grundlegendes Problem dieses Projekts, die Informationserhebung. Die beim BAIM Projekt vorhandenen ÖV-Informations- und Routingdiensten benötigen für einen akzeptablem Betrieb eine hohe Anzahl von Informationen. So wird z.B. der Status von Fahrstühlen benötigt oder die Distanz zwischen Bahn und Bahnsteig. Aber auch Informationen über eventuelle Behinderungen im Straßenverkehr sind erforderlich um eine mögliche Route von A nach B zu bestimmen. Hier wird sehr schnell deutlich, dass eine nicht unerhebliche Datenmenge notwendig ist. Zusätzlich müssen die Daten auch nach einer ersten Erfassung aktuell gehalten werden, was sowohl finanzielle als auch personelle Ressourcen erfordert. Aus diesem Mangel ist die Idee entstanden, sich die Hilfe einer künstlichen Intelligenz zu holen. Ausgehend davon, dass viele Informationen, welche für eine System wie BAIM benötigt werden, bereits in irgendeiner Form vorliegen, kann der “menschliche Erfassungsprozess” mit einer künstlichen Intelligenz ergänzt und teilweise ersetzt werden. Als Referenzbeispiel wird in den folgenden Abschnitten das Internet als Informationsquelle verwendet. Dieses bietet ein praktisch unerschöpfliche Quelle für jegliche Informationen. Warum also nicht diese Informationen nutzen und daraus die benötigten Informationen extrahieren? Beispielsweise kann man so auf aktuelle Verkehrsinformationen zugreifen. Das Problem liegt allerdings im “Format” in welchem die Informationen vorliegen. Die meisten Informationen existieren lediglich in geschriebener Sprache, welche für ein Informationssystem nicht oder nur schwer zu analysieren ist. Und genau hier setzt die künstliche Intelligenz an. Diese soll vorliegende Texte analysieren und die wichtigen Informationen extrahieren. Da natürliche Sprachen (Deutsch, Englisch, usw.) eine sehr hohe Dynamik in ihrer Syntax und Semantik aufweisen, ist es sehr schwer die gewünschten Informationen zuverlässig zu extrahieren. Die einzige auf Dauer sinnvolle Lösung wäre es, der Maschine das “Lesen beizubringen”. Die heutige Informationsextraktion aus geschriebener Sprache ist dahingehend sehr rudimentär und kann nicht annähernd als eine “künstliche Intelligenz die Lesen kann”, bezeichnet werden. Das hängt zum einen mit der bereits erwähnten Dynamik in natürlichen Sprachen zusammen, aber auch damit, dass die Intelligenz, welche dem Menschen angeboren ist, bis heute nicht oder nur teilweise auf eine Maschine übertragen werden konnte. Nur damit wäre es möglich geschriebene Sprache auf eine sinnvolle Art und Weise zu analysieren und die gewünschten Informationen zu extrahieren. Einige Methoden für künstliche Intelligenzen Auch heute existieren schon Methoden, welche versuchen die menschliche Intelligenz auf eine Maschine zu projizieren. Die folgenden Abschnitt werden nur einen kurzen Einblick in wenige dieser Methoden zeigen, aber dennoch einen Ausblick ermöglichen, in welche Richtung (oder in welche Richtung nicht) die Entwicklung einer künstlichen Intelligenz, welche es ermöglicht geschriebene Sprache auf menschenähnliche Weise zu analysieren, gehen kann. Informationen Retrieval Eine weniger intelligente, aber dennoch nicht zu unterschätzende Methode zur Informationsextraktion aus geschriebener Sprache, stellt das so genannte Informationen Retrieval dar. Hierbei handelt es sich um eine reine Analyse anhand der Syntax einer Sprache bzw. des vorliegenden Textes. Mit Informationen Retrieval kann z.B. die Satzstellung analysiert werden und so die Satzelement (Verben, Nomen, usw.) bestimmten werden. Künstliche Neuronale Netze Eine weitere Methode, welche sehr häufig mit dem Begriff “künstliche Intelligenz” verbunden wird, ist das Lernen mit so genannten künstlichen neuronalen Netzen. Dazu muss an dieser Stelle ein kurzer Exkurs in die Neurowissenschaften stattfinden. Das menschliche Gehirn ist die “CPU” des Menschen. Als solche hat sie die Aufgabe eingehende Daten zu verarbeiten, mit bereits gespeicherten Informationen (eigentlich müsste man an dieser Stelle das Wort “Wissen” verwenden) zu vergleichen und einen (mehr oder weniger) sinnvollen Output zu generieren. Diese Aufgabe wird mit den so genannten Neuronen bewältigt. Das menschliche Gehirn verfügt über eine beachtliche Anzahl dieser Neuronen (100 Milliarden bis zu einer Billionen Nervenzellen) und ist somit in der Lage sehr viele Informationen zu verarbeiten. Die wichtigste Aufgabe der Neuronen ist dabei vermutlich das Lernen. Neuronen verändern je nach “Benutzung” ihren Output. Dadurch sind sie in der Lage sich an neue Daten anzupassen und somit zu lernen. Ein Neuron alleine würde man allerdings noch nicht als “intelligent” bezeichnen, weshalb die Neuronen untereinander verschaltet sind und sich somit komplexe Netze bilden, welche durch die Verschaltung verschiedenste Daten verarbeiten können. Ein Beispiel wäre z.B. das Erkennen von Gesichtern. Menschen sind in der Lage verschiedene Menschen anhand der Struktur des Gesichtes zu unterscheiden. Diese Fähigkeit ist nicht angeboren, sondern entwickelt sich im Kindesalter. Für diese Fähigkeit ist eine große Anzahl von Neuronen verantwortlich, welche die Eingangssignale, die vom Auge übermittelt werden, analysiert und mit bekannten Gesichtern vergleicht. So sind auch andere Primaten in der Lage die Mitglieder ihrer Spezies zu unterscheiden. Dieses Konzept des Lernens analysiert und stellt die Basis für künstliche neuronale Netze dar. Diese versuchen das Prinzip der Neuronen zu kopieren bzw. zu simulieren und somit der Maschine das Lernen zu ermöglichen. Die meisten künstlichen neuronalen Netze stellen allerdings eine Vereinfachung des biologischen Podons dar und basieren auf mathematischen Modellen, welche für Maschinen zum Lernen verwendet werden können. In Zusammenhang mit der gewünschten künstlichen Intelligenz ist das neuronale Netz ein erster Schritt in die richtige Richtung. Hier muss allerdings ganz klar gesagt werden, dass künstliche neuronale Netze einige Schwachstellen aufweisen, welche den Einsatz in einer Intelligenz, welche geschriebene Sprache “versteht”, erschweren oder vielleicht sogar unmöglich machen. Semantische Netze Auch wenn man die Möglichkeit hat zu Lernen, wie im letzten Unterabschnitt beschrieben, bringt das noch keinen Vorteil, wenn man die gewonnen Informationen nicht auch in irgendeiner Art und Weise speichern kann. Ein Modell zur Repräsentation von Informationen und deren Beziehungen untereinander stellen die so genannten semantischen Netze dar. Das Netz speichert Informationen in einem Graph, welcher die Informationen in den Knoten dieses Graphen speichert und die Beziehungen zwischen den Informationen in den Kanten des Graphen codiert werden. So könnte man beispielsweise eine Beziehung zwischen den beiden Worten “Auto” und “Reifen” herstellen. Die meisten Autos verfügen über vier Reifen und stehen somit in einer Beziehung zueinander. Diese Beziehung kann mit Hilfe von semantischen Netzen spezifiziert werden. Ein künstliche Intelligenz wäre mit Hilfe dieser Netze in der Lage Wissen abzubinden. Für die “lesende künstliche Intelligenz” wäre dieser Vorgang interessant, um die Semantik von Texten zu erfassen und zu analysieren. Das kann sowohl für die Informationsextraktion sinnvoll sein, als auch für die Validierung bzw. Verifizieren der gesammelten Informationen. Es könnte somit überprüft werden, ob die extrahierten Informationen in einem gewissen Kontext zueinander stehen und nicht wie heute noch oft üblich – keinen logischen Sinn ergeben. Ausblick In diesem Unterabschnitt soll noch mal der Zusammenhang zum restlichen Projekt gegeben werden und auf die weitere Vorgehensweise eingegangen werden. Da sich das Projekt nicht mit dem BAIM Projekt beschäftigen wird, sondern sich auf die Entwicklung eines “Barrierometer” konzentriert, würde die Ursprüngliche Idee leicht modifiziert. Das Barrierometer soll es ermöglichen anhand von verschiedenen Eingabequellen zu überprüfen, ob die Barrierefreiheit nach verschiedenen DIN-Normen gewährleistet ist. Eingabequelle kann beispielsweise ein Gebäudeplan sein. An dieser Stelle sei auf das “Barrierometerkapitel” verwiesen. Wichtiger sind in Zusammenhang mit der künstlichen Intelligenz die DIN-Normen. Diese enthalten die Informationen, welche für die Validierung und Verifizierung benötigt werden. Beispielsweise enthalten diese die geforderten Stufenhöhe für Treppen. Solche Informationen liegen in den Texten der DIN-Normen vor. Um diese Informationen maschinell extrahieren zu können, bietet sich auch hier die Entwicklung einer künstlichen Intelligenz an, welche in Lage ist geschriebene Sprache auf menschenähnliche Art und Weise zu analysieren. Wie man schnell erkennen kann, unterscheidet sich die Extraktion der Informationen für BAIM prinzipiell nur unwesentlich von der im “Barrierometer”. Für beide Systeme ist ein gewisser Grundwissensschatz erforderlich. So muss die künstliche Intelligenz beispielsweise die Grundlagen der natürlichen Sprachen beherrschen. Aber viel wichtiger ist es Beziehungen zwischen den Informationen zu erkennen. Nur so ist die Intelligenz in der Lage Informationen intelligent zu verarbeiten, den Kontext von Informationen zu erfassen und zu lernen. Die Informationsextraktion aus geschriebener Sprache ist somit eine sehr komplexe Sache. Trotzdem sollen im Rahmen des Projekts die Möglichkeiten eine solche Intelligenz zu erzeugen untersucht werden. Klar ist auch, dass es in der verbleibenden Zeit nicht möglich sein wird, eine solche Intelligenz zu entwickelt, sondern nur die ersten Schritte in diese Richtung zu wagen. Die Entwicklung einer “lesenden Intelligenz“ stellt gleichzeitig auch den ersten Schritt in Richtung “allgemeiner künstlichen Intelligenz” dar und ist damit ein lohnendes, wenn auch sehr schwer zu erfüllendes Ziel.