Wie unterrichtet man einen Rechner? Mit dieser Frage durfte ich mich das letzte Semester beschäftigen. Im Rahmen meines PSE (Praxis der Softwareentwicklung), ging es darum, eine Entwicklungsumgebung für Ontologien zu schreiben.

Ontologien

Alle Widget von pySUMO

Fragt man einen Rechner, was der Unterschied zwischen einem Stuhl und einem Tisch sei, wäre das wahrscheinliche Ergebnis wohl eine Levensthein-Distanz oder ein Diff von den beiden Klassen „Stuhl“ und „Tisch“. In beiden Fällen wohl nicht die Antwort, die man bekommen würde, fragte man einen Menschen. Rechner — im Unterschied zu Menschen — können verdammt schnell rechnen, aber nicht denken.

Um tatsächlich denken zu können, brauchen sie eine Grundlage: Wissen. Wie füttere ich nun aber meinen Computer damit? Wie schaffe ich es, dass mein Computer mehr „sieht“ als Nullen und Einsen? Ontologien sind dafür gemacht worden.

Top down und buttom up Ontologien

In Ontologien werden Begriffe gruppiert und erhalten so eine Hierarchie. Zusätzlich können Axiome definiert werden und der Rechner kann anfangen logisch zu denken — d.h. rechnen. Im Groben kann man alle Ontologien unterscheiden, ob die Hierarchie von oben aufgebaut wird, das heißt ein Wort wird immer weiter unterteilt, bis man genug Begriffe abgeleitet hat oder eine Menge von Begriffen wird zusammengefasst bis man einen Überbegriff für alle Wörter gefunden hat. Eben Top down oder buttom up. Für unser Projekt wurde uns SUMO, die größte top down Ontologie vorgegeben.

Das besondere an pySUMO

Texteditor und Documentation Widget

Um ein so großes Gebilde zu bearbeiten, ist es sinnvoll dieses anzeigen zu lassen. Dafür verfügt pySUMO über ein Graph-Widget. Innerhalb des Graph-Widgets kann man auch neue Knoten sowieso Relationen hinzufügen. Natürlich gibts im Texteditor auch die Möglichkeit diese zu editieren, mit Syntaxhighlighting. Außerdem gibt es noch die Visualisierungmöglichkeit über unser Hierarchie-Widget und die Ontologien lassen sich im Documentation-Widget durchsuchen. Außerdem kann bei letzterem die Verbindung von SUMO und Wordnet angezeigt werden. Die Widget werden alle miteinander synchronisiert, auch darauf mussten wir viel Zeit verwenden. Wem das alles noch nicht reicht findet noch mehr Infos auf Read the docs