1) Was genau bedeuten folgende Wörter?
(a) "Soundness" (Ich hab erst gedacht "korrekt". Dann kam aber "Correctness".)
Die beiden komplementären Begriffe sind
sound (korrekt) und
complete (vollständig). Eine Theorie o.ä. ist
sound, wenn alles, was sie beschreibt, korrekt beschrieben ist. Sie ist
complete, wenn sie die Domäne vollständig beschreibt.
Zur Illustration:
Für die Domäne der Addition der natürlichen Zahlen ist die Theorie
1+1 = 2
zwar
sound - was sie beschreibt ist richtig - aber sie ist eindeutig nicht
complete. Die Theorie
1+1 = 2
1+2 = 4
1+n = 2+(n-1)
ist zwar
complete - sie beschreibt die vollständige Domäne - aber sie ist nicht
sound.
(b) "Reasoning"
Folgern. D.h. in WBS, aus bestehendem Wissen und Regeln einer Wissensdatenbank neues Wissen zu folgern.
2) Warum brauchen wir die "Metasprache" ?
Wenn du eine Programmiersprache implementierst, musst du das in einer Sprache tun. Interessanterweise implementiert man die meisten Programmiersprachen in sich selbst - d.h. ich verwende Prolog, um einen Prolog-Interpreter zu schreiben. Das eine ist die zu implementierende Sprache, die "Objekt-Sprache", das andere ist die Sprache mit der wir implementieren, die "Meta-Sprache". Wir benutzen in WBS viele Features der "Meta-Sprache" direkt in der "Objekt-Sprache" um uns auf spezielle Erweiterungen zu konzentrieren. Daher "brauchen" wir die Meta-Sprache - sonst müssten wir ja jeden Scheiß nachimplementieren, was uns etwas von der Hauptproblematik ablenken würde.
Das gibts übrigens recht schön im Abelsson&Sussman unter dem Titel "Metacircular Evaluator".
3) Was genau ist ein "Frame Axiom".
Zitat aus dem Poole, S. 293: "frame axioms […] specify what remains unchanged during an action". Sie kommen im Situation Calculus vor und sollten in diesem Kontext verstanden werden. Notfalls den betreffenden Teil nochmals lesen.
3) Wer erklärt mir "9.1.5". Check ich nicht so richtig. (Making Assumptions).
Ich habe die Folien nicht, daher kann ich dir da nicht helfen.
Und aus dem anderen Posting:
Mir ist auch nicht so recht der Unterschied zwischen Prolog & Datalog klar. Kann mir den einer erklären?
Ganz einfach gesagt: Datalog ist weniger mächtig.
So spontan hab ich in der Definition von Poole folgende Unterschiede gefunden:
- Nur nullstellige Funktionssymbole, d.h. keine komplexe Terme
- Keine Negation
Diese Einschränkungen machen Datalog entscheidbar (S. 176 - in dem Schaubild fällt Prolog unter "Horn clauses").