4Wissensrepräsentation in Pure Prolog
Lösungen
4.1Verkehrsmittel
Repräsentieren Sie die folgende "Welt" in Prolog:
- Öffentliche Verkehrsmittel: Bus, Zug, Flugzeug, Schiff.
Private Verkehrsmittel: Velo, Motorrad, Auto. - Fahrzeuge: Velo, Motorrad, Auto, Bus.
Motorfahrzeuge: haben einen Motor. - Velo: langsam, umweltfreundlich.
- Auto: schnell, gefährlich, hat Benzinmotor.
- Bus: relativ schnell, hat Benzinmotor.
- Zug: schnell, hat Elektromotor.
- Flugzeug: sehr schnell, hat Benzinmotor.
- Schiff: langsam, hat Dieselmotor.
- Verkehrsmittel mit Benzin- und Dieselmotor sind umweltbelastend.
Verkehrsmittel mit Elektromotor sind umweltfreundlich.
Öffentliche Verkehrsmittel sind sicher.
Ergänzen Sie diese "Wissensbank", sodass die folgenden Fragen "richtig" und "vollständig" beantwortet werden:
- Welche Verkehrsmittel sind schnell, welche umweltfreundlich, welche sicher ?
- Ist das Flugzeug schnell? Wie schnell?
- Welche Fahrzeuge haben einen Motor?
Kann Ihre Wissensbank die Frage beantworten:
- "Welche Eigenschaften hat das Auto?" ?
Wenn nein, wie müsste sie modifiziert werden, damit es möglich ist?
Lösung 4.1
4.2Probleme mit Isolatoren
Formulieren Sie das folgende Wissen in Prolog:
Elektrische Leitungen werden an Masten mittels Isolatoren befestigt. Dabei kann es zu Kurzschluss kommen in Form eines Überschlags, eines Durchschlags oder eines Kriech-stroms. Ein Überschlag durch die Luft entsteht bei grosser Überspannung, z.B. durch Blitzschlag. Ein Durchschlag durch den Isolator entsteht, wenn das Isoliermaterial einen Fehler oder Riss hat. Dabei wird der Isolator zerstört. Ein Kriechstrom entlang der Oberfläche entsteht, wenn sie feucht und verschmutzt ist. Kunstharze, insbesondere Phenoplaste, neigen zu Kriechstrombildung. Wenn sich Kriechwege gebildet haben, müssen die Isolatoren ersetzt werden.
Es sollen folgende Abfragen möglich sein:
- Welche Arten von Kurzschluss gibt es?
- Was sind die möglichen Ursachen und Folgen?
Lösung 4.2
4.3Netzwerk von Widerständen (Wissensrepräsentation durch Terme)
Ein elektrisches Netzwerk, in dem Widerstände nur seriell oder parallel geschaltet werden, kann durch einen zusammengesetzten Term beschrieben werden. Bsp.:

Fig. 4.1: Ein Netzwerk mit Widerständen
Die Widerstände seien durch Fakten der Form resistor( R, V) definiert, wobei V der Wert des Widerstandes R in Ohm ist, z.B. resistor( r1, 5). Definieren Sie das Prädikat
res( N, R)
/* R ist der Widerstand des Netzwerkes N. */
Lösung 4.3
4.4Digitale Schaltungen (Wissensrepräsentation durch Klauseln)
Repräsentieren Sie die folgende Schaltung "adder1" in Prolog:

Fig. 4.2: Die digitale Schaltung "Adder1"
Hinweis:
adder1( In1, In2, Cin, Out, Cout) :-
xor( In1, In2, A),
xor( A, Cin, Out),
... .
Überzeugen Sie sich durch Simulation, dass es ein 1-Bit-Volladdierer ist, d.h.
Out = (In1 + In2 + Cin) mod 2,
Cout = (In1 + In2 + Cin) div 2.
Implementieren Sie damit einen N-Bit-Volladdierer:
adder( X, Y, Z, OF).
X, Y, Z sind Listen der N Bits beginnend mit dem "most significant bit", Z is die Summe von X und Y, und OF ist der Overflow.