22.04.2015 Aufrufe

eTutor XQuery und Datalog - Data & Knowledge Engineering

eTutor XQuery und Datalog - Data & Knowledge Engineering

eTutor XQuery und Datalog - Data & Knowledge Engineering

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

18 Kapitel 3. Lösungsansatz<br />

<strong><strong>Data</strong>log</strong>-Prozessor liefert in diesem Fall die beiden möglichen Modelle, die in der<br />

Abbildung mit (a) <strong>und</strong> (b) gekennzeichnet werden.<br />

Nicht stratifizierbare Regeln müssen allerdings nicht unbedingt dazu führen, dass<br />

sich die Lösung aus mehr als einem Modell zusammensetzt. Ebenso wie bei<br />

inkonsistenten Regeln ist es auch möglich, dass kein einziges Modell gültig ist. In<br />

jedem Fall wird der Benutzer darauf hingewiesen, dass ein Fehler in der<br />

Formulierung der Regeln vorliegt, der mit der Stratifizierung zusammenhängen<br />

könnte. In Abbildung 3.7 wird ein Beispiel für nicht stratifizierbare Regeln<br />

gezeigt, bei dem der eingesetzte <strong><strong>Data</strong>log</strong>-Prozessor im Gegensatz zum vorigen<br />

Beispiel kein einziges konsistentes Modell liefert. Der Unterschied liegt hier<br />

lediglich darin, dass eine der negativen Kanten im Zyklus entfernt wurde.<br />

person(max).<br />

ledig(X) :- not verheiratet(X), person(X).<br />

verheiratet(X) :- not ledig(X), person(X).<br />

verheiratet(max).<br />

ledig(max).<br />

(a)<br />

(b)<br />

Abbildung 3.6: Nicht stratifizierbare Regeln, kein eindeutiges Modell<br />

person(max).<br />

ledig(X) :- verheiratet(X), person(X).<br />

verheiratet(X) :- not ledig(X), person(X).<br />

Abbildung 3.7: Nicht stratifizierbare Regeln, inkonsistentes Modell<br />

3.1.3. Feedback<br />

Für die Präsentation von Analyse- <strong>und</strong> Bewertungsergebnissen werden die<br />

Klassen im Java-Package etutor.modules.datalog.report eingesetzt. Die zentrale<br />

Klasse ist hier etutor.modules.datalog.report.<strong><strong>Data</strong>log</strong>Report, in der Methoden<br />

definiert sind, aus deren Ergebnissen sich die aufbereiteten Analyse- <strong>und</strong><br />

Bewertungsergebnisse zusammensetzen. Das Ausmaß gewünschter Diagnosetiefe<br />

wird über einen Parameter bestimmt. Je höher dieses Diagnose-Level innerhalb<br />

des zulässigen Wertebereiches gesetzt wird, desto mehr Informationen über die<br />

Analyseergebnisse werden an den Benutzer zurückgeliefert. Auf der niedrigsten<br />

Stufe etwa wird nur das Auswertungsergebnis angezeigt, bzw. gegebenenfalls

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!