Dieser Hinweis ist aus der Übung im WS 1994/95 oder aus einer noch älteren Übung oder war nie Teil einer Übung und ist daher möglicherweise für spätere Übungen nicht gültig!
Konsistenzprüfung sog. integrity constraints Bei einer Datenbasis wie in Beispiel 2 ist es aufgrund der Unzahl der repräsentierten Daten leicht möglich, daß Daten fehlerhaft eingegeben wurden (z.B. Tippfehler). So ist etwa josef_II ein anderer Name als joseph_II. Um derartige Fehler möglichst auszuschließen, kann man Zusicherungen formulieren, wie etwa: :/- kind_von(Kind, Kind). % Niemand ist Kind von sich selbst :/- männlich(Hermaphrodit), weiblich(Hermaphrodit). % Niemand ist Mann und Frau zugleich :/- dif(VaterA, VaterB), vater_von(VaterA, Kind), vater_von(VaterB, Kind). % Niemand hat zwei Väter Kleiner Vorgriff (wird noch alles detailliert besprochen): Um Fehler wie josef_II zu entdecken, verfahre man wie folgt. Man definiere ein Prädikat person/1 (oder is_person/1) auf zweierlei Arten. Einerseits über männlich und weiblich, andererseits über kind_von/2 und verheiratet/2. person(Mann) :- % Eine Person männlich(Mann).% ist männlich person(Frau) :- % ODER : Eine Person weiblich(Frau).% ist weiblich % und jetzt mittels der anderen Prädikat % ebenfalls angeben, was eine Person ist. beschriebeneperson(Kind) :- kind_von(Kind,_). % Kinder sind Personen beschriebeneperson(Elternteil) :- kind_von(_, Elternteil). % Eltern auch beschriebeneperson(Gatte) :- verheiratet(Gatte, _). % Gatten ebenso beschriebeneperson(Gattin) :- verheiratet(_, Gattin). % udn Gattinnen :/- beschriebeneperson(Person), \+ person(Person). % Es ist nicht ableitbar: % Jemand kommt zwar in einer Relation über % Personen vor (in kind_von etc.), bleibt % aber in männlich und weiblich unerwähnt. In der Datenbasis gibt es also zwei Arten Personen zu beschreiben: Für jede Person, die in einer Relation (außer männlich/1 und weiblich/1) vorkommt, sollte man auch das Geschlecht angegeben haben. BITTE: das \+ (,,not``) muß mit ALLERgrößter Vorsicht verwendet werden. Hier ist es angebracht, aber in den Beispielen über Länder ist es nicht angebracht! Siehe Kapitel 6. Wenn Sie das \+ verwenden, dann nur in negativen Zusicherungen der obigen Form! Gute Verwendung: :/- Ziel, \+ AnderesZiel. Falsche Verwendung: :/- Ziel, \+ AnderesZiel, NocheinZiel. Zurück: \hinweis{init}