Jump to content

Alguien Sabe Programar en Prolog


Recommended Posts

Estimados.

 

Necesito una pequeña ayuda si alguien algun programa de sistema de expertos que este hecho en prolog.

solo necesito saber la sintaxsis de como va estructurado para hacer el programa que deseo hacer.

 

O si alguien tiene conocimientos, para ir preguntandole. seria genial

 

gracias.

Link to comment
Share on other sites

  • 2 weeks later...

:S Eh investigado y investigado y aun no puedo realizar lo que quiero hacer...

 

 

Estoy tratando de hacer un programa de SE en prolog que a travez de unas preguntas que me determine tipo de transtorno psicologico que tiene una persona.

 

El tema es el siguiente. tengo las preguntas, pero lo que no e podido hacer, es como declaras las preguntas si lo hago como base de hechos o como base de conocimientos.

 

ademas nose como decirle al sistema que me haga la pregunta por pantalla y que el encuestado responda y se vayan almacenando las respuestas y de ahi determinar el nivel de trastorno...

 

:S

 

porfa ayuda.

Link to comment
Share on other sites

Wn trabajar en prolog es la raja, y aparte muy facil... lo invito a visitar

www.google.cl

saludos.

 

 

Estimado. e visitado google miles de veces. y realmente no le e encontrado lo facil a este programa.

buscando y buscando e avanzado algo con este lenguaje. pero sin embargo cada vez que avanzo quedo

pegado en algo nuevo..

 

Si supiera programar en prolog o tuviese nociones les prometo que no les pediria ayuda. en verdad.

 

Pero si alguien tiene la intención de brindarme un poco de ayuda en este tema se la agradecería.

 

 

 

Les explico brevemente...

Tengo que hacer un programa en prolog que te determine el trastorno de personalidad de una persona.

a travez de preguntas que ya estan formuladas... Las respuestas se basan en un si o no, y de acuerdo a la respuesta

te calcula el nivel de trastorno..

 

He avanzado. en eso, pero aun sigo sin poder comprobar si lo que tengo esta mal..

 


:- dynamic inclina/3, esPersona/1.

% ANALISIS DE PREGUNTAS. PARA DETERMINAR
% EL TRANSTORNO DE PERSONALIDAD

% /***** preguntas Narcicista *****/

esPregunta('Nadie debe frustrar mi búsqueda de placer y status', 'narcicista').
esPregunta('Yo soy más especial que lo demás', 'narcicista').
esPregunta('Yo solamente quiero que la gente diga lo especial que soy', 'narcicista').
esPregunta('Yo debo de admirarme', 'narcicista').
esPregunta('Una vez que deseo algo, debo tenerlo', 'narcicista').

% /***** preguntas Histrionico *****/

esPregunta('Las apariencias son muy importantes', 'histrionico').
esPregunta('La gente juzga por las apariencias externas', 'histrionico').
esPregunta('Yo debo tener la atención de la gente importante para mí', 'histrionico').
esPregunta('Mi vida nunca debe frustrarme', 'histrionico').
esPregunta('Yo debo tener siempre lo que quiero', 'histrionico').

% /***** preguntas Antisocial *****/

esPregunta('Las normas de otros son malas', 'antisocial').
esPregunta('Solo los tontos siguen las normas', 'antisocial').
esPregunta('Las normas tienen que eliminarse', 'antisocial').
esPregunta('Tiene que ser ahora, sino me frustraré', 'antisocial').
esPregunta('Yo soy muy listo en casi todo', 'antisocial').

% /***** preguntas Paranoico *****/

esPregunta('La gente tiene intención de dañarme', 'paranoico').
esPregunta('Si confío en la gente, tendrán ventaja sobre mi', 'paranoico').
esPregunta('La gente intenta fastidiarme o irritarme', 'paranoico').
esPregunta('Yo no estoy mal, ellos están mal', 'paranoico').
esPregunta('Hay que estar siempre en guardia, preparado para lo peor', 'paranoico').



% *******************************
esRespuesta('si').
esRespuesta('no').



%  /*******  Reglas para preguntas   ********/

preguntar(Persona, Caract, Resp):-
               esPregunta(Pregunta, Caract),
                   string_concat(Persona,' ¿',A),
                   string_concat(A,Pregunta,B),
                   mostrarPregunta(B, Resp),
                   esRespuesta(Resp),
                   !.

preguntar(Persona, Caract, Resp):-
                   preguntar(Persona, Caract, Resp),!.

seInclina(Persona, Caract, Resp):-
                   inclina(Persona,Caract, Resp),!.

seInclina(Persona, Caract, Resp):-
                   preguntar(Persona,Caract,Resp),
                   assert(inclina(Persona,Caract,Resp)),!.

/*******************************************/


%  PERSONALIDAD NARCICISTA %

esNarcicista(Persona,'PERSONALIDAD NARCICISTA'):-
                 seInclina(Persona,'narcicista',Resp),Resp='si',
         seInclina(Persona,'narcicista',Resp1),Resp1='si',
         seInclina(Persona,'narcicista',Resp2),Resp2='si',
         seInclina(Persona,'narcicista',Resp3),Resp3='si',
         seInclina(Persona,'narcicista',Resp4),Resp4='si',
                 !.


esHistrionico(Persona,'PERSONALIDAD HISTRIONICA'):-
                 seInclina(Persona,'histrionico',Resp),Resp='si',
         seInclina(Persona,'histrionico',Resp1),Resp1='si',
         seInclina(Persona,'histrionico',Resp2),Resp2='si',
         seInclina(Persona,'histrionico',Resp3),Resp3='si',
         seInclina(Persona,'histrionico',Resp4),Resp4='si',
                 !.

esAntisocial(Persona,'PERSONALIDAD ANTISOCIAL'):-
                 seInclina(Persona,'antisocial',Resp),Resp='si',
         seInclina(Persona,'antisocial',Resp1),Resp1='si',
         seInclina(Persona,'antisocial',Resp2),Resp2='si',
         seInclina(Persona,'antisocial',Resp3),Resp3='si',
         seInclina(Persona,'antisocial',Resp4),Resp4='si',
                 !.

esParanoico(Persona,'PERSONALIDAD PARANOICA'):-
                 seInclina(Persona,'paranoico',Resp),Resp='si',
         seInclina(Persona,'paranoico',Resp1),Resp1='si',
         seInclina(Persona,'paranoico',Resp2),Resp2='si',
         seInclina(Persona,'paranoico',Resp3),Resp3='si',
         seInclina(Persona,'paranoico',Resp4),Resp4='si',
                 !.



/*******************************************************************************/
/************************    TIPO DE ENFERMEDAD   *******************************/
/*******************************************************************************/

esPerfil(Persona,'PERSONALIDAD NARCICISTA'):-
                esNarcicista(Persona,'PERSONALIDAD NARCICISTA'),
                !.

esPerfil(Persona,'PERSONALIDAD HISTRIONICA'):-
                esHistrionico(Persona,'PERSONALIDAD HISTRIONICA'),
                !.

esPerfil(Persona,'PERSONALIDAD ANTISOCIAL'):-
                esAntisocial(Persona,'PERSONALIDAD ANTISOCIAL'),
                !.

esPerfil(Persona,'PERSONALIDAD PARANOICO'):-
                esParanoico(Persona,'PERSONALIDAD PARANOICA'),
                !.




 

Esto lo saque en base a unos ejemplos que encontre en internet...

 

GRacias.

 

 

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...