tema 2: informaci´on estructurada. listas · introduccion a la ingenier´ ´ıa del conocimiento...

26
Introducci ´ on a la Ingenier ´ ıa del Conocimiento Curso 2006–2007 Tema 2: Informaci´onestructurada. Listas Miguel A. Guti´ errez Naranjo Dpto. de Ciencias de la Computaci´on e Inteligencia Artificial Universidad de Sevilla IIC 2006–07 C c I a Informaci´ on estructurada.Listas 2.1

Upload: others

Post on 15-Jul-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tema 2: Informaci´on estructurada. Listas · Introduccion a la Ingenier´ ´ıa del Conocimiento Curso 2006–2007 Tema 2: Informaci´on estructurada. Listas Miguel A. Guti´errez

Introduccion a la Ingenierıa del Conocimiento Curso 2006–2007

Tema 2:Informacion estructurada.

Listas

Miguel A. Gutierrez Naranjo

Dpto. de Ciencias de la Computacion e Inteligencia Artificial

Universidad de Sevilla

IIC 2006–07 CcIa Informacion estructurada.Listas 2.1

Page 2: Tema 2: Informaci´on estructurada. Listas · Introduccion a la Ingenier´ ´ıa del Conocimiento Curso 2006–2007 Tema 2: Informaci´on estructurada. Listas Miguel A. Guti´errez

Objetos estructurados

B La siguiente base de conocimiento representaun diccionario de seis plabras en ingles.

word(abalone,a,b,a,l,o,n,e).word(abandon,a,b,a,n,d,o,n).word(enhance,e,n,h,a,n,c,e).word(anagram,a,n,a,g,r,a,m).word(connect,c,o,n,n,e,c,t).word(elegant,e,l,e,g,a,n,t).

B Definir un predicadocrucigrama(H1,H2,H3,V1,V2,V3)

que indique la solucion al crucigrama.

crucigrama(H1,H2,H3,V1,V2,V3):-word(H1,_,X11,_,X12,_,X13,_),word(H2,_,X21,_,X22,_,X23,_),word(H3,_,X31,_,X32,_,X33,_),word(V1,_,X11,_,X21,_,X31,_),word(V2,_,X12,_,X22,_,X32,_),word(V3,_,X13,_,X23,_,X33,_).

IIC 2006–07 CcIa Informacion estructurada.Listas 2.2

Page 3: Tema 2: Informaci´on estructurada. Listas · Introduccion a la Ingenier´ ´ıa del Conocimiento Curso 2006–2007 Tema 2: Informaci´on estructurada. Listas Miguel A. Guti´errez

Objetos estructurados

B Segmentos verticales y horizontales

u Representacion:

punto(X,Y)

seg(P1,P2)

u horizontal(S) se verifica si el segmento S es hori-

zontal

u vertical(S) se verifica si el segmento S es vertical.

Por ejemplo,

vertical(seg(punto(1,2),punto(1,3))) => Sıvertical(seg(punto(1,2),punto(4,2))) => Nohorizontal(seg(punto(1,2),punto(1,3))) => Nohorizontal(seg(punto(1,2),punto(4,2))) => Sı

u Programa: ver hor.pl

horizontal(seg(punto(X,Y),punto(X1,Y))).vertical(seg(punto(X,Y),punto(X,Y1))).

IIC 2006–07 CcIa Informacion estructurada.Listas 2.3

Page 4: Tema 2: Informaci´on estructurada. Listas · Introduccion a la Ingenier´ ´ıa del Conocimiento Curso 2006–2007 Tema 2: Informaci´on estructurada. Listas Miguel A. Guti´errez

Objetos estructurados

u ¿Es vertical el segmento que une los puntos (1,1)

y (1,2)?.

?- vertical(seg(punto(1,1),punto(1,2))).Yes

u ¿Es vertical el segmento que une los puntos (1,1)

y (2,2)?.

?- vertical(seg(punto(1,1),punto(2,2))).No

u ¿Hay algun Y tal que el segmento que une los puntos

(1,1) y (2,Y) sea vertical?.

?- vertical(seg(punto(1,1),punto(2,Y))).No

u ¿Hay algun X tal que el segmento que une los puntos

(1,2) y (X,3) sea vertical?.

?- vertical(seg(punto(1,2),punto(X,3))).X = 1 ;No

u ¿Hay algun Y tal que el segmento que une los puntos

(1,1) y (2,Y) sea horizontal?.

?- horizontal(seg(punto(1,1),punto(2,Y))).Y = 1 ;No

IIC 2006–07 CcIa Informacion estructurada.Listas 2.4

Page 5: Tema 2: Informaci´on estructurada. Listas · Introduccion a la Ingenier´ ´ıa del Conocimiento Curso 2006–2007 Tema 2: Informaci´on estructurada. Listas Miguel A. Guti´errez

Objetos estructurados

u ¿Para que puntos el segmento que comienza en

(2,3) es vertical?.

?- vertical(seg(punto(2,3),P)).P = punto(2, _G459) ;No

u ¿Hay algun segmento que sea horizontal y vertical?.

?- vertical(S),horizontal(S).S = seg(punto(_G444, _G445),

punto(_G444, _G445)) ;No?- vertical(_),horizontal(_).Yes

u no degenerado(S) se verifica si S es un segmento no

degenerado (es decir, que no se reduce a un punto).

Por ejemplo,

no_degenerado(seg(punto(1,2),punto(2,1)) => Yesno_degenerado(seg(punto(1,2),punto(1,2)) => No

u Programa:

no_degenerado(seg(P1,P2)) :- P1 \== P2.

u ¿Todos los segmentos que son horizontales y verti-

cales son degenerados?.

?- vertical(S),horizontal(S),no_degenerado(S).No

IIC 2006–07 CcIa Informacion estructurada.Listas 2.5

Page 6: Tema 2: Informaci´on estructurada. Listas · Introduccion a la Ingenier´ ´ıa del Conocimiento Curso 2006–2007 Tema 2: Informaci´on estructurada. Listas Miguel A. Guti´errez

Representacion de listas

B Lista vacıa []

B Enumeracion de elementos [X1,X2,...,Xn]

B Primeros elementos y resto [X1,X2,...,Xn|Y]

B Ejemplos de listas (notacion reducida)

u []

u [a]

u [1,2,3,4]

u [[]]

u [X|Y]

IIC 2006–07 CcIa Informacion estructurada.Listas 2.6

Page 7: Tema 2: Informaci´on estructurada. Listas · Introduccion a la Ingenier´ ´ıa del Conocimiento Curso 2006–2007 Tema 2: Informaci´on estructurada. Listas Miguel A. Guti´errez

Unificacion con listas

B ¿Son unificables las siguientes listas?

u [X|Y] y [1,2,3]

?- [X|Y] = [1,2,3].X = 1Y = [2, 3]Yes

u [X,Y|Z] y [1,2,3]

?- [X,Y|Z] = [1,2,3].X = 1Y = 2Z = [3]Yes

u [X,Y] y [1,2,3]

?- [X,Y] = [1,2,3].No

u [X,Y|Z] y [1,2]

?- [X,Y|Z] = [1,2].X = 1Y = 2Z = []Yes

IIC 2006–07 CcIa Informacion estructurada.Listas 2.7

Page 8: Tema 2: Informaci´on estructurada. Listas · Introduccion a la Ingenier´ ´ıa del Conocimiento Curso 2006–2007 Tema 2: Informaci´on estructurada. Listas Miguel A. Guti´errez

Unificacion con listas

u [X,a,b|[]] y [[b,L],a|L]

?- [X,a,b|[]] = [[b,L],a|L].X = [b, [b]]L = [b]Yes

u [X,Y,Z] y [Y,Z,X]

?- [X,Y,Z] = [Y,Z,X].X = _G171Y = _G171Z = _G171Yes

u [X,Y,Z] y [Y,Z|[]]

?- [X,Y,Z] = [Y,Z|[]].No

u p([X|R],h(X,[a|[R|L]])) y p([a],h(a,[L]))

?- p([X|R],h(X,[a|[R|L]])) = p([a],h(a,[L])).No

IIC 2006–07 CcIa Informacion estructurada.Listas 2.8

Page 9: Tema 2: Informaci´on estructurada. Listas · Introduccion a la Ingenier´ ´ıa del Conocimiento Curso 2006–2007 Tema 2: Informaci´on estructurada. Listas Miguel A. Guti´errez

Operaciones con listas

B Problema: Primer elemento y resto de una lista

u primero(L,X) se verifica si X es el primer elemento

de la lista L

u resto(L,X) se verifica si X es el resto de la lista L

u Ejemplo

primero([a,b,c],X) => X=aresto(([a,b,c],X) => X=[b,c]

u Programa listas-1.pl

primero([X|L],X).resto([X|L],L).

u Sesion?- primero([a,b,c],X).X = aYes?- primero([X,b,c],a).X = a?- primero([X,Y],a).X = a Y = _G286?- primero(X,a).X = [a|_G353]?- resto([a,b,c],L).L = [b, c]?- resto([a|L],[b,c]).L = [b, c]

IIC 2006–07 CcIa Informacion estructurada.Listas 2.9

Page 10: Tema 2: Informaci´on estructurada. Listas · Introduccion a la Ingenier´ ´ıa del Conocimiento Curso 2006–2007 Tema 2: Informaci´on estructurada. Listas Miguel A. Guti´errez

Operaciones con listas

B Anadir un elemento a una listau cons(X,L1,L2) se verifica si L2 es la lista obtenida

anadiendole X, como primer elemento, a la lista L1

u Ejemplo

cons(a,[b,c],L2) => L2 = [a,b,c]

u Programa cons.pl

cons(X,L1,[X|L1]).

u Sesion?- cons(a,[b,c],L).L = [a, b, c]?- cons(X,L,[a,b,c]).X = aL = [b, c] ;

IIC 2006–07 CcIa Informacion estructurada.Listas 2.10

Page 11: Tema 2: Informaci´on estructurada. Listas · Introduccion a la Ingenier´ ´ıa del Conocimiento Curso 2006–2007 Tema 2: Informaci´on estructurada. Listas Miguel A. Guti´errez

Operaciones con listas

B Concatenacion de listasu conc(L1,L2,L3) se verifica si L3 es la lista obtenida

escribiendo los elementos de L2 a continuacion de

los elementos de L1.

u Ejemplo

conc([a,b],[c,d],L3) => L3 = [a,b,c,d]

u Programa conc.pl

conc([],L,L).conc([X|L1],L2,[X|L3]) :-

conc(L1,L2,L3).

u Esquema

X

L1

L1

L2

L2 X

L3

L3

IIC 2006–07 CcIa Informacion estructurada.Listas 2.11

Page 12: Tema 2: Informaci´on estructurada. Listas · Introduccion a la Ingenier´ ´ıa del Conocimiento Curso 2006–2007 Tema 2: Informaci´on estructurada. Listas Miguel A. Guti´errez

Operaciones con listas

u ¿Cual es el resultado de concatenar las listas [a,b]

y [c,d,e]?

?- conc([a,b],[c,d,e],L).L = [a, b, c, d, e] ;No

u ¿Que lista hay que anadirle al lista [a,b] para

obtener [a,b,c,d]?.

?- conc([a,b],L,[a,b,c,d]).L = [c, d] ;No

u ¿Que dos listas hay que concatenar para obtener

[a,b]?.

?- conc(L1,L2,[a,b]).L1 = []L2 = [a, b] ;L1 = [a]L2 = [b] ;L1 = [a, b]L2 = [] ;No

IIC 2006–07 CcIa Informacion estructurada.Listas 2.12

Page 13: Tema 2: Informaci´on estructurada. Listas · Introduccion a la Ingenier´ ´ıa del Conocimiento Curso 2006–2007 Tema 2: Informaci´on estructurada. Listas Miguel A. Guti´errez

Operaciones con listas

u ¿Pertenece b a la lista [a,b,c]?

.

?- conc(L1,[b|L2],[a,b,c]).L1 = [a]L2 = [c] ;No?- conc(_,[b|_],[a,b,c]).Yes

u ¿Es [b,c] una sublista de [a,b,c,d]?

?- conc(_,[b,c|_],[a,b,c,d]).Yes

u ¿Es [b,d] una sublista de [a,b,c,d]?

?- conc(_,[b,d|_],[a,b,c,d]).No

u ¿Cual es el ultimo elemento de [b,a,c,d]?.

?- conc(_,[X],[b,a,c,d]).X = d ;No

u Predicado predefinido: append(L1,L2,L3)

IIC 2006–07 CcIa Informacion estructurada.Listas 2.13

Page 14: Tema 2: Informaci´on estructurada. Listas · Introduccion a la Ingenier´ ´ıa del Conocimiento Curso 2006–2007 Tema 2: Informaci´on estructurada. Listas Miguel A. Guti´errez

Recuperacion de la informacion

B Descripcion de la famila 1

u el padre es Tomas Garcıa Perez, nacido el 7 de

Mayo de 1950, trabaja de profesor y gana 10.000

pesetas diarias

u la madre es Ana Lopez Ruiz, nacida el 10 de marzo

de 1952, trabaja de medica y gana 15.000 pesetas

diarias

u el hijo es Juan Garcıa Lopez, nacido el 5 de Enero

de 1970, estudiante

u la hija es Marıa Garcıa Lopez, nacida el 12 de Abril

de 1972, estudiante

familia(persona([tomas,garcia,perez],

fecha(7,mayo,1950),trabajo(profesor,10000)),

persona([ana,lopez,ruiz],fecha(10,marzo,1952),trabajo(medica,15000)),

[ persona([juan,garcia,lopez],fecha(5,enero,1970),estudiante),

persona([maria,garcia,lopez],fecha(12,abril,1972),estudiante) ]).

IIC 2006–07 CcIa Informacion estructurada.Listas 2.14

Page 15: Tema 2: Informaci´on estructurada. Listas · Introduccion a la Ingenier´ ´ıa del Conocimiento Curso 2006–2007 Tema 2: Informaci´on estructurada. Listas Miguel A. Guti´errez

Recuperacion de la informacion

B Descripcion de la famila 2

u el padre es Jose Perez Ruiz, nacido el 6 de Marzo

de 1953, trabaja de pintor y gana 20.000 pst/dia

u la madre es Luisa Galvez Perez, nacida el 12 de

Mayo de 1954, es medica y gana 15.000 pst/dia

u un hijo es Juan Luis Perez Perez, nacido el 5 de

Febrero de 1980, estudiante

u una hija es Marıa Jose Perez Perez, nacida el 12

de Junio de 1982, estudiante

u otro hijo es Jose Marıa Perez Perez, nacido el 12

de Julio de 1984, estudiante

familia(persona([jose,perez,ruiz],

fecha(6,marzo,1953),trabajo(pintor,20000)),

persona([luisa,galvez,perez],fecha(12,mayo,1954),trabajo(medica,15000)),

[ persona([juan_luis,perez,perez],fecha(5,febrero,1980),estudiante),

persona([maria_jose,perez,perez],fecha(12,junio,1982),estudiante),

persona([jose_maria,perez,perez],fecha(12,julio,1984),estudiante) ]).

IIC 2006–07 CcIa Informacion estructurada.Listas 2.15

Page 16: Tema 2: Informaci´on estructurada. Listas · Introduccion a la Ingenier´ ´ıa del Conocimiento Curso 2006–2007 Tema 2: Informaci´on estructurada. Listas Miguel A. Guti´errez

Recuperacion de la informacion

u ¿Existe alguna familia sin hijos?

?- familia(_,_,[]).No

u ¿Existe alguna familia con un hijo?

?- familia(_,_,[_]).No

u ¿Existe alguna familia con dos hijos?

?- familia(_,_,[_,_]).Yes

u ¿Existe alguna familia con tres hijos?

?- familia(_,_,[_,_,_]).Yes

u ¿Existe alguna familia con cuatro hijos?

?- familia(_,_,[_,_,_,_]).No

u Buscar los nombres de los padres de familia con

tres hijos

?- familia(persona(NP,_,_),_,[_,_,_]).NP = [jose, perez, ruiz] ;No

IIC 2006–07 CcIa Informacion estructurada.Listas 2.16

Page 17: Tema 2: Informaci´on estructurada. Listas · Introduccion a la Ingenier´ ´ıa del Conocimiento Curso 2006–2007 Tema 2: Informaci´on estructurada. Listas Miguel A. Guti´errez

Recuperacion de la informacion

B Hombres casadosu casado(X) se verifica si X es un hombre casado

casado(X) :- familia(X,_,_).

u Consulta?- casado(X).X = persona([tomas, garcia, perez],

fecha(7, mayo, 1950),trabajo(profesor, 10000)) ;

X = persona([jose, perez, ruiz],fecha(6, marzo, 1953),trabajo(pintor, 20000)) ;

No

B Mujeres casadas

u casada(X) se verifica si X es una mujer casada

casada(X) :- familia(_,X,_).

u Consulta?- casada(X).X = persona([ana, lopez, ruiz],

fecha(10, marzo, 1952),trabajo(medica, 15000)) ;

X = persona([luisa, galvez, perez],fecha(12, mayo, 1954),trabajo(medica, 15000)) ;

No

IIC 2006–07 CcIa Informacion estructurada.Listas 2.17

Page 18: Tema 2: Informaci´on estructurada. Listas · Introduccion a la Ingenier´ ´ıa del Conocimiento Curso 2006–2007 Tema 2: Informaci´on estructurada. Listas Miguel A. Guti´errez

Recuperacion de la informacion

u Nombres de las mujeres casadas que trabajan

?- casada(persona([N,_,_],_,trabajo(_,_))).N = ana ;N = luisa ;No

B Conceptos

u Uso de objetos estructurados

u Prolog como lenguaje de consulta de bases de

datos.

u Bases de datos como conjuntos de hechos

u Selectores

u Abstraccion de datos

IIC 2006–07 CcIa Informacion estructurada.Listas 2.18

Page 19: Tema 2: Informaci´on estructurada. Listas · Introduccion a la Ingenier´ ´ıa del Conocimiento Curso 2006–2007 Tema 2: Informaci´on estructurada. Listas Miguel A. Guti´errez

Simulacion de un automata

B Automata no determinista (con estado final e3)a

b

a

b

b

e1 e2

e3e4

B Representacion del automata (automata.pl):

u final(E) se verifica si E es el estado final.

final(e3).

u trans(E1,X,E2) se verifica si se puede pasar del es-

tado E1 al estado E2 usando la letra X

trans(e1,a,e1).trans(e1,a,e2).trans(e1,b,e1).trans(e2,b,e3).trans(e3,b,e4).

IIC 2006–07 CcIa Informacion estructurada.Listas 2.19

Page 20: Tema 2: Informaci´on estructurada. Listas · Introduccion a la Ingenier´ ´ıa del Conocimiento Curso 2006–2007 Tema 2: Informaci´on estructurada. Listas Miguel A. Guti´errez

Simulacion de un automata

u nulo(E1,E2) se verifica si se puede pasar del estado

E1 al estado E2 mediante un movimiento nulo.nulo(e2,e4).nulo(e3,e1).

B acepta(E,L) se verifica si el automata, a partirdel estado E acepta la lista L

u Ejemplo:

acepta(e1,[a,a,a,b]) => Sıacepta(e2,[a,a,a,b]) => No

u Definicion:acepta(E,[]) :-

final(E).acepta(E,[X|L]) :-

trans(E,X,E1),acepta(E1,L).

acepta(E,L) :-nulo(E,E1),acepta(E1,L).

IIC 2006–07 CcIa Informacion estructurada.Listas 2.20

Page 21: Tema 2: Informaci´on estructurada. Listas · Introduccion a la Ingenier´ ´ıa del Conocimiento Curso 2006–2007 Tema 2: Informaci´on estructurada. Listas Miguel A. Guti´errez

Simulacion de un automata

u Determinar si el automata acepta la lista [a,a,a,b]

?- acepta(e1,[a,a,a,b]).Yes

u Determinar los estados a partir de los cuales el

automata acepta la lista [a,b]

?- acepta(E,[a,b]).E=e1 ;E=e3 ;No

u Determinar las palabras de longitud 3 aceptadas

por el automata a partir del estado e1

?- acepta(e1,[X,Y,Z]).X = aY = aZ = b ;X = bY = aZ = b ;No

IIC 2006–07 CcIa Informacion estructurada.Listas 2.21

Page 22: Tema 2: Informaci´on estructurada. Listas · Introduccion a la Ingenier´ ´ıa del Conocimiento Curso 2006–2007 Tema 2: Informaci´on estructurada. Listas Miguel A. Guti´errez

Problema del mono

B Descripcion:

u Un mono se encuentra en la puerta de una

habitacion. En el centro de la habitacion hay un

platano colgado del techo. El mono esta hambri-

ento y desea coger el platano, pero no lo alcanza

desde el suelo. En la ventana de la habitacion hay

una silla que el mono puede usar. El mono puede

realizar las siguientes acciones: pasear de un lugar

a otro de la habitacion, empujar la silla de un lugar

a otro de la habitacion (si esta en el mismo lugar

que la silla), subirse en la silla (si esta en el mismo

lugar que la silla) y coger el platano (si esta encima

de la silla en el centro de la habitacion).

B Representacion:

u Representacion: estado(PM,AM,PS,MM)

PM posicion del mono (puerta, centro o ventana)

AM apoyo del mono (suelo o silla)

PS posicion de la silla (puerta, centro o ventana)

MM mano del mono (con o sin) platano

u movimiento(E1,A,E2) se verifica si E2 es el estado que

resulta de realizar la accion A en el estado E1

IIC 2006–07 CcIa Informacion estructurada.Listas 2.22

Page 23: Tema 2: Informaci´on estructurada. Listas · Introduccion a la Ingenier´ ´ıa del Conocimiento Curso 2006–2007 Tema 2: Informaci´on estructurada. Listas Miguel A. Guti´errez

Problema del mono

movimiento(estado(centro,silla,centro,sin),coger,estado(centro,silla,centro,con)).

movimiento(estado(X,suelo,X,U),subir,estado(X,silla,X,U)).

movimiento(estado(X1,suelo,X1,U),empujar(X1,X2),estado(X2,suelo,X2,U)).

movimiento(estado(X,suelo,Z,U),pasear(X,Z),estado(Z,suelo,Z,U)).

B Solucion:u solucion(E,S) se verifica si S es una sucesion de

acciones que aplicadas al estado E permiten al mono

coger el platano.

u Ejemplo:

?- solucion(estado(puerta,suelo,ventana,sin),L).L = [pasear(puerta, ventana),

empujar(ventana, centro),subir,coger] ;

No

IIC 2006–07 CcIa Informacion estructurada.Listas 2.23

Page 24: Tema 2: Informaci´on estructurada. Listas · Introduccion a la Ingenier´ ´ıa del Conocimiento Curso 2006–2007 Tema 2: Informaci´on estructurada. Listas Miguel A. Guti´errez

Problema del mono

B Definicionsolucion(estado(_,_,_,con),[]).solucion(E1,[A|L]) :-

movimiento(E1,A,E2),solucion(E2,L).

IIC 2006–07 CcIa Informacion estructurada.Listas 2.24

Page 25: Tema 2: Informaci´on estructurada. Listas · Introduccion a la Ingenier´ ´ıa del Conocimiento Curso 2006–2007 Tema 2: Informaci´on estructurada. Listas Miguel A. Guti´errez

Problema del mono

?- sol(estado(p,s,v,-),L).

?- mov(estado(p,s,v,-),A1,E2),sol(E2,L1).

?- sol(estado(v,s,v,-),L1).

?- mov(estado(v,s,v,-),A2,E3),sol(E3,L2).

?- sol(estado(v,silla,v,-),L2). ?- sol(estado(X2,s,X2,-),L2). ?- sol(estado(v,s,v,-),L2).

?- mov(estado(X2,s,X2,-),A3,E4), sol(E4,L3).

RAMA INFINITA

FALLO

?- sol(estado(X,silla,X,sin),L3).

?- sol(estado(X2,s,X2,-),L3).?- sol(estado(X3,s,X3,-),L3).

RAMA INFINITA

RAMA INFINITA

RAMA INFINITA

?- mov(estado(v,silla,v,-),A3,E4), sol(E4,L3).

?-mov(estado(X,silla,X,-),A4,E5), sol(E5,L4).

?- sol(estado(centro,silla,centro,+),L4).

?- mov(estado(centro,silla,centro,+),A5,E6),sol(E6,L5).

FALLO

IIC 2006–07 CcIa Informacion estructurada.Listas 2.25

Page 26: Tema 2: Informaci´on estructurada. Listas · Introduccion a la Ingenier´ ´ıa del Conocimiento Curso 2006–2007 Tema 2: Informaci´on estructurada. Listas Miguel A. Guti´errez

Bibliografıa

B Bratko, I. Prolog Programming for ArtificialIntelligence (2nd ed.) (Addison–Wesley, 1990)

u Cap. 2: “Syntax and meaning of Prolog programs”

u Cap. 3: “Lists, operators, arithmetic”

u Cap. 4: “Using Structures: Example Programs”

B Van Le, T. Techniques of Prolog Programming(John Wiley, 1993)

u Cap. 2: “Declarative Prolog programming”.

B Clocksin, W.F. y Mellish, C.S. Programmingin Prolog (Fourth Edition) (Springer Verlag,1994)

u Cap. 2: “A closer look”

u Cap. 3: “Using Data Structures”

IIC 2006–07 CcIa Informacion estructurada.Listas 2.26