Interstaatliche Hochschule für Technik Buchs NTB, STRTDiskrete Mathematik
Block Informatik«Datum»
Serie 31Prolog: Beschaffung und Installation

Lernaufgabe
 
In den verbleibenden Wochen in diskreter Mathematik werden wir uns jeweils zwei der vier Lektionen mit der Programmier-Sprache Prolog befassen. Für einmal ist die Software dazu nicht auf dem NTB-Server vorkonfiguriert vorhanden, sondern es ist Ihre Aufgabe, Prolog zu beschaffen und lokal auf Ihrem Account unter Windows zu installieren.
 
Das Lernziel dieser Serie ist, dass Sie in der Lage sind, selbstständig eine für Sie unbekannte Software in einer frei verfügbaren Version über das Netz zu suchen, herunterzuladen und mittels einer (wahrscheinlich fremdsprachigen) Anleitung zum Laufen zu bringen.
 
Es gibt viele verschiedene Versionen von Prolog als public domain unter Windows. Die Qualität ist – wie üblich – sehr unterschiedlich und nicht auf den ersten Blick ersichtlich. Der Hauptteil Ihrer Arbeit besteht darin, den Spreu vom Weizen zu trennen (und ein weiteres Lernziel ist es, Ihre Frustrationstoleranz zu erhöhen ;-). Suchen Sie nicht die komplexeste Implementierung. Sie werden wenig brauchen, und auf Spezialitäten wie constraint programming können sie getrost verzichten. Achten Sie aber darauf, dass Ihre Installation keine Einschränkungen in der Benützungsdauer hat. Denn Sie werden bis am Ende des Semesters mit Prolog arbeiten.
 
Damit Sie nicht blind herumsuchen, gebe ich Ihnen einige Hinweise für ein mögliches Vorgehen:
  1. GNU ist eine weltweite, lose Organisation von Informatik-Spezialisten, welche selbstgeschriebene Software einem möglichst grossen Kreis von Benützern unentgeltlich zur Verfügung stellen möchte. GNU-Software ist von Profis für Profis geschrieben und fast immer von überragender Qualität. Die Homepage ist:
     
    gnu.org
     
  2. Switch, die verantwortliche Organisation für das Internet in der Schweiz unterhält eine große Bibliothek von frei verfügbarer, qualitativ guter Software. Vieles davon wurde an Hochschulen oder hochschulnahen Institutionen entwickelt. Die Switch Home-Page führt auf die ftp-site dieser Bibliothek:
     
    mirror.switch.ch
     
  3. Viel Open Source Software findet sich auch auf sourceforge.net.
     
  4. Natürlich können Sie auch mit einer der üblichen Suchmaschinen wie Google nach Prolog suchen. Die Ausbeute dürfte ziemlich groß sein. Denken Sie aber daran, dass Sie hier, im Gegensatz zu 1 und 2, auf ungefilterte Information treffen.
     
Wenn Sie meinen, Prolog erfolgreich installiert zu haben, dann legen Sie folgendes Test-Programm in einem File ab:
   edge(a,b).
   edge(b,c).
   edge(a,c).
   edge(b,d).
   edge(d,e).
Es handelt sich hierbei um eine Menge von Fakten (facts), welche einen gerichteten Grafen beschreiben. Skizzieren Sie den Grafen! Lesen Sie das Programm ein, wahrscheinlich mit der «[filename].» -Anweisung, allenfalls mit der «consult(filename).» -Anweisung. Der Punkt am Ende des Befehls gehört dazu. Dann stellen Sie an das System folgende Frage:
   ?- edge(b,d).
Das «?-» ist der übliche Prolog-Prompt. Wenn Sie keine Frage in dieser Form stellen können, dann ist Ihre Prolog-Version wahrscheinlich für unsere Zwecke ungeeignet.
 
Auf diese Frage, ob es eine Kante von b nach d gibt, sollten Sie die Antwort «YES» erhalten. Geben Sie weiter ein:
   ?- edge(c,d).
Da keine Kante von c nach d führt, sollte die Antwort «NO» lauten. Ergänzen Sie nun Ihr Programm um zwei Zeilen:
   path(X,Y) :- edge(X,Y).
   path(X,Y) :- edge(X,P), path(P,Y).
Dies sind zwei Regeln (rules), die so zu lesen sind: Ein Pfad führt von X nach Y, wenn es eine Kante von X nach Y gibt, oder wenn es eine Kante von X zu einem Zwischenpunkt P gibt und von dort aus einen (kürzeren) Pfad nach Y. Stellen Sie nun diese beiden Fragen:
   ?- path(a,e).
   ?- path(c,e).
Auf erstere sollten Sie die Antwort «YES» erhalten, auf zweitere die Antwort «NO». Noch eine letzte Frage:
   ?- path(U,V).
U und V sind Großbuchstaben und damit Variablen in Prolog. Wenn Sie jede Antwort mit «;» und <CR> quittieren, sollten Sie der Reihe nach – mit Mehrfachnennungen – alle Pfade im Grafen erhalten. Auch hier gilt: Wenn Ihre Prolog-Version nicht so funktioniert, dann ist sie wahrscheinlich für unsere Zwecke ungeeignet; suchen und installieren Sie in dem Fall ein anderes Prolog-System.
 
Konnten Sie diese sample session nachvollziehen? Ja? Gratuliere, Sie haben Prolog erfolgreich installiert und gestartet! Es ist nicht nötig, dass Sie die Dokumentation lesen.