Está en la página 1de 6

Cancn, Quintana Roo a 26 de Mayo del 2017

Jefe del Depto. de Sistemas y Computacin

Por este medio, se hace entrega al departamento de Ing. En Sistemas y Computacin, el material
descrito a continuacin:

CONSULTA DE UNA BASE DE CLAUSULAS.

La programacin lgica es un paradigma que aplica el conocimiento proveniente del campo de la lgica matemtica al
desarrollo de programas.

La lgica matemtica permite expresar problemas que son resueltos mediante la aplicacin de reglas.

Este paradigma es utilizado sobre todo en inteligencia artificial. La programacin lgica se basa en hechos reglas y consultas.

(El programador define una serie de reglas y hechos y posteriormente se le pueden plantear al sistema una serie de
consultas que resolver en base a reglas y hechos proporcionados.)

Cada lnea -- sentencia -- de un programa Prolog se denomina clusula.


Las clusulas son los hechos, reglas y consultas.

Toda clusula de Prolog acaba siempre con un punto.

Hechos:(afirmaciones), Se pueden representar:


Objetos personas/conceptos.
Propiedades de objetos
Relaciones entre objetos

Los hechos son enunciados ciertos por definicin. Por ejemplo cuando se expresa que FORD es un coche se est
expresando un hecho.

Un hecho consiste en un nombre y uno o varios argumentos seguido de un punto.


Para definir un hecho en Prolog, el hecho debe llevar el formato predicado (sujeto).

Consulta:

Una consulta estar constituida por una o varias metas que Prolog deber resolver. El intrprete de Prolog nos devuelve ms
soluciones si utilizamos el punto y coma ;.

Una consulta tiene la forma: ?-A1,...,An

Donde cada Ai es una frmula atmica.

En esta consulta A1,..., An se denomina meta u objetivo, y cada Ai, es una submeta o sub-objetivo.

Las interrogaciones (query) pueden ser de tres categoras:

Consulta de bsqueda que interroga por los valores de algunas variables que hacen cierto un objetivo (goal) en el contexto del programa
que est actualmente en memoria.

Likes (sue,X).

Consulta de confirmacin busca la confirmacin de un objetivo bsico (ground goal), aquel que no tiene variables.
Likes (sue,doll).

Consulta de accin solicita al sistema que realice alguna accin. De esta forma, una consulta de accin causa algn efecto lateral tal como
cambiar el entorno o realizar entradassalidas.

consult; halt.

En este caso para haskell define la siguiente consulta del hecho anterior. Como podemos apreciar.

Reglas: Una regla es una sentencia condicional. Permite mantener relaciones ms elaboradas entre objetos.

Ejemplos de hechos: por piedades de objetos/relaciones entre objetos


Ejemplo de reglas:

Ejemplo de consultas:
La primera consulta es ?- progenitor(esperanza,carlos).

Que se lee: Es Esperanza progenitor de Carlos? La respuesta es S (true).

En la segunda consulta?- progenitor(leo,X). se lee de la siguiente manera:

De quin es progenitor Leo?. La respueta/s :

Leo es progenitor de X=carlos; X=codicio; X=cela; X=enrique.

Para adherir ms de una respuesta a la consulta marcamos;


Un hecho (por ejemplo, progenitor (leo, carls)) se asume que siempre (incondicionalmente) es verdadero. Una regla especifica cosas que
pueden ser verdaderas si se satisface alguna condicin.

Las reglas tienen los siguientes componentes:

Una parte condicional (la parte del lado derecho de la regla) y

Una conclusin (el lado izquierdo de la regla).

Consultas

La ejecucin de un programa consiste en hacer una consulta (query) Para determinar si existe una tupla en alguna relacin.
Por ejemplo:

?- padre(juan,diego).

yes

Significa que la tupla (juan, diego) est en la relacin padre.

Tambin se puede consultar:

?- padre(X,Juan).

X=pedro

Es decir quin es el padre de Juan? O bien:

?- padre(pedro,X). o equivalentemente ?- hijo(X, pedro).

X=juan;

X=ana
Es decir cules son los hijos pedro? Por esto las relaciones son ms poderosas que las funciones, porque segn en qu
lugar se ponga la incgnita se obtienen funcionalidades distintas como "quin es padre de"o "de quin es padre". Y por
ltimo quin es nieto de pedro:

?- abuelo(pedro, Y).

Y=diego

Prolog incorpora un motor de bsqueda que recorre las clusulas de Horn para inferir relaciones. Este motor de bsqueda
corresponde matemticamente a un demostrador de teoremas.

Bibliografa:

https://www.infor.uva.es/~arancha/IA/prolog/PLTRANS2.pdf

Lenguajes de programacin y procesadores.

Francisco Gortazar Bellas Raquel Martinez Unanue.

El material es cedido al departamento antes mencionado para servir como evidencia acadmica.

Atentamente Rodolfo Ponce Cortina

También podría gustarte