Teil 8: So werden Logik und Faktenwissen in Graphdatenbanken voneinander isoliert
Bisher habe ich dir gezeigt, wie die Logik in Graphdatenbanken zusammen mit Expertenwissen abgelegt werden kann. Dadurch lassen sich komplexe Systeme wie z.B. Chatbots sehr gut abbilden. Dabei war es bisher jedoch so, dass die Knoten, welche das Expertenwissen enthalten gleichzeitig auch die Logik abgebildet haben. Eine Chatbot-Frage konnte so zum Beispiel vom Typ UND bzw. ODER sein. Dieser logische Typ entscheidet bisher, ob alle eingehenden Edges einer Frage durchquert werden müssen, damit die Frage Sinn macht oder, ob nur eine einzige Edge ausreicht, um die Frage zu aktivieren.
Auf der Grafik oben erkennst du links eine ODER-Frage und rechts eine UND-Frage. Generell ist dieses Vorgehen nicht verkehrt. Ich möchte jedoch versuchen die Logik besser sichtbar zu machen. Denn eigentlich sollen Knoten, die Faktenwissen repräsentieren, dieses Wissen optisch in den Vordergrund stellen. Dennoch soll es auch einen guten Überblick über die logischen Strukturen geben. Dazu werde ich die Logik aus den Knoten isolieren. Das könnte wie folgt aussehen:
Technisch gesehen ist das Beispiel identisch mit der ersten Grafik. Jedoch hat diese Vorgehensweise meiner Meinung nach den Vorteil, dass man die logischen Strukturen sofort erkennen kann. Außerdem helfen sie dabei Wiederholungen zu vermeiden:
So ist es beispielsweise nicht nötig die Verbindungen für die Fragen zu wiederholen, wenn diese von den gleichen Bedingungen abhängig sind. Ohne die Isolation der Logik würde hier schnell der Überblick fehlen:
Übrigens: Beide Möglichkeiten Logik zu implemenmtieren schließen sich gegenseitig keineswegs aus. Auch wenn die Logik in eigene Konten ausgelagert werden kann, können trotzdem immer noch mehrere Verbindungen auf eine Frage zeigen und so ein logisches ODER beschreiben.
Nun weißt du, warum es sinnvoll sein kann, die Logik vom Faktenwissen zu trennen. Im nächsten Artikel zeige ich dir, wie das anstelle von Nodes auch mit Edges gemacht werden kann und warum das sinnvoller ist.