SlideShare una empresa de Scribd logo
1 de 29
PROLOG
“Analiza el mundo”
Introducción
Prolog es un lengua de programación computacional basado en el paradigma de
programación lógica.
Surge alrededor de 1970, siendo usado en muchos programas para aplicaciones de
computación simbólica como es en:
• Relación de base de datos
• Lógica matemática
• Resolución de problemas abstractos
• Operación con lenguaje natural
• Análisis de estructura bioquímica
• Muchas áreas de la inteligencia artificial
Objetos y relaciones
Prolog es usado para resolver problemas que involucran objetos y las relaciones
entre objetos.
Por ejemplo, juan tiene un libro, donde declaramos que hay una relación de
propiedad existente entre un objeto juan y otro objeto individual el libro.
Algunas veces las relaciones tienen un orden especifico.
Programas en Prolog
• Un programa en Prolog consiste en definir cláusulas donde se busca obtener información ,
ya sean reglas sobre cómo se debería relacionarse o en base a que hechos.
Este programa
dispone de tres
clausulas.
Questions
Al tener nuestro programa en Prolog este debe ser consultado por la interfaz de
usuario para cargar las clausulas a la base de datos para su posterior uso.
En la interfaz el usuario puede ingresar uno o mas metas(goals) que el
programa buscara en las clausulas que se encuentra en la database hasta que
satisfaga dicha meta.
Si la meta es satisfecha el programa devolverá un true , si este no se cumple
mostrara un false.
Una meta puede tener una o mas respuestas.
Sintaxis y terminología
Sintaxis y terminología
• Prolog utiliza objetos de datos llamados términos, para todo dato.
• Un término es una secuencia de caracteres, de los cuales se disponen los
siguientes :
=
Términos
Los términos se dividen en :
• Constantes
Números
Átomos
• Variables
• Listas
• Estructura o términos compuestos
Constantes
• Números
Todas las versiones de Prolog permiten el uso de números enteros. Además del
uso números punto flotante y notación sobre potencia de 10.
Ejemplos:
-17 -2.67 99.9 12 6.02e-23
Además de poder disponerse de librerías para trabajar con operaciones
aritméticas o números racionales y números de arbitraria precisión.
Constantes
• Átomos
Los átomos son constantes que no tienen valores numéricos. Donde hay tres
formas en que se pueden escribir los átomos.
Con cualquier secuencia de una o más letras (mayúsculas o minúsculas), números y
guiones bajos, comenzando con una letra minúscula.
Con cualquier secuencia de caracteres entre comillas simples, incluidos espacios y
letras mayúsculas.
Con cualquier secuencia de uno o más caracteres especiales.
Átomos
• Ejemplos:
Secuencia iniciando con
minúscula
Secuencia dentro de
comillas simples
Caracteres especiales
hoy_es_martes ‘hoy es martes’ ?-
juan ‘hoy-es-jueves’ :=
fred_jones a32_BCD ‘23-jame’ >
• Estos no son constantes:
Constantes incorrectas
Hoy
123213dasd
hoy-es-martes
Vacio_nada
Términos
• Variables
Se ven como los átomos ,ya que se denotan por cualquier secuencia de una o más
letras (mayúsculas o minúsculas), números y guiones bajos, excepto que estos
comienzan con una letra mayúscula o un guion bajo.
En una consulta, una variable es un nombre utilizado para representar un
término que se va a determinar, por ejemplo, la variable X puede representar a
perro (atómico) , el número 12.3, un término compuesto o una lista.
Variables
• Variable anónima
A veces uno necesita usar variables , pero de los cuales nunca usaremos su
nombre.
Por ejemplo si tu necesitas decir que algo que le gusta a Juan , pero no
sabes que es eso , puedes utilizar algo llamado variable anónima .
Las variables anónimas son solo una línea baja de carácter “_” .
Variables
• Ejemplos
Variables Variable anónima
X _
Autor
_123A
Una_larga_variable
• Estos no son variables:
Variables incorrectos
45_Haber
Persona-
Un Autor
Listas
Se considera un termino compuesto, al igual que otros lo consideran por
separado como un objeto de datos.
Las listas se escriben como un número ilimitado de argumentos (conocidos como
elementos de lista) encerrados entre corchetes y separados por comas.
[perro, gato, pez, hombre]
Que es posible que hacer que número de elementos que tiene una lista no tenga
que decidirse de antemano cuando se escribe un programa.
Listas
• Elementos de la lista
Estos puede ser un término de cualquier tipo, incluido un término compuesto u
otra lista.
O no tener contenido, siendo llamado lista vacía.
Ejemplos:
Listas
[perro,gato,y,mypred(A,b,c),[p,q,R],z]
[[john,28],[mary,56,maestra],robert,padre(victoria,alberto), [a,b,[c,d,e],f],29]
[uno,tiene,que,trabajar,X]
[]
Estructura o términos compuestos.
Los términos compuestos son de fundamental importancia al escribir programas
Prolog.
Es un simple objeto consistente de una colección de otros objetos.
Una termino compuesto en Prolog puede ser especificado por su functor y sus
argumentos(componentes).
Los argumentos son encerrados en paréntesis y separados por comas. El
functor es escrito justo antes de comenzar los paréntesis.
Ejemplo:
argumento
Termino compuesto
• Functor
Es un átomo que nombra la general parte de la estructura.
• Termino
Cada termino debe ser un término, que puede ser de cualquier tipo, incluido un
término compuesto
• Forma general
𝑓𝑢𝑛𝑐𝑡𝑜𝑟(𝑡1, 𝑡2, …, 𝑡𝑛) 𝑛 ≥ 1 𝑡 = 𝑡𝑒𝑟𝑚𝑖𝑛𝑜𝑠
Termino compuesto
• Ejemplos:
Términos compuestos
mujer(maria)
gusta(maria,libro)
gusta(maria,elAlquimista)
gusta(pedro,libro(pilar_de_otoño, befaus)
gusta(pedro,libro(pilar_de_otoño, autor(befaus,beck))
Clausulas
Caracteres de importancia
• Estos caracteres forman una importancia fundamental al momento de
programar en Prolog.
Carácter Importancia
. El carácter de punto denota una pausa
total o fin de algo.
:- El dos puntos con un guion corto es
llamado dentro las reglas como un if .
, La coma denota el uso del operado and
para la conjunción .
Comentarios
Existen dos formas para escribir comentarios en Prolog.
Comentario Funcion
/*Este es un comentario en un espacio*/ El uso de /*….*/ permite escribir
comentario delimitando su espacio para
ello.
%Este comentario en una línea El uso de % provoca que todo lo que que
este después serán comentarios .
Clausulas
• Hechos (facts)
Los hechos son de la forma:
head.
Donde head es llamada a la cabeza de la clausula.
Tienen la misma forma que una meta que puede ser ingresada por el usuario.
Estos pueden ser un solo átomo o un termino compuesto. Conocidos
colectivamente como términos de llamada.
Reglas(rules)
En Prolog las reglas las usamos para decir que un hecho depende de un grupo de
otros factores, algo asi como un if
Se presentan en la forma
𝒉𝒆𝒂𝒅: − 𝒕𝟏, 𝒕𝟐, …, 𝒕𝒌. (𝒌 ≥ 𝟏)
Con las siguientes partes:
• head es llamado a la cabeza de la clausula(o cabeza de la regla). Que puede
ser un átomo o un termino compuesto. Esto puede verse como un objetivo
principal .
Reglas(rules)
• :- es llamado el cuello de la clausula (o operador del cuello) ,que se
pronuncia como un if
• 𝒕𝟏, 𝒕𝟐, …, 𝒕𝒌. Es el cuerpo de la clausula(o cuerpo de la regla) , formado por
átomos o términos compuestos separados por comas.
Estos especifica las condiciones que deben cumplirse para que la conclusión,
representada por la cabeza, sea satisfecha. Por esto son vistos como subobjetivos.
Reglas(rules)
Una regla se lee de la siguiente forma:
“La cabeza es verdadera si 𝒕𝟏, 𝒕𝟐, …, 𝒕𝒌. son todas verdaderas”
Bibliografía
• Clocksin, W. F., & Mellish, C. S. (2003). Programming in PROLOG: Using the ISO Standard (5th
ed.). Springer.
• Bramer, M. (2013). Logic Programming with PROLOG (2nd 2013 ed.). Springer.

Más contenido relacionado

Similar a Conozcamos a Prolog (20)

Prolog
PrologProlog
Prolog
 
Prolog2
Prolog2Prolog2
Prolog2
 
Clase de logica posbc
Clase de logica posbcClase de logica posbc
Clase de logica posbc
 
Tutorial basico prolog
Tutorial basico prologTutorial basico prolog
Tutorial basico prolog
 
Prolog2010
Prolog2010Prolog2010
Prolog2010
 
Tutorial de prolog
Tutorial de prologTutorial de prolog
Tutorial de prolog
 
Expocision pseudocodigo
Expocision pseudocodigoExpocision pseudocodigo
Expocision pseudocodigo
 
Fase 4_Grupo xx.docx
Fase 4_Grupo xx.docxFase 4_Grupo xx.docx
Fase 4_Grupo xx.docx
 
Unidad_01_01.pdf
Unidad_01_01.pdfUnidad_01_01.pdf
Unidad_01_01.pdf
 
conceptos basicos lenguajes de programacion.pdf
conceptos basicos lenguajes de programacion.pdfconceptos basicos lenguajes de programacion.pdf
conceptos basicos lenguajes de programacion.pdf
 
Act. Individual.- Pseudocódigos y diagramas de flujo
 Act. Individual.- Pseudocódigos y diagramas de flujo Act. Individual.- Pseudocódigos y diagramas de flujo
Act. Individual.- Pseudocódigos y diagramas de flujo
 
variables
variables variables
variables
 
Variables de-programación
Variables de-programaciónVariables de-programación
Variables de-programación
 
Segundo trabajo
Segundo trabajoSegundo trabajo
Segundo trabajo
 
PSEUDOCODIGO
PSEUDOCODIGOPSEUDOCODIGO
PSEUDOCODIGO
 
Unidad 1 algoritmos y programas
Unidad 1 algoritmos y programasUnidad 1 algoritmos y programas
Unidad 1 algoritmos y programas
 
C curso intr
C curso intr C curso intr
C curso intr
 
Variables de-programacin
Variables de-programacinVariables de-programacin
Variables de-programacin
 
Prolog
PrologProlog
Prolog
 
Semana 6 Módulos en Python Entrega 2
Semana 6   Módulos en Python Entrega 2Semana 6   Módulos en Python Entrega 2
Semana 6 Módulos en Python Entrega 2
 

Conozcamos a Prolog

  • 2. Introducción Prolog es un lengua de programación computacional basado en el paradigma de programación lógica. Surge alrededor de 1970, siendo usado en muchos programas para aplicaciones de computación simbólica como es en: • Relación de base de datos • Lógica matemática • Resolución de problemas abstractos • Operación con lenguaje natural • Análisis de estructura bioquímica • Muchas áreas de la inteligencia artificial
  • 3. Objetos y relaciones Prolog es usado para resolver problemas que involucran objetos y las relaciones entre objetos. Por ejemplo, juan tiene un libro, donde declaramos que hay una relación de propiedad existente entre un objeto juan y otro objeto individual el libro. Algunas veces las relaciones tienen un orden especifico.
  • 4. Programas en Prolog • Un programa en Prolog consiste en definir cláusulas donde se busca obtener información , ya sean reglas sobre cómo se debería relacionarse o en base a que hechos. Este programa dispone de tres clausulas.
  • 5. Questions Al tener nuestro programa en Prolog este debe ser consultado por la interfaz de usuario para cargar las clausulas a la base de datos para su posterior uso. En la interfaz el usuario puede ingresar uno o mas metas(goals) que el programa buscara en las clausulas que se encuentra en la database hasta que satisfaga dicha meta. Si la meta es satisfecha el programa devolverá un true , si este no se cumple mostrara un false. Una meta puede tener una o mas respuestas.
  • 7. Sintaxis y terminología • Prolog utiliza objetos de datos llamados términos, para todo dato. • Un término es una secuencia de caracteres, de los cuales se disponen los siguientes : =
  • 8. Términos Los términos se dividen en : • Constantes Números Átomos • Variables • Listas • Estructura o términos compuestos
  • 9. Constantes • Números Todas las versiones de Prolog permiten el uso de números enteros. Además del uso números punto flotante y notación sobre potencia de 10. Ejemplos: -17 -2.67 99.9 12 6.02e-23 Además de poder disponerse de librerías para trabajar con operaciones aritméticas o números racionales y números de arbitraria precisión.
  • 10. Constantes • Átomos Los átomos son constantes que no tienen valores numéricos. Donde hay tres formas en que se pueden escribir los átomos. Con cualquier secuencia de una o más letras (mayúsculas o minúsculas), números y guiones bajos, comenzando con una letra minúscula. Con cualquier secuencia de caracteres entre comillas simples, incluidos espacios y letras mayúsculas. Con cualquier secuencia de uno o más caracteres especiales.
  • 11. Átomos • Ejemplos: Secuencia iniciando con minúscula Secuencia dentro de comillas simples Caracteres especiales hoy_es_martes ‘hoy es martes’ ?- juan ‘hoy-es-jueves’ := fred_jones a32_BCD ‘23-jame’ >
  • 12. • Estos no son constantes: Constantes incorrectas Hoy 123213dasd hoy-es-martes Vacio_nada
  • 13. Términos • Variables Se ven como los átomos ,ya que se denotan por cualquier secuencia de una o más letras (mayúsculas o minúsculas), números y guiones bajos, excepto que estos comienzan con una letra mayúscula o un guion bajo. En una consulta, una variable es un nombre utilizado para representar un término que se va a determinar, por ejemplo, la variable X puede representar a perro (atómico) , el número 12.3, un término compuesto o una lista.
  • 14. Variables • Variable anónima A veces uno necesita usar variables , pero de los cuales nunca usaremos su nombre. Por ejemplo si tu necesitas decir que algo que le gusta a Juan , pero no sabes que es eso , puedes utilizar algo llamado variable anónima . Las variables anónimas son solo una línea baja de carácter “_” .
  • 15. Variables • Ejemplos Variables Variable anónima X _ Autor _123A Una_larga_variable
  • 16. • Estos no son variables: Variables incorrectos 45_Haber Persona- Un Autor
  • 17. Listas Se considera un termino compuesto, al igual que otros lo consideran por separado como un objeto de datos. Las listas se escriben como un número ilimitado de argumentos (conocidos como elementos de lista) encerrados entre corchetes y separados por comas. [perro, gato, pez, hombre] Que es posible que hacer que número de elementos que tiene una lista no tenga que decidirse de antemano cuando se escribe un programa.
  • 18. Listas • Elementos de la lista Estos puede ser un término de cualquier tipo, incluido un término compuesto u otra lista. O no tener contenido, siendo llamado lista vacía. Ejemplos: Listas [perro,gato,y,mypred(A,b,c),[p,q,R],z] [[john,28],[mary,56,maestra],robert,padre(victoria,alberto), [a,b,[c,d,e],f],29] [uno,tiene,que,trabajar,X] []
  • 19. Estructura o términos compuestos. Los términos compuestos son de fundamental importancia al escribir programas Prolog. Es un simple objeto consistente de una colección de otros objetos. Una termino compuesto en Prolog puede ser especificado por su functor y sus argumentos(componentes). Los argumentos son encerrados en paréntesis y separados por comas. El functor es escrito justo antes de comenzar los paréntesis. Ejemplo: argumento
  • 20. Termino compuesto • Functor Es un átomo que nombra la general parte de la estructura. • Termino Cada termino debe ser un término, que puede ser de cualquier tipo, incluido un término compuesto • Forma general 𝑓𝑢𝑛𝑐𝑡𝑜𝑟(𝑡1, 𝑡2, …, 𝑡𝑛) 𝑛 ≥ 1 𝑡 = 𝑡𝑒𝑟𝑚𝑖𝑛𝑜𝑠
  • 21. Termino compuesto • Ejemplos: Términos compuestos mujer(maria) gusta(maria,libro) gusta(maria,elAlquimista) gusta(pedro,libro(pilar_de_otoño, befaus) gusta(pedro,libro(pilar_de_otoño, autor(befaus,beck))
  • 23. Caracteres de importancia • Estos caracteres forman una importancia fundamental al momento de programar en Prolog. Carácter Importancia . El carácter de punto denota una pausa total o fin de algo. :- El dos puntos con un guion corto es llamado dentro las reglas como un if . , La coma denota el uso del operado and para la conjunción .
  • 24. Comentarios Existen dos formas para escribir comentarios en Prolog. Comentario Funcion /*Este es un comentario en un espacio*/ El uso de /*….*/ permite escribir comentario delimitando su espacio para ello. %Este comentario en una línea El uso de % provoca que todo lo que que este después serán comentarios .
  • 25. Clausulas • Hechos (facts) Los hechos son de la forma: head. Donde head es llamada a la cabeza de la clausula. Tienen la misma forma que una meta que puede ser ingresada por el usuario. Estos pueden ser un solo átomo o un termino compuesto. Conocidos colectivamente como términos de llamada.
  • 26. Reglas(rules) En Prolog las reglas las usamos para decir que un hecho depende de un grupo de otros factores, algo asi como un if Se presentan en la forma 𝒉𝒆𝒂𝒅: − 𝒕𝟏, 𝒕𝟐, …, 𝒕𝒌. (𝒌 ≥ 𝟏) Con las siguientes partes: • head es llamado a la cabeza de la clausula(o cabeza de la regla). Que puede ser un átomo o un termino compuesto. Esto puede verse como un objetivo principal .
  • 27. Reglas(rules) • :- es llamado el cuello de la clausula (o operador del cuello) ,que se pronuncia como un if • 𝒕𝟏, 𝒕𝟐, …, 𝒕𝒌. Es el cuerpo de la clausula(o cuerpo de la regla) , formado por átomos o términos compuestos separados por comas. Estos especifica las condiciones que deben cumplirse para que la conclusión, representada por la cabeza, sea satisfecha. Por esto son vistos como subobjetivos.
  • 28. Reglas(rules) Una regla se lee de la siguiente forma: “La cabeza es verdadera si 𝒕𝟏, 𝒕𝟐, …, 𝒕𝒌. son todas verdaderas”
  • 29. Bibliografía • Clocksin, W. F., & Mellish, C. S. (2003). Programming in PROLOG: Using the ISO Standard (5th ed.). Springer. • Bramer, M. (2013). Logic Programming with PROLOG (2nd 2013 ed.). Springer.