Aufruf Prolog-Coding aus Java

algorith

Grünschnabel
Hallo zusammen,

ich brauche mal Eure Hilfe (weshalb schreibt man hier ? :p )
Leider bin ich noch Anfänger in Java und Prolog...
Ich bin zwar in der Lage in Java ein paar einfache Methoden innerhalb einer Klasse zu codieren und in Prolog eine kleine Wissensbasis zu schreiben.

Nun bin ich an der Stelle, wo ich für die Firma meine Java-Kenntnisse ausbauen muss,
für mein Fernstudium die Prolog-Kenntnisse :rolleyes: Kampf an vielen Fronten...

Dabei kam dann der Gedanke, wie verbindet man eigentlich beides?
Ich hab zwar bei :google: geschaut, bin aber nur auf zwei Codings gestoßen, die leider schon recht komplex waren...

1.) Frage wie stelle ich aus einer Java-Klasse heraus eine Verbindung zu einer *.pl Datei her?
2.) Wo / Wie eignet man sich sowas an? Ich habe zwar ein paar Javabücher, aber darin ist sowas nicht beschrieben... In welchen Büchern findet man diesen "Schnittstellen" Stoff.


Vielen Dank für Eure Hilfe.

Gruß,
Oliver
 
Was ist eine "Verbindung". Eine pl-Datei ist eine Text-Datei. Diese kann als solche geöffnet, gelesen und verändert werden. Willst du aber ein pl-Programm aufrufen, so muss du entweder

a) einen Perl-Interpreter von Java aus aufrufen oder
b) selber einen schreiben (in Java)
c) mittels JNI zu Perl verbinden.
 
Morgähn,

Was ist eine "Verbindung".
hab mich schlecht ausgedrückt. :-(

Ich würde gerne ein Prolog-Programm ausführen, d.h. bei einer Prolog-Sitzung stelle ich ja eine "Anfrage" die dann vom Compiler durch Auswertung der Wissensbasis beantwortet wird.
Ich hätte gerne eine Javaklasse die ich mit Parameterübergabe ausführe und dann im "Hintergrund" eine Anfrage mit den Parametern an Prolog übermittelt. Das Ergebnis wird dann im Java ausgegeben bzw. kann in Java weiterverarbeitet werden.

Danke.

Gruß,
Oliver
 
Schau dir mal die Klasse 'Runtime' von Java an. Damit kannst du Prolog direkt aufrufen. Dies liefert dir einen Process der dir den OutputStream deines Prolog-Programmes liefert. Oder du läßt prolog das Ergebnis in eine Datei speichern und öffnest diese nach Beendigung des Prozesses.
 
Zurück