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 ...


Log in to reply