Inferenzmaschine
Beschreibung
Gebiet der Erfindung
Inferenzmaschinen sind in der Lage, durch logisches Schließen Fragen zu beantworten oder neue Informationen aufzufinden.
Eine Schwierigkeit im Umgang mit Inferenzmaschinen besteht darin, dass die von einer Inferenzmaschine gegebenen Antworten für denjenigen, der die Frage gestellt hat, u. U. nicht nachvoll- ziehbar sind. Damit ist es oft auch schwierig, unbefriedigende Antworten auf eine Frage dadurch zu verbessern, dass die Frage präziser gestellt wird.
Aufgabe
BESTATIGUNGSKOPIE
Aufgabe der Erfindung ist es, das Arbeiten mit Inferenzmaschinen benutzerfreundlicher zu gestalten.
Stand der Technik
Im Folgenden soll zunächst die Arbeitsweise einer Inferenzma- schine kurz erläutert werden.
Eine Inferenzmaschine basiert in der Regel auf einem Datenverarbeitungssystem bzw. einem Rechnersystem mit Mitteln zur Speicherung von Daten. Das Datenverarbeitungssystem hat eine Abfrageeinheit zur Ermittlung von Ausgangsgrößen unter Zugriff auf die abgespeicherten Daten. Die Daten sind vorgegebenen Klassen zugeordnet, die Bestandteil wenigstens einer abgespeicherten, ein Objektmodell bildenden Klassenstruktur, sind. Häufig werden als Objektmodell sog. Ontologien verwendet.
Das Objektmodell und wird vorzugsweise in Form einer hierarchi- sehen Struktur der Klassen realisiert. Innerhalb der hierarchischen Struktur sind die Klassen einer bestimmten Ebene der hierarchischen Struktur genau einer Klasse der übergeordneten Ebene zugeordnet. Im Allgemeinen gibt es in einem solchen Fall nur eine einfache Vererbung von Eigenschaften. Im Allgemeinen kann die Klassenstruktur noch auf andere Arten ausgeführt werden, beispielsweise als azyklischer Graph, in dem auch Mehrfachvererbung zugelassen sein kann.
Den Klassen sind Attribute zugeordnet, die innerhalb einer Klassenstruktur weitervererbbar sind. Attribute sind Merkmale einer Klasse. Die Klasse "Person" kann beispielsweise das Attribut "Haarfarbe" haben. Diesem Attribut werden für unterschiedliche konkrete Personen (genannt "Instanzen") unter-
schiedliche Werte (genannt "Attributwerte") zugeordnet, z. B. braun, blond, schwarz, etc.
Die Abfrageeinheit enthält eine Inferenzmaschine bzw. Inferen- zeinheit, mittels derer Regeln auswertbar sind.
Die Regeln verknüpfen Elemente der Klassenstruktur und/oder Daten. Als Elemente der Klassenstruktur werden dabei Klassen, Attribute, Synonyme, Relationen, also Beziehungen zwischen Ele- menten bzw. Zuordnungen, kurz all das bezeichnet, aus dem das
Objektmodell bzw. die Klassenstruktur aufgebaut ist. Die Regeln sind i. d. R. als deklaratives System von Regeln ausgestaltet. Eine wichtige Eigenschaft eines deklarativen Systems von Regeln besteht darin, dass die Ergebnisse einer Auswertung nicht von der Reihenfolge der Definition der Regeln abhängen.
Die Regeln ermöglichen z. B. das Auffinden von Informationen, die nicht explizit durch die Suchbegriffe beschrieben wurden. Die Inferenzeinheit ermöglicht es sogar,- durch/Verknüpfen von einzelnen Aussagen neue Informationen zu erzeugen, die nicht explizit in den Daten enthalten waren, sondern sich nur aus den Daten erschließen lassen.
Über die Abfrageeinheit können als Eingabegrößen Abfragebegrif- fe eingegeben werden, welche nicht nur von den abgespeicherten Daten gebildet sind, sondern auch von den Klassen oder Attributen der Klassenstruktur gebildet sein können. Neben einer Frage: "Welche Artikel hat Herr Mustermann verfasst?" - Mustermann wäre ein konkreter Name aus den Daten - sind auch Fragen vom Typ: "Wie lauten die Namen aller Angestellten des Unternehmens X?" möglich. In einem solchen Beispiel würde mit einem Suchbegriff nicht nach dem konkreten Namen eines Angestellten, sondern nach den Werten des Attributs "hatName" aller Instanzen
der Angestellten gesucht, die mit der Instanz X aus der Klasse der Unternehmen in Beziehung stehen, und zwar in der Beziehung "istAngestellt" .
Derartige Abfragen werden häufig in der Sprache F-Logik formuliert (J. Angele, G. Lausen: "Ontologies in F-Logic" in S. Staab, R. Studer (Eds.) : Handbook on Ontologies in Information Systems. International Handbooks on Information Systems, Springer Verlag, 2003, Seite 29) . Zum groben, intuitiven Verständnis von F-Logik mag das folgende Beispiel dienen, welches die Beziehungen zwischen bekannten biblischen Personen abbildet:
Zunächst einige Fakten:
abraham:man. sarah: oman. isaac :man [fatherls->abraham; motherIs->sarah] . ishmael :man [fatherls->abraham; motherIs->hagar : woman] . jacob :man [£atherIs-.>isaac ; motherIs->rebekah.::woman] •. esau:man [fatherls->isaac; motherIs->rebekah] .
Man erkennt gewisse Klassen: "man" und "woman", also "Mann" und "Frau". Abraham ist also ein Mann. Die Klasse "man" hat z. B. die Attribute "father" und "mother" , die Attribute geben also die Eltern an. Z. B. hat der Mann Isaak den Vater Abraham und die Mutter Sarah.
F-Logik ist erkennbar auch als Sprache geeignet, um eine Klassenstruktur zu formulieren. Neben F-Logik werden vorzugsweise jedoch die Ontologie-Sprachen RDF, DAML+OIL und OWL zur Definition von Klassenstrukturen verwendet.
Weiter mit einigen Regeln, die Zusammenhänge wiedergeben:
FORALL X,Y X[sonIs->>Y] <- Y:man [fatherIs->X] . FORALL X,Y X[sonIs->>Y] <- Y:man [motherIs->X] . FORALL X,Y X[daughterls->>Y] <- Y: woman [fatherIs->X] . FORALL X,Y X [daughterIs->>Y] <- Y: woman [motherIs->X] .
Regeln in F-Logik weisen stets links einen Regelkopf und rechts einen Regelkörper auf. Die erste Regel lautet übersetzt z. B.: Ist Y ein Mann, dessen Vater X war, so ist Y einer der Söhne von X. Dabei zeigt der einfache Pfeil "->« an, dass für ein bestimmtes Attribut nur ein Wert möglich ist, während der doppelte Pfeil "->>" anzeigt, dass mehrere Werte möglich sind.
Schließlich eine Abfrage, die nach allen Frauen fragt, die ei- nen Sohn haben, dessen Vater Abraham ist. Mit anderen Worten: Mit welchen Frauen hatte Abraham einen Sohn?
FORALL X,Y <- X : woman [sonIs->>Y [fatherls->abraham] ] .
Eine Abfrage hat die Form einer Regel, jedoch ohne den links stehenden Regelkopf. Die Antwort lautet:
X = sarah X = hagar .
Derartige Systeme sind z. B. aus der DE 101 03 845 AI bekannt
Lösung
Die Aufgabe wird durch die Erfindungen mit den Merkmalen der unabhängigen Ansprüche gelöst. Vorteilhafte Weiterbildungen der Erfindungen sind in den Unteransprüchen gekennzeichnet. Der
Wortlaut sämtlicher Ansprüche wird hiermit durch Bezugnahme zum Inhalt dieser Beschreibung gemacht.
Das erfindungsgemäße DatenverarbeitungsSystem weist wenigstens eine Informationserzeugungseinheit und/oder Speichereinheit zur Speicherung und/oder Generierung ~von einen Datenbestand bildenden Daten auf. Dabei können Informationen z. B. über Sensoren, das Internet, über mit dem Internet verbundene Sensoren oder sonstige Eingabemöglichkeiten gewonnen werden. Als Daten kommen z. B. Betriebszustände von Maschinen in Frage, ferner
Temperaturwerte von verschiedenen Städten in der Welt und weitere Daten, wie sie z. B. in den folgenden Beispielen genannt werden.
Ferner hat das Datenverarbeitungssystem wenigstens eine Rechnereinheit zur Generierung eines Objektmodells, welches aus einer Klassenstruktur mit Klassen und i. d. R. diesen zugeordneten Attributen besteht. Die Daten sind mittels des Objektmodells strukturierbar. •.
Neben der Klassenstruktur umfasst das Objektmodell ein deklaratives System von Regeln.
Das Datenverarbeitungssystem hat eine Ein/Ausgabeeinheit zur Eingabe einer Abfrage und zur Ausgabe von Antworten auf die Abfrage. Ferner eine Inferenzeinheit , in welcher zur Generierung einer Antwort auf eine Abfrage die Regeln ausgewertet werden.
Der Inferenzeinheit ist eine Auswerteeinheit zugeordnet, wobei in diese Inferenzprotokolle über Instantiierungen von Regeln einlesbar sind. In der Auswerteeinheit werden in Abhängigkeit der Inferenzprotokolle Erklärungen über die Auswertung von Regeln generiert .
Durch die Ausgabe von Erklärungen erhält ein Benutzer auf eine von ihm durchgeführte Abfrage eine Dokumentation, wie diese Abfrage abgearbeitet wurde, um darauf eine bestimmte Ausgabegröße zu generieren. Die logischen Schritte, die Herleitung zur Beantwortung der Frage wird aufgezeigt. Anhand der Erklärungen erhält der Benutzer somit eine Kontrollmöglichkeit über das Zustandekommen der Antwort auf eine Abfrage. Insbesondere kann der Benutzer anhand der Erklärungen die Relevanz und Glaubwür- digkeit, d. h. allgemein die Güte einer im Datenverarbeitungs- System generierten Ausgabegröße überprüfen. Ein weiterer Vorteil besteht für den Benutzer darin, dass dieser anhand der angegebenen Erklärungen nachfolgende Abfragen exakter formulieren kann. Damit wird ein Datenverarbeitungssystem mit erheblich verbesserten Recherchenmöglichkeiten geschaffen.
Mit einem solchen System können technische Fragen beantwortet werden. Es kann z. B. ein technisches Expertensystem aufgebaut werden, das in der Lage ist, technisch korrekte Überlegungen anzustellen, technisch korrekte Schlüsse zu ziehen und diese auch zu erklären. Es können technische Vorschläge, basierend auf technischen Überlegungen, unterbreitet werden.
Die Generierung der Erklärungen erfolgt in einer Auswerteein- heit, welche bevorzugt eine Inferenzeinheit aufweist. In dieser Inferenzeinheit werden die Erklärungen durch Auswertung vorgegebener Erklärungsregeln generiert. Als Eingangsgrößen hierfür dienen Inferenzprotokolle, welche die Fakten (Instanzen) enthalten, die bei der Instantiierung von Regeln in der Inferen- zeinheit der Abfrageeinheit zur Bearbeitung einer Abfrage verwendet wurden .
Die Generierung der Erklärungen erfolgt damit analog zur Aus-
wertung der Abfragen durch Auswertung von Regeln, die applikationsspezifisch vorgegeben und bei Bedarf geändert werden können.
5 Gemäß einer ersten Variante kann dabei zu jedem durch eine Regel definierten Inferenzschritt , der zur Abarbeitung einer Abfrage in der Inferenzeinheit der Abfrageeinheit durchgeführt wird, eine Erklärung generiert und als Ausgangsgröße ausgegeben werden. Bei dieser Variante wird der größtmögliche Detail- 0 lierungsgrad bei der Generierung der Erklärungen erhalten, da jeder Inferenzschritt einzeln dokumentiert wird.
Gemäß einer zweiten Variante können mehrere Inferenzschritte zur Abarbeitung von Abfragen in einer Erklärung abgehandelt 5 werden. Damit wird ein höherer Abstraktionsgrad der Erklärung erhalten.
Die Generierung der Erklärungen erfolgt dabei in jedem Fall •', •• , mitteis Erklärungs egeln, die in: .tder-LInferenzeinheit der Aus- . 0 werteeinheit abgearbeitet werden. In einer besonders vorteilhaften Ausgestaltung sind weitere Erklärungsregeln vorgesehen, um eine Auswahl zwischen verschiedenen Erklärungsmöglichkeiten zu treffen. Insbesondere kann mit derartigen Erklärungsregeln die Ausgabe von redundanten Erklärungen vermieden werden. 5 In einer besonders vorteilhaften Ausführungsform werden zur Generierung der Erklärungen externe Daten miteinbezogen, wodurch die Aussagefähigkeit der Erklärungen erheblich erhöht wird. Besonders vorteilhaft können diese Daten in wenigstens einem Ob- 0 jektmodell strukturiert sein.
Ein Beispiel für derartige externe Daten sind Benutzerprofile von Benutzern, welche das Datenverarbeitungssystem zu Recher-
chenzwecken nutzen. Durch die Auswertung der Benutzerprofile werden Erklärungen generiert, welche an den jeweiligen Benutzer, insbesondere dessen Kenntnisstand, Ausbildung und dergleichen, optimal angepasst sind.
Die Aufgabe der Erfindung wird ferner durch ein Verfahren gelöst. Im Folgenden werden einzelne Verfahrensschritte näher beschrieben. Die Schritte müssen nicht notwendigerweise in der angegebenen Reihenfolge durchgeführt werden, und das zu schil- dernde Verfahren kann auch weitere, nicht genannte Schritte aufweisen.
Verfahrensgemäß werden - insbesondere unter Verwendung eines Datenverarbeitungssystems - die folgenden Schritte durchge- führt. Zunächst wird ein Datenbestand generiert und/oder gespeichert. Ferner wird ein Objektmodell erzeugt, bestehend aus einer Klassenstruktur und einem deklarativen System von Regeln. Die Daten sind mit Hilfe des Objektmodells strukturierbar. Die Regeln verknüpfen Elemente der Klassenstruktur und/oder Daten. Eine Abfrage wird eingegeben. Eine Inferenzeinheit wertet die Abfrage durch Auswerten der Regeln aus . Während der Auswertung der Abfrage werden in einer der Inferenzeinheit zugeordneten Aus- werteeinheit Inferenzprotokolle über Instantiierungen der Regeln, die während der Auswertung aufgetreten sind, generiert. In der Auswerteeinheit werden in Abhängigkeit der Inferenzprotokolle Erklärungen über die Auswertung der Regeln generiert .
Ferner gehört zum Umfang der Erfindung ein Computerprogramm, das bei Ablauf auf einem Computer oder auf einer Mehrzahl von Computern eines Computer-Netzwerks das erfindungsgemäße Verfahren in einer seiner Ausgestaltungen ausführt.
Weiterhin gehört zum Umfang der Erfindung ein Computerprogramm mit Programmcode-Mitteln, um das erfindungsgemäße Verfahren in einer seiner Ausgestaltungen durchzuführen, wenn das Programm auf einem Computer oder auf einer Mehrzahl von Computern eines Computer-Netzwerks ausgeführt wird. Insbesondere können die Programmcode-Mittel auf einem computerlesbaren Datenträger gespeichert sein.
Außerdem gehört zum Umfang der Erfindung ein Datenträger, auf dem eine Datenstruktur gespeichert ist, die nach einem Laden in einen Arbeits- und/oder Hauptspeicher eines Computers oder einer Mehrzahl von Computern eines Computer-Netzwerks das erfindungsgemäße Verfahren in einer seiner Ausgestaltungen ausführen kann.
Auch gehört zum Umfang der Erfindung ein Computerprogramm- Produkt mit auf einem maschinenlesbaren Träger gespeicherten Programmcode-Mitteln, um das erfindungsgemäße Verfahren in ei- ■ - -ner seiner Ausgestaltungen durchzuführen, wenn> das, Programm auf einem Computer oder auf einer Mehrzahl von Computern eines Computer-Netzwerks ausgeführt wird.
Dabei wird unter einem Computer-Programmprodukt das Programm als handelbares Produkt verstanden. Es kann grundsätzlich in beliebiger Form vorliegen, so zum Beispiel auf Papier oder einem computerlesbaren Datenträger und kann insbesondere über ein Datenübertragungsnetz verteilt werden.
Schließlich gehört zum Umfang der Erfindung ein moduliertes Da- tensignal, welches von einem Computersystem oder von einer Mehrzahl von Computern eines Computer-Netzwerks ausführbare Instruktionen zum Ausführen des erfindungsgemäßen Verfahrens in einer seiner Ausgestaltungen enthält. Als Computersystem kommen
sowohl ein Stand-alone Computer in Betracht, als auch eine Netzwerk von Rechnern, beispielsweise ein hausinternes, geschlossenes Netz, oder auch Rechner, die über das Internet miteinander verbunden sind. Ferner kann das Computersystem durch eine Client-Server-Konstellation realisiert sein, wobei Teile der Erfindung auf dem Server, andere auf einem Client ablaufen.
Weitere Einzelheiten und Merkmale der Erfindung ergeben sich aus der nachfolgenden Beschreibung von bevorzugten Ausführungs- beispielen in Verbindung mit den Unteransprüchen. Hierbei können die jeweiligen Merkmale für sich alleine oder zu mehreren in Kombination miteinander verwirklicht sein. Die Erfindung ist nicht auf die Ausführungsbeispiele beschränkt.
Die Ausführungsbeispiele sind in den Figuren schematisch dargestellt. Gleiche Bezugsziffern in den einzelnen Figuren bezeichnen dabei gleiche oder funktionsgleiche bzw. hinsichtlich ihrer Funktionen einander entsprechende Elemente. Im Einzelnen zeigt:
Fig. 1 eine schematische Darstellung eines Ausführungsbeispiels des erfindungsgemäßen Datenverarbeitungssystems ; Fig. 2 ein Beispiel einer Klassenstruktur für das Datenverarbeitungssystem gemäß Figur 1 ; Fig. 3 eine schematische Darstellung des Verfahrensablauf.
Figur 1 zeigt ein Ausführungsbeispiel des erfindungsgemäßen Datenverarbeitungssystems 1. Das Datenverarbeitungssystem 1 weist eine Speichereinheit 2 auf, auf welcher ein Bestand von Daten gespeichert ist. Die Speichereinheit 2 ist von einem Datenbanksystem, einem Filesystem (d. h. von einer Menge von auf einem Computer gespeicherten Dateien) oder dergleichen gebildet .
Prinzipiell können auch mehrere, gegebenenfalls auf unterschiedlichen Rechnersystemen integrierte Datenbanksysteme vorgesehen sein.
Der Speichereinheit 2 ist ein Server 3 zugeordnet, über welchen ein Zugriff auf die in der Speichereinheit 2 gespeicherten Daten erfolgt. Diesem Server 3 ist eine Rechnereinheit 4 zugeordnet. Die Rechnereinheit 4 besteht aus einem Prozessorsystem o- der dergleichen. Im einfachsten Fall ist die Rechnereinheit 4 von einem Personalcomputer oder einer Workstation gebildet.
Die Rechnereinheit 4 weist ein erstes Software-Modul 5 auf, mittels dessen ein eine Ontologie bildendes Objektmodell generierbar ist. Mittels des Objektmodells sind die Daten des Spei- chersystems in einer Klassenstruktur strukturierbar.
Das Software-Modul 5 steht in Verbindung mit einer Abfrageein- heit 6, die ebenfalls aus einem Software-Modul besteht. In der Abfrageeinheit 6 ist eine erste In erenzeinheit 7 implemen- tiert.
Die Rechnereinheit 4 gemäß Figur 1 umfasst weiterhin eine Ein- /Ausgabeeinheit 8 über welche Informationen in die Rechnereinheit 4 eingebbar bzw. aus der Rechnereinheit 4 ausgebbar sind. Die Ein- /Ausgabeeinheit 8 besteht im Wesentlichen aus einem
Terminal .
Die Abfrageeinheit 6 ist über ein Schnittstellenmodul 9 mit einer Auswerteeinheit 10 verbunden, in welcher eine zweite Infe- renzeinheit 11 implementiert ist. Weiterhin weist die Auswerteeinheit 10 ein Software-Modul 12 auf, mittels dessen ein weiteres Objektmodell generierbar ist. Mit diesem Objektmodell können externe Daten strukturiert werden. Der Zugang zu den exter-
nen Daten erfolgt über den Server 3 oder geeignete Schnittstel- lenkomponenten .
Die Funktion des Datenverarbeitungssystems 1 gemäß Figur 1 wird im Folgenden unter Bezug auf die Figur 2 erläutert .
Der in der Speichereinheit 2 gespeicherte Bestand der Daten wird mittels des mit dem Software-Modul 5 generierten Objektmodells strukturiert. Ein derartiges Objektmodell stellt generell eine Ontologie dar und weist eine Struktur von Klassen auf, wobei die Struktur als hierarchische Struktur ausgebildet sein kann. Bei hierarchischen Strukturen sind Klassen einer vorgegebenen Ebene jeweils genau einer Klasse einer darüber liegenden Ebene zugeordnet. Es sind nur Einfachvererbungen zugelassen. Allgemein kann die Klassenstruktur auch als azyklischer Graph ausgebildet sein, bei welchem Mehrfachvererbungen zugelassen sind.
Figur- 2 zeigt beispielhaft zwei derartige hierarchische Klas- senstrukturen, die jeweils ein Objektmodell bilden. Das erste Objektmodell enthält eine Klasse "Veröffentlichungen", welcher als Unterklasse "Vorträge" und "Dokumente" zugeordnet sind. Das zweite Objektmodell enthält eine Klasse "Personen", welcher als Unterklassen "Selbstständige" und "Angestellte" zugeordnet sind. Der Unterklasse "Angestellte" sind als weitere Unterklassen "technische Angestellte" und "kaufmännische Angestellte" zugeordnet .
Den Klassen jeweils einer hierarchischen Klassenstruktur sind bestimmte Attribute zugeordnet. Dabei wird ein Attribut, welches einer Klasse wie zum Beispiel der Klasse "Personen" zugeordnet ist, an die der Klasse untergeordneten Unterklassen weiter vererbt. Ein derartiges Attribut kann beispielsweise ein
Unternehmensstandort sein. Dieses Attribut wird innerhalb der Klassenstruktur, im vorliegenden Beispiel an die untergeordneten Klassen "Selbstständige" und "Angestellte" sowie auch die dieser Klasse zugeordneten Unterklassen "kaufmännische Ange- stellte" und "technische Angestellte" vererbt.
Auf diese Weise entsteht eine besonders effiziente Strukturierung der Daten. Zur Durchführung von Recherchen in dem Datenbestand werden von einem Benutzer Abfragen als Eingabegrößen über die Ein- /Ausgabeeinheit 8 der Rechnereinheit 4 eingegeben. Die Bearbeitung der Abfragen erfolgt in der Abfrageeinheit 6, insbesondere in der dort implementierten Inferenzeinheit 7. Dabei werden dort zur Bearbeitung einer Abfrage passende Regeln gesucht und ausgewertet .
Die Regeln in der Inferenzeinheit 7 beinhalten logische Verknüpfungen zwischen Klassen und/oder Attributen und/oder Daten des Datenbestandes. Da es sich bei den Regeln um ein deklaratives System handelt, spielt die Reihenfolge der Definition der Regeln keine Rolle. In der Inferenzeinheit 7 werden die einer
Abfrage zugeordneten Regeln zur Generierung definierter Ausgabegrößen ausgewertet. Zweckmäßigerweise werden die Ausgabegrδ- ßen dann über die Ein- /Ausgabeeinheit 8 ausgegeben.
Die Regeln sind vorzugsweise in den Regelsprachen F-Logic, OWL, TRIPLE, SWRL oder RULEML abgefasst, wobei die Klassenstruktur der Ontologie vorzugsweise als F-Logic, RDF(S) oder OWL Modell ausgebildet ist.
Durch die Verknüpfung von Attributen und Klassen über eine vorgegebene Anzahl von Regeln können auf einfache Weise Untermengen von Daten im Datenbestand abgefragt werden, ohne dass dabei in den Abfragebefehlen auf bestimmte Daten Bezug genommen wer-
den muss.
Beispiel 1
Im Folgenden wird ein Beispiel für eine Abfrage dieses Typs beschrieben. Ein Benutzer möchte sich nach der Expertise einer Person erkundigen, welche dem Benutzer unter dem Namen "Mustermann" bekannt ist. Für eine bestimmte Ontologie könnte eine entsprechende Abfrage in F-Logic wie folgt ausgedrückt werden:
FORALL X,Y <- X: Person [Name- >Mustermann; Kenntnis->>Y] .
Eine Regel, die verwendet werden kann, um diese Abfrage zu be- antworten, kann wie folgt formuliert werden: "Wenn eine Person ein Dokument schreibt, und dieses Dokument handelt von einem gegebenen Thema, dann hat diese Person Wissen über dieses Thema. " In F-Logic könnte diese Regel folgendermaßen ausgedrückt werden (sehen.,.'.ßie ■ unten) : ,
FORALL X,Y,Z Y [Kenntnis->>Z] <- X : Dokument [Autor- >>Y: Person] AND X [Thema- >>Z] .
Die Klassen "Person" und "Dokument" werden auf diese Weise mit- einander verbunden. Bezug wird dabei auf das Thema des Dokuments genommen, welches ein Attribut der Klasse "Dokument" ist. Die Expertise der Person mit dem Namen "Mustermann" erhält man als Ausgangsgrößen für die oben formulierte Abfrage.
Für die Implementierung dieses Beispiels können verschiedene
Logik-Sprachen verwendet werden. Als Beispiel wird eine Implementierung mit der bevorzugten Logic-Sprache "F-Logic" beschrieben.
/* Ontologie */ Autor— Person. Thema:: science. biotechnology: Thema. physics: Thema. chemistry: Thema. Dokument [Autor=>>Autor; Thema=>>Thema] . Person [AutorVon=>>Dokument] .
In diesem ersten Abschnitt wird die Ontologie selbst definiert. Die Daten enthalten Dokumente mit zwei relevanten Attributen: dem Autor und dem Wissensgebiet.
/* Fakten */ Paul: Person. Anna,: Person. Mustermann: Person. docl : Dokument [Thema- >>biotechnology; Autor- >>Paul] . ,doc2': „Dokument [Thema->>biotechnology-; Autor- >>Paul] -. doc3 : Dokument [Thema- >>chemistry; Autor->>Paul] . doclOO: Dokument [Thema->>physics ; Autor- >>Anna] . doclOl: Dokument [Thema->>physies; Autor- »Anna] . doc200: Dokument [Thema- >>biotechnology; Autor- >>Mustermann] .
In diesem Abschnitt definierten wir die Fakten der Ontologie.
Das sind sechs Dokumente (bezeichnet mit docl, ..., doc200) mit den genannten Themen und den genannten Autoren. Es folgt eine alternative Formulierung der o. g. Abfrage: /* Abfrage */ FORALL X < - Mustermann [Kenntnis - > >X : Thema] .
Dieser Abschnitt ist der eigentliche Abfrage-Abschnitt. Mit der Regel, die im vorhergehenden Abschnitt definiert wurde, leiten wir durch logisches Schließen die Expertise des Autors "Mustermann" ab.
In der Inferenzeinheit 7 wird die o. g. Abfrage mit Hilfe der o. g. Regel ausgewertet. Dies wird an Hand des sog. " forward chaining" Verfahrens erläutert. Dabei werden die Regeln auf die Fakten und die dadurch gewonnenen Fakten so lang angewendet, wie neue Daten abgeleitet werden können.
Mit den o. g. Fakten über die Dokumente und mit der o. g. Regel : FORALL X,Y,Z Y [Kenntnis->>Z] <- X :Dokument [Autor- >>Y: Person] and X [Thema->>Z] .
werden zunächst alle Ersetzungen der Variablen X, Y und Z ge- -sucht,, für. die der Regelkörper-, .(die -reehte .Seite),, logische. wahr ist:
X=docl, Y=Paul, Z=biotechnology X=doc2, Y=Paul, Z=biotechnology X=doc3, Y=Paul, Z=chemistry X=docl00, Y=Anna, Z=physics X=docl01, Y=Anna, Z=physics X=doc200, Y=Mustermann, Z=biotechnology
Nachdem die Variablen im Regelkopf durch diese Werte ersetzt wurden, ergeben sich als Ergebnis folgende abgeleitete Fakten:
Paul [Kenntnis->>biotechnology] . Paul [Kenntnis- >>chemistry] .
Anna [Kenntnis- >>physics] . Mustermann [Kenntnis- >>biotechnology] .
Im nächsten Schritt der Beantwortung unserer Abfrage
FORALL X <- Mustermann [Kenntnis->>X: Thema] .
werden diejenigen Werte für X gesucht, für die die Abfrage logisch wahr ist:
X = biotechnology
Diese Variablensubstitution liefert das Ergebnis unserer Abfrage. Das Ergebnis wird vorzugsweise über die Ein- /Ausgabeeinheit 8 ausgegeben.
Die Bearbeitung der Abfrage erfolgte durch eine Instantiierung der Regel, d. h. der Regel werden als konkrete Werte, so genannte Instanzen (Fakten).,' die. Eingangsgrößen JLKenntnis l'; und.... "Mustermann" zugeordnet.
In der Auswerteeinheit 10 wird hierzu eine Erklärung generiert, welche als weitere Ausgabegröße über die Ein- /Ausgabeeinheit 8 ausgegeben wird. Zur Generierung der Erklärung für das Zustan- dekommen des Abfrageergebnisses auf die Abfrage des Benutzers wird über das Schnittstellenmodul 9 ein Inferenzprotokoll in die Inferenzeinheit 11 der Auswerteeinheit 10 eingelesen. Das Inferenzprotokoll beinhaltet generell eine Indizierung, die angibt, welche Regeln bei einer Abfrage abgearbeitet wurden. Wei- terhin enthält das Inferenzprotokoll die Instanzen (Fakten) der jeweiligen Regeln zur Bearbeitung der Abfrage.
Im vorliegenden Beispiel enthält das Inferenzprotokoll neben
der Information, dass die eine Regel abgearbeitet wurde als Instanzen: Person = Mustermann Dokument = doc200 Thema = Biotechnologie
In der Inferenzeinheit 11 der Auswerteeinheit 10 erfolgt die Generierung der Erklärung für die Regel durch eine Erklärungs- regel, die im vorliegenden Fall lautet:
Person "hat das Dokument" Dokument "geschrieben. " "Das Dokument handelt von" Thema. "Deshalb hat" Person "Kenntnisse über" Thema.
Dabei bilden Person, Dokument und Thema Variablen, welchen die Instanzen des Inferenzprotokolls zur Abarbeitung der Erklärungsregeln zugewiesen wurden.
Hierbei- bildet Person, die Variable. Personenwer.t,../,.welcher. im. • vorliegenden Fall die Instanz "Mustermann" zugewiesen wird. Dokument bildet die Variable Dokumentenwert, welcher die Instanzen "doc200" zugewiesen werden. Schließlich bildet Thema die Variable Themenwert, welcher die Instanz "Biotechnologie" zugewiesen wird.
Auf diese Weise wird mittels des Inferenzprotokolls und der Erklärungsregeln folgende Erklärung generiert und als Ausgabegröße über die Ein/Ausgabeeinheit 8 ausgegeben: "Mustermann hat das Dokument doc200 geschrieben. Das Dokument handelt von Biotechnologie. Deshalb hat Mustermann Kenntnisse über Biotechnologie."
In der Inferenzeinheit 7 der Abfrageeinheit 6 sind eine Vielzahl von Regeln implementiert, wobei generell zur Bearbeitung einer Abfrage auch mehrere Regeln abgearbeitet werden können.
Die Generierung von Erklärungen kann prinzipiell derart erfolgen, dass für jede Regel, die in der Inferenzeinheit 7 abgearbeitet wird, eine Erklärung in der Inferenzeinheit 11 generiert wird. Dieser Fall stellt die größtmögliche Detaillierung in der Erzeugung von Erklärungen dar.
Alternativ kann auch für mehrere Regeln, die zur Abarbeitung einer Abfrage benötigt werden, eine einzige Erklärung generiert werden, welche dann einen höheren Abstraktionsgrad aufweist.
Beispiel 2
Ein weiteres Beispiel für die Generierung von Erklärungen ist die Beschreibung eines chemischen Prozesses.'
Für den Fall, dass für jede Regel, d. h. jeden Inferenzschritt , der in der Inferenzeinheit 7 durchgeführt wird, eine separate Erklärung zur Beschreibung des chemischen Prozesses generiert wird, kann für einen dreistufigen chemischen Prozess, der im folgenden Beispiel eine Ausfällungsreaktion ist, folgendes dreistufige Erklärungsschema generiert werden: a) Auflösung der Substanzen AB und CD in Lösung in ihre ionischen Komponenten A+, B- , C- , D+ . b) Bildung einer unlöslichen Substanz AC aus diesen Komponenten.
c) Ausfällung der Substanz AC aus der Lösung als Ausfällungsreaktion.
In F-Logic kann dies beispielsweise wie folgt ausgedrückt wer- den :
// die Substanzen ml : lonicMolecule [cation- >A; anion->B] . m2 : lonicMolecule [cation->D; anion->C] . m3 : lonicMolecule [cation- >A; anion->C] . m3 : InsolubleMolecule .
// die Mixtur mx:Mixture [component->>{ml ,m2 }] .
// Rekombination der Ionen // falls Stoff Ml und Soff M2 in der Lösung und falls M3 (kombiniert aus den Ionen von Ml und M2) ein ionischer -Stoff ist, so' ist auch M3" i ' der ösung enthalten FORALL M, Ml , M2 , M3 , MIC, M1A, M2C, M2A Rule recombination: M [component->>{M3} ] <- MrMixture [component->>{Ml, M2 } ] and Ml : lonicMolecule [cation- >M1C; anion->MlA] and M2 : lonicMolecule [cation- >M2C; anion- >M2A] and M3 : lonicMolecule [cation->M1C; anion->M2A] .
// Definition der Ausfallstoffe FORALL M,C,B,D Rule dropout : M [dropoutf aelltaus ->>C] < - M : Mixture [component- >> { C , B , D } ] and C : InsolubleMolecule and C ! =B and B ! =D .
Die Erklärungen werden parallel dazu generiert.
Durch den Einsatz zusätzlicher Erklärungsregeln kann die vorgenannte mehrstufige Beschreibung bestehend aus den drei Erklärungen zu einer abstrakten Erklärung zusammengefasst werden, nämlich:
"In einer Lösung mit den Substanzen AB und CD fällt die Substanz AC aus . "
In F-Logic kann diese abstrakte Erklärung beispielsweise wie folgt ausgedrückt werden:
FORALL Out,BV,DV,CV Explanation (Out) <- I : Instantiation [rule->dropout ; va- lue@(B)-> BV; value® (D) ->DV; value® (C) ->CV] and Out is „In einer Lösung mit den Stoffen [BV] und [DV] fällt die Substanz [CV] aus".
In einer weiteren Ausgestaltung können Erklärungsregeln dazu eingesetzt werden, um- redundante- Erklärungen -zu vermeiden.. ■ ■
Beispielsweise kann im Bereich der Chemie der Säuregrad zweier Substanzen durch Bestimmung der pH-Werte bestimmt werden, die durch die Mengen der in wässrigen Lösungen gelösten jeweiligen Substanzen berechnet werden. Alternativ kann eine qualitative Bestimmung erfolgen, beispielsweise durch Bestimmung der Anzahl von Sauerstoff-Atomen in den Formeln dieser Substanzen. Beide Berechnungsmethoden können in Form von Erklärungen von der In- ferenzeinheit 11 als Ausgabegrößen zur Beschreibung der Substanzen ausgegeben werden. Mittels zusätzlicher Erklärungsre- geln kann anhand einer Relevanzprüfung nur eine der beiden Erklärungen ausgewählt werden, so dass die Ausgabegrößen keine redundanten Erklärungen mehr aufweisen.
Da die Auswerteeinheit 10 eine Schnittstelle zu externen Daten aufweist, können auch diese externen Daten als definiertes externes Wissen in die Generierung von Erklärungen mit einbezogen werden. Bei dem Ausführungsbeispiel gemäß Figur 1 weist die Auswerteeinheit 10 neben der Inferenzeinheit 11 das Software- Modul 12 auf, mittels dessen wenigstens ein Objektmodell zur Strukturierung von externen Daten generiert wird. Die Funktionsweise der Inferenzeinheit 11 und des Software-Moduls 12 ist dabei analog zur Inferenzeinheit 7 und dem zugeordneten Soft- wäre-Modul 5.
Ein Beispiel für derartige externe Daten sind im Fall der Beschreibung chemischer Prozesse Namen zur Beschreibung von chemischen Substanzen. Falls bei der Durchführung von Abfragen betreffend chemische Prozesse in dem Datenbestand der Speichereinheit 2 chemische Substanzen durch chemische. Formeln gekennzeichnet sind, so könnten ohne Zugriff auf die externen Daten generierte Erklärungen nur diese chemischen Formeln zur Beschreibung :ύnd- Dokumentation -chemischer Prozesseüenthaiten-. < Durch den zusätzlichen Zugriff auf die externen Daten können bei der Formulierung der Erklärungen zur Beschreibung von Substanzen anstelle der chemischen Formeln auch deren Namen verwendet werden. Ein einfaches Beispiel für einen derartigen Namen ist Wasser zur Beschreibung der Substanz H20.
Ein weiteres Beispiel für externe Daten sind Benutzerprofile, welche das Datenverarbeitungssystem 1 nutzt. Die Benutzerprofile sind als Datenfiles vorzugsweise in der Rechnereinheit 4 abgespeichert und werden mit einem in dem Software-Modul 12 gene- rierten Objektmodell strukturiert.
In Abhängigkeit dieser Daten kann mittels Erklärungsregeln in der Inferenzeinheit 11 eine Auswahl von mit weiteren Erklä-
rungsregeln generierten Erklärungen erfolgen. Damit wird erreicht, dass die ausgewählten, über die Ein/Ausgabeeinheit 8 ausgegebenen Erklärungen an die jeweiligen Benutzerprofile an- gepasst sind.
Beispielsweise können so die in der Inferenzeinheit 11 generierten Erklärungen an den Kenntnisstand des jeweiligen Benutzers angepasst sein. Für den Fall, dass mit den Erklärungen chemische Prozesse erklärt werden, können die Erklärungen auf qualitativer Ebene erfolgen, falls es sich bei dem Benutzer um einen Studenten oder Schüler handelt. Ist dagegen der Benutzer beispielsweise ein promovierter Chemiker können die Erklärungen auch quantitativen Berechnungen enthalten.
Figur 3 zeigt eine schematische Darstellung des Verfahrensablaufes im Datenverarbeitungssystem. Zunächst wird im Schritt 300 ein Datenbestand generiert und/oder es erfolgt eine Speicherung 302 des Datenbestandes. Ferner wird in Schritt 304 ein Obj ektmodeii -erzeugt , welches aus einem, deklarativen; System .von Regeln und einer Klassenstruktur besteht. Dabei sind die Daten mit Hilfe des Objektmodells strukturiert. Die Regeln verknüpfen Elemente der Klassenstruktur und/oder Daten miteinander. Über eine Eingabeeinrichtung wird eine Abfrage 306 eingegeben. Die Auswertung 308 der Abfrage erfolgt in einer Inferenzeinheit durch Auswerten der Regeln. Die Ausgabe 312 der Resultate der Auswertung 308 erfolgt über eine Ausgabeeinheit. Während der Auswertung 308 erfolgt in einer Auswerteeinheit, die der Infe- renzeinheit zugeordnet ist, ein Einlesen 316 von Inferenzproto- kollen über Instantiierungen der Regeln, die während der Aus- wertung aufgetreten sind. In Abhängigkeit von den Inferenzpro- tokollen werden in der Auswerteeinheit in Schritt 318 Erklärungen über die Auswertung der Regeln generiert. Über eine Ausga-
beeinheit erfolgt in Schritt 320 die Ausgabe der generierten Erklärungen.
Bezugszeichen
Datenverarbeitungssystem Speichereinheit Server Rechnereinheit Software-Modul Abfrageeinheit Erste Inferenzeinheit Ein-/Ausgabeeinheit SchnittStellenmodul Auswerteeinheit Zweite Inferenzeinheit Software-Modul Datenbestand Speicherung des Datenbestandes Erzeugung eines Objektmodells Abfrage-Eingabe-'. Auswertung der Abfrage Ausgabe der Resultate Einlesen von Inferenzprotokollen Generierung von Erklärungen Ausgabe von Erklärungen
Liste der zitierten Literatur:
J. Angele, G. Lausen: "Ontologies in F-Logic" in S. Staab, R. Studer (Eds.): Handbook on Ontologies in Information Systems. International Handbooks on Information Systems, Springer Ver¬ lag, 2003, Seite 29.