Está en la página 1de 30

Universidad Autnoma del Estado de Hidalgo

Escuela Superior Huejutla

Lic. Sistemas Computacionales

SISTEMA EXPERTO DE AVES EN PROLOG

Catedrtico: Mtro. Vctor Tomas Tomas Mariano

PROYECTO INTELIGENCIA ARTIFICIAL

INTEGRANTES
Tomas Martnez Cruz
Antonia Hernndez Hernndez
Kenia Solares Bautista
Viviana Julin Hernndez

INTRODUCCION

La huasteca es el nombre de una regin de Mxico, la cual comprende el norte


de Veracruz, sur de Tamaulipas, sierra Gorda de Quertaro y parte de los
estados de San Luis Potos, Hidalgo y Puebla.
El presente proyecto consta de un sistema experto de aves de la regin
huasteca, en el que se mencionara solo tres de los estados que conforman esta
regin: Veracruz, Hidalgo y San Luis Potos, a su vez se mencionara el orden, la
familia, las aves y algunas de sus caractersticas.
El sistema experto antes mencionado se realizara en PROLOG, el cual es un
lenguaje de programacin creado por Alan Colmerauer y sus colaboradores en
1970, en la Universidad de Marseille-Aix, este lenguaje juega un papel muy
importante en la Inteligencia Artificial.
PROLOG es un lenguaje de programacin para ordenadores que se basan en el
lenguaje de la Lgica de Primer Orden se utiliza para resolver problemas que
entran en juego objetos y relaciones entre ellos.

DESARROLLO
Se recolecto parte de la informacin existente para desarrollar el sistema
experto de aves es decir se busco solo algunas aves para el desarrollo de este
sistema a continuacin presenta la informacin obtenida:

DIAGRAMA 1

faliconiformes

columbidae

Cracidae
galliforme

Aguila

Chachalaca

phasinidae

Godorniz

paseriformes

aludidos

Calandria

ciconiforme

Ardidae

Aves de San Luis Potosi


Garza

Chachalaca
columbiforme

anseriforme

columbidae

atinadae

Godorniz

Paloma

DIAGRAMA 2

hirundidae
passeriformes

apodiformes

Aves de Hidalgo

cuervo

turtidae

petirrojo

trochilidae

colibri

odontophoridae

columbiforme

columbidae

falconiformes

DIAGRAMA 3

corbidos

galliforme

opodiformes

golondrina

picidae

falconidae

codorniz

tordo

carpintero

halcon

anseriformes

citoriforme

anatidae

pato

cathartidae

zopilote

galliforme

odontophoridae

codorniz

psitaciforme

psittacidae

perico

estrigidae

bho

corbidos

cuervo

Aves del estado


de Veracruz

estrigiformes

passeriformes
turtidae

ruiseor

CDIGO EN PROLOG
Se almacena a la base de conocimientos el nombre de cada una de las aves que
se encuentran en los tres estados.

ave(pato).
ave(zopilote).
ave(codorniz).
ave(perico).
ave(bho).
ave(cuervo).
ave(ruiseor).
ave(aguila).
ave(chachalaca).
ave(calandria).
ave(garza).
ave(paloma).
ave(tortola).
ave(golondrina).
ave(colibri).
ave(tordo).
ave(carpintero).
ave(halcon).
ave(petirrojo).

Esta lnea de cdigo es para agregar a la base de conocimientos el orden de las


aves y a que orden pertenece cada uno de las aves.
orden(anseriformes).

pertenece(pato,anseriformes).
orden(citoriforme).
pertenece(zopilote,citoriforme).
orden(galliforme).
pertenece(codorniz,galliforme).
orden(psitaciforme).
pertenece(perico,psitaciforme).
orden(estrigiformes).
pertenece(bho,estrigiformes).
orden(passeriformes).
pertenece(cuervo,passeriformes).
pertenece(ruiseor,passeriformes).
orden(faliconiformes).
pertenece(aguila,faliconiformes).
orden(galliforme).
pertenece(chachalaca,galliforme).
pertenece(codorniz,galliforme).
orden(paseriformes).
pertenece(calandria,passeriformes).
orden(ciconiforme).
pertenece(garza,ciconiforme).
orden(columbiforme).
pertenece(paloma,columbiforme).
pertenece(tortola,columbiforme).
orden(passeriformes).

pertenece(golondrina,passeriformes).
orden(apodiformes).
pertenece(colibri,apodiformes).
pertenece(tordo,columbiforme).
orden(opodiformes).
pertenece(carpintero,opodiformes).
pertenece(halcon,faliconiformes).
pertenece(petirrojo,paseriformes).

A continuacin se muestra el cdigo para al agregar a la base de conocimiento la


familia de las aves y a que familia pertenecen.
familia(anatidae).
pertenece_familia(pato,anatidae).
familia(cathartidae).
pertenece_familia(zopilote,cathartidae).
familia(odontophoridae).
pertenece_familia(codorniz,odontophoridae).
familia(psittacidae).
pertenece_familia(perico,psittacidae).
familia(estrigidae).
pertenece_familia(bho,estrigidae).
familia(corbidos).
pertenece_familia(cuervo,corbidos).
familia(turtidae).
pertenece_familia(ruiseor,turtidae).
familia(columbidae).

pertenece_familia(aguila,columbidae).
familia(cracidae).
pertenece_familia(chachalaca,cracidae).
familia(phasinidae).
pertene_familia(codorniz,phasinidae).
familia(alaudidos).
pertenece_familia(calandria,alaudidos).
familia(ardidae).
pertenece_familia(garza,ardidae).
familia(columbidae).
pertenece_familia(paloma,columbidae).
pertenece_familia(tortola,columbidae).
familia(hirundidae).
pertenece_familia(golodrina,hirundidae).
familia(trochilidae).
pertenece_familia(colibri,trochilidae).
pertenece_familia(tordo,columbidae).
familia(picidae).
pertenece_familia(carpintero,picidae).
familia(falconidae).
pertenece_familia(halcon,falconidae).
pertenece_familia(petirrojo,tutidae).

Este cdigo es para agregar a la base de conocimientos de que se alimenta cada


una de las aves.

se_alimenta(pato,insectos).
se_alimenta(pato,algas).
se_alimenta(pato,peces).
se_alimenta(zopilote,insectos).
se_alimenta(zopilote,animales_muertos).
se_alimenta(codorniz,granos).
se_alimenta(codorniz,insectos).
se_alimenta(codorniz,frutos).
se_alimenta(perico,frutas).
se_alimenta(perico,nueces).
se_alimenta(bho,ratones).
se_alimenta(bho,insectos).
se_alimenta(cuervo,plantas).
se_alimenta(cuervo,granos).
se_alimenta(cuervo,frutos).
se_alimenta(cuervo,animales).
se_alimenta(cuervo,insectos).
se_alimenta(ruiseor,plantas).
se_alimenta(ruiseor,granos).
se_alimenta(ruiseor,frutos).
se_alimenta(ruiseor,animales).
se_alimenta(ruiseor,insectos).
se_alimenta(aguila,conejos).
se_alimenta(aguila,ardillas).
se_alimenta(chachalaca,brotes).

se_alimenta(chachalaca,bayas).
se_alimenta(chachalaca,fruto).
se_alimenta(chachalaca,hojas).
se_alimenta(chachalaca,tiernas).
se_alimenta(calandria,insectos).
se_alimenta(calandria,larbas).
se_alimenta(calandria,lombrices).
se_alimenta(calandria,frutos).
se_alimenta(garza,peces).
se_alimenta(paloma,granos).
se_alimenta(paloma,insectos).
se_alimenta(tortola,granos).
se_alimenta(tortola,semillas).
se_alimenta(tortola,flores).
se_alimenta(tortola,insectos).
se_alimenta(golondrina,mosquitos).
se_alimenta(golondrina,moscas).
se_alimenta(golondrina,tabanos).
se_alimenta(colibri,nectar_de_las_flores).
se_alimenta(tordo,insectos).
se_alimenta(tordo,gusanos).
se_alimenta(tordo,larvas).
se_alimenta(halcon,mamiferos).
se_alimenta(halcon,anfibios).
se_alimenta(petirrojo,insectos).

se_alimenta(petirrojo,lombrices).
se_alimenta(petirrojo,araas).
se_alimenta(petirrojo,caracoles).
se_alimenta(petirrojo,bayas).

A continuacin se muestra el cdigo par anexar a la base de conocimientos el


color de cada una de las aves.
color_ave(pato,blanco).
color_ave(pato,marron_obscuro).
color_ave(zopilote,negro).
color_ave(codorniz,negro_sobre_fondo_claro).
color_ave(perico,verde_violeta).
color_ave(bho,pardo_leonado_rayado).
color_ave(cuervo,negro).
color_ave(ruiseor,marron_rojizo).
color_ave(aguila,marron_oscuro,marron_claro).
color_ave(chachalaca,pardo_olivo).
color_ave(calandria,amarrillo_vivo).
color_ave(garza,blanco,nievo,negro-gris).
color_ave(paloma,gris_azulado).
color_ave(tortola,gris_pardo).
color_ave(golondrina,plumaje_negro).
color_ave(colibri,verde_esmeralda).
color_ave(tordo,negro).
color_ave(carpintero,negro_blanco,pecho_rojo).
color_ave(halcon,pardo_rojiso).

color_ave(petirrojo,rojo,gris).

Este cdigo es para agregar a la base de conocimientos de Prolog en donde


habitan las aves.
habitat(pato,embalses).
habitat(pato,lagos).
habitat(pato,pantanos).
habitat(zopilote,todo_tipo_de_terreno).
habitat(codorniz,campos_cultivados).
habitat(codorniz,pastizales).
habitat(perico,selvas_tropicales).
habitat(perico,bosques_secos).
habitat(bho,zona_boscosa).
habitat(bho,laderas_del_monte).
habitat(cuervo,zona_boscosa).
habitat(cuervo,montaosa).
habitat(cuervo,matorral).
habitat(ruiseor,bosques).
habitat(ruiseor,jardines).
habitat(ruiseor,parques).
habitat(ruiseor,setos).
habitat(ruiseor,huertos).
habitat(aguila,montaas).
habitat(aguila,peasco).
habitat(chachalaca,matorral).

habitat(chachalaca,rios,arroyos).
habitat(calandria,arboles).
habitat(calandria,parques).
habitat(calandria,jardines).
habitat(garza,orilla_rios).
habitat(garza,areas_costeras).
habitat(paloma,patios).
habitat(paloma,parques).
habitat(tortola,campos).
habitat(tortola,bosques).
habitat(golondrina,pueblos).
habitat(golondrina,cuidad_pequea).
habitat(golondrina,padros_de_cereal).
habitat(golondrina,praderas).
habitat(golondrina,huertos).
habitat(colibri,bosques_lluviosos).
habitat(tordo,bosques).
habitat(tordo,matorrales).
habitat(tordo,selva).
habitat(tordo,tropicales).
habitat(carpintero,bosques).
habitat(carpintero,arboladas).
habitat(halcon,zonas_boscosa).
habitat(petirrojo,bosque_frondosos_mixtos).
habitat(petirrojo,parques).

habitat(petirrojo,setos).
Este cdigo es para almacenar a la base de conocimiento la regin de los tres
estados Veracruz, San Luis Potosi, Hidalgo de donde se encuentran las aves.
/*region de verecruz*/
region(pato,veracruz).
region(zopilote,veracruz).
region(codorniz,veracruz).
region(perico,veracruz).
region(bho,veracruz).
region(cuervo,veracruz).
region(ruiseor,veracruz).

/*region de san luis potosi*/

region(pato,san_luis_potosi).
region(aguila,san_luis_potosi).
region(chachalaca,san_luis_potosi).
region(codorniz,san_luis_potosi).
region(calandria,san_luis_potosi).
region(garza,san_luis_potosi).
region(paloma,san_luis_potosi).
region(tortola,san_luis_potosi).

/*region de Hidalgo*/

region(golondrina,hidalgo).

region(colibri,hidalgo).
region(codorniz,hidalgo).
region(tordo,hidalgo).
region(carpintero,hidalgo).
region(cuervo,hidalgo).
region(halcon,hidalgo).
region(petirrojo,hidalgo).

CONSULTAS DEL SISTEMA


A continuacin se muestra las aves que hay en la base de conocimiento de
prolog.
1?- ave(X).
X = pato ;
X = zopilote ;
X = codorniz ;
X = perico ;
X = bho ;
X = cuervo ;
X = ruiseor ;
X = guila ;
X = chachalaca ;

X = calandria ;
X = garza ;
X = paloma ;
X = tortola ;
X = golondrina ;
X = colibr ;
X = tordo ;
X = carpintero ;
X = halcn ;
X = petirrojo

Muestra el orden de las aves almacenadas en la base de conocimiento.

2?- orden(X).
X = anseriformes ;
X = citoriforme ;
X = galliforme ;
X = psitaciforme ;
X = estrigiformes ;
X = passeriformes ;
X = faliconiformes ;
X = galliforme ;
X = paseriformes ;
X = ciconiforme ;
X = columbiforme ;
X = passeriformes ;
X = apodiformes ;
X = opodiformes.

Muestra el orden al que pertenece pato.


?- pertenece(pato,X).
X = anseriformes.
La siguiente pregunta muestra todas las familias de aves almacenadas en la base
de conocimiento.
?- familia(X).
X = anatidae ;
X = cathartidae ;

X = odontophoridae ;
X = psittacidae ;
X = estrigidae ;
X = corbidos ;
X = turtidae ;
X = columbidae ;
X = cracidae ;
X = phasinidae ;
X = alaudidos ;
X = ardidae ;
X = hirundidae ;
X = trochilidae ;
X = picidae ;
X = falconidae

La siguiente pregunta da como resultado falso porque no se encuentra en la base


de conocimiento.
?- familia(tabla).
false.
3?- ave(y).
false.
?- orden(asendente).
false.
Aqu se pregunta que ave y a que familia pertenece.
?- pertenece_familia(X,Y).
X = pato,
Y = anatidae ;
X = zopilote,
Y = cathartidae ;
X = codorniz,
Y = odontophoridae ;
X = perico,
Y = psittacidae ;
X = bho,
Y = estrigidae ;
X = cuervo,
Y = corbidos ;
X = ruiseor,
Y = turtidae ;

X = aguila,
Y = columbidae ;
X = chachalaca,
Y = cracidae ;
X = calandria,
Y = alaudidos ;
X = garza,
Y = ardidae ;
X = paloma,
Y = columbidae ;
X = tortola,
Y = columbidae ;
X = golodrina,
Y = hirundidae ;
X = colibri,
Y = trochilidae ;
X = tordo,
Y = columbidae ;
X = carpintero,
Y = picidae ;
X = halcon,
Y = falconidae ;
X = petirrojo,
Y = tutidae.

En esta consulta se especifica el ave para preguntar en que familia se


encuentra.
?- pertenece_familia(cuervo,Y).
Y = corbidos.
?- pertenece_familia(cuervo,X).
X = corbidos.
En esta pregunta se desea saber si alguien pertenece a la familia paloma, por lo
tanto es falso.
?- pertenece_familia(paloma,_).

false.
Muestra de que se alimenta el tordo.
?- se_alimenta(tordo,X).

X = insectos ;
X = gusanos ;
X = larvas.

La siguiente pregunta quien se alimenta y de que se alimenta.


?- se_alimenta(X,Y).
X = pato,
Y = insectos ;
X = pato,
Y = algas ;
X = pato,
Y = peces ;
X = zopilote,
Y = insectos ;
X = zopilote,
Y = animales_muertos ;
X = codorniz,
Y = granos ;
X = codorniz,
Y = insectos ;
X = codorniz,
Y = frutos ;
X = perico,
Y = frutas ;
X = perico,
Y = nueces ;
X = bho,
Y = ratones ;
X = bho,
Y = insectos ;
X = cuervo,
Y = plantas ;
X = cuervo,

Y = insectos ;
X = ruiseor,
Y = plantas ;
X = ruiseor,
Y = granos ;
X = ruiseor,
Y = frutos ;
X = ruiseor,
Y = animales ;
X = ruiseor,
Y = insectos ;
X = aguila,
Y = conejos ;
X = aguila,
Y = ardillas ;
X = chachalaca,
Y = brotes ;
X = chachalaca,
Y = bayas ;
X = chachalaca,
Y = fruto ;
X = chachalaca,
Y = hojas ;
X = chachalaca,
Y = tiernas ;
X = calandria,
Y = insectos ;
X = calandria,
Y = larbas ;
X = calandria,
Y = lombrices ;
X = calandria,
Y = frutos ;
X = garza,
Y = peces ;
X = paloma,
Y = granos ;
X = paloma,
Y = insectos ;
X = tortola,
Y = granos ;

X = tortola,
Y = semillas ;
X = tortola,
Y = flores ;
X = tortola,
Y = insectos ;
X = golondrina,
Y = mosquitos ;
X = golondrina,
Y = moscas ;
X = golondrina,
Y = tabanos ;
X = colibri,
Y = nectar_de_las_flores ;
X = tordo,
Y = insectos ;
X = tordo,
Y = gusanos ;
X = tordo,
Y = larvas ;
X = halcon,
Y = mamiferos ;
X = halcon,
Y = anfibios ;
X = petirrojo,
Y = insectos ;
X = petirrojo,
Y = lombrices ;
X = petirrojo,
Y = araas ;
X = petirrojo,
Y = caracoles ;
X = petirrojo,
Y = bayas.

Muestra el color del ave.


?- color_ave(halcon,X).

X = pardo_rojiso.
Muestra el ave y el color de las aves
19 ?- color_ave(X,Y).

X = pato,
Y = blanco ;
X = pato,
Y = marron_obscuro ;
X = zopilote,
Y = negro ;
X = codorniz,
Y = negro_sobre_fondo_claro ;
X = perico,
Y = verde_violeta ;
X = bho,
Y = pardo_leonado_rayado ;
X = cuervo,
Y = negro ;
X = ruiseor,
Y = marron_rojizo ;
X = chachalaca,
Y = pardo_olivo ;
X = calandria,
Y = amarrillo_vivo ;
X = paloma,
Y = gris_azulado ;
X = tortola,
Y = gris_pardo ;
X = golondrina,
Y = plumaje_negro ;
X = colibri,
Y = verde_esmeralda ;
X = tordo,
Y = negro ;
X = halcon,
Y = pardo_rojiso.

Muestra en donde habitan las aves.


?- habitat(calandria).
X = arboles.

?- habitat(X,Y).

X = pato,
Y = embalses ;
X = pato,
Y = lagos ;
X = pato,
Y = pantanos ;
X = zopilote,
Y = todo_tipo_de_terreno ;
X = codorniz,
Y = campos_cultivados ;
X = codorniz,
Y = pastizales ;
X = perico,
Y = selvas_tropicales ;
X = perico,
Y = bosques_secos ;
X = bho,
Y = zona_boscosa ;
X = bho,
Y = laderas_del_monte ;
X = cuervo,
Y = zona_boscosa ;
X = cuervo,
Y = montaosa ;
X = cuervo,
Y = matorral ;
X = ruiseor,
Y = bosques ;
X = ruiseor,
Y = jardines ;
X = ruiseor,
Y = parques ;
X = ruiseor,

Y = setos ;
X = ruiseor,
Y = huertos ;
X = aguila,
Y = montaas ;
X = aguila,
Y = peasco ;
X = chachalaca,
Y = matorral ;
X = calandria,
Y = arboles ;
X = calandria,
Y = parques ;
X = calandria,
Y = jardines ;
X = garza,
Y = orilla_rios ;
X = garza,
Y = areas_costeras ;
X = paloma,
Y = patios ;
X = paloma,
Y = parques ;
X = tortola,
Y = campos ;
X = tortola,
Y = bosques ;
X = golondrina,
Y = pueblos ;
X = golondrina,
Y = cuidad_pequea ;
X = golondrina,
Y = padros_de_cereal ;
X=golondrina,
Y = praderas ;
X = golondrina,
Y = huertos ;
X = colibri,
Y = bosques_lluviosos ;
X = tordo,
Y = bosques ;

X = tordo,
Y = matorrales ;
X = tordo,
Y = selva ;
X = tordo,
Y = tropicales ;
X = carpintero,
Y = bosques ;
X = carpintero,
Y = arboladas ;
X = halcon,
Y = zonas_boscosa ;
X = petirrojo,
Y = bosque_frondosos_mixtos ;
X = petirrojo,
Y = parques ;
X = petirrojo,
Y = setos

Esta pregunta es para saber la region al que se encuentra algun ave.


?- region(pato,X).

X = veracruz ;
X = san_luis_potosi.

Esta pregunta es para mostrar que ave pertenece a una region en especifico.
?- region(X,veracruz).

X = pato ;
X = zopilote ;
X = codorniz ;
X = perico ;
X = bho ;
X = cuervo ;
X = ruiseor.

?- region(X,hidalgo).

X = golondrina ;
X = colibri ;

X = codorniz ;
X = tordo ;
X = carpintero ;
X = cuervo ;
X = halcon ;
X = petirrojo.

?- region(X,san_luis_potosi).

X = pato ;
X = aguila ;
X = chachalaca ;
X = codorniz ;
X = calandria ;
X = garza ;
X = paloma ;
X = trtola.

Aqu se muestra si alguien pertenece algn estado definido en la base de


conocimiento
?- region(_,hidalgo).
true .

X = corbidos ;
X = turtidae ;
X = columbidae ;
X = cracidae ;
X = phasinidae ;
X = alaudidos ;
X = ardidae ;
X = hirundidae ;
X = trochilidae ;
X = picidae ;
X = falconidae

Aqu se pregunta que ave y a que familia pertenece.

?- pertenece_familia(X,Y).
X = pato,
Y = anatidae ;

X = zopilote,
Y = cathartidae ;
X = codorniz,
Y = odontophoridae ;
X = perico,
Y = psittacidae ;
X = bho,
Y = estrigidae ;
X = cuervo,
Y = corbidos ;
X = ruiseor,
Y = turtidae ;
X = aguila,
Y = columbidae ;
X = chachalaca,
Y = cracidae ;
X = calandria,
Y = alaudidos ;
X = garza,
Y = ardidae ;
X = paloma,
Y = columbidae ;
X = tortola,
Y = columbidae ;
X = golodrina,
Y = hirundidae ;
X = colibri,
Y = trochilidae ;
X = tordo,
Y = columbidae ;
X = carpintero,
Y = picidae ;
X = halcon,
Y = falconidae ;
X = petirrojo,
Y = tutidae.

CONCLUCIN
Prolog es una herramienta sencilla y til para el desarrollo de sistemas expertos
en inteligencia artificial.
Prolog se utiliza en aplicaciones de inteligencia artificial y tiene la ventaja que el
programa revisa la base de conocimientos para encontrar soluciones a las
preguntas, basndose en la informacin almacenada en la base de conocimiento.
La desventaja que esto posee, es que la resolucin automtica no siempre es
eficiente.