IA-Cristobal Núñez Sánchez

29
Página 1 de 29 Práctica en Prolog -FUNDAMENTOS DE INTELIGENCIA ARTIFICIAL CURSO 2012-2013 MUNDO VIRTUAL “LAS TELENOVELAS”

Transcript of IA-Cristobal Núñez Sánchez

Page 1: IA-Cristobal Núñez Sánchez

Página 1 de 29

Práctica en Prolog -FUNDAMENTOS DE INTELIGENCIA ARTIFICIAL

CURSO 2012-2013

MUNDO VIRTUAL“LAS TELENOVELAS”

Page 2: IA-Cristobal Núñez Sánchez

Página 2 de 29

ÍNDICE

Datos Alumno y Enunciado Práctica Página 3 0. Introducción Página 3 1. Descripción del conocimiento del dominio Página 3 2. Metodología de desarrollo simplificada Página 8 3. Descripción de base de reglas y hechos Página 8 4. Código comentado en Prolog Página 13 5. Casos de prueba necesarios para mostrar que el sistema responde a las funcionalidades requeridas Página 20 6. Informe breve de las dificultades encontradas Página 26 Anexo Página 28

Page 3: IA-Cristobal Núñez Sánchez

Página 3 de 29

FUNDAMENTOS DE INTELIGENCIA ARTIFICIAL

CURSO 2012-2013

ACTIVIDAD OBLIGATORIA II. CONSTRUCCIÓN EN PROLOG DE UN SISTEMA BASADO EN REGLAS BÁSICO

Datos personales del alumno Nombre: Cristóbal Apellidos: Núñez Sánchez Centro Asociado: Las Palmas de Gran Canaria DNI: 44706314-H Enunciado

El objetivo de la práctica es desarrollar un Sistema Basado en Reglas que represente los hechos y reglas de un mundo virtual. Los alumnos habrán de documentarse sobre el conocimiento experto necesario y posteriormente codificarlo en Prolog de forma que la aplicación exhiba las funcionalidades deseadas. El conocimiento experto podrá proceder de recursos bibliográficos o de Internet, expertos humanos, pericia de los propios alumnos, etc.

MUNDO VIRTUAL ELEGIDO: LAS TELENOVELAS

0. Introducción

Antes de comenzar con la redacción de la presente memoria expongo brevemente el concepto de mundo virtual: “Un mundo virtual es un tipo de comunidad virtual en línea que simula un mundo o entorno artificial inspirado o no en la realidad, en el cual los usuarios pueden interactuar entre sí a través de personajes o avatares, y usar objetos o bienes virtuales”* Para esta práctica el tema que he seleccionado son las Telenovelas y la codificación de dicho mundo virtual la he realizado utilizando programación lógica, que es un paradigma que aplica el conocimiento proveniente del campo de la lógica matemática al desarrollo de programas. El software en concreto es Prolog. 1. Descripción del conocimiento del dominio.

Para simular el mundo virtual de las Telenovelas se ha implementado un sistema basado en reglas (SBR), que contendrá una base de conocimiento con sus reglas, y una base de hechos inicial que a medida que se vaya interactuando se irá acumulando en la memoria de trabajo todos los hechos establecidos. La elección del tema “Las Telenovelas” ha sido motivado por el sentido humorístico que se puede representar, dando lugar a situaciones rocambolescas, personajes que por sus particulares nombres y características dan mucho juego, y como no, los diálogos que suelen contener, estos son motivo para pensar en el desarrollo de situaciones cómicas que espero haber podido plasmar en dicho mundo virtual. *(fuente wikipedia)

Universidad Nacional de Educación a Distancia

Escuela Técnica Superior de Ingeniería Informática Departamento de Inteligencia Artificial

Page 4: IA-Cristobal Núñez Sánchez

Página 4 de 29

Aunque el tema seleccionado haya sido las telenovelas, el conocimiento inicial del mismo era mínimo, recuerdo haber visto hace muchos años episodios de telenovelas como “La Dama de Rosa”, “Cristal” e incluso alguna americana como “Dinastía” o “Falcón Crest”. Para ir adquiriendo conocimiento de la materia que mejor forma que preguntar a algún familiar que siga este tipo de series, así que consulté con mi abuela y mi madre que han sido las que me han resumido algunas de las telenovelas actuales. Todas estas tienen muchísimas cosas en común:

• Suelen enganchar a un público determinado. • La mayoría están relacionadas con el amor. • La estructura suele ser prácticamente la misma. • Los personajes habitualmente tienen las mismas características. • El final siempre es feliz.

Con la información proporcionada por mis familiares ya tenía una idea inicial de cómo simular el mundo virtual de las telenovelas, pero era insuficiente para estructurar la base de conocimientos, las reglas y la base de hechos del SBR. Para profundizar en el tema realicé diferentes consultas a Internet:

• Datos sobre telenovelas en http://es.wikipedia.org/wiki/Telenovela • Otro punto de vista en http://inciclopedia.wikia.com/wiki/Telenovela • Algunas frases de telenovelas en

http://www.allthelikes.com/application.php?app=142117861827 y en http://applications.frenys.com/webapp/index.php?quoteId=856868&ref=webappForBot

Con toda esta información ahora si que mi base de conocimiento rebosaba de sabiduría linda, lo último que me faltaba era ver algún episodio y comprobar in situ los documentos obtenidos de la red, así que me planté en casa de mi madre para ver “Corona de lágrimas”, telenovela producida por televisa (una de las más importante en la producción de telenovelas) cuya sinopsis es la siguiente: “Cuando Refugio y sus tres hijos, Patricio, Edmundo e Ignacio son echados de su hogar, por azares del destino llegan a la ciudad de México, donde inician una nueva vida. Dieciocho años después, ya se han establecido en un pequeño departamento en zona popular. Ella tiene un trabajo modesto, y aunque padece graves problemas de la vista, no cuida su salud por atender las necesidades de sus hijos. Patricio estudia Leyes y sueña con un futuro cómodo y próspero; Edmundo estudia Medicina y es un alumno brillante aunque indisciplinado, e Ignacio sólo pudo terminar la secundaria porque trabaja en un taller mecánico, pues ayuda a su mamá a pagar los gastos de la casa y los estudios de sus hermanos.” Tras ver el doble capítulo pude comprobar que todo lo que se dice de las telenovelas es cierto, prácticamente todas son iguales y van en el mismo sentido, es decir:

1. El argumento suele desarrollarse en una serie de etapas que suelen guardar el mismo orden.

2. El prólogo se podría definir como una presentación de los personajes y el fondo sobre el

cual pretenden situarnos en la historia. Puede ser que nos hablen del pasado de los padres de los protagonistas y su interacción, lo cual define los conflictos con los que comienza la historia. Usualmente esto termina con el primer contacto entre los personajes principales, tanto el héroe y la heroína como los villanos.

3. El héroe y la heroína se conocen, al principio pueden tener una relación difícil, ya sea por rivalidades, conflictos familiares, que andan en otras relaciones (usualmente con un

Page 5: IA-Cristobal Núñez Sánchez

Página 5 de 29

villano(a) o alguien que morirá a manos del villano) o simplemente no han dado con la chispa, pero pronto se vuelven pareja. Mientras tanto empezamos a conocer mejor los motivos de los villanos y vemos cómo va maquinando una complicada cadena de acciones que busca hundir a sus enemigos; esta cadena de acciones puede ser decisiva para que una novela tenga éxito o no.

4. Mientras la relación de la pareja llega a un tope (se casan por el civil, consuman su relación o tienen la cita más dulce de su vida), el villano por fin logra que sus acciones afecten directamente a los personajes más importantes, a veces provocando que la relación de los héroes se caiga dramáticamente y los personajes se hundan en depresión, vicios o enfermedades. Por si fuera poco, la heroína puede quedar embarazada y tiene usualmente a su hijo en la soltería, lo cual provoca aún más escándalos. Si el villano tiene aún más éxito, el galán o la heroína pueden quedar inmiscuidos en un delito que no cometieron cayendo en la cárcel, a merced de quedar allí para siempre.

5. La Etapa Culminante, también llamada Etapa Cumbre o Decisiva, es el punto en donde una telenovela comienza a llegar a su punto más alto y comienza la desesperación en la trama. Esta puede tomar parte o todo de la Etapa Final. Usualmente los personajes comienzan a encontrar huecos que ayudan a debilitar el poder del villano, a encontrar evidencias que prueban que el amor nunca se ha perdido o que todo fue una maquinación para provocar el desdén entre los protagonistas. Poco a poco caen personajes clave, tanto del lado de los buenos como del lado de los malos, lo cual empieza a mostrar cada vez más a todos los personajes las fechorías del villano y poco a poco los héroes toman acción para remediarlo todo y ventilar a los demás lo peligroso que es el rival.

6. Es la etapa donde una telenovela se encuentra en momento de crisis. Esta etapa puede tomar una parte o la totalidad de los Capítulos Finales. Usualmente el villano, al verse completamente descubierto, decide emprender una arriesgada jugada que va a poner en peligro a varios personajes clave, principalmente los protagonistas, el objetivo es acabar con ellos y borrar toda evidencia de las cosas que le acusan. En estas etapas, nuevamente el amor es puesto a prueba, ya sea por el peligro que corre la heroína por las maquinaciones del villano o por una súbita enfermedad que la pone en peligro de muerte, provocada por la angustia de los eventos.

7. Son, como su nombre lo indica, los últimos capítulos de una telenovela que comprenden de 10-15 ó 20 Capítulos. Esta etapa en algunas ocasiones se divide en "Últimas semanas" (2), "últimos capítulos" (10) y puede tomar parte o todo de la Semana Final.

8. Es el conjunto de 6 ó 5 (a veces menos) capítulos que vienen antes de los 3 capítulos finales que son el Antepenúltimo Capítulo, el Penúltimo Capítulo y el Capítulo Final. En algunas telenovelas de Televisa, el capítulo final puede ser un especial de dos horas transmitido en horario estelar para mostrar por fin el desenlace de la trama, usualmente feliz. En el caso de las novelas infantiles o juveniles, el final pasa a un concierto en vivo de los protagonistas. En la mayor parte de las novelas todas las tramas deben quedar resueltas, tanto las de los personajes principales (los héroes se casan, los villanos finalmente caen en la cárcel, mueren, se vuelven locos o simplemente se alejan, aunque en ocasiones puede ocurrir que por algún motivo se rediman, cambien su conducta y procuren deshacer el mal causado, con diferente suerte positiva o negativa) como de los personajes secundarios (quienes usualmente encuentran la felicidad de una manera u otra al estar del lado de los protagonistas, o sufren un trágico destino al tomar parte del lado equivocado).

El sentido del humor que he querido aplicar al mundo virtual está relacionado con los personajes, las relaciones familiares, enemistades, amores y desamores, con las características que suelen tener (actores con cuerpazos, ricos, pobres, terrateniente, etc), a

Page 6: IA-Cristobal Núñez Sánchez

Página 6 de 29

todo esto le he añadido un conjunto de diálogos entre los personajes principales, y el villano de turno potenciando aún más el mundo virtual. Para finalizar y una de las cosas más importante en toda telenovela es el título, el cual deberá de ser corto, atractivo y sin lugar a dudas a la mayoría nos suele resultar bastante gracioso. Con todo esto obtendremos un mundo virtual dónde a partir de la elección del guionista de la historia (que será con quién se interactué en el sistema ya que conocerá toda la historia, todos sus personajes y el final de la misma) se irá elaborando el reparto, las características de los personajes, los diálogos en los diferentes actos, y para terminar el título, que será una de las metas del sistema. Esto me ha llevado a pensar que tal como va el país se podría ir a México lindo y con nuestro mundo virtual presentarnos en televisa y formar parte de su plantilla de guionistas (sin desvelar claro está que utilizamos la Inteligencia Artificial), seguro que mal encaminado no se va, y así poder conocer en primera persona a María Alejandra, Roberto Federico, etc. Llegados a este punto les invito a construir la primera telenovela producida por la Uned para televisa internacional, pues si en este momento continúan con la lectura se perderá el aliciente cómico. NOTA: El sistema arranca con “telenovela.pl” y realizando la consulta “¿-chevere.” El SBR tendrá que determinar el libreto de una Telenovela, esta se realiza de la siguiente manera:

1. Se selecciona el guionista (interlocutor) de una lista de famosos nombres. 2. Se selecciona el reparto principal. Para actriz principal de una lista de nombres

femeninos y para el actor principal de una lista de nombres masculinos, como el villano puede ser hombre o mujer se unifican ambas listas y se elige el villano principal.

3. Se añaden características a personajes principales (como pueden ser guapos, cuerpazo, vegetariano, alcohólico, ludópata, etc.)

4. Se introduce un número de personajes secundarios para el resto del reparto. Los nombres de los mismos se obtiene de la lista unificada. (Cada vez que se selecciona un elemento de la lista es eliminado para que no haya repeticiones de personajes con el mismo nombre).

5. Se elige dónde comienza la historia (de posibles escenarios). 6. Se añade según el acto en el que se está una serie de diálogos entre los personajes

principales que da una idea del guión inicial. 7. Por último se obtiene el título de la telenovela.

Cómo se comprobará al entrar en el mundo virtual, en todo momento podremos realizar una serie de preguntas al guionista para que nos muestre la evolución de los personajes, quién es padre de quién, a quien ama tal personaje, mostrar todas las relaciones, las características de los mismos, etc. Para que quede de forma estructurada, clara, precisa e inequívoca he realizado el siguiente diagrama que da una idea de la base de conocimiento, reglas y hechos iniciales que contiene el SBR. NOTA: En este punto de la memoria no he añadido las diferentes listas, constantes, reglas, etc del que dispone el SBR. Al ver el código se observará claramente cada una de las partes que lo componen,

Page 7: IA-Cristobal Núñez Sánchez

Página 7 de 29

Page 8: IA-Cristobal Núñez Sánchez

Página 8 de 29

2. Metodología de desarrollo simplificada.

Para abordar la práctica, de forma cronológica, realicé las siguientes tareas:

1. Estudio del Tema 2 Lógica y representación del conocimiento. 2. Estudio del Tema 3 Sistemas basados en reglas. 3. Estudio del Tema 4 Redes Semánticas y marcos. 4. Instalación del Software SWI-Prolog. 5. Lectura de Manuales de Prolog (obtenidos de los enlaces proporcionados por el equipo

docente). 6. A medida que iba probando el intérprete de Prolog, fui adquiriendo conocimientos sobre

el mundo virtual de las telenovelas. 7. Comienzo a construir la práctica y la divido en subtareas:

7.1 Seleccionar un elemento al azar de la lista de guionistas y añadirlo a la base de

hechos. 7.2 Seleccionar el reparto principal. En esta tarea tuve que lidiar con la

concatenación y eliminación de elementos de lista, además de añadir y eliminar hechos.

7.3 Añadir el reparto de secundarios seleccionados de forma recursiva hasta llegar al número deseado.

7.4 Crear una lista de características y de forma arbitraria ir seleccionando y asignarlas.

7.5 Crear de forma ficticia un árbol genealógico con las relaciones familiares y personales de cada personaje. (Más adelante comento este apartado).

7.6 Crear reglas que a partir de los datos que se tiene puedan darme más información.

7.7 Mostrar información por pantalla. 7.8 Crear diálogos entre los personajes e ir añadiéndolos al SBR. 7.9 Seleccionar título.

8. Enlazar las diferentes tareas. 9. Realizar pruebas del sistema, de forma individual y completa. 10. Redacción de Memoria y entrega.

La metodología empleada no difiere en absoluto con la de otro software, se parte de un análisis de requisitos, se realizan diferentes propuestas que cumplan dichos requisitos, se toma decisión de las propuestas iniciales, se realiza un planning de desarrollo por tareas, diseño del sistema, implementación, pruebas concretas, depuración y puesta en marcha. 3. Descripción de base de reglas y hechos.

En primer lugar expongo las diferentes listas de dónde se obtiene información que nos hará falta para construir la telenovela y una serie de hechos sobre los posible personales. Listas definidas guionistasDisponibles-> Selección de guionistas mujeresDisponibles-> Selección de actriz principal hombresDisponibles-> Selección de actor principal situacionesDisponibles-> Escenario, comienzo de la telenovela listaxxx->Listas Disponibles de Frases típicas de actores de telenovelas listafinalfeliz->Final de telenovela listatitulos->Títulos disponibles

Page 9: IA-Cristobal Núñez Sánchez

Página 9 de 29

Hechos iniciales Se han establecido una serie de hechos iniciales que de pie a formar todo el lio de la telenovela, se tiene %****** FALLECIDOS ****** fallecido(X). %****** PADRES-MADRES ****** espadre(X,Y). esmadre(X,Y). %****** MATRIMONIOS ****** estacasada(X,Y). estadivorciada(X,Y). %****** SENTIMIENTOS ****** estaenamorada(X,Y). esamigo(X,Y). esenemigo(X,Y). %****** EDAD DE LOS PERSONAJES ****** edad(X,Y). Reglas A partir de los hechos iniciales se pueden obtener con las siguientes reglas más información, objetivo principal de los SBR. %****** DEDUCCIONES ****** estavivo(X):-fallecido(X),!,write('Fallecido/a'),edad(X,Y),nonvar(Y),write(Y). estavivo(X):-write(' Vivo/a'),edad(X,Y),nonvar(Y),write(Y). eshija(X,Y):-(espadre(X,Y);esmadre(X,Y)). eshermana(X,Y):-(esmadre(Z,X),esmadre(Z,Y),X\=Y;espadre(Z,X),espadre(Z,Y),X\=Y). esabuelo(X,Y):-espadre(X,Z),eshija(Z,Y). esabuela(X,Y):-esmadre(X,Z),eshija(Z,Y). esnieto(X,Y):-(esabuelo(Y, X);esabuela(Y, X)). matrimonio(X):-(estacasada(X,Y);estacasada(Y,X)),!,write(' Matrimonio con '),nonvar(Y),write(Y),estavivo(Y). matrimonio(X):-(estadivorciada(X,Y);estadivorciada(Y,X)),!,write(' Divorcio con '),nonvar(Y),write(Y),estavivo(Y). matrimonio(X):-write(' (Por ahora Soltero/a)'). esviuda(X,Y):-fallecido(Y),estacasada(X,Y),!,write(' por lo tanto es Viudo/a'). esviuda(X,Y):-true. chevere -> %Comienzo del mundo virtual, Pasos iniciales de toda telenovela castingPrincipal(Perso) -> %Se selecciona el casting principal->De la lista de mujeres disponibles se selecciona la actriz principal, de la lista de hombres disponibles se selecciona el actor principal, el villano puede ser hombre o mujer, se unen ambas listas previa eliminación de actor y actriz principal, de la lista resultante se elige el villano. Se elimina de la lista y queda una nueva para el resto del reparto. obtenerElemento(Lista,Seleccionado)-> %Obtener al azar un elemento de una lista dada por parámetro %Operaciones basicas de listas, eliminar elementos, concatenar dos listas elimina(X,[X|T],T).

Page 10: IA-Cristobal Núñez Sánchez

Página 10 de 29

elimina(X,[H|T],[H|T1]):- elimina(X,T,T1). concatenar([],L,L). concatenar([X|L1],L2,[X|L3]):-concatenar(L1,L2,L3). eligeGuionista(Persona)-> %Elige guionista al azar de la lista de disponible mensaje-> Muestra las opciones disponibles y de consulta limpia->%Limpia pantalla en prolog casting(Num)-> %Llama a función recursiva que genera el reparto secundario castingSecundario(Persona,Num,Contador)-> %Función casting que recursivamente va seleccionando a los secundarios ponerCaracteristica(Persona,Rango)-> %Introduce caracteristicas de forma aleatoria a los personajes secundarios sinopsis->%Selecciona al azar el comienzo de la telenovela eligeSituacion(Situacion)-> %Elige situacion inicial al azar de la lista de disponible, como se conocen los galanes historia->%Crea un guión a partir de listas con tipicos dialogos de telenovelas muestraGuion(Frase,Secuencia)-> %Elige situacion al azar de la lista de disponible eligeTitulo(Titulo)-> %Elige un titulo al azar de la lista de disponible ver->%Imprime el reparto de la Telenovela carac->%Imprime las caracteristicas de los personajes familia(X)-> %Imprime las relaciones familiares del elenco sentimiento(X)-> %Imprime los sentimientos de cada personaje obra->%Imprime el guion parcial de la historia telenovela->%Imprime el titulo y el final... Aunque se podrá observar en el código, el SBR cumple con los requisitos iniciales de la práctica y descritos por el equipo docente: Requisitos del sistema: Se habrán de definir:

• 2 o más constantes -> Listas de nombres, frases, etc.

• 2 o más hechos con variables y 2 o más sin variables->fallecido(X), edad(X), chevere, limpia, esmadre(X,Y),esamigo(X,Y), etc.

• 5 o más predicados->historia, mensaje, eligeGuionista(Persona),obra, familia(X).

• Al menos uno de los predicados habrá de definirse mediante 2 o más reglas-> eshermana(X,Y):-(esmadre(Z,X),esmadre(Z,Y),X\=Y;espadre(Z,X),espadre(Z,Y),X\=Y). También esabuelo(X,Y):-espadre(X,Z),eshija(Z,Y).

Page 11: IA-Cristobal Núñez Sánchez

Página 11 de 29

• Al menos uno de los predicados deberá tener 2 o más argumentos-> castingSecundario(Persona,Num,Contador), ponerCaracteristica(Persona,Rango)

• 2 o más reglas deberán constar de 2 o más antecedentes y la satisfacción de 2 o más objetivos habrá de requerir el encadenamiento de 2 o más reglas-> eshermana(X,Y):-(esmadre(Z,X),esmadre(Z,Y),X\=Y;espadre(Z,X),espadre(Z,Y),X\=Y). eligeGuionista(Persona):-guionistasDisponibles(Lista), obtenerElemento(Lista,Random), Persona=Random, assert(guionista(Persona)). ponerCaracteristica(Persona,Rango):- (Rango<3-> assert(esfeo(Persona)),assert(esinfiel(Persona)),assert(esvengativo(Persona)),assert(esalcoholico(Persona)); (Rango<6-> assert(esguapo(Persona)),assert(espobre(Persona)),assert(estraidor(Persona)),assert(esdivertido(Persona)); (Rango<9-> assert(esvegetariano(Persona)),assert(eshomosexual(Persona)),assert(esludopata(Persona)),assert(esbipolar(Persona)); (Rango<13-> assert(esrico(Persona)),assert(esdeportista(Persona)),assert(esmujeriego(Persona)),assert(esunlider(Persona)) )))).

• Al menos un ejemplo de uso de uno de los operadores aritméticos o relacionales predefinidos-> Se utilizan varios, asignación, comparación, etc.

• Al menos un ejemplo de recursividad-> A la hora de seleccionar los personajes secundarios, introducir frases en los dialógos.

• Al menos un ejemplo de uso de los predicados de inserción y borrado de hechos de la Base de Hechos-> al añadir características a los personajes (assert), eliminar de la lista (retract), etc.

Como anécdota me gustaría comentar que para la realización de los hechos relacionados con la familia y amigos (todo tirando de imaginación) tuve que dedicarle un tiempo a la creación original de los personajes y al enredo que inicialmente me supuso las relaciones entre los personajes, a tal punto que la definición realizada sobre una lista de personas y sus arcos se enredaban de tal manera que tuve que realizar el gráfico correspondiente. Dicho gráfico es un árbol genealógico al cuál se ha modificado para incluir relaciones amistosas, enemistades, etc.

Page 12: IA-Cristobal Núñez Sánchez

Página 12 de 29

Page 13: IA-Cristobal Núñez Sánchez

Página 13 de 29

4. Código comentado en Prolog

Se muestra el código de la implementación del mundo virtual: Telenovelas (Corresponde al fichero telenovela.pl) /* CONSTRUCCIÓN EN PROLOG DE UN SISTEMA BASADO EN REGLAS BÁSICO Grado: Ingenieria en Tecnologías de la Información Asignatura: FUNDAMENTOS DE INTELIGENCIA ARTIFICIAL Curso: 2012-2013. Actividad Evaluable II Alumno: Cristobal Nuñez Sanchez DNI:44706314H Centro Asociado: Las Palmas de Gran Canaria */ /* Tema: Las Telenovelas en un mundo virtual Comienzo: introduzca la palabra ?-chevere. */ %Listas predefinidas para seleccionar al azar uno o varios elementos guionistasDisponibles([franciso_jose_alegre_y_ole,margarita_se_llama_mi_amor,luis_antonio_gerardo_jesus_de_la_trinidad,conchita_del_mar_pescanova,maricarmen_peña_y_cuauhtemoc_blanco,enrique_torres_y_castillos,liliana_abud_ataud,jorge_caminante_arbusto,patricia_riete_unrato]). mujeresDisponibles([maria_fernanda,lucianita_guacimara,abigail_jazmin,esperanza_purificacion,roberta_federica,marianela_dolores,lupe_valentina,estrella_flor,florinda_clarisa,clarita_estefania,felicia_piedad,maria_victoria]). hombresDisponibles([jorge_jesus,antonio_david,fernando_roberto,daniel_alejandro,ricardo_lorenzo,luis_oswaldo,juan_del_diablo,lucerito_andres,sebastian_noriega,pancho_delatorre,ernesto_jose,eduardo_delacruz]). %Situaciones donde comienza la Telenovela, almacenadas en una lista situacionesDisponibles(['En el funeral de alberto_berto y maria_rosa tragicamente fallecidos en accidente de monopatin, surge el amor a primera vista, estaban predestinados','Una tarde de Diciembre, todo transcurre con normalidad en la Ciudad de la Plata hasta que rosalinda_elena la matriarca del clan Rodriguez fallece de un fuerte dolor en el dedo meñique del pie, su sirvienta y el apuesto médico se enamoran al instante','En el Rancho Conchita Fernandez Veracruz se celebra el rodeo benéfico anual para recoger fondos contra la lucha de la venta ilegal de carne de potro, cuando una desconocida participante es golpeada por su semental repetidas veces hasta que es salvada por el dueño del rancho, comienza un nueva historia de amor','Durante las vacaciones de verano el joven empresario heredero de una gran fortuna sufre un accidente con pirañas en la bañera de su hotel mientras jugaba con su hermoso patito amarillo, es trasladado urgentemente a las instalaciones del Zoo de Miami, dónde la ayudante del veterinario le realiza las curas, entre chillidos de dolor por el agua oxigenada se enamoran', 'Fin de Año en Rio de Janeiro el joven y apuesto presentador da las campanadas y mientras entre el publico, una fan incondicional se atraganta con las uvas, el presentador no duda ni un segundo y la salva baja la atenta mirada de los millones de telespectadores y de la joven parada (gemela de la tragauvas), el amor es el protagonista', 'Ciudad de Juarez una hermosa narcotrificante que es obligada por su malvado padrasto es capturada en una operacion antidroga por la polícia corrupta, salvo el joven teniente que al verla se enamora y la convierte en una infiltrada en el carter más peligroso de Mexico', 'Centro Comercial de Buenos Aires, primer dia de rebajas, en la tienda más chic de nombre Jing-Sen (tienda de chinos) comienza una pelea brutal por un vestido de 20 pesos, interviene el dueño de los grandes almacenes y le da la razón a la joven, surge el amor y la enemistad', 'Fiesta de compromiso de la mejor amiga de la infancia de la camarera con menos fortuna del pueblo, la tematica de la fiesta es superheroes, disfrazada de pocoyo conoce al prometido de su amiga que esta disfrazado de Bob Esponja, irremediablemte se enamoran, pero uno de los invitados el malvado villano pokemon se rebelará ante el amor surgido']). %Listas Disponibles de Frases típicas de actores de telenovelas %1.- Cuando se conocen, se enamoran y todo es tan bonito.... %Actor Principal - Actriz Principal listaunohm(['Jamas habia visto a una muchacha tan linda como tu','He sentido como mi corazon giraba una y mil veces al estar con vos','Dicen los dioses y afirman los sabios que para subir al cielo hay que besar tus labios','Nuestras almas se cruzaron por capricho del destino y tu eres lo mas bello que en mi vida jamas tendre','Ansio tus labios de placer, quiero recorrerlos suavemente mientras te acaricio, quiero acariciarte mientras te beso, quiero besarte mientras te amo','Eres mi dueña, tan solo me dominas con amor, tu amor es mi destino, tu eres mi camino, mandame que te ame, obedecere']). %Actriz Principal - Actor Principal listaunomh(['Antes no te conocía, ni pensaba conocerte ahora que te conozco no puedo vivir sin verte, papito mio','Te amo y no importa que sea la primera o segunda vez que te veo en mi vida','Juro ante Dios y la Virgen Santa Teresa que sere tuya por siempre','Mi amor por ti es mas valioso que toda la plata del mundo','Aspiro a ti, a sentir cada mañana la maravilla de tu despertar, a bañarme en el aroma de tu amor, a rodearme de las caricias de tus manos aspiro a ti' ,'Aqui es donde comenzo nuestro beso, largo e infinito, aquí fue donde murieron nuestras lagrimas, crueles y tristes, aqui nacio el amor y aqui estamos tu y yo']). %Villano - Actores

Page 14: IA-Cristobal Núñez Sánchez

Página 14 de 29

listaunov(['Esa pija puerca estuvo conmigo antes que contigo','No te fies, lo unico que quiere de ti es tu plata','A ti no te quiere, yo la amo y ella a mi, mira este video','Si sigues con ella, te mato, piojoso','Ella es tu hermana ilegitima me lo dijo alberto_berto antes de morir']). %2.- Separación de pareja por el Villano, el mas malo de todos %Actor Principal - Actriz Principal listadoshm(['No te preocupes bizcocho mio,volveremos a estar juntos','Puedo explicartelo, ¡no te vayas!','Esto es pecado,tu y yo, ¡somos hermanos!','De ahora en adelante sere otro y nadie volvera a jugar conmigo','¡No te quiero volver a ver mas nunca! si es verdad lo que dice el pendejo']). %Actriz Principal - Actor Principal listadosmh(['Vete, y no vuelvas mas, olvídate de que existo','Lo nuestro se acabo…yo no quiero solo tu plata','No!!! No debo!!! Sabes que nuestro amor esta prohibido!!!','Estoy embarazada y el hijo que espero ¡No es tuyo!','Yo ya no siento nada! , desde el dia que te revolcaste con esa muerta de hambre!']). %Villano - Actores listadosv(['Cuando acabe contigo desearas nunca haber nacido','Si no eres mia, no seras de nadie','Te quitare todo lo que amas,comienzo con tu gata Berta','No puedas estar con el, mato a maria_rosa y te matare a ti','Acabara contigo, es un pendejo descerebrado, yo si que te amo']). %3.- Venciendo al Villano pero con obstáculos familiares, hijos que aparecen... %Actor Principal - Actriz Principal listatreshm(['Siento haber dudado de ti, pero quien realmente mato a alberto_berto fue quien no se puede nombrar','Volvere a estar a tu lado dulce mamita','Tu madre no podra separarnos aunque sea una pobre diabla','Nuestro amor vencera tormentas y vendavales']). %Actriz Principal - Actor Principal listatresmh(['No te preocupes amado mio, ese bastardo ilegitimo no podra con nosotros','Se que tu me fuiste infiel, fue todo un montaje','Jurame que jamas me abandonaras, el hijo que estoy esperando es tuyo','Mi hermanastro no podra separarnos, yo te amo']). %Villano - Actores listatresv(['Esto no se ha acabado, volvere a por ti galan de . .','No me mates por favor soy bipolar, sere tu sirviente','A ella no la quiero te amo a ti','Venga chevere, que chido (bonito) eres, no me claves ese tenedor']). %4.- Se cierran todas las historias de amor , y hay fecha de boda %Actor Principal - Actriz Principal listacuatrohm(['Entonces, por fin estaremos juntos, hemos vencido al pendejo','Yo sigo siendo el rey, Elvis no es nada a mi lado, te amo','Por fin mi dulce preferido te comere siempre','Ya estamos juntos, todo ha ido bien como te prometi mamita mia']). %Actriz Principal - Actor Principal listacuatromh(['Te amare por siempre de los jamases','Como dijo confucio quien descubrio la confusion, ahora soy feliz','Monica Naranjo no esta muerta, Monica esta viva, ¡Monica soy yo!','Ya recuerdo quien eres, eres mi amado, mi deseo preferido']). %Villano - Actores listacuatrov(['A alberto_berto ¡nadie lo traiciona!, pero si soy un fantasma','Me conformare con Leticia Sabateres, es la mujer de mi vida','Yo les casaré me arrepiento de lo que le hecho pasar','Si yo soy culpable de asesinar a todas esas personas']). %5.- Finales felices con boda listafinalfeliz(['El amor nace de una mirada, crece de una ilusión, se alimenta de los besos y muere de una traicion, nos casamos','Sabes vida mia que cuando cae el Sol la Luna brilla limpia y pura pues tu la iluminas con tu amor, que chevereeee' ,'Soñe que el fuego helaba, que la nieve ardia y para soñar lo imposible, lo hemos conseguido, por fin después de 8000 episodios' ,'Por fin seremos felices y nos encontraremos en la proxima telenovela, el rodaje empieza mañana']). %Titulos posibles para la Telenovela almacenados en una Lista listatitulos(['Corona de lagrimas','Cachito de cielo','La mujer del vendaval','Absimo de pasion','Amor bravio','El alma herida','Los herederos del monte','Turbante de pasión','Acuarela de amor','Soy tu dueña y tu mi esclavo','Pobre Diabla y Rico Cobarde','Alma y piruleta','Rosalinda y la Usurpadora','Tormenta de Emanens y smarties','Destilando amor de cristal','Madre Luna Padre Sol','Linux Rodolfo el Indomable']). %Predicados que cambian dinamicamente

Page 15: IA-Cristobal Núñez Sánchez

Página 15 de 29

:-dynamic listasecundario/1,actrizprincipal/1,actorprincipal/1,villanoprincipal/1,guionista/1,protagsecundario/1,capitulocero/1,guion/1,titulo/1,esguapo/1,espasional/1,tienecuerpazo/1,esenamoradiza/1,entredosamores/1,malafortuna/1,esgalan/1,esterrateniente/1,esrico/1,esvengativo/1,esmujeriego/1,estraidor/1,escorrupto/1,esfeo/1,esinfiel/1,esalcoholico/1,espobre/1,esdivertido/1,esvegetariano/1,eshomosexual/1,esludopata/1,esbipolar/1,esdeportista/1,esunlider/1,estavivo/1. %Relaciones Familiares %****** FALLECIDOS ****** fallecido(alberto_berto). fallecido(maria_rosa). fallecido(rosalinda_elena). fallecido(romina_luz). fallecido(fortunato_javier). %****** PADRES-MADRES ****** espadre(alberto_berto,rosalinda_elena). espadre(alberto_berto,romina_luz). espadre(alberto_berto,roberta_federica). espadre(alberto_berto,juan_del_diablo). espadre(pancho_delatorre,lupe_valentina). espadre(pancho_delatorre,maria_fernanda). espadre(fortunato_javier,lucianita_guacimara). espadre(fortunato_javier,clarita_estefania). espadre(sebastian_noriega,florinda_clarisa). espadre(fernando_roberto,lucerito_andres). espadre(fernando_roberto,antonio_david). esmadre(maria_rosa,rosalinda_elena). esmadre(maria_rosa,romina_luz). esmadre(maria_rosa,roberta_federica). esmadre(maria_rosa,juan_del_diablo). esmadre(rosalinda_elena,abigail_jazmin). esmadre(romina_luz,estrella_flor). esmadre(roberta_federica,lupe_valentina). esmadre(roberta_federica,maria_fernanda). esmadre(maria_fernanda,lucianita_guacimara). esmadre(esperanza_purificacion,florinda_clarisa). esmadre(florinda_clarisa,clarita_estefania). esmadre(marianela_dolores,maria_victoria). esmadre(marianela_dolores,felicia_piedad). esmadre(maria_victoria,lucerito_andres). esmadre(florinda_clarisa,antonio_david). sonhermanas(esperanza_purificacion,marianela_dolores). %****** MATRIMONIOS ****** estacasada(maria_rosa,alberto_berto). estacasada(roberta_federica,pancho_delatorre). estacasada(maria_fernanda,fortunato_javier). estacasada(florinda_clarisa,fortunato_javier). estadivorciada(esperanza_purificacion,sebastian_noriega). estadivorciada(maria_victoria,fernando_roberto). %****** SENTIMIENTOS ****** estaenamorada(abigail_jazmin,ricardo_lorenzo). estaenamorada(estrella_flor,luis_oswaldo). estaenamorada(marianela_dolores,sebastian_noriega). estaenamorada(juan_del_diablo,eduardo_delacruz). estaenamorada(felicia_piedad,jorge_jesus). estaenamorada(felicia_piedad,daniel_alejandro). estaenamorada(marianela_dolores,juan_del_diablo). estaenamorada(florinda_clarisa,fernando_roberto). esamigo(abigail_jazmin,luis_oswaldo). esamigo(lupe_valentina,ernesto_jose). esenemigo(luis_oswaldo,ricardo_lorenzo). esenemigo(eduardo_delacruz,jorge_jesus). %****** DEDUCCIONES ****** estavivo(X):-fallecido(X),!,write(' Fallecido/a en extrañas circunstancias a la edad de: '),edad(X,Y),nonvar(Y),write(Y). estavivo(X):-write(' Vivito/a y Coleando, edad: '),edad(X,Y),nonvar(Y),write(Y). eshija(X,Y):-(espadre(X,Y);esmadre(X,Y)).

Page 16: IA-Cristobal Núñez Sánchez

Página 16 de 29

eshermana(X,Y):-(esmadre(Z,X),esmadre(Z,Y),X\=Y;espadre(Z,X),espadre(Z,Y),X\=Y). esabuelo(X,Y):-espadre(X,Z),eshija(Z,Y). esabuela(X,Y):-esmadre(X,Z),eshija(Z,Y). esnieto(X,Y):-(esabuelo(Y, X);esabuela(Y, X)). matrimonio(X):-(estacasada(X,Y);estacasada(Y,X)),!,write(' Matrimonio con '),nonvar(Y),write(Y),estavivo(Y). matrimonio(X):-(estadivorciada(X,Y);estadivorciada(Y,X)),!,write(' Divorcio con '),nonvar(Y),write(Y),estavivo(Y). matrimonio(X):-write(' (Por ahora Soltero/a)'). esviuda(X,Y):-fallecido(Y),estacasada(X,Y),!,write(' por lo tanto es Viudo/a'). esviuda(X,Y):-true. %****** EDAD DE LOS PERSONAJES ****** edad(alberto_berto,78). edad(maria_rosa,75). edad(rosalinda_elena,51). edad(romina_luz,49). edad(roberta_federica,37). edad(pancho_delatorre,58). edad(esperanza_purificacion,51). edad(sebastian_noriega,54). edad(marianela_dolores,48). edad(juan_del_diablo,45). edad(abigail_jazmin,25). edad(estrella_flor,22). edad(lupe_valentina,20). edad(maria_fernanda,25). edad(fortunato_javier,35). edad(florinda_clarisa,32). edad(fernando_roberto,40). edad(maria_victoria,30). edad(felicia_piedad,24). edad(eduardo_delacruz,30). edad(jorge_jesus,25). edad(daniel_alejandro,22). edad(ricardo_lorenzo,28). edad(luis_oswaldo,24). edad(ernesto_jose,18). edad(lucianita_guacimara,5). edad(clarita_estefania,8). edad(antonio_david,10). edad(lucerito_andres,10). %Comienzo del mundo virtual, Pasos iniciales de toda telenovela chevere:- castingPrincipal(Perso), eligeGuionista(Persona), mensaje, fail. %Se selecciona el casting principal->De la lista de mujeres disponibles se selecciona la actriz principal %De la lista de hombres disponibles se selecciona el actor principal %El villano puede ser hombre o mujer, se unen ambas listas previa eliminación de actor y actriz principal %De la lista resultante se elige el villano. Se elimina de la lista y queda una nueva para el resto del reparto castingPrincipal(Perso):- mujeresDisponibles(Lista), obtenerElemento(Lista,Random), Perso=Random, assert(actrizprincipal(Perso)), assert(esguapo(Perso)), assert(espasional(Perso)), assert(tienecuerpazo(Perso)), assert(esenamoradiza(Perso)), assert(entredosamores(Perso)), assert(malafortuna(Perso)), hombresDisponibles(Listax), obtenerElemento(Listax,Randomx), Persox=Randomx, assert(actorprincipal(Persox)), assert(esguapo(Persox)), assert(espasional(Persox)), assert(tienecuerpazo(Persox)),

Page 17: IA-Cristobal Núñez Sánchez

Página 17 de 29

assert(esgalan(Persox)), assert(esterrateniente(Persox)), assert(esrico(Persox)), elimina(Perso,Lista,Listamujeres), elimina(Persox,Listax,Listahombres), concatenar(Listamujeres,Listahombres,Listaunida), assert(listasecundario(Listaunida)), listasecundario(Listay), obtenerElemento(Listay,Randomy), Persoy=Randomy, assert(villanoprincipal(Persoy)), assert(esvengativo(Persoy)), assert(esrico(Persoy)), assert(tienecuerpazo(Persoy)), assert(esmujeriego(Persoy)), assert(estraidor(Persoy)), assert(escorrupto(Persoy)), elimina(Persoy,Listay,Listanueva), retract(listasecundario(_)), assert(listasecundario(Listanueva)). %Obtener al azar un elemento de una lista dada por parámetro obtenerElemento(Lista,Seleccionado):- length(Lista,Longitud), Aleatorio is random(Longitud), nth0(Aleatorio, Lista, Seleccionado). %Operaciones basicas de listas, eliminar elementos, concatenar dos listas elimina(X,[X|T],T). elimina(X,[H|T],[H|T1]):- elimina(X,T,T1). concatenar([],L,L). concatenar([X|L1],L2,[X|L3]):-concatenar(L1,L2,L3). %Elige guionista al azar de la lista de disponible eligeGuionista(Persona):- guionistasDisponibles(Lista), obtenerElemento(Lista,Random), Persona=Random, assert(guionista(Persona)). mensaje:-limpia,write('Que Suerte hemos tenido!!, el guionista para este culebrón es:'),nl,nl, guionista(X),nonvar(X),write(X), write(' ganador de 5 premios TvyNovelas, disponible por tiempo limitado'),nl, write('(Unos 8000 capítulos aproximadamente......)'),nl,nl, write('Hola soy '),nonvar(X),write(X), write(' vamos a escribir una linda y chevere telenovela.'),nl,nl, write('****** OPCIONES DISPONIBLES ******'),nl,nl, write('-->Contratar a secundarios de lujo, para ello escribe---> casting(Numero).'),nl, write(' Recuerda que no hay mucha plata (Numero entre 4 y 8)'),nl,nl, write('-->Consultar el Reparto y Relaciones entre los personajes escribe---> ver.'),nl,nl, write('-->Características en común de los personajes escribe---> carac.'),nl,nl, write('-->Como comienza la historia escribe---> sinopsis.'),nl, write(' Se muestra comienzo, personajes y relaciones entre ellos.'),nl,nl, write('-->Me pongo manos a la obra, escribo el guion escribe---> historia.'),nl, write(' Para ver el resultado del libreto escribe---> obra.'),nl,nl, write('-->Finalizamos con el titulo acorde al guión elaborado escribe---> nombre.'),nl, write(' Título de la proxima ganadora TvyNovelas escribe---> telenovela.'),nl,nl, write('--> Recuerda para volver a ver esta ayuda escribe---> mensaje.'),nl,nl, write('CONSEJO LINDO: Establezca salida de prolog al archivo, para ello teclee---> tell(nombre_fichero).'),nl, write('CONSEJO LINDO: Siga los siguientes pasos: escriba---> casting(Numero).'),nl, write('CONSEJO LINDO: Siga los siguientes pasos: escriba---> carac.'),nl, write('CONSEJO LINDO: Siga los siguientes pasos: escriba---> sinopsis.'),nl, write('CONSEJO LINDO: Siga los siguientes pasos: escriba---> historia.'),nl, write('CONSEJO LINDO: Siga los siguientes pasos: escriba---> obra.'),nl, write('CONSEJO LINDO: Siga los siguientes pasos: escriba---> nombre.'),nl, write('CONSEJO LINDO: Siga los siguientes pasos: escriba---> telenovela.'),nl, write('CONSEJO LINDO: Finaliza escritura en fichero con---> told.'),nl, write('CONSEJO LINDO: Vovler a salida por pantalla---> tell(user).'),nl, write('****** FIN OPCIONES DISPONIBLES ******'),nl,nl. %Limpia pantalla en prolog

Page 18: IA-Cristobal Núñez Sánchez

Página 18 de 29

limpia:-write('\033[2J'). %Llama a función recursiva que genera el reparto secundario casting(Num):-castingSecundario(Persona,Num,0). %Función casting que recursivamente va seleccionando a los secundarios castingSecundario(Persona,Num,Contador):- Contador<Num, listasecundario(R), obtenerElemento(R,Random), Persona=Random, assert(protagsecundario(Persona)), random(0,12,Rango), ponerCaracteristica(Persona,Rango), elimina(Persona,R,T), retract(listasecundario(_)), assert(listasecundario(T)), Siguiente is Contador+1, castingSecundario(_,Num,Siguiente). %Introduce caracteristicas de forma aleatoria a los personajes secundarios ponerCaracteristica(Persona,Rango):- (Rango<3-> assert(esfeo(Persona)),assert(esinfiel(Persona)),assert(esvengativo(Persona)),assert(esalcoholico(Persona)); (Rango<6-> assert(esguapo(Persona)),assert(espobre(Persona)),assert(estraidor(Persona)),assert(esdivertido(Persona)); (Rango<9-> assert(esvegetariano(Persona)),assert(eshomosexual(Persona)),assert(esludopata(Persona)),assert(esbipolar(Persona)); (Rango<13-> assert(esrico(Persona)),assert(esdeportista(Persona)),assert(esmujeriego(Persona)),assert(esunlider(Persona)) )))). %Selecciona al azar el comienzo de la telenovela sinopsis:-eligeSituacion(Situacion), write('****** LA HISTORIA INTERMINABLE DE AMOR COMIENZA ******'),nl,nl, capitulocero(X),nonvar(X),write(X),write(' ellos son: '),nl,nl, ver. %Elige situacion inicial al azar de la lista de disponible, como se conocen los galanes eligeSituacion(Situacion):- situacionesDisponibles(Lista), obtenerElemento(Lista,Random), Situacion=Random, assert(capitulocero(Situacion)). %Crea un guión a partir de listas con tipicos dialogos de telenovelas historia:-muestraGuion(Frase,0). %Elige situacion al azar de la lista de disponible muestraGuion(Frase,Secuencia):- Siguiente is Secuencia+1, Siguiente < 6, ( Siguiente < 2 -> listaunohm(Lista),obtenerElemento(Lista,Random),Frase=Random,assert(guion(Frase)) ,listaunomh(Listax),obtenerElemento(Listax,Randomx),Frasex=Randomx,assert(guion(Frasex)) ,listaunov(Listay),obtenerElemento(Listay,Randomy),Frasey=Randomy,assert(guion(Frasey)) ,assert(guion('Fin Acto 1- Episodios del 1 al 2000 - Continuara...')),muestraGuion(Frase,Siguiente); (Siguiente<3-> listadoshm(Listados),obtenerElemento(Listados,Randomdos),Frasedos=Randomdos,assert(guion(Frasedos)) ,listadosmh(Listadosx),obtenerElemento(Listadosx,Randomdosx),Frasedosx=Randomdosx,assert(guion(Frasedosx)) ,listadosv(Listadosy),obtenerElemento(Listadosy,Randomdosy),Frasedosy=Randomdosy,assert(guion(Frasedosy)) ,assert(guion('Fin Acto 2- Episodios del 2001 al 4000 - Continuara...')),muestraGuion(Frase,Siguiente); (Siguiente<4-> listatreshm(Listatres),obtenerElemento(Listatres,Randomtres),Frasetres=Randomtres,assert(guion(Frasetres)) ,listatresmh(Listatresx),obtenerElemento(Listatresx,Randomtresx),Frasetresx=Randomtresx,assert(guion(Frasetresx)) ,listatresv(Listatresy),obtenerElemento(Listatresy,Randomtresy),Frasetresy=Randomtresy,assert(guion(Frasetresy)) ,assert(guion('Fin Acto 3- Episodios del 2001 al 4000 - Continuara...')),muestraGuion(Frase,Siguiente); (Siguiente<5-> listacuatrohm(Listacuatro),obtenerElemento(Listacuatro,Randomcuatro),Frasecuatro=Randomcuatro,assert(guion(Frasecuatro)) ,listacuatromh(Listacuatrox),obtenerElemento(Listacuatrox,Randomcuatrox),Frasecuatrox=Randomcuatrox,assert(guion(Frasecuatrox))

Page 19: IA-Cristobal Núñez Sánchez

Página 19 de 29

,listacuatrov(Listacuatroy),obtenerElemento(Listacuatroy,Randomcuatroy),Frasecuatroy=Randomcuatroy,assert(guion(Frasecuatroy)),assert(guion('Fin Acto 4- Episodios del 2001 al 4000 - Continuara...')),muestraGuion(Frase,Siguiente); (Siguiente<6-> listafinalfeliz(Listff),obtenerElemento(Listff,Randomff),Fraseff=Randomff,assert(guion(Fraseff)),assert(guion('Fin - Todos Felices comerieron Perdices y por fin se acabó.')),muestraGuion(Frase,Siguiente) ))))). %Elige un nombre al azar de la lista de disponible nombre:-eligeTitulo(Titulo). %Elige titulo al azar de la lista de disponible eligeTitulo(Titulo):-listatitulos(Lista),obtenerElemento(Lista,Random),Titulo=Random,assert(titulo(Titulo)). %Imprime el reparto de la Telenovela ver:-nl,write('--------->ACTRIZ PRINCIPAL<----------: '),actrizprincipal(X),nonvar(X),write(X),nl,nl,familia(X),nl,nl,fail. ver:-nl,write('---------->ACTOR PRINCIPAL <----------: '),actorprincipal(X),nonvar(X),write(X),nl,nl,familia(X),nl,nl,fail. ver:-nl,write('---------->EL MAS VILLANO <----------: '),villanoprincipal(X),nonvar(X),write(X),nl,nl,familia(X),nl,nl,fail. ver:-nl,write('-------->ListadeSECUNDARIOS<----------: '),nl,protagsecundario(X),nonvar(X),write(X),nl,nl,familia(X),nl,nl,fail. %Imprime las caracteristicas de los personajes carac:-write('****** CARACTERISTICAS FÍSICAS-PSIQUICAS DEL ELENCO DE LA TELENOVELA ******'),nl,nl,fail. carac:-write('Son GUAPOS (sin haberse operado): '),nl,esguapo(X),tab(15),nonvar(X),write(X),nl,fail. carac:-write('PASIONALES (con-sentimiento): '),nl,espasional(X),tab(15),nonvar(X),write(X),nl,fail. carac:-write('CUERPOS DE GIMNASIO: '),nl,tienecuerpazo(X),tab(15),nonvar(X),write(X),nl,fail. carac:-write('Se ENAMORA facilmente: '),nl,esenamoradiza(X),tab(15),nonvar(X),write(X),nl,fail. carac:-write('Tiene donde ELEGIR: '),nl,entredosamores(X),tab(15),nonvar(X),write(X),nl,fail. carac:-write('GALAN donde los haya: '),nl,esgalan(X),tab(15),nonvar(X),write(X),nl,fail. carac:-write('Le GUSTAN LAS MUJERES (Demasiado): '),nl,esmujeriego(X),tab(15),nonvar(X),write(X),nl,fail. carac:-write('Con MALA SUERTE: '),nl,malafortuna(X),tab(15),nonvar(X),write(X),nl,fail. carac:-write('TERRATENIENTE (inició BURBUJA inmobiliaria): '),nl,esterrateniente(X),tab(15),nonvar(X),write(X),nl,fail. carac:-write('Tiene MUCHO DINERO (no vive en España): '),nl,esrico(X),tab(15),nonvar(X),write(X),nl,fail. carac:-write('VENGATIVO (peor que los vengadores): '),nl,esvengativo(X),tab(15),nonvar(X),write(X),nl,fail. carac:-write('TRAIDOR (Adan o Eva): '),nl,estraidor(X),tab(15),nonvar(X),write(X),nl,fail. carac:-write('CORRUPTO (=Barcenas, y muchos mas...): '),nl,escorrupto(X),tab(15),nonvar(X),write(X),nl,fail. carac:-write('Son FEOS (por haberse operado): '),nl,esfeo(X),tab(15),nonvar(X),write(X),nl,fail. carac:-write('INFIEL (a lo instinto-básico): '),nl,esinfiel(X),tab(15),nonvar(X),write(X),nl,fail. carac:-write('Le gusta mucho una BOTELLA: '),nl,esalcoholico(X),tab(15),nonvar(X),write(X),nl,fail. carac:-write('POBRES (cada vez hay más más): '),nl,espobre(X),tab(15),nonvar(X),write(X),nl,fail. carac:-write('Siempre TE RIES: '),nl,esdivertido(X),tab(15),nonvar(X),write(X),nl,fail. carac:-write('Comen mucha LECHUGA: '),nl,esvegetariano(X),tab(15),nonvar(X),write(X),nl,fail. carac:-write('CARNE-CARNE: '),nl,eshomosexual(X),tab(15),nonvar(X),write(X),nl,fail. carac:-write('Le gusta mucho el JUEGO: '),nl,esludopata(X),tab(15),nonvar(X),write(X),nl,fail. carac:-write('CAMBIOS DE HUMOR (Repentinos): '),nl,esbipolar(X),tab(15),nonvar(X),write(X),nl,fail. carac:-write('MEDALLA OLIMPICO: '),nl,esdeportista(X),tab(15),nonvar(X),write(X),nl,fail. carac:-write('TODOS LE SIGUEN: '),nl,esunlider(X),tab(15),nonvar(X),write(X),nl,fail. %Imprime las relaciones familiares del elenco familia(X):-write('****** RELACIONES FAMILIARES Y AMORES DEL ELENCO DE LA TELENOVELA ******'),nl,nl,fail. familia(X):-write('Este Personaje: '),nonvar(X),write(X),estavivo(X),nl,matrimonio(X),esviuda(X,Y),nl,sentimiento(X),nl,fail. familia(X):-write('**ABUELO**: '),nl,esabuelo(Y,X),nonvar(Y),write(Y),estavivo(Y),matrimonio(Y),nl,sentimiento(Y),nl,fail. familia(X):-write('**ABUELA**: '),nl,esabuela(Y,X),nonvar(Y),write(Y),estavivo(Y),matrimonio(Y),nl,sentimiento(Y),nl,fail. familia(X):-write('**PADRE**: '),nl,espadre(Y,X),nonvar(Y),write(Y),estavivo(Y),matrimonio(Y),nl,sentimiento(Y),nl,fail. familia(X):-write('**MADRE**: '),nl,esmadre(Y,X),nonvar(Y),write(Y),estavivo(Y),matrimonio(Y),nl,sentimiento(Y),nl,fail. familia(X):-write('**HIJOS/AS**: '),nl,eshija(X,Y),nonvar(Y),write(Y),estavivo(Y),matrimonio(Y),nl,sentimiento(Y),nl,fail. familia(X):-write('**NIETOS/AS**: '),nl,esnieto(Y,X),nonvar(Y),write(Y),estavivo(Y),matrimonio(Y),nl,sentimiento(Y),nl,fail. familia(X):-write('**HERMANOS/AS**: '),nl,(eshermana(X,Y);(sonhermanas(X,Y);sonhermanas(Y,X))),nonvar(Y),write(Y),estavivo(Y),matrimonio(Y),nl,sentimiento(Y),nl,fail. %Imprime los sentimientos de cada personaje sentimiento(X):-write(' ENAMORADO/A: '),nl,(estaenamorada(X,Y);estaenamorada(Y,X)),tab(20),nonvar(Y),write(Y),estavivo(Y),matrimonio(Y),nl,fail.

Page 20: IA-Cristobal Núñez Sánchez

Página 20 de 29

sentimiento(X):-write(' ES AMIGO/A: '),nl,(esamigo(X,Y);esamigo(Y,X)),tab(20),nonvar(Y),write(Y),estavivo(Y),matrimonio(Y),nl,fail. sentimiento(X):-write(' ES ENEMIGO/A: '),nl,(esenemigo(X,Y);esenemigo(Y,X)),tab(20),nonvar(Y),write(Y),estavivo(Y),matrimonio(Y),nl,fail. %Imprime el guion parcial de la historia obra:-write('****** GUION PARCIAL DE LAS PARTES QUE CONTIENE LA TELENOVELA ******'),nl, capitulocero(X),nonvar(X),write(X),nl,nl, write('****** ACTO 1 - Se inicia la historia de amor/desamor ******'),nl, write('****** ACTO 2 - El villano toma ventaja y destruye poco a poco a la parejita ******'),nl, write('****** ACTO 3 - Todos son falsedades, calumnias, por enésima vez acercamiento entre los protagonistas ******'),nl, write('****** ACTO 4 - Se cierran todas las historias de amor y por fin hay fecha de boda ******'),nl, write('****** FINAL - Por fin se casan y todos tan felices ******'),nl,nl, write('****** DIALOGOS de los Actores en cada Acto ******'),nl, write('-------> EL le dice a ELLA... '),nl, write('-------> ELLA le dice a EL... '),nl, write('-------> y el VILLANO que les dice... '),nl,nl, write('****** COMIENZA LA TELENOVELA ******'),nl, guion(Y),nonvar(Y),write(Y),nl,fail. %Imprime el titulo y el final... telenovela:-write('****** COMIENZA LA TELENOVELA CON TITULO ******'),nl, titulo(X),nonvar(X),write(X),nl,fail.

5. Casos de prueba necesarios para mostrar que el sistema responde a las funcionalidades requeridas A continuación se expone los pasos a seguir para el mundo virtual.

1. Cargar en Prolog el fichero telenovela.pl 2. Introducir en el prompt (chevere.)

El predicado chévere introducirá en la base de hechos el guionista, actriz principal, actor principal y el villano. Este es el comienzo de la telenovela. El resultado es el siguiente:

Page 21: IA-Cristobal Núñez Sánchez

Página 21 de 29

La pantalla anterior siempre se podrá mostrar con el predicado mensaje. En este punto se pueden preguntar gustosamente a Prolog que nuestro guionista nos responderá, por ejemplo:

Para completar el reparto se introduce casting(Numero). (Numero aconsejado entre 4-8) Con esto se puede consultar el reparto completo y sus relaciones, para ello se introduce ver. Para el caso casting(2).

Page 22: IA-Cristobal Núñez Sánchez

Página 22 de 29

----------> ACTRIZ PRINCIPAL <----------: marianela_dolores ****** RELACIONES FAMILIARES Y AMORES DEL ELENCO DE LA TELENOVELA ****** Este Personaje: marianela_dolores Vivito/a y Coleando, edad: 48 (Por ahora Soltero/a) ENAMORADO/A: sebastian_noriega Vivito/a y Coleando, edad: 54 Divorcio con esperanza_purificacion Vivito/a y Coleando, edad: 51 juan_del_diablo Vivito/a y Coleando, edad: 45 (Por ahora Soltero/a) ES AMIGO/A: ES ENEMIGO/A: **ABUELO**: **ABUELA**: **PADRE**: **MADRE**: **HIJOS/AS**: maria_victoria Vivito/a y Coleando, edad: 30 Divorcio con fernando_roberto Vivito/a y Coleando, edad: 40 ENAMORADO/A: ES AMIGO/A: ES ENEMIGO/A: felicia_piedad Vivito/a y Coleando, edad: 24 (Por ahora Soltero/a) ENAMORADO/A: jorge_jesus Vivito/a y Coleando, edad: 25 (Por ahora Soltero/a) daniel_alejandro Vivito/a y Coleando, edad: 22 (Por ahora Soltero/a) ES AMIGO/A: ES ENEMIGO/A: **NIETOS/AS**: lucerito_andres Vivito/a y Coleando, edad: 10 (Por ahora Soltero/a) ENAMORADO/A: ES AMIGO/A: ES ENEMIGO/A: **HERMANOS/AS**: esperanza_purificacion Vivito/a y Coleando, edad: 51 Divorcio con sebastian_noriega Vivito/a y Coleando, edad: 54 ENAMORADO/A: ES AMIGO/A: ES ENEMIGO/A: ----------> ACTOR PRINCIPAL <----------: lucerito_andres ****** RELACIONES FAMILIARES Y AMORES DEL ELENCO DE LA TELENOVELA ****** Este Personaje: lucerito_andres Vivito/a y Coleando, edad: 10 (Por ahora Soltero/a) ENAMORADO/A: ES AMIGO/A: ES ENEMIGO/A: **ABUELO**: **ABUELA**: marianela_dolores Vivito/a y Coleando, edad: 48 (Por ahora Soltero/a) ENAMORADO/A: sebastian_noriega Vivito/a y Coleando, edad: 54 Divorcio con esperanza_purificacion Vivito/a y Coleando, edad: 51 juan_del_diablo Vivito/a y Coleando, edad: 45 (Por ahora Soltero/a) ES AMIGO/A: ES ENEMIGO/A: **PADRE**: fernando_roberto Vivito/a y Coleando, edad: 40 Divorcio con maria_victoria Vivito/a y Coleando, edad: 30 ENAMORADO/A: florinda_clarisa Vivito/a y Coleando, edad: 32 Matrimonio con fortunato_javier Fallecido/a en extrañas circunstancias a la edad de: 35 ES AMIGO/A: ES ENEMIGO/A: **MADRE**: maria_victoria Vivito/a y Coleando, edad: 30 Divorcio con fernando_roberto Vivito/a y Coleando, edad: 40 ENAMORADO/A: ES AMIGO/A: ES ENEMIGO/A: **HIJOS/AS**: **NIETOS/AS**:

Page 23: IA-Cristobal Núñez Sánchez

Página 23 de 29

**HERMANOS/AS**: antonio_david Vivito/a y Coleando, edad: 10 (Por ahora Soltero/a) ENAMORADO/A: ES AMIGO/A: ES ENEMIGO/A: ----------> EL MAS VILLANO <----------: florinda_clarisa ****** RELACIONES FAMILIARES Y AMORES DEL ELENCO DE LA TELENOVELA ****** Este Personaje: florinda_clarisa Vivito/a y Coleando, edad: 32 Matrimonio con fortunato_javier Fallecido/a en extrañas circunstancias a la edad de: 35 por lo tanto es Viudo/a ENAMORADO/A: fernando_roberto Vivito/a y Coleando, edad: 40 Divorcio con maria_victoria Vivito/a y Coleando, edad: 30 ES AMIGO/A: ES ENEMIGO/A: **ABUELO**: **ABUELA**: **PADRE**: sebastian_noriega Vivito/a y Coleando, edad: 54 Divorcio con esperanza_purificacion Vivito/a y Coleando, edad: 51 ENAMORADO/A: marianela_dolores Vivito/a y Coleando, edad: 48 (Por ahora Soltero/a) ES AMIGO/A: ES ENEMIGO/A: **MADRE**: esperanza_purificacion Vivito/a y Coleando, edad: 51 Divorcio con sebastian_noriega Vivito/a y Coleando, edad: 54 ENAMORADO/A: ES AMIGO/A: ES ENEMIGO/A: **HIJOS/AS**: clarita_estefania Vivito/a y Coleando, edad: 8 (Por ahora Soltero/a) ENAMORADO/A: ES AMIGO/A: ES ENEMIGO/A: antonio_david Vivito/a y Coleando, edad: 10 (Por ahora Soltero/a) ENAMORADO/A: ES AMIGO/A: ES ENEMIGO/A: **NIETOS/AS**: **HERMANOS/AS**: ----------> Lista de SECUNDARIOS <----------: maria_victoria ****** RELACIONES FAMILIARES Y AMORES DEL ELENCO DE LA TELENOVELA ****** Este Personaje: maria_victoria Vivito/a y Coleando, edad: 30 Divorcio con fernando_roberto Vivito/a y Coleando, edad: 40 ENAMORADO/A: ES AMIGO/A: ES ENEMIGO/A: **ABUELO**: **ABUELA**: **PADRE**: **MADRE**: marianela_dolores Vivito/a y Coleando, edad: 48 (Por ahora Soltero/a) ENAMORADO/A: sebastian_noriega Vivito/a y Coleando, edad: 54 Divorcio con esperanza_purificacion Vivito/a y Coleando, edad: 51 juan_del_diablo Vivito/a y Coleando, edad: 45 (Por ahora Soltero/a) ES AMIGO/A: ES ENEMIGO/A: **HIJOS/AS**: lucerito_andres Vivito/a y Coleando, edad: 10 (Por ahora Soltero/a) ENAMORADO/A: ES AMIGO/A: ES ENEMIGO/A: **NIETOS/AS**:

Page 24: IA-Cristobal Núñez Sánchez

Página 24 de 29

**HERMANOS/AS**: felicia_piedad Vivito/a y Coleando, edad: 24 (Por ahora Soltero/a) ENAMORADO/A: jorge_jesus Vivito/a y Coleando, edad: 25 (Por ahora Soltero/a) daniel_alejandro Vivito/a y Coleando, edad: 22 (Por ahora Soltero/a) ES AMIGO/A: ES ENEMIGO/A: felicia_piedad ****** RELACIONES FAMILIARES Y AMORES DEL ELENCO DE LA TELENOVELA ****** Este Personaje: felicia_piedad Vivito/a y Coleando, edad: 24 (Por ahora Soltero/a) ENAMORADO/A: jorge_jesus Vivito/a y Coleando, edad: 25 (Por ahora Soltero/a) daniel_alejandro Vivito/a y Coleando, edad: 22 (Por ahora Soltero/a) ES AMIGO/A: ES ENEMIGO/A: **ABUELO**: **ABUELA**: **PADRE**: **MADRE**: marianela_dolores Vivito/a y Coleando, edad: 48 (Por ahora Soltero/a) ENAMORADO/A: sebastian_noriega Vivito/a y Coleando, edad: 54 Divorcio con esperanza_purificacion Vivito/a y Coleando, edad: 51 juan_del_diablo Vivito/a y Coleando, edad: 45 (Por ahora Soltero/a) ES AMIGO/A: ES ENEMIGO/A: **HIJOS/AS**: **NIETOS/AS**: **HERMANOS/AS**: maria_victoria Vivito/a y Coleando, edad: 30 Divorcio con fernando_roberto Vivito/a y Coleando, edad: 40 ENAMORADO/A: ES AMIGO/A: ES ENEMIGO/A:

Se puede observar en el resultado anterior las relaciones familiares, amistades y enemistades, la edad, si esta casado, soltero, fallecido, etc. Toda esta información s obtenida por el motor de inferencias. Con el predicado carac. Se muestran las características de los personajes del reparto. ****** CARACTERISTICAS FÍSICAS-PSIQUICAS DEL ELENCO DE LA TELENOVELA ****** Son GUAPOS (sin haberse operado): marianela_dolores lucerito_andres PASIONALES (con-sentimiento): marianela_dolores lucerito_andres CUERPOS DE GIMNASIO: marianela_dolores lucerito_andres florinda_clarisa Se ENAMORA facilmente: marianela_dolores Tiene donde ELEGIR: marianela_dolores GALAN donde los haya: lucerito_andres Le GUSTAN LAS MUJERES (Demasiado): florinda_clarisa maria_victoria felicia_piedad Con MALA SUERTE: marianela_dolores TERRATENIENTE (inició BURBUJA inmobiliaria): lucerito_andres

Page 25: IA-Cristobal Núñez Sánchez

Página 25 de 29

Tiene MUCHO DINERO (no vive en España): lucerito_andres florinda_clarisa maria_victoria felicia_piedad VENGATIVO (peor que los vengadores): florinda_clarisa TRAIDOR (Adan o Eva): florinda_clarisa CORRUPTO (=Barcenas, y muchos mas...): florinda_clarisa Son FEOS (por haberse operado): INFIEL (a lo instinto-básico): Le gusta mucho una BOTELLA: POBRES (cada vez hay más más): Siempre TE RIES: Comen mucha LECHUGA: CARNE-CARNE: Le gusta mucho el JUEGO: CAMBIOS DE HUMOR (Repentinos): MEDALLA OLIMPICO: maria_victoria felicia_piedad TODOS LE SIGUEN: maria_victoria felicia_piedad

El siguiente paso es obtener la sinopsis, se introduce sinopsis. El resultado es el siguiente: ****** LA HISTORIA INTERMINABLE DE AMOR COMIENZA ****** Fiesta de compromiso de la mejor amiga de la infancia de la camarera con menos fortuna del pueblo, la tematica de la fiesta es superheroes, disfrazada de pocoyo conoce al prometido de su amiga que esta disfrazado de Bob Esponja, irremediablemte se enamoran, pero uno de los invitados, el malvado villano pokemon se rebelará ante el amor surgido ellos son: ----------> ACTRIZ PRINCIPAL <----------: marianela_dolores ****** RELACIONES FAMILIARES Y AMORES DEL ELENCO DE LA TELENOVELA ****** …..CONTINUA imprimiendo el reparto

Para construir los diálogos se introduce historia. Y para ver el resultado obra. 26 ?- historia. false. 27 ?- obra. ****** GUION PARCIAL DE LAS PARTES QUE CONTIENE LA TELENOVELA ****** Fiesta de compromiso de la mejor amiga de la infancia de la camarera con menos fortuna del pueblo, la tematica de la fiesta es superheroes, disfrazada de pocoyo conoce al prometido de su amiga que esta disfrazado de Bob Esponja, irremediablemte se enamoran, pero uno de los invitados, el malvado villano pokemon se rebelará ante el amor surgido ****** ACTO 1 - Se inicia la historia de amor/desamor ****** ****** ACTO 2 - El villano toma ventaja y destruye poco a poco a la parejita ****** ****** ACTO 3 - Todos son falsedades, calumnias, por enésima vez acercamiento entre los protagonistas ****** ****** ACTO 4 - Se cierran todas las historias de amor y por fin hay fecha de boda ****** ****** FINAL - Por fin se casan y todos tan felices ****** ****** DIALOGOS de los Actores en cada Acto ****** -------> EL le dice a ELLA... -------> ELLA le dice a EL... -------> y el VILLANO que les dice... ****** COMIENZA LA TELENOVELA ****** Jamas habia visto a una muchacha tan linda como tu Juro ante Dios y la Virgen Santa Teresa que sere tuya por siempre A ti no te quiere, yo la amo y ella a mi, mira este video

Page 26: IA-Cristobal Núñez Sánchez

Página 26 de 29

Fin Acto 1- Episodios del 1 al 2000 - Continuara... No te preocupes bizcocho mio,volveremos a estar juntos Yo ya no siento nada! , desde el dia que te revolcaste con esa muerta de hambre! Te quitare todo lo que amas,comienzo con tu gata Berta Fin Acto 2- Episodios del 2001 al 4000 - Continuara... Tu madre no podra separarnos aunque sea una pobre diabla Se que tu me fuiste infiel, fue todo un montaje Venga chevere, que chido (bonito) eres, no me claves ese tenedor Fin Acto 3- Episodios del 2001 al 4000 - Continuara... Entonces, por fin estaremos juntos, hemos vencido al pendejo Monica Naranjo no esta muerta, Monica esta viva, ¡Monica soy yo! Yo les casaré me arrepiento de lo que le hecho pasar Fin Acto 4- Episodios del 2001 al 4000 - Continuara... Soñe que el fuego helaba, que la nieve ardia y para soñar lo imposible, lo hemos conseguido, por fin después de 8000 episodios Fin - Todos Felices comerieron Perdices y por fin se acabó.

Y para finalizar encontramos el titulo de la telenovela, se introduce nombre. Y a continuación telenovela. 29 ?- nombre. true. 30 ?- telenovela. ****** COMIENZA LA TELENOVELA CON TITULO ****** Abismo de pasion

Otras consultas que pueden realizarse son: 31 ?- fallecido(X). X = alberto_berto ; X = maria_rosa ; X = rosalinda_elena ; X = romina_luz ; X = fortunato_javier. 32 ?- protagsecundario(Y). Y = maria_victoria ; Y = felicia_piedad. 33 ?- esguapo(X). X = marianela_dolores ; X = lucerito_andres.

6. Informe breve de las dificultades encontradas Durante la implementación de este mundo virtual han sido varias las dificultades encontradas, entre ellas destacaría:

• Entender y comprender como funciona la programación lógica. Acostumbrado a la programación imperativa o programación orientada a objetos, inicialmente cuesta adaptarse a no tener variables, no poder asignar valores, etc. Una vez que se van realizando diferentes pruebas y estudiando este tipo de programación y el uso de Prolog se entiende a la perfección este tipo de paradigma. En este punto me hubiese gustado profundizar más con Prolog pues considero que hay muchas cosas que se han quedado en el tintero, pero quizás en cursos superiores se tenga la oportunidad de avanzar en el estudio de la programación lógica.

• Utilización de consultas y comandos en Prolog. La manera de ejecutar consultas, ver los resultados y crear las diferentes reglas costaron al principio, pero una vez superado me fue relativamente fácil construir nuevas cláusulas e incluso utilizar el operador de corte.

• Base de Conocimiento. La única dificultad en este aspecto, se puede decir que al partir de un mínimo conocimiento de la materia tuve que dedicar tiempo a estudiarla.

Page 27: IA-Cristobal Núñez Sánchez

Página 27 de 29

• Relaciones Familiares entre los personajes. En este apartado sufrí un atasco entre tanto lío de personajes y comprobé que esto de las telenovelas son un verdadero culebrón, al final pude enlazar la base de conocimiento de los personajes, creando un grafo con todas las relaciones.

Me gustaría pedir disculpa si en algún momento al ejecutar la práctica aparezcan términos quizás mal sonante, según en que entorno se produzcan, como la palabra pendejo, piojosa, etc o frases y personajes que puedan parecer tonterías como Pocoyo, Bob Esponja y nombres compuestos un poco extraños. La elección de virtualizar el mundo de las telenovelas desde un punto de vista cómico quizás no sea del agrado de todos, a los seguidores de las mismas (que hay muchos) les pido que se lo tomen con sentido del humor. Al ir realizando la práctica se me ocurrió que podría ser también bastante gracioso utilizar este mundo virtual para reflejar una tira cómica con los políticos españoles, me imagino como Mariano Rajoy divorciado de Teresa de Gospedal está enamorado en secreto de Ana Botella. Con unas frases adecuadas a la situación política y social del país, la verdad que puede dar bastante juego y ser de lo más divertido.

Page 28: IA-Cristobal Núñez Sánchez

Página 28 de 29

ANEXO A continuación muestro una pequeña muestra de la base de conocimiento en la cual me he apoyado para saber de Telenovelas. (Fuente http://www.televisa.com/telenovelas/)

Page 29: IA-Cristobal Núñez Sánchez

Página 29 de 29