SWI-Prolog einbinden ...
-
Hallo zusammen, mit folgendem C# Beispiel, wollte ich SWI-Prolog in einem C# Programm einbinden. Der Quelltext lies sich compilieren:
using System;
using SbsSW.SwiPlCs;namespace PrologTest3
{
class Program
{
static void Main(string[] args)
{
Environment.SetEnvironmentVariable("SWI_HOME_DIR", @"C:\Program Files\swipl3\bin"); //@"the_PATH_to_boot32.prc"); // or boot64.prc
if (!PlEngine.IsInitialized)
{
String[] param = { "-q" }; // suppressing informational and banner messages
PlEngine.Initialize(param);
PlQuery.PlCall("assert(father(martin, inka))");
PlQuery.PlCall("assert(father(uwe, gloria))");
PlQuery.PlCall("assert(father(uwe, melanie))");
PlQuery.PlCall("assert(father(uwe, ayala))");
using (var q = new PlQuery("father(P, C), atomic_list_concat([P,' is_father_of ',C], L)"))
{
foreach (PlQueryVariables v in q.SolutionVariables)
Console.WriteLine(v["L"].ToString());Console.WriteLine("all children from uwe:");
q.Variables["P"].Unify("uwe");
foreach (PlQueryVariables v in q.SolutionVariables)
Console.WriteLine(v["C"].ToString());
}
PlEngine.PlCleanup();
Console.WriteLine("finshed!");
}
}
}
}Bei: PlEngine.Initialize(param); stürzte C# ab, mit einer: FileNotFoundExeption. Allerdings weiss ich nicht, nach welcher Datei C# gesucht hat. Hattet Ihr schon das gleiche Problem ? Ob ich im richtigen Forum bin, weiss ich nicht.
-
Nochmals: Environment.SetEnvironmentVariable("SWI_HOME_DIR", @"C:\Program Files\swipl3\bin");
Mein SWI-Prolog befindet sich im angegebenen Pfad: @"C:\Program Files\swipl3\bin". Was für eine Datei wird benötigt ?
-
Oh, //@"the_PATH_to_boot32.prc"); // or boot64.prc , habe ich nicht gefunden ...