Práctica 8 - Prolog

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 3

UNIVERSIDAD DEL CAUCA -

FACULTAD DE INGENIERIA ELECTRONICA Y TELECOMUNICACIONES


PROGRAMA DE INGENIERIA DE SISTEMAS
CURSO DE LABORATORIO DE ESTRUCTURAS DE LENGUAJES: GRUPO B


Práctica 8:

Esta práctica tiene como finalidad adquirir los fundamentos básicos sobre la programación lógica, mediante el uso
del lenguaje de programación Prolog. Cabe recordar que la programación lógica involucra el uso de hechos y reglas.
Así como también la construcción de deducciones para procesar consultas.

Prolog: Es un lenguaje de programación clásicos que permite la representación del conocimiento de problemas
específicos de la inteligencia artificial. Prolog es un lenguaje de programación lógica que hace parte de los lenguajes
de programación declarativos, los cuales permiten representar un dominio especifico mediante situaciones (hechos
y reglas) y objetivos (consultas) y el intérprete de este lenguaje será el que brinde la solución.

Herramienta y tutorial:
SWI Prolog:
https://www.swi-prolog.org/
Compilador de Prolog online:
https://swish.swi-prolog.org/
Tutorial de SWISH Prolog online:
https://swish.swi-prolog.org/p/Tutorial%20de%20prolog.swinb

Elementos claves de lenguaje Prolog:


Comentarios: Se crean mediante el uso del símbolo de porcentaje (%), al inicio de cada línea.
Ejemplo: % esto es un comentario.

• Variables: también conocidas como variables lógicas. Estas están podrán estar conformadas por cadenas de
texto que pueden incluir letras, números y el símbolo_.
Ejemplo: V, Variable, Variable1, _Variable1, _variable, _101
Nota: Se puede declarar una variable solo con el símbolo “_” y a estas se les conoce como anónimas.

• Hechos, Predicados, Reglas y Consultas:


Los hechos son datos o piezas básicas de información que representan propiedades o relaciones entre los
objetos. Los hechos son conocidos como aseveraciones, es decir una formulación simbólica que puede ser
perceptible u observable en un determinado dominio. Los hechos pueden verse como una formula atómica.
Los hechos pueden ser de propiedad y de relación:

De propiedad:
lenguaje(prolog).
lenguaje(java).
lenguaje(python).
lenguaje(lisp).

De Relación:
pertenceParadigma(java,imperativo).
pertenceParadigma(python,imperativo).
pertenceParadigma(java,'orientado objetos').
pertenceParadigma(python,'orientado objetos').
pertenceParadigma(prolog,declarativo).
UNIVERSIDAD DEL CAUCA -
FACULTAD DE INGENIERIA ELECTRONICA Y TELECOMUNICACIONES
PROGRAMA DE INGENIERIA DE SISTEMAS
CURSO DE LABORATORIO DE ESTRUCTURAS DE LENGUAJES: GRUPO B


pertenceParadigma(lips,funcional).
pertenceParadigma(scheme,funcional).
pertenceParadigma(python,funcional).

Los predicados son los elementos ejecutables en Prolog, los cuales pueden tener resultados exitosos o de fallo
tras realizar la su ejecución. Los resultados pueden tener una solución falsa/verdadera, o es posible que se
tengan varios resultados para una variable. Al nombre de una relación o hechos.
Ejemplos:

1. ?- lenguaje(prolog).
true.
2. ?- lenguaje(word).
false.
3. ?- lenguaje(X).
X = prolog ;
X = java ;
X = python ;
X = Lisp;
X = scheme.
4. ?- pertenceParadigma(java,X).
X = imperativo ;
X = 'orientado objetos'.

Una regla es una conclusión que sirve para representar conocimiento que en lenguaje natural se expresa
mediante una sentencia condicional.
Son lenguajes funcionales exclusivos, solo aquellos que no estén involucrados en otros tipos de paradigmas
de programación. La estructura de una regla tiene la siguiente estructura:
hecho :- hecho, …, hecho
Ejemplo:
funcionalExclusivo(X):- pertenceParadigma(X,funcional),
not(pertenceParadigma(X,imperativo)),
not(pertenceParadigma(X,'orientado objetos')).

Las preguntas, son medios mediante los cuales se puede extraer la información de una base de conocimiento o
deducir información.

?- funcionalExclusivo(X).
X = lips ;
X = scheme ;
false.

Actividad
Crear la siguiente base de conocimiento (KB). Tenga presente que las KB son una evolución lógica de los sistemas
de bases de datos tradicionales o relacionales, las cuales tiene como propósito suministrar información a las
aplicaciones a través de un conjunto de hechos y reglas respecto a un universo del discurso o dominio de la
aplicación.
UNIVERSIDAD DEL CAUCA -
FACULTAD DE INGENIERIA ELECTRONICA Y TELECOMUNICACIONES
PROGRAMA DE INGENIERIA DE SISTEMAS
CURSO DE LABORATORIO DE ESTRUCTURAS DE LENGUAJES: GRUPO B

Hechos:

persona(juan,masculino).
persona(pedro,masculino).
persona(antonio,masculino).
persona(maría,femenino).
mujer(laura,femenino).

medico(juan).
especialidad(juan,cardiologia).
paciente(pedro).
paciente(antonio).
paciente(maria).
paciente(laura).

consulta(pedro,cardiologia).
consulta(maria,cardiologia).
consulta(antonio,cardiologia).
consulta(laura,cardiologia).

animal(ranger,perro).
animal(lupito,gato).

mascota(lupito,laura).
mascota(ranger,juan).

Consultas:
1. ¿Cuáles son las personas de sexo femenino?
2. ¿Qué especialidad médica tiene Juan?
3. ¿Cuál es la mascota de Laura?
4. ¿Qué pacientes consultan por cardiología?

Reglas:
1. Determinar si alguien es un animal.
2. Determinar si alguien tiene una mascota.
3. Determinar el tipo de mascota de una persona.
4. Determinar los pacientes de sexo femenino que solicitan una cita de cardiología.

También podría gustarte