TUD Logo

 Search 
TUD Home » ... » Institutes » Institute of Artificial Intelligence » Knowledge Representation and Reasoning » Teaching

Faculty of Computer Science

Teaching  ·  Winter Semester 2005/6
Logik I

Hinweise zur Programmierung in Prolog

SWI-Prolog

Arbeiten mit SWI-Prolog im FRZ

Es stehen sowohl Sicstus-Prolog (UNIX-Rechner) als auch SWI-Prolog (PCs) zur Verfügung, wobei SWI-Prolog den Vorteil der freien Verfügbarkeit bietet (d.h., es gibt keine Lizensbeschränkungen, die eine Verwendung z.B. auf dem eigenen PC verbieten). Die Arbeit mit den beiden Systemen unterscheidet sich unwesentlich. Hier ist eine kurze Einführung, die eine Nutzung ohne größere Vorkenntnisse ermöglichen soll.

Vorgehensweise

  1. Einloggen an einem Rechner des FRZ
  2. Verwende einen Texteditor um die Datei zu erzeugen, die das Prolog-Programm (die Fakten und Regeln) enhält, z.B.:
    /* mutter(M,K) - M ist Mutter von K */
    mutter(berta,guna).      
    mutter(berta,hugo).      
    mutter(dora,ina).   
    mutter(dora,jane).       
    mutter(guna,mia).        
    mutter(guna,olga).
    
    /* oma(O,E)  -   O ist Oma des Enkels E */
    oma(O,E):- mutter(O,K), mutter(K,E).
    
    (Versuche diese Datei in den Texteditor zu kopieren und zum Testen zu verwenden!)
  3. Speichere die Datei mit der Extension .pl ab, z.B. mit dem Filenamen verwand.pl.
  4. Starte den Prolog Interpreter.
    • Sictus-Prolog mit dem Befehl sicstus oder dem Befehl prolog.
    • SWI-Prolog (unter Windows NT) mit dem Programm-Menue SWI-Prolog.
    > sicstus  
    SICStus 3  #5: Fri Nov 1 15:49:55 MET 1996
    | ?- _
    
  5. Um Anfragen an die Datenbasis stellen zu können muß diese in den Interpreter eingelesen werden. Das geschieht z.B. mit | ?- ['/home/hans/verwand.pl']. bzw. | ?- ['C:/users/c11/verwand.pl']. Nicht den Punkt am Ende des Befehls vergessen!
  6. Da .pl als Standardextension angenommen wird, kann diese weggelassen werden, z.B., | ?- ['C:/users/c11/verwand'].
  7. Anfragen an das geladene Programm stellen, z.B.
    | ?- mutter(M,K).
      M = berta   
      K = guna ? ;
      
      M = berta
      K = hugo ?  <Enter>
         
      yes
        | ?- _
    
    Auch hier nicht den Punkt am Ende der Anfrage vergessen!
  8. Wird auf das Fragezeichen nach dem Ergebnis mit einem ; reagiert, so wird nach weiteren Lösungen gesucht.
  9. Die Arbeit mit Prolog wird mit | ?- halt. beendet.

Weitere Links zu Prolog

Last update: Mon, 28 Aug 2006 12:46:25
Author: Bertram Fronhöfer