Chamar predicado Prolog em webservice c#

ThatsMe

Portugal@Home Member
Viva.

Como é visto no título, preciso de chamar um predicado de Prolog num webservice feito em C#... Após pesquisar no Google vi que existe o prolog.net, por exemplo, em que isso é possivel ser feito mas alguém tem alguma sugestão de uma forma de o fazer?

Thanks in advance.
 
Viva.

Como é visto no título, preciso de chamar um predicado de Prolog num webservice feito em C#... Após pesquisar no Google vi que existe o prolog.net, por exemplo, em que isso é possivel ser feito mas alguém tem alguma sugestão de uma forma de o fazer?

Thanks in advance.

ThatsMe já encontras-te uma solução? É que estou a tentar fazer a mesma coisa e estou com dificuldades :/

Eu tenho um código para fazer isso mas para uma aplicação c# desktop. Mas quando tento usar nos webservices ele rebenta ao executar com o erro:
WebDev.WebServer40.exe deixou de funcionar.

Agradeço qualquer ajuda,
Obrigado.
 
ThatsMe já encontras-te uma solução? É que estou a tentar fazer a mesma coisa e estou com dificuldades :/

Eu tenho um código para fazer isso mas para uma aplicação c# desktop. Mas quando tento usar nos webservices ele rebenta ao executar com o erro:
WebDev.WebServer40.exe deixou de funcionar.

Agradeço qualquer ajuda,
Obrigado.

Viva.

Consegui fazer de uma forma que, sinceramente, mal sei explicar. Perdi duas semanas nisto mas lá consegui resolver.

Deixo-te o código de um método que está a usar Prolog para tirares o exemplo:

Código:
using System;using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using System.Web.Hosting;

public class ServiceIA : IServiceIA
{
    //Valida username e password
    public string PrologValidaUsername(string nome, string pw)
    {
        string response = "";
        string path = HostingEnvironment.ApplicationPhysicalPath;
        Environment.CurrentDirectory = path + @"IA_Code\";//pasta com ficheiros .pl
         try
            {
                
                Process myProcess = new Process();
                myProcess.StartInfo.WorkingDirectory = path + @"IA_Code\";


                myProcess.StartInfo.FileName = path + @"Prolog\PRO386W.EXE"; //executavel PROLOG
                myProcess.StartInfo.Arguments = @"/V1 consult('executavel.pl'),login('" + nome +"','"+ pw + "')."; //chamada ao predicado
                myProcess.Start();
             
                myProcess.WaitForExit();
             
                //Read the file as one string.
                System.IO.StreamReader myFile = new System.IO.StreamReader(path + @"IA_Code\output.txt");
                response = myFile.ReadToEnd();
          
                myFile.Close();
            
            }
            catch(Exception ex)
            {
                response = "Erro: ";
                response += ex.Message;
            }


         return response;
    }
 
Back
Topo