instituto politÉcnico nacionalsappi.ipn.mx/cgpi/archivos_anexo/20061387_3286.pdf · la...

31
INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE CÓMPUTO SUBDIRECCIÓN ACADÉMICA “TÉCNICAS DE INTELIGENCIA ARTIFICIAL APLICADAS A LA DETECCIÓN DE VIRUS Y TRADUCTORES” PROYECTO DE INVESTIGACIÓN 20061387 INVESTIGADORES PARTICIPANTES Director del proyecto: M. en C. José Sánchez Juárez Tel. 57-29-60-00 Ext. 52027 Profesores Participantes: M. en C. Fabiola Ocampo Botello Tel. 57-29-60-00 Ext. 52027 M en C. Roberto de Luna Caballero Tel. 57-29-60-00 Ext. 52027 M en C. Florencio Guzmán Águilar Tel. 57-29-60-00 Ext. 52027 ALUMNOS PIFI Andrea Cabrera Galindo. [email protected] Noemi Eunice Chávez Juárez. [email protected] Jesús Reyes Ramírez

Upload: others

Post on 01-May-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: INSTITUTO POLITÉCNICO NACIONALsappi.ipn.mx/cgpi/archivos_anexo/20061387_3286.pdf · La comunicación del hombre con la computadora por medio del lenguaje natural, es la finalidad

INSTITUTO POLITEacuteCNICO NACIONAL ESCUELA SUPERIOR DE COacuteMPUTO

SUBDIRECCIOacuteN ACADEacuteMICA

ldquoTEacuteCNICAS DE INTELIGENCIA ARTIFICIAL APLICADAS A LA DETECCIOacuteN DE VIRUS Y

TRADUCTORESrdquo

PROYECTO DE INVESTIGACIOacuteN 20061387

INVESTIGADORES PARTICIPANTES

Director del proyecto M en C Joseacute Saacutenchez Juaacuterez

Tel 57-29-60-00 Ext 52027

Profesores Participantes M en C Fabiola Ocampo Botello

Tel 57-29-60-00 Ext 52027

M en C Roberto de Luna Caballero Tel 57-29-60-00 Ext 52027

M en C Florencio Guzmaacuten Aacuteguilar

Tel 57-29-60-00 Ext 52027

ALUMNOS PIFI

Andrea Cabrera Galindo andis_andreahotmailcom

Noemi Eunice Chaacutevez Juaacuterez cnoemicita_05hotmailcom

Jesuacutes Reyes Ramiacuterez

2

RESUMEN

En este reporte teacutecnico se presenta la descripcioacuten general anaacutelisis y estado actual de de los trabajos terminales TT2006135 TT20060097 y TT20060068 que tienen por titulo ldquoSistema prototipo de deteccioacuten de intrusos en la red utilizando agentes inteligentesrdquo rdquoProcesamiento digital de imaacutegenes para la conversioacuten de texto a vozrdquo y ldquoSistema de buacutesqueda de informacioacuten por conceptos en la webrdquo respectivamente Los prototipos que se obtendraacuten seraacuten un software robusto que se desarrollaraacuten con teacutecnicas de inteligencia artificial como Agentes inteligentes y Redes neuronales Palabras clave Agentes inteligentes Redes neuronales Ontologiacuteas Concepto Voz Traductor Virus software teacutecnicas inteligencia artificial

3

IacuteNDICE RESUMENhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 2 IacuteNDICEhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 3 INTRODUCCIOacuteNhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 5 CAPIacuteTULO 1 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 5 Deteccioacuten de virushelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 5 CAPIacuteTULO 2 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip6 Traductorhelliphellip helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 6 Estado del arte helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip6 Metodologiacutea de desarrollohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip8 Redes Neuronales Artificialeshelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip8 Estructura de un sistema neuronal artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9 Sistemas paralelos distribuidos y adaptativoshelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 11 Modelo estaacutendar de neurona artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip12 Arquitectura de redes neuronaleshelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 13 El perceptroacuten simple helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 14 Empleo del perceptroacuten para reconocer funciones loacutegicashelliphelliphelliphelliphelliphelliphelliphelliphellip 15 Algoritmo de aprendizaje del perceptroacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip16 Definicioacuten del algoritmo de aprendizajehelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 17 Avanceshelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip17 Reconocimientos de caractereshelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip17 Entrenamiento de la red neuronalhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip17 Utilizando la red neuronalhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip18 Utilizando los clasificadores para reconocer caractereshelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip19 Tratamiento digital de las imaacutegenes a capturarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip20 CAPIacuteTULO 3 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 21 Buscadoreshelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip helliphelliphelliphelliphelliphelliphelliphellip21 Objetivo generalhelliphelliphellip helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip21 Estado del artehelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip21 Buscador muacuteltiple Copernic 2001 Prohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 21 Letrsquos Browse helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 21 Agentes de informacioacuten helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 22 Marco conceptual helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 22 Marco teoacuterico helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 22 Descripcioacuten de RDFhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip22 Clases y propiedadeshelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 23 El sistema de escritura de datoshelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip24 Clases y recursos como conjuntos y elementoshelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip24 Ontologiacuteas en la representacioacuten del conocimientohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 24 OWL y web semaacutenticahelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 25 Lenguajes de comunicacioacuten entre agenteshelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip25 KQML helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 25 JADE(Java Agent Development Framework)helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 26 Disentildeo helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 28 Arquitectura helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 28 RESULTADOShelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 29 IMPACTOhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 29 REFERENCIAS BIBLIOGRAacuteFICAS helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip29

4

INTRODUCCIOacuteN El requerimiento del software se haraacute cada vez maacutes complejo con el desarrollo de las computadoras ya que estas podraacuten realizar muchas actividades al mismo tiempo Esto indica que el software podraacute ser tan robusto que seraacute necesario encontrar teacutecnicas de desarrollo de software que simplifiquen su creacioacuten Llegaraacute el tiempo en que la implementacioacuten del software sea una aplicacioacuten automatizada de las teacutecnicas que se estaacuten desarrollando las teacutecnicas van a depender del tipo de computadora que se esteacute utilizando pues las computadoras con el tiempo seraacuten maacutes raacutepidas y con mayor capacidad de almacenamiento Capaces de realizar millones de operaciones en un nanosegundo esto propiciaraacute el desarrollo de teacutecnicas maacutes eficientes que se basaraacuten en la repeticioacuten de procesos casi infinitos El desarrollo de software se hace necesario por la diversidad de necesidades inherentes al desarrollo de las computadoras sociales econoacutemicas cientiacuteficas y tecnoloacutegicas Ademaacutes de la explicacioacuten por medio de modelos computacionales de los fenoacutemenos fiacutesicos que se presentan en la naturaleza Una de las teacutecnicas para producir software es la aplicacioacuten de la inteligencia artificial esta teacutecnica proporciona una mayor facilidad para producir software mucho maacutes eficiente y robusto que el software desarrollado por programacioacuten convencional Para la produccioacuten de software especiacutefico se realizoacute un estudio detallado de los requerimientos de eacuteste para determinar su estructura y aplicar la teacutecnica de inteligencia artificial adecuada Y asiacute se supo que las teacutecnicas de agentes inteligentes y de redes neuronales eran las adecuadas CAPIacuteTULO 1 Deteccioacuten de virus En la actualidad la informacioacuten que se almacena en medios electroacutenicos puede ser dantildeada o robada Por lo que es necesario protegerla de los virus y de los intrusos Para poder crear un detector de virus se requiere tener acceso al los sistemas operativos de Microsoft Como el IPN no tiene licencias de estos sistemas no se puede desarrollarlos actualmente y tambieacuten debido a la existencia de una gran cantidad de virus Por lo que se optoacute por la deteccioacuten de intrusos en una red La deteccioacuten de intrusos se define como el problema de identificar elementos que hacen uso de los recursos de un sistema de coacutemputo sin autorizacioacuten y de aquellos que tienen legiacutetimo acceso al sistema pero abusan de sus privilegios [2] De la definicioacuten anterior se dividen los sistemas de deteccioacuten de intrusos o IDS en base a host llamado HID los cuales velan la seguridad e integridad de los datos tomando su informacioacuten para detectar intrusiones desde lugares como llamadas al sistema o archivos logs del sistema operativo estaacuten tambieacuten los basados en red o NID cuyas fuentes de deteccioacuten es supervisar los datos en el trafico de red y por uacuteltimo estaacuten los hiacutebridos que combinan las dos anteriores fuentes de deteccioacuten Es posible encontrar en el mercado numerosos IDSrsquos comerciales La mayoriacutea revelan pocos o ninguacuten detalle sobre su arquitectura y funcionamiento interno Sin embargo algunos IDSrsquos no comerciales de distribucioacuten gratuita o concebidos en ambientes acadeacutemicos revelan pormenores de su funcionamiento y arquitectura estos uacuteltimos fueron algunos de los estudiados para este trabajo A continuacioacuten se describen las caracteriacutesticas de los IDSrsquos maacutes contrastados con nuestro trabajo Snort es un sistema de deteccioacuten de intrusos basado en red eacutesta disponible bajo la licencia puacuteblica general

5

GNU puede usarse de forma gratuita y la totalidad de su coacutedigo es de libre distribucioacuten Utiliza para la deteccioacuten un conjunto basto de reglas y firmas de ataques La arquitectura de Snort comprende tres subsistemas primarios [5] El decodificador de paquetes el motor de deteccioacuten y el subsistema de alertas Utiliza la libreriacutea de captura de paquetes promiscua libcap JAM (Java Agents for Meta-Learning) no es propiamente un IDS pero dentro de una de sus orientaciones se usan agentes inteligentes distribuidos para aprender panoramas de fraudes e intrusiones en sistemas de coacutemputo [6] El conocimiento adquirido por los agentes distribuidos puede ser intercambiado y usado para entrenar a otros agentes para poder identificar ataques basados en el conocimiento compartido CAPIacuteTULO 2 Traductor La comunicacioacuten del hombre con la computadora por medio del lenguaje natural es la finalidad Para poder realizar esta tarea se debe hacer por partes Primero se construiraacute un traductor de texto a voz debido a que tiene aplicaciones como la de lecturas de texto para los invidentes La creacioacuten de sistemas computacionales que permitan agilizar las tareas que el hombre tiene que llevar a cabo se ha vuelto un tema de intereacutes general Gracias a los avances de la tecnologiacutea computacional se han desarrollado herramientas que facilitan la realizacioacuten de muacuteltiples tareas Este trabajo terminal estaacute enfocado al desarrollo de un sistema computacional que permita realizar la conversioacuten de texto impreso a voz

Las aplicaciones derivadas de dicho trabajo son muacuteltiples y se mencionan algunas de ellas en este capiacutetulo De igual manera se presenta un anaacutelisis del estado del arte referente a sistemas sintetizadores de voz se describiraacute la metodologiacutea de trabajo que se utilizaraacute durante el desarrollo del sistema se hablaraacute acerca del desarrollo de software orientado a objetos y por uacuteltimo se trataraacuten como antecedentes teoacutericos temas referentes a las aacutereas del conocimiento que se utilizaraacuten para implementar ciertas funcionalidades del sistema Estado Del Arte El desarrollo de la tecnologiacutea ayuda a que las personas con limitaciones fiacutesicas minimicen sus deficiencias tal es el caso de las personas invidentes En Meacutexico se estima una cifra de 3000000 (284) de personas que padecen de ceguera o alguna debilidad visual1 (p e dislexia) Hoy en diacutea existen aplicaciones enfocadas a ayudar a este tipo de personas tales como libros parlantes computadoras para invidentes pantallas para invidentes bastones y lentes para invidentes entre otros En Estados Unidos ya existe una tecnologiacutea llamada ldquolibros parlantesrdquo que consiste copiar a la computadora el texto contenido en un libro para su posterior sintetizacioacuten en voz Quicktionary de la empresa alemana WizCom Technologies es un pequentildeo escaacutener con forma de boliacutegrafo que lee y traduce a voz textos escritos2 (ver imagen 21)

1 httponcetv-ipnnetnoticiasindexphpmodulo=despliegueampdt_fecha=2004-12-01ampnumnota=15 (Estimacioacuten personas invidentes) httpwwwconapogobmx00cifras00indicadores00xls (Poblacioacuten de la Repuacuteblica Mexicana) 2 httpwwwwizcomtechcomWizcomproductsproduct_infoaspfid=176

6

En nuestro paiacutes el desarrollo de la tecnologiacutea no ha alcanzado niveles muy elevados lo cual implica tener que traerla del exterior y en consecuencia el costo de la misma se eleva Esto se convierte en un problema para los consumidores finales ya que al no tener los medios suficientes para adquirir alguna tecnologiacutea tampoco obtienen los beneficios que la misma podriacutea otorgarles La tecnologiacutea que seriacutea desarrollada por este proyecto facilitariacutea la vida de muchas personas (con debilidades visuales o no) y lo que es mejor a un costo accesible Auacuten no se ha calculado el precio que dicha tecnologiacutea implicariacutea pero estaacute claro que seriacutea menor que el de una tecnologiacutea importada

Imagen 21 ReadingPen ndash Quicktionary creado por WizCom Technologies A continuacioacuten en la tabla 1 se muestra una comparacioacuten entre las funcionalidades que se planea tenga nuestro sistema (CIMATEV) y las funcionalidades que actualmente tiene Quicktionary

Funcionalidad Quicktionary (Actualmente)

CIMATEV (Se espera)

Calidad de la voz en general Buena Buena3

Inteligibilidad de la voz Si Si

Naturalidad de la voz Si y No en algunos casos Si y No en algunos casos

Tipo de texto escaneable

Captura texto personalizado incluyendo texto en negrita

cursiva invertido y subrayado tomando como

base fuentes estaacutendar y

Captura texto

personalizado incluyendo texto en negrita cursiva y

subrayado tomando como base

Portaacutetil Si No (Software para PC) Si (Sistema miacutenimo)

3 Para la siacutentesis de voz se utilizaraacute la teacutecnica de siacutentesis por seleccioacuten de unidades (Foneacutetica acuacutestica)

7

Tamantildeo del texto escaneable 6-22 puntos

6-22 puntos (Sistema miacutenimo)

En el caso del software para PC se planea que el tamantildeo

del texto no sea un factor que limite su conversioacuten a

vozPronunciacioacuten de nombres propios Si Si

Pronunciacioacuten de siglas Si Si

Se mantiene el estilo del texto escaneado

No Devuelve ASCII regular4

No Inicialmente devolveraacute

ASCII regular (se pretende utilizar el

estaacutendar Unicode)

Identifica la presencia de imaacutegenes No

No (En general) Si (Soacutelo para libros que

sigan el estaacutendar del software)

Ergonomiacutea y peso Si 85 g (3 oz) Se planea que el sistema miacutenimo sea ergonoacutemico y

ademaacutes tenga un peso razonable5

Tabla 1 Comparacioacuten entre las funcionalidades de Quicktionary y las de CIMATEV METODOLOGIacuteA DE DESARROLLO Se reconoce que el software al igual que todos los sistemas complejos evoluciona con el tiempo Los requerimientos que el sistema tiene que cubrir a menudo cambian conforme a que el desarrollo proceda haciendo que el camino que lleva al producto final no sea real las estrictas fechas de entrega hacen que sea imposible finalizar un producto completo por lo que se debe introducir una versioacuten limitada para cumplir con los tiempos de entrega Bajo estas circunstancias los desarrolladores necesitan de un modelo de proceso que ha sido disentildeado para acomodarse a un producto que evolucione con el tiempo Redes Neuronales Artificiales La historia de las redes neuronales comenzariacutea con el cientiacutefico aragoneacutes Santiago Ramoacuten y Cajal descubridor de la estructura neuronal del sistema nervioso A finales del siglo XIX la teoriacutea reticularista que sosteniacutea que el sistema nervioso estaba formado por una red continua de fibras nerviosas era extendida Sin embargo tras antildeos de trabajo aplicando y perfeccionando la teacutecnica de tincioacuten de Golgi en 1888 Ramoacuten y Cajal demostroacute que el sistema nervioso en realidad estaba compuesto por una red de ceacutelulas individuales las neuronas ampliamente conectadas entre siacute Pero no soacutelo observoacute al 4 ASCII de 7 bits Se pueden representar hasta 128 (27) caracteres diferentes 5 El acceso que se tenga a la tecnologiacutea que permita cubrir estos requerimientos no funcionales (ergonomiacutea y peso) seraacute decisivo para la realizacioacuten de los mismos

8

microscopio los pequentildeos espacios vaciacuteos que separaban unas neuronas de otras sino que tambieacuten establecioacute que la informacioacuten fluye en la neurona desde las dendritas hacia el axoacuten atravesando el soma Este descubrimiento baacutesico para el desarrollo de las neuro-ciencias en el siglo XX causoacute en la eacutepoca una verdadera conmocioacuten en la forma de entender el sistema nervioso concedieacutendose el premio Nobel de medicina a Ramoacuten y Cajal en 1906 (compartido con Camilo Golgi)

Axoacuten

Dendritas

Soma

Figura 22 Estructura de una neurona bioloacutegica tiacutepica

Sinapsis

Obviamente gracias al advenimiento de la microscopiacutea electroacutenica y a la introduccioacuten de otras importantes teacutecnicas se ha llegado a profundizar mucho maacutes en el estudio de la neurona Se estima que el sistema nervioso contiene alrededor de cien mil millones de neuronas Vistas al microscopio este tipo de ceacutelulas pueden presentarse en muacuteltiples formas aunque muchas de ellas presentan un aspecto similar muy peculiar (ver figura 21) con un cuerpo celular o soma (de entre 10 y 80 micras de longitud) del que surge un denso aacuterbol de ramificaciones (aacuterbol dendriacutetico) compuesto por las dendritas y del cual parte una fibra tubular denominada axoacuten (cuya longitud variacutea desde las 100 micras hasta el metro en el caso de las neuronas motoras1) que tambieacuten se ramifica en su extremo final para conectarse con otras neuronas En las interneuronas el axoacuten enviacutea la informacioacuten a otras neuronas mientras que las neuronas motoras lo hacen directamente al muacutesculo Existe un tercer tipo de neuronas las receptoras o sensoras que en vez de recibir informacioacuten de otras neuronas la reciben directamente del exterior (tal sucede por ejemplo en los conos y bastones de la retina) Se calcula que una neurona del coacutertex cerebral recibe informacioacuten por teacutermino medio de unas 10000 neuronas (convergencia) y enviacutea impulsos a varios cientos de ellas (divergencia)

Estructura de un sistema neuronal artificial Los ANS (Artificial Neural Systems) imitan la estructura hardware del sistema nervioso con la intencioacuten de construir sistemas de procesamiento de la informacioacuten

1 Lo que constituye el nervio

9

paralelos distribuidos y adaptativos que puedan presentar un cierto comportamiento ldquointeligenterdquo

Sistemas paralelos distribuidos y adaptativos Los tres conceptos clave de los sistemas nerviosos que se pretende emular en los artificiales son paralelismo de caacutelculo memoria distribuida y adaptabilidad al entorno De esta manera podemos hablar de las redes neuronales como sistemas paralelos distribuidos y adaptativos El procesamiento paralelo resulta esencial como se deduce de un sencillo ejemplo Una computadora convencional tipo PC que trabaja secuencialmente instruccioacuten por instruccioacuten empleariacutea varios minutos en realizar sobre una imagen compuesta por digamos 256x256 pixeles una sencilla tarea de tratamiento en bajo nivel (acentuar contrastes extraer contornos ) mucho maacutes simple que la que lleva a cabo el sistema visual para reconocer una imagen Un sistema basado en 16 DSP2 operando en paralelo empleariacutea del orden de 20 ms en la misma tarea puesto que cada procesador podriacutea operar en paralelo sobre diferentes sectores de la imagen Por otra parte el cerebro tarda este mismo tiempo en preprocesar una imagen compuesta por millones de pixeles (los que representan los conos y bastones de la retina) extraer sus rasgos caracteriacutesticos analizarla e interpretarla Ninguacuten sistema creado por el hombre es capaz de realizar algo semejante La clave reside en que los millones de neuronas que intervienen en el procesamiento de la imagen trabajan en paralelo sobre la totalidad de la imagen Otro concepto importante que aparece en el cerebro es el de memoria distribuida Mientras que en un computador la informacioacuten ocupa posiciones de memoria bien definidas en los sistemas neuronales se encuentra distribuida por las sinapsis de la red de modo que si una sinapsis resulta dantildeada no perdemos maacutes que una parte muy pequentildea de la informacioacuten Ademaacutes los sistemas neuronales bioloacutegicos son redundantes de modo que muchas neuronas y sinapsis pueden realizar un papel similar en definitiva el sistema resulta tolerante a fallos El uacuteltimo concepto fundamental es el de adaptabilidad Los ANS se adaptan faacutecilmente al entorno modificando sus sinapsis (y mediante otros mecanismos tambieacuten) y aprenden de la experiencia pudiendo generalizar conceptos a partir de casos particulares En el campo de las redes neuronales se llamaraacute a esta propiedad generalizacioacuten a partir de ejemplos Formalmente y desde el punto de vista del grupo PDP (Parallel Distributed Processing Reseach Group de la Universidad de California en San Diego) un sistema neuronal o conexionista estaacute compuesto por los siguientes elementos

bull Un conjunto de procesadores elementales o neuronas artificiales bull Un patroacuten de conectividad o arquitectura bull Una dinaacutemica de activaciones bull Una regla o dinaacutemica de aprendizaje bull El entorno donde opera

2 Digital Signal Processor

10

Modelo estaacutendar de neurona artificial Se denomina procesador elemental o neurona a un dispositivo simple de caacutelculo que a partir de un vector de entrada procedente del exterior o de otras neuronas proporciona una uacutenica respuesta o salida En este apartado se trataraacute el modelo denominado neurona estaacutendar (ver figura 31) que constituye un caso particular de un modelo maacutes complejo llamado modelo PDP El modelo estaacutendar considera que la regla de propagacioacuten es la suma ponderada y que la funcioacuten de salida es la identidad De esta forma la neurona estaacutendar etiquetada como i consiste en

bull Un conjunto de entradas Xj(t) y pesos sinaacutepticos Wij que representan la intensidad de interaccioacuten entre cada neurona presinaacuteptica j y cada neurona postsinaacuteptica i (ver figura 41)

bull Una regla de propagacioacuten σ(Wij Xj(t)) que proporciona el valor del potencial postsinaacuteptico hi(t)= σ(Wij Xj(t))=sumWijXj de la neurona i en funcioacuten de sus pesos y entradas

bull Una funcioacuten de activacioacuten Yi(t)=fi(hi(t)) que representa simultaacuteneamente la salida de la neurona i y su estado de activacioacuten (en el caso del modelo PDP las funciones de activacioacuten y de salida son tratadas por separado)

Con frecuencia se antildeade al conjunto de pesos de la neurona un paraacutemetro adicional θi que se denominaraacute umbral1 que se resta del potencial postsinaacuteptico por lo que el argumento de la funcioacuten de activacioacuten queda

sumj WijXj - θi

lo que representa antildeadir un grado de libertad adicional a la neurona En el caso de nodos de respuesta todo-nada este paraacutemetro representaraacute el umbral de disparo de la neurona es decir el nivel miacutenimo que debe alcanzar el potencial postsinaacuteptico (o potencial de membrana) para que la neurona se dispare o active En conclusioacuten el modelo de neurona denominado estaacutendar queda

Yi(t)=fi (sumj WijXj - θi)

Ahora bien si se hace que los iacutendices i y j comiencen en 0 se puede definir Wi0= θi y X0=-1 (constante) con lo que el potencial postsinaacuteptico (potencial local o de membrana) se obtiene realizando la suma desde j=0

Yi(t)=fi (sumj=012n WijXj)

1 En algunos modelos es threshold es decir ldquoumbralrdquo y en otros bias que no tiene una traduccioacuten clara en este caso

11

sum f ( )

Axoacuten Yi

Wi1

Wi2

Wij

Win

θi-1

X1

X2

Habiendo definido de esta manera la neurona estaacutendar basta con establecer la forma de la funcioacuten de activacioacuten para determinarla por completo A continuacioacuten se muestra una tabla con las funciones de activacioacuten maacutes utilizadas

Funcioacuten Relacioacuten entradasalida Graacutefica

Escaloacuten y=0 nlt0 y=1 nge0

Escaloacuten simeacutetrica y= -1 nlt0 y=+1 nge0

Lineal Identidad

y=n

Lineal saturada y=0 nlt0

y=n 0lenle1 y=1 ngt1

Lineal saturada simeacutetrica

y=-1 nlt-1 y=n -1lenle1

y=1 ngt1

Sigmoidal logariacutetmica

ney minus+=

11

Xj

Xn

Entradas

Dendritas

Sinapsis

Cuerpo celular

Salida

Umbral

Figura 23 Modelo de neurona estaacutendar

12

Tangente

hiperboacutelica

nn

nn

eeeey minus

minus

+minus

=

Lineal positiva y=0 nlt0 y=n 0len

Competitiva a=1 neurona con maacutex n

a=0 todas las demaacutes

C

Tabla 2 Funciones de activacioacuten habituales (se han omitido algunas constantes)

Arquitecturas de redes neuronales Se denomina arquitectura a la topologiacutea estructura o patroacuten de conexionado de una red neuronal En un ANS los nodos se conectan por medio de sinapsis esta estructura de conexiones sinaacutepticas determina el comportamiento de la red Las conexiones sinaacutepticas son direccionales es decir la informacioacuten soacutelo puede propagarse en un uacutenico sentido (desde la neurona presinaacuteptica a la postsinaacuteptica ver figura 24)

j

i

YjXj

Wij

YiNeurona presinaacuteptica

Neurona postsinaacuteptica

Figura 24 Interaccioacuten entre una neurona presinaacuteptica y otra postsinaacuteptica

En general las neuronas se suelen agrupar en unidades estructurales que denominaremos capas Las neuronas de una capa pueden agruparse a su vez formando grupos neuronales (clusters) Dentro de un grupo o de una capa si no existe este tipo de agrupacioacuten las neuronas suelen ser del mismo tipo Finalmente el conjunto de una o maacutes capas constituye la red neuronal

Se distinguen tres tipos de capas de entrada de salida y ocultas Una capa de entrada o sensorial estaacute compuesta por neuronas que reciben datos o sentildeales procedentes del entorno (por ejemplo proporcionado por sensores) Una capa de salida es aquella cuyas neuronas proporcionan la respuesta de la red neuronal (sus neuronas pueden estar conectadas a efectores) Una capa oculta es aquella que no tiene una conexioacuten directa

13

con el entorno es decir que no se conecta directamente ni a organos sensores o efectores Esta capa proporciona a la red neuronal grados de libertad adicionales gracias a los cuales puede encontrar representaciones internas correspondientes a determinados rasgos del entorno proporcionando una mayor riqueza computacional (ver figura 25)

Informacioacuten Capa de salida

(efectora) Capa oculta Capa de entrada (procesamiento) (sensorial)

Figura 25 Arquitectura unidireccional de tres capas de entrada oculta y de salida

Las conexiones entre las neuronas pueden ser excitadoras o inhibidoras un peso sinaacuteptico negativo define una conexioacuten inhibidora mientras uno positivo determina una conexioacuten excitadora Habitualmente no se suele definir una conexioacuten como de un tipo u otro sino que por medio del aprendizaje se obtiene un valor para el peso que incluye signo y magnitud

El perceptroacuten simple Este modelo neuronal fue introducido por Rosenblatt a finales de los antildeos cincuenta Dicha estructura se inspira en las primeras etapas de procesamiento de los sistemas sensoriales de los animales (por ejemplo la visioacuten) en los cuales la infomacioacuten va atravesando sucesivas capas de neuronas que realizan un procesamiento progresivamente de maacutes alto nivel Un perceptroacuten simple es un modelo unidireccional compuesto por dos capas de neuronas una sensorial o de entrada y otra de salida A continuacioacuten se muestra en la figura 26 su representacioacuten y la funcion de transferencia que utiliza

Figura 26 a) Las neuronas de entrada no realizan ninguacuten coacutemputo uacutenicamente enviacutean la informacioacuten a las neuronas de salida b) la funcioacuten de activacioacuten de las neuronas de la capa de salida es de tipo escaloacuten

Capa de entrada

Capa de salida

f(x) x

Funcioacuten escaloacuten

a) b)

14

El perceptroacuten puede utilizarse tanto como clasificador como para la representacioacuten de funciones booleanas pues su neurona es esencialmente de tipo MacCulloch-Pitts es decir de salida binaria La importancia histoacuterica del perceptroacuten radica en su caraacutecter de dispositivo entrenable ya que el algoritmo de aprendizaje que desarrollo Rosenblatt permite determinar automaacuteticamente los pesos sinaacutepticos que clasifican un conjunto de patrones a partir de un conjunto de ejemplos etiquetados (a esto se le llama red neuronal supervisada y el perceptron simple es de este tipo) Ahora se mostraraacute que un perceptroacuten permite realizar tareas de clasificacioacuten Cada neurona del perceptroacuten representa una determinada clase de modo que dado un vetor de entrada una cierta neurona responde con 0 si no pertenece a la clase que representa y con un 1 si siacute pertenece Es faacutecil ver que una neurona tipo perceptroacuten solamente permite discriminar entre dos clases linealmente separables (es decir cuyas regiones de decisioacuten pueden ser separadas mediante una uacutenica condicioacuten lineal o hiperplano que es una liacutenea recta si trabajamos en dos dimensiones) Sea una neurona tipo perceptroacuten de dos entradas x1 y x2 con salida y cuya operacioacuten se define por lo tanto como

y = H(w1x1+w2x2 - ө) o bien 1 si w1x1+w2x2 geӨ y = 0 si w1x1+w2x2 ltӨ

Si consideramos x1 y x2 situadas sobre los ejes de abscisas y ordenadas en el plano la condicioacuten

w1x1+ w2x2 -Ө = 0 rarr x2 = - (w1 w2) x1 + Ө w2 representa una recta (hiperplano si trabajamos con n entradas) que divide el plano en dos regiones que son aquellas para las que la neurona proporciona una salida 0 o 1 respectivamente como se muestra en la figura 27

x x

x x x

x x x

x

x

oo

oo

o o

o

X1

X2

Regioacuten w1x1+w2x2 geӨ Regioacuten w1x1+w2x2 ltӨ

Figura 27 Una neurona tipo perceptroacuten representa un discriminador lineal que separa dos regiones en el espacio que representan dos diferentes clases de patrones En esta graacutefica x = lsquo1rsquo y o = lsquo0rsquo

15

Empleo del perceptroacuten para reconocer funciones loacutegicas -Funcion linealmente separable Consideremos la funcioacuten loacutegica NAND2 (AND negada de dos entradas) que representamos sobre un plano en la graacutefica 3 que se presenta en seguida

x (10) o (11)

x (00)

x (01) X1

X2

Figura 28 Funcioacuten loacutegica NAND de dos entradas En la graacutefica x = lsquo1rsquo y o = lsquo0rsquo

Se puede ver que en este caso existen paraacutemetros w1 w2 y Ө que permiten una recta que separa perfectamente las regiones correspondientes a los valores loacutegicos 0 y 1 Y por lo tanto se dice que la funcioacuten loacutegica NAND es linealmente separable -Funcioacuten no separable linealmente

Ahora consideremos la funcioacuten loacutegica or-exclusivo (XOR) y representandola en un plano en la figura 29

x (10) o (11)

o (00)

x (01) X1

X2

Figura 29 Funcioacuten loacutegica XOR de dos entradas que no es linealmente separable

16

Al ser XOR no linealmente separable se dice que ldquola clase de funciones no separables linealmente no pueden ser representadas por un perceptroacuten simplerdquo El perceptroacuten presenta serias limitaciones pues solamente puede representar funciones linealmentes separables Y aunque pueda aprender automaacuteticamente a representar complejas funciones booleanas o resolver con eacutexito muchos problemas de clasificacioacuten con un cierto algoritmo en ocasiones fallara draacutesticamente Minsky (que es uno de los padres de la inteligencia artificial) y Papera estudiaron en profundidad el perceptroacuten y en 1969 publicaron un exhaustivo trabajo donde exhibian las limitantes del modelo en lo que resultoacute decisivo para que muchos de los recursos que se destinaban a su investigacioacuten se desviara a otras aacutereas Una solucioacuten para las limitantes del perceptroacuten simple puede consistir en incluir maacutes capas en la arquitectura con lo que tendremos un perceptroacuten multicapa A finales de los antildeos sesenta ya se apuntaba como solucioacuten a las limitaciones del perceptroacuten introducir capas ocultas pero el problema estaba en que no se teniacutea un algoritmo de aprendizaje para el perceptroacuten multicapa (con capas ocultas) Dicho algoritmo fue propuesto por Paul Verbos alrededor de 1974 pero fue preciso hasta mediados de los ochenta cuando el grupo PDP redescubriera un algoritmo similar al cual denominaron Back-Propagation o BP y dieran a conocer a la comunidad internacional su gran potencial para la resolucioacuten de problemas praacutecticos

Algoritmo de aprendizaje del perceptroacuten El del perceptroacuten es un algoritmo de aprendizaje de los denominados por correccion de errores Los algoritmos de este tipo ajustan los pesos en proporcioacuten a la diferencia existente entre la salida actual de la red y la salida deseada con el objetivo de minimizar el error actual de la red Definicioacuten del algoritmo de aprendizaje Sea un conjunto de p patrones xn n=1hellipp con sus salidas deseadas tn Tanto las entradas como las salidas solamente pueden tomar los valores -1 o 1 Se tiene una arquitectura de perceptroacuten simple con pesos iniciales aleatorios y se requiere que clasifique correctamente todos los patrones del conjunto de aprendizaje (solo si son linealmente separables) Ahora actuaremos del siguiente modo ante la presentacioacuten del patron n-eacutesimo si la respuesta que proporciona el perceptroacuten es correcta no actualizaremos los pesos si es incorrecta los modificaremos seguacuten la regla de Hebb aplicada a nuestro caso Primero se muestra la regla de Hebb y despueacutes la regla modificada para el perceptroacuten simple Regla de Hebb

∆wij = ξyixjDonde

17

o wij corresponde a los pesos de una entrada j por la salida i de la neurona

o ξ se denomina ritmo de aprendizaje que su valor suele estar entre 1 y 0 Regla modificada para el perceptroacuten simple

2ξtnixnj si yn

ine tni ∆wn

ij(t)= 0 si yn

i= tni que puede reescribirse del siguiete modo que es la forma usual de expresar la regla del perceptroacuten

∆wnij(t)= 2ξ(tni - yn

i)xnj

Es importante mencionar que el proceso de aprendizaje es iterativo se

parte de una configuracioacuten sinaacuteptica de partida (normalmente de pesos pequentildeos aleatorios) y se presentan una y otra vez los patrones para que los pesos se ajusten iterativamente seguacuten forma usual de la regla del perceptroacuten hasta que todos queden bien clasificados El hiperplano que establece el liacutemite entre dos clases se desplaza lentamente hasta conseguir separarlas por completo (si es posible) como se ve en la figura 210

t= 115

x x

x x x

x x x

x

x

o

o o

o o o o

o

o o

o

o

o

o

o

o

o

X2

t= 21

t= 0 t= 4

X1

Figura 210 Regiones de decisioacuten que establece iterativamente el perceptroacuten durante el aprendizaje (en la iteracioacuten 115 ha conseguido separar ya las dos clases)

Avances En este capiacutetulo se haraacute una descripcioacuten de los avances que se han hecho hasta el momento Se hablaraacute acerca del entrenamiento de la red neuronal del sistema el reconocimiento de caracteres tanto con la red neuronal como con los clasificadores ya expuestos y el tratamiento de imaacutegenes para eliminar el ruido tipo sal y pimienta Reconocimiento de caracteres Se han hecho avances acerca del reconocimiento de caracteres utilizando redes neuronales y clasificadores diversos A continuacioacuten se exponen dichos avances

Entrenamiento de la red neuronal Para entrenar la red neuronal se utilizoacute el algoritmo de retropropagacioacuten expuesto en el capiacutetulo 1 Se disentildeoacute un programa en Java que permite entrenar una red neuronal de 3

18

capas La cantidad de clases a discriminar es variable y para este caso se utilizoacute una matriz de 5x8 es decir se tomaron 40 rasgos de entrada

Utilizando la red neuronal para reconocer caracteres A continuacioacuten se muestra en la imagen 211 el programa disentildeado en Java que permite discriminar un nuacutemero variable de clases Para este caso se eligioacute discriminar entre los diacutegitos del 0 al 9 El programa para reconocer los 128 caracteres referentes al sintetizador de voz tendraacute una interfaz similar con la diferencia de que la rejilla para ingresar el patroacuten a reconocer seraacute de 20x20 El programa mostrado fue programado tanto para entrenar la red como para reconocer los diacutegitos Se puede elegir entre los entrenamientos hechos para probar la efectividad de la red Las estadiacutesticas del entrenamiento elegido se muestran en la parte inferior de la pantalla

Imagen 211 Reconocimiento de los diacutegitos del 0 al 9 utilizando una red neuronal de 3 capas

19

Utilizando los clasificadores para reconocer caracteres Dentro de las teacutecnicas de reconocimiento de patrones existen diferentes clasificadores que nos permiten a partir de un conjunto de entrenamiento (en eacuteste caso un conjunto de tipos de letras que deseamos reconocer) saber a queacute clase pertenece un patroacuten de prueba que se introduce

Imagen 212 Un ejemplo de un clasificador KNN con un valor de K=3 y usando la meacutetrica City-Block para clasificar el patroacuten de prueba pruebabmp entre tres clases

En la imagen 212 se muestra como se puede clasificar un caraacutecter escalado de la imagen prueba 4bmp dentro de las tres clases existentes Se observa que si se puede clasificar este tipo de patrones pero veamos un ejemplo donde no sea posible clasificar un patroacuten de prueba y por queacute

Imagen 213 Un ejemplo de un clasificador KNN con un valor de K=5 y usando la meacutetrica Euclidiana para clasificar el patroacuten de prueba prueb3bmp entre tres clases El patroacuten no fue reconocido correctamente

20

Ahora como se observa no se pudo clasificar correctamente el patroacuten de prueba ya que pertenece claramente a la clase 3 pero por el clasificador que usamos o por el nuacutemero de K-vecinos o por el tipo de meacutetrica usada sucedioacute que en su mayoriacutea eran de la clase 2 y no de la clase 3 Tal vez si se hubiera elegido un valor de K menor a 5 tendriacutea maacutes posibilidades de clasificar correctamente Finalmente usar este tipo de teacutecnicas para reconocer caracteres es muy bueno ya que permite reconocer letras que se encuentran rotadas escaladas o trasladadas por una teacutecnica matemaacutetica llamada Momentos de Hu pero al tener una situacioacuten donde la imagen de prueba se encuentra exactamente a la misma distancia de dos o mas clases se crea el problema de no saber a que clase clasificar dicho patroacuten

Tratamiento digital de las imaacutegenes a capturar A continuacioacuten se muestra en la imagen 214 un programa que se codificoacute en C++ Builder y permite tratar digitalmente imaacutegenes BMP con la finalidad de eliminar el ruido pasarlas a escala de grises y binarizarlas El programa es capaz de generar histogramas de color

Imagen 214 Programa para tratar imaacutegenes digitalmente

21

CAPIacuteTULO 3 Buscadores La informacioacuten almacenada tendriacutea poco valor si no podemos consultarla buscar los datos en una base de datos o en muchas bases de datos que tienen conexioacuten por medio de la web es lo que nos permite explotar la informacioacuten Sin embargo la buacutesqueda seraacute eficiente si la respuesta del buscador es lo maacutes especifica o cercana a los temas solicitados Por lo que el software con aplicacioacuten de buscador es importante desarrollar un proceso para su creacioacuten Objetivo General Desarrollar un sistema de buacutesqueda de informacioacuten por conceptos en la Web basado en agentes inteligentes mediante la aplicacioacuten de ontologiacuteas Estado Del Arte Existen algunos sistemas que proporcionan buacutesquedas de informacioacuten basados en algunas de las tecnologiacuteas que vamos a utilizar Es habitual encontrar este tipo de buscadores y algunos otros similares bautizados como Megabuscadores o Multibuscadores a pesar de que estos teacuterminos no sean los maacutes idoacuteneos por lo que al hablar de este tipo de sistemas podemos referirlos como Buscadores Muacuteltiples en virtud de las caracteriacutesticas de su funcionamiento A continuacioacuten se mencionan algunos de ellos

Buscador muacuteltiple Copernic 2001 Pro Copernici producto de la empresa canadiense Copernic Technologies es un agente buscador que transfiere una ecuacioacuten de buacutesqueda a un conjunto de buscadores de manera simultaacutenea recupera las referencias pertinentes y las ordena seguacuten el grado medio de relevancia obtenido de cada uno de los buscadores La empresa creadora de Copernic se constituyoacute en 1996 con el propoacutesito de desarrollar soluciones innovadoras en tecnologiacuteas de agentes de buacutesqueda para conseguir un acceso y una gestioacuten eficientes de la gran masa de informacioacuten presente en Internet El programa se desarrolloacute el antildeo siguiente en una versioacuten experimental y se puso al alcance del puacuteblico en noviembre de 1998 Desde entonces se han lanzado versiones con elementos nuevos la mayoriacutea de los cuales no obstante soacutelo estaacuten disponibles en las ediciones comerciales La edicioacuten gratuita ofrece los servicios baacutesicos de consulta y con la intencioacuten de persuadir a los posibles compradores de las ediciones comerciales da una idea bastante aproximada de las posibilidades del programa completo

Lets Browse Como en otros medios (por ejemplo la televisioacuten) la navegacioacuten en Internet puede ser realizada por grupos de gente [Lieberman et al 1997] Lets browse muestra como un agente puede asistir a un grupo de gente en su navegacioacuten sugirieacutendoles materiales nuevos que puedan ser de intereacutes comuacuten entre ellos

Este trabajo es una extensioacuten del agente Letizia [Lieberman 1995] el cual selecciona paacuteginas de Web Letizia inicia una buacutesqueda por niveles visita las ligas que encuentra a partir de la paacutegina que su usuario esteacute revisando y selecciona aquellas que sean similares a los intereses que ha aprendido de su usuario (observando su navegacioacuten) Posteriormente muestra sus recomendaciones en un canal de navegacioacuten

22

El trabajo del agente consiste en seleccionar de la misma forma que Letizia lo hace aquellas paacuteginas que mejor satisfagan los intereses de todos los participantes Las caracteriacutesticas de Letrsquos browse son la deteccioacuten automaacutetica de la presencia de usuarios navegacioacuten automaacutetica (en canal de navegacioacuten) el despliege dinaacutemico de las preferencias de los usuarios y la explicacioacuten de las recomendaciones Permite ademaacutes revisar las paacuteginas desde el punto de vista de otra persona (con sus preferencias) y asiacute estimar cual seriacutea su posible opinioacuten acerca de dicha paacutegina auacuten cuando aquella persona no la haya revisado anteriormente

Agentes de Informacioacuten Un agente de informacioacuteiin es utilizado para organizar los espacios de informacioacuten del usuario y facilitar su explotacioacuten En el WWW (World Wide Web) se estaacuten implementando diversos agentes de informacioacuten El Agente Letizia [Lieberman 1995] que existe en un navegador de Web anticipa queacute artiacuteculos pueden ser de intereacutes para el usuario basaacutendose en las conductas pasadas del usuario Las paacuteginas que cree son de intereacutes del usuario Letizia las despliega en una ventana de sugerencias por unos instantes Marco Conceptual Actualmente para poder hacer la consulta de cualquier tipo de informacioacuten en Internet la mayoriacutea de las personas recurre a los motores de buacutesquedas conocidos como Google Yahoo Altavista por mencionar algunos siendo que estos usan diferentes meacutetodos para llegar a su objetivo podemos darnos cuenta que arrojan distintos resultados uno de otro que en el mejor de los casos coinciden en un porcentaje muy poco satisfactorio con la buacutesqueda en cuestioacuten con lo que concluimos que una respuesta a esta falta de precisioacuten en cuanto a la buacutesqueda de un tema en especial es mejor la buacutesqueda de conceptos lo cual permite al usuario acercarse maacutes al tema de su intereacutes Es importante enfocar nuestra solucioacuten apoyaacutendonos en un motor de buacutesqueda y aplicando herramientas como los Agentes que nos permitan recopilar la informacioacuten maacutes precisa de cada buacutesqueda a traveacutes de un algoritmo propio obteniendo resultados maacutes cercanos a los deseados ya que estos provienen de muacuteltiples documentos ahorrando tiempo y ganando precisioacuten a la vez Muy frecuentemente encontramos que cuando se trata de buacutesquedas en Internet a traveacutes de los motores de buacutesqueda populares los usuarios hacen consultas de diversas paginas y es muy difiacutecil llevar una lista de todos los sitios visitados o de aquellos que nos mostraron la informacioacuten maacutes adecuada nuestro sistema es capaz de registrar dentro de una base de datos un iacutendice de todos los sitios que se obtuvieron en la buacutesqueda de un tema o concepto con lo que el usuario no tendraacute que realizar una ldquonuevardquo buacutesqueda de un tema antes consultado sino que tendraacute a la mano todos los sitios que arrojoacute la primera buacutesqueda Marco teoacuterico

Descripcioacuten de RDF

El Resource Description Frameworiiik (RDF) es un fundamento para el procesamiento de metadatos proporciona interoperabilidad entre aplicaciones que intercambian informacioacuten legible por maacutequina en la Web RDF utiliza XML para intercambiar descripciones de recursos Web pero los recursos descritos pueden ser de cualquier tipo

23

incluyendo recursos XML y no-XML RDF resalta las facilidades para hacer posible el procesamiento automaacutetico de los recursos Web RDF puede utilizarse en diferentes aacutereas de aplicacioacuten por ejemplo en la recuperacioacuten de recursos para proporcionar mejores capacidades a los motores de buacutesqueda en catalogacioacuten para la descripcioacuten de contenido y relaciones de contenido accesibles en un sitio Web particular en una paacutegina o biblioteca digital a traveacutes de agentes de software inteligente para facilitar que el conocimiento se comparta e intercambie en la valoracioacuten de contenido en la descripcioacuten de colecciones de paacuteginas que representan un documento loacutegico individual para la descripcioacuten de los derechos de propiedad intelectual de las paacuteginas Web y para expresar las preferencias de privacidad de un usuario asiacute como las poliacuteticas de privacidad de un sitio Web Las descripciones utilizadas por estas aplicaciones pueden modelarse como relaciones entre recursos Web El modelo de datos de RDF tal y como se especifica en RDFMS define un modelo simple para describir las relaciones entre recursos en teacuterminos de propiedades y valores designadas Las propiedades RDF pueden entenderse como atributos de un recurso y en este sentido corresponden con los tradicionales pares atributo-valor Las propiedades RDF tambieacuten representa relaciones entre recursos De esta forma el modelo de datos RDF puede parecer un diagrama entidad-relacioacuten El modelo de datos RDF sin embargo no proporciona mecanismos para declarar estas propiedades ni proporcionan ninguacuten mecanismo para definir las relaciones entre estas propiedades y otros recursos Este es el papel [la funcioacuten] del Esquema RDF

Las comunidades de descripcioacuten de recursos necesitan la habilidad para decir ciertas cosas sobre ciertas clases de recursos Para describir recursos bibliograacuteficos por ejemplo son habituales atributos descriptivos tales como autor [author] tiacutetulo [title] y materia [subject] Para la certificacioacuten digital se necesitan muchas veces atributos tales como esquema simple de deteccioacuten de errores [checksum] y autorizacioacuten [authorization] La declaracioacuten de estas propiedades (atributos) y su semaacutentica correspondiente se definen en el contexto de RDF como un Esquema RDF Un esquema define no soacutelo las propiedades de un recurso (ej tiacutetulo autor materia tamantildeo color etc) sino que puede tambieacuten definir los tipos de recursos que se describiraacuten (libros paacuteginas Web personas empresas etc)

Los Esquemas RDF podriacutean contrastarse con las Definiciones del Tipo de Documentos (DTDs) de XML y los Esquemas XML A diferencia de una DTD o Esquema XML que dan restricciones especiacuteficas en la estructura de un documento XML un Esquema RDF proporciona informacioacuten sobre la interpretacioacuten de una sentencia dada en un modelo de datos RDF Mientras un Esquema XML puede utilizarse para validar la sintaxis de una expresioacuten RDFXML un esquema sintaacutectico soacutelo no es suficiente para los objetivos de RDF Los Esquemas RDF pueden tambieacuten especificar restricciones que deben seguirse por estos modelos de datos

Clases y Propiedades Un Esquema RDF se expresa a traveacutes de un modelo de datos descrito en la especificacioacuten del Modelo y la Sintaxis RDF [RDFMS] El lenguaje de descripcioacuten del esquema es un simple conjunto de recursos y propiedades definidos por la Especificacioacuten del Esquema RDF y la parte impliacutecita de cada modelo RDF que utiliza la mecaacutenica del esquema RDF

24

El sistema de escritura de datos [type system] El Esquema RDF definido en esta especificacioacuten es una coleccioacuten de recursos RDF que puede utilizarse para describir propiedades de otros recursos RDF (incluyendo propiedades) que definene vocabularios RDF de aplicacioacuten especiacutefica El nuacutecleo del vocabulario del esquema se define en un namespace denominado aquiacute informalmente rdfs e identificado por el URI de referencia httpwwww3org200001rdf-schema Esta especificacioacuten utiliza tambieacuten el prefijo rdf para referirse al namespace principal RDF httpwwww3org19990222-rdf-syntax-ns

Como se describe en la especificacioacuten del modelo y la sintaxis [RDFMS] los recursos pueden ser objetos especiacuteficos de una categoriacutea [instances] de una o maacutes clases esto se indica con la propiedad rdftype Las clases se organizan muchas veces de una forma jeraacuterquica por ejemplo la clase Dog [perro] podriacutea considerarse subclase de Mammal [mamiacutefero] que a su vez es una subclase de Animal dando a entender que cualquier recurso que esteacute en rdftype Dog se considera tambieacuten que estaacute en rdftype AnimalEsta especificacioacuten describe una propiedad rdfssubClassOf para indicar dichas relaciones entre clases

El sistema de escritura [type system] del Esquema RDF es similar al sistema de los lenguajes de programacioacuten orientados a objetos tales como Java Sin embargo RDF se diferencia de muchos de esos sistemas en que en lugar de definir una clase en teacuterminos de propiedades sus objetos especiacuteficos de una categoriacutea [instances] pueden tener un esquema RDF que definiraacute las propiedades en teacuterminos de clases de recurso a los que se aplican Este es el papel de las restricciones rdfsdomain y de rdfsrange

Por ejemplo podemos definir que la propiedad author tenga un dominio de Book y un alcance de Literal mientras que un sistema OO claacutesico podriacutea definir tiacutepicamente una clase Book con un atributo denominado author de tipo Literal

Clases y Recursos como Conjuntos y Elementos El siguiente esquema ilustra el concepto de clase subclase y recurso Una clase se describe por un rectaacutengulo redondeado un recurso se describe por un punto grande En la figura abajo se han dibujado flechas desde un recurso a una clase que define Una subclase se presenta en un rectaacutengulo redondeado (la subclase) completamente incluido en otro (la superclase) Si un recurso estaacute dentro de una clase entonces existe una propiedad rdftype o expliacutecita o impliacutecita de aquel recurso cuyo valor es un recurso que define la clase que contiene (Estas propiedades se muestran como arcos en la representacioacuten graacutefica directamente etiquetada en el Esquema 2) El recurso RDF representado en el esquema 1 se describe tanto en el resto de esta especificacioacuten como en la especificacioacuten del Modelo y Sintaxis RDF

Ontologiacuteas en la Representacioacuten del Conocimiento En estos uacuteltimos antildeos se incrementoacute la cantidad de informacioacuten en la Internet lo cual motivoacute el incremento de la complejidad y la diversidad de la informacioacuten Esto tambieacuten motivoacute el intereacutes de automatizar muchas actividades que tradicionalmente se realizan en forma manual La principal motivacioacuten en el uso de las ontologiacuteas es que permiten compartir y reutilizar conocimiento en un dominio De ahiacute el intereacutes de muchos

25

investigadores en el aacuterea de inteligencia artificial para tratar de aplicar las ontologiacuteas en la representacioacuten de conocimiento Las ontologiacuteas son un elemento importante en la Web Semaacutentica y es un teacutermino filosoacutefico que trata sobre la naturaleza de la existencia y los tipos de objetos que existen Tambieacuten la ontologiacutea se puede definir como una especificacioacuten expliacutecita de una conceptualizacioacuten compartida La conceptualizacioacuten se refiere a un modelo abstracto de un fenoacutemeno en el mundo en donde se tienen que identificar los conceptos relevantes de este fenoacutemeno El teacutermino expliacutecito significa queacute tipos de conceptos son usados y las restricciones de estos conceptos Y por uacuteltimo el teacutermino compartido se refiere a que las ontologiacuteas capturan conocimiento que es aceptado por todos y no es individual de un grupo Actualmente se les estaacute dando maacutes uso a las ontologiacuteas en el campo de la Inteligencia Artificial En este campo se define la ontologiacutea como una descripcioacuten formal y expliacutecita de conceptos de un dominio (classes a las que nos referiremos como conceptos) propiedades de cada concepto las cuales describen las caracteriacutesticas y atributos de los conceptos (slots llamados tambieacuten como propiedades o roles) y restricciones de las propiedades (facets conocidas como restricciones) La informacioacuten que es representada a traveacutes de los lenguajes semaacutenticos puede ser compartida entre aplicaciones como los agentes

OWL y Web Semaacutentica

La Web Semaacutentica es una Web extendida dotada de mayor significado en la que cualquier usuario en Internet podraacute encontrar respuestas a sus preguntas de forma maacutes raacutepida y sencilla gracias a una informacioacuten mejor definida Al dotar a la Web de maacutes significado y por lo tanto de maacutes semaacutentica se pueden obtener soluciones a problemas habituales en la buacutesqueda de informacioacuten gracias a la utilizacioacuten de una infraestructura comuacuten mediante la cual es posible compartir procesar y transferir informacioacuten de forma sencilla Esta Web extendida y basada en el significado se apoya en lenguajes universales que resuelven los problemas ocasionados por una Web carente de semaacutentica en la que en ocasiones el acceso a la informacioacuten se convierte en una tarea difiacutecil y frustrante

LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES La comunicacioacuten es uno de los aspectos importantes dentro de una comunidad de agentes la cual permitiraacute compartir y enviar mensajes entre agentes Los meacutetodos tradicionales permiten la comunicacioacuten entre los agentes pero eacutestos no son suficientes para lograr un comportamiento social entre los agentes para ello es necesario que los mensajes tengan un significado y contenido semaacutentico Se han desarrollado varios lenguajes los cuales son usados para el enviacuteo de mensajes a continuacioacuten hablaremos de dos de ellos KQML Knowledge Query and Manipulation Language (KQML) es uno de los lenguajes que nos provee la estructura para enviar mensajes entre agentes Dentro de sus principales caracteriacutesticas tenemos que es independiente de la sintaxis del contenido y la ontologiacutea

26

que se utilizaraacute Asiacute mismo es independiente del mecanismo de transporte (TCPIP SMTP IIOP etc) e independiente del contenido del lenguaje (KIF SQL STEP Prolog etc) KQML fue desarrollado por el consorcio DARPA Knowledge Sharing Effort (KSE) cuyo principal objetivo fue desarrollar una base tecnoloacutegica para construir en forma progresiva sistemas cada vez con maacutes funcionalidad complejidad y amplitud KQML provee un lenguaje y un protocolo para intercambiar informacioacuten entre agentes inteligentes y para lograr este intercambio se tiene que compartir una sintaxis y una semaacutentica comuacuten para que los mensajes sean entendidos por los agentes Al lenguaje KQML se le dividioacute en tres capas la capa de contenido alberga el contenido del mensaje que es especificado en cualquier formato ya sea texto o binario La capa de comunicacioacuten contiene paraacutemetros como el identificador uacutenico asociado a la comunicacioacuten identidad del remitente e identidad del destinatario La capa de mensaje define tanto los diferentes tipos de interaccioacuten que se pueden establecer entre los agentes como los protocolos que se pueden establecer entre los agentes Tambieacuten incluye otras caracteriacutesticas como el lenguaje de representacioacuten o la ontologiacutea siendo ambos opcionales

JADE (Java Agent DEvelopment Framework)

JADEiv (Java Agent DEvelopment Framework) es un middleware que proporciona tanto un entorno de desarrollo como un entorno de ejecucioacuten para la realizacioacuten y mantenimiento de sistemas multiagente El entorno de desarrollo estaacute formado por una serie de libreriacuteas en Java que permiten la implementacioacuten de agentes de manera limpia e independiente de la plataforma sobre la que se va a ejecutar El entorno de ejecucioacuten permite a los agentes vivir y comunicarse entre ellos Estaacute realizado enteramente en Java y proporciona una serie de herramientas que permiten al desarrollador controlar y depurar a los agentes en tiempo real JADE es un middleware desarrollado por TILAB para el desarrollo de aplicaciones distribuidas multiagente JADE proporciona tanto el entorno de desarrollo para la creacioacuten de aplicaciones basadas en agentes como el entorno de ejecucioacuten JADE presenta las siguientes caracteriacutesticas

P2P Arquitectura peer-to-peer cada agente puede tomar la iniciativa en una comunicacioacuten o bien responder a peticiones que le hagan otros agentes

Interoperabilidad JADE cumple con las especificaciones FIPA por lo que los agentes desarrollados en JADE pueden interactuar con otros agentes que no tienen porque estar desarrollados con JADE aunque si deben seguir las especificaciones FIPA

Portabilidad La API que proporciona JADE es independientemente de la red sobre la que va a operar asiacute como de la versioacuten de Java utilizada teniendo la misma API para J2EE J2SE y J2ME

27

Intuitiva JADE se ha desarrollado para ofrecer una API faacutecil de aprender y sencilla de manejar

Los agentes JADE tienen nombres uacutenicos y se permite a cada agente descubrir a otros agentes y comunicarse con ellos mediante comunicaciones punto a punto Los agentes proporcionan servicios cada agente puede buscar a otros dependiendo de los servicios que proporcionen otros agentes La comunicacioacuten entre agentes se lleva a cabo a traveacutes de mensajes asiacutencronos es decir el agente que enviacutea el mensaje y el destinatario del mensaje no tienen porqueacute estar disponibles al mismo tiempo Es maacutes el destinatario no tiene porqueacute existir en ese instante Los mensajes se pueden enviar a un agente en concreto o se pueden enviar a agentes que se desconocen pero se sabe que poseen unas ciertas caracteriacutesticas JADE proporciona mecanismos de seguridad ya que habraacute agentes a los que no se les esteacute permitido comunicarse con otros agentes de manera que una aplicacioacuten puede verificar la identidad del receptor y del agente que enviacutea el mensaje y no dejar realizar actuaciones no permitidas para un determinado agente La estructura de los mensajes se basa en el lenguaje ACL (Agent Communication Lenguaje) que ha sido definido por la FIPA JADE facilita mecanismos para el desarrollo de los objetivos que deben alcanzar los agentes Los comportamientos (behaviours) y la comunicacioacuten entre los agentes (junto con el servicio de paacuteginas amarillas) proporcionan los recursos necesarios para programar un sistema multiagente JADE tambieacuten permite a los agentes cambiar de Host (en J2SE) Un agente puede interrumpir en un momento dado su ejecucioacuten migrar a otro host (sin necesidad de que el coacutedigo esteacute previamente en el host destino) y continuar la ejecucioacuten en el mismo punto en el que la interrumpioacute Esto permite un balanceo de carga ya que permite a los agentes migrar hosts menos cargados El entorno de ejecucioacuten proporciona un marco donde poder ejecutar los agentes y herramientas graacuteficas para su monitorizacioacuten y depuracioacuten Los agentes JADE necesitan del entorno de ejecucioacuten donde poder vivir Cada instancia del entorno de ejecucioacuten se denomina contenedor (container) Al conjunto de los contenedores se le denomina plataforma (platform) y proporciona una capa que oculta a los agentes (y al desarrollador) el entorno donde se ha decidido ejecutar la aplicacioacuten En cada plataforma debe existir un contenedor especial denominado contenedor principal (main container) La principal diferencia del contenedor principal respecto al resto de contenedores es que alberga dos agentes especiales

AMS (Agent Management System) Este agente proporciona el servicio de nombres asegurando que cada agente en la plataforma disponga de un nombre uacutenico Tambieacuten representa la autoridad es posible crear y matar agentes en contenedores remotos requeriendoselo al agente AMS

DF (Directory Facilitator) Proporciona el servicio de Paacuteginas Amarillas Gracias al agente DF un agente puede encontrar otros agentes que provean los servicios necesarios para lograr sus objetivos

28

La caracteriacutestica mas importante del entorno de ejecucioacuten es la interfaz graacutefica que proporciona desde la que podemos controlar y depurar los agentes existentes Todas las herramientas han sido desarrolladas como agentes y siguen sus mismas reglas Disentildeo Arquitectura

Agente usuario

Agente de ontologiacutea

Agente de filtrado

Agente de recuperacioacuten

BD

OntologiacuteaSistema

Motor de buacutesqueda

El sistema esta disentildeado para que un usuario realice alguna buacutesqueda relacionada con alguno de los tres temas propuestos en nuestra base de conocimiento que son Ingenieriacutea de Software Base de Datos y Deportes El sistema esta basado en una arquitectura multiagente la cual se conforma por Agente Usuario Actuacutea de intermediario entre el usuario y el sistema Sus servicios son solicitados por el usuario para resolver las consultas El usuario le suministra una consulta y el sistema le devuelve una lista de documentos que pueden satisfacer sus necesidades Este agente tiene la capacidad de acceder a la base de datos con el objetivo de almacenar yo recuperar resultados Base de Datos Guardaraacute las ultimas buacutesquedas realizadas para su posterior consulta a peticioacuten del usuario Agente de Filtrado Gestiona la recuperacioacuten de documentos y realiza el filtrado de los mismos proporcionados por el Agente de Recuperacioacuten Recibe la peticioacuten del Agente Usuario y a su vez esta es enviada al Agente Ontologiacutea para que este regrese una evaluacioacuten de la consulta y de esta forma conocer si es necesaria una redefinicioacuten de la consulta En caso de ser necesaria se espera recibir el nuevo vector de consulta hasta que se cumpla una de dos opciones el usuario deje de redefinir la consulta o la consulta sea concreta Cuando la consulta sea concreta es enviada de nueva cuenta al Agente Ontologiacutea el cual regresaraacute el Nuevo Vector Expandido Este seraacute enviado al Agente de Recuperacioacuten Cuando el Agente de Recuperacioacuten regrese los urlacutes de los resultados (con sus respectivos vectores de teacuterminos) se realiza una evaluacioacuten de los vectores de cada documento con respecto al vector de buacutesqueda expandida con el objetivo de asignarles una calificacioacuten Gracias a esta calificacioacuten podemos obtener aquellos documentos que mejor cumplan con las expectativas del usuario (Estos documentos son regresados al Agente Usuario) Agente Ontologiacutea Recibe el vector de consulta proporcionado por el Agente de Filtrado La informacioacuten contenida en el vector de consulta es comparada con la existente en nuestra ontologiacutea Una vez verificada la existencia de la informacioacuten del

29

vector consulta dentro de la ontologiacutea este se encarga de devolver la distancia y el umbral al Agente de Filtrado Se espera que este devuelva una peticioacuten para expandir ese mismo vector Puede darse el caso de obtener dos tipos de buacutesquedas una general y otra mucho maacutes definida En cualquiera de los caso obtenemos un nuevo vector de buacutesqueda (con una informacioacuten mejor definida este es el Vector de Buacutesqueda Expandido) que es enviado de regreso al Agente de Filtrado el cual genera una copia y le es enviada al Agente de Recuperacioacuten Ontologiacutea Representa nuestra base de conocimientos Esta compuesta por tres aacutereas de conocimiento las cuales son Ingenieriacutea se Software Bases de Datos y Deportes Para poder representar esta ontologiacutea en un lenguaje entendible para agentes inteligentes se programaraacute bajo los fundamentos de las estructuras RDF contenidas en las especificaciones de XML y siguiendo los estaacutendares de la W3C Agente Recuperacioacuten Realiza la buacutesqueda gracias a la informacioacuten que le es entregada por el Agente de Filtrado (se trata Vector de Buacutesqueda Expandido generado por el Agente de Ontologiacutea) El agente estructura esta informacioacuten y se introduce en un motor de buacutesqueda(diacutegase por ejemplo Google) de tal manera que obtengamos una lista de posibles documentos A cada documento se le asigna un vector de teacuterminos con sus pesos derivados de un anaacutelisis TFIDF para despueacutes regresar las urlacutes con su respectivo vector de teacuterminos al Agente Filtrado RESULTADOS Este proyecto tiene la finalidad de desarrollar el software para un antivirus y un traductor Pero durante los estudios de anaacutelisis de estos dos productos se encontroacute que el software para la buacutesqueda de la informacioacuten tambieacuten puede ser implementada por medio de teacutecnicas de Inteligencia Artificial Para construir el software de aplicacioacuten para estas necesidades se usa la metodologiacutea de cascada Donde los pasos a seguir son el Anaacutelisis Disentildeo Pruebas Implementacioacuten y Mantenimiento Hasta este momento estamos en la etapa de pruebas de algunos moacutedulos de los tres productos IMPACTO El detector de intrusos en una red es de mucha importancia debido a que en la actualidad se han diseminado muchos virus que pueden ser transmitidos a traveacutes de intrusos Hasta la fecha el meacutetodo de proteccioacuten se hace de forma manual La finalidad de este software es automatizar la proteccioacuten El traductor de texto a voz tiene como primera aplicacioacuten el auxilio en la lectura de documentos para las personas invidentes o deacutebiles visuales una segunda aplicacioacuten es la comunicacioacuten con la computadora por medio del lenguaje natura El buscador de informacioacuten es un auxilio en la buacutesqueda de datos en una base de datos de conocimiento Ya que tambieacuten estaacuten proliferando las bibliotecas virtuales es una ayuda en la localizacioacuten de informacioacuten cientiacutefica y un preaacutembulo para un software de apoyo docente BIBLIOGRAFIacuteA [1] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

30

[2] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps[3] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[4] w3c en espantildeol OWL y Web Semaacutentica httpwwww3cesDivulgacionGuiasbrevesWebSemantica

[5] Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

[6] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[7] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[8] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[9] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[10] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[11] Laboratorios Googlehttplabsgooglecompapershtml

[12] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[13] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

[14] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

[15] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps [16] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[18] Trabajos de Agente en JADE http Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

31

[19] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[20] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[21] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[22] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[23] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[24] Laboratorios Googlehttplabsgooglecompapershtml

[25] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[26] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

  • En este reporte teacutecnico se presenta la descripcioacuten general anaacutelisis y estado actual de de los trabajos terminales TT2006135 TT20060097 y TT20060068 que tienen por titulo ldquoSistema prototipo de deteccioacuten de intrusos en la red utilizando agentes inteligentesrdquo rdquoProcesamiento digital de imaacutegenes para la conversioacuten de texto a vozrdquo y ldquoSistema de buacutesqueda de informacioacuten por conceptos en la webrdquo respectivamente Los prototipos que se obtendraacuten seraacuten un software robusto que se desarrollaraacuten con teacutecnicas de inteligencia artificial como Agentes inteligentes y Redes neuronales
  • Estructura de un sistema neuronal artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
    • Estado Del Arte
      • Estructura de un sistema neuronal artificial
        • Sistemas paralelos distribuidos y adaptativos
          • Modelo estaacutendar de neurona artificial
            • Sigmoidal logariacutetmica
              • Empleo del perceptroacuten para reconocer funciones loacutegicas
              • Algoritmo de aprendizaje del perceptroacuten
                • Objetivo General
                • Estado Del Arte
                • A continuacioacuten se mencionan algunos de ellos
                  • Buscador muacuteltiple Copernic 2001 Pro
                  • Lets Browse
                  • Agentes de Informacioacuten
                    • Marco Conceptual
                      • Clases y Propiedades
                      • El sistema de escritura de datos [type system]
                      • Clases y Recursos como Conjuntos y Elementos
                        • Ontologiacuteas en la Representacioacuten del Conocimiento
                          • LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES
                          • JADE (Java Agent DEvelopment Framework)
                            • Disentildeo
                            • Arquitectura
Page 2: INSTITUTO POLITÉCNICO NACIONALsappi.ipn.mx/cgpi/archivos_anexo/20061387_3286.pdf · La comunicación del hombre con la computadora por medio del lenguaje natural, es la finalidad

2

RESUMEN

En este reporte teacutecnico se presenta la descripcioacuten general anaacutelisis y estado actual de de los trabajos terminales TT2006135 TT20060097 y TT20060068 que tienen por titulo ldquoSistema prototipo de deteccioacuten de intrusos en la red utilizando agentes inteligentesrdquo rdquoProcesamiento digital de imaacutegenes para la conversioacuten de texto a vozrdquo y ldquoSistema de buacutesqueda de informacioacuten por conceptos en la webrdquo respectivamente Los prototipos que se obtendraacuten seraacuten un software robusto que se desarrollaraacuten con teacutecnicas de inteligencia artificial como Agentes inteligentes y Redes neuronales Palabras clave Agentes inteligentes Redes neuronales Ontologiacuteas Concepto Voz Traductor Virus software teacutecnicas inteligencia artificial

3

IacuteNDICE RESUMENhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 2 IacuteNDICEhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 3 INTRODUCCIOacuteNhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 5 CAPIacuteTULO 1 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 5 Deteccioacuten de virushelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 5 CAPIacuteTULO 2 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip6 Traductorhelliphellip helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 6 Estado del arte helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip6 Metodologiacutea de desarrollohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip8 Redes Neuronales Artificialeshelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip8 Estructura de un sistema neuronal artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9 Sistemas paralelos distribuidos y adaptativoshelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 11 Modelo estaacutendar de neurona artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip12 Arquitectura de redes neuronaleshelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 13 El perceptroacuten simple helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 14 Empleo del perceptroacuten para reconocer funciones loacutegicashelliphelliphelliphelliphelliphelliphelliphelliphellip 15 Algoritmo de aprendizaje del perceptroacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip16 Definicioacuten del algoritmo de aprendizajehelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 17 Avanceshelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip17 Reconocimientos de caractereshelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip17 Entrenamiento de la red neuronalhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip17 Utilizando la red neuronalhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip18 Utilizando los clasificadores para reconocer caractereshelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip19 Tratamiento digital de las imaacutegenes a capturarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip20 CAPIacuteTULO 3 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 21 Buscadoreshelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip helliphelliphelliphelliphelliphelliphelliphellip21 Objetivo generalhelliphelliphellip helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip21 Estado del artehelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip21 Buscador muacuteltiple Copernic 2001 Prohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 21 Letrsquos Browse helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 21 Agentes de informacioacuten helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 22 Marco conceptual helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 22 Marco teoacuterico helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 22 Descripcioacuten de RDFhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip22 Clases y propiedadeshelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 23 El sistema de escritura de datoshelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip24 Clases y recursos como conjuntos y elementoshelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip24 Ontologiacuteas en la representacioacuten del conocimientohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 24 OWL y web semaacutenticahelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 25 Lenguajes de comunicacioacuten entre agenteshelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip25 KQML helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 25 JADE(Java Agent Development Framework)helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 26 Disentildeo helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 28 Arquitectura helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 28 RESULTADOShelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 29 IMPACTOhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 29 REFERENCIAS BIBLIOGRAacuteFICAS helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip29

4

INTRODUCCIOacuteN El requerimiento del software se haraacute cada vez maacutes complejo con el desarrollo de las computadoras ya que estas podraacuten realizar muchas actividades al mismo tiempo Esto indica que el software podraacute ser tan robusto que seraacute necesario encontrar teacutecnicas de desarrollo de software que simplifiquen su creacioacuten Llegaraacute el tiempo en que la implementacioacuten del software sea una aplicacioacuten automatizada de las teacutecnicas que se estaacuten desarrollando las teacutecnicas van a depender del tipo de computadora que se esteacute utilizando pues las computadoras con el tiempo seraacuten maacutes raacutepidas y con mayor capacidad de almacenamiento Capaces de realizar millones de operaciones en un nanosegundo esto propiciaraacute el desarrollo de teacutecnicas maacutes eficientes que se basaraacuten en la repeticioacuten de procesos casi infinitos El desarrollo de software se hace necesario por la diversidad de necesidades inherentes al desarrollo de las computadoras sociales econoacutemicas cientiacuteficas y tecnoloacutegicas Ademaacutes de la explicacioacuten por medio de modelos computacionales de los fenoacutemenos fiacutesicos que se presentan en la naturaleza Una de las teacutecnicas para producir software es la aplicacioacuten de la inteligencia artificial esta teacutecnica proporciona una mayor facilidad para producir software mucho maacutes eficiente y robusto que el software desarrollado por programacioacuten convencional Para la produccioacuten de software especiacutefico se realizoacute un estudio detallado de los requerimientos de eacuteste para determinar su estructura y aplicar la teacutecnica de inteligencia artificial adecuada Y asiacute se supo que las teacutecnicas de agentes inteligentes y de redes neuronales eran las adecuadas CAPIacuteTULO 1 Deteccioacuten de virus En la actualidad la informacioacuten que se almacena en medios electroacutenicos puede ser dantildeada o robada Por lo que es necesario protegerla de los virus y de los intrusos Para poder crear un detector de virus se requiere tener acceso al los sistemas operativos de Microsoft Como el IPN no tiene licencias de estos sistemas no se puede desarrollarlos actualmente y tambieacuten debido a la existencia de una gran cantidad de virus Por lo que se optoacute por la deteccioacuten de intrusos en una red La deteccioacuten de intrusos se define como el problema de identificar elementos que hacen uso de los recursos de un sistema de coacutemputo sin autorizacioacuten y de aquellos que tienen legiacutetimo acceso al sistema pero abusan de sus privilegios [2] De la definicioacuten anterior se dividen los sistemas de deteccioacuten de intrusos o IDS en base a host llamado HID los cuales velan la seguridad e integridad de los datos tomando su informacioacuten para detectar intrusiones desde lugares como llamadas al sistema o archivos logs del sistema operativo estaacuten tambieacuten los basados en red o NID cuyas fuentes de deteccioacuten es supervisar los datos en el trafico de red y por uacuteltimo estaacuten los hiacutebridos que combinan las dos anteriores fuentes de deteccioacuten Es posible encontrar en el mercado numerosos IDSrsquos comerciales La mayoriacutea revelan pocos o ninguacuten detalle sobre su arquitectura y funcionamiento interno Sin embargo algunos IDSrsquos no comerciales de distribucioacuten gratuita o concebidos en ambientes acadeacutemicos revelan pormenores de su funcionamiento y arquitectura estos uacuteltimos fueron algunos de los estudiados para este trabajo A continuacioacuten se describen las caracteriacutesticas de los IDSrsquos maacutes contrastados con nuestro trabajo Snort es un sistema de deteccioacuten de intrusos basado en red eacutesta disponible bajo la licencia puacuteblica general

5

GNU puede usarse de forma gratuita y la totalidad de su coacutedigo es de libre distribucioacuten Utiliza para la deteccioacuten un conjunto basto de reglas y firmas de ataques La arquitectura de Snort comprende tres subsistemas primarios [5] El decodificador de paquetes el motor de deteccioacuten y el subsistema de alertas Utiliza la libreriacutea de captura de paquetes promiscua libcap JAM (Java Agents for Meta-Learning) no es propiamente un IDS pero dentro de una de sus orientaciones se usan agentes inteligentes distribuidos para aprender panoramas de fraudes e intrusiones en sistemas de coacutemputo [6] El conocimiento adquirido por los agentes distribuidos puede ser intercambiado y usado para entrenar a otros agentes para poder identificar ataques basados en el conocimiento compartido CAPIacuteTULO 2 Traductor La comunicacioacuten del hombre con la computadora por medio del lenguaje natural es la finalidad Para poder realizar esta tarea se debe hacer por partes Primero se construiraacute un traductor de texto a voz debido a que tiene aplicaciones como la de lecturas de texto para los invidentes La creacioacuten de sistemas computacionales que permitan agilizar las tareas que el hombre tiene que llevar a cabo se ha vuelto un tema de intereacutes general Gracias a los avances de la tecnologiacutea computacional se han desarrollado herramientas que facilitan la realizacioacuten de muacuteltiples tareas Este trabajo terminal estaacute enfocado al desarrollo de un sistema computacional que permita realizar la conversioacuten de texto impreso a voz

Las aplicaciones derivadas de dicho trabajo son muacuteltiples y se mencionan algunas de ellas en este capiacutetulo De igual manera se presenta un anaacutelisis del estado del arte referente a sistemas sintetizadores de voz se describiraacute la metodologiacutea de trabajo que se utilizaraacute durante el desarrollo del sistema se hablaraacute acerca del desarrollo de software orientado a objetos y por uacuteltimo se trataraacuten como antecedentes teoacutericos temas referentes a las aacutereas del conocimiento que se utilizaraacuten para implementar ciertas funcionalidades del sistema Estado Del Arte El desarrollo de la tecnologiacutea ayuda a que las personas con limitaciones fiacutesicas minimicen sus deficiencias tal es el caso de las personas invidentes En Meacutexico se estima una cifra de 3000000 (284) de personas que padecen de ceguera o alguna debilidad visual1 (p e dislexia) Hoy en diacutea existen aplicaciones enfocadas a ayudar a este tipo de personas tales como libros parlantes computadoras para invidentes pantallas para invidentes bastones y lentes para invidentes entre otros En Estados Unidos ya existe una tecnologiacutea llamada ldquolibros parlantesrdquo que consiste copiar a la computadora el texto contenido en un libro para su posterior sintetizacioacuten en voz Quicktionary de la empresa alemana WizCom Technologies es un pequentildeo escaacutener con forma de boliacutegrafo que lee y traduce a voz textos escritos2 (ver imagen 21)

1 httponcetv-ipnnetnoticiasindexphpmodulo=despliegueampdt_fecha=2004-12-01ampnumnota=15 (Estimacioacuten personas invidentes) httpwwwconapogobmx00cifras00indicadores00xls (Poblacioacuten de la Repuacuteblica Mexicana) 2 httpwwwwizcomtechcomWizcomproductsproduct_infoaspfid=176

6

En nuestro paiacutes el desarrollo de la tecnologiacutea no ha alcanzado niveles muy elevados lo cual implica tener que traerla del exterior y en consecuencia el costo de la misma se eleva Esto se convierte en un problema para los consumidores finales ya que al no tener los medios suficientes para adquirir alguna tecnologiacutea tampoco obtienen los beneficios que la misma podriacutea otorgarles La tecnologiacutea que seriacutea desarrollada por este proyecto facilitariacutea la vida de muchas personas (con debilidades visuales o no) y lo que es mejor a un costo accesible Auacuten no se ha calculado el precio que dicha tecnologiacutea implicariacutea pero estaacute claro que seriacutea menor que el de una tecnologiacutea importada

Imagen 21 ReadingPen ndash Quicktionary creado por WizCom Technologies A continuacioacuten en la tabla 1 se muestra una comparacioacuten entre las funcionalidades que se planea tenga nuestro sistema (CIMATEV) y las funcionalidades que actualmente tiene Quicktionary

Funcionalidad Quicktionary (Actualmente)

CIMATEV (Se espera)

Calidad de la voz en general Buena Buena3

Inteligibilidad de la voz Si Si

Naturalidad de la voz Si y No en algunos casos Si y No en algunos casos

Tipo de texto escaneable

Captura texto personalizado incluyendo texto en negrita

cursiva invertido y subrayado tomando como

base fuentes estaacutendar y

Captura texto

personalizado incluyendo texto en negrita cursiva y

subrayado tomando como base

Portaacutetil Si No (Software para PC) Si (Sistema miacutenimo)

3 Para la siacutentesis de voz se utilizaraacute la teacutecnica de siacutentesis por seleccioacuten de unidades (Foneacutetica acuacutestica)

7

Tamantildeo del texto escaneable 6-22 puntos

6-22 puntos (Sistema miacutenimo)

En el caso del software para PC se planea que el tamantildeo

del texto no sea un factor que limite su conversioacuten a

vozPronunciacioacuten de nombres propios Si Si

Pronunciacioacuten de siglas Si Si

Se mantiene el estilo del texto escaneado

No Devuelve ASCII regular4

No Inicialmente devolveraacute

ASCII regular (se pretende utilizar el

estaacutendar Unicode)

Identifica la presencia de imaacutegenes No

No (En general) Si (Soacutelo para libros que

sigan el estaacutendar del software)

Ergonomiacutea y peso Si 85 g (3 oz) Se planea que el sistema miacutenimo sea ergonoacutemico y

ademaacutes tenga un peso razonable5

Tabla 1 Comparacioacuten entre las funcionalidades de Quicktionary y las de CIMATEV METODOLOGIacuteA DE DESARROLLO Se reconoce que el software al igual que todos los sistemas complejos evoluciona con el tiempo Los requerimientos que el sistema tiene que cubrir a menudo cambian conforme a que el desarrollo proceda haciendo que el camino que lleva al producto final no sea real las estrictas fechas de entrega hacen que sea imposible finalizar un producto completo por lo que se debe introducir una versioacuten limitada para cumplir con los tiempos de entrega Bajo estas circunstancias los desarrolladores necesitan de un modelo de proceso que ha sido disentildeado para acomodarse a un producto que evolucione con el tiempo Redes Neuronales Artificiales La historia de las redes neuronales comenzariacutea con el cientiacutefico aragoneacutes Santiago Ramoacuten y Cajal descubridor de la estructura neuronal del sistema nervioso A finales del siglo XIX la teoriacutea reticularista que sosteniacutea que el sistema nervioso estaba formado por una red continua de fibras nerviosas era extendida Sin embargo tras antildeos de trabajo aplicando y perfeccionando la teacutecnica de tincioacuten de Golgi en 1888 Ramoacuten y Cajal demostroacute que el sistema nervioso en realidad estaba compuesto por una red de ceacutelulas individuales las neuronas ampliamente conectadas entre siacute Pero no soacutelo observoacute al 4 ASCII de 7 bits Se pueden representar hasta 128 (27) caracteres diferentes 5 El acceso que se tenga a la tecnologiacutea que permita cubrir estos requerimientos no funcionales (ergonomiacutea y peso) seraacute decisivo para la realizacioacuten de los mismos

8

microscopio los pequentildeos espacios vaciacuteos que separaban unas neuronas de otras sino que tambieacuten establecioacute que la informacioacuten fluye en la neurona desde las dendritas hacia el axoacuten atravesando el soma Este descubrimiento baacutesico para el desarrollo de las neuro-ciencias en el siglo XX causoacute en la eacutepoca una verdadera conmocioacuten en la forma de entender el sistema nervioso concedieacutendose el premio Nobel de medicina a Ramoacuten y Cajal en 1906 (compartido con Camilo Golgi)

Axoacuten

Dendritas

Soma

Figura 22 Estructura de una neurona bioloacutegica tiacutepica

Sinapsis

Obviamente gracias al advenimiento de la microscopiacutea electroacutenica y a la introduccioacuten de otras importantes teacutecnicas se ha llegado a profundizar mucho maacutes en el estudio de la neurona Se estima que el sistema nervioso contiene alrededor de cien mil millones de neuronas Vistas al microscopio este tipo de ceacutelulas pueden presentarse en muacuteltiples formas aunque muchas de ellas presentan un aspecto similar muy peculiar (ver figura 21) con un cuerpo celular o soma (de entre 10 y 80 micras de longitud) del que surge un denso aacuterbol de ramificaciones (aacuterbol dendriacutetico) compuesto por las dendritas y del cual parte una fibra tubular denominada axoacuten (cuya longitud variacutea desde las 100 micras hasta el metro en el caso de las neuronas motoras1) que tambieacuten se ramifica en su extremo final para conectarse con otras neuronas En las interneuronas el axoacuten enviacutea la informacioacuten a otras neuronas mientras que las neuronas motoras lo hacen directamente al muacutesculo Existe un tercer tipo de neuronas las receptoras o sensoras que en vez de recibir informacioacuten de otras neuronas la reciben directamente del exterior (tal sucede por ejemplo en los conos y bastones de la retina) Se calcula que una neurona del coacutertex cerebral recibe informacioacuten por teacutermino medio de unas 10000 neuronas (convergencia) y enviacutea impulsos a varios cientos de ellas (divergencia)

Estructura de un sistema neuronal artificial Los ANS (Artificial Neural Systems) imitan la estructura hardware del sistema nervioso con la intencioacuten de construir sistemas de procesamiento de la informacioacuten

1 Lo que constituye el nervio

9

paralelos distribuidos y adaptativos que puedan presentar un cierto comportamiento ldquointeligenterdquo

Sistemas paralelos distribuidos y adaptativos Los tres conceptos clave de los sistemas nerviosos que se pretende emular en los artificiales son paralelismo de caacutelculo memoria distribuida y adaptabilidad al entorno De esta manera podemos hablar de las redes neuronales como sistemas paralelos distribuidos y adaptativos El procesamiento paralelo resulta esencial como se deduce de un sencillo ejemplo Una computadora convencional tipo PC que trabaja secuencialmente instruccioacuten por instruccioacuten empleariacutea varios minutos en realizar sobre una imagen compuesta por digamos 256x256 pixeles una sencilla tarea de tratamiento en bajo nivel (acentuar contrastes extraer contornos ) mucho maacutes simple que la que lleva a cabo el sistema visual para reconocer una imagen Un sistema basado en 16 DSP2 operando en paralelo empleariacutea del orden de 20 ms en la misma tarea puesto que cada procesador podriacutea operar en paralelo sobre diferentes sectores de la imagen Por otra parte el cerebro tarda este mismo tiempo en preprocesar una imagen compuesta por millones de pixeles (los que representan los conos y bastones de la retina) extraer sus rasgos caracteriacutesticos analizarla e interpretarla Ninguacuten sistema creado por el hombre es capaz de realizar algo semejante La clave reside en que los millones de neuronas que intervienen en el procesamiento de la imagen trabajan en paralelo sobre la totalidad de la imagen Otro concepto importante que aparece en el cerebro es el de memoria distribuida Mientras que en un computador la informacioacuten ocupa posiciones de memoria bien definidas en los sistemas neuronales se encuentra distribuida por las sinapsis de la red de modo que si una sinapsis resulta dantildeada no perdemos maacutes que una parte muy pequentildea de la informacioacuten Ademaacutes los sistemas neuronales bioloacutegicos son redundantes de modo que muchas neuronas y sinapsis pueden realizar un papel similar en definitiva el sistema resulta tolerante a fallos El uacuteltimo concepto fundamental es el de adaptabilidad Los ANS se adaptan faacutecilmente al entorno modificando sus sinapsis (y mediante otros mecanismos tambieacuten) y aprenden de la experiencia pudiendo generalizar conceptos a partir de casos particulares En el campo de las redes neuronales se llamaraacute a esta propiedad generalizacioacuten a partir de ejemplos Formalmente y desde el punto de vista del grupo PDP (Parallel Distributed Processing Reseach Group de la Universidad de California en San Diego) un sistema neuronal o conexionista estaacute compuesto por los siguientes elementos

bull Un conjunto de procesadores elementales o neuronas artificiales bull Un patroacuten de conectividad o arquitectura bull Una dinaacutemica de activaciones bull Una regla o dinaacutemica de aprendizaje bull El entorno donde opera

2 Digital Signal Processor

10

Modelo estaacutendar de neurona artificial Se denomina procesador elemental o neurona a un dispositivo simple de caacutelculo que a partir de un vector de entrada procedente del exterior o de otras neuronas proporciona una uacutenica respuesta o salida En este apartado se trataraacute el modelo denominado neurona estaacutendar (ver figura 31) que constituye un caso particular de un modelo maacutes complejo llamado modelo PDP El modelo estaacutendar considera que la regla de propagacioacuten es la suma ponderada y que la funcioacuten de salida es la identidad De esta forma la neurona estaacutendar etiquetada como i consiste en

bull Un conjunto de entradas Xj(t) y pesos sinaacutepticos Wij que representan la intensidad de interaccioacuten entre cada neurona presinaacuteptica j y cada neurona postsinaacuteptica i (ver figura 41)

bull Una regla de propagacioacuten σ(Wij Xj(t)) que proporciona el valor del potencial postsinaacuteptico hi(t)= σ(Wij Xj(t))=sumWijXj de la neurona i en funcioacuten de sus pesos y entradas

bull Una funcioacuten de activacioacuten Yi(t)=fi(hi(t)) que representa simultaacuteneamente la salida de la neurona i y su estado de activacioacuten (en el caso del modelo PDP las funciones de activacioacuten y de salida son tratadas por separado)

Con frecuencia se antildeade al conjunto de pesos de la neurona un paraacutemetro adicional θi que se denominaraacute umbral1 que se resta del potencial postsinaacuteptico por lo que el argumento de la funcioacuten de activacioacuten queda

sumj WijXj - θi

lo que representa antildeadir un grado de libertad adicional a la neurona En el caso de nodos de respuesta todo-nada este paraacutemetro representaraacute el umbral de disparo de la neurona es decir el nivel miacutenimo que debe alcanzar el potencial postsinaacuteptico (o potencial de membrana) para que la neurona se dispare o active En conclusioacuten el modelo de neurona denominado estaacutendar queda

Yi(t)=fi (sumj WijXj - θi)

Ahora bien si se hace que los iacutendices i y j comiencen en 0 se puede definir Wi0= θi y X0=-1 (constante) con lo que el potencial postsinaacuteptico (potencial local o de membrana) se obtiene realizando la suma desde j=0

Yi(t)=fi (sumj=012n WijXj)

1 En algunos modelos es threshold es decir ldquoumbralrdquo y en otros bias que no tiene una traduccioacuten clara en este caso

11

sum f ( )

Axoacuten Yi

Wi1

Wi2

Wij

Win

θi-1

X1

X2

Habiendo definido de esta manera la neurona estaacutendar basta con establecer la forma de la funcioacuten de activacioacuten para determinarla por completo A continuacioacuten se muestra una tabla con las funciones de activacioacuten maacutes utilizadas

Funcioacuten Relacioacuten entradasalida Graacutefica

Escaloacuten y=0 nlt0 y=1 nge0

Escaloacuten simeacutetrica y= -1 nlt0 y=+1 nge0

Lineal Identidad

y=n

Lineal saturada y=0 nlt0

y=n 0lenle1 y=1 ngt1

Lineal saturada simeacutetrica

y=-1 nlt-1 y=n -1lenle1

y=1 ngt1

Sigmoidal logariacutetmica

ney minus+=

11

Xj

Xn

Entradas

Dendritas

Sinapsis

Cuerpo celular

Salida

Umbral

Figura 23 Modelo de neurona estaacutendar

12

Tangente

hiperboacutelica

nn

nn

eeeey minus

minus

+minus

=

Lineal positiva y=0 nlt0 y=n 0len

Competitiva a=1 neurona con maacutex n

a=0 todas las demaacutes

C

Tabla 2 Funciones de activacioacuten habituales (se han omitido algunas constantes)

Arquitecturas de redes neuronales Se denomina arquitectura a la topologiacutea estructura o patroacuten de conexionado de una red neuronal En un ANS los nodos se conectan por medio de sinapsis esta estructura de conexiones sinaacutepticas determina el comportamiento de la red Las conexiones sinaacutepticas son direccionales es decir la informacioacuten soacutelo puede propagarse en un uacutenico sentido (desde la neurona presinaacuteptica a la postsinaacuteptica ver figura 24)

j

i

YjXj

Wij

YiNeurona presinaacuteptica

Neurona postsinaacuteptica

Figura 24 Interaccioacuten entre una neurona presinaacuteptica y otra postsinaacuteptica

En general las neuronas se suelen agrupar en unidades estructurales que denominaremos capas Las neuronas de una capa pueden agruparse a su vez formando grupos neuronales (clusters) Dentro de un grupo o de una capa si no existe este tipo de agrupacioacuten las neuronas suelen ser del mismo tipo Finalmente el conjunto de una o maacutes capas constituye la red neuronal

Se distinguen tres tipos de capas de entrada de salida y ocultas Una capa de entrada o sensorial estaacute compuesta por neuronas que reciben datos o sentildeales procedentes del entorno (por ejemplo proporcionado por sensores) Una capa de salida es aquella cuyas neuronas proporcionan la respuesta de la red neuronal (sus neuronas pueden estar conectadas a efectores) Una capa oculta es aquella que no tiene una conexioacuten directa

13

con el entorno es decir que no se conecta directamente ni a organos sensores o efectores Esta capa proporciona a la red neuronal grados de libertad adicionales gracias a los cuales puede encontrar representaciones internas correspondientes a determinados rasgos del entorno proporcionando una mayor riqueza computacional (ver figura 25)

Informacioacuten Capa de salida

(efectora) Capa oculta Capa de entrada (procesamiento) (sensorial)

Figura 25 Arquitectura unidireccional de tres capas de entrada oculta y de salida

Las conexiones entre las neuronas pueden ser excitadoras o inhibidoras un peso sinaacuteptico negativo define una conexioacuten inhibidora mientras uno positivo determina una conexioacuten excitadora Habitualmente no se suele definir una conexioacuten como de un tipo u otro sino que por medio del aprendizaje se obtiene un valor para el peso que incluye signo y magnitud

El perceptroacuten simple Este modelo neuronal fue introducido por Rosenblatt a finales de los antildeos cincuenta Dicha estructura se inspira en las primeras etapas de procesamiento de los sistemas sensoriales de los animales (por ejemplo la visioacuten) en los cuales la infomacioacuten va atravesando sucesivas capas de neuronas que realizan un procesamiento progresivamente de maacutes alto nivel Un perceptroacuten simple es un modelo unidireccional compuesto por dos capas de neuronas una sensorial o de entrada y otra de salida A continuacioacuten se muestra en la figura 26 su representacioacuten y la funcion de transferencia que utiliza

Figura 26 a) Las neuronas de entrada no realizan ninguacuten coacutemputo uacutenicamente enviacutean la informacioacuten a las neuronas de salida b) la funcioacuten de activacioacuten de las neuronas de la capa de salida es de tipo escaloacuten

Capa de entrada

Capa de salida

f(x) x

Funcioacuten escaloacuten

a) b)

14

El perceptroacuten puede utilizarse tanto como clasificador como para la representacioacuten de funciones booleanas pues su neurona es esencialmente de tipo MacCulloch-Pitts es decir de salida binaria La importancia histoacuterica del perceptroacuten radica en su caraacutecter de dispositivo entrenable ya que el algoritmo de aprendizaje que desarrollo Rosenblatt permite determinar automaacuteticamente los pesos sinaacutepticos que clasifican un conjunto de patrones a partir de un conjunto de ejemplos etiquetados (a esto se le llama red neuronal supervisada y el perceptron simple es de este tipo) Ahora se mostraraacute que un perceptroacuten permite realizar tareas de clasificacioacuten Cada neurona del perceptroacuten representa una determinada clase de modo que dado un vetor de entrada una cierta neurona responde con 0 si no pertenece a la clase que representa y con un 1 si siacute pertenece Es faacutecil ver que una neurona tipo perceptroacuten solamente permite discriminar entre dos clases linealmente separables (es decir cuyas regiones de decisioacuten pueden ser separadas mediante una uacutenica condicioacuten lineal o hiperplano que es una liacutenea recta si trabajamos en dos dimensiones) Sea una neurona tipo perceptroacuten de dos entradas x1 y x2 con salida y cuya operacioacuten se define por lo tanto como

y = H(w1x1+w2x2 - ө) o bien 1 si w1x1+w2x2 geӨ y = 0 si w1x1+w2x2 ltӨ

Si consideramos x1 y x2 situadas sobre los ejes de abscisas y ordenadas en el plano la condicioacuten

w1x1+ w2x2 -Ө = 0 rarr x2 = - (w1 w2) x1 + Ө w2 representa una recta (hiperplano si trabajamos con n entradas) que divide el plano en dos regiones que son aquellas para las que la neurona proporciona una salida 0 o 1 respectivamente como se muestra en la figura 27

x x

x x x

x x x

x

x

oo

oo

o o

o

X1

X2

Regioacuten w1x1+w2x2 geӨ Regioacuten w1x1+w2x2 ltӨ

Figura 27 Una neurona tipo perceptroacuten representa un discriminador lineal que separa dos regiones en el espacio que representan dos diferentes clases de patrones En esta graacutefica x = lsquo1rsquo y o = lsquo0rsquo

15

Empleo del perceptroacuten para reconocer funciones loacutegicas -Funcion linealmente separable Consideremos la funcioacuten loacutegica NAND2 (AND negada de dos entradas) que representamos sobre un plano en la graacutefica 3 que se presenta en seguida

x (10) o (11)

x (00)

x (01) X1

X2

Figura 28 Funcioacuten loacutegica NAND de dos entradas En la graacutefica x = lsquo1rsquo y o = lsquo0rsquo

Se puede ver que en este caso existen paraacutemetros w1 w2 y Ө que permiten una recta que separa perfectamente las regiones correspondientes a los valores loacutegicos 0 y 1 Y por lo tanto se dice que la funcioacuten loacutegica NAND es linealmente separable -Funcioacuten no separable linealmente

Ahora consideremos la funcioacuten loacutegica or-exclusivo (XOR) y representandola en un plano en la figura 29

x (10) o (11)

o (00)

x (01) X1

X2

Figura 29 Funcioacuten loacutegica XOR de dos entradas que no es linealmente separable

16

Al ser XOR no linealmente separable se dice que ldquola clase de funciones no separables linealmente no pueden ser representadas por un perceptroacuten simplerdquo El perceptroacuten presenta serias limitaciones pues solamente puede representar funciones linealmentes separables Y aunque pueda aprender automaacuteticamente a representar complejas funciones booleanas o resolver con eacutexito muchos problemas de clasificacioacuten con un cierto algoritmo en ocasiones fallara draacutesticamente Minsky (que es uno de los padres de la inteligencia artificial) y Papera estudiaron en profundidad el perceptroacuten y en 1969 publicaron un exhaustivo trabajo donde exhibian las limitantes del modelo en lo que resultoacute decisivo para que muchos de los recursos que se destinaban a su investigacioacuten se desviara a otras aacutereas Una solucioacuten para las limitantes del perceptroacuten simple puede consistir en incluir maacutes capas en la arquitectura con lo que tendremos un perceptroacuten multicapa A finales de los antildeos sesenta ya se apuntaba como solucioacuten a las limitaciones del perceptroacuten introducir capas ocultas pero el problema estaba en que no se teniacutea un algoritmo de aprendizaje para el perceptroacuten multicapa (con capas ocultas) Dicho algoritmo fue propuesto por Paul Verbos alrededor de 1974 pero fue preciso hasta mediados de los ochenta cuando el grupo PDP redescubriera un algoritmo similar al cual denominaron Back-Propagation o BP y dieran a conocer a la comunidad internacional su gran potencial para la resolucioacuten de problemas praacutecticos

Algoritmo de aprendizaje del perceptroacuten El del perceptroacuten es un algoritmo de aprendizaje de los denominados por correccion de errores Los algoritmos de este tipo ajustan los pesos en proporcioacuten a la diferencia existente entre la salida actual de la red y la salida deseada con el objetivo de minimizar el error actual de la red Definicioacuten del algoritmo de aprendizaje Sea un conjunto de p patrones xn n=1hellipp con sus salidas deseadas tn Tanto las entradas como las salidas solamente pueden tomar los valores -1 o 1 Se tiene una arquitectura de perceptroacuten simple con pesos iniciales aleatorios y se requiere que clasifique correctamente todos los patrones del conjunto de aprendizaje (solo si son linealmente separables) Ahora actuaremos del siguiente modo ante la presentacioacuten del patron n-eacutesimo si la respuesta que proporciona el perceptroacuten es correcta no actualizaremos los pesos si es incorrecta los modificaremos seguacuten la regla de Hebb aplicada a nuestro caso Primero se muestra la regla de Hebb y despueacutes la regla modificada para el perceptroacuten simple Regla de Hebb

∆wij = ξyixjDonde

17

o wij corresponde a los pesos de una entrada j por la salida i de la neurona

o ξ se denomina ritmo de aprendizaje que su valor suele estar entre 1 y 0 Regla modificada para el perceptroacuten simple

2ξtnixnj si yn

ine tni ∆wn

ij(t)= 0 si yn

i= tni que puede reescribirse del siguiete modo que es la forma usual de expresar la regla del perceptroacuten

∆wnij(t)= 2ξ(tni - yn

i)xnj

Es importante mencionar que el proceso de aprendizaje es iterativo se

parte de una configuracioacuten sinaacuteptica de partida (normalmente de pesos pequentildeos aleatorios) y se presentan una y otra vez los patrones para que los pesos se ajusten iterativamente seguacuten forma usual de la regla del perceptroacuten hasta que todos queden bien clasificados El hiperplano que establece el liacutemite entre dos clases se desplaza lentamente hasta conseguir separarlas por completo (si es posible) como se ve en la figura 210

t= 115

x x

x x x

x x x

x

x

o

o o

o o o o

o

o o

o

o

o

o

o

o

o

X2

t= 21

t= 0 t= 4

X1

Figura 210 Regiones de decisioacuten que establece iterativamente el perceptroacuten durante el aprendizaje (en la iteracioacuten 115 ha conseguido separar ya las dos clases)

Avances En este capiacutetulo se haraacute una descripcioacuten de los avances que se han hecho hasta el momento Se hablaraacute acerca del entrenamiento de la red neuronal del sistema el reconocimiento de caracteres tanto con la red neuronal como con los clasificadores ya expuestos y el tratamiento de imaacutegenes para eliminar el ruido tipo sal y pimienta Reconocimiento de caracteres Se han hecho avances acerca del reconocimiento de caracteres utilizando redes neuronales y clasificadores diversos A continuacioacuten se exponen dichos avances

Entrenamiento de la red neuronal Para entrenar la red neuronal se utilizoacute el algoritmo de retropropagacioacuten expuesto en el capiacutetulo 1 Se disentildeoacute un programa en Java que permite entrenar una red neuronal de 3

18

capas La cantidad de clases a discriminar es variable y para este caso se utilizoacute una matriz de 5x8 es decir se tomaron 40 rasgos de entrada

Utilizando la red neuronal para reconocer caracteres A continuacioacuten se muestra en la imagen 211 el programa disentildeado en Java que permite discriminar un nuacutemero variable de clases Para este caso se eligioacute discriminar entre los diacutegitos del 0 al 9 El programa para reconocer los 128 caracteres referentes al sintetizador de voz tendraacute una interfaz similar con la diferencia de que la rejilla para ingresar el patroacuten a reconocer seraacute de 20x20 El programa mostrado fue programado tanto para entrenar la red como para reconocer los diacutegitos Se puede elegir entre los entrenamientos hechos para probar la efectividad de la red Las estadiacutesticas del entrenamiento elegido se muestran en la parte inferior de la pantalla

Imagen 211 Reconocimiento de los diacutegitos del 0 al 9 utilizando una red neuronal de 3 capas

19

Utilizando los clasificadores para reconocer caracteres Dentro de las teacutecnicas de reconocimiento de patrones existen diferentes clasificadores que nos permiten a partir de un conjunto de entrenamiento (en eacuteste caso un conjunto de tipos de letras que deseamos reconocer) saber a queacute clase pertenece un patroacuten de prueba que se introduce

Imagen 212 Un ejemplo de un clasificador KNN con un valor de K=3 y usando la meacutetrica City-Block para clasificar el patroacuten de prueba pruebabmp entre tres clases

En la imagen 212 se muestra como se puede clasificar un caraacutecter escalado de la imagen prueba 4bmp dentro de las tres clases existentes Se observa que si se puede clasificar este tipo de patrones pero veamos un ejemplo donde no sea posible clasificar un patroacuten de prueba y por queacute

Imagen 213 Un ejemplo de un clasificador KNN con un valor de K=5 y usando la meacutetrica Euclidiana para clasificar el patroacuten de prueba prueb3bmp entre tres clases El patroacuten no fue reconocido correctamente

20

Ahora como se observa no se pudo clasificar correctamente el patroacuten de prueba ya que pertenece claramente a la clase 3 pero por el clasificador que usamos o por el nuacutemero de K-vecinos o por el tipo de meacutetrica usada sucedioacute que en su mayoriacutea eran de la clase 2 y no de la clase 3 Tal vez si se hubiera elegido un valor de K menor a 5 tendriacutea maacutes posibilidades de clasificar correctamente Finalmente usar este tipo de teacutecnicas para reconocer caracteres es muy bueno ya que permite reconocer letras que se encuentran rotadas escaladas o trasladadas por una teacutecnica matemaacutetica llamada Momentos de Hu pero al tener una situacioacuten donde la imagen de prueba se encuentra exactamente a la misma distancia de dos o mas clases se crea el problema de no saber a que clase clasificar dicho patroacuten

Tratamiento digital de las imaacutegenes a capturar A continuacioacuten se muestra en la imagen 214 un programa que se codificoacute en C++ Builder y permite tratar digitalmente imaacutegenes BMP con la finalidad de eliminar el ruido pasarlas a escala de grises y binarizarlas El programa es capaz de generar histogramas de color

Imagen 214 Programa para tratar imaacutegenes digitalmente

21

CAPIacuteTULO 3 Buscadores La informacioacuten almacenada tendriacutea poco valor si no podemos consultarla buscar los datos en una base de datos o en muchas bases de datos que tienen conexioacuten por medio de la web es lo que nos permite explotar la informacioacuten Sin embargo la buacutesqueda seraacute eficiente si la respuesta del buscador es lo maacutes especifica o cercana a los temas solicitados Por lo que el software con aplicacioacuten de buscador es importante desarrollar un proceso para su creacioacuten Objetivo General Desarrollar un sistema de buacutesqueda de informacioacuten por conceptos en la Web basado en agentes inteligentes mediante la aplicacioacuten de ontologiacuteas Estado Del Arte Existen algunos sistemas que proporcionan buacutesquedas de informacioacuten basados en algunas de las tecnologiacuteas que vamos a utilizar Es habitual encontrar este tipo de buscadores y algunos otros similares bautizados como Megabuscadores o Multibuscadores a pesar de que estos teacuterminos no sean los maacutes idoacuteneos por lo que al hablar de este tipo de sistemas podemos referirlos como Buscadores Muacuteltiples en virtud de las caracteriacutesticas de su funcionamiento A continuacioacuten se mencionan algunos de ellos

Buscador muacuteltiple Copernic 2001 Pro Copernici producto de la empresa canadiense Copernic Technologies es un agente buscador que transfiere una ecuacioacuten de buacutesqueda a un conjunto de buscadores de manera simultaacutenea recupera las referencias pertinentes y las ordena seguacuten el grado medio de relevancia obtenido de cada uno de los buscadores La empresa creadora de Copernic se constituyoacute en 1996 con el propoacutesito de desarrollar soluciones innovadoras en tecnologiacuteas de agentes de buacutesqueda para conseguir un acceso y una gestioacuten eficientes de la gran masa de informacioacuten presente en Internet El programa se desarrolloacute el antildeo siguiente en una versioacuten experimental y se puso al alcance del puacuteblico en noviembre de 1998 Desde entonces se han lanzado versiones con elementos nuevos la mayoriacutea de los cuales no obstante soacutelo estaacuten disponibles en las ediciones comerciales La edicioacuten gratuita ofrece los servicios baacutesicos de consulta y con la intencioacuten de persuadir a los posibles compradores de las ediciones comerciales da una idea bastante aproximada de las posibilidades del programa completo

Lets Browse Como en otros medios (por ejemplo la televisioacuten) la navegacioacuten en Internet puede ser realizada por grupos de gente [Lieberman et al 1997] Lets browse muestra como un agente puede asistir a un grupo de gente en su navegacioacuten sugirieacutendoles materiales nuevos que puedan ser de intereacutes comuacuten entre ellos

Este trabajo es una extensioacuten del agente Letizia [Lieberman 1995] el cual selecciona paacuteginas de Web Letizia inicia una buacutesqueda por niveles visita las ligas que encuentra a partir de la paacutegina que su usuario esteacute revisando y selecciona aquellas que sean similares a los intereses que ha aprendido de su usuario (observando su navegacioacuten) Posteriormente muestra sus recomendaciones en un canal de navegacioacuten

22

El trabajo del agente consiste en seleccionar de la misma forma que Letizia lo hace aquellas paacuteginas que mejor satisfagan los intereses de todos los participantes Las caracteriacutesticas de Letrsquos browse son la deteccioacuten automaacutetica de la presencia de usuarios navegacioacuten automaacutetica (en canal de navegacioacuten) el despliege dinaacutemico de las preferencias de los usuarios y la explicacioacuten de las recomendaciones Permite ademaacutes revisar las paacuteginas desde el punto de vista de otra persona (con sus preferencias) y asiacute estimar cual seriacutea su posible opinioacuten acerca de dicha paacutegina auacuten cuando aquella persona no la haya revisado anteriormente

Agentes de Informacioacuten Un agente de informacioacuteiin es utilizado para organizar los espacios de informacioacuten del usuario y facilitar su explotacioacuten En el WWW (World Wide Web) se estaacuten implementando diversos agentes de informacioacuten El Agente Letizia [Lieberman 1995] que existe en un navegador de Web anticipa queacute artiacuteculos pueden ser de intereacutes para el usuario basaacutendose en las conductas pasadas del usuario Las paacuteginas que cree son de intereacutes del usuario Letizia las despliega en una ventana de sugerencias por unos instantes Marco Conceptual Actualmente para poder hacer la consulta de cualquier tipo de informacioacuten en Internet la mayoriacutea de las personas recurre a los motores de buacutesquedas conocidos como Google Yahoo Altavista por mencionar algunos siendo que estos usan diferentes meacutetodos para llegar a su objetivo podemos darnos cuenta que arrojan distintos resultados uno de otro que en el mejor de los casos coinciden en un porcentaje muy poco satisfactorio con la buacutesqueda en cuestioacuten con lo que concluimos que una respuesta a esta falta de precisioacuten en cuanto a la buacutesqueda de un tema en especial es mejor la buacutesqueda de conceptos lo cual permite al usuario acercarse maacutes al tema de su intereacutes Es importante enfocar nuestra solucioacuten apoyaacutendonos en un motor de buacutesqueda y aplicando herramientas como los Agentes que nos permitan recopilar la informacioacuten maacutes precisa de cada buacutesqueda a traveacutes de un algoritmo propio obteniendo resultados maacutes cercanos a los deseados ya que estos provienen de muacuteltiples documentos ahorrando tiempo y ganando precisioacuten a la vez Muy frecuentemente encontramos que cuando se trata de buacutesquedas en Internet a traveacutes de los motores de buacutesqueda populares los usuarios hacen consultas de diversas paginas y es muy difiacutecil llevar una lista de todos los sitios visitados o de aquellos que nos mostraron la informacioacuten maacutes adecuada nuestro sistema es capaz de registrar dentro de una base de datos un iacutendice de todos los sitios que se obtuvieron en la buacutesqueda de un tema o concepto con lo que el usuario no tendraacute que realizar una ldquonuevardquo buacutesqueda de un tema antes consultado sino que tendraacute a la mano todos los sitios que arrojoacute la primera buacutesqueda Marco teoacuterico

Descripcioacuten de RDF

El Resource Description Frameworiiik (RDF) es un fundamento para el procesamiento de metadatos proporciona interoperabilidad entre aplicaciones que intercambian informacioacuten legible por maacutequina en la Web RDF utiliza XML para intercambiar descripciones de recursos Web pero los recursos descritos pueden ser de cualquier tipo

23

incluyendo recursos XML y no-XML RDF resalta las facilidades para hacer posible el procesamiento automaacutetico de los recursos Web RDF puede utilizarse en diferentes aacutereas de aplicacioacuten por ejemplo en la recuperacioacuten de recursos para proporcionar mejores capacidades a los motores de buacutesqueda en catalogacioacuten para la descripcioacuten de contenido y relaciones de contenido accesibles en un sitio Web particular en una paacutegina o biblioteca digital a traveacutes de agentes de software inteligente para facilitar que el conocimiento se comparta e intercambie en la valoracioacuten de contenido en la descripcioacuten de colecciones de paacuteginas que representan un documento loacutegico individual para la descripcioacuten de los derechos de propiedad intelectual de las paacuteginas Web y para expresar las preferencias de privacidad de un usuario asiacute como las poliacuteticas de privacidad de un sitio Web Las descripciones utilizadas por estas aplicaciones pueden modelarse como relaciones entre recursos Web El modelo de datos de RDF tal y como se especifica en RDFMS define un modelo simple para describir las relaciones entre recursos en teacuterminos de propiedades y valores designadas Las propiedades RDF pueden entenderse como atributos de un recurso y en este sentido corresponden con los tradicionales pares atributo-valor Las propiedades RDF tambieacuten representa relaciones entre recursos De esta forma el modelo de datos RDF puede parecer un diagrama entidad-relacioacuten El modelo de datos RDF sin embargo no proporciona mecanismos para declarar estas propiedades ni proporcionan ninguacuten mecanismo para definir las relaciones entre estas propiedades y otros recursos Este es el papel [la funcioacuten] del Esquema RDF

Las comunidades de descripcioacuten de recursos necesitan la habilidad para decir ciertas cosas sobre ciertas clases de recursos Para describir recursos bibliograacuteficos por ejemplo son habituales atributos descriptivos tales como autor [author] tiacutetulo [title] y materia [subject] Para la certificacioacuten digital se necesitan muchas veces atributos tales como esquema simple de deteccioacuten de errores [checksum] y autorizacioacuten [authorization] La declaracioacuten de estas propiedades (atributos) y su semaacutentica correspondiente se definen en el contexto de RDF como un Esquema RDF Un esquema define no soacutelo las propiedades de un recurso (ej tiacutetulo autor materia tamantildeo color etc) sino que puede tambieacuten definir los tipos de recursos que se describiraacuten (libros paacuteginas Web personas empresas etc)

Los Esquemas RDF podriacutean contrastarse con las Definiciones del Tipo de Documentos (DTDs) de XML y los Esquemas XML A diferencia de una DTD o Esquema XML que dan restricciones especiacuteficas en la estructura de un documento XML un Esquema RDF proporciona informacioacuten sobre la interpretacioacuten de una sentencia dada en un modelo de datos RDF Mientras un Esquema XML puede utilizarse para validar la sintaxis de una expresioacuten RDFXML un esquema sintaacutectico soacutelo no es suficiente para los objetivos de RDF Los Esquemas RDF pueden tambieacuten especificar restricciones que deben seguirse por estos modelos de datos

Clases y Propiedades Un Esquema RDF se expresa a traveacutes de un modelo de datos descrito en la especificacioacuten del Modelo y la Sintaxis RDF [RDFMS] El lenguaje de descripcioacuten del esquema es un simple conjunto de recursos y propiedades definidos por la Especificacioacuten del Esquema RDF y la parte impliacutecita de cada modelo RDF que utiliza la mecaacutenica del esquema RDF

24

El sistema de escritura de datos [type system] El Esquema RDF definido en esta especificacioacuten es una coleccioacuten de recursos RDF que puede utilizarse para describir propiedades de otros recursos RDF (incluyendo propiedades) que definene vocabularios RDF de aplicacioacuten especiacutefica El nuacutecleo del vocabulario del esquema se define en un namespace denominado aquiacute informalmente rdfs e identificado por el URI de referencia httpwwww3org200001rdf-schema Esta especificacioacuten utiliza tambieacuten el prefijo rdf para referirse al namespace principal RDF httpwwww3org19990222-rdf-syntax-ns

Como se describe en la especificacioacuten del modelo y la sintaxis [RDFMS] los recursos pueden ser objetos especiacuteficos de una categoriacutea [instances] de una o maacutes clases esto se indica con la propiedad rdftype Las clases se organizan muchas veces de una forma jeraacuterquica por ejemplo la clase Dog [perro] podriacutea considerarse subclase de Mammal [mamiacutefero] que a su vez es una subclase de Animal dando a entender que cualquier recurso que esteacute en rdftype Dog se considera tambieacuten que estaacute en rdftype AnimalEsta especificacioacuten describe una propiedad rdfssubClassOf para indicar dichas relaciones entre clases

El sistema de escritura [type system] del Esquema RDF es similar al sistema de los lenguajes de programacioacuten orientados a objetos tales como Java Sin embargo RDF se diferencia de muchos de esos sistemas en que en lugar de definir una clase en teacuterminos de propiedades sus objetos especiacuteficos de una categoriacutea [instances] pueden tener un esquema RDF que definiraacute las propiedades en teacuterminos de clases de recurso a los que se aplican Este es el papel de las restricciones rdfsdomain y de rdfsrange

Por ejemplo podemos definir que la propiedad author tenga un dominio de Book y un alcance de Literal mientras que un sistema OO claacutesico podriacutea definir tiacutepicamente una clase Book con un atributo denominado author de tipo Literal

Clases y Recursos como Conjuntos y Elementos El siguiente esquema ilustra el concepto de clase subclase y recurso Una clase se describe por un rectaacutengulo redondeado un recurso se describe por un punto grande En la figura abajo se han dibujado flechas desde un recurso a una clase que define Una subclase se presenta en un rectaacutengulo redondeado (la subclase) completamente incluido en otro (la superclase) Si un recurso estaacute dentro de una clase entonces existe una propiedad rdftype o expliacutecita o impliacutecita de aquel recurso cuyo valor es un recurso que define la clase que contiene (Estas propiedades se muestran como arcos en la representacioacuten graacutefica directamente etiquetada en el Esquema 2) El recurso RDF representado en el esquema 1 se describe tanto en el resto de esta especificacioacuten como en la especificacioacuten del Modelo y Sintaxis RDF

Ontologiacuteas en la Representacioacuten del Conocimiento En estos uacuteltimos antildeos se incrementoacute la cantidad de informacioacuten en la Internet lo cual motivoacute el incremento de la complejidad y la diversidad de la informacioacuten Esto tambieacuten motivoacute el intereacutes de automatizar muchas actividades que tradicionalmente se realizan en forma manual La principal motivacioacuten en el uso de las ontologiacuteas es que permiten compartir y reutilizar conocimiento en un dominio De ahiacute el intereacutes de muchos

25

investigadores en el aacuterea de inteligencia artificial para tratar de aplicar las ontologiacuteas en la representacioacuten de conocimiento Las ontologiacuteas son un elemento importante en la Web Semaacutentica y es un teacutermino filosoacutefico que trata sobre la naturaleza de la existencia y los tipos de objetos que existen Tambieacuten la ontologiacutea se puede definir como una especificacioacuten expliacutecita de una conceptualizacioacuten compartida La conceptualizacioacuten se refiere a un modelo abstracto de un fenoacutemeno en el mundo en donde se tienen que identificar los conceptos relevantes de este fenoacutemeno El teacutermino expliacutecito significa queacute tipos de conceptos son usados y las restricciones de estos conceptos Y por uacuteltimo el teacutermino compartido se refiere a que las ontologiacuteas capturan conocimiento que es aceptado por todos y no es individual de un grupo Actualmente se les estaacute dando maacutes uso a las ontologiacuteas en el campo de la Inteligencia Artificial En este campo se define la ontologiacutea como una descripcioacuten formal y expliacutecita de conceptos de un dominio (classes a las que nos referiremos como conceptos) propiedades de cada concepto las cuales describen las caracteriacutesticas y atributos de los conceptos (slots llamados tambieacuten como propiedades o roles) y restricciones de las propiedades (facets conocidas como restricciones) La informacioacuten que es representada a traveacutes de los lenguajes semaacutenticos puede ser compartida entre aplicaciones como los agentes

OWL y Web Semaacutentica

La Web Semaacutentica es una Web extendida dotada de mayor significado en la que cualquier usuario en Internet podraacute encontrar respuestas a sus preguntas de forma maacutes raacutepida y sencilla gracias a una informacioacuten mejor definida Al dotar a la Web de maacutes significado y por lo tanto de maacutes semaacutentica se pueden obtener soluciones a problemas habituales en la buacutesqueda de informacioacuten gracias a la utilizacioacuten de una infraestructura comuacuten mediante la cual es posible compartir procesar y transferir informacioacuten de forma sencilla Esta Web extendida y basada en el significado se apoya en lenguajes universales que resuelven los problemas ocasionados por una Web carente de semaacutentica en la que en ocasiones el acceso a la informacioacuten se convierte en una tarea difiacutecil y frustrante

LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES La comunicacioacuten es uno de los aspectos importantes dentro de una comunidad de agentes la cual permitiraacute compartir y enviar mensajes entre agentes Los meacutetodos tradicionales permiten la comunicacioacuten entre los agentes pero eacutestos no son suficientes para lograr un comportamiento social entre los agentes para ello es necesario que los mensajes tengan un significado y contenido semaacutentico Se han desarrollado varios lenguajes los cuales son usados para el enviacuteo de mensajes a continuacioacuten hablaremos de dos de ellos KQML Knowledge Query and Manipulation Language (KQML) es uno de los lenguajes que nos provee la estructura para enviar mensajes entre agentes Dentro de sus principales caracteriacutesticas tenemos que es independiente de la sintaxis del contenido y la ontologiacutea

26

que se utilizaraacute Asiacute mismo es independiente del mecanismo de transporte (TCPIP SMTP IIOP etc) e independiente del contenido del lenguaje (KIF SQL STEP Prolog etc) KQML fue desarrollado por el consorcio DARPA Knowledge Sharing Effort (KSE) cuyo principal objetivo fue desarrollar una base tecnoloacutegica para construir en forma progresiva sistemas cada vez con maacutes funcionalidad complejidad y amplitud KQML provee un lenguaje y un protocolo para intercambiar informacioacuten entre agentes inteligentes y para lograr este intercambio se tiene que compartir una sintaxis y una semaacutentica comuacuten para que los mensajes sean entendidos por los agentes Al lenguaje KQML se le dividioacute en tres capas la capa de contenido alberga el contenido del mensaje que es especificado en cualquier formato ya sea texto o binario La capa de comunicacioacuten contiene paraacutemetros como el identificador uacutenico asociado a la comunicacioacuten identidad del remitente e identidad del destinatario La capa de mensaje define tanto los diferentes tipos de interaccioacuten que se pueden establecer entre los agentes como los protocolos que se pueden establecer entre los agentes Tambieacuten incluye otras caracteriacutesticas como el lenguaje de representacioacuten o la ontologiacutea siendo ambos opcionales

JADE (Java Agent DEvelopment Framework)

JADEiv (Java Agent DEvelopment Framework) es un middleware que proporciona tanto un entorno de desarrollo como un entorno de ejecucioacuten para la realizacioacuten y mantenimiento de sistemas multiagente El entorno de desarrollo estaacute formado por una serie de libreriacuteas en Java que permiten la implementacioacuten de agentes de manera limpia e independiente de la plataforma sobre la que se va a ejecutar El entorno de ejecucioacuten permite a los agentes vivir y comunicarse entre ellos Estaacute realizado enteramente en Java y proporciona una serie de herramientas que permiten al desarrollador controlar y depurar a los agentes en tiempo real JADE es un middleware desarrollado por TILAB para el desarrollo de aplicaciones distribuidas multiagente JADE proporciona tanto el entorno de desarrollo para la creacioacuten de aplicaciones basadas en agentes como el entorno de ejecucioacuten JADE presenta las siguientes caracteriacutesticas

P2P Arquitectura peer-to-peer cada agente puede tomar la iniciativa en una comunicacioacuten o bien responder a peticiones que le hagan otros agentes

Interoperabilidad JADE cumple con las especificaciones FIPA por lo que los agentes desarrollados en JADE pueden interactuar con otros agentes que no tienen porque estar desarrollados con JADE aunque si deben seguir las especificaciones FIPA

Portabilidad La API que proporciona JADE es independientemente de la red sobre la que va a operar asiacute como de la versioacuten de Java utilizada teniendo la misma API para J2EE J2SE y J2ME

27

Intuitiva JADE se ha desarrollado para ofrecer una API faacutecil de aprender y sencilla de manejar

Los agentes JADE tienen nombres uacutenicos y se permite a cada agente descubrir a otros agentes y comunicarse con ellos mediante comunicaciones punto a punto Los agentes proporcionan servicios cada agente puede buscar a otros dependiendo de los servicios que proporcionen otros agentes La comunicacioacuten entre agentes se lleva a cabo a traveacutes de mensajes asiacutencronos es decir el agente que enviacutea el mensaje y el destinatario del mensaje no tienen porqueacute estar disponibles al mismo tiempo Es maacutes el destinatario no tiene porqueacute existir en ese instante Los mensajes se pueden enviar a un agente en concreto o se pueden enviar a agentes que se desconocen pero se sabe que poseen unas ciertas caracteriacutesticas JADE proporciona mecanismos de seguridad ya que habraacute agentes a los que no se les esteacute permitido comunicarse con otros agentes de manera que una aplicacioacuten puede verificar la identidad del receptor y del agente que enviacutea el mensaje y no dejar realizar actuaciones no permitidas para un determinado agente La estructura de los mensajes se basa en el lenguaje ACL (Agent Communication Lenguaje) que ha sido definido por la FIPA JADE facilita mecanismos para el desarrollo de los objetivos que deben alcanzar los agentes Los comportamientos (behaviours) y la comunicacioacuten entre los agentes (junto con el servicio de paacuteginas amarillas) proporcionan los recursos necesarios para programar un sistema multiagente JADE tambieacuten permite a los agentes cambiar de Host (en J2SE) Un agente puede interrumpir en un momento dado su ejecucioacuten migrar a otro host (sin necesidad de que el coacutedigo esteacute previamente en el host destino) y continuar la ejecucioacuten en el mismo punto en el que la interrumpioacute Esto permite un balanceo de carga ya que permite a los agentes migrar hosts menos cargados El entorno de ejecucioacuten proporciona un marco donde poder ejecutar los agentes y herramientas graacuteficas para su monitorizacioacuten y depuracioacuten Los agentes JADE necesitan del entorno de ejecucioacuten donde poder vivir Cada instancia del entorno de ejecucioacuten se denomina contenedor (container) Al conjunto de los contenedores se le denomina plataforma (platform) y proporciona una capa que oculta a los agentes (y al desarrollador) el entorno donde se ha decidido ejecutar la aplicacioacuten En cada plataforma debe existir un contenedor especial denominado contenedor principal (main container) La principal diferencia del contenedor principal respecto al resto de contenedores es que alberga dos agentes especiales

AMS (Agent Management System) Este agente proporciona el servicio de nombres asegurando que cada agente en la plataforma disponga de un nombre uacutenico Tambieacuten representa la autoridad es posible crear y matar agentes en contenedores remotos requeriendoselo al agente AMS

DF (Directory Facilitator) Proporciona el servicio de Paacuteginas Amarillas Gracias al agente DF un agente puede encontrar otros agentes que provean los servicios necesarios para lograr sus objetivos

28

La caracteriacutestica mas importante del entorno de ejecucioacuten es la interfaz graacutefica que proporciona desde la que podemos controlar y depurar los agentes existentes Todas las herramientas han sido desarrolladas como agentes y siguen sus mismas reglas Disentildeo Arquitectura

Agente usuario

Agente de ontologiacutea

Agente de filtrado

Agente de recuperacioacuten

BD

OntologiacuteaSistema

Motor de buacutesqueda

El sistema esta disentildeado para que un usuario realice alguna buacutesqueda relacionada con alguno de los tres temas propuestos en nuestra base de conocimiento que son Ingenieriacutea de Software Base de Datos y Deportes El sistema esta basado en una arquitectura multiagente la cual se conforma por Agente Usuario Actuacutea de intermediario entre el usuario y el sistema Sus servicios son solicitados por el usuario para resolver las consultas El usuario le suministra una consulta y el sistema le devuelve una lista de documentos que pueden satisfacer sus necesidades Este agente tiene la capacidad de acceder a la base de datos con el objetivo de almacenar yo recuperar resultados Base de Datos Guardaraacute las ultimas buacutesquedas realizadas para su posterior consulta a peticioacuten del usuario Agente de Filtrado Gestiona la recuperacioacuten de documentos y realiza el filtrado de los mismos proporcionados por el Agente de Recuperacioacuten Recibe la peticioacuten del Agente Usuario y a su vez esta es enviada al Agente Ontologiacutea para que este regrese una evaluacioacuten de la consulta y de esta forma conocer si es necesaria una redefinicioacuten de la consulta En caso de ser necesaria se espera recibir el nuevo vector de consulta hasta que se cumpla una de dos opciones el usuario deje de redefinir la consulta o la consulta sea concreta Cuando la consulta sea concreta es enviada de nueva cuenta al Agente Ontologiacutea el cual regresaraacute el Nuevo Vector Expandido Este seraacute enviado al Agente de Recuperacioacuten Cuando el Agente de Recuperacioacuten regrese los urlacutes de los resultados (con sus respectivos vectores de teacuterminos) se realiza una evaluacioacuten de los vectores de cada documento con respecto al vector de buacutesqueda expandida con el objetivo de asignarles una calificacioacuten Gracias a esta calificacioacuten podemos obtener aquellos documentos que mejor cumplan con las expectativas del usuario (Estos documentos son regresados al Agente Usuario) Agente Ontologiacutea Recibe el vector de consulta proporcionado por el Agente de Filtrado La informacioacuten contenida en el vector de consulta es comparada con la existente en nuestra ontologiacutea Una vez verificada la existencia de la informacioacuten del

29

vector consulta dentro de la ontologiacutea este se encarga de devolver la distancia y el umbral al Agente de Filtrado Se espera que este devuelva una peticioacuten para expandir ese mismo vector Puede darse el caso de obtener dos tipos de buacutesquedas una general y otra mucho maacutes definida En cualquiera de los caso obtenemos un nuevo vector de buacutesqueda (con una informacioacuten mejor definida este es el Vector de Buacutesqueda Expandido) que es enviado de regreso al Agente de Filtrado el cual genera una copia y le es enviada al Agente de Recuperacioacuten Ontologiacutea Representa nuestra base de conocimientos Esta compuesta por tres aacutereas de conocimiento las cuales son Ingenieriacutea se Software Bases de Datos y Deportes Para poder representar esta ontologiacutea en un lenguaje entendible para agentes inteligentes se programaraacute bajo los fundamentos de las estructuras RDF contenidas en las especificaciones de XML y siguiendo los estaacutendares de la W3C Agente Recuperacioacuten Realiza la buacutesqueda gracias a la informacioacuten que le es entregada por el Agente de Filtrado (se trata Vector de Buacutesqueda Expandido generado por el Agente de Ontologiacutea) El agente estructura esta informacioacuten y se introduce en un motor de buacutesqueda(diacutegase por ejemplo Google) de tal manera que obtengamos una lista de posibles documentos A cada documento se le asigna un vector de teacuterminos con sus pesos derivados de un anaacutelisis TFIDF para despueacutes regresar las urlacutes con su respectivo vector de teacuterminos al Agente Filtrado RESULTADOS Este proyecto tiene la finalidad de desarrollar el software para un antivirus y un traductor Pero durante los estudios de anaacutelisis de estos dos productos se encontroacute que el software para la buacutesqueda de la informacioacuten tambieacuten puede ser implementada por medio de teacutecnicas de Inteligencia Artificial Para construir el software de aplicacioacuten para estas necesidades se usa la metodologiacutea de cascada Donde los pasos a seguir son el Anaacutelisis Disentildeo Pruebas Implementacioacuten y Mantenimiento Hasta este momento estamos en la etapa de pruebas de algunos moacutedulos de los tres productos IMPACTO El detector de intrusos en una red es de mucha importancia debido a que en la actualidad se han diseminado muchos virus que pueden ser transmitidos a traveacutes de intrusos Hasta la fecha el meacutetodo de proteccioacuten se hace de forma manual La finalidad de este software es automatizar la proteccioacuten El traductor de texto a voz tiene como primera aplicacioacuten el auxilio en la lectura de documentos para las personas invidentes o deacutebiles visuales una segunda aplicacioacuten es la comunicacioacuten con la computadora por medio del lenguaje natura El buscador de informacioacuten es un auxilio en la buacutesqueda de datos en una base de datos de conocimiento Ya que tambieacuten estaacuten proliferando las bibliotecas virtuales es una ayuda en la localizacioacuten de informacioacuten cientiacutefica y un preaacutembulo para un software de apoyo docente BIBLIOGRAFIacuteA [1] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

30

[2] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps[3] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[4] w3c en espantildeol OWL y Web Semaacutentica httpwwww3cesDivulgacionGuiasbrevesWebSemantica

[5] Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

[6] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[7] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[8] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[9] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[10] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[11] Laboratorios Googlehttplabsgooglecompapershtml

[12] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[13] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

[14] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

[15] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps [16] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[18] Trabajos de Agente en JADE http Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

31

[19] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[20] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[21] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[22] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[23] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[24] Laboratorios Googlehttplabsgooglecompapershtml

[25] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[26] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

  • En este reporte teacutecnico se presenta la descripcioacuten general anaacutelisis y estado actual de de los trabajos terminales TT2006135 TT20060097 y TT20060068 que tienen por titulo ldquoSistema prototipo de deteccioacuten de intrusos en la red utilizando agentes inteligentesrdquo rdquoProcesamiento digital de imaacutegenes para la conversioacuten de texto a vozrdquo y ldquoSistema de buacutesqueda de informacioacuten por conceptos en la webrdquo respectivamente Los prototipos que se obtendraacuten seraacuten un software robusto que se desarrollaraacuten con teacutecnicas de inteligencia artificial como Agentes inteligentes y Redes neuronales
  • Estructura de un sistema neuronal artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
    • Estado Del Arte
      • Estructura de un sistema neuronal artificial
        • Sistemas paralelos distribuidos y adaptativos
          • Modelo estaacutendar de neurona artificial
            • Sigmoidal logariacutetmica
              • Empleo del perceptroacuten para reconocer funciones loacutegicas
              • Algoritmo de aprendizaje del perceptroacuten
                • Objetivo General
                • Estado Del Arte
                • A continuacioacuten se mencionan algunos de ellos
                  • Buscador muacuteltiple Copernic 2001 Pro
                  • Lets Browse
                  • Agentes de Informacioacuten
                    • Marco Conceptual
                      • Clases y Propiedades
                      • El sistema de escritura de datos [type system]
                      • Clases y Recursos como Conjuntos y Elementos
                        • Ontologiacuteas en la Representacioacuten del Conocimiento
                          • LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES
                          • JADE (Java Agent DEvelopment Framework)
                            • Disentildeo
                            • Arquitectura
Page 3: INSTITUTO POLITÉCNICO NACIONALsappi.ipn.mx/cgpi/archivos_anexo/20061387_3286.pdf · La comunicación del hombre con la computadora por medio del lenguaje natural, es la finalidad

3

IacuteNDICE RESUMENhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 2 IacuteNDICEhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 3 INTRODUCCIOacuteNhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 5 CAPIacuteTULO 1 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 5 Deteccioacuten de virushelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 5 CAPIacuteTULO 2 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip6 Traductorhelliphellip helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 6 Estado del arte helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip6 Metodologiacutea de desarrollohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip8 Redes Neuronales Artificialeshelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip8 Estructura de un sistema neuronal artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9 Sistemas paralelos distribuidos y adaptativoshelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 11 Modelo estaacutendar de neurona artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip12 Arquitectura de redes neuronaleshelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 13 El perceptroacuten simple helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 14 Empleo del perceptroacuten para reconocer funciones loacutegicashelliphelliphelliphelliphelliphelliphelliphelliphellip 15 Algoritmo de aprendizaje del perceptroacutenhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip16 Definicioacuten del algoritmo de aprendizajehelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 17 Avanceshelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip17 Reconocimientos de caractereshelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip17 Entrenamiento de la red neuronalhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip17 Utilizando la red neuronalhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip18 Utilizando los clasificadores para reconocer caractereshelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip19 Tratamiento digital de las imaacutegenes a capturarhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip20 CAPIacuteTULO 3 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 21 Buscadoreshelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip helliphelliphelliphelliphelliphelliphelliphellip21 Objetivo generalhelliphelliphellip helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip21 Estado del artehelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip21 Buscador muacuteltiple Copernic 2001 Prohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 21 Letrsquos Browse helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 21 Agentes de informacioacuten helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 22 Marco conceptual helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 22 Marco teoacuterico helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 22 Descripcioacuten de RDFhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip22 Clases y propiedadeshelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 23 El sistema de escritura de datoshelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip24 Clases y recursos como conjuntos y elementoshelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip24 Ontologiacuteas en la representacioacuten del conocimientohelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 24 OWL y web semaacutenticahelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 25 Lenguajes de comunicacioacuten entre agenteshelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip25 KQML helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 25 JADE(Java Agent Development Framework)helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 26 Disentildeo helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 28 Arquitectura helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 28 RESULTADOShelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 29 IMPACTOhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 29 REFERENCIAS BIBLIOGRAacuteFICAS helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip29

4

INTRODUCCIOacuteN El requerimiento del software se haraacute cada vez maacutes complejo con el desarrollo de las computadoras ya que estas podraacuten realizar muchas actividades al mismo tiempo Esto indica que el software podraacute ser tan robusto que seraacute necesario encontrar teacutecnicas de desarrollo de software que simplifiquen su creacioacuten Llegaraacute el tiempo en que la implementacioacuten del software sea una aplicacioacuten automatizada de las teacutecnicas que se estaacuten desarrollando las teacutecnicas van a depender del tipo de computadora que se esteacute utilizando pues las computadoras con el tiempo seraacuten maacutes raacutepidas y con mayor capacidad de almacenamiento Capaces de realizar millones de operaciones en un nanosegundo esto propiciaraacute el desarrollo de teacutecnicas maacutes eficientes que se basaraacuten en la repeticioacuten de procesos casi infinitos El desarrollo de software se hace necesario por la diversidad de necesidades inherentes al desarrollo de las computadoras sociales econoacutemicas cientiacuteficas y tecnoloacutegicas Ademaacutes de la explicacioacuten por medio de modelos computacionales de los fenoacutemenos fiacutesicos que se presentan en la naturaleza Una de las teacutecnicas para producir software es la aplicacioacuten de la inteligencia artificial esta teacutecnica proporciona una mayor facilidad para producir software mucho maacutes eficiente y robusto que el software desarrollado por programacioacuten convencional Para la produccioacuten de software especiacutefico se realizoacute un estudio detallado de los requerimientos de eacuteste para determinar su estructura y aplicar la teacutecnica de inteligencia artificial adecuada Y asiacute se supo que las teacutecnicas de agentes inteligentes y de redes neuronales eran las adecuadas CAPIacuteTULO 1 Deteccioacuten de virus En la actualidad la informacioacuten que se almacena en medios electroacutenicos puede ser dantildeada o robada Por lo que es necesario protegerla de los virus y de los intrusos Para poder crear un detector de virus se requiere tener acceso al los sistemas operativos de Microsoft Como el IPN no tiene licencias de estos sistemas no se puede desarrollarlos actualmente y tambieacuten debido a la existencia de una gran cantidad de virus Por lo que se optoacute por la deteccioacuten de intrusos en una red La deteccioacuten de intrusos se define como el problema de identificar elementos que hacen uso de los recursos de un sistema de coacutemputo sin autorizacioacuten y de aquellos que tienen legiacutetimo acceso al sistema pero abusan de sus privilegios [2] De la definicioacuten anterior se dividen los sistemas de deteccioacuten de intrusos o IDS en base a host llamado HID los cuales velan la seguridad e integridad de los datos tomando su informacioacuten para detectar intrusiones desde lugares como llamadas al sistema o archivos logs del sistema operativo estaacuten tambieacuten los basados en red o NID cuyas fuentes de deteccioacuten es supervisar los datos en el trafico de red y por uacuteltimo estaacuten los hiacutebridos que combinan las dos anteriores fuentes de deteccioacuten Es posible encontrar en el mercado numerosos IDSrsquos comerciales La mayoriacutea revelan pocos o ninguacuten detalle sobre su arquitectura y funcionamiento interno Sin embargo algunos IDSrsquos no comerciales de distribucioacuten gratuita o concebidos en ambientes acadeacutemicos revelan pormenores de su funcionamiento y arquitectura estos uacuteltimos fueron algunos de los estudiados para este trabajo A continuacioacuten se describen las caracteriacutesticas de los IDSrsquos maacutes contrastados con nuestro trabajo Snort es un sistema de deteccioacuten de intrusos basado en red eacutesta disponible bajo la licencia puacuteblica general

5

GNU puede usarse de forma gratuita y la totalidad de su coacutedigo es de libre distribucioacuten Utiliza para la deteccioacuten un conjunto basto de reglas y firmas de ataques La arquitectura de Snort comprende tres subsistemas primarios [5] El decodificador de paquetes el motor de deteccioacuten y el subsistema de alertas Utiliza la libreriacutea de captura de paquetes promiscua libcap JAM (Java Agents for Meta-Learning) no es propiamente un IDS pero dentro de una de sus orientaciones se usan agentes inteligentes distribuidos para aprender panoramas de fraudes e intrusiones en sistemas de coacutemputo [6] El conocimiento adquirido por los agentes distribuidos puede ser intercambiado y usado para entrenar a otros agentes para poder identificar ataques basados en el conocimiento compartido CAPIacuteTULO 2 Traductor La comunicacioacuten del hombre con la computadora por medio del lenguaje natural es la finalidad Para poder realizar esta tarea se debe hacer por partes Primero se construiraacute un traductor de texto a voz debido a que tiene aplicaciones como la de lecturas de texto para los invidentes La creacioacuten de sistemas computacionales que permitan agilizar las tareas que el hombre tiene que llevar a cabo se ha vuelto un tema de intereacutes general Gracias a los avances de la tecnologiacutea computacional se han desarrollado herramientas que facilitan la realizacioacuten de muacuteltiples tareas Este trabajo terminal estaacute enfocado al desarrollo de un sistema computacional que permita realizar la conversioacuten de texto impreso a voz

Las aplicaciones derivadas de dicho trabajo son muacuteltiples y se mencionan algunas de ellas en este capiacutetulo De igual manera se presenta un anaacutelisis del estado del arte referente a sistemas sintetizadores de voz se describiraacute la metodologiacutea de trabajo que se utilizaraacute durante el desarrollo del sistema se hablaraacute acerca del desarrollo de software orientado a objetos y por uacuteltimo se trataraacuten como antecedentes teoacutericos temas referentes a las aacutereas del conocimiento que se utilizaraacuten para implementar ciertas funcionalidades del sistema Estado Del Arte El desarrollo de la tecnologiacutea ayuda a que las personas con limitaciones fiacutesicas minimicen sus deficiencias tal es el caso de las personas invidentes En Meacutexico se estima una cifra de 3000000 (284) de personas que padecen de ceguera o alguna debilidad visual1 (p e dislexia) Hoy en diacutea existen aplicaciones enfocadas a ayudar a este tipo de personas tales como libros parlantes computadoras para invidentes pantallas para invidentes bastones y lentes para invidentes entre otros En Estados Unidos ya existe una tecnologiacutea llamada ldquolibros parlantesrdquo que consiste copiar a la computadora el texto contenido en un libro para su posterior sintetizacioacuten en voz Quicktionary de la empresa alemana WizCom Technologies es un pequentildeo escaacutener con forma de boliacutegrafo que lee y traduce a voz textos escritos2 (ver imagen 21)

1 httponcetv-ipnnetnoticiasindexphpmodulo=despliegueampdt_fecha=2004-12-01ampnumnota=15 (Estimacioacuten personas invidentes) httpwwwconapogobmx00cifras00indicadores00xls (Poblacioacuten de la Repuacuteblica Mexicana) 2 httpwwwwizcomtechcomWizcomproductsproduct_infoaspfid=176

6

En nuestro paiacutes el desarrollo de la tecnologiacutea no ha alcanzado niveles muy elevados lo cual implica tener que traerla del exterior y en consecuencia el costo de la misma se eleva Esto se convierte en un problema para los consumidores finales ya que al no tener los medios suficientes para adquirir alguna tecnologiacutea tampoco obtienen los beneficios que la misma podriacutea otorgarles La tecnologiacutea que seriacutea desarrollada por este proyecto facilitariacutea la vida de muchas personas (con debilidades visuales o no) y lo que es mejor a un costo accesible Auacuten no se ha calculado el precio que dicha tecnologiacutea implicariacutea pero estaacute claro que seriacutea menor que el de una tecnologiacutea importada

Imagen 21 ReadingPen ndash Quicktionary creado por WizCom Technologies A continuacioacuten en la tabla 1 se muestra una comparacioacuten entre las funcionalidades que se planea tenga nuestro sistema (CIMATEV) y las funcionalidades que actualmente tiene Quicktionary

Funcionalidad Quicktionary (Actualmente)

CIMATEV (Se espera)

Calidad de la voz en general Buena Buena3

Inteligibilidad de la voz Si Si

Naturalidad de la voz Si y No en algunos casos Si y No en algunos casos

Tipo de texto escaneable

Captura texto personalizado incluyendo texto en negrita

cursiva invertido y subrayado tomando como

base fuentes estaacutendar y

Captura texto

personalizado incluyendo texto en negrita cursiva y

subrayado tomando como base

Portaacutetil Si No (Software para PC) Si (Sistema miacutenimo)

3 Para la siacutentesis de voz se utilizaraacute la teacutecnica de siacutentesis por seleccioacuten de unidades (Foneacutetica acuacutestica)

7

Tamantildeo del texto escaneable 6-22 puntos

6-22 puntos (Sistema miacutenimo)

En el caso del software para PC se planea que el tamantildeo

del texto no sea un factor que limite su conversioacuten a

vozPronunciacioacuten de nombres propios Si Si

Pronunciacioacuten de siglas Si Si

Se mantiene el estilo del texto escaneado

No Devuelve ASCII regular4

No Inicialmente devolveraacute

ASCII regular (se pretende utilizar el

estaacutendar Unicode)

Identifica la presencia de imaacutegenes No

No (En general) Si (Soacutelo para libros que

sigan el estaacutendar del software)

Ergonomiacutea y peso Si 85 g (3 oz) Se planea que el sistema miacutenimo sea ergonoacutemico y

ademaacutes tenga un peso razonable5

Tabla 1 Comparacioacuten entre las funcionalidades de Quicktionary y las de CIMATEV METODOLOGIacuteA DE DESARROLLO Se reconoce que el software al igual que todos los sistemas complejos evoluciona con el tiempo Los requerimientos que el sistema tiene que cubrir a menudo cambian conforme a que el desarrollo proceda haciendo que el camino que lleva al producto final no sea real las estrictas fechas de entrega hacen que sea imposible finalizar un producto completo por lo que se debe introducir una versioacuten limitada para cumplir con los tiempos de entrega Bajo estas circunstancias los desarrolladores necesitan de un modelo de proceso que ha sido disentildeado para acomodarse a un producto que evolucione con el tiempo Redes Neuronales Artificiales La historia de las redes neuronales comenzariacutea con el cientiacutefico aragoneacutes Santiago Ramoacuten y Cajal descubridor de la estructura neuronal del sistema nervioso A finales del siglo XIX la teoriacutea reticularista que sosteniacutea que el sistema nervioso estaba formado por una red continua de fibras nerviosas era extendida Sin embargo tras antildeos de trabajo aplicando y perfeccionando la teacutecnica de tincioacuten de Golgi en 1888 Ramoacuten y Cajal demostroacute que el sistema nervioso en realidad estaba compuesto por una red de ceacutelulas individuales las neuronas ampliamente conectadas entre siacute Pero no soacutelo observoacute al 4 ASCII de 7 bits Se pueden representar hasta 128 (27) caracteres diferentes 5 El acceso que se tenga a la tecnologiacutea que permita cubrir estos requerimientos no funcionales (ergonomiacutea y peso) seraacute decisivo para la realizacioacuten de los mismos

8

microscopio los pequentildeos espacios vaciacuteos que separaban unas neuronas de otras sino que tambieacuten establecioacute que la informacioacuten fluye en la neurona desde las dendritas hacia el axoacuten atravesando el soma Este descubrimiento baacutesico para el desarrollo de las neuro-ciencias en el siglo XX causoacute en la eacutepoca una verdadera conmocioacuten en la forma de entender el sistema nervioso concedieacutendose el premio Nobel de medicina a Ramoacuten y Cajal en 1906 (compartido con Camilo Golgi)

Axoacuten

Dendritas

Soma

Figura 22 Estructura de una neurona bioloacutegica tiacutepica

Sinapsis

Obviamente gracias al advenimiento de la microscopiacutea electroacutenica y a la introduccioacuten de otras importantes teacutecnicas se ha llegado a profundizar mucho maacutes en el estudio de la neurona Se estima que el sistema nervioso contiene alrededor de cien mil millones de neuronas Vistas al microscopio este tipo de ceacutelulas pueden presentarse en muacuteltiples formas aunque muchas de ellas presentan un aspecto similar muy peculiar (ver figura 21) con un cuerpo celular o soma (de entre 10 y 80 micras de longitud) del que surge un denso aacuterbol de ramificaciones (aacuterbol dendriacutetico) compuesto por las dendritas y del cual parte una fibra tubular denominada axoacuten (cuya longitud variacutea desde las 100 micras hasta el metro en el caso de las neuronas motoras1) que tambieacuten se ramifica en su extremo final para conectarse con otras neuronas En las interneuronas el axoacuten enviacutea la informacioacuten a otras neuronas mientras que las neuronas motoras lo hacen directamente al muacutesculo Existe un tercer tipo de neuronas las receptoras o sensoras que en vez de recibir informacioacuten de otras neuronas la reciben directamente del exterior (tal sucede por ejemplo en los conos y bastones de la retina) Se calcula que una neurona del coacutertex cerebral recibe informacioacuten por teacutermino medio de unas 10000 neuronas (convergencia) y enviacutea impulsos a varios cientos de ellas (divergencia)

Estructura de un sistema neuronal artificial Los ANS (Artificial Neural Systems) imitan la estructura hardware del sistema nervioso con la intencioacuten de construir sistemas de procesamiento de la informacioacuten

1 Lo que constituye el nervio

9

paralelos distribuidos y adaptativos que puedan presentar un cierto comportamiento ldquointeligenterdquo

Sistemas paralelos distribuidos y adaptativos Los tres conceptos clave de los sistemas nerviosos que se pretende emular en los artificiales son paralelismo de caacutelculo memoria distribuida y adaptabilidad al entorno De esta manera podemos hablar de las redes neuronales como sistemas paralelos distribuidos y adaptativos El procesamiento paralelo resulta esencial como se deduce de un sencillo ejemplo Una computadora convencional tipo PC que trabaja secuencialmente instruccioacuten por instruccioacuten empleariacutea varios minutos en realizar sobre una imagen compuesta por digamos 256x256 pixeles una sencilla tarea de tratamiento en bajo nivel (acentuar contrastes extraer contornos ) mucho maacutes simple que la que lleva a cabo el sistema visual para reconocer una imagen Un sistema basado en 16 DSP2 operando en paralelo empleariacutea del orden de 20 ms en la misma tarea puesto que cada procesador podriacutea operar en paralelo sobre diferentes sectores de la imagen Por otra parte el cerebro tarda este mismo tiempo en preprocesar una imagen compuesta por millones de pixeles (los que representan los conos y bastones de la retina) extraer sus rasgos caracteriacutesticos analizarla e interpretarla Ninguacuten sistema creado por el hombre es capaz de realizar algo semejante La clave reside en que los millones de neuronas que intervienen en el procesamiento de la imagen trabajan en paralelo sobre la totalidad de la imagen Otro concepto importante que aparece en el cerebro es el de memoria distribuida Mientras que en un computador la informacioacuten ocupa posiciones de memoria bien definidas en los sistemas neuronales se encuentra distribuida por las sinapsis de la red de modo que si una sinapsis resulta dantildeada no perdemos maacutes que una parte muy pequentildea de la informacioacuten Ademaacutes los sistemas neuronales bioloacutegicos son redundantes de modo que muchas neuronas y sinapsis pueden realizar un papel similar en definitiva el sistema resulta tolerante a fallos El uacuteltimo concepto fundamental es el de adaptabilidad Los ANS se adaptan faacutecilmente al entorno modificando sus sinapsis (y mediante otros mecanismos tambieacuten) y aprenden de la experiencia pudiendo generalizar conceptos a partir de casos particulares En el campo de las redes neuronales se llamaraacute a esta propiedad generalizacioacuten a partir de ejemplos Formalmente y desde el punto de vista del grupo PDP (Parallel Distributed Processing Reseach Group de la Universidad de California en San Diego) un sistema neuronal o conexionista estaacute compuesto por los siguientes elementos

bull Un conjunto de procesadores elementales o neuronas artificiales bull Un patroacuten de conectividad o arquitectura bull Una dinaacutemica de activaciones bull Una regla o dinaacutemica de aprendizaje bull El entorno donde opera

2 Digital Signal Processor

10

Modelo estaacutendar de neurona artificial Se denomina procesador elemental o neurona a un dispositivo simple de caacutelculo que a partir de un vector de entrada procedente del exterior o de otras neuronas proporciona una uacutenica respuesta o salida En este apartado se trataraacute el modelo denominado neurona estaacutendar (ver figura 31) que constituye un caso particular de un modelo maacutes complejo llamado modelo PDP El modelo estaacutendar considera que la regla de propagacioacuten es la suma ponderada y que la funcioacuten de salida es la identidad De esta forma la neurona estaacutendar etiquetada como i consiste en

bull Un conjunto de entradas Xj(t) y pesos sinaacutepticos Wij que representan la intensidad de interaccioacuten entre cada neurona presinaacuteptica j y cada neurona postsinaacuteptica i (ver figura 41)

bull Una regla de propagacioacuten σ(Wij Xj(t)) que proporciona el valor del potencial postsinaacuteptico hi(t)= σ(Wij Xj(t))=sumWijXj de la neurona i en funcioacuten de sus pesos y entradas

bull Una funcioacuten de activacioacuten Yi(t)=fi(hi(t)) que representa simultaacuteneamente la salida de la neurona i y su estado de activacioacuten (en el caso del modelo PDP las funciones de activacioacuten y de salida son tratadas por separado)

Con frecuencia se antildeade al conjunto de pesos de la neurona un paraacutemetro adicional θi que se denominaraacute umbral1 que se resta del potencial postsinaacuteptico por lo que el argumento de la funcioacuten de activacioacuten queda

sumj WijXj - θi

lo que representa antildeadir un grado de libertad adicional a la neurona En el caso de nodos de respuesta todo-nada este paraacutemetro representaraacute el umbral de disparo de la neurona es decir el nivel miacutenimo que debe alcanzar el potencial postsinaacuteptico (o potencial de membrana) para que la neurona se dispare o active En conclusioacuten el modelo de neurona denominado estaacutendar queda

Yi(t)=fi (sumj WijXj - θi)

Ahora bien si se hace que los iacutendices i y j comiencen en 0 se puede definir Wi0= θi y X0=-1 (constante) con lo que el potencial postsinaacuteptico (potencial local o de membrana) se obtiene realizando la suma desde j=0

Yi(t)=fi (sumj=012n WijXj)

1 En algunos modelos es threshold es decir ldquoumbralrdquo y en otros bias que no tiene una traduccioacuten clara en este caso

11

sum f ( )

Axoacuten Yi

Wi1

Wi2

Wij

Win

θi-1

X1

X2

Habiendo definido de esta manera la neurona estaacutendar basta con establecer la forma de la funcioacuten de activacioacuten para determinarla por completo A continuacioacuten se muestra una tabla con las funciones de activacioacuten maacutes utilizadas

Funcioacuten Relacioacuten entradasalida Graacutefica

Escaloacuten y=0 nlt0 y=1 nge0

Escaloacuten simeacutetrica y= -1 nlt0 y=+1 nge0

Lineal Identidad

y=n

Lineal saturada y=0 nlt0

y=n 0lenle1 y=1 ngt1

Lineal saturada simeacutetrica

y=-1 nlt-1 y=n -1lenle1

y=1 ngt1

Sigmoidal logariacutetmica

ney minus+=

11

Xj

Xn

Entradas

Dendritas

Sinapsis

Cuerpo celular

Salida

Umbral

Figura 23 Modelo de neurona estaacutendar

12

Tangente

hiperboacutelica

nn

nn

eeeey minus

minus

+minus

=

Lineal positiva y=0 nlt0 y=n 0len

Competitiva a=1 neurona con maacutex n

a=0 todas las demaacutes

C

Tabla 2 Funciones de activacioacuten habituales (se han omitido algunas constantes)

Arquitecturas de redes neuronales Se denomina arquitectura a la topologiacutea estructura o patroacuten de conexionado de una red neuronal En un ANS los nodos se conectan por medio de sinapsis esta estructura de conexiones sinaacutepticas determina el comportamiento de la red Las conexiones sinaacutepticas son direccionales es decir la informacioacuten soacutelo puede propagarse en un uacutenico sentido (desde la neurona presinaacuteptica a la postsinaacuteptica ver figura 24)

j

i

YjXj

Wij

YiNeurona presinaacuteptica

Neurona postsinaacuteptica

Figura 24 Interaccioacuten entre una neurona presinaacuteptica y otra postsinaacuteptica

En general las neuronas se suelen agrupar en unidades estructurales que denominaremos capas Las neuronas de una capa pueden agruparse a su vez formando grupos neuronales (clusters) Dentro de un grupo o de una capa si no existe este tipo de agrupacioacuten las neuronas suelen ser del mismo tipo Finalmente el conjunto de una o maacutes capas constituye la red neuronal

Se distinguen tres tipos de capas de entrada de salida y ocultas Una capa de entrada o sensorial estaacute compuesta por neuronas que reciben datos o sentildeales procedentes del entorno (por ejemplo proporcionado por sensores) Una capa de salida es aquella cuyas neuronas proporcionan la respuesta de la red neuronal (sus neuronas pueden estar conectadas a efectores) Una capa oculta es aquella que no tiene una conexioacuten directa

13

con el entorno es decir que no se conecta directamente ni a organos sensores o efectores Esta capa proporciona a la red neuronal grados de libertad adicionales gracias a los cuales puede encontrar representaciones internas correspondientes a determinados rasgos del entorno proporcionando una mayor riqueza computacional (ver figura 25)

Informacioacuten Capa de salida

(efectora) Capa oculta Capa de entrada (procesamiento) (sensorial)

Figura 25 Arquitectura unidireccional de tres capas de entrada oculta y de salida

Las conexiones entre las neuronas pueden ser excitadoras o inhibidoras un peso sinaacuteptico negativo define una conexioacuten inhibidora mientras uno positivo determina una conexioacuten excitadora Habitualmente no se suele definir una conexioacuten como de un tipo u otro sino que por medio del aprendizaje se obtiene un valor para el peso que incluye signo y magnitud

El perceptroacuten simple Este modelo neuronal fue introducido por Rosenblatt a finales de los antildeos cincuenta Dicha estructura se inspira en las primeras etapas de procesamiento de los sistemas sensoriales de los animales (por ejemplo la visioacuten) en los cuales la infomacioacuten va atravesando sucesivas capas de neuronas que realizan un procesamiento progresivamente de maacutes alto nivel Un perceptroacuten simple es un modelo unidireccional compuesto por dos capas de neuronas una sensorial o de entrada y otra de salida A continuacioacuten se muestra en la figura 26 su representacioacuten y la funcion de transferencia que utiliza

Figura 26 a) Las neuronas de entrada no realizan ninguacuten coacutemputo uacutenicamente enviacutean la informacioacuten a las neuronas de salida b) la funcioacuten de activacioacuten de las neuronas de la capa de salida es de tipo escaloacuten

Capa de entrada

Capa de salida

f(x) x

Funcioacuten escaloacuten

a) b)

14

El perceptroacuten puede utilizarse tanto como clasificador como para la representacioacuten de funciones booleanas pues su neurona es esencialmente de tipo MacCulloch-Pitts es decir de salida binaria La importancia histoacuterica del perceptroacuten radica en su caraacutecter de dispositivo entrenable ya que el algoritmo de aprendizaje que desarrollo Rosenblatt permite determinar automaacuteticamente los pesos sinaacutepticos que clasifican un conjunto de patrones a partir de un conjunto de ejemplos etiquetados (a esto se le llama red neuronal supervisada y el perceptron simple es de este tipo) Ahora se mostraraacute que un perceptroacuten permite realizar tareas de clasificacioacuten Cada neurona del perceptroacuten representa una determinada clase de modo que dado un vetor de entrada una cierta neurona responde con 0 si no pertenece a la clase que representa y con un 1 si siacute pertenece Es faacutecil ver que una neurona tipo perceptroacuten solamente permite discriminar entre dos clases linealmente separables (es decir cuyas regiones de decisioacuten pueden ser separadas mediante una uacutenica condicioacuten lineal o hiperplano que es una liacutenea recta si trabajamos en dos dimensiones) Sea una neurona tipo perceptroacuten de dos entradas x1 y x2 con salida y cuya operacioacuten se define por lo tanto como

y = H(w1x1+w2x2 - ө) o bien 1 si w1x1+w2x2 geӨ y = 0 si w1x1+w2x2 ltӨ

Si consideramos x1 y x2 situadas sobre los ejes de abscisas y ordenadas en el plano la condicioacuten

w1x1+ w2x2 -Ө = 0 rarr x2 = - (w1 w2) x1 + Ө w2 representa una recta (hiperplano si trabajamos con n entradas) que divide el plano en dos regiones que son aquellas para las que la neurona proporciona una salida 0 o 1 respectivamente como se muestra en la figura 27

x x

x x x

x x x

x

x

oo

oo

o o

o

X1

X2

Regioacuten w1x1+w2x2 geӨ Regioacuten w1x1+w2x2 ltӨ

Figura 27 Una neurona tipo perceptroacuten representa un discriminador lineal que separa dos regiones en el espacio que representan dos diferentes clases de patrones En esta graacutefica x = lsquo1rsquo y o = lsquo0rsquo

15

Empleo del perceptroacuten para reconocer funciones loacutegicas -Funcion linealmente separable Consideremos la funcioacuten loacutegica NAND2 (AND negada de dos entradas) que representamos sobre un plano en la graacutefica 3 que se presenta en seguida

x (10) o (11)

x (00)

x (01) X1

X2

Figura 28 Funcioacuten loacutegica NAND de dos entradas En la graacutefica x = lsquo1rsquo y o = lsquo0rsquo

Se puede ver que en este caso existen paraacutemetros w1 w2 y Ө que permiten una recta que separa perfectamente las regiones correspondientes a los valores loacutegicos 0 y 1 Y por lo tanto se dice que la funcioacuten loacutegica NAND es linealmente separable -Funcioacuten no separable linealmente

Ahora consideremos la funcioacuten loacutegica or-exclusivo (XOR) y representandola en un plano en la figura 29

x (10) o (11)

o (00)

x (01) X1

X2

Figura 29 Funcioacuten loacutegica XOR de dos entradas que no es linealmente separable

16

Al ser XOR no linealmente separable se dice que ldquola clase de funciones no separables linealmente no pueden ser representadas por un perceptroacuten simplerdquo El perceptroacuten presenta serias limitaciones pues solamente puede representar funciones linealmentes separables Y aunque pueda aprender automaacuteticamente a representar complejas funciones booleanas o resolver con eacutexito muchos problemas de clasificacioacuten con un cierto algoritmo en ocasiones fallara draacutesticamente Minsky (que es uno de los padres de la inteligencia artificial) y Papera estudiaron en profundidad el perceptroacuten y en 1969 publicaron un exhaustivo trabajo donde exhibian las limitantes del modelo en lo que resultoacute decisivo para que muchos de los recursos que se destinaban a su investigacioacuten se desviara a otras aacutereas Una solucioacuten para las limitantes del perceptroacuten simple puede consistir en incluir maacutes capas en la arquitectura con lo que tendremos un perceptroacuten multicapa A finales de los antildeos sesenta ya se apuntaba como solucioacuten a las limitaciones del perceptroacuten introducir capas ocultas pero el problema estaba en que no se teniacutea un algoritmo de aprendizaje para el perceptroacuten multicapa (con capas ocultas) Dicho algoritmo fue propuesto por Paul Verbos alrededor de 1974 pero fue preciso hasta mediados de los ochenta cuando el grupo PDP redescubriera un algoritmo similar al cual denominaron Back-Propagation o BP y dieran a conocer a la comunidad internacional su gran potencial para la resolucioacuten de problemas praacutecticos

Algoritmo de aprendizaje del perceptroacuten El del perceptroacuten es un algoritmo de aprendizaje de los denominados por correccion de errores Los algoritmos de este tipo ajustan los pesos en proporcioacuten a la diferencia existente entre la salida actual de la red y la salida deseada con el objetivo de minimizar el error actual de la red Definicioacuten del algoritmo de aprendizaje Sea un conjunto de p patrones xn n=1hellipp con sus salidas deseadas tn Tanto las entradas como las salidas solamente pueden tomar los valores -1 o 1 Se tiene una arquitectura de perceptroacuten simple con pesos iniciales aleatorios y se requiere que clasifique correctamente todos los patrones del conjunto de aprendizaje (solo si son linealmente separables) Ahora actuaremos del siguiente modo ante la presentacioacuten del patron n-eacutesimo si la respuesta que proporciona el perceptroacuten es correcta no actualizaremos los pesos si es incorrecta los modificaremos seguacuten la regla de Hebb aplicada a nuestro caso Primero se muestra la regla de Hebb y despueacutes la regla modificada para el perceptroacuten simple Regla de Hebb

∆wij = ξyixjDonde

17

o wij corresponde a los pesos de una entrada j por la salida i de la neurona

o ξ se denomina ritmo de aprendizaje que su valor suele estar entre 1 y 0 Regla modificada para el perceptroacuten simple

2ξtnixnj si yn

ine tni ∆wn

ij(t)= 0 si yn

i= tni que puede reescribirse del siguiete modo que es la forma usual de expresar la regla del perceptroacuten

∆wnij(t)= 2ξ(tni - yn

i)xnj

Es importante mencionar que el proceso de aprendizaje es iterativo se

parte de una configuracioacuten sinaacuteptica de partida (normalmente de pesos pequentildeos aleatorios) y se presentan una y otra vez los patrones para que los pesos se ajusten iterativamente seguacuten forma usual de la regla del perceptroacuten hasta que todos queden bien clasificados El hiperplano que establece el liacutemite entre dos clases se desplaza lentamente hasta conseguir separarlas por completo (si es posible) como se ve en la figura 210

t= 115

x x

x x x

x x x

x

x

o

o o

o o o o

o

o o

o

o

o

o

o

o

o

X2

t= 21

t= 0 t= 4

X1

Figura 210 Regiones de decisioacuten que establece iterativamente el perceptroacuten durante el aprendizaje (en la iteracioacuten 115 ha conseguido separar ya las dos clases)

Avances En este capiacutetulo se haraacute una descripcioacuten de los avances que se han hecho hasta el momento Se hablaraacute acerca del entrenamiento de la red neuronal del sistema el reconocimiento de caracteres tanto con la red neuronal como con los clasificadores ya expuestos y el tratamiento de imaacutegenes para eliminar el ruido tipo sal y pimienta Reconocimiento de caracteres Se han hecho avances acerca del reconocimiento de caracteres utilizando redes neuronales y clasificadores diversos A continuacioacuten se exponen dichos avances

Entrenamiento de la red neuronal Para entrenar la red neuronal se utilizoacute el algoritmo de retropropagacioacuten expuesto en el capiacutetulo 1 Se disentildeoacute un programa en Java que permite entrenar una red neuronal de 3

18

capas La cantidad de clases a discriminar es variable y para este caso se utilizoacute una matriz de 5x8 es decir se tomaron 40 rasgos de entrada

Utilizando la red neuronal para reconocer caracteres A continuacioacuten se muestra en la imagen 211 el programa disentildeado en Java que permite discriminar un nuacutemero variable de clases Para este caso se eligioacute discriminar entre los diacutegitos del 0 al 9 El programa para reconocer los 128 caracteres referentes al sintetizador de voz tendraacute una interfaz similar con la diferencia de que la rejilla para ingresar el patroacuten a reconocer seraacute de 20x20 El programa mostrado fue programado tanto para entrenar la red como para reconocer los diacutegitos Se puede elegir entre los entrenamientos hechos para probar la efectividad de la red Las estadiacutesticas del entrenamiento elegido se muestran en la parte inferior de la pantalla

Imagen 211 Reconocimiento de los diacutegitos del 0 al 9 utilizando una red neuronal de 3 capas

19

Utilizando los clasificadores para reconocer caracteres Dentro de las teacutecnicas de reconocimiento de patrones existen diferentes clasificadores que nos permiten a partir de un conjunto de entrenamiento (en eacuteste caso un conjunto de tipos de letras que deseamos reconocer) saber a queacute clase pertenece un patroacuten de prueba que se introduce

Imagen 212 Un ejemplo de un clasificador KNN con un valor de K=3 y usando la meacutetrica City-Block para clasificar el patroacuten de prueba pruebabmp entre tres clases

En la imagen 212 se muestra como se puede clasificar un caraacutecter escalado de la imagen prueba 4bmp dentro de las tres clases existentes Se observa que si se puede clasificar este tipo de patrones pero veamos un ejemplo donde no sea posible clasificar un patroacuten de prueba y por queacute

Imagen 213 Un ejemplo de un clasificador KNN con un valor de K=5 y usando la meacutetrica Euclidiana para clasificar el patroacuten de prueba prueb3bmp entre tres clases El patroacuten no fue reconocido correctamente

20

Ahora como se observa no se pudo clasificar correctamente el patroacuten de prueba ya que pertenece claramente a la clase 3 pero por el clasificador que usamos o por el nuacutemero de K-vecinos o por el tipo de meacutetrica usada sucedioacute que en su mayoriacutea eran de la clase 2 y no de la clase 3 Tal vez si se hubiera elegido un valor de K menor a 5 tendriacutea maacutes posibilidades de clasificar correctamente Finalmente usar este tipo de teacutecnicas para reconocer caracteres es muy bueno ya que permite reconocer letras que se encuentran rotadas escaladas o trasladadas por una teacutecnica matemaacutetica llamada Momentos de Hu pero al tener una situacioacuten donde la imagen de prueba se encuentra exactamente a la misma distancia de dos o mas clases se crea el problema de no saber a que clase clasificar dicho patroacuten

Tratamiento digital de las imaacutegenes a capturar A continuacioacuten se muestra en la imagen 214 un programa que se codificoacute en C++ Builder y permite tratar digitalmente imaacutegenes BMP con la finalidad de eliminar el ruido pasarlas a escala de grises y binarizarlas El programa es capaz de generar histogramas de color

Imagen 214 Programa para tratar imaacutegenes digitalmente

21

CAPIacuteTULO 3 Buscadores La informacioacuten almacenada tendriacutea poco valor si no podemos consultarla buscar los datos en una base de datos o en muchas bases de datos que tienen conexioacuten por medio de la web es lo que nos permite explotar la informacioacuten Sin embargo la buacutesqueda seraacute eficiente si la respuesta del buscador es lo maacutes especifica o cercana a los temas solicitados Por lo que el software con aplicacioacuten de buscador es importante desarrollar un proceso para su creacioacuten Objetivo General Desarrollar un sistema de buacutesqueda de informacioacuten por conceptos en la Web basado en agentes inteligentes mediante la aplicacioacuten de ontologiacuteas Estado Del Arte Existen algunos sistemas que proporcionan buacutesquedas de informacioacuten basados en algunas de las tecnologiacuteas que vamos a utilizar Es habitual encontrar este tipo de buscadores y algunos otros similares bautizados como Megabuscadores o Multibuscadores a pesar de que estos teacuterminos no sean los maacutes idoacuteneos por lo que al hablar de este tipo de sistemas podemos referirlos como Buscadores Muacuteltiples en virtud de las caracteriacutesticas de su funcionamiento A continuacioacuten se mencionan algunos de ellos

Buscador muacuteltiple Copernic 2001 Pro Copernici producto de la empresa canadiense Copernic Technologies es un agente buscador que transfiere una ecuacioacuten de buacutesqueda a un conjunto de buscadores de manera simultaacutenea recupera las referencias pertinentes y las ordena seguacuten el grado medio de relevancia obtenido de cada uno de los buscadores La empresa creadora de Copernic se constituyoacute en 1996 con el propoacutesito de desarrollar soluciones innovadoras en tecnologiacuteas de agentes de buacutesqueda para conseguir un acceso y una gestioacuten eficientes de la gran masa de informacioacuten presente en Internet El programa se desarrolloacute el antildeo siguiente en una versioacuten experimental y se puso al alcance del puacuteblico en noviembre de 1998 Desde entonces se han lanzado versiones con elementos nuevos la mayoriacutea de los cuales no obstante soacutelo estaacuten disponibles en las ediciones comerciales La edicioacuten gratuita ofrece los servicios baacutesicos de consulta y con la intencioacuten de persuadir a los posibles compradores de las ediciones comerciales da una idea bastante aproximada de las posibilidades del programa completo

Lets Browse Como en otros medios (por ejemplo la televisioacuten) la navegacioacuten en Internet puede ser realizada por grupos de gente [Lieberman et al 1997] Lets browse muestra como un agente puede asistir a un grupo de gente en su navegacioacuten sugirieacutendoles materiales nuevos que puedan ser de intereacutes comuacuten entre ellos

Este trabajo es una extensioacuten del agente Letizia [Lieberman 1995] el cual selecciona paacuteginas de Web Letizia inicia una buacutesqueda por niveles visita las ligas que encuentra a partir de la paacutegina que su usuario esteacute revisando y selecciona aquellas que sean similares a los intereses que ha aprendido de su usuario (observando su navegacioacuten) Posteriormente muestra sus recomendaciones en un canal de navegacioacuten

22

El trabajo del agente consiste en seleccionar de la misma forma que Letizia lo hace aquellas paacuteginas que mejor satisfagan los intereses de todos los participantes Las caracteriacutesticas de Letrsquos browse son la deteccioacuten automaacutetica de la presencia de usuarios navegacioacuten automaacutetica (en canal de navegacioacuten) el despliege dinaacutemico de las preferencias de los usuarios y la explicacioacuten de las recomendaciones Permite ademaacutes revisar las paacuteginas desde el punto de vista de otra persona (con sus preferencias) y asiacute estimar cual seriacutea su posible opinioacuten acerca de dicha paacutegina auacuten cuando aquella persona no la haya revisado anteriormente

Agentes de Informacioacuten Un agente de informacioacuteiin es utilizado para organizar los espacios de informacioacuten del usuario y facilitar su explotacioacuten En el WWW (World Wide Web) se estaacuten implementando diversos agentes de informacioacuten El Agente Letizia [Lieberman 1995] que existe en un navegador de Web anticipa queacute artiacuteculos pueden ser de intereacutes para el usuario basaacutendose en las conductas pasadas del usuario Las paacuteginas que cree son de intereacutes del usuario Letizia las despliega en una ventana de sugerencias por unos instantes Marco Conceptual Actualmente para poder hacer la consulta de cualquier tipo de informacioacuten en Internet la mayoriacutea de las personas recurre a los motores de buacutesquedas conocidos como Google Yahoo Altavista por mencionar algunos siendo que estos usan diferentes meacutetodos para llegar a su objetivo podemos darnos cuenta que arrojan distintos resultados uno de otro que en el mejor de los casos coinciden en un porcentaje muy poco satisfactorio con la buacutesqueda en cuestioacuten con lo que concluimos que una respuesta a esta falta de precisioacuten en cuanto a la buacutesqueda de un tema en especial es mejor la buacutesqueda de conceptos lo cual permite al usuario acercarse maacutes al tema de su intereacutes Es importante enfocar nuestra solucioacuten apoyaacutendonos en un motor de buacutesqueda y aplicando herramientas como los Agentes que nos permitan recopilar la informacioacuten maacutes precisa de cada buacutesqueda a traveacutes de un algoritmo propio obteniendo resultados maacutes cercanos a los deseados ya que estos provienen de muacuteltiples documentos ahorrando tiempo y ganando precisioacuten a la vez Muy frecuentemente encontramos que cuando se trata de buacutesquedas en Internet a traveacutes de los motores de buacutesqueda populares los usuarios hacen consultas de diversas paginas y es muy difiacutecil llevar una lista de todos los sitios visitados o de aquellos que nos mostraron la informacioacuten maacutes adecuada nuestro sistema es capaz de registrar dentro de una base de datos un iacutendice de todos los sitios que se obtuvieron en la buacutesqueda de un tema o concepto con lo que el usuario no tendraacute que realizar una ldquonuevardquo buacutesqueda de un tema antes consultado sino que tendraacute a la mano todos los sitios que arrojoacute la primera buacutesqueda Marco teoacuterico

Descripcioacuten de RDF

El Resource Description Frameworiiik (RDF) es un fundamento para el procesamiento de metadatos proporciona interoperabilidad entre aplicaciones que intercambian informacioacuten legible por maacutequina en la Web RDF utiliza XML para intercambiar descripciones de recursos Web pero los recursos descritos pueden ser de cualquier tipo

23

incluyendo recursos XML y no-XML RDF resalta las facilidades para hacer posible el procesamiento automaacutetico de los recursos Web RDF puede utilizarse en diferentes aacutereas de aplicacioacuten por ejemplo en la recuperacioacuten de recursos para proporcionar mejores capacidades a los motores de buacutesqueda en catalogacioacuten para la descripcioacuten de contenido y relaciones de contenido accesibles en un sitio Web particular en una paacutegina o biblioteca digital a traveacutes de agentes de software inteligente para facilitar que el conocimiento se comparta e intercambie en la valoracioacuten de contenido en la descripcioacuten de colecciones de paacuteginas que representan un documento loacutegico individual para la descripcioacuten de los derechos de propiedad intelectual de las paacuteginas Web y para expresar las preferencias de privacidad de un usuario asiacute como las poliacuteticas de privacidad de un sitio Web Las descripciones utilizadas por estas aplicaciones pueden modelarse como relaciones entre recursos Web El modelo de datos de RDF tal y como se especifica en RDFMS define un modelo simple para describir las relaciones entre recursos en teacuterminos de propiedades y valores designadas Las propiedades RDF pueden entenderse como atributos de un recurso y en este sentido corresponden con los tradicionales pares atributo-valor Las propiedades RDF tambieacuten representa relaciones entre recursos De esta forma el modelo de datos RDF puede parecer un diagrama entidad-relacioacuten El modelo de datos RDF sin embargo no proporciona mecanismos para declarar estas propiedades ni proporcionan ninguacuten mecanismo para definir las relaciones entre estas propiedades y otros recursos Este es el papel [la funcioacuten] del Esquema RDF

Las comunidades de descripcioacuten de recursos necesitan la habilidad para decir ciertas cosas sobre ciertas clases de recursos Para describir recursos bibliograacuteficos por ejemplo son habituales atributos descriptivos tales como autor [author] tiacutetulo [title] y materia [subject] Para la certificacioacuten digital se necesitan muchas veces atributos tales como esquema simple de deteccioacuten de errores [checksum] y autorizacioacuten [authorization] La declaracioacuten de estas propiedades (atributos) y su semaacutentica correspondiente se definen en el contexto de RDF como un Esquema RDF Un esquema define no soacutelo las propiedades de un recurso (ej tiacutetulo autor materia tamantildeo color etc) sino que puede tambieacuten definir los tipos de recursos que se describiraacuten (libros paacuteginas Web personas empresas etc)

Los Esquemas RDF podriacutean contrastarse con las Definiciones del Tipo de Documentos (DTDs) de XML y los Esquemas XML A diferencia de una DTD o Esquema XML que dan restricciones especiacuteficas en la estructura de un documento XML un Esquema RDF proporciona informacioacuten sobre la interpretacioacuten de una sentencia dada en un modelo de datos RDF Mientras un Esquema XML puede utilizarse para validar la sintaxis de una expresioacuten RDFXML un esquema sintaacutectico soacutelo no es suficiente para los objetivos de RDF Los Esquemas RDF pueden tambieacuten especificar restricciones que deben seguirse por estos modelos de datos

Clases y Propiedades Un Esquema RDF se expresa a traveacutes de un modelo de datos descrito en la especificacioacuten del Modelo y la Sintaxis RDF [RDFMS] El lenguaje de descripcioacuten del esquema es un simple conjunto de recursos y propiedades definidos por la Especificacioacuten del Esquema RDF y la parte impliacutecita de cada modelo RDF que utiliza la mecaacutenica del esquema RDF

24

El sistema de escritura de datos [type system] El Esquema RDF definido en esta especificacioacuten es una coleccioacuten de recursos RDF que puede utilizarse para describir propiedades de otros recursos RDF (incluyendo propiedades) que definene vocabularios RDF de aplicacioacuten especiacutefica El nuacutecleo del vocabulario del esquema se define en un namespace denominado aquiacute informalmente rdfs e identificado por el URI de referencia httpwwww3org200001rdf-schema Esta especificacioacuten utiliza tambieacuten el prefijo rdf para referirse al namespace principal RDF httpwwww3org19990222-rdf-syntax-ns

Como se describe en la especificacioacuten del modelo y la sintaxis [RDFMS] los recursos pueden ser objetos especiacuteficos de una categoriacutea [instances] de una o maacutes clases esto se indica con la propiedad rdftype Las clases se organizan muchas veces de una forma jeraacuterquica por ejemplo la clase Dog [perro] podriacutea considerarse subclase de Mammal [mamiacutefero] que a su vez es una subclase de Animal dando a entender que cualquier recurso que esteacute en rdftype Dog se considera tambieacuten que estaacute en rdftype AnimalEsta especificacioacuten describe una propiedad rdfssubClassOf para indicar dichas relaciones entre clases

El sistema de escritura [type system] del Esquema RDF es similar al sistema de los lenguajes de programacioacuten orientados a objetos tales como Java Sin embargo RDF se diferencia de muchos de esos sistemas en que en lugar de definir una clase en teacuterminos de propiedades sus objetos especiacuteficos de una categoriacutea [instances] pueden tener un esquema RDF que definiraacute las propiedades en teacuterminos de clases de recurso a los que se aplican Este es el papel de las restricciones rdfsdomain y de rdfsrange

Por ejemplo podemos definir que la propiedad author tenga un dominio de Book y un alcance de Literal mientras que un sistema OO claacutesico podriacutea definir tiacutepicamente una clase Book con un atributo denominado author de tipo Literal

Clases y Recursos como Conjuntos y Elementos El siguiente esquema ilustra el concepto de clase subclase y recurso Una clase se describe por un rectaacutengulo redondeado un recurso se describe por un punto grande En la figura abajo se han dibujado flechas desde un recurso a una clase que define Una subclase se presenta en un rectaacutengulo redondeado (la subclase) completamente incluido en otro (la superclase) Si un recurso estaacute dentro de una clase entonces existe una propiedad rdftype o expliacutecita o impliacutecita de aquel recurso cuyo valor es un recurso que define la clase que contiene (Estas propiedades se muestran como arcos en la representacioacuten graacutefica directamente etiquetada en el Esquema 2) El recurso RDF representado en el esquema 1 se describe tanto en el resto de esta especificacioacuten como en la especificacioacuten del Modelo y Sintaxis RDF

Ontologiacuteas en la Representacioacuten del Conocimiento En estos uacuteltimos antildeos se incrementoacute la cantidad de informacioacuten en la Internet lo cual motivoacute el incremento de la complejidad y la diversidad de la informacioacuten Esto tambieacuten motivoacute el intereacutes de automatizar muchas actividades que tradicionalmente se realizan en forma manual La principal motivacioacuten en el uso de las ontologiacuteas es que permiten compartir y reutilizar conocimiento en un dominio De ahiacute el intereacutes de muchos

25

investigadores en el aacuterea de inteligencia artificial para tratar de aplicar las ontologiacuteas en la representacioacuten de conocimiento Las ontologiacuteas son un elemento importante en la Web Semaacutentica y es un teacutermino filosoacutefico que trata sobre la naturaleza de la existencia y los tipos de objetos que existen Tambieacuten la ontologiacutea se puede definir como una especificacioacuten expliacutecita de una conceptualizacioacuten compartida La conceptualizacioacuten se refiere a un modelo abstracto de un fenoacutemeno en el mundo en donde se tienen que identificar los conceptos relevantes de este fenoacutemeno El teacutermino expliacutecito significa queacute tipos de conceptos son usados y las restricciones de estos conceptos Y por uacuteltimo el teacutermino compartido se refiere a que las ontologiacuteas capturan conocimiento que es aceptado por todos y no es individual de un grupo Actualmente se les estaacute dando maacutes uso a las ontologiacuteas en el campo de la Inteligencia Artificial En este campo se define la ontologiacutea como una descripcioacuten formal y expliacutecita de conceptos de un dominio (classes a las que nos referiremos como conceptos) propiedades de cada concepto las cuales describen las caracteriacutesticas y atributos de los conceptos (slots llamados tambieacuten como propiedades o roles) y restricciones de las propiedades (facets conocidas como restricciones) La informacioacuten que es representada a traveacutes de los lenguajes semaacutenticos puede ser compartida entre aplicaciones como los agentes

OWL y Web Semaacutentica

La Web Semaacutentica es una Web extendida dotada de mayor significado en la que cualquier usuario en Internet podraacute encontrar respuestas a sus preguntas de forma maacutes raacutepida y sencilla gracias a una informacioacuten mejor definida Al dotar a la Web de maacutes significado y por lo tanto de maacutes semaacutentica se pueden obtener soluciones a problemas habituales en la buacutesqueda de informacioacuten gracias a la utilizacioacuten de una infraestructura comuacuten mediante la cual es posible compartir procesar y transferir informacioacuten de forma sencilla Esta Web extendida y basada en el significado se apoya en lenguajes universales que resuelven los problemas ocasionados por una Web carente de semaacutentica en la que en ocasiones el acceso a la informacioacuten se convierte en una tarea difiacutecil y frustrante

LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES La comunicacioacuten es uno de los aspectos importantes dentro de una comunidad de agentes la cual permitiraacute compartir y enviar mensajes entre agentes Los meacutetodos tradicionales permiten la comunicacioacuten entre los agentes pero eacutestos no son suficientes para lograr un comportamiento social entre los agentes para ello es necesario que los mensajes tengan un significado y contenido semaacutentico Se han desarrollado varios lenguajes los cuales son usados para el enviacuteo de mensajes a continuacioacuten hablaremos de dos de ellos KQML Knowledge Query and Manipulation Language (KQML) es uno de los lenguajes que nos provee la estructura para enviar mensajes entre agentes Dentro de sus principales caracteriacutesticas tenemos que es independiente de la sintaxis del contenido y la ontologiacutea

26

que se utilizaraacute Asiacute mismo es independiente del mecanismo de transporte (TCPIP SMTP IIOP etc) e independiente del contenido del lenguaje (KIF SQL STEP Prolog etc) KQML fue desarrollado por el consorcio DARPA Knowledge Sharing Effort (KSE) cuyo principal objetivo fue desarrollar una base tecnoloacutegica para construir en forma progresiva sistemas cada vez con maacutes funcionalidad complejidad y amplitud KQML provee un lenguaje y un protocolo para intercambiar informacioacuten entre agentes inteligentes y para lograr este intercambio se tiene que compartir una sintaxis y una semaacutentica comuacuten para que los mensajes sean entendidos por los agentes Al lenguaje KQML se le dividioacute en tres capas la capa de contenido alberga el contenido del mensaje que es especificado en cualquier formato ya sea texto o binario La capa de comunicacioacuten contiene paraacutemetros como el identificador uacutenico asociado a la comunicacioacuten identidad del remitente e identidad del destinatario La capa de mensaje define tanto los diferentes tipos de interaccioacuten que se pueden establecer entre los agentes como los protocolos que se pueden establecer entre los agentes Tambieacuten incluye otras caracteriacutesticas como el lenguaje de representacioacuten o la ontologiacutea siendo ambos opcionales

JADE (Java Agent DEvelopment Framework)

JADEiv (Java Agent DEvelopment Framework) es un middleware que proporciona tanto un entorno de desarrollo como un entorno de ejecucioacuten para la realizacioacuten y mantenimiento de sistemas multiagente El entorno de desarrollo estaacute formado por una serie de libreriacuteas en Java que permiten la implementacioacuten de agentes de manera limpia e independiente de la plataforma sobre la que se va a ejecutar El entorno de ejecucioacuten permite a los agentes vivir y comunicarse entre ellos Estaacute realizado enteramente en Java y proporciona una serie de herramientas que permiten al desarrollador controlar y depurar a los agentes en tiempo real JADE es un middleware desarrollado por TILAB para el desarrollo de aplicaciones distribuidas multiagente JADE proporciona tanto el entorno de desarrollo para la creacioacuten de aplicaciones basadas en agentes como el entorno de ejecucioacuten JADE presenta las siguientes caracteriacutesticas

P2P Arquitectura peer-to-peer cada agente puede tomar la iniciativa en una comunicacioacuten o bien responder a peticiones que le hagan otros agentes

Interoperabilidad JADE cumple con las especificaciones FIPA por lo que los agentes desarrollados en JADE pueden interactuar con otros agentes que no tienen porque estar desarrollados con JADE aunque si deben seguir las especificaciones FIPA

Portabilidad La API que proporciona JADE es independientemente de la red sobre la que va a operar asiacute como de la versioacuten de Java utilizada teniendo la misma API para J2EE J2SE y J2ME

27

Intuitiva JADE se ha desarrollado para ofrecer una API faacutecil de aprender y sencilla de manejar

Los agentes JADE tienen nombres uacutenicos y se permite a cada agente descubrir a otros agentes y comunicarse con ellos mediante comunicaciones punto a punto Los agentes proporcionan servicios cada agente puede buscar a otros dependiendo de los servicios que proporcionen otros agentes La comunicacioacuten entre agentes se lleva a cabo a traveacutes de mensajes asiacutencronos es decir el agente que enviacutea el mensaje y el destinatario del mensaje no tienen porqueacute estar disponibles al mismo tiempo Es maacutes el destinatario no tiene porqueacute existir en ese instante Los mensajes se pueden enviar a un agente en concreto o se pueden enviar a agentes que se desconocen pero se sabe que poseen unas ciertas caracteriacutesticas JADE proporciona mecanismos de seguridad ya que habraacute agentes a los que no se les esteacute permitido comunicarse con otros agentes de manera que una aplicacioacuten puede verificar la identidad del receptor y del agente que enviacutea el mensaje y no dejar realizar actuaciones no permitidas para un determinado agente La estructura de los mensajes se basa en el lenguaje ACL (Agent Communication Lenguaje) que ha sido definido por la FIPA JADE facilita mecanismos para el desarrollo de los objetivos que deben alcanzar los agentes Los comportamientos (behaviours) y la comunicacioacuten entre los agentes (junto con el servicio de paacuteginas amarillas) proporcionan los recursos necesarios para programar un sistema multiagente JADE tambieacuten permite a los agentes cambiar de Host (en J2SE) Un agente puede interrumpir en un momento dado su ejecucioacuten migrar a otro host (sin necesidad de que el coacutedigo esteacute previamente en el host destino) y continuar la ejecucioacuten en el mismo punto en el que la interrumpioacute Esto permite un balanceo de carga ya que permite a los agentes migrar hosts menos cargados El entorno de ejecucioacuten proporciona un marco donde poder ejecutar los agentes y herramientas graacuteficas para su monitorizacioacuten y depuracioacuten Los agentes JADE necesitan del entorno de ejecucioacuten donde poder vivir Cada instancia del entorno de ejecucioacuten se denomina contenedor (container) Al conjunto de los contenedores se le denomina plataforma (platform) y proporciona una capa que oculta a los agentes (y al desarrollador) el entorno donde se ha decidido ejecutar la aplicacioacuten En cada plataforma debe existir un contenedor especial denominado contenedor principal (main container) La principal diferencia del contenedor principal respecto al resto de contenedores es que alberga dos agentes especiales

AMS (Agent Management System) Este agente proporciona el servicio de nombres asegurando que cada agente en la plataforma disponga de un nombre uacutenico Tambieacuten representa la autoridad es posible crear y matar agentes en contenedores remotos requeriendoselo al agente AMS

DF (Directory Facilitator) Proporciona el servicio de Paacuteginas Amarillas Gracias al agente DF un agente puede encontrar otros agentes que provean los servicios necesarios para lograr sus objetivos

28

La caracteriacutestica mas importante del entorno de ejecucioacuten es la interfaz graacutefica que proporciona desde la que podemos controlar y depurar los agentes existentes Todas las herramientas han sido desarrolladas como agentes y siguen sus mismas reglas Disentildeo Arquitectura

Agente usuario

Agente de ontologiacutea

Agente de filtrado

Agente de recuperacioacuten

BD

OntologiacuteaSistema

Motor de buacutesqueda

El sistema esta disentildeado para que un usuario realice alguna buacutesqueda relacionada con alguno de los tres temas propuestos en nuestra base de conocimiento que son Ingenieriacutea de Software Base de Datos y Deportes El sistema esta basado en una arquitectura multiagente la cual se conforma por Agente Usuario Actuacutea de intermediario entre el usuario y el sistema Sus servicios son solicitados por el usuario para resolver las consultas El usuario le suministra una consulta y el sistema le devuelve una lista de documentos que pueden satisfacer sus necesidades Este agente tiene la capacidad de acceder a la base de datos con el objetivo de almacenar yo recuperar resultados Base de Datos Guardaraacute las ultimas buacutesquedas realizadas para su posterior consulta a peticioacuten del usuario Agente de Filtrado Gestiona la recuperacioacuten de documentos y realiza el filtrado de los mismos proporcionados por el Agente de Recuperacioacuten Recibe la peticioacuten del Agente Usuario y a su vez esta es enviada al Agente Ontologiacutea para que este regrese una evaluacioacuten de la consulta y de esta forma conocer si es necesaria una redefinicioacuten de la consulta En caso de ser necesaria se espera recibir el nuevo vector de consulta hasta que se cumpla una de dos opciones el usuario deje de redefinir la consulta o la consulta sea concreta Cuando la consulta sea concreta es enviada de nueva cuenta al Agente Ontologiacutea el cual regresaraacute el Nuevo Vector Expandido Este seraacute enviado al Agente de Recuperacioacuten Cuando el Agente de Recuperacioacuten regrese los urlacutes de los resultados (con sus respectivos vectores de teacuterminos) se realiza una evaluacioacuten de los vectores de cada documento con respecto al vector de buacutesqueda expandida con el objetivo de asignarles una calificacioacuten Gracias a esta calificacioacuten podemos obtener aquellos documentos que mejor cumplan con las expectativas del usuario (Estos documentos son regresados al Agente Usuario) Agente Ontologiacutea Recibe el vector de consulta proporcionado por el Agente de Filtrado La informacioacuten contenida en el vector de consulta es comparada con la existente en nuestra ontologiacutea Una vez verificada la existencia de la informacioacuten del

29

vector consulta dentro de la ontologiacutea este se encarga de devolver la distancia y el umbral al Agente de Filtrado Se espera que este devuelva una peticioacuten para expandir ese mismo vector Puede darse el caso de obtener dos tipos de buacutesquedas una general y otra mucho maacutes definida En cualquiera de los caso obtenemos un nuevo vector de buacutesqueda (con una informacioacuten mejor definida este es el Vector de Buacutesqueda Expandido) que es enviado de regreso al Agente de Filtrado el cual genera una copia y le es enviada al Agente de Recuperacioacuten Ontologiacutea Representa nuestra base de conocimientos Esta compuesta por tres aacutereas de conocimiento las cuales son Ingenieriacutea se Software Bases de Datos y Deportes Para poder representar esta ontologiacutea en un lenguaje entendible para agentes inteligentes se programaraacute bajo los fundamentos de las estructuras RDF contenidas en las especificaciones de XML y siguiendo los estaacutendares de la W3C Agente Recuperacioacuten Realiza la buacutesqueda gracias a la informacioacuten que le es entregada por el Agente de Filtrado (se trata Vector de Buacutesqueda Expandido generado por el Agente de Ontologiacutea) El agente estructura esta informacioacuten y se introduce en un motor de buacutesqueda(diacutegase por ejemplo Google) de tal manera que obtengamos una lista de posibles documentos A cada documento se le asigna un vector de teacuterminos con sus pesos derivados de un anaacutelisis TFIDF para despueacutes regresar las urlacutes con su respectivo vector de teacuterminos al Agente Filtrado RESULTADOS Este proyecto tiene la finalidad de desarrollar el software para un antivirus y un traductor Pero durante los estudios de anaacutelisis de estos dos productos se encontroacute que el software para la buacutesqueda de la informacioacuten tambieacuten puede ser implementada por medio de teacutecnicas de Inteligencia Artificial Para construir el software de aplicacioacuten para estas necesidades se usa la metodologiacutea de cascada Donde los pasos a seguir son el Anaacutelisis Disentildeo Pruebas Implementacioacuten y Mantenimiento Hasta este momento estamos en la etapa de pruebas de algunos moacutedulos de los tres productos IMPACTO El detector de intrusos en una red es de mucha importancia debido a que en la actualidad se han diseminado muchos virus que pueden ser transmitidos a traveacutes de intrusos Hasta la fecha el meacutetodo de proteccioacuten se hace de forma manual La finalidad de este software es automatizar la proteccioacuten El traductor de texto a voz tiene como primera aplicacioacuten el auxilio en la lectura de documentos para las personas invidentes o deacutebiles visuales una segunda aplicacioacuten es la comunicacioacuten con la computadora por medio del lenguaje natura El buscador de informacioacuten es un auxilio en la buacutesqueda de datos en una base de datos de conocimiento Ya que tambieacuten estaacuten proliferando las bibliotecas virtuales es una ayuda en la localizacioacuten de informacioacuten cientiacutefica y un preaacutembulo para un software de apoyo docente BIBLIOGRAFIacuteA [1] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

30

[2] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps[3] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[4] w3c en espantildeol OWL y Web Semaacutentica httpwwww3cesDivulgacionGuiasbrevesWebSemantica

[5] Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

[6] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[7] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[8] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[9] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[10] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[11] Laboratorios Googlehttplabsgooglecompapershtml

[12] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[13] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

[14] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

[15] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps [16] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[18] Trabajos de Agente en JADE http Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

31

[19] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[20] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[21] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[22] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[23] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[24] Laboratorios Googlehttplabsgooglecompapershtml

[25] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[26] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

  • En este reporte teacutecnico se presenta la descripcioacuten general anaacutelisis y estado actual de de los trabajos terminales TT2006135 TT20060097 y TT20060068 que tienen por titulo ldquoSistema prototipo de deteccioacuten de intrusos en la red utilizando agentes inteligentesrdquo rdquoProcesamiento digital de imaacutegenes para la conversioacuten de texto a vozrdquo y ldquoSistema de buacutesqueda de informacioacuten por conceptos en la webrdquo respectivamente Los prototipos que se obtendraacuten seraacuten un software robusto que se desarrollaraacuten con teacutecnicas de inteligencia artificial como Agentes inteligentes y Redes neuronales
  • Estructura de un sistema neuronal artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
    • Estado Del Arte
      • Estructura de un sistema neuronal artificial
        • Sistemas paralelos distribuidos y adaptativos
          • Modelo estaacutendar de neurona artificial
            • Sigmoidal logariacutetmica
              • Empleo del perceptroacuten para reconocer funciones loacutegicas
              • Algoritmo de aprendizaje del perceptroacuten
                • Objetivo General
                • Estado Del Arte
                • A continuacioacuten se mencionan algunos de ellos
                  • Buscador muacuteltiple Copernic 2001 Pro
                  • Lets Browse
                  • Agentes de Informacioacuten
                    • Marco Conceptual
                      • Clases y Propiedades
                      • El sistema de escritura de datos [type system]
                      • Clases y Recursos como Conjuntos y Elementos
                        • Ontologiacuteas en la Representacioacuten del Conocimiento
                          • LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES
                          • JADE (Java Agent DEvelopment Framework)
                            • Disentildeo
                            • Arquitectura
Page 4: INSTITUTO POLITÉCNICO NACIONALsappi.ipn.mx/cgpi/archivos_anexo/20061387_3286.pdf · La comunicación del hombre con la computadora por medio del lenguaje natural, es la finalidad

4

INTRODUCCIOacuteN El requerimiento del software se haraacute cada vez maacutes complejo con el desarrollo de las computadoras ya que estas podraacuten realizar muchas actividades al mismo tiempo Esto indica que el software podraacute ser tan robusto que seraacute necesario encontrar teacutecnicas de desarrollo de software que simplifiquen su creacioacuten Llegaraacute el tiempo en que la implementacioacuten del software sea una aplicacioacuten automatizada de las teacutecnicas que se estaacuten desarrollando las teacutecnicas van a depender del tipo de computadora que se esteacute utilizando pues las computadoras con el tiempo seraacuten maacutes raacutepidas y con mayor capacidad de almacenamiento Capaces de realizar millones de operaciones en un nanosegundo esto propiciaraacute el desarrollo de teacutecnicas maacutes eficientes que se basaraacuten en la repeticioacuten de procesos casi infinitos El desarrollo de software se hace necesario por la diversidad de necesidades inherentes al desarrollo de las computadoras sociales econoacutemicas cientiacuteficas y tecnoloacutegicas Ademaacutes de la explicacioacuten por medio de modelos computacionales de los fenoacutemenos fiacutesicos que se presentan en la naturaleza Una de las teacutecnicas para producir software es la aplicacioacuten de la inteligencia artificial esta teacutecnica proporciona una mayor facilidad para producir software mucho maacutes eficiente y robusto que el software desarrollado por programacioacuten convencional Para la produccioacuten de software especiacutefico se realizoacute un estudio detallado de los requerimientos de eacuteste para determinar su estructura y aplicar la teacutecnica de inteligencia artificial adecuada Y asiacute se supo que las teacutecnicas de agentes inteligentes y de redes neuronales eran las adecuadas CAPIacuteTULO 1 Deteccioacuten de virus En la actualidad la informacioacuten que se almacena en medios electroacutenicos puede ser dantildeada o robada Por lo que es necesario protegerla de los virus y de los intrusos Para poder crear un detector de virus se requiere tener acceso al los sistemas operativos de Microsoft Como el IPN no tiene licencias de estos sistemas no se puede desarrollarlos actualmente y tambieacuten debido a la existencia de una gran cantidad de virus Por lo que se optoacute por la deteccioacuten de intrusos en una red La deteccioacuten de intrusos se define como el problema de identificar elementos que hacen uso de los recursos de un sistema de coacutemputo sin autorizacioacuten y de aquellos que tienen legiacutetimo acceso al sistema pero abusan de sus privilegios [2] De la definicioacuten anterior se dividen los sistemas de deteccioacuten de intrusos o IDS en base a host llamado HID los cuales velan la seguridad e integridad de los datos tomando su informacioacuten para detectar intrusiones desde lugares como llamadas al sistema o archivos logs del sistema operativo estaacuten tambieacuten los basados en red o NID cuyas fuentes de deteccioacuten es supervisar los datos en el trafico de red y por uacuteltimo estaacuten los hiacutebridos que combinan las dos anteriores fuentes de deteccioacuten Es posible encontrar en el mercado numerosos IDSrsquos comerciales La mayoriacutea revelan pocos o ninguacuten detalle sobre su arquitectura y funcionamiento interno Sin embargo algunos IDSrsquos no comerciales de distribucioacuten gratuita o concebidos en ambientes acadeacutemicos revelan pormenores de su funcionamiento y arquitectura estos uacuteltimos fueron algunos de los estudiados para este trabajo A continuacioacuten se describen las caracteriacutesticas de los IDSrsquos maacutes contrastados con nuestro trabajo Snort es un sistema de deteccioacuten de intrusos basado en red eacutesta disponible bajo la licencia puacuteblica general

5

GNU puede usarse de forma gratuita y la totalidad de su coacutedigo es de libre distribucioacuten Utiliza para la deteccioacuten un conjunto basto de reglas y firmas de ataques La arquitectura de Snort comprende tres subsistemas primarios [5] El decodificador de paquetes el motor de deteccioacuten y el subsistema de alertas Utiliza la libreriacutea de captura de paquetes promiscua libcap JAM (Java Agents for Meta-Learning) no es propiamente un IDS pero dentro de una de sus orientaciones se usan agentes inteligentes distribuidos para aprender panoramas de fraudes e intrusiones en sistemas de coacutemputo [6] El conocimiento adquirido por los agentes distribuidos puede ser intercambiado y usado para entrenar a otros agentes para poder identificar ataques basados en el conocimiento compartido CAPIacuteTULO 2 Traductor La comunicacioacuten del hombre con la computadora por medio del lenguaje natural es la finalidad Para poder realizar esta tarea se debe hacer por partes Primero se construiraacute un traductor de texto a voz debido a que tiene aplicaciones como la de lecturas de texto para los invidentes La creacioacuten de sistemas computacionales que permitan agilizar las tareas que el hombre tiene que llevar a cabo se ha vuelto un tema de intereacutes general Gracias a los avances de la tecnologiacutea computacional se han desarrollado herramientas que facilitan la realizacioacuten de muacuteltiples tareas Este trabajo terminal estaacute enfocado al desarrollo de un sistema computacional que permita realizar la conversioacuten de texto impreso a voz

Las aplicaciones derivadas de dicho trabajo son muacuteltiples y se mencionan algunas de ellas en este capiacutetulo De igual manera se presenta un anaacutelisis del estado del arte referente a sistemas sintetizadores de voz se describiraacute la metodologiacutea de trabajo que se utilizaraacute durante el desarrollo del sistema se hablaraacute acerca del desarrollo de software orientado a objetos y por uacuteltimo se trataraacuten como antecedentes teoacutericos temas referentes a las aacutereas del conocimiento que se utilizaraacuten para implementar ciertas funcionalidades del sistema Estado Del Arte El desarrollo de la tecnologiacutea ayuda a que las personas con limitaciones fiacutesicas minimicen sus deficiencias tal es el caso de las personas invidentes En Meacutexico se estima una cifra de 3000000 (284) de personas que padecen de ceguera o alguna debilidad visual1 (p e dislexia) Hoy en diacutea existen aplicaciones enfocadas a ayudar a este tipo de personas tales como libros parlantes computadoras para invidentes pantallas para invidentes bastones y lentes para invidentes entre otros En Estados Unidos ya existe una tecnologiacutea llamada ldquolibros parlantesrdquo que consiste copiar a la computadora el texto contenido en un libro para su posterior sintetizacioacuten en voz Quicktionary de la empresa alemana WizCom Technologies es un pequentildeo escaacutener con forma de boliacutegrafo que lee y traduce a voz textos escritos2 (ver imagen 21)

1 httponcetv-ipnnetnoticiasindexphpmodulo=despliegueampdt_fecha=2004-12-01ampnumnota=15 (Estimacioacuten personas invidentes) httpwwwconapogobmx00cifras00indicadores00xls (Poblacioacuten de la Repuacuteblica Mexicana) 2 httpwwwwizcomtechcomWizcomproductsproduct_infoaspfid=176

6

En nuestro paiacutes el desarrollo de la tecnologiacutea no ha alcanzado niveles muy elevados lo cual implica tener que traerla del exterior y en consecuencia el costo de la misma se eleva Esto se convierte en un problema para los consumidores finales ya que al no tener los medios suficientes para adquirir alguna tecnologiacutea tampoco obtienen los beneficios que la misma podriacutea otorgarles La tecnologiacutea que seriacutea desarrollada por este proyecto facilitariacutea la vida de muchas personas (con debilidades visuales o no) y lo que es mejor a un costo accesible Auacuten no se ha calculado el precio que dicha tecnologiacutea implicariacutea pero estaacute claro que seriacutea menor que el de una tecnologiacutea importada

Imagen 21 ReadingPen ndash Quicktionary creado por WizCom Technologies A continuacioacuten en la tabla 1 se muestra una comparacioacuten entre las funcionalidades que se planea tenga nuestro sistema (CIMATEV) y las funcionalidades que actualmente tiene Quicktionary

Funcionalidad Quicktionary (Actualmente)

CIMATEV (Se espera)

Calidad de la voz en general Buena Buena3

Inteligibilidad de la voz Si Si

Naturalidad de la voz Si y No en algunos casos Si y No en algunos casos

Tipo de texto escaneable

Captura texto personalizado incluyendo texto en negrita

cursiva invertido y subrayado tomando como

base fuentes estaacutendar y

Captura texto

personalizado incluyendo texto en negrita cursiva y

subrayado tomando como base

Portaacutetil Si No (Software para PC) Si (Sistema miacutenimo)

3 Para la siacutentesis de voz se utilizaraacute la teacutecnica de siacutentesis por seleccioacuten de unidades (Foneacutetica acuacutestica)

7

Tamantildeo del texto escaneable 6-22 puntos

6-22 puntos (Sistema miacutenimo)

En el caso del software para PC se planea que el tamantildeo

del texto no sea un factor que limite su conversioacuten a

vozPronunciacioacuten de nombres propios Si Si

Pronunciacioacuten de siglas Si Si

Se mantiene el estilo del texto escaneado

No Devuelve ASCII regular4

No Inicialmente devolveraacute

ASCII regular (se pretende utilizar el

estaacutendar Unicode)

Identifica la presencia de imaacutegenes No

No (En general) Si (Soacutelo para libros que

sigan el estaacutendar del software)

Ergonomiacutea y peso Si 85 g (3 oz) Se planea que el sistema miacutenimo sea ergonoacutemico y

ademaacutes tenga un peso razonable5

Tabla 1 Comparacioacuten entre las funcionalidades de Quicktionary y las de CIMATEV METODOLOGIacuteA DE DESARROLLO Se reconoce que el software al igual que todos los sistemas complejos evoluciona con el tiempo Los requerimientos que el sistema tiene que cubrir a menudo cambian conforme a que el desarrollo proceda haciendo que el camino que lleva al producto final no sea real las estrictas fechas de entrega hacen que sea imposible finalizar un producto completo por lo que se debe introducir una versioacuten limitada para cumplir con los tiempos de entrega Bajo estas circunstancias los desarrolladores necesitan de un modelo de proceso que ha sido disentildeado para acomodarse a un producto que evolucione con el tiempo Redes Neuronales Artificiales La historia de las redes neuronales comenzariacutea con el cientiacutefico aragoneacutes Santiago Ramoacuten y Cajal descubridor de la estructura neuronal del sistema nervioso A finales del siglo XIX la teoriacutea reticularista que sosteniacutea que el sistema nervioso estaba formado por una red continua de fibras nerviosas era extendida Sin embargo tras antildeos de trabajo aplicando y perfeccionando la teacutecnica de tincioacuten de Golgi en 1888 Ramoacuten y Cajal demostroacute que el sistema nervioso en realidad estaba compuesto por una red de ceacutelulas individuales las neuronas ampliamente conectadas entre siacute Pero no soacutelo observoacute al 4 ASCII de 7 bits Se pueden representar hasta 128 (27) caracteres diferentes 5 El acceso que se tenga a la tecnologiacutea que permita cubrir estos requerimientos no funcionales (ergonomiacutea y peso) seraacute decisivo para la realizacioacuten de los mismos

8

microscopio los pequentildeos espacios vaciacuteos que separaban unas neuronas de otras sino que tambieacuten establecioacute que la informacioacuten fluye en la neurona desde las dendritas hacia el axoacuten atravesando el soma Este descubrimiento baacutesico para el desarrollo de las neuro-ciencias en el siglo XX causoacute en la eacutepoca una verdadera conmocioacuten en la forma de entender el sistema nervioso concedieacutendose el premio Nobel de medicina a Ramoacuten y Cajal en 1906 (compartido con Camilo Golgi)

Axoacuten

Dendritas

Soma

Figura 22 Estructura de una neurona bioloacutegica tiacutepica

Sinapsis

Obviamente gracias al advenimiento de la microscopiacutea electroacutenica y a la introduccioacuten de otras importantes teacutecnicas se ha llegado a profundizar mucho maacutes en el estudio de la neurona Se estima que el sistema nervioso contiene alrededor de cien mil millones de neuronas Vistas al microscopio este tipo de ceacutelulas pueden presentarse en muacuteltiples formas aunque muchas de ellas presentan un aspecto similar muy peculiar (ver figura 21) con un cuerpo celular o soma (de entre 10 y 80 micras de longitud) del que surge un denso aacuterbol de ramificaciones (aacuterbol dendriacutetico) compuesto por las dendritas y del cual parte una fibra tubular denominada axoacuten (cuya longitud variacutea desde las 100 micras hasta el metro en el caso de las neuronas motoras1) que tambieacuten se ramifica en su extremo final para conectarse con otras neuronas En las interneuronas el axoacuten enviacutea la informacioacuten a otras neuronas mientras que las neuronas motoras lo hacen directamente al muacutesculo Existe un tercer tipo de neuronas las receptoras o sensoras que en vez de recibir informacioacuten de otras neuronas la reciben directamente del exterior (tal sucede por ejemplo en los conos y bastones de la retina) Se calcula que una neurona del coacutertex cerebral recibe informacioacuten por teacutermino medio de unas 10000 neuronas (convergencia) y enviacutea impulsos a varios cientos de ellas (divergencia)

Estructura de un sistema neuronal artificial Los ANS (Artificial Neural Systems) imitan la estructura hardware del sistema nervioso con la intencioacuten de construir sistemas de procesamiento de la informacioacuten

1 Lo que constituye el nervio

9

paralelos distribuidos y adaptativos que puedan presentar un cierto comportamiento ldquointeligenterdquo

Sistemas paralelos distribuidos y adaptativos Los tres conceptos clave de los sistemas nerviosos que se pretende emular en los artificiales son paralelismo de caacutelculo memoria distribuida y adaptabilidad al entorno De esta manera podemos hablar de las redes neuronales como sistemas paralelos distribuidos y adaptativos El procesamiento paralelo resulta esencial como se deduce de un sencillo ejemplo Una computadora convencional tipo PC que trabaja secuencialmente instruccioacuten por instruccioacuten empleariacutea varios minutos en realizar sobre una imagen compuesta por digamos 256x256 pixeles una sencilla tarea de tratamiento en bajo nivel (acentuar contrastes extraer contornos ) mucho maacutes simple que la que lleva a cabo el sistema visual para reconocer una imagen Un sistema basado en 16 DSP2 operando en paralelo empleariacutea del orden de 20 ms en la misma tarea puesto que cada procesador podriacutea operar en paralelo sobre diferentes sectores de la imagen Por otra parte el cerebro tarda este mismo tiempo en preprocesar una imagen compuesta por millones de pixeles (los que representan los conos y bastones de la retina) extraer sus rasgos caracteriacutesticos analizarla e interpretarla Ninguacuten sistema creado por el hombre es capaz de realizar algo semejante La clave reside en que los millones de neuronas que intervienen en el procesamiento de la imagen trabajan en paralelo sobre la totalidad de la imagen Otro concepto importante que aparece en el cerebro es el de memoria distribuida Mientras que en un computador la informacioacuten ocupa posiciones de memoria bien definidas en los sistemas neuronales se encuentra distribuida por las sinapsis de la red de modo que si una sinapsis resulta dantildeada no perdemos maacutes que una parte muy pequentildea de la informacioacuten Ademaacutes los sistemas neuronales bioloacutegicos son redundantes de modo que muchas neuronas y sinapsis pueden realizar un papel similar en definitiva el sistema resulta tolerante a fallos El uacuteltimo concepto fundamental es el de adaptabilidad Los ANS se adaptan faacutecilmente al entorno modificando sus sinapsis (y mediante otros mecanismos tambieacuten) y aprenden de la experiencia pudiendo generalizar conceptos a partir de casos particulares En el campo de las redes neuronales se llamaraacute a esta propiedad generalizacioacuten a partir de ejemplos Formalmente y desde el punto de vista del grupo PDP (Parallel Distributed Processing Reseach Group de la Universidad de California en San Diego) un sistema neuronal o conexionista estaacute compuesto por los siguientes elementos

bull Un conjunto de procesadores elementales o neuronas artificiales bull Un patroacuten de conectividad o arquitectura bull Una dinaacutemica de activaciones bull Una regla o dinaacutemica de aprendizaje bull El entorno donde opera

2 Digital Signal Processor

10

Modelo estaacutendar de neurona artificial Se denomina procesador elemental o neurona a un dispositivo simple de caacutelculo que a partir de un vector de entrada procedente del exterior o de otras neuronas proporciona una uacutenica respuesta o salida En este apartado se trataraacute el modelo denominado neurona estaacutendar (ver figura 31) que constituye un caso particular de un modelo maacutes complejo llamado modelo PDP El modelo estaacutendar considera que la regla de propagacioacuten es la suma ponderada y que la funcioacuten de salida es la identidad De esta forma la neurona estaacutendar etiquetada como i consiste en

bull Un conjunto de entradas Xj(t) y pesos sinaacutepticos Wij que representan la intensidad de interaccioacuten entre cada neurona presinaacuteptica j y cada neurona postsinaacuteptica i (ver figura 41)

bull Una regla de propagacioacuten σ(Wij Xj(t)) que proporciona el valor del potencial postsinaacuteptico hi(t)= σ(Wij Xj(t))=sumWijXj de la neurona i en funcioacuten de sus pesos y entradas

bull Una funcioacuten de activacioacuten Yi(t)=fi(hi(t)) que representa simultaacuteneamente la salida de la neurona i y su estado de activacioacuten (en el caso del modelo PDP las funciones de activacioacuten y de salida son tratadas por separado)

Con frecuencia se antildeade al conjunto de pesos de la neurona un paraacutemetro adicional θi que se denominaraacute umbral1 que se resta del potencial postsinaacuteptico por lo que el argumento de la funcioacuten de activacioacuten queda

sumj WijXj - θi

lo que representa antildeadir un grado de libertad adicional a la neurona En el caso de nodos de respuesta todo-nada este paraacutemetro representaraacute el umbral de disparo de la neurona es decir el nivel miacutenimo que debe alcanzar el potencial postsinaacuteptico (o potencial de membrana) para que la neurona se dispare o active En conclusioacuten el modelo de neurona denominado estaacutendar queda

Yi(t)=fi (sumj WijXj - θi)

Ahora bien si se hace que los iacutendices i y j comiencen en 0 se puede definir Wi0= θi y X0=-1 (constante) con lo que el potencial postsinaacuteptico (potencial local o de membrana) se obtiene realizando la suma desde j=0

Yi(t)=fi (sumj=012n WijXj)

1 En algunos modelos es threshold es decir ldquoumbralrdquo y en otros bias que no tiene una traduccioacuten clara en este caso

11

sum f ( )

Axoacuten Yi

Wi1

Wi2

Wij

Win

θi-1

X1

X2

Habiendo definido de esta manera la neurona estaacutendar basta con establecer la forma de la funcioacuten de activacioacuten para determinarla por completo A continuacioacuten se muestra una tabla con las funciones de activacioacuten maacutes utilizadas

Funcioacuten Relacioacuten entradasalida Graacutefica

Escaloacuten y=0 nlt0 y=1 nge0

Escaloacuten simeacutetrica y= -1 nlt0 y=+1 nge0

Lineal Identidad

y=n

Lineal saturada y=0 nlt0

y=n 0lenle1 y=1 ngt1

Lineal saturada simeacutetrica

y=-1 nlt-1 y=n -1lenle1

y=1 ngt1

Sigmoidal logariacutetmica

ney minus+=

11

Xj

Xn

Entradas

Dendritas

Sinapsis

Cuerpo celular

Salida

Umbral

Figura 23 Modelo de neurona estaacutendar

12

Tangente

hiperboacutelica

nn

nn

eeeey minus

minus

+minus

=

Lineal positiva y=0 nlt0 y=n 0len

Competitiva a=1 neurona con maacutex n

a=0 todas las demaacutes

C

Tabla 2 Funciones de activacioacuten habituales (se han omitido algunas constantes)

Arquitecturas de redes neuronales Se denomina arquitectura a la topologiacutea estructura o patroacuten de conexionado de una red neuronal En un ANS los nodos se conectan por medio de sinapsis esta estructura de conexiones sinaacutepticas determina el comportamiento de la red Las conexiones sinaacutepticas son direccionales es decir la informacioacuten soacutelo puede propagarse en un uacutenico sentido (desde la neurona presinaacuteptica a la postsinaacuteptica ver figura 24)

j

i

YjXj

Wij

YiNeurona presinaacuteptica

Neurona postsinaacuteptica

Figura 24 Interaccioacuten entre una neurona presinaacuteptica y otra postsinaacuteptica

En general las neuronas se suelen agrupar en unidades estructurales que denominaremos capas Las neuronas de una capa pueden agruparse a su vez formando grupos neuronales (clusters) Dentro de un grupo o de una capa si no existe este tipo de agrupacioacuten las neuronas suelen ser del mismo tipo Finalmente el conjunto de una o maacutes capas constituye la red neuronal

Se distinguen tres tipos de capas de entrada de salida y ocultas Una capa de entrada o sensorial estaacute compuesta por neuronas que reciben datos o sentildeales procedentes del entorno (por ejemplo proporcionado por sensores) Una capa de salida es aquella cuyas neuronas proporcionan la respuesta de la red neuronal (sus neuronas pueden estar conectadas a efectores) Una capa oculta es aquella que no tiene una conexioacuten directa

13

con el entorno es decir que no se conecta directamente ni a organos sensores o efectores Esta capa proporciona a la red neuronal grados de libertad adicionales gracias a los cuales puede encontrar representaciones internas correspondientes a determinados rasgos del entorno proporcionando una mayor riqueza computacional (ver figura 25)

Informacioacuten Capa de salida

(efectora) Capa oculta Capa de entrada (procesamiento) (sensorial)

Figura 25 Arquitectura unidireccional de tres capas de entrada oculta y de salida

Las conexiones entre las neuronas pueden ser excitadoras o inhibidoras un peso sinaacuteptico negativo define una conexioacuten inhibidora mientras uno positivo determina una conexioacuten excitadora Habitualmente no se suele definir una conexioacuten como de un tipo u otro sino que por medio del aprendizaje se obtiene un valor para el peso que incluye signo y magnitud

El perceptroacuten simple Este modelo neuronal fue introducido por Rosenblatt a finales de los antildeos cincuenta Dicha estructura se inspira en las primeras etapas de procesamiento de los sistemas sensoriales de los animales (por ejemplo la visioacuten) en los cuales la infomacioacuten va atravesando sucesivas capas de neuronas que realizan un procesamiento progresivamente de maacutes alto nivel Un perceptroacuten simple es un modelo unidireccional compuesto por dos capas de neuronas una sensorial o de entrada y otra de salida A continuacioacuten se muestra en la figura 26 su representacioacuten y la funcion de transferencia que utiliza

Figura 26 a) Las neuronas de entrada no realizan ninguacuten coacutemputo uacutenicamente enviacutean la informacioacuten a las neuronas de salida b) la funcioacuten de activacioacuten de las neuronas de la capa de salida es de tipo escaloacuten

Capa de entrada

Capa de salida

f(x) x

Funcioacuten escaloacuten

a) b)

14

El perceptroacuten puede utilizarse tanto como clasificador como para la representacioacuten de funciones booleanas pues su neurona es esencialmente de tipo MacCulloch-Pitts es decir de salida binaria La importancia histoacuterica del perceptroacuten radica en su caraacutecter de dispositivo entrenable ya que el algoritmo de aprendizaje que desarrollo Rosenblatt permite determinar automaacuteticamente los pesos sinaacutepticos que clasifican un conjunto de patrones a partir de un conjunto de ejemplos etiquetados (a esto se le llama red neuronal supervisada y el perceptron simple es de este tipo) Ahora se mostraraacute que un perceptroacuten permite realizar tareas de clasificacioacuten Cada neurona del perceptroacuten representa una determinada clase de modo que dado un vetor de entrada una cierta neurona responde con 0 si no pertenece a la clase que representa y con un 1 si siacute pertenece Es faacutecil ver que una neurona tipo perceptroacuten solamente permite discriminar entre dos clases linealmente separables (es decir cuyas regiones de decisioacuten pueden ser separadas mediante una uacutenica condicioacuten lineal o hiperplano que es una liacutenea recta si trabajamos en dos dimensiones) Sea una neurona tipo perceptroacuten de dos entradas x1 y x2 con salida y cuya operacioacuten se define por lo tanto como

y = H(w1x1+w2x2 - ө) o bien 1 si w1x1+w2x2 geӨ y = 0 si w1x1+w2x2 ltӨ

Si consideramos x1 y x2 situadas sobre los ejes de abscisas y ordenadas en el plano la condicioacuten

w1x1+ w2x2 -Ө = 0 rarr x2 = - (w1 w2) x1 + Ө w2 representa una recta (hiperplano si trabajamos con n entradas) que divide el plano en dos regiones que son aquellas para las que la neurona proporciona una salida 0 o 1 respectivamente como se muestra en la figura 27

x x

x x x

x x x

x

x

oo

oo

o o

o

X1

X2

Regioacuten w1x1+w2x2 geӨ Regioacuten w1x1+w2x2 ltӨ

Figura 27 Una neurona tipo perceptroacuten representa un discriminador lineal que separa dos regiones en el espacio que representan dos diferentes clases de patrones En esta graacutefica x = lsquo1rsquo y o = lsquo0rsquo

15

Empleo del perceptroacuten para reconocer funciones loacutegicas -Funcion linealmente separable Consideremos la funcioacuten loacutegica NAND2 (AND negada de dos entradas) que representamos sobre un plano en la graacutefica 3 que se presenta en seguida

x (10) o (11)

x (00)

x (01) X1

X2

Figura 28 Funcioacuten loacutegica NAND de dos entradas En la graacutefica x = lsquo1rsquo y o = lsquo0rsquo

Se puede ver que en este caso existen paraacutemetros w1 w2 y Ө que permiten una recta que separa perfectamente las regiones correspondientes a los valores loacutegicos 0 y 1 Y por lo tanto se dice que la funcioacuten loacutegica NAND es linealmente separable -Funcioacuten no separable linealmente

Ahora consideremos la funcioacuten loacutegica or-exclusivo (XOR) y representandola en un plano en la figura 29

x (10) o (11)

o (00)

x (01) X1

X2

Figura 29 Funcioacuten loacutegica XOR de dos entradas que no es linealmente separable

16

Al ser XOR no linealmente separable se dice que ldquola clase de funciones no separables linealmente no pueden ser representadas por un perceptroacuten simplerdquo El perceptroacuten presenta serias limitaciones pues solamente puede representar funciones linealmentes separables Y aunque pueda aprender automaacuteticamente a representar complejas funciones booleanas o resolver con eacutexito muchos problemas de clasificacioacuten con un cierto algoritmo en ocasiones fallara draacutesticamente Minsky (que es uno de los padres de la inteligencia artificial) y Papera estudiaron en profundidad el perceptroacuten y en 1969 publicaron un exhaustivo trabajo donde exhibian las limitantes del modelo en lo que resultoacute decisivo para que muchos de los recursos que se destinaban a su investigacioacuten se desviara a otras aacutereas Una solucioacuten para las limitantes del perceptroacuten simple puede consistir en incluir maacutes capas en la arquitectura con lo que tendremos un perceptroacuten multicapa A finales de los antildeos sesenta ya se apuntaba como solucioacuten a las limitaciones del perceptroacuten introducir capas ocultas pero el problema estaba en que no se teniacutea un algoritmo de aprendizaje para el perceptroacuten multicapa (con capas ocultas) Dicho algoritmo fue propuesto por Paul Verbos alrededor de 1974 pero fue preciso hasta mediados de los ochenta cuando el grupo PDP redescubriera un algoritmo similar al cual denominaron Back-Propagation o BP y dieran a conocer a la comunidad internacional su gran potencial para la resolucioacuten de problemas praacutecticos

Algoritmo de aprendizaje del perceptroacuten El del perceptroacuten es un algoritmo de aprendizaje de los denominados por correccion de errores Los algoritmos de este tipo ajustan los pesos en proporcioacuten a la diferencia existente entre la salida actual de la red y la salida deseada con el objetivo de minimizar el error actual de la red Definicioacuten del algoritmo de aprendizaje Sea un conjunto de p patrones xn n=1hellipp con sus salidas deseadas tn Tanto las entradas como las salidas solamente pueden tomar los valores -1 o 1 Se tiene una arquitectura de perceptroacuten simple con pesos iniciales aleatorios y se requiere que clasifique correctamente todos los patrones del conjunto de aprendizaje (solo si son linealmente separables) Ahora actuaremos del siguiente modo ante la presentacioacuten del patron n-eacutesimo si la respuesta que proporciona el perceptroacuten es correcta no actualizaremos los pesos si es incorrecta los modificaremos seguacuten la regla de Hebb aplicada a nuestro caso Primero se muestra la regla de Hebb y despueacutes la regla modificada para el perceptroacuten simple Regla de Hebb

∆wij = ξyixjDonde

17

o wij corresponde a los pesos de una entrada j por la salida i de la neurona

o ξ se denomina ritmo de aprendizaje que su valor suele estar entre 1 y 0 Regla modificada para el perceptroacuten simple

2ξtnixnj si yn

ine tni ∆wn

ij(t)= 0 si yn

i= tni que puede reescribirse del siguiete modo que es la forma usual de expresar la regla del perceptroacuten

∆wnij(t)= 2ξ(tni - yn

i)xnj

Es importante mencionar que el proceso de aprendizaje es iterativo se

parte de una configuracioacuten sinaacuteptica de partida (normalmente de pesos pequentildeos aleatorios) y se presentan una y otra vez los patrones para que los pesos se ajusten iterativamente seguacuten forma usual de la regla del perceptroacuten hasta que todos queden bien clasificados El hiperplano que establece el liacutemite entre dos clases se desplaza lentamente hasta conseguir separarlas por completo (si es posible) como se ve en la figura 210

t= 115

x x

x x x

x x x

x

x

o

o o

o o o o

o

o o

o

o

o

o

o

o

o

X2

t= 21

t= 0 t= 4

X1

Figura 210 Regiones de decisioacuten que establece iterativamente el perceptroacuten durante el aprendizaje (en la iteracioacuten 115 ha conseguido separar ya las dos clases)

Avances En este capiacutetulo se haraacute una descripcioacuten de los avances que se han hecho hasta el momento Se hablaraacute acerca del entrenamiento de la red neuronal del sistema el reconocimiento de caracteres tanto con la red neuronal como con los clasificadores ya expuestos y el tratamiento de imaacutegenes para eliminar el ruido tipo sal y pimienta Reconocimiento de caracteres Se han hecho avances acerca del reconocimiento de caracteres utilizando redes neuronales y clasificadores diversos A continuacioacuten se exponen dichos avances

Entrenamiento de la red neuronal Para entrenar la red neuronal se utilizoacute el algoritmo de retropropagacioacuten expuesto en el capiacutetulo 1 Se disentildeoacute un programa en Java que permite entrenar una red neuronal de 3

18

capas La cantidad de clases a discriminar es variable y para este caso se utilizoacute una matriz de 5x8 es decir se tomaron 40 rasgos de entrada

Utilizando la red neuronal para reconocer caracteres A continuacioacuten se muestra en la imagen 211 el programa disentildeado en Java que permite discriminar un nuacutemero variable de clases Para este caso se eligioacute discriminar entre los diacutegitos del 0 al 9 El programa para reconocer los 128 caracteres referentes al sintetizador de voz tendraacute una interfaz similar con la diferencia de que la rejilla para ingresar el patroacuten a reconocer seraacute de 20x20 El programa mostrado fue programado tanto para entrenar la red como para reconocer los diacutegitos Se puede elegir entre los entrenamientos hechos para probar la efectividad de la red Las estadiacutesticas del entrenamiento elegido se muestran en la parte inferior de la pantalla

Imagen 211 Reconocimiento de los diacutegitos del 0 al 9 utilizando una red neuronal de 3 capas

19

Utilizando los clasificadores para reconocer caracteres Dentro de las teacutecnicas de reconocimiento de patrones existen diferentes clasificadores que nos permiten a partir de un conjunto de entrenamiento (en eacuteste caso un conjunto de tipos de letras que deseamos reconocer) saber a queacute clase pertenece un patroacuten de prueba que se introduce

Imagen 212 Un ejemplo de un clasificador KNN con un valor de K=3 y usando la meacutetrica City-Block para clasificar el patroacuten de prueba pruebabmp entre tres clases

En la imagen 212 se muestra como se puede clasificar un caraacutecter escalado de la imagen prueba 4bmp dentro de las tres clases existentes Se observa que si se puede clasificar este tipo de patrones pero veamos un ejemplo donde no sea posible clasificar un patroacuten de prueba y por queacute

Imagen 213 Un ejemplo de un clasificador KNN con un valor de K=5 y usando la meacutetrica Euclidiana para clasificar el patroacuten de prueba prueb3bmp entre tres clases El patroacuten no fue reconocido correctamente

20

Ahora como se observa no se pudo clasificar correctamente el patroacuten de prueba ya que pertenece claramente a la clase 3 pero por el clasificador que usamos o por el nuacutemero de K-vecinos o por el tipo de meacutetrica usada sucedioacute que en su mayoriacutea eran de la clase 2 y no de la clase 3 Tal vez si se hubiera elegido un valor de K menor a 5 tendriacutea maacutes posibilidades de clasificar correctamente Finalmente usar este tipo de teacutecnicas para reconocer caracteres es muy bueno ya que permite reconocer letras que se encuentran rotadas escaladas o trasladadas por una teacutecnica matemaacutetica llamada Momentos de Hu pero al tener una situacioacuten donde la imagen de prueba se encuentra exactamente a la misma distancia de dos o mas clases se crea el problema de no saber a que clase clasificar dicho patroacuten

Tratamiento digital de las imaacutegenes a capturar A continuacioacuten se muestra en la imagen 214 un programa que se codificoacute en C++ Builder y permite tratar digitalmente imaacutegenes BMP con la finalidad de eliminar el ruido pasarlas a escala de grises y binarizarlas El programa es capaz de generar histogramas de color

Imagen 214 Programa para tratar imaacutegenes digitalmente

21

CAPIacuteTULO 3 Buscadores La informacioacuten almacenada tendriacutea poco valor si no podemos consultarla buscar los datos en una base de datos o en muchas bases de datos que tienen conexioacuten por medio de la web es lo que nos permite explotar la informacioacuten Sin embargo la buacutesqueda seraacute eficiente si la respuesta del buscador es lo maacutes especifica o cercana a los temas solicitados Por lo que el software con aplicacioacuten de buscador es importante desarrollar un proceso para su creacioacuten Objetivo General Desarrollar un sistema de buacutesqueda de informacioacuten por conceptos en la Web basado en agentes inteligentes mediante la aplicacioacuten de ontologiacuteas Estado Del Arte Existen algunos sistemas que proporcionan buacutesquedas de informacioacuten basados en algunas de las tecnologiacuteas que vamos a utilizar Es habitual encontrar este tipo de buscadores y algunos otros similares bautizados como Megabuscadores o Multibuscadores a pesar de que estos teacuterminos no sean los maacutes idoacuteneos por lo que al hablar de este tipo de sistemas podemos referirlos como Buscadores Muacuteltiples en virtud de las caracteriacutesticas de su funcionamiento A continuacioacuten se mencionan algunos de ellos

Buscador muacuteltiple Copernic 2001 Pro Copernici producto de la empresa canadiense Copernic Technologies es un agente buscador que transfiere una ecuacioacuten de buacutesqueda a un conjunto de buscadores de manera simultaacutenea recupera las referencias pertinentes y las ordena seguacuten el grado medio de relevancia obtenido de cada uno de los buscadores La empresa creadora de Copernic se constituyoacute en 1996 con el propoacutesito de desarrollar soluciones innovadoras en tecnologiacuteas de agentes de buacutesqueda para conseguir un acceso y una gestioacuten eficientes de la gran masa de informacioacuten presente en Internet El programa se desarrolloacute el antildeo siguiente en una versioacuten experimental y se puso al alcance del puacuteblico en noviembre de 1998 Desde entonces se han lanzado versiones con elementos nuevos la mayoriacutea de los cuales no obstante soacutelo estaacuten disponibles en las ediciones comerciales La edicioacuten gratuita ofrece los servicios baacutesicos de consulta y con la intencioacuten de persuadir a los posibles compradores de las ediciones comerciales da una idea bastante aproximada de las posibilidades del programa completo

Lets Browse Como en otros medios (por ejemplo la televisioacuten) la navegacioacuten en Internet puede ser realizada por grupos de gente [Lieberman et al 1997] Lets browse muestra como un agente puede asistir a un grupo de gente en su navegacioacuten sugirieacutendoles materiales nuevos que puedan ser de intereacutes comuacuten entre ellos

Este trabajo es una extensioacuten del agente Letizia [Lieberman 1995] el cual selecciona paacuteginas de Web Letizia inicia una buacutesqueda por niveles visita las ligas que encuentra a partir de la paacutegina que su usuario esteacute revisando y selecciona aquellas que sean similares a los intereses que ha aprendido de su usuario (observando su navegacioacuten) Posteriormente muestra sus recomendaciones en un canal de navegacioacuten

22

El trabajo del agente consiste en seleccionar de la misma forma que Letizia lo hace aquellas paacuteginas que mejor satisfagan los intereses de todos los participantes Las caracteriacutesticas de Letrsquos browse son la deteccioacuten automaacutetica de la presencia de usuarios navegacioacuten automaacutetica (en canal de navegacioacuten) el despliege dinaacutemico de las preferencias de los usuarios y la explicacioacuten de las recomendaciones Permite ademaacutes revisar las paacuteginas desde el punto de vista de otra persona (con sus preferencias) y asiacute estimar cual seriacutea su posible opinioacuten acerca de dicha paacutegina auacuten cuando aquella persona no la haya revisado anteriormente

Agentes de Informacioacuten Un agente de informacioacuteiin es utilizado para organizar los espacios de informacioacuten del usuario y facilitar su explotacioacuten En el WWW (World Wide Web) se estaacuten implementando diversos agentes de informacioacuten El Agente Letizia [Lieberman 1995] que existe en un navegador de Web anticipa queacute artiacuteculos pueden ser de intereacutes para el usuario basaacutendose en las conductas pasadas del usuario Las paacuteginas que cree son de intereacutes del usuario Letizia las despliega en una ventana de sugerencias por unos instantes Marco Conceptual Actualmente para poder hacer la consulta de cualquier tipo de informacioacuten en Internet la mayoriacutea de las personas recurre a los motores de buacutesquedas conocidos como Google Yahoo Altavista por mencionar algunos siendo que estos usan diferentes meacutetodos para llegar a su objetivo podemos darnos cuenta que arrojan distintos resultados uno de otro que en el mejor de los casos coinciden en un porcentaje muy poco satisfactorio con la buacutesqueda en cuestioacuten con lo que concluimos que una respuesta a esta falta de precisioacuten en cuanto a la buacutesqueda de un tema en especial es mejor la buacutesqueda de conceptos lo cual permite al usuario acercarse maacutes al tema de su intereacutes Es importante enfocar nuestra solucioacuten apoyaacutendonos en un motor de buacutesqueda y aplicando herramientas como los Agentes que nos permitan recopilar la informacioacuten maacutes precisa de cada buacutesqueda a traveacutes de un algoritmo propio obteniendo resultados maacutes cercanos a los deseados ya que estos provienen de muacuteltiples documentos ahorrando tiempo y ganando precisioacuten a la vez Muy frecuentemente encontramos que cuando se trata de buacutesquedas en Internet a traveacutes de los motores de buacutesqueda populares los usuarios hacen consultas de diversas paginas y es muy difiacutecil llevar una lista de todos los sitios visitados o de aquellos que nos mostraron la informacioacuten maacutes adecuada nuestro sistema es capaz de registrar dentro de una base de datos un iacutendice de todos los sitios que se obtuvieron en la buacutesqueda de un tema o concepto con lo que el usuario no tendraacute que realizar una ldquonuevardquo buacutesqueda de un tema antes consultado sino que tendraacute a la mano todos los sitios que arrojoacute la primera buacutesqueda Marco teoacuterico

Descripcioacuten de RDF

El Resource Description Frameworiiik (RDF) es un fundamento para el procesamiento de metadatos proporciona interoperabilidad entre aplicaciones que intercambian informacioacuten legible por maacutequina en la Web RDF utiliza XML para intercambiar descripciones de recursos Web pero los recursos descritos pueden ser de cualquier tipo

23

incluyendo recursos XML y no-XML RDF resalta las facilidades para hacer posible el procesamiento automaacutetico de los recursos Web RDF puede utilizarse en diferentes aacutereas de aplicacioacuten por ejemplo en la recuperacioacuten de recursos para proporcionar mejores capacidades a los motores de buacutesqueda en catalogacioacuten para la descripcioacuten de contenido y relaciones de contenido accesibles en un sitio Web particular en una paacutegina o biblioteca digital a traveacutes de agentes de software inteligente para facilitar que el conocimiento se comparta e intercambie en la valoracioacuten de contenido en la descripcioacuten de colecciones de paacuteginas que representan un documento loacutegico individual para la descripcioacuten de los derechos de propiedad intelectual de las paacuteginas Web y para expresar las preferencias de privacidad de un usuario asiacute como las poliacuteticas de privacidad de un sitio Web Las descripciones utilizadas por estas aplicaciones pueden modelarse como relaciones entre recursos Web El modelo de datos de RDF tal y como se especifica en RDFMS define un modelo simple para describir las relaciones entre recursos en teacuterminos de propiedades y valores designadas Las propiedades RDF pueden entenderse como atributos de un recurso y en este sentido corresponden con los tradicionales pares atributo-valor Las propiedades RDF tambieacuten representa relaciones entre recursos De esta forma el modelo de datos RDF puede parecer un diagrama entidad-relacioacuten El modelo de datos RDF sin embargo no proporciona mecanismos para declarar estas propiedades ni proporcionan ninguacuten mecanismo para definir las relaciones entre estas propiedades y otros recursos Este es el papel [la funcioacuten] del Esquema RDF

Las comunidades de descripcioacuten de recursos necesitan la habilidad para decir ciertas cosas sobre ciertas clases de recursos Para describir recursos bibliograacuteficos por ejemplo son habituales atributos descriptivos tales como autor [author] tiacutetulo [title] y materia [subject] Para la certificacioacuten digital se necesitan muchas veces atributos tales como esquema simple de deteccioacuten de errores [checksum] y autorizacioacuten [authorization] La declaracioacuten de estas propiedades (atributos) y su semaacutentica correspondiente se definen en el contexto de RDF como un Esquema RDF Un esquema define no soacutelo las propiedades de un recurso (ej tiacutetulo autor materia tamantildeo color etc) sino que puede tambieacuten definir los tipos de recursos que se describiraacuten (libros paacuteginas Web personas empresas etc)

Los Esquemas RDF podriacutean contrastarse con las Definiciones del Tipo de Documentos (DTDs) de XML y los Esquemas XML A diferencia de una DTD o Esquema XML que dan restricciones especiacuteficas en la estructura de un documento XML un Esquema RDF proporciona informacioacuten sobre la interpretacioacuten de una sentencia dada en un modelo de datos RDF Mientras un Esquema XML puede utilizarse para validar la sintaxis de una expresioacuten RDFXML un esquema sintaacutectico soacutelo no es suficiente para los objetivos de RDF Los Esquemas RDF pueden tambieacuten especificar restricciones que deben seguirse por estos modelos de datos

Clases y Propiedades Un Esquema RDF se expresa a traveacutes de un modelo de datos descrito en la especificacioacuten del Modelo y la Sintaxis RDF [RDFMS] El lenguaje de descripcioacuten del esquema es un simple conjunto de recursos y propiedades definidos por la Especificacioacuten del Esquema RDF y la parte impliacutecita de cada modelo RDF que utiliza la mecaacutenica del esquema RDF

24

El sistema de escritura de datos [type system] El Esquema RDF definido en esta especificacioacuten es una coleccioacuten de recursos RDF que puede utilizarse para describir propiedades de otros recursos RDF (incluyendo propiedades) que definene vocabularios RDF de aplicacioacuten especiacutefica El nuacutecleo del vocabulario del esquema se define en un namespace denominado aquiacute informalmente rdfs e identificado por el URI de referencia httpwwww3org200001rdf-schema Esta especificacioacuten utiliza tambieacuten el prefijo rdf para referirse al namespace principal RDF httpwwww3org19990222-rdf-syntax-ns

Como se describe en la especificacioacuten del modelo y la sintaxis [RDFMS] los recursos pueden ser objetos especiacuteficos de una categoriacutea [instances] de una o maacutes clases esto se indica con la propiedad rdftype Las clases se organizan muchas veces de una forma jeraacuterquica por ejemplo la clase Dog [perro] podriacutea considerarse subclase de Mammal [mamiacutefero] que a su vez es una subclase de Animal dando a entender que cualquier recurso que esteacute en rdftype Dog se considera tambieacuten que estaacute en rdftype AnimalEsta especificacioacuten describe una propiedad rdfssubClassOf para indicar dichas relaciones entre clases

El sistema de escritura [type system] del Esquema RDF es similar al sistema de los lenguajes de programacioacuten orientados a objetos tales como Java Sin embargo RDF se diferencia de muchos de esos sistemas en que en lugar de definir una clase en teacuterminos de propiedades sus objetos especiacuteficos de una categoriacutea [instances] pueden tener un esquema RDF que definiraacute las propiedades en teacuterminos de clases de recurso a los que se aplican Este es el papel de las restricciones rdfsdomain y de rdfsrange

Por ejemplo podemos definir que la propiedad author tenga un dominio de Book y un alcance de Literal mientras que un sistema OO claacutesico podriacutea definir tiacutepicamente una clase Book con un atributo denominado author de tipo Literal

Clases y Recursos como Conjuntos y Elementos El siguiente esquema ilustra el concepto de clase subclase y recurso Una clase se describe por un rectaacutengulo redondeado un recurso se describe por un punto grande En la figura abajo se han dibujado flechas desde un recurso a una clase que define Una subclase se presenta en un rectaacutengulo redondeado (la subclase) completamente incluido en otro (la superclase) Si un recurso estaacute dentro de una clase entonces existe una propiedad rdftype o expliacutecita o impliacutecita de aquel recurso cuyo valor es un recurso que define la clase que contiene (Estas propiedades se muestran como arcos en la representacioacuten graacutefica directamente etiquetada en el Esquema 2) El recurso RDF representado en el esquema 1 se describe tanto en el resto de esta especificacioacuten como en la especificacioacuten del Modelo y Sintaxis RDF

Ontologiacuteas en la Representacioacuten del Conocimiento En estos uacuteltimos antildeos se incrementoacute la cantidad de informacioacuten en la Internet lo cual motivoacute el incremento de la complejidad y la diversidad de la informacioacuten Esto tambieacuten motivoacute el intereacutes de automatizar muchas actividades que tradicionalmente se realizan en forma manual La principal motivacioacuten en el uso de las ontologiacuteas es que permiten compartir y reutilizar conocimiento en un dominio De ahiacute el intereacutes de muchos

25

investigadores en el aacuterea de inteligencia artificial para tratar de aplicar las ontologiacuteas en la representacioacuten de conocimiento Las ontologiacuteas son un elemento importante en la Web Semaacutentica y es un teacutermino filosoacutefico que trata sobre la naturaleza de la existencia y los tipos de objetos que existen Tambieacuten la ontologiacutea se puede definir como una especificacioacuten expliacutecita de una conceptualizacioacuten compartida La conceptualizacioacuten se refiere a un modelo abstracto de un fenoacutemeno en el mundo en donde se tienen que identificar los conceptos relevantes de este fenoacutemeno El teacutermino expliacutecito significa queacute tipos de conceptos son usados y las restricciones de estos conceptos Y por uacuteltimo el teacutermino compartido se refiere a que las ontologiacuteas capturan conocimiento que es aceptado por todos y no es individual de un grupo Actualmente se les estaacute dando maacutes uso a las ontologiacuteas en el campo de la Inteligencia Artificial En este campo se define la ontologiacutea como una descripcioacuten formal y expliacutecita de conceptos de un dominio (classes a las que nos referiremos como conceptos) propiedades de cada concepto las cuales describen las caracteriacutesticas y atributos de los conceptos (slots llamados tambieacuten como propiedades o roles) y restricciones de las propiedades (facets conocidas como restricciones) La informacioacuten que es representada a traveacutes de los lenguajes semaacutenticos puede ser compartida entre aplicaciones como los agentes

OWL y Web Semaacutentica

La Web Semaacutentica es una Web extendida dotada de mayor significado en la que cualquier usuario en Internet podraacute encontrar respuestas a sus preguntas de forma maacutes raacutepida y sencilla gracias a una informacioacuten mejor definida Al dotar a la Web de maacutes significado y por lo tanto de maacutes semaacutentica se pueden obtener soluciones a problemas habituales en la buacutesqueda de informacioacuten gracias a la utilizacioacuten de una infraestructura comuacuten mediante la cual es posible compartir procesar y transferir informacioacuten de forma sencilla Esta Web extendida y basada en el significado se apoya en lenguajes universales que resuelven los problemas ocasionados por una Web carente de semaacutentica en la que en ocasiones el acceso a la informacioacuten se convierte en una tarea difiacutecil y frustrante

LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES La comunicacioacuten es uno de los aspectos importantes dentro de una comunidad de agentes la cual permitiraacute compartir y enviar mensajes entre agentes Los meacutetodos tradicionales permiten la comunicacioacuten entre los agentes pero eacutestos no son suficientes para lograr un comportamiento social entre los agentes para ello es necesario que los mensajes tengan un significado y contenido semaacutentico Se han desarrollado varios lenguajes los cuales son usados para el enviacuteo de mensajes a continuacioacuten hablaremos de dos de ellos KQML Knowledge Query and Manipulation Language (KQML) es uno de los lenguajes que nos provee la estructura para enviar mensajes entre agentes Dentro de sus principales caracteriacutesticas tenemos que es independiente de la sintaxis del contenido y la ontologiacutea

26

que se utilizaraacute Asiacute mismo es independiente del mecanismo de transporte (TCPIP SMTP IIOP etc) e independiente del contenido del lenguaje (KIF SQL STEP Prolog etc) KQML fue desarrollado por el consorcio DARPA Knowledge Sharing Effort (KSE) cuyo principal objetivo fue desarrollar una base tecnoloacutegica para construir en forma progresiva sistemas cada vez con maacutes funcionalidad complejidad y amplitud KQML provee un lenguaje y un protocolo para intercambiar informacioacuten entre agentes inteligentes y para lograr este intercambio se tiene que compartir una sintaxis y una semaacutentica comuacuten para que los mensajes sean entendidos por los agentes Al lenguaje KQML se le dividioacute en tres capas la capa de contenido alberga el contenido del mensaje que es especificado en cualquier formato ya sea texto o binario La capa de comunicacioacuten contiene paraacutemetros como el identificador uacutenico asociado a la comunicacioacuten identidad del remitente e identidad del destinatario La capa de mensaje define tanto los diferentes tipos de interaccioacuten que se pueden establecer entre los agentes como los protocolos que se pueden establecer entre los agentes Tambieacuten incluye otras caracteriacutesticas como el lenguaje de representacioacuten o la ontologiacutea siendo ambos opcionales

JADE (Java Agent DEvelopment Framework)

JADEiv (Java Agent DEvelopment Framework) es un middleware que proporciona tanto un entorno de desarrollo como un entorno de ejecucioacuten para la realizacioacuten y mantenimiento de sistemas multiagente El entorno de desarrollo estaacute formado por una serie de libreriacuteas en Java que permiten la implementacioacuten de agentes de manera limpia e independiente de la plataforma sobre la que se va a ejecutar El entorno de ejecucioacuten permite a los agentes vivir y comunicarse entre ellos Estaacute realizado enteramente en Java y proporciona una serie de herramientas que permiten al desarrollador controlar y depurar a los agentes en tiempo real JADE es un middleware desarrollado por TILAB para el desarrollo de aplicaciones distribuidas multiagente JADE proporciona tanto el entorno de desarrollo para la creacioacuten de aplicaciones basadas en agentes como el entorno de ejecucioacuten JADE presenta las siguientes caracteriacutesticas

P2P Arquitectura peer-to-peer cada agente puede tomar la iniciativa en una comunicacioacuten o bien responder a peticiones que le hagan otros agentes

Interoperabilidad JADE cumple con las especificaciones FIPA por lo que los agentes desarrollados en JADE pueden interactuar con otros agentes que no tienen porque estar desarrollados con JADE aunque si deben seguir las especificaciones FIPA

Portabilidad La API que proporciona JADE es independientemente de la red sobre la que va a operar asiacute como de la versioacuten de Java utilizada teniendo la misma API para J2EE J2SE y J2ME

27

Intuitiva JADE se ha desarrollado para ofrecer una API faacutecil de aprender y sencilla de manejar

Los agentes JADE tienen nombres uacutenicos y se permite a cada agente descubrir a otros agentes y comunicarse con ellos mediante comunicaciones punto a punto Los agentes proporcionan servicios cada agente puede buscar a otros dependiendo de los servicios que proporcionen otros agentes La comunicacioacuten entre agentes se lleva a cabo a traveacutes de mensajes asiacutencronos es decir el agente que enviacutea el mensaje y el destinatario del mensaje no tienen porqueacute estar disponibles al mismo tiempo Es maacutes el destinatario no tiene porqueacute existir en ese instante Los mensajes se pueden enviar a un agente en concreto o se pueden enviar a agentes que se desconocen pero se sabe que poseen unas ciertas caracteriacutesticas JADE proporciona mecanismos de seguridad ya que habraacute agentes a los que no se les esteacute permitido comunicarse con otros agentes de manera que una aplicacioacuten puede verificar la identidad del receptor y del agente que enviacutea el mensaje y no dejar realizar actuaciones no permitidas para un determinado agente La estructura de los mensajes se basa en el lenguaje ACL (Agent Communication Lenguaje) que ha sido definido por la FIPA JADE facilita mecanismos para el desarrollo de los objetivos que deben alcanzar los agentes Los comportamientos (behaviours) y la comunicacioacuten entre los agentes (junto con el servicio de paacuteginas amarillas) proporcionan los recursos necesarios para programar un sistema multiagente JADE tambieacuten permite a los agentes cambiar de Host (en J2SE) Un agente puede interrumpir en un momento dado su ejecucioacuten migrar a otro host (sin necesidad de que el coacutedigo esteacute previamente en el host destino) y continuar la ejecucioacuten en el mismo punto en el que la interrumpioacute Esto permite un balanceo de carga ya que permite a los agentes migrar hosts menos cargados El entorno de ejecucioacuten proporciona un marco donde poder ejecutar los agentes y herramientas graacuteficas para su monitorizacioacuten y depuracioacuten Los agentes JADE necesitan del entorno de ejecucioacuten donde poder vivir Cada instancia del entorno de ejecucioacuten se denomina contenedor (container) Al conjunto de los contenedores se le denomina plataforma (platform) y proporciona una capa que oculta a los agentes (y al desarrollador) el entorno donde se ha decidido ejecutar la aplicacioacuten En cada plataforma debe existir un contenedor especial denominado contenedor principal (main container) La principal diferencia del contenedor principal respecto al resto de contenedores es que alberga dos agentes especiales

AMS (Agent Management System) Este agente proporciona el servicio de nombres asegurando que cada agente en la plataforma disponga de un nombre uacutenico Tambieacuten representa la autoridad es posible crear y matar agentes en contenedores remotos requeriendoselo al agente AMS

DF (Directory Facilitator) Proporciona el servicio de Paacuteginas Amarillas Gracias al agente DF un agente puede encontrar otros agentes que provean los servicios necesarios para lograr sus objetivos

28

La caracteriacutestica mas importante del entorno de ejecucioacuten es la interfaz graacutefica que proporciona desde la que podemos controlar y depurar los agentes existentes Todas las herramientas han sido desarrolladas como agentes y siguen sus mismas reglas Disentildeo Arquitectura

Agente usuario

Agente de ontologiacutea

Agente de filtrado

Agente de recuperacioacuten

BD

OntologiacuteaSistema

Motor de buacutesqueda

El sistema esta disentildeado para que un usuario realice alguna buacutesqueda relacionada con alguno de los tres temas propuestos en nuestra base de conocimiento que son Ingenieriacutea de Software Base de Datos y Deportes El sistema esta basado en una arquitectura multiagente la cual se conforma por Agente Usuario Actuacutea de intermediario entre el usuario y el sistema Sus servicios son solicitados por el usuario para resolver las consultas El usuario le suministra una consulta y el sistema le devuelve una lista de documentos que pueden satisfacer sus necesidades Este agente tiene la capacidad de acceder a la base de datos con el objetivo de almacenar yo recuperar resultados Base de Datos Guardaraacute las ultimas buacutesquedas realizadas para su posterior consulta a peticioacuten del usuario Agente de Filtrado Gestiona la recuperacioacuten de documentos y realiza el filtrado de los mismos proporcionados por el Agente de Recuperacioacuten Recibe la peticioacuten del Agente Usuario y a su vez esta es enviada al Agente Ontologiacutea para que este regrese una evaluacioacuten de la consulta y de esta forma conocer si es necesaria una redefinicioacuten de la consulta En caso de ser necesaria se espera recibir el nuevo vector de consulta hasta que se cumpla una de dos opciones el usuario deje de redefinir la consulta o la consulta sea concreta Cuando la consulta sea concreta es enviada de nueva cuenta al Agente Ontologiacutea el cual regresaraacute el Nuevo Vector Expandido Este seraacute enviado al Agente de Recuperacioacuten Cuando el Agente de Recuperacioacuten regrese los urlacutes de los resultados (con sus respectivos vectores de teacuterminos) se realiza una evaluacioacuten de los vectores de cada documento con respecto al vector de buacutesqueda expandida con el objetivo de asignarles una calificacioacuten Gracias a esta calificacioacuten podemos obtener aquellos documentos que mejor cumplan con las expectativas del usuario (Estos documentos son regresados al Agente Usuario) Agente Ontologiacutea Recibe el vector de consulta proporcionado por el Agente de Filtrado La informacioacuten contenida en el vector de consulta es comparada con la existente en nuestra ontologiacutea Una vez verificada la existencia de la informacioacuten del

29

vector consulta dentro de la ontologiacutea este se encarga de devolver la distancia y el umbral al Agente de Filtrado Se espera que este devuelva una peticioacuten para expandir ese mismo vector Puede darse el caso de obtener dos tipos de buacutesquedas una general y otra mucho maacutes definida En cualquiera de los caso obtenemos un nuevo vector de buacutesqueda (con una informacioacuten mejor definida este es el Vector de Buacutesqueda Expandido) que es enviado de regreso al Agente de Filtrado el cual genera una copia y le es enviada al Agente de Recuperacioacuten Ontologiacutea Representa nuestra base de conocimientos Esta compuesta por tres aacutereas de conocimiento las cuales son Ingenieriacutea se Software Bases de Datos y Deportes Para poder representar esta ontologiacutea en un lenguaje entendible para agentes inteligentes se programaraacute bajo los fundamentos de las estructuras RDF contenidas en las especificaciones de XML y siguiendo los estaacutendares de la W3C Agente Recuperacioacuten Realiza la buacutesqueda gracias a la informacioacuten que le es entregada por el Agente de Filtrado (se trata Vector de Buacutesqueda Expandido generado por el Agente de Ontologiacutea) El agente estructura esta informacioacuten y se introduce en un motor de buacutesqueda(diacutegase por ejemplo Google) de tal manera que obtengamos una lista de posibles documentos A cada documento se le asigna un vector de teacuterminos con sus pesos derivados de un anaacutelisis TFIDF para despueacutes regresar las urlacutes con su respectivo vector de teacuterminos al Agente Filtrado RESULTADOS Este proyecto tiene la finalidad de desarrollar el software para un antivirus y un traductor Pero durante los estudios de anaacutelisis de estos dos productos se encontroacute que el software para la buacutesqueda de la informacioacuten tambieacuten puede ser implementada por medio de teacutecnicas de Inteligencia Artificial Para construir el software de aplicacioacuten para estas necesidades se usa la metodologiacutea de cascada Donde los pasos a seguir son el Anaacutelisis Disentildeo Pruebas Implementacioacuten y Mantenimiento Hasta este momento estamos en la etapa de pruebas de algunos moacutedulos de los tres productos IMPACTO El detector de intrusos en una red es de mucha importancia debido a que en la actualidad se han diseminado muchos virus que pueden ser transmitidos a traveacutes de intrusos Hasta la fecha el meacutetodo de proteccioacuten se hace de forma manual La finalidad de este software es automatizar la proteccioacuten El traductor de texto a voz tiene como primera aplicacioacuten el auxilio en la lectura de documentos para las personas invidentes o deacutebiles visuales una segunda aplicacioacuten es la comunicacioacuten con la computadora por medio del lenguaje natura El buscador de informacioacuten es un auxilio en la buacutesqueda de datos en una base de datos de conocimiento Ya que tambieacuten estaacuten proliferando las bibliotecas virtuales es una ayuda en la localizacioacuten de informacioacuten cientiacutefica y un preaacutembulo para un software de apoyo docente BIBLIOGRAFIacuteA [1] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

30

[2] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps[3] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[4] w3c en espantildeol OWL y Web Semaacutentica httpwwww3cesDivulgacionGuiasbrevesWebSemantica

[5] Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

[6] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[7] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[8] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[9] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[10] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[11] Laboratorios Googlehttplabsgooglecompapershtml

[12] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[13] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

[14] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

[15] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps [16] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[18] Trabajos de Agente en JADE http Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

31

[19] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[20] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[21] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[22] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[23] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[24] Laboratorios Googlehttplabsgooglecompapershtml

[25] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[26] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

  • En este reporte teacutecnico se presenta la descripcioacuten general anaacutelisis y estado actual de de los trabajos terminales TT2006135 TT20060097 y TT20060068 que tienen por titulo ldquoSistema prototipo de deteccioacuten de intrusos en la red utilizando agentes inteligentesrdquo rdquoProcesamiento digital de imaacutegenes para la conversioacuten de texto a vozrdquo y ldquoSistema de buacutesqueda de informacioacuten por conceptos en la webrdquo respectivamente Los prototipos que se obtendraacuten seraacuten un software robusto que se desarrollaraacuten con teacutecnicas de inteligencia artificial como Agentes inteligentes y Redes neuronales
  • Estructura de un sistema neuronal artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
    • Estado Del Arte
      • Estructura de un sistema neuronal artificial
        • Sistemas paralelos distribuidos y adaptativos
          • Modelo estaacutendar de neurona artificial
            • Sigmoidal logariacutetmica
              • Empleo del perceptroacuten para reconocer funciones loacutegicas
              • Algoritmo de aprendizaje del perceptroacuten
                • Objetivo General
                • Estado Del Arte
                • A continuacioacuten se mencionan algunos de ellos
                  • Buscador muacuteltiple Copernic 2001 Pro
                  • Lets Browse
                  • Agentes de Informacioacuten
                    • Marco Conceptual
                      • Clases y Propiedades
                      • El sistema de escritura de datos [type system]
                      • Clases y Recursos como Conjuntos y Elementos
                        • Ontologiacuteas en la Representacioacuten del Conocimiento
                          • LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES
                          • JADE (Java Agent DEvelopment Framework)
                            • Disentildeo
                            • Arquitectura
Page 5: INSTITUTO POLITÉCNICO NACIONALsappi.ipn.mx/cgpi/archivos_anexo/20061387_3286.pdf · La comunicación del hombre con la computadora por medio del lenguaje natural, es la finalidad

5

GNU puede usarse de forma gratuita y la totalidad de su coacutedigo es de libre distribucioacuten Utiliza para la deteccioacuten un conjunto basto de reglas y firmas de ataques La arquitectura de Snort comprende tres subsistemas primarios [5] El decodificador de paquetes el motor de deteccioacuten y el subsistema de alertas Utiliza la libreriacutea de captura de paquetes promiscua libcap JAM (Java Agents for Meta-Learning) no es propiamente un IDS pero dentro de una de sus orientaciones se usan agentes inteligentes distribuidos para aprender panoramas de fraudes e intrusiones en sistemas de coacutemputo [6] El conocimiento adquirido por los agentes distribuidos puede ser intercambiado y usado para entrenar a otros agentes para poder identificar ataques basados en el conocimiento compartido CAPIacuteTULO 2 Traductor La comunicacioacuten del hombre con la computadora por medio del lenguaje natural es la finalidad Para poder realizar esta tarea se debe hacer por partes Primero se construiraacute un traductor de texto a voz debido a que tiene aplicaciones como la de lecturas de texto para los invidentes La creacioacuten de sistemas computacionales que permitan agilizar las tareas que el hombre tiene que llevar a cabo se ha vuelto un tema de intereacutes general Gracias a los avances de la tecnologiacutea computacional se han desarrollado herramientas que facilitan la realizacioacuten de muacuteltiples tareas Este trabajo terminal estaacute enfocado al desarrollo de un sistema computacional que permita realizar la conversioacuten de texto impreso a voz

Las aplicaciones derivadas de dicho trabajo son muacuteltiples y se mencionan algunas de ellas en este capiacutetulo De igual manera se presenta un anaacutelisis del estado del arte referente a sistemas sintetizadores de voz se describiraacute la metodologiacutea de trabajo que se utilizaraacute durante el desarrollo del sistema se hablaraacute acerca del desarrollo de software orientado a objetos y por uacuteltimo se trataraacuten como antecedentes teoacutericos temas referentes a las aacutereas del conocimiento que se utilizaraacuten para implementar ciertas funcionalidades del sistema Estado Del Arte El desarrollo de la tecnologiacutea ayuda a que las personas con limitaciones fiacutesicas minimicen sus deficiencias tal es el caso de las personas invidentes En Meacutexico se estima una cifra de 3000000 (284) de personas que padecen de ceguera o alguna debilidad visual1 (p e dislexia) Hoy en diacutea existen aplicaciones enfocadas a ayudar a este tipo de personas tales como libros parlantes computadoras para invidentes pantallas para invidentes bastones y lentes para invidentes entre otros En Estados Unidos ya existe una tecnologiacutea llamada ldquolibros parlantesrdquo que consiste copiar a la computadora el texto contenido en un libro para su posterior sintetizacioacuten en voz Quicktionary de la empresa alemana WizCom Technologies es un pequentildeo escaacutener con forma de boliacutegrafo que lee y traduce a voz textos escritos2 (ver imagen 21)

1 httponcetv-ipnnetnoticiasindexphpmodulo=despliegueampdt_fecha=2004-12-01ampnumnota=15 (Estimacioacuten personas invidentes) httpwwwconapogobmx00cifras00indicadores00xls (Poblacioacuten de la Repuacuteblica Mexicana) 2 httpwwwwizcomtechcomWizcomproductsproduct_infoaspfid=176

6

En nuestro paiacutes el desarrollo de la tecnologiacutea no ha alcanzado niveles muy elevados lo cual implica tener que traerla del exterior y en consecuencia el costo de la misma se eleva Esto se convierte en un problema para los consumidores finales ya que al no tener los medios suficientes para adquirir alguna tecnologiacutea tampoco obtienen los beneficios que la misma podriacutea otorgarles La tecnologiacutea que seriacutea desarrollada por este proyecto facilitariacutea la vida de muchas personas (con debilidades visuales o no) y lo que es mejor a un costo accesible Auacuten no se ha calculado el precio que dicha tecnologiacutea implicariacutea pero estaacute claro que seriacutea menor que el de una tecnologiacutea importada

Imagen 21 ReadingPen ndash Quicktionary creado por WizCom Technologies A continuacioacuten en la tabla 1 se muestra una comparacioacuten entre las funcionalidades que se planea tenga nuestro sistema (CIMATEV) y las funcionalidades que actualmente tiene Quicktionary

Funcionalidad Quicktionary (Actualmente)

CIMATEV (Se espera)

Calidad de la voz en general Buena Buena3

Inteligibilidad de la voz Si Si

Naturalidad de la voz Si y No en algunos casos Si y No en algunos casos

Tipo de texto escaneable

Captura texto personalizado incluyendo texto en negrita

cursiva invertido y subrayado tomando como

base fuentes estaacutendar y

Captura texto

personalizado incluyendo texto en negrita cursiva y

subrayado tomando como base

Portaacutetil Si No (Software para PC) Si (Sistema miacutenimo)

3 Para la siacutentesis de voz se utilizaraacute la teacutecnica de siacutentesis por seleccioacuten de unidades (Foneacutetica acuacutestica)

7

Tamantildeo del texto escaneable 6-22 puntos

6-22 puntos (Sistema miacutenimo)

En el caso del software para PC se planea que el tamantildeo

del texto no sea un factor que limite su conversioacuten a

vozPronunciacioacuten de nombres propios Si Si

Pronunciacioacuten de siglas Si Si

Se mantiene el estilo del texto escaneado

No Devuelve ASCII regular4

No Inicialmente devolveraacute

ASCII regular (se pretende utilizar el

estaacutendar Unicode)

Identifica la presencia de imaacutegenes No

No (En general) Si (Soacutelo para libros que

sigan el estaacutendar del software)

Ergonomiacutea y peso Si 85 g (3 oz) Se planea que el sistema miacutenimo sea ergonoacutemico y

ademaacutes tenga un peso razonable5

Tabla 1 Comparacioacuten entre las funcionalidades de Quicktionary y las de CIMATEV METODOLOGIacuteA DE DESARROLLO Se reconoce que el software al igual que todos los sistemas complejos evoluciona con el tiempo Los requerimientos que el sistema tiene que cubrir a menudo cambian conforme a que el desarrollo proceda haciendo que el camino que lleva al producto final no sea real las estrictas fechas de entrega hacen que sea imposible finalizar un producto completo por lo que se debe introducir una versioacuten limitada para cumplir con los tiempos de entrega Bajo estas circunstancias los desarrolladores necesitan de un modelo de proceso que ha sido disentildeado para acomodarse a un producto que evolucione con el tiempo Redes Neuronales Artificiales La historia de las redes neuronales comenzariacutea con el cientiacutefico aragoneacutes Santiago Ramoacuten y Cajal descubridor de la estructura neuronal del sistema nervioso A finales del siglo XIX la teoriacutea reticularista que sosteniacutea que el sistema nervioso estaba formado por una red continua de fibras nerviosas era extendida Sin embargo tras antildeos de trabajo aplicando y perfeccionando la teacutecnica de tincioacuten de Golgi en 1888 Ramoacuten y Cajal demostroacute que el sistema nervioso en realidad estaba compuesto por una red de ceacutelulas individuales las neuronas ampliamente conectadas entre siacute Pero no soacutelo observoacute al 4 ASCII de 7 bits Se pueden representar hasta 128 (27) caracteres diferentes 5 El acceso que se tenga a la tecnologiacutea que permita cubrir estos requerimientos no funcionales (ergonomiacutea y peso) seraacute decisivo para la realizacioacuten de los mismos

8

microscopio los pequentildeos espacios vaciacuteos que separaban unas neuronas de otras sino que tambieacuten establecioacute que la informacioacuten fluye en la neurona desde las dendritas hacia el axoacuten atravesando el soma Este descubrimiento baacutesico para el desarrollo de las neuro-ciencias en el siglo XX causoacute en la eacutepoca una verdadera conmocioacuten en la forma de entender el sistema nervioso concedieacutendose el premio Nobel de medicina a Ramoacuten y Cajal en 1906 (compartido con Camilo Golgi)

Axoacuten

Dendritas

Soma

Figura 22 Estructura de una neurona bioloacutegica tiacutepica

Sinapsis

Obviamente gracias al advenimiento de la microscopiacutea electroacutenica y a la introduccioacuten de otras importantes teacutecnicas se ha llegado a profundizar mucho maacutes en el estudio de la neurona Se estima que el sistema nervioso contiene alrededor de cien mil millones de neuronas Vistas al microscopio este tipo de ceacutelulas pueden presentarse en muacuteltiples formas aunque muchas de ellas presentan un aspecto similar muy peculiar (ver figura 21) con un cuerpo celular o soma (de entre 10 y 80 micras de longitud) del que surge un denso aacuterbol de ramificaciones (aacuterbol dendriacutetico) compuesto por las dendritas y del cual parte una fibra tubular denominada axoacuten (cuya longitud variacutea desde las 100 micras hasta el metro en el caso de las neuronas motoras1) que tambieacuten se ramifica en su extremo final para conectarse con otras neuronas En las interneuronas el axoacuten enviacutea la informacioacuten a otras neuronas mientras que las neuronas motoras lo hacen directamente al muacutesculo Existe un tercer tipo de neuronas las receptoras o sensoras que en vez de recibir informacioacuten de otras neuronas la reciben directamente del exterior (tal sucede por ejemplo en los conos y bastones de la retina) Se calcula que una neurona del coacutertex cerebral recibe informacioacuten por teacutermino medio de unas 10000 neuronas (convergencia) y enviacutea impulsos a varios cientos de ellas (divergencia)

Estructura de un sistema neuronal artificial Los ANS (Artificial Neural Systems) imitan la estructura hardware del sistema nervioso con la intencioacuten de construir sistemas de procesamiento de la informacioacuten

1 Lo que constituye el nervio

9

paralelos distribuidos y adaptativos que puedan presentar un cierto comportamiento ldquointeligenterdquo

Sistemas paralelos distribuidos y adaptativos Los tres conceptos clave de los sistemas nerviosos que se pretende emular en los artificiales son paralelismo de caacutelculo memoria distribuida y adaptabilidad al entorno De esta manera podemos hablar de las redes neuronales como sistemas paralelos distribuidos y adaptativos El procesamiento paralelo resulta esencial como se deduce de un sencillo ejemplo Una computadora convencional tipo PC que trabaja secuencialmente instruccioacuten por instruccioacuten empleariacutea varios minutos en realizar sobre una imagen compuesta por digamos 256x256 pixeles una sencilla tarea de tratamiento en bajo nivel (acentuar contrastes extraer contornos ) mucho maacutes simple que la que lleva a cabo el sistema visual para reconocer una imagen Un sistema basado en 16 DSP2 operando en paralelo empleariacutea del orden de 20 ms en la misma tarea puesto que cada procesador podriacutea operar en paralelo sobre diferentes sectores de la imagen Por otra parte el cerebro tarda este mismo tiempo en preprocesar una imagen compuesta por millones de pixeles (los que representan los conos y bastones de la retina) extraer sus rasgos caracteriacutesticos analizarla e interpretarla Ninguacuten sistema creado por el hombre es capaz de realizar algo semejante La clave reside en que los millones de neuronas que intervienen en el procesamiento de la imagen trabajan en paralelo sobre la totalidad de la imagen Otro concepto importante que aparece en el cerebro es el de memoria distribuida Mientras que en un computador la informacioacuten ocupa posiciones de memoria bien definidas en los sistemas neuronales se encuentra distribuida por las sinapsis de la red de modo que si una sinapsis resulta dantildeada no perdemos maacutes que una parte muy pequentildea de la informacioacuten Ademaacutes los sistemas neuronales bioloacutegicos son redundantes de modo que muchas neuronas y sinapsis pueden realizar un papel similar en definitiva el sistema resulta tolerante a fallos El uacuteltimo concepto fundamental es el de adaptabilidad Los ANS se adaptan faacutecilmente al entorno modificando sus sinapsis (y mediante otros mecanismos tambieacuten) y aprenden de la experiencia pudiendo generalizar conceptos a partir de casos particulares En el campo de las redes neuronales se llamaraacute a esta propiedad generalizacioacuten a partir de ejemplos Formalmente y desde el punto de vista del grupo PDP (Parallel Distributed Processing Reseach Group de la Universidad de California en San Diego) un sistema neuronal o conexionista estaacute compuesto por los siguientes elementos

bull Un conjunto de procesadores elementales o neuronas artificiales bull Un patroacuten de conectividad o arquitectura bull Una dinaacutemica de activaciones bull Una regla o dinaacutemica de aprendizaje bull El entorno donde opera

2 Digital Signal Processor

10

Modelo estaacutendar de neurona artificial Se denomina procesador elemental o neurona a un dispositivo simple de caacutelculo que a partir de un vector de entrada procedente del exterior o de otras neuronas proporciona una uacutenica respuesta o salida En este apartado se trataraacute el modelo denominado neurona estaacutendar (ver figura 31) que constituye un caso particular de un modelo maacutes complejo llamado modelo PDP El modelo estaacutendar considera que la regla de propagacioacuten es la suma ponderada y que la funcioacuten de salida es la identidad De esta forma la neurona estaacutendar etiquetada como i consiste en

bull Un conjunto de entradas Xj(t) y pesos sinaacutepticos Wij que representan la intensidad de interaccioacuten entre cada neurona presinaacuteptica j y cada neurona postsinaacuteptica i (ver figura 41)

bull Una regla de propagacioacuten σ(Wij Xj(t)) que proporciona el valor del potencial postsinaacuteptico hi(t)= σ(Wij Xj(t))=sumWijXj de la neurona i en funcioacuten de sus pesos y entradas

bull Una funcioacuten de activacioacuten Yi(t)=fi(hi(t)) que representa simultaacuteneamente la salida de la neurona i y su estado de activacioacuten (en el caso del modelo PDP las funciones de activacioacuten y de salida son tratadas por separado)

Con frecuencia se antildeade al conjunto de pesos de la neurona un paraacutemetro adicional θi que se denominaraacute umbral1 que se resta del potencial postsinaacuteptico por lo que el argumento de la funcioacuten de activacioacuten queda

sumj WijXj - θi

lo que representa antildeadir un grado de libertad adicional a la neurona En el caso de nodos de respuesta todo-nada este paraacutemetro representaraacute el umbral de disparo de la neurona es decir el nivel miacutenimo que debe alcanzar el potencial postsinaacuteptico (o potencial de membrana) para que la neurona se dispare o active En conclusioacuten el modelo de neurona denominado estaacutendar queda

Yi(t)=fi (sumj WijXj - θi)

Ahora bien si se hace que los iacutendices i y j comiencen en 0 se puede definir Wi0= θi y X0=-1 (constante) con lo que el potencial postsinaacuteptico (potencial local o de membrana) se obtiene realizando la suma desde j=0

Yi(t)=fi (sumj=012n WijXj)

1 En algunos modelos es threshold es decir ldquoumbralrdquo y en otros bias que no tiene una traduccioacuten clara en este caso

11

sum f ( )

Axoacuten Yi

Wi1

Wi2

Wij

Win

θi-1

X1

X2

Habiendo definido de esta manera la neurona estaacutendar basta con establecer la forma de la funcioacuten de activacioacuten para determinarla por completo A continuacioacuten se muestra una tabla con las funciones de activacioacuten maacutes utilizadas

Funcioacuten Relacioacuten entradasalida Graacutefica

Escaloacuten y=0 nlt0 y=1 nge0

Escaloacuten simeacutetrica y= -1 nlt0 y=+1 nge0

Lineal Identidad

y=n

Lineal saturada y=0 nlt0

y=n 0lenle1 y=1 ngt1

Lineal saturada simeacutetrica

y=-1 nlt-1 y=n -1lenle1

y=1 ngt1

Sigmoidal logariacutetmica

ney minus+=

11

Xj

Xn

Entradas

Dendritas

Sinapsis

Cuerpo celular

Salida

Umbral

Figura 23 Modelo de neurona estaacutendar

12

Tangente

hiperboacutelica

nn

nn

eeeey minus

minus

+minus

=

Lineal positiva y=0 nlt0 y=n 0len

Competitiva a=1 neurona con maacutex n

a=0 todas las demaacutes

C

Tabla 2 Funciones de activacioacuten habituales (se han omitido algunas constantes)

Arquitecturas de redes neuronales Se denomina arquitectura a la topologiacutea estructura o patroacuten de conexionado de una red neuronal En un ANS los nodos se conectan por medio de sinapsis esta estructura de conexiones sinaacutepticas determina el comportamiento de la red Las conexiones sinaacutepticas son direccionales es decir la informacioacuten soacutelo puede propagarse en un uacutenico sentido (desde la neurona presinaacuteptica a la postsinaacuteptica ver figura 24)

j

i

YjXj

Wij

YiNeurona presinaacuteptica

Neurona postsinaacuteptica

Figura 24 Interaccioacuten entre una neurona presinaacuteptica y otra postsinaacuteptica

En general las neuronas se suelen agrupar en unidades estructurales que denominaremos capas Las neuronas de una capa pueden agruparse a su vez formando grupos neuronales (clusters) Dentro de un grupo o de una capa si no existe este tipo de agrupacioacuten las neuronas suelen ser del mismo tipo Finalmente el conjunto de una o maacutes capas constituye la red neuronal

Se distinguen tres tipos de capas de entrada de salida y ocultas Una capa de entrada o sensorial estaacute compuesta por neuronas que reciben datos o sentildeales procedentes del entorno (por ejemplo proporcionado por sensores) Una capa de salida es aquella cuyas neuronas proporcionan la respuesta de la red neuronal (sus neuronas pueden estar conectadas a efectores) Una capa oculta es aquella que no tiene una conexioacuten directa

13

con el entorno es decir que no se conecta directamente ni a organos sensores o efectores Esta capa proporciona a la red neuronal grados de libertad adicionales gracias a los cuales puede encontrar representaciones internas correspondientes a determinados rasgos del entorno proporcionando una mayor riqueza computacional (ver figura 25)

Informacioacuten Capa de salida

(efectora) Capa oculta Capa de entrada (procesamiento) (sensorial)

Figura 25 Arquitectura unidireccional de tres capas de entrada oculta y de salida

Las conexiones entre las neuronas pueden ser excitadoras o inhibidoras un peso sinaacuteptico negativo define una conexioacuten inhibidora mientras uno positivo determina una conexioacuten excitadora Habitualmente no se suele definir una conexioacuten como de un tipo u otro sino que por medio del aprendizaje se obtiene un valor para el peso que incluye signo y magnitud

El perceptroacuten simple Este modelo neuronal fue introducido por Rosenblatt a finales de los antildeos cincuenta Dicha estructura se inspira en las primeras etapas de procesamiento de los sistemas sensoriales de los animales (por ejemplo la visioacuten) en los cuales la infomacioacuten va atravesando sucesivas capas de neuronas que realizan un procesamiento progresivamente de maacutes alto nivel Un perceptroacuten simple es un modelo unidireccional compuesto por dos capas de neuronas una sensorial o de entrada y otra de salida A continuacioacuten se muestra en la figura 26 su representacioacuten y la funcion de transferencia que utiliza

Figura 26 a) Las neuronas de entrada no realizan ninguacuten coacutemputo uacutenicamente enviacutean la informacioacuten a las neuronas de salida b) la funcioacuten de activacioacuten de las neuronas de la capa de salida es de tipo escaloacuten

Capa de entrada

Capa de salida

f(x) x

Funcioacuten escaloacuten

a) b)

14

El perceptroacuten puede utilizarse tanto como clasificador como para la representacioacuten de funciones booleanas pues su neurona es esencialmente de tipo MacCulloch-Pitts es decir de salida binaria La importancia histoacuterica del perceptroacuten radica en su caraacutecter de dispositivo entrenable ya que el algoritmo de aprendizaje que desarrollo Rosenblatt permite determinar automaacuteticamente los pesos sinaacutepticos que clasifican un conjunto de patrones a partir de un conjunto de ejemplos etiquetados (a esto se le llama red neuronal supervisada y el perceptron simple es de este tipo) Ahora se mostraraacute que un perceptroacuten permite realizar tareas de clasificacioacuten Cada neurona del perceptroacuten representa una determinada clase de modo que dado un vetor de entrada una cierta neurona responde con 0 si no pertenece a la clase que representa y con un 1 si siacute pertenece Es faacutecil ver que una neurona tipo perceptroacuten solamente permite discriminar entre dos clases linealmente separables (es decir cuyas regiones de decisioacuten pueden ser separadas mediante una uacutenica condicioacuten lineal o hiperplano que es una liacutenea recta si trabajamos en dos dimensiones) Sea una neurona tipo perceptroacuten de dos entradas x1 y x2 con salida y cuya operacioacuten se define por lo tanto como

y = H(w1x1+w2x2 - ө) o bien 1 si w1x1+w2x2 geӨ y = 0 si w1x1+w2x2 ltӨ

Si consideramos x1 y x2 situadas sobre los ejes de abscisas y ordenadas en el plano la condicioacuten

w1x1+ w2x2 -Ө = 0 rarr x2 = - (w1 w2) x1 + Ө w2 representa una recta (hiperplano si trabajamos con n entradas) que divide el plano en dos regiones que son aquellas para las que la neurona proporciona una salida 0 o 1 respectivamente como se muestra en la figura 27

x x

x x x

x x x

x

x

oo

oo

o o

o

X1

X2

Regioacuten w1x1+w2x2 geӨ Regioacuten w1x1+w2x2 ltӨ

Figura 27 Una neurona tipo perceptroacuten representa un discriminador lineal que separa dos regiones en el espacio que representan dos diferentes clases de patrones En esta graacutefica x = lsquo1rsquo y o = lsquo0rsquo

15

Empleo del perceptroacuten para reconocer funciones loacutegicas -Funcion linealmente separable Consideremos la funcioacuten loacutegica NAND2 (AND negada de dos entradas) que representamos sobre un plano en la graacutefica 3 que se presenta en seguida

x (10) o (11)

x (00)

x (01) X1

X2

Figura 28 Funcioacuten loacutegica NAND de dos entradas En la graacutefica x = lsquo1rsquo y o = lsquo0rsquo

Se puede ver que en este caso existen paraacutemetros w1 w2 y Ө que permiten una recta que separa perfectamente las regiones correspondientes a los valores loacutegicos 0 y 1 Y por lo tanto se dice que la funcioacuten loacutegica NAND es linealmente separable -Funcioacuten no separable linealmente

Ahora consideremos la funcioacuten loacutegica or-exclusivo (XOR) y representandola en un plano en la figura 29

x (10) o (11)

o (00)

x (01) X1

X2

Figura 29 Funcioacuten loacutegica XOR de dos entradas que no es linealmente separable

16

Al ser XOR no linealmente separable se dice que ldquola clase de funciones no separables linealmente no pueden ser representadas por un perceptroacuten simplerdquo El perceptroacuten presenta serias limitaciones pues solamente puede representar funciones linealmentes separables Y aunque pueda aprender automaacuteticamente a representar complejas funciones booleanas o resolver con eacutexito muchos problemas de clasificacioacuten con un cierto algoritmo en ocasiones fallara draacutesticamente Minsky (que es uno de los padres de la inteligencia artificial) y Papera estudiaron en profundidad el perceptroacuten y en 1969 publicaron un exhaustivo trabajo donde exhibian las limitantes del modelo en lo que resultoacute decisivo para que muchos de los recursos que se destinaban a su investigacioacuten se desviara a otras aacutereas Una solucioacuten para las limitantes del perceptroacuten simple puede consistir en incluir maacutes capas en la arquitectura con lo que tendremos un perceptroacuten multicapa A finales de los antildeos sesenta ya se apuntaba como solucioacuten a las limitaciones del perceptroacuten introducir capas ocultas pero el problema estaba en que no se teniacutea un algoritmo de aprendizaje para el perceptroacuten multicapa (con capas ocultas) Dicho algoritmo fue propuesto por Paul Verbos alrededor de 1974 pero fue preciso hasta mediados de los ochenta cuando el grupo PDP redescubriera un algoritmo similar al cual denominaron Back-Propagation o BP y dieran a conocer a la comunidad internacional su gran potencial para la resolucioacuten de problemas praacutecticos

Algoritmo de aprendizaje del perceptroacuten El del perceptroacuten es un algoritmo de aprendizaje de los denominados por correccion de errores Los algoritmos de este tipo ajustan los pesos en proporcioacuten a la diferencia existente entre la salida actual de la red y la salida deseada con el objetivo de minimizar el error actual de la red Definicioacuten del algoritmo de aprendizaje Sea un conjunto de p patrones xn n=1hellipp con sus salidas deseadas tn Tanto las entradas como las salidas solamente pueden tomar los valores -1 o 1 Se tiene una arquitectura de perceptroacuten simple con pesos iniciales aleatorios y se requiere que clasifique correctamente todos los patrones del conjunto de aprendizaje (solo si son linealmente separables) Ahora actuaremos del siguiente modo ante la presentacioacuten del patron n-eacutesimo si la respuesta que proporciona el perceptroacuten es correcta no actualizaremos los pesos si es incorrecta los modificaremos seguacuten la regla de Hebb aplicada a nuestro caso Primero se muestra la regla de Hebb y despueacutes la regla modificada para el perceptroacuten simple Regla de Hebb

∆wij = ξyixjDonde

17

o wij corresponde a los pesos de una entrada j por la salida i de la neurona

o ξ se denomina ritmo de aprendizaje que su valor suele estar entre 1 y 0 Regla modificada para el perceptroacuten simple

2ξtnixnj si yn

ine tni ∆wn

ij(t)= 0 si yn

i= tni que puede reescribirse del siguiete modo que es la forma usual de expresar la regla del perceptroacuten

∆wnij(t)= 2ξ(tni - yn

i)xnj

Es importante mencionar que el proceso de aprendizaje es iterativo se

parte de una configuracioacuten sinaacuteptica de partida (normalmente de pesos pequentildeos aleatorios) y se presentan una y otra vez los patrones para que los pesos se ajusten iterativamente seguacuten forma usual de la regla del perceptroacuten hasta que todos queden bien clasificados El hiperplano que establece el liacutemite entre dos clases se desplaza lentamente hasta conseguir separarlas por completo (si es posible) como se ve en la figura 210

t= 115

x x

x x x

x x x

x

x

o

o o

o o o o

o

o o

o

o

o

o

o

o

o

X2

t= 21

t= 0 t= 4

X1

Figura 210 Regiones de decisioacuten que establece iterativamente el perceptroacuten durante el aprendizaje (en la iteracioacuten 115 ha conseguido separar ya las dos clases)

Avances En este capiacutetulo se haraacute una descripcioacuten de los avances que se han hecho hasta el momento Se hablaraacute acerca del entrenamiento de la red neuronal del sistema el reconocimiento de caracteres tanto con la red neuronal como con los clasificadores ya expuestos y el tratamiento de imaacutegenes para eliminar el ruido tipo sal y pimienta Reconocimiento de caracteres Se han hecho avances acerca del reconocimiento de caracteres utilizando redes neuronales y clasificadores diversos A continuacioacuten se exponen dichos avances

Entrenamiento de la red neuronal Para entrenar la red neuronal se utilizoacute el algoritmo de retropropagacioacuten expuesto en el capiacutetulo 1 Se disentildeoacute un programa en Java que permite entrenar una red neuronal de 3

18

capas La cantidad de clases a discriminar es variable y para este caso se utilizoacute una matriz de 5x8 es decir se tomaron 40 rasgos de entrada

Utilizando la red neuronal para reconocer caracteres A continuacioacuten se muestra en la imagen 211 el programa disentildeado en Java que permite discriminar un nuacutemero variable de clases Para este caso se eligioacute discriminar entre los diacutegitos del 0 al 9 El programa para reconocer los 128 caracteres referentes al sintetizador de voz tendraacute una interfaz similar con la diferencia de que la rejilla para ingresar el patroacuten a reconocer seraacute de 20x20 El programa mostrado fue programado tanto para entrenar la red como para reconocer los diacutegitos Se puede elegir entre los entrenamientos hechos para probar la efectividad de la red Las estadiacutesticas del entrenamiento elegido se muestran en la parte inferior de la pantalla

Imagen 211 Reconocimiento de los diacutegitos del 0 al 9 utilizando una red neuronal de 3 capas

19

Utilizando los clasificadores para reconocer caracteres Dentro de las teacutecnicas de reconocimiento de patrones existen diferentes clasificadores que nos permiten a partir de un conjunto de entrenamiento (en eacuteste caso un conjunto de tipos de letras que deseamos reconocer) saber a queacute clase pertenece un patroacuten de prueba que se introduce

Imagen 212 Un ejemplo de un clasificador KNN con un valor de K=3 y usando la meacutetrica City-Block para clasificar el patroacuten de prueba pruebabmp entre tres clases

En la imagen 212 se muestra como se puede clasificar un caraacutecter escalado de la imagen prueba 4bmp dentro de las tres clases existentes Se observa que si se puede clasificar este tipo de patrones pero veamos un ejemplo donde no sea posible clasificar un patroacuten de prueba y por queacute

Imagen 213 Un ejemplo de un clasificador KNN con un valor de K=5 y usando la meacutetrica Euclidiana para clasificar el patroacuten de prueba prueb3bmp entre tres clases El patroacuten no fue reconocido correctamente

20

Ahora como se observa no se pudo clasificar correctamente el patroacuten de prueba ya que pertenece claramente a la clase 3 pero por el clasificador que usamos o por el nuacutemero de K-vecinos o por el tipo de meacutetrica usada sucedioacute que en su mayoriacutea eran de la clase 2 y no de la clase 3 Tal vez si se hubiera elegido un valor de K menor a 5 tendriacutea maacutes posibilidades de clasificar correctamente Finalmente usar este tipo de teacutecnicas para reconocer caracteres es muy bueno ya que permite reconocer letras que se encuentran rotadas escaladas o trasladadas por una teacutecnica matemaacutetica llamada Momentos de Hu pero al tener una situacioacuten donde la imagen de prueba se encuentra exactamente a la misma distancia de dos o mas clases se crea el problema de no saber a que clase clasificar dicho patroacuten

Tratamiento digital de las imaacutegenes a capturar A continuacioacuten se muestra en la imagen 214 un programa que se codificoacute en C++ Builder y permite tratar digitalmente imaacutegenes BMP con la finalidad de eliminar el ruido pasarlas a escala de grises y binarizarlas El programa es capaz de generar histogramas de color

Imagen 214 Programa para tratar imaacutegenes digitalmente

21

CAPIacuteTULO 3 Buscadores La informacioacuten almacenada tendriacutea poco valor si no podemos consultarla buscar los datos en una base de datos o en muchas bases de datos que tienen conexioacuten por medio de la web es lo que nos permite explotar la informacioacuten Sin embargo la buacutesqueda seraacute eficiente si la respuesta del buscador es lo maacutes especifica o cercana a los temas solicitados Por lo que el software con aplicacioacuten de buscador es importante desarrollar un proceso para su creacioacuten Objetivo General Desarrollar un sistema de buacutesqueda de informacioacuten por conceptos en la Web basado en agentes inteligentes mediante la aplicacioacuten de ontologiacuteas Estado Del Arte Existen algunos sistemas que proporcionan buacutesquedas de informacioacuten basados en algunas de las tecnologiacuteas que vamos a utilizar Es habitual encontrar este tipo de buscadores y algunos otros similares bautizados como Megabuscadores o Multibuscadores a pesar de que estos teacuterminos no sean los maacutes idoacuteneos por lo que al hablar de este tipo de sistemas podemos referirlos como Buscadores Muacuteltiples en virtud de las caracteriacutesticas de su funcionamiento A continuacioacuten se mencionan algunos de ellos

Buscador muacuteltiple Copernic 2001 Pro Copernici producto de la empresa canadiense Copernic Technologies es un agente buscador que transfiere una ecuacioacuten de buacutesqueda a un conjunto de buscadores de manera simultaacutenea recupera las referencias pertinentes y las ordena seguacuten el grado medio de relevancia obtenido de cada uno de los buscadores La empresa creadora de Copernic se constituyoacute en 1996 con el propoacutesito de desarrollar soluciones innovadoras en tecnologiacuteas de agentes de buacutesqueda para conseguir un acceso y una gestioacuten eficientes de la gran masa de informacioacuten presente en Internet El programa se desarrolloacute el antildeo siguiente en una versioacuten experimental y se puso al alcance del puacuteblico en noviembre de 1998 Desde entonces se han lanzado versiones con elementos nuevos la mayoriacutea de los cuales no obstante soacutelo estaacuten disponibles en las ediciones comerciales La edicioacuten gratuita ofrece los servicios baacutesicos de consulta y con la intencioacuten de persuadir a los posibles compradores de las ediciones comerciales da una idea bastante aproximada de las posibilidades del programa completo

Lets Browse Como en otros medios (por ejemplo la televisioacuten) la navegacioacuten en Internet puede ser realizada por grupos de gente [Lieberman et al 1997] Lets browse muestra como un agente puede asistir a un grupo de gente en su navegacioacuten sugirieacutendoles materiales nuevos que puedan ser de intereacutes comuacuten entre ellos

Este trabajo es una extensioacuten del agente Letizia [Lieberman 1995] el cual selecciona paacuteginas de Web Letizia inicia una buacutesqueda por niveles visita las ligas que encuentra a partir de la paacutegina que su usuario esteacute revisando y selecciona aquellas que sean similares a los intereses que ha aprendido de su usuario (observando su navegacioacuten) Posteriormente muestra sus recomendaciones en un canal de navegacioacuten

22

El trabajo del agente consiste en seleccionar de la misma forma que Letizia lo hace aquellas paacuteginas que mejor satisfagan los intereses de todos los participantes Las caracteriacutesticas de Letrsquos browse son la deteccioacuten automaacutetica de la presencia de usuarios navegacioacuten automaacutetica (en canal de navegacioacuten) el despliege dinaacutemico de las preferencias de los usuarios y la explicacioacuten de las recomendaciones Permite ademaacutes revisar las paacuteginas desde el punto de vista de otra persona (con sus preferencias) y asiacute estimar cual seriacutea su posible opinioacuten acerca de dicha paacutegina auacuten cuando aquella persona no la haya revisado anteriormente

Agentes de Informacioacuten Un agente de informacioacuteiin es utilizado para organizar los espacios de informacioacuten del usuario y facilitar su explotacioacuten En el WWW (World Wide Web) se estaacuten implementando diversos agentes de informacioacuten El Agente Letizia [Lieberman 1995] que existe en un navegador de Web anticipa queacute artiacuteculos pueden ser de intereacutes para el usuario basaacutendose en las conductas pasadas del usuario Las paacuteginas que cree son de intereacutes del usuario Letizia las despliega en una ventana de sugerencias por unos instantes Marco Conceptual Actualmente para poder hacer la consulta de cualquier tipo de informacioacuten en Internet la mayoriacutea de las personas recurre a los motores de buacutesquedas conocidos como Google Yahoo Altavista por mencionar algunos siendo que estos usan diferentes meacutetodos para llegar a su objetivo podemos darnos cuenta que arrojan distintos resultados uno de otro que en el mejor de los casos coinciden en un porcentaje muy poco satisfactorio con la buacutesqueda en cuestioacuten con lo que concluimos que una respuesta a esta falta de precisioacuten en cuanto a la buacutesqueda de un tema en especial es mejor la buacutesqueda de conceptos lo cual permite al usuario acercarse maacutes al tema de su intereacutes Es importante enfocar nuestra solucioacuten apoyaacutendonos en un motor de buacutesqueda y aplicando herramientas como los Agentes que nos permitan recopilar la informacioacuten maacutes precisa de cada buacutesqueda a traveacutes de un algoritmo propio obteniendo resultados maacutes cercanos a los deseados ya que estos provienen de muacuteltiples documentos ahorrando tiempo y ganando precisioacuten a la vez Muy frecuentemente encontramos que cuando se trata de buacutesquedas en Internet a traveacutes de los motores de buacutesqueda populares los usuarios hacen consultas de diversas paginas y es muy difiacutecil llevar una lista de todos los sitios visitados o de aquellos que nos mostraron la informacioacuten maacutes adecuada nuestro sistema es capaz de registrar dentro de una base de datos un iacutendice de todos los sitios que se obtuvieron en la buacutesqueda de un tema o concepto con lo que el usuario no tendraacute que realizar una ldquonuevardquo buacutesqueda de un tema antes consultado sino que tendraacute a la mano todos los sitios que arrojoacute la primera buacutesqueda Marco teoacuterico

Descripcioacuten de RDF

El Resource Description Frameworiiik (RDF) es un fundamento para el procesamiento de metadatos proporciona interoperabilidad entre aplicaciones que intercambian informacioacuten legible por maacutequina en la Web RDF utiliza XML para intercambiar descripciones de recursos Web pero los recursos descritos pueden ser de cualquier tipo

23

incluyendo recursos XML y no-XML RDF resalta las facilidades para hacer posible el procesamiento automaacutetico de los recursos Web RDF puede utilizarse en diferentes aacutereas de aplicacioacuten por ejemplo en la recuperacioacuten de recursos para proporcionar mejores capacidades a los motores de buacutesqueda en catalogacioacuten para la descripcioacuten de contenido y relaciones de contenido accesibles en un sitio Web particular en una paacutegina o biblioteca digital a traveacutes de agentes de software inteligente para facilitar que el conocimiento se comparta e intercambie en la valoracioacuten de contenido en la descripcioacuten de colecciones de paacuteginas que representan un documento loacutegico individual para la descripcioacuten de los derechos de propiedad intelectual de las paacuteginas Web y para expresar las preferencias de privacidad de un usuario asiacute como las poliacuteticas de privacidad de un sitio Web Las descripciones utilizadas por estas aplicaciones pueden modelarse como relaciones entre recursos Web El modelo de datos de RDF tal y como se especifica en RDFMS define un modelo simple para describir las relaciones entre recursos en teacuterminos de propiedades y valores designadas Las propiedades RDF pueden entenderse como atributos de un recurso y en este sentido corresponden con los tradicionales pares atributo-valor Las propiedades RDF tambieacuten representa relaciones entre recursos De esta forma el modelo de datos RDF puede parecer un diagrama entidad-relacioacuten El modelo de datos RDF sin embargo no proporciona mecanismos para declarar estas propiedades ni proporcionan ninguacuten mecanismo para definir las relaciones entre estas propiedades y otros recursos Este es el papel [la funcioacuten] del Esquema RDF

Las comunidades de descripcioacuten de recursos necesitan la habilidad para decir ciertas cosas sobre ciertas clases de recursos Para describir recursos bibliograacuteficos por ejemplo son habituales atributos descriptivos tales como autor [author] tiacutetulo [title] y materia [subject] Para la certificacioacuten digital se necesitan muchas veces atributos tales como esquema simple de deteccioacuten de errores [checksum] y autorizacioacuten [authorization] La declaracioacuten de estas propiedades (atributos) y su semaacutentica correspondiente se definen en el contexto de RDF como un Esquema RDF Un esquema define no soacutelo las propiedades de un recurso (ej tiacutetulo autor materia tamantildeo color etc) sino que puede tambieacuten definir los tipos de recursos que se describiraacuten (libros paacuteginas Web personas empresas etc)

Los Esquemas RDF podriacutean contrastarse con las Definiciones del Tipo de Documentos (DTDs) de XML y los Esquemas XML A diferencia de una DTD o Esquema XML que dan restricciones especiacuteficas en la estructura de un documento XML un Esquema RDF proporciona informacioacuten sobre la interpretacioacuten de una sentencia dada en un modelo de datos RDF Mientras un Esquema XML puede utilizarse para validar la sintaxis de una expresioacuten RDFXML un esquema sintaacutectico soacutelo no es suficiente para los objetivos de RDF Los Esquemas RDF pueden tambieacuten especificar restricciones que deben seguirse por estos modelos de datos

Clases y Propiedades Un Esquema RDF se expresa a traveacutes de un modelo de datos descrito en la especificacioacuten del Modelo y la Sintaxis RDF [RDFMS] El lenguaje de descripcioacuten del esquema es un simple conjunto de recursos y propiedades definidos por la Especificacioacuten del Esquema RDF y la parte impliacutecita de cada modelo RDF que utiliza la mecaacutenica del esquema RDF

24

El sistema de escritura de datos [type system] El Esquema RDF definido en esta especificacioacuten es una coleccioacuten de recursos RDF que puede utilizarse para describir propiedades de otros recursos RDF (incluyendo propiedades) que definene vocabularios RDF de aplicacioacuten especiacutefica El nuacutecleo del vocabulario del esquema se define en un namespace denominado aquiacute informalmente rdfs e identificado por el URI de referencia httpwwww3org200001rdf-schema Esta especificacioacuten utiliza tambieacuten el prefijo rdf para referirse al namespace principal RDF httpwwww3org19990222-rdf-syntax-ns

Como se describe en la especificacioacuten del modelo y la sintaxis [RDFMS] los recursos pueden ser objetos especiacuteficos de una categoriacutea [instances] de una o maacutes clases esto se indica con la propiedad rdftype Las clases se organizan muchas veces de una forma jeraacuterquica por ejemplo la clase Dog [perro] podriacutea considerarse subclase de Mammal [mamiacutefero] que a su vez es una subclase de Animal dando a entender que cualquier recurso que esteacute en rdftype Dog se considera tambieacuten que estaacute en rdftype AnimalEsta especificacioacuten describe una propiedad rdfssubClassOf para indicar dichas relaciones entre clases

El sistema de escritura [type system] del Esquema RDF es similar al sistema de los lenguajes de programacioacuten orientados a objetos tales como Java Sin embargo RDF se diferencia de muchos de esos sistemas en que en lugar de definir una clase en teacuterminos de propiedades sus objetos especiacuteficos de una categoriacutea [instances] pueden tener un esquema RDF que definiraacute las propiedades en teacuterminos de clases de recurso a los que se aplican Este es el papel de las restricciones rdfsdomain y de rdfsrange

Por ejemplo podemos definir que la propiedad author tenga un dominio de Book y un alcance de Literal mientras que un sistema OO claacutesico podriacutea definir tiacutepicamente una clase Book con un atributo denominado author de tipo Literal

Clases y Recursos como Conjuntos y Elementos El siguiente esquema ilustra el concepto de clase subclase y recurso Una clase se describe por un rectaacutengulo redondeado un recurso se describe por un punto grande En la figura abajo se han dibujado flechas desde un recurso a una clase que define Una subclase se presenta en un rectaacutengulo redondeado (la subclase) completamente incluido en otro (la superclase) Si un recurso estaacute dentro de una clase entonces existe una propiedad rdftype o expliacutecita o impliacutecita de aquel recurso cuyo valor es un recurso que define la clase que contiene (Estas propiedades se muestran como arcos en la representacioacuten graacutefica directamente etiquetada en el Esquema 2) El recurso RDF representado en el esquema 1 se describe tanto en el resto de esta especificacioacuten como en la especificacioacuten del Modelo y Sintaxis RDF

Ontologiacuteas en la Representacioacuten del Conocimiento En estos uacuteltimos antildeos se incrementoacute la cantidad de informacioacuten en la Internet lo cual motivoacute el incremento de la complejidad y la diversidad de la informacioacuten Esto tambieacuten motivoacute el intereacutes de automatizar muchas actividades que tradicionalmente se realizan en forma manual La principal motivacioacuten en el uso de las ontologiacuteas es que permiten compartir y reutilizar conocimiento en un dominio De ahiacute el intereacutes de muchos

25

investigadores en el aacuterea de inteligencia artificial para tratar de aplicar las ontologiacuteas en la representacioacuten de conocimiento Las ontologiacuteas son un elemento importante en la Web Semaacutentica y es un teacutermino filosoacutefico que trata sobre la naturaleza de la existencia y los tipos de objetos que existen Tambieacuten la ontologiacutea se puede definir como una especificacioacuten expliacutecita de una conceptualizacioacuten compartida La conceptualizacioacuten se refiere a un modelo abstracto de un fenoacutemeno en el mundo en donde se tienen que identificar los conceptos relevantes de este fenoacutemeno El teacutermino expliacutecito significa queacute tipos de conceptos son usados y las restricciones de estos conceptos Y por uacuteltimo el teacutermino compartido se refiere a que las ontologiacuteas capturan conocimiento que es aceptado por todos y no es individual de un grupo Actualmente se les estaacute dando maacutes uso a las ontologiacuteas en el campo de la Inteligencia Artificial En este campo se define la ontologiacutea como una descripcioacuten formal y expliacutecita de conceptos de un dominio (classes a las que nos referiremos como conceptos) propiedades de cada concepto las cuales describen las caracteriacutesticas y atributos de los conceptos (slots llamados tambieacuten como propiedades o roles) y restricciones de las propiedades (facets conocidas como restricciones) La informacioacuten que es representada a traveacutes de los lenguajes semaacutenticos puede ser compartida entre aplicaciones como los agentes

OWL y Web Semaacutentica

La Web Semaacutentica es una Web extendida dotada de mayor significado en la que cualquier usuario en Internet podraacute encontrar respuestas a sus preguntas de forma maacutes raacutepida y sencilla gracias a una informacioacuten mejor definida Al dotar a la Web de maacutes significado y por lo tanto de maacutes semaacutentica se pueden obtener soluciones a problemas habituales en la buacutesqueda de informacioacuten gracias a la utilizacioacuten de una infraestructura comuacuten mediante la cual es posible compartir procesar y transferir informacioacuten de forma sencilla Esta Web extendida y basada en el significado se apoya en lenguajes universales que resuelven los problemas ocasionados por una Web carente de semaacutentica en la que en ocasiones el acceso a la informacioacuten se convierte en una tarea difiacutecil y frustrante

LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES La comunicacioacuten es uno de los aspectos importantes dentro de una comunidad de agentes la cual permitiraacute compartir y enviar mensajes entre agentes Los meacutetodos tradicionales permiten la comunicacioacuten entre los agentes pero eacutestos no son suficientes para lograr un comportamiento social entre los agentes para ello es necesario que los mensajes tengan un significado y contenido semaacutentico Se han desarrollado varios lenguajes los cuales son usados para el enviacuteo de mensajes a continuacioacuten hablaremos de dos de ellos KQML Knowledge Query and Manipulation Language (KQML) es uno de los lenguajes que nos provee la estructura para enviar mensajes entre agentes Dentro de sus principales caracteriacutesticas tenemos que es independiente de la sintaxis del contenido y la ontologiacutea

26

que se utilizaraacute Asiacute mismo es independiente del mecanismo de transporte (TCPIP SMTP IIOP etc) e independiente del contenido del lenguaje (KIF SQL STEP Prolog etc) KQML fue desarrollado por el consorcio DARPA Knowledge Sharing Effort (KSE) cuyo principal objetivo fue desarrollar una base tecnoloacutegica para construir en forma progresiva sistemas cada vez con maacutes funcionalidad complejidad y amplitud KQML provee un lenguaje y un protocolo para intercambiar informacioacuten entre agentes inteligentes y para lograr este intercambio se tiene que compartir una sintaxis y una semaacutentica comuacuten para que los mensajes sean entendidos por los agentes Al lenguaje KQML se le dividioacute en tres capas la capa de contenido alberga el contenido del mensaje que es especificado en cualquier formato ya sea texto o binario La capa de comunicacioacuten contiene paraacutemetros como el identificador uacutenico asociado a la comunicacioacuten identidad del remitente e identidad del destinatario La capa de mensaje define tanto los diferentes tipos de interaccioacuten que se pueden establecer entre los agentes como los protocolos que se pueden establecer entre los agentes Tambieacuten incluye otras caracteriacutesticas como el lenguaje de representacioacuten o la ontologiacutea siendo ambos opcionales

JADE (Java Agent DEvelopment Framework)

JADEiv (Java Agent DEvelopment Framework) es un middleware que proporciona tanto un entorno de desarrollo como un entorno de ejecucioacuten para la realizacioacuten y mantenimiento de sistemas multiagente El entorno de desarrollo estaacute formado por una serie de libreriacuteas en Java que permiten la implementacioacuten de agentes de manera limpia e independiente de la plataforma sobre la que se va a ejecutar El entorno de ejecucioacuten permite a los agentes vivir y comunicarse entre ellos Estaacute realizado enteramente en Java y proporciona una serie de herramientas que permiten al desarrollador controlar y depurar a los agentes en tiempo real JADE es un middleware desarrollado por TILAB para el desarrollo de aplicaciones distribuidas multiagente JADE proporciona tanto el entorno de desarrollo para la creacioacuten de aplicaciones basadas en agentes como el entorno de ejecucioacuten JADE presenta las siguientes caracteriacutesticas

P2P Arquitectura peer-to-peer cada agente puede tomar la iniciativa en una comunicacioacuten o bien responder a peticiones que le hagan otros agentes

Interoperabilidad JADE cumple con las especificaciones FIPA por lo que los agentes desarrollados en JADE pueden interactuar con otros agentes que no tienen porque estar desarrollados con JADE aunque si deben seguir las especificaciones FIPA

Portabilidad La API que proporciona JADE es independientemente de la red sobre la que va a operar asiacute como de la versioacuten de Java utilizada teniendo la misma API para J2EE J2SE y J2ME

27

Intuitiva JADE se ha desarrollado para ofrecer una API faacutecil de aprender y sencilla de manejar

Los agentes JADE tienen nombres uacutenicos y se permite a cada agente descubrir a otros agentes y comunicarse con ellos mediante comunicaciones punto a punto Los agentes proporcionan servicios cada agente puede buscar a otros dependiendo de los servicios que proporcionen otros agentes La comunicacioacuten entre agentes se lleva a cabo a traveacutes de mensajes asiacutencronos es decir el agente que enviacutea el mensaje y el destinatario del mensaje no tienen porqueacute estar disponibles al mismo tiempo Es maacutes el destinatario no tiene porqueacute existir en ese instante Los mensajes se pueden enviar a un agente en concreto o se pueden enviar a agentes que se desconocen pero se sabe que poseen unas ciertas caracteriacutesticas JADE proporciona mecanismos de seguridad ya que habraacute agentes a los que no se les esteacute permitido comunicarse con otros agentes de manera que una aplicacioacuten puede verificar la identidad del receptor y del agente que enviacutea el mensaje y no dejar realizar actuaciones no permitidas para un determinado agente La estructura de los mensajes se basa en el lenguaje ACL (Agent Communication Lenguaje) que ha sido definido por la FIPA JADE facilita mecanismos para el desarrollo de los objetivos que deben alcanzar los agentes Los comportamientos (behaviours) y la comunicacioacuten entre los agentes (junto con el servicio de paacuteginas amarillas) proporcionan los recursos necesarios para programar un sistema multiagente JADE tambieacuten permite a los agentes cambiar de Host (en J2SE) Un agente puede interrumpir en un momento dado su ejecucioacuten migrar a otro host (sin necesidad de que el coacutedigo esteacute previamente en el host destino) y continuar la ejecucioacuten en el mismo punto en el que la interrumpioacute Esto permite un balanceo de carga ya que permite a los agentes migrar hosts menos cargados El entorno de ejecucioacuten proporciona un marco donde poder ejecutar los agentes y herramientas graacuteficas para su monitorizacioacuten y depuracioacuten Los agentes JADE necesitan del entorno de ejecucioacuten donde poder vivir Cada instancia del entorno de ejecucioacuten se denomina contenedor (container) Al conjunto de los contenedores se le denomina plataforma (platform) y proporciona una capa que oculta a los agentes (y al desarrollador) el entorno donde se ha decidido ejecutar la aplicacioacuten En cada plataforma debe existir un contenedor especial denominado contenedor principal (main container) La principal diferencia del contenedor principal respecto al resto de contenedores es que alberga dos agentes especiales

AMS (Agent Management System) Este agente proporciona el servicio de nombres asegurando que cada agente en la plataforma disponga de un nombre uacutenico Tambieacuten representa la autoridad es posible crear y matar agentes en contenedores remotos requeriendoselo al agente AMS

DF (Directory Facilitator) Proporciona el servicio de Paacuteginas Amarillas Gracias al agente DF un agente puede encontrar otros agentes que provean los servicios necesarios para lograr sus objetivos

28

La caracteriacutestica mas importante del entorno de ejecucioacuten es la interfaz graacutefica que proporciona desde la que podemos controlar y depurar los agentes existentes Todas las herramientas han sido desarrolladas como agentes y siguen sus mismas reglas Disentildeo Arquitectura

Agente usuario

Agente de ontologiacutea

Agente de filtrado

Agente de recuperacioacuten

BD

OntologiacuteaSistema

Motor de buacutesqueda

El sistema esta disentildeado para que un usuario realice alguna buacutesqueda relacionada con alguno de los tres temas propuestos en nuestra base de conocimiento que son Ingenieriacutea de Software Base de Datos y Deportes El sistema esta basado en una arquitectura multiagente la cual se conforma por Agente Usuario Actuacutea de intermediario entre el usuario y el sistema Sus servicios son solicitados por el usuario para resolver las consultas El usuario le suministra una consulta y el sistema le devuelve una lista de documentos que pueden satisfacer sus necesidades Este agente tiene la capacidad de acceder a la base de datos con el objetivo de almacenar yo recuperar resultados Base de Datos Guardaraacute las ultimas buacutesquedas realizadas para su posterior consulta a peticioacuten del usuario Agente de Filtrado Gestiona la recuperacioacuten de documentos y realiza el filtrado de los mismos proporcionados por el Agente de Recuperacioacuten Recibe la peticioacuten del Agente Usuario y a su vez esta es enviada al Agente Ontologiacutea para que este regrese una evaluacioacuten de la consulta y de esta forma conocer si es necesaria una redefinicioacuten de la consulta En caso de ser necesaria se espera recibir el nuevo vector de consulta hasta que se cumpla una de dos opciones el usuario deje de redefinir la consulta o la consulta sea concreta Cuando la consulta sea concreta es enviada de nueva cuenta al Agente Ontologiacutea el cual regresaraacute el Nuevo Vector Expandido Este seraacute enviado al Agente de Recuperacioacuten Cuando el Agente de Recuperacioacuten regrese los urlacutes de los resultados (con sus respectivos vectores de teacuterminos) se realiza una evaluacioacuten de los vectores de cada documento con respecto al vector de buacutesqueda expandida con el objetivo de asignarles una calificacioacuten Gracias a esta calificacioacuten podemos obtener aquellos documentos que mejor cumplan con las expectativas del usuario (Estos documentos son regresados al Agente Usuario) Agente Ontologiacutea Recibe el vector de consulta proporcionado por el Agente de Filtrado La informacioacuten contenida en el vector de consulta es comparada con la existente en nuestra ontologiacutea Una vez verificada la existencia de la informacioacuten del

29

vector consulta dentro de la ontologiacutea este se encarga de devolver la distancia y el umbral al Agente de Filtrado Se espera que este devuelva una peticioacuten para expandir ese mismo vector Puede darse el caso de obtener dos tipos de buacutesquedas una general y otra mucho maacutes definida En cualquiera de los caso obtenemos un nuevo vector de buacutesqueda (con una informacioacuten mejor definida este es el Vector de Buacutesqueda Expandido) que es enviado de regreso al Agente de Filtrado el cual genera una copia y le es enviada al Agente de Recuperacioacuten Ontologiacutea Representa nuestra base de conocimientos Esta compuesta por tres aacutereas de conocimiento las cuales son Ingenieriacutea se Software Bases de Datos y Deportes Para poder representar esta ontologiacutea en un lenguaje entendible para agentes inteligentes se programaraacute bajo los fundamentos de las estructuras RDF contenidas en las especificaciones de XML y siguiendo los estaacutendares de la W3C Agente Recuperacioacuten Realiza la buacutesqueda gracias a la informacioacuten que le es entregada por el Agente de Filtrado (se trata Vector de Buacutesqueda Expandido generado por el Agente de Ontologiacutea) El agente estructura esta informacioacuten y se introduce en un motor de buacutesqueda(diacutegase por ejemplo Google) de tal manera que obtengamos una lista de posibles documentos A cada documento se le asigna un vector de teacuterminos con sus pesos derivados de un anaacutelisis TFIDF para despueacutes regresar las urlacutes con su respectivo vector de teacuterminos al Agente Filtrado RESULTADOS Este proyecto tiene la finalidad de desarrollar el software para un antivirus y un traductor Pero durante los estudios de anaacutelisis de estos dos productos se encontroacute que el software para la buacutesqueda de la informacioacuten tambieacuten puede ser implementada por medio de teacutecnicas de Inteligencia Artificial Para construir el software de aplicacioacuten para estas necesidades se usa la metodologiacutea de cascada Donde los pasos a seguir son el Anaacutelisis Disentildeo Pruebas Implementacioacuten y Mantenimiento Hasta este momento estamos en la etapa de pruebas de algunos moacutedulos de los tres productos IMPACTO El detector de intrusos en una red es de mucha importancia debido a que en la actualidad se han diseminado muchos virus que pueden ser transmitidos a traveacutes de intrusos Hasta la fecha el meacutetodo de proteccioacuten se hace de forma manual La finalidad de este software es automatizar la proteccioacuten El traductor de texto a voz tiene como primera aplicacioacuten el auxilio en la lectura de documentos para las personas invidentes o deacutebiles visuales una segunda aplicacioacuten es la comunicacioacuten con la computadora por medio del lenguaje natura El buscador de informacioacuten es un auxilio en la buacutesqueda de datos en una base de datos de conocimiento Ya que tambieacuten estaacuten proliferando las bibliotecas virtuales es una ayuda en la localizacioacuten de informacioacuten cientiacutefica y un preaacutembulo para un software de apoyo docente BIBLIOGRAFIacuteA [1] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

30

[2] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps[3] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[4] w3c en espantildeol OWL y Web Semaacutentica httpwwww3cesDivulgacionGuiasbrevesWebSemantica

[5] Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

[6] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[7] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[8] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[9] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[10] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[11] Laboratorios Googlehttplabsgooglecompapershtml

[12] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[13] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

[14] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

[15] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps [16] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[18] Trabajos de Agente en JADE http Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

31

[19] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[20] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[21] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[22] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[23] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[24] Laboratorios Googlehttplabsgooglecompapershtml

[25] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[26] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

  • En este reporte teacutecnico se presenta la descripcioacuten general anaacutelisis y estado actual de de los trabajos terminales TT2006135 TT20060097 y TT20060068 que tienen por titulo ldquoSistema prototipo de deteccioacuten de intrusos en la red utilizando agentes inteligentesrdquo rdquoProcesamiento digital de imaacutegenes para la conversioacuten de texto a vozrdquo y ldquoSistema de buacutesqueda de informacioacuten por conceptos en la webrdquo respectivamente Los prototipos que se obtendraacuten seraacuten un software robusto que se desarrollaraacuten con teacutecnicas de inteligencia artificial como Agentes inteligentes y Redes neuronales
  • Estructura de un sistema neuronal artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
    • Estado Del Arte
      • Estructura de un sistema neuronal artificial
        • Sistemas paralelos distribuidos y adaptativos
          • Modelo estaacutendar de neurona artificial
            • Sigmoidal logariacutetmica
              • Empleo del perceptroacuten para reconocer funciones loacutegicas
              • Algoritmo de aprendizaje del perceptroacuten
                • Objetivo General
                • Estado Del Arte
                • A continuacioacuten se mencionan algunos de ellos
                  • Buscador muacuteltiple Copernic 2001 Pro
                  • Lets Browse
                  • Agentes de Informacioacuten
                    • Marco Conceptual
                      • Clases y Propiedades
                      • El sistema de escritura de datos [type system]
                      • Clases y Recursos como Conjuntos y Elementos
                        • Ontologiacuteas en la Representacioacuten del Conocimiento
                          • LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES
                          • JADE (Java Agent DEvelopment Framework)
                            • Disentildeo
                            • Arquitectura
Page 6: INSTITUTO POLITÉCNICO NACIONALsappi.ipn.mx/cgpi/archivos_anexo/20061387_3286.pdf · La comunicación del hombre con la computadora por medio del lenguaje natural, es la finalidad

6

En nuestro paiacutes el desarrollo de la tecnologiacutea no ha alcanzado niveles muy elevados lo cual implica tener que traerla del exterior y en consecuencia el costo de la misma se eleva Esto se convierte en un problema para los consumidores finales ya que al no tener los medios suficientes para adquirir alguna tecnologiacutea tampoco obtienen los beneficios que la misma podriacutea otorgarles La tecnologiacutea que seriacutea desarrollada por este proyecto facilitariacutea la vida de muchas personas (con debilidades visuales o no) y lo que es mejor a un costo accesible Auacuten no se ha calculado el precio que dicha tecnologiacutea implicariacutea pero estaacute claro que seriacutea menor que el de una tecnologiacutea importada

Imagen 21 ReadingPen ndash Quicktionary creado por WizCom Technologies A continuacioacuten en la tabla 1 se muestra una comparacioacuten entre las funcionalidades que se planea tenga nuestro sistema (CIMATEV) y las funcionalidades que actualmente tiene Quicktionary

Funcionalidad Quicktionary (Actualmente)

CIMATEV (Se espera)

Calidad de la voz en general Buena Buena3

Inteligibilidad de la voz Si Si

Naturalidad de la voz Si y No en algunos casos Si y No en algunos casos

Tipo de texto escaneable

Captura texto personalizado incluyendo texto en negrita

cursiva invertido y subrayado tomando como

base fuentes estaacutendar y

Captura texto

personalizado incluyendo texto en negrita cursiva y

subrayado tomando como base

Portaacutetil Si No (Software para PC) Si (Sistema miacutenimo)

3 Para la siacutentesis de voz se utilizaraacute la teacutecnica de siacutentesis por seleccioacuten de unidades (Foneacutetica acuacutestica)

7

Tamantildeo del texto escaneable 6-22 puntos

6-22 puntos (Sistema miacutenimo)

En el caso del software para PC se planea que el tamantildeo

del texto no sea un factor que limite su conversioacuten a

vozPronunciacioacuten de nombres propios Si Si

Pronunciacioacuten de siglas Si Si

Se mantiene el estilo del texto escaneado

No Devuelve ASCII regular4

No Inicialmente devolveraacute

ASCII regular (se pretende utilizar el

estaacutendar Unicode)

Identifica la presencia de imaacutegenes No

No (En general) Si (Soacutelo para libros que

sigan el estaacutendar del software)

Ergonomiacutea y peso Si 85 g (3 oz) Se planea que el sistema miacutenimo sea ergonoacutemico y

ademaacutes tenga un peso razonable5

Tabla 1 Comparacioacuten entre las funcionalidades de Quicktionary y las de CIMATEV METODOLOGIacuteA DE DESARROLLO Se reconoce que el software al igual que todos los sistemas complejos evoluciona con el tiempo Los requerimientos que el sistema tiene que cubrir a menudo cambian conforme a que el desarrollo proceda haciendo que el camino que lleva al producto final no sea real las estrictas fechas de entrega hacen que sea imposible finalizar un producto completo por lo que se debe introducir una versioacuten limitada para cumplir con los tiempos de entrega Bajo estas circunstancias los desarrolladores necesitan de un modelo de proceso que ha sido disentildeado para acomodarse a un producto que evolucione con el tiempo Redes Neuronales Artificiales La historia de las redes neuronales comenzariacutea con el cientiacutefico aragoneacutes Santiago Ramoacuten y Cajal descubridor de la estructura neuronal del sistema nervioso A finales del siglo XIX la teoriacutea reticularista que sosteniacutea que el sistema nervioso estaba formado por una red continua de fibras nerviosas era extendida Sin embargo tras antildeos de trabajo aplicando y perfeccionando la teacutecnica de tincioacuten de Golgi en 1888 Ramoacuten y Cajal demostroacute que el sistema nervioso en realidad estaba compuesto por una red de ceacutelulas individuales las neuronas ampliamente conectadas entre siacute Pero no soacutelo observoacute al 4 ASCII de 7 bits Se pueden representar hasta 128 (27) caracteres diferentes 5 El acceso que se tenga a la tecnologiacutea que permita cubrir estos requerimientos no funcionales (ergonomiacutea y peso) seraacute decisivo para la realizacioacuten de los mismos

8

microscopio los pequentildeos espacios vaciacuteos que separaban unas neuronas de otras sino que tambieacuten establecioacute que la informacioacuten fluye en la neurona desde las dendritas hacia el axoacuten atravesando el soma Este descubrimiento baacutesico para el desarrollo de las neuro-ciencias en el siglo XX causoacute en la eacutepoca una verdadera conmocioacuten en la forma de entender el sistema nervioso concedieacutendose el premio Nobel de medicina a Ramoacuten y Cajal en 1906 (compartido con Camilo Golgi)

Axoacuten

Dendritas

Soma

Figura 22 Estructura de una neurona bioloacutegica tiacutepica

Sinapsis

Obviamente gracias al advenimiento de la microscopiacutea electroacutenica y a la introduccioacuten de otras importantes teacutecnicas se ha llegado a profundizar mucho maacutes en el estudio de la neurona Se estima que el sistema nervioso contiene alrededor de cien mil millones de neuronas Vistas al microscopio este tipo de ceacutelulas pueden presentarse en muacuteltiples formas aunque muchas de ellas presentan un aspecto similar muy peculiar (ver figura 21) con un cuerpo celular o soma (de entre 10 y 80 micras de longitud) del que surge un denso aacuterbol de ramificaciones (aacuterbol dendriacutetico) compuesto por las dendritas y del cual parte una fibra tubular denominada axoacuten (cuya longitud variacutea desde las 100 micras hasta el metro en el caso de las neuronas motoras1) que tambieacuten se ramifica en su extremo final para conectarse con otras neuronas En las interneuronas el axoacuten enviacutea la informacioacuten a otras neuronas mientras que las neuronas motoras lo hacen directamente al muacutesculo Existe un tercer tipo de neuronas las receptoras o sensoras que en vez de recibir informacioacuten de otras neuronas la reciben directamente del exterior (tal sucede por ejemplo en los conos y bastones de la retina) Se calcula que una neurona del coacutertex cerebral recibe informacioacuten por teacutermino medio de unas 10000 neuronas (convergencia) y enviacutea impulsos a varios cientos de ellas (divergencia)

Estructura de un sistema neuronal artificial Los ANS (Artificial Neural Systems) imitan la estructura hardware del sistema nervioso con la intencioacuten de construir sistemas de procesamiento de la informacioacuten

1 Lo que constituye el nervio

9

paralelos distribuidos y adaptativos que puedan presentar un cierto comportamiento ldquointeligenterdquo

Sistemas paralelos distribuidos y adaptativos Los tres conceptos clave de los sistemas nerviosos que se pretende emular en los artificiales son paralelismo de caacutelculo memoria distribuida y adaptabilidad al entorno De esta manera podemos hablar de las redes neuronales como sistemas paralelos distribuidos y adaptativos El procesamiento paralelo resulta esencial como se deduce de un sencillo ejemplo Una computadora convencional tipo PC que trabaja secuencialmente instruccioacuten por instruccioacuten empleariacutea varios minutos en realizar sobre una imagen compuesta por digamos 256x256 pixeles una sencilla tarea de tratamiento en bajo nivel (acentuar contrastes extraer contornos ) mucho maacutes simple que la que lleva a cabo el sistema visual para reconocer una imagen Un sistema basado en 16 DSP2 operando en paralelo empleariacutea del orden de 20 ms en la misma tarea puesto que cada procesador podriacutea operar en paralelo sobre diferentes sectores de la imagen Por otra parte el cerebro tarda este mismo tiempo en preprocesar una imagen compuesta por millones de pixeles (los que representan los conos y bastones de la retina) extraer sus rasgos caracteriacutesticos analizarla e interpretarla Ninguacuten sistema creado por el hombre es capaz de realizar algo semejante La clave reside en que los millones de neuronas que intervienen en el procesamiento de la imagen trabajan en paralelo sobre la totalidad de la imagen Otro concepto importante que aparece en el cerebro es el de memoria distribuida Mientras que en un computador la informacioacuten ocupa posiciones de memoria bien definidas en los sistemas neuronales se encuentra distribuida por las sinapsis de la red de modo que si una sinapsis resulta dantildeada no perdemos maacutes que una parte muy pequentildea de la informacioacuten Ademaacutes los sistemas neuronales bioloacutegicos son redundantes de modo que muchas neuronas y sinapsis pueden realizar un papel similar en definitiva el sistema resulta tolerante a fallos El uacuteltimo concepto fundamental es el de adaptabilidad Los ANS se adaptan faacutecilmente al entorno modificando sus sinapsis (y mediante otros mecanismos tambieacuten) y aprenden de la experiencia pudiendo generalizar conceptos a partir de casos particulares En el campo de las redes neuronales se llamaraacute a esta propiedad generalizacioacuten a partir de ejemplos Formalmente y desde el punto de vista del grupo PDP (Parallel Distributed Processing Reseach Group de la Universidad de California en San Diego) un sistema neuronal o conexionista estaacute compuesto por los siguientes elementos

bull Un conjunto de procesadores elementales o neuronas artificiales bull Un patroacuten de conectividad o arquitectura bull Una dinaacutemica de activaciones bull Una regla o dinaacutemica de aprendizaje bull El entorno donde opera

2 Digital Signal Processor

10

Modelo estaacutendar de neurona artificial Se denomina procesador elemental o neurona a un dispositivo simple de caacutelculo que a partir de un vector de entrada procedente del exterior o de otras neuronas proporciona una uacutenica respuesta o salida En este apartado se trataraacute el modelo denominado neurona estaacutendar (ver figura 31) que constituye un caso particular de un modelo maacutes complejo llamado modelo PDP El modelo estaacutendar considera que la regla de propagacioacuten es la suma ponderada y que la funcioacuten de salida es la identidad De esta forma la neurona estaacutendar etiquetada como i consiste en

bull Un conjunto de entradas Xj(t) y pesos sinaacutepticos Wij que representan la intensidad de interaccioacuten entre cada neurona presinaacuteptica j y cada neurona postsinaacuteptica i (ver figura 41)

bull Una regla de propagacioacuten σ(Wij Xj(t)) que proporciona el valor del potencial postsinaacuteptico hi(t)= σ(Wij Xj(t))=sumWijXj de la neurona i en funcioacuten de sus pesos y entradas

bull Una funcioacuten de activacioacuten Yi(t)=fi(hi(t)) que representa simultaacuteneamente la salida de la neurona i y su estado de activacioacuten (en el caso del modelo PDP las funciones de activacioacuten y de salida son tratadas por separado)

Con frecuencia se antildeade al conjunto de pesos de la neurona un paraacutemetro adicional θi que se denominaraacute umbral1 que se resta del potencial postsinaacuteptico por lo que el argumento de la funcioacuten de activacioacuten queda

sumj WijXj - θi

lo que representa antildeadir un grado de libertad adicional a la neurona En el caso de nodos de respuesta todo-nada este paraacutemetro representaraacute el umbral de disparo de la neurona es decir el nivel miacutenimo que debe alcanzar el potencial postsinaacuteptico (o potencial de membrana) para que la neurona se dispare o active En conclusioacuten el modelo de neurona denominado estaacutendar queda

Yi(t)=fi (sumj WijXj - θi)

Ahora bien si se hace que los iacutendices i y j comiencen en 0 se puede definir Wi0= θi y X0=-1 (constante) con lo que el potencial postsinaacuteptico (potencial local o de membrana) se obtiene realizando la suma desde j=0

Yi(t)=fi (sumj=012n WijXj)

1 En algunos modelos es threshold es decir ldquoumbralrdquo y en otros bias que no tiene una traduccioacuten clara en este caso

11

sum f ( )

Axoacuten Yi

Wi1

Wi2

Wij

Win

θi-1

X1

X2

Habiendo definido de esta manera la neurona estaacutendar basta con establecer la forma de la funcioacuten de activacioacuten para determinarla por completo A continuacioacuten se muestra una tabla con las funciones de activacioacuten maacutes utilizadas

Funcioacuten Relacioacuten entradasalida Graacutefica

Escaloacuten y=0 nlt0 y=1 nge0

Escaloacuten simeacutetrica y= -1 nlt0 y=+1 nge0

Lineal Identidad

y=n

Lineal saturada y=0 nlt0

y=n 0lenle1 y=1 ngt1

Lineal saturada simeacutetrica

y=-1 nlt-1 y=n -1lenle1

y=1 ngt1

Sigmoidal logariacutetmica

ney minus+=

11

Xj

Xn

Entradas

Dendritas

Sinapsis

Cuerpo celular

Salida

Umbral

Figura 23 Modelo de neurona estaacutendar

12

Tangente

hiperboacutelica

nn

nn

eeeey minus

minus

+minus

=

Lineal positiva y=0 nlt0 y=n 0len

Competitiva a=1 neurona con maacutex n

a=0 todas las demaacutes

C

Tabla 2 Funciones de activacioacuten habituales (se han omitido algunas constantes)

Arquitecturas de redes neuronales Se denomina arquitectura a la topologiacutea estructura o patroacuten de conexionado de una red neuronal En un ANS los nodos se conectan por medio de sinapsis esta estructura de conexiones sinaacutepticas determina el comportamiento de la red Las conexiones sinaacutepticas son direccionales es decir la informacioacuten soacutelo puede propagarse en un uacutenico sentido (desde la neurona presinaacuteptica a la postsinaacuteptica ver figura 24)

j

i

YjXj

Wij

YiNeurona presinaacuteptica

Neurona postsinaacuteptica

Figura 24 Interaccioacuten entre una neurona presinaacuteptica y otra postsinaacuteptica

En general las neuronas se suelen agrupar en unidades estructurales que denominaremos capas Las neuronas de una capa pueden agruparse a su vez formando grupos neuronales (clusters) Dentro de un grupo o de una capa si no existe este tipo de agrupacioacuten las neuronas suelen ser del mismo tipo Finalmente el conjunto de una o maacutes capas constituye la red neuronal

Se distinguen tres tipos de capas de entrada de salida y ocultas Una capa de entrada o sensorial estaacute compuesta por neuronas que reciben datos o sentildeales procedentes del entorno (por ejemplo proporcionado por sensores) Una capa de salida es aquella cuyas neuronas proporcionan la respuesta de la red neuronal (sus neuronas pueden estar conectadas a efectores) Una capa oculta es aquella que no tiene una conexioacuten directa

13

con el entorno es decir que no se conecta directamente ni a organos sensores o efectores Esta capa proporciona a la red neuronal grados de libertad adicionales gracias a los cuales puede encontrar representaciones internas correspondientes a determinados rasgos del entorno proporcionando una mayor riqueza computacional (ver figura 25)

Informacioacuten Capa de salida

(efectora) Capa oculta Capa de entrada (procesamiento) (sensorial)

Figura 25 Arquitectura unidireccional de tres capas de entrada oculta y de salida

Las conexiones entre las neuronas pueden ser excitadoras o inhibidoras un peso sinaacuteptico negativo define una conexioacuten inhibidora mientras uno positivo determina una conexioacuten excitadora Habitualmente no se suele definir una conexioacuten como de un tipo u otro sino que por medio del aprendizaje se obtiene un valor para el peso que incluye signo y magnitud

El perceptroacuten simple Este modelo neuronal fue introducido por Rosenblatt a finales de los antildeos cincuenta Dicha estructura se inspira en las primeras etapas de procesamiento de los sistemas sensoriales de los animales (por ejemplo la visioacuten) en los cuales la infomacioacuten va atravesando sucesivas capas de neuronas que realizan un procesamiento progresivamente de maacutes alto nivel Un perceptroacuten simple es un modelo unidireccional compuesto por dos capas de neuronas una sensorial o de entrada y otra de salida A continuacioacuten se muestra en la figura 26 su representacioacuten y la funcion de transferencia que utiliza

Figura 26 a) Las neuronas de entrada no realizan ninguacuten coacutemputo uacutenicamente enviacutean la informacioacuten a las neuronas de salida b) la funcioacuten de activacioacuten de las neuronas de la capa de salida es de tipo escaloacuten

Capa de entrada

Capa de salida

f(x) x

Funcioacuten escaloacuten

a) b)

14

El perceptroacuten puede utilizarse tanto como clasificador como para la representacioacuten de funciones booleanas pues su neurona es esencialmente de tipo MacCulloch-Pitts es decir de salida binaria La importancia histoacuterica del perceptroacuten radica en su caraacutecter de dispositivo entrenable ya que el algoritmo de aprendizaje que desarrollo Rosenblatt permite determinar automaacuteticamente los pesos sinaacutepticos que clasifican un conjunto de patrones a partir de un conjunto de ejemplos etiquetados (a esto se le llama red neuronal supervisada y el perceptron simple es de este tipo) Ahora se mostraraacute que un perceptroacuten permite realizar tareas de clasificacioacuten Cada neurona del perceptroacuten representa una determinada clase de modo que dado un vetor de entrada una cierta neurona responde con 0 si no pertenece a la clase que representa y con un 1 si siacute pertenece Es faacutecil ver que una neurona tipo perceptroacuten solamente permite discriminar entre dos clases linealmente separables (es decir cuyas regiones de decisioacuten pueden ser separadas mediante una uacutenica condicioacuten lineal o hiperplano que es una liacutenea recta si trabajamos en dos dimensiones) Sea una neurona tipo perceptroacuten de dos entradas x1 y x2 con salida y cuya operacioacuten se define por lo tanto como

y = H(w1x1+w2x2 - ө) o bien 1 si w1x1+w2x2 geӨ y = 0 si w1x1+w2x2 ltӨ

Si consideramos x1 y x2 situadas sobre los ejes de abscisas y ordenadas en el plano la condicioacuten

w1x1+ w2x2 -Ө = 0 rarr x2 = - (w1 w2) x1 + Ө w2 representa una recta (hiperplano si trabajamos con n entradas) que divide el plano en dos regiones que son aquellas para las que la neurona proporciona una salida 0 o 1 respectivamente como se muestra en la figura 27

x x

x x x

x x x

x

x

oo

oo

o o

o

X1

X2

Regioacuten w1x1+w2x2 geӨ Regioacuten w1x1+w2x2 ltӨ

Figura 27 Una neurona tipo perceptroacuten representa un discriminador lineal que separa dos regiones en el espacio que representan dos diferentes clases de patrones En esta graacutefica x = lsquo1rsquo y o = lsquo0rsquo

15

Empleo del perceptroacuten para reconocer funciones loacutegicas -Funcion linealmente separable Consideremos la funcioacuten loacutegica NAND2 (AND negada de dos entradas) que representamos sobre un plano en la graacutefica 3 que se presenta en seguida

x (10) o (11)

x (00)

x (01) X1

X2

Figura 28 Funcioacuten loacutegica NAND de dos entradas En la graacutefica x = lsquo1rsquo y o = lsquo0rsquo

Se puede ver que en este caso existen paraacutemetros w1 w2 y Ө que permiten una recta que separa perfectamente las regiones correspondientes a los valores loacutegicos 0 y 1 Y por lo tanto se dice que la funcioacuten loacutegica NAND es linealmente separable -Funcioacuten no separable linealmente

Ahora consideremos la funcioacuten loacutegica or-exclusivo (XOR) y representandola en un plano en la figura 29

x (10) o (11)

o (00)

x (01) X1

X2

Figura 29 Funcioacuten loacutegica XOR de dos entradas que no es linealmente separable

16

Al ser XOR no linealmente separable se dice que ldquola clase de funciones no separables linealmente no pueden ser representadas por un perceptroacuten simplerdquo El perceptroacuten presenta serias limitaciones pues solamente puede representar funciones linealmentes separables Y aunque pueda aprender automaacuteticamente a representar complejas funciones booleanas o resolver con eacutexito muchos problemas de clasificacioacuten con un cierto algoritmo en ocasiones fallara draacutesticamente Minsky (que es uno de los padres de la inteligencia artificial) y Papera estudiaron en profundidad el perceptroacuten y en 1969 publicaron un exhaustivo trabajo donde exhibian las limitantes del modelo en lo que resultoacute decisivo para que muchos de los recursos que se destinaban a su investigacioacuten se desviara a otras aacutereas Una solucioacuten para las limitantes del perceptroacuten simple puede consistir en incluir maacutes capas en la arquitectura con lo que tendremos un perceptroacuten multicapa A finales de los antildeos sesenta ya se apuntaba como solucioacuten a las limitaciones del perceptroacuten introducir capas ocultas pero el problema estaba en que no se teniacutea un algoritmo de aprendizaje para el perceptroacuten multicapa (con capas ocultas) Dicho algoritmo fue propuesto por Paul Verbos alrededor de 1974 pero fue preciso hasta mediados de los ochenta cuando el grupo PDP redescubriera un algoritmo similar al cual denominaron Back-Propagation o BP y dieran a conocer a la comunidad internacional su gran potencial para la resolucioacuten de problemas praacutecticos

Algoritmo de aprendizaje del perceptroacuten El del perceptroacuten es un algoritmo de aprendizaje de los denominados por correccion de errores Los algoritmos de este tipo ajustan los pesos en proporcioacuten a la diferencia existente entre la salida actual de la red y la salida deseada con el objetivo de minimizar el error actual de la red Definicioacuten del algoritmo de aprendizaje Sea un conjunto de p patrones xn n=1hellipp con sus salidas deseadas tn Tanto las entradas como las salidas solamente pueden tomar los valores -1 o 1 Se tiene una arquitectura de perceptroacuten simple con pesos iniciales aleatorios y se requiere que clasifique correctamente todos los patrones del conjunto de aprendizaje (solo si son linealmente separables) Ahora actuaremos del siguiente modo ante la presentacioacuten del patron n-eacutesimo si la respuesta que proporciona el perceptroacuten es correcta no actualizaremos los pesos si es incorrecta los modificaremos seguacuten la regla de Hebb aplicada a nuestro caso Primero se muestra la regla de Hebb y despueacutes la regla modificada para el perceptroacuten simple Regla de Hebb

∆wij = ξyixjDonde

17

o wij corresponde a los pesos de una entrada j por la salida i de la neurona

o ξ se denomina ritmo de aprendizaje que su valor suele estar entre 1 y 0 Regla modificada para el perceptroacuten simple

2ξtnixnj si yn

ine tni ∆wn

ij(t)= 0 si yn

i= tni que puede reescribirse del siguiete modo que es la forma usual de expresar la regla del perceptroacuten

∆wnij(t)= 2ξ(tni - yn

i)xnj

Es importante mencionar que el proceso de aprendizaje es iterativo se

parte de una configuracioacuten sinaacuteptica de partida (normalmente de pesos pequentildeos aleatorios) y se presentan una y otra vez los patrones para que los pesos se ajusten iterativamente seguacuten forma usual de la regla del perceptroacuten hasta que todos queden bien clasificados El hiperplano que establece el liacutemite entre dos clases se desplaza lentamente hasta conseguir separarlas por completo (si es posible) como se ve en la figura 210

t= 115

x x

x x x

x x x

x

x

o

o o

o o o o

o

o o

o

o

o

o

o

o

o

X2

t= 21

t= 0 t= 4

X1

Figura 210 Regiones de decisioacuten que establece iterativamente el perceptroacuten durante el aprendizaje (en la iteracioacuten 115 ha conseguido separar ya las dos clases)

Avances En este capiacutetulo se haraacute una descripcioacuten de los avances que se han hecho hasta el momento Se hablaraacute acerca del entrenamiento de la red neuronal del sistema el reconocimiento de caracteres tanto con la red neuronal como con los clasificadores ya expuestos y el tratamiento de imaacutegenes para eliminar el ruido tipo sal y pimienta Reconocimiento de caracteres Se han hecho avances acerca del reconocimiento de caracteres utilizando redes neuronales y clasificadores diversos A continuacioacuten se exponen dichos avances

Entrenamiento de la red neuronal Para entrenar la red neuronal se utilizoacute el algoritmo de retropropagacioacuten expuesto en el capiacutetulo 1 Se disentildeoacute un programa en Java que permite entrenar una red neuronal de 3

18

capas La cantidad de clases a discriminar es variable y para este caso se utilizoacute una matriz de 5x8 es decir se tomaron 40 rasgos de entrada

Utilizando la red neuronal para reconocer caracteres A continuacioacuten se muestra en la imagen 211 el programa disentildeado en Java que permite discriminar un nuacutemero variable de clases Para este caso se eligioacute discriminar entre los diacutegitos del 0 al 9 El programa para reconocer los 128 caracteres referentes al sintetizador de voz tendraacute una interfaz similar con la diferencia de que la rejilla para ingresar el patroacuten a reconocer seraacute de 20x20 El programa mostrado fue programado tanto para entrenar la red como para reconocer los diacutegitos Se puede elegir entre los entrenamientos hechos para probar la efectividad de la red Las estadiacutesticas del entrenamiento elegido se muestran en la parte inferior de la pantalla

Imagen 211 Reconocimiento de los diacutegitos del 0 al 9 utilizando una red neuronal de 3 capas

19

Utilizando los clasificadores para reconocer caracteres Dentro de las teacutecnicas de reconocimiento de patrones existen diferentes clasificadores que nos permiten a partir de un conjunto de entrenamiento (en eacuteste caso un conjunto de tipos de letras que deseamos reconocer) saber a queacute clase pertenece un patroacuten de prueba que se introduce

Imagen 212 Un ejemplo de un clasificador KNN con un valor de K=3 y usando la meacutetrica City-Block para clasificar el patroacuten de prueba pruebabmp entre tres clases

En la imagen 212 se muestra como se puede clasificar un caraacutecter escalado de la imagen prueba 4bmp dentro de las tres clases existentes Se observa que si se puede clasificar este tipo de patrones pero veamos un ejemplo donde no sea posible clasificar un patroacuten de prueba y por queacute

Imagen 213 Un ejemplo de un clasificador KNN con un valor de K=5 y usando la meacutetrica Euclidiana para clasificar el patroacuten de prueba prueb3bmp entre tres clases El patroacuten no fue reconocido correctamente

20

Ahora como se observa no se pudo clasificar correctamente el patroacuten de prueba ya que pertenece claramente a la clase 3 pero por el clasificador que usamos o por el nuacutemero de K-vecinos o por el tipo de meacutetrica usada sucedioacute que en su mayoriacutea eran de la clase 2 y no de la clase 3 Tal vez si se hubiera elegido un valor de K menor a 5 tendriacutea maacutes posibilidades de clasificar correctamente Finalmente usar este tipo de teacutecnicas para reconocer caracteres es muy bueno ya que permite reconocer letras que se encuentran rotadas escaladas o trasladadas por una teacutecnica matemaacutetica llamada Momentos de Hu pero al tener una situacioacuten donde la imagen de prueba se encuentra exactamente a la misma distancia de dos o mas clases se crea el problema de no saber a que clase clasificar dicho patroacuten

Tratamiento digital de las imaacutegenes a capturar A continuacioacuten se muestra en la imagen 214 un programa que se codificoacute en C++ Builder y permite tratar digitalmente imaacutegenes BMP con la finalidad de eliminar el ruido pasarlas a escala de grises y binarizarlas El programa es capaz de generar histogramas de color

Imagen 214 Programa para tratar imaacutegenes digitalmente

21

CAPIacuteTULO 3 Buscadores La informacioacuten almacenada tendriacutea poco valor si no podemos consultarla buscar los datos en una base de datos o en muchas bases de datos que tienen conexioacuten por medio de la web es lo que nos permite explotar la informacioacuten Sin embargo la buacutesqueda seraacute eficiente si la respuesta del buscador es lo maacutes especifica o cercana a los temas solicitados Por lo que el software con aplicacioacuten de buscador es importante desarrollar un proceso para su creacioacuten Objetivo General Desarrollar un sistema de buacutesqueda de informacioacuten por conceptos en la Web basado en agentes inteligentes mediante la aplicacioacuten de ontologiacuteas Estado Del Arte Existen algunos sistemas que proporcionan buacutesquedas de informacioacuten basados en algunas de las tecnologiacuteas que vamos a utilizar Es habitual encontrar este tipo de buscadores y algunos otros similares bautizados como Megabuscadores o Multibuscadores a pesar de que estos teacuterminos no sean los maacutes idoacuteneos por lo que al hablar de este tipo de sistemas podemos referirlos como Buscadores Muacuteltiples en virtud de las caracteriacutesticas de su funcionamiento A continuacioacuten se mencionan algunos de ellos

Buscador muacuteltiple Copernic 2001 Pro Copernici producto de la empresa canadiense Copernic Technologies es un agente buscador que transfiere una ecuacioacuten de buacutesqueda a un conjunto de buscadores de manera simultaacutenea recupera las referencias pertinentes y las ordena seguacuten el grado medio de relevancia obtenido de cada uno de los buscadores La empresa creadora de Copernic se constituyoacute en 1996 con el propoacutesito de desarrollar soluciones innovadoras en tecnologiacuteas de agentes de buacutesqueda para conseguir un acceso y una gestioacuten eficientes de la gran masa de informacioacuten presente en Internet El programa se desarrolloacute el antildeo siguiente en una versioacuten experimental y se puso al alcance del puacuteblico en noviembre de 1998 Desde entonces se han lanzado versiones con elementos nuevos la mayoriacutea de los cuales no obstante soacutelo estaacuten disponibles en las ediciones comerciales La edicioacuten gratuita ofrece los servicios baacutesicos de consulta y con la intencioacuten de persuadir a los posibles compradores de las ediciones comerciales da una idea bastante aproximada de las posibilidades del programa completo

Lets Browse Como en otros medios (por ejemplo la televisioacuten) la navegacioacuten en Internet puede ser realizada por grupos de gente [Lieberman et al 1997] Lets browse muestra como un agente puede asistir a un grupo de gente en su navegacioacuten sugirieacutendoles materiales nuevos que puedan ser de intereacutes comuacuten entre ellos

Este trabajo es una extensioacuten del agente Letizia [Lieberman 1995] el cual selecciona paacuteginas de Web Letizia inicia una buacutesqueda por niveles visita las ligas que encuentra a partir de la paacutegina que su usuario esteacute revisando y selecciona aquellas que sean similares a los intereses que ha aprendido de su usuario (observando su navegacioacuten) Posteriormente muestra sus recomendaciones en un canal de navegacioacuten

22

El trabajo del agente consiste en seleccionar de la misma forma que Letizia lo hace aquellas paacuteginas que mejor satisfagan los intereses de todos los participantes Las caracteriacutesticas de Letrsquos browse son la deteccioacuten automaacutetica de la presencia de usuarios navegacioacuten automaacutetica (en canal de navegacioacuten) el despliege dinaacutemico de las preferencias de los usuarios y la explicacioacuten de las recomendaciones Permite ademaacutes revisar las paacuteginas desde el punto de vista de otra persona (con sus preferencias) y asiacute estimar cual seriacutea su posible opinioacuten acerca de dicha paacutegina auacuten cuando aquella persona no la haya revisado anteriormente

Agentes de Informacioacuten Un agente de informacioacuteiin es utilizado para organizar los espacios de informacioacuten del usuario y facilitar su explotacioacuten En el WWW (World Wide Web) se estaacuten implementando diversos agentes de informacioacuten El Agente Letizia [Lieberman 1995] que existe en un navegador de Web anticipa queacute artiacuteculos pueden ser de intereacutes para el usuario basaacutendose en las conductas pasadas del usuario Las paacuteginas que cree son de intereacutes del usuario Letizia las despliega en una ventana de sugerencias por unos instantes Marco Conceptual Actualmente para poder hacer la consulta de cualquier tipo de informacioacuten en Internet la mayoriacutea de las personas recurre a los motores de buacutesquedas conocidos como Google Yahoo Altavista por mencionar algunos siendo que estos usan diferentes meacutetodos para llegar a su objetivo podemos darnos cuenta que arrojan distintos resultados uno de otro que en el mejor de los casos coinciden en un porcentaje muy poco satisfactorio con la buacutesqueda en cuestioacuten con lo que concluimos que una respuesta a esta falta de precisioacuten en cuanto a la buacutesqueda de un tema en especial es mejor la buacutesqueda de conceptos lo cual permite al usuario acercarse maacutes al tema de su intereacutes Es importante enfocar nuestra solucioacuten apoyaacutendonos en un motor de buacutesqueda y aplicando herramientas como los Agentes que nos permitan recopilar la informacioacuten maacutes precisa de cada buacutesqueda a traveacutes de un algoritmo propio obteniendo resultados maacutes cercanos a los deseados ya que estos provienen de muacuteltiples documentos ahorrando tiempo y ganando precisioacuten a la vez Muy frecuentemente encontramos que cuando se trata de buacutesquedas en Internet a traveacutes de los motores de buacutesqueda populares los usuarios hacen consultas de diversas paginas y es muy difiacutecil llevar una lista de todos los sitios visitados o de aquellos que nos mostraron la informacioacuten maacutes adecuada nuestro sistema es capaz de registrar dentro de una base de datos un iacutendice de todos los sitios que se obtuvieron en la buacutesqueda de un tema o concepto con lo que el usuario no tendraacute que realizar una ldquonuevardquo buacutesqueda de un tema antes consultado sino que tendraacute a la mano todos los sitios que arrojoacute la primera buacutesqueda Marco teoacuterico

Descripcioacuten de RDF

El Resource Description Frameworiiik (RDF) es un fundamento para el procesamiento de metadatos proporciona interoperabilidad entre aplicaciones que intercambian informacioacuten legible por maacutequina en la Web RDF utiliza XML para intercambiar descripciones de recursos Web pero los recursos descritos pueden ser de cualquier tipo

23

incluyendo recursos XML y no-XML RDF resalta las facilidades para hacer posible el procesamiento automaacutetico de los recursos Web RDF puede utilizarse en diferentes aacutereas de aplicacioacuten por ejemplo en la recuperacioacuten de recursos para proporcionar mejores capacidades a los motores de buacutesqueda en catalogacioacuten para la descripcioacuten de contenido y relaciones de contenido accesibles en un sitio Web particular en una paacutegina o biblioteca digital a traveacutes de agentes de software inteligente para facilitar que el conocimiento se comparta e intercambie en la valoracioacuten de contenido en la descripcioacuten de colecciones de paacuteginas que representan un documento loacutegico individual para la descripcioacuten de los derechos de propiedad intelectual de las paacuteginas Web y para expresar las preferencias de privacidad de un usuario asiacute como las poliacuteticas de privacidad de un sitio Web Las descripciones utilizadas por estas aplicaciones pueden modelarse como relaciones entre recursos Web El modelo de datos de RDF tal y como se especifica en RDFMS define un modelo simple para describir las relaciones entre recursos en teacuterminos de propiedades y valores designadas Las propiedades RDF pueden entenderse como atributos de un recurso y en este sentido corresponden con los tradicionales pares atributo-valor Las propiedades RDF tambieacuten representa relaciones entre recursos De esta forma el modelo de datos RDF puede parecer un diagrama entidad-relacioacuten El modelo de datos RDF sin embargo no proporciona mecanismos para declarar estas propiedades ni proporcionan ninguacuten mecanismo para definir las relaciones entre estas propiedades y otros recursos Este es el papel [la funcioacuten] del Esquema RDF

Las comunidades de descripcioacuten de recursos necesitan la habilidad para decir ciertas cosas sobre ciertas clases de recursos Para describir recursos bibliograacuteficos por ejemplo son habituales atributos descriptivos tales como autor [author] tiacutetulo [title] y materia [subject] Para la certificacioacuten digital se necesitan muchas veces atributos tales como esquema simple de deteccioacuten de errores [checksum] y autorizacioacuten [authorization] La declaracioacuten de estas propiedades (atributos) y su semaacutentica correspondiente se definen en el contexto de RDF como un Esquema RDF Un esquema define no soacutelo las propiedades de un recurso (ej tiacutetulo autor materia tamantildeo color etc) sino que puede tambieacuten definir los tipos de recursos que se describiraacuten (libros paacuteginas Web personas empresas etc)

Los Esquemas RDF podriacutean contrastarse con las Definiciones del Tipo de Documentos (DTDs) de XML y los Esquemas XML A diferencia de una DTD o Esquema XML que dan restricciones especiacuteficas en la estructura de un documento XML un Esquema RDF proporciona informacioacuten sobre la interpretacioacuten de una sentencia dada en un modelo de datos RDF Mientras un Esquema XML puede utilizarse para validar la sintaxis de una expresioacuten RDFXML un esquema sintaacutectico soacutelo no es suficiente para los objetivos de RDF Los Esquemas RDF pueden tambieacuten especificar restricciones que deben seguirse por estos modelos de datos

Clases y Propiedades Un Esquema RDF se expresa a traveacutes de un modelo de datos descrito en la especificacioacuten del Modelo y la Sintaxis RDF [RDFMS] El lenguaje de descripcioacuten del esquema es un simple conjunto de recursos y propiedades definidos por la Especificacioacuten del Esquema RDF y la parte impliacutecita de cada modelo RDF que utiliza la mecaacutenica del esquema RDF

24

El sistema de escritura de datos [type system] El Esquema RDF definido en esta especificacioacuten es una coleccioacuten de recursos RDF que puede utilizarse para describir propiedades de otros recursos RDF (incluyendo propiedades) que definene vocabularios RDF de aplicacioacuten especiacutefica El nuacutecleo del vocabulario del esquema se define en un namespace denominado aquiacute informalmente rdfs e identificado por el URI de referencia httpwwww3org200001rdf-schema Esta especificacioacuten utiliza tambieacuten el prefijo rdf para referirse al namespace principal RDF httpwwww3org19990222-rdf-syntax-ns

Como se describe en la especificacioacuten del modelo y la sintaxis [RDFMS] los recursos pueden ser objetos especiacuteficos de una categoriacutea [instances] de una o maacutes clases esto se indica con la propiedad rdftype Las clases se organizan muchas veces de una forma jeraacuterquica por ejemplo la clase Dog [perro] podriacutea considerarse subclase de Mammal [mamiacutefero] que a su vez es una subclase de Animal dando a entender que cualquier recurso que esteacute en rdftype Dog se considera tambieacuten que estaacute en rdftype AnimalEsta especificacioacuten describe una propiedad rdfssubClassOf para indicar dichas relaciones entre clases

El sistema de escritura [type system] del Esquema RDF es similar al sistema de los lenguajes de programacioacuten orientados a objetos tales como Java Sin embargo RDF se diferencia de muchos de esos sistemas en que en lugar de definir una clase en teacuterminos de propiedades sus objetos especiacuteficos de una categoriacutea [instances] pueden tener un esquema RDF que definiraacute las propiedades en teacuterminos de clases de recurso a los que se aplican Este es el papel de las restricciones rdfsdomain y de rdfsrange

Por ejemplo podemos definir que la propiedad author tenga un dominio de Book y un alcance de Literal mientras que un sistema OO claacutesico podriacutea definir tiacutepicamente una clase Book con un atributo denominado author de tipo Literal

Clases y Recursos como Conjuntos y Elementos El siguiente esquema ilustra el concepto de clase subclase y recurso Una clase se describe por un rectaacutengulo redondeado un recurso se describe por un punto grande En la figura abajo se han dibujado flechas desde un recurso a una clase que define Una subclase se presenta en un rectaacutengulo redondeado (la subclase) completamente incluido en otro (la superclase) Si un recurso estaacute dentro de una clase entonces existe una propiedad rdftype o expliacutecita o impliacutecita de aquel recurso cuyo valor es un recurso que define la clase que contiene (Estas propiedades se muestran como arcos en la representacioacuten graacutefica directamente etiquetada en el Esquema 2) El recurso RDF representado en el esquema 1 se describe tanto en el resto de esta especificacioacuten como en la especificacioacuten del Modelo y Sintaxis RDF

Ontologiacuteas en la Representacioacuten del Conocimiento En estos uacuteltimos antildeos se incrementoacute la cantidad de informacioacuten en la Internet lo cual motivoacute el incremento de la complejidad y la diversidad de la informacioacuten Esto tambieacuten motivoacute el intereacutes de automatizar muchas actividades que tradicionalmente se realizan en forma manual La principal motivacioacuten en el uso de las ontologiacuteas es que permiten compartir y reutilizar conocimiento en un dominio De ahiacute el intereacutes de muchos

25

investigadores en el aacuterea de inteligencia artificial para tratar de aplicar las ontologiacuteas en la representacioacuten de conocimiento Las ontologiacuteas son un elemento importante en la Web Semaacutentica y es un teacutermino filosoacutefico que trata sobre la naturaleza de la existencia y los tipos de objetos que existen Tambieacuten la ontologiacutea se puede definir como una especificacioacuten expliacutecita de una conceptualizacioacuten compartida La conceptualizacioacuten se refiere a un modelo abstracto de un fenoacutemeno en el mundo en donde se tienen que identificar los conceptos relevantes de este fenoacutemeno El teacutermino expliacutecito significa queacute tipos de conceptos son usados y las restricciones de estos conceptos Y por uacuteltimo el teacutermino compartido se refiere a que las ontologiacuteas capturan conocimiento que es aceptado por todos y no es individual de un grupo Actualmente se les estaacute dando maacutes uso a las ontologiacuteas en el campo de la Inteligencia Artificial En este campo se define la ontologiacutea como una descripcioacuten formal y expliacutecita de conceptos de un dominio (classes a las que nos referiremos como conceptos) propiedades de cada concepto las cuales describen las caracteriacutesticas y atributos de los conceptos (slots llamados tambieacuten como propiedades o roles) y restricciones de las propiedades (facets conocidas como restricciones) La informacioacuten que es representada a traveacutes de los lenguajes semaacutenticos puede ser compartida entre aplicaciones como los agentes

OWL y Web Semaacutentica

La Web Semaacutentica es una Web extendida dotada de mayor significado en la que cualquier usuario en Internet podraacute encontrar respuestas a sus preguntas de forma maacutes raacutepida y sencilla gracias a una informacioacuten mejor definida Al dotar a la Web de maacutes significado y por lo tanto de maacutes semaacutentica se pueden obtener soluciones a problemas habituales en la buacutesqueda de informacioacuten gracias a la utilizacioacuten de una infraestructura comuacuten mediante la cual es posible compartir procesar y transferir informacioacuten de forma sencilla Esta Web extendida y basada en el significado se apoya en lenguajes universales que resuelven los problemas ocasionados por una Web carente de semaacutentica en la que en ocasiones el acceso a la informacioacuten se convierte en una tarea difiacutecil y frustrante

LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES La comunicacioacuten es uno de los aspectos importantes dentro de una comunidad de agentes la cual permitiraacute compartir y enviar mensajes entre agentes Los meacutetodos tradicionales permiten la comunicacioacuten entre los agentes pero eacutestos no son suficientes para lograr un comportamiento social entre los agentes para ello es necesario que los mensajes tengan un significado y contenido semaacutentico Se han desarrollado varios lenguajes los cuales son usados para el enviacuteo de mensajes a continuacioacuten hablaremos de dos de ellos KQML Knowledge Query and Manipulation Language (KQML) es uno de los lenguajes que nos provee la estructura para enviar mensajes entre agentes Dentro de sus principales caracteriacutesticas tenemos que es independiente de la sintaxis del contenido y la ontologiacutea

26

que se utilizaraacute Asiacute mismo es independiente del mecanismo de transporte (TCPIP SMTP IIOP etc) e independiente del contenido del lenguaje (KIF SQL STEP Prolog etc) KQML fue desarrollado por el consorcio DARPA Knowledge Sharing Effort (KSE) cuyo principal objetivo fue desarrollar una base tecnoloacutegica para construir en forma progresiva sistemas cada vez con maacutes funcionalidad complejidad y amplitud KQML provee un lenguaje y un protocolo para intercambiar informacioacuten entre agentes inteligentes y para lograr este intercambio se tiene que compartir una sintaxis y una semaacutentica comuacuten para que los mensajes sean entendidos por los agentes Al lenguaje KQML se le dividioacute en tres capas la capa de contenido alberga el contenido del mensaje que es especificado en cualquier formato ya sea texto o binario La capa de comunicacioacuten contiene paraacutemetros como el identificador uacutenico asociado a la comunicacioacuten identidad del remitente e identidad del destinatario La capa de mensaje define tanto los diferentes tipos de interaccioacuten que se pueden establecer entre los agentes como los protocolos que se pueden establecer entre los agentes Tambieacuten incluye otras caracteriacutesticas como el lenguaje de representacioacuten o la ontologiacutea siendo ambos opcionales

JADE (Java Agent DEvelopment Framework)

JADEiv (Java Agent DEvelopment Framework) es un middleware que proporciona tanto un entorno de desarrollo como un entorno de ejecucioacuten para la realizacioacuten y mantenimiento de sistemas multiagente El entorno de desarrollo estaacute formado por una serie de libreriacuteas en Java que permiten la implementacioacuten de agentes de manera limpia e independiente de la plataforma sobre la que se va a ejecutar El entorno de ejecucioacuten permite a los agentes vivir y comunicarse entre ellos Estaacute realizado enteramente en Java y proporciona una serie de herramientas que permiten al desarrollador controlar y depurar a los agentes en tiempo real JADE es un middleware desarrollado por TILAB para el desarrollo de aplicaciones distribuidas multiagente JADE proporciona tanto el entorno de desarrollo para la creacioacuten de aplicaciones basadas en agentes como el entorno de ejecucioacuten JADE presenta las siguientes caracteriacutesticas

P2P Arquitectura peer-to-peer cada agente puede tomar la iniciativa en una comunicacioacuten o bien responder a peticiones que le hagan otros agentes

Interoperabilidad JADE cumple con las especificaciones FIPA por lo que los agentes desarrollados en JADE pueden interactuar con otros agentes que no tienen porque estar desarrollados con JADE aunque si deben seguir las especificaciones FIPA

Portabilidad La API que proporciona JADE es independientemente de la red sobre la que va a operar asiacute como de la versioacuten de Java utilizada teniendo la misma API para J2EE J2SE y J2ME

27

Intuitiva JADE se ha desarrollado para ofrecer una API faacutecil de aprender y sencilla de manejar

Los agentes JADE tienen nombres uacutenicos y se permite a cada agente descubrir a otros agentes y comunicarse con ellos mediante comunicaciones punto a punto Los agentes proporcionan servicios cada agente puede buscar a otros dependiendo de los servicios que proporcionen otros agentes La comunicacioacuten entre agentes se lleva a cabo a traveacutes de mensajes asiacutencronos es decir el agente que enviacutea el mensaje y el destinatario del mensaje no tienen porqueacute estar disponibles al mismo tiempo Es maacutes el destinatario no tiene porqueacute existir en ese instante Los mensajes se pueden enviar a un agente en concreto o se pueden enviar a agentes que se desconocen pero se sabe que poseen unas ciertas caracteriacutesticas JADE proporciona mecanismos de seguridad ya que habraacute agentes a los que no se les esteacute permitido comunicarse con otros agentes de manera que una aplicacioacuten puede verificar la identidad del receptor y del agente que enviacutea el mensaje y no dejar realizar actuaciones no permitidas para un determinado agente La estructura de los mensajes se basa en el lenguaje ACL (Agent Communication Lenguaje) que ha sido definido por la FIPA JADE facilita mecanismos para el desarrollo de los objetivos que deben alcanzar los agentes Los comportamientos (behaviours) y la comunicacioacuten entre los agentes (junto con el servicio de paacuteginas amarillas) proporcionan los recursos necesarios para programar un sistema multiagente JADE tambieacuten permite a los agentes cambiar de Host (en J2SE) Un agente puede interrumpir en un momento dado su ejecucioacuten migrar a otro host (sin necesidad de que el coacutedigo esteacute previamente en el host destino) y continuar la ejecucioacuten en el mismo punto en el que la interrumpioacute Esto permite un balanceo de carga ya que permite a los agentes migrar hosts menos cargados El entorno de ejecucioacuten proporciona un marco donde poder ejecutar los agentes y herramientas graacuteficas para su monitorizacioacuten y depuracioacuten Los agentes JADE necesitan del entorno de ejecucioacuten donde poder vivir Cada instancia del entorno de ejecucioacuten se denomina contenedor (container) Al conjunto de los contenedores se le denomina plataforma (platform) y proporciona una capa que oculta a los agentes (y al desarrollador) el entorno donde se ha decidido ejecutar la aplicacioacuten En cada plataforma debe existir un contenedor especial denominado contenedor principal (main container) La principal diferencia del contenedor principal respecto al resto de contenedores es que alberga dos agentes especiales

AMS (Agent Management System) Este agente proporciona el servicio de nombres asegurando que cada agente en la plataforma disponga de un nombre uacutenico Tambieacuten representa la autoridad es posible crear y matar agentes en contenedores remotos requeriendoselo al agente AMS

DF (Directory Facilitator) Proporciona el servicio de Paacuteginas Amarillas Gracias al agente DF un agente puede encontrar otros agentes que provean los servicios necesarios para lograr sus objetivos

28

La caracteriacutestica mas importante del entorno de ejecucioacuten es la interfaz graacutefica que proporciona desde la que podemos controlar y depurar los agentes existentes Todas las herramientas han sido desarrolladas como agentes y siguen sus mismas reglas Disentildeo Arquitectura

Agente usuario

Agente de ontologiacutea

Agente de filtrado

Agente de recuperacioacuten

BD

OntologiacuteaSistema

Motor de buacutesqueda

El sistema esta disentildeado para que un usuario realice alguna buacutesqueda relacionada con alguno de los tres temas propuestos en nuestra base de conocimiento que son Ingenieriacutea de Software Base de Datos y Deportes El sistema esta basado en una arquitectura multiagente la cual se conforma por Agente Usuario Actuacutea de intermediario entre el usuario y el sistema Sus servicios son solicitados por el usuario para resolver las consultas El usuario le suministra una consulta y el sistema le devuelve una lista de documentos que pueden satisfacer sus necesidades Este agente tiene la capacidad de acceder a la base de datos con el objetivo de almacenar yo recuperar resultados Base de Datos Guardaraacute las ultimas buacutesquedas realizadas para su posterior consulta a peticioacuten del usuario Agente de Filtrado Gestiona la recuperacioacuten de documentos y realiza el filtrado de los mismos proporcionados por el Agente de Recuperacioacuten Recibe la peticioacuten del Agente Usuario y a su vez esta es enviada al Agente Ontologiacutea para que este regrese una evaluacioacuten de la consulta y de esta forma conocer si es necesaria una redefinicioacuten de la consulta En caso de ser necesaria se espera recibir el nuevo vector de consulta hasta que se cumpla una de dos opciones el usuario deje de redefinir la consulta o la consulta sea concreta Cuando la consulta sea concreta es enviada de nueva cuenta al Agente Ontologiacutea el cual regresaraacute el Nuevo Vector Expandido Este seraacute enviado al Agente de Recuperacioacuten Cuando el Agente de Recuperacioacuten regrese los urlacutes de los resultados (con sus respectivos vectores de teacuterminos) se realiza una evaluacioacuten de los vectores de cada documento con respecto al vector de buacutesqueda expandida con el objetivo de asignarles una calificacioacuten Gracias a esta calificacioacuten podemos obtener aquellos documentos que mejor cumplan con las expectativas del usuario (Estos documentos son regresados al Agente Usuario) Agente Ontologiacutea Recibe el vector de consulta proporcionado por el Agente de Filtrado La informacioacuten contenida en el vector de consulta es comparada con la existente en nuestra ontologiacutea Una vez verificada la existencia de la informacioacuten del

29

vector consulta dentro de la ontologiacutea este se encarga de devolver la distancia y el umbral al Agente de Filtrado Se espera que este devuelva una peticioacuten para expandir ese mismo vector Puede darse el caso de obtener dos tipos de buacutesquedas una general y otra mucho maacutes definida En cualquiera de los caso obtenemos un nuevo vector de buacutesqueda (con una informacioacuten mejor definida este es el Vector de Buacutesqueda Expandido) que es enviado de regreso al Agente de Filtrado el cual genera una copia y le es enviada al Agente de Recuperacioacuten Ontologiacutea Representa nuestra base de conocimientos Esta compuesta por tres aacutereas de conocimiento las cuales son Ingenieriacutea se Software Bases de Datos y Deportes Para poder representar esta ontologiacutea en un lenguaje entendible para agentes inteligentes se programaraacute bajo los fundamentos de las estructuras RDF contenidas en las especificaciones de XML y siguiendo los estaacutendares de la W3C Agente Recuperacioacuten Realiza la buacutesqueda gracias a la informacioacuten que le es entregada por el Agente de Filtrado (se trata Vector de Buacutesqueda Expandido generado por el Agente de Ontologiacutea) El agente estructura esta informacioacuten y se introduce en un motor de buacutesqueda(diacutegase por ejemplo Google) de tal manera que obtengamos una lista de posibles documentos A cada documento se le asigna un vector de teacuterminos con sus pesos derivados de un anaacutelisis TFIDF para despueacutes regresar las urlacutes con su respectivo vector de teacuterminos al Agente Filtrado RESULTADOS Este proyecto tiene la finalidad de desarrollar el software para un antivirus y un traductor Pero durante los estudios de anaacutelisis de estos dos productos se encontroacute que el software para la buacutesqueda de la informacioacuten tambieacuten puede ser implementada por medio de teacutecnicas de Inteligencia Artificial Para construir el software de aplicacioacuten para estas necesidades se usa la metodologiacutea de cascada Donde los pasos a seguir son el Anaacutelisis Disentildeo Pruebas Implementacioacuten y Mantenimiento Hasta este momento estamos en la etapa de pruebas de algunos moacutedulos de los tres productos IMPACTO El detector de intrusos en una red es de mucha importancia debido a que en la actualidad se han diseminado muchos virus que pueden ser transmitidos a traveacutes de intrusos Hasta la fecha el meacutetodo de proteccioacuten se hace de forma manual La finalidad de este software es automatizar la proteccioacuten El traductor de texto a voz tiene como primera aplicacioacuten el auxilio en la lectura de documentos para las personas invidentes o deacutebiles visuales una segunda aplicacioacuten es la comunicacioacuten con la computadora por medio del lenguaje natura El buscador de informacioacuten es un auxilio en la buacutesqueda de datos en una base de datos de conocimiento Ya que tambieacuten estaacuten proliferando las bibliotecas virtuales es una ayuda en la localizacioacuten de informacioacuten cientiacutefica y un preaacutembulo para un software de apoyo docente BIBLIOGRAFIacuteA [1] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

30

[2] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps[3] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[4] w3c en espantildeol OWL y Web Semaacutentica httpwwww3cesDivulgacionGuiasbrevesWebSemantica

[5] Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

[6] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[7] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[8] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[9] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[10] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[11] Laboratorios Googlehttplabsgooglecompapershtml

[12] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[13] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

[14] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

[15] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps [16] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[18] Trabajos de Agente en JADE http Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

31

[19] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[20] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[21] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[22] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[23] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[24] Laboratorios Googlehttplabsgooglecompapershtml

[25] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[26] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

  • En este reporte teacutecnico se presenta la descripcioacuten general anaacutelisis y estado actual de de los trabajos terminales TT2006135 TT20060097 y TT20060068 que tienen por titulo ldquoSistema prototipo de deteccioacuten de intrusos en la red utilizando agentes inteligentesrdquo rdquoProcesamiento digital de imaacutegenes para la conversioacuten de texto a vozrdquo y ldquoSistema de buacutesqueda de informacioacuten por conceptos en la webrdquo respectivamente Los prototipos que se obtendraacuten seraacuten un software robusto que se desarrollaraacuten con teacutecnicas de inteligencia artificial como Agentes inteligentes y Redes neuronales
  • Estructura de un sistema neuronal artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
    • Estado Del Arte
      • Estructura de un sistema neuronal artificial
        • Sistemas paralelos distribuidos y adaptativos
          • Modelo estaacutendar de neurona artificial
            • Sigmoidal logariacutetmica
              • Empleo del perceptroacuten para reconocer funciones loacutegicas
              • Algoritmo de aprendizaje del perceptroacuten
                • Objetivo General
                • Estado Del Arte
                • A continuacioacuten se mencionan algunos de ellos
                  • Buscador muacuteltiple Copernic 2001 Pro
                  • Lets Browse
                  • Agentes de Informacioacuten
                    • Marco Conceptual
                      • Clases y Propiedades
                      • El sistema de escritura de datos [type system]
                      • Clases y Recursos como Conjuntos y Elementos
                        • Ontologiacuteas en la Representacioacuten del Conocimiento
                          • LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES
                          • JADE (Java Agent DEvelopment Framework)
                            • Disentildeo
                            • Arquitectura
Page 7: INSTITUTO POLITÉCNICO NACIONALsappi.ipn.mx/cgpi/archivos_anexo/20061387_3286.pdf · La comunicación del hombre con la computadora por medio del lenguaje natural, es la finalidad

7

Tamantildeo del texto escaneable 6-22 puntos

6-22 puntos (Sistema miacutenimo)

En el caso del software para PC se planea que el tamantildeo

del texto no sea un factor que limite su conversioacuten a

vozPronunciacioacuten de nombres propios Si Si

Pronunciacioacuten de siglas Si Si

Se mantiene el estilo del texto escaneado

No Devuelve ASCII regular4

No Inicialmente devolveraacute

ASCII regular (se pretende utilizar el

estaacutendar Unicode)

Identifica la presencia de imaacutegenes No

No (En general) Si (Soacutelo para libros que

sigan el estaacutendar del software)

Ergonomiacutea y peso Si 85 g (3 oz) Se planea que el sistema miacutenimo sea ergonoacutemico y

ademaacutes tenga un peso razonable5

Tabla 1 Comparacioacuten entre las funcionalidades de Quicktionary y las de CIMATEV METODOLOGIacuteA DE DESARROLLO Se reconoce que el software al igual que todos los sistemas complejos evoluciona con el tiempo Los requerimientos que el sistema tiene que cubrir a menudo cambian conforme a que el desarrollo proceda haciendo que el camino que lleva al producto final no sea real las estrictas fechas de entrega hacen que sea imposible finalizar un producto completo por lo que se debe introducir una versioacuten limitada para cumplir con los tiempos de entrega Bajo estas circunstancias los desarrolladores necesitan de un modelo de proceso que ha sido disentildeado para acomodarse a un producto que evolucione con el tiempo Redes Neuronales Artificiales La historia de las redes neuronales comenzariacutea con el cientiacutefico aragoneacutes Santiago Ramoacuten y Cajal descubridor de la estructura neuronal del sistema nervioso A finales del siglo XIX la teoriacutea reticularista que sosteniacutea que el sistema nervioso estaba formado por una red continua de fibras nerviosas era extendida Sin embargo tras antildeos de trabajo aplicando y perfeccionando la teacutecnica de tincioacuten de Golgi en 1888 Ramoacuten y Cajal demostroacute que el sistema nervioso en realidad estaba compuesto por una red de ceacutelulas individuales las neuronas ampliamente conectadas entre siacute Pero no soacutelo observoacute al 4 ASCII de 7 bits Se pueden representar hasta 128 (27) caracteres diferentes 5 El acceso que se tenga a la tecnologiacutea que permita cubrir estos requerimientos no funcionales (ergonomiacutea y peso) seraacute decisivo para la realizacioacuten de los mismos

8

microscopio los pequentildeos espacios vaciacuteos que separaban unas neuronas de otras sino que tambieacuten establecioacute que la informacioacuten fluye en la neurona desde las dendritas hacia el axoacuten atravesando el soma Este descubrimiento baacutesico para el desarrollo de las neuro-ciencias en el siglo XX causoacute en la eacutepoca una verdadera conmocioacuten en la forma de entender el sistema nervioso concedieacutendose el premio Nobel de medicina a Ramoacuten y Cajal en 1906 (compartido con Camilo Golgi)

Axoacuten

Dendritas

Soma

Figura 22 Estructura de una neurona bioloacutegica tiacutepica

Sinapsis

Obviamente gracias al advenimiento de la microscopiacutea electroacutenica y a la introduccioacuten de otras importantes teacutecnicas se ha llegado a profundizar mucho maacutes en el estudio de la neurona Se estima que el sistema nervioso contiene alrededor de cien mil millones de neuronas Vistas al microscopio este tipo de ceacutelulas pueden presentarse en muacuteltiples formas aunque muchas de ellas presentan un aspecto similar muy peculiar (ver figura 21) con un cuerpo celular o soma (de entre 10 y 80 micras de longitud) del que surge un denso aacuterbol de ramificaciones (aacuterbol dendriacutetico) compuesto por las dendritas y del cual parte una fibra tubular denominada axoacuten (cuya longitud variacutea desde las 100 micras hasta el metro en el caso de las neuronas motoras1) que tambieacuten se ramifica en su extremo final para conectarse con otras neuronas En las interneuronas el axoacuten enviacutea la informacioacuten a otras neuronas mientras que las neuronas motoras lo hacen directamente al muacutesculo Existe un tercer tipo de neuronas las receptoras o sensoras que en vez de recibir informacioacuten de otras neuronas la reciben directamente del exterior (tal sucede por ejemplo en los conos y bastones de la retina) Se calcula que una neurona del coacutertex cerebral recibe informacioacuten por teacutermino medio de unas 10000 neuronas (convergencia) y enviacutea impulsos a varios cientos de ellas (divergencia)

Estructura de un sistema neuronal artificial Los ANS (Artificial Neural Systems) imitan la estructura hardware del sistema nervioso con la intencioacuten de construir sistemas de procesamiento de la informacioacuten

1 Lo que constituye el nervio

9

paralelos distribuidos y adaptativos que puedan presentar un cierto comportamiento ldquointeligenterdquo

Sistemas paralelos distribuidos y adaptativos Los tres conceptos clave de los sistemas nerviosos que se pretende emular en los artificiales son paralelismo de caacutelculo memoria distribuida y adaptabilidad al entorno De esta manera podemos hablar de las redes neuronales como sistemas paralelos distribuidos y adaptativos El procesamiento paralelo resulta esencial como se deduce de un sencillo ejemplo Una computadora convencional tipo PC que trabaja secuencialmente instruccioacuten por instruccioacuten empleariacutea varios minutos en realizar sobre una imagen compuesta por digamos 256x256 pixeles una sencilla tarea de tratamiento en bajo nivel (acentuar contrastes extraer contornos ) mucho maacutes simple que la que lleva a cabo el sistema visual para reconocer una imagen Un sistema basado en 16 DSP2 operando en paralelo empleariacutea del orden de 20 ms en la misma tarea puesto que cada procesador podriacutea operar en paralelo sobre diferentes sectores de la imagen Por otra parte el cerebro tarda este mismo tiempo en preprocesar una imagen compuesta por millones de pixeles (los que representan los conos y bastones de la retina) extraer sus rasgos caracteriacutesticos analizarla e interpretarla Ninguacuten sistema creado por el hombre es capaz de realizar algo semejante La clave reside en que los millones de neuronas que intervienen en el procesamiento de la imagen trabajan en paralelo sobre la totalidad de la imagen Otro concepto importante que aparece en el cerebro es el de memoria distribuida Mientras que en un computador la informacioacuten ocupa posiciones de memoria bien definidas en los sistemas neuronales se encuentra distribuida por las sinapsis de la red de modo que si una sinapsis resulta dantildeada no perdemos maacutes que una parte muy pequentildea de la informacioacuten Ademaacutes los sistemas neuronales bioloacutegicos son redundantes de modo que muchas neuronas y sinapsis pueden realizar un papel similar en definitiva el sistema resulta tolerante a fallos El uacuteltimo concepto fundamental es el de adaptabilidad Los ANS se adaptan faacutecilmente al entorno modificando sus sinapsis (y mediante otros mecanismos tambieacuten) y aprenden de la experiencia pudiendo generalizar conceptos a partir de casos particulares En el campo de las redes neuronales se llamaraacute a esta propiedad generalizacioacuten a partir de ejemplos Formalmente y desde el punto de vista del grupo PDP (Parallel Distributed Processing Reseach Group de la Universidad de California en San Diego) un sistema neuronal o conexionista estaacute compuesto por los siguientes elementos

bull Un conjunto de procesadores elementales o neuronas artificiales bull Un patroacuten de conectividad o arquitectura bull Una dinaacutemica de activaciones bull Una regla o dinaacutemica de aprendizaje bull El entorno donde opera

2 Digital Signal Processor

10

Modelo estaacutendar de neurona artificial Se denomina procesador elemental o neurona a un dispositivo simple de caacutelculo que a partir de un vector de entrada procedente del exterior o de otras neuronas proporciona una uacutenica respuesta o salida En este apartado se trataraacute el modelo denominado neurona estaacutendar (ver figura 31) que constituye un caso particular de un modelo maacutes complejo llamado modelo PDP El modelo estaacutendar considera que la regla de propagacioacuten es la suma ponderada y que la funcioacuten de salida es la identidad De esta forma la neurona estaacutendar etiquetada como i consiste en

bull Un conjunto de entradas Xj(t) y pesos sinaacutepticos Wij que representan la intensidad de interaccioacuten entre cada neurona presinaacuteptica j y cada neurona postsinaacuteptica i (ver figura 41)

bull Una regla de propagacioacuten σ(Wij Xj(t)) que proporciona el valor del potencial postsinaacuteptico hi(t)= σ(Wij Xj(t))=sumWijXj de la neurona i en funcioacuten de sus pesos y entradas

bull Una funcioacuten de activacioacuten Yi(t)=fi(hi(t)) que representa simultaacuteneamente la salida de la neurona i y su estado de activacioacuten (en el caso del modelo PDP las funciones de activacioacuten y de salida son tratadas por separado)

Con frecuencia se antildeade al conjunto de pesos de la neurona un paraacutemetro adicional θi que se denominaraacute umbral1 que se resta del potencial postsinaacuteptico por lo que el argumento de la funcioacuten de activacioacuten queda

sumj WijXj - θi

lo que representa antildeadir un grado de libertad adicional a la neurona En el caso de nodos de respuesta todo-nada este paraacutemetro representaraacute el umbral de disparo de la neurona es decir el nivel miacutenimo que debe alcanzar el potencial postsinaacuteptico (o potencial de membrana) para que la neurona se dispare o active En conclusioacuten el modelo de neurona denominado estaacutendar queda

Yi(t)=fi (sumj WijXj - θi)

Ahora bien si se hace que los iacutendices i y j comiencen en 0 se puede definir Wi0= θi y X0=-1 (constante) con lo que el potencial postsinaacuteptico (potencial local o de membrana) se obtiene realizando la suma desde j=0

Yi(t)=fi (sumj=012n WijXj)

1 En algunos modelos es threshold es decir ldquoumbralrdquo y en otros bias que no tiene una traduccioacuten clara en este caso

11

sum f ( )

Axoacuten Yi

Wi1

Wi2

Wij

Win

θi-1

X1

X2

Habiendo definido de esta manera la neurona estaacutendar basta con establecer la forma de la funcioacuten de activacioacuten para determinarla por completo A continuacioacuten se muestra una tabla con las funciones de activacioacuten maacutes utilizadas

Funcioacuten Relacioacuten entradasalida Graacutefica

Escaloacuten y=0 nlt0 y=1 nge0

Escaloacuten simeacutetrica y= -1 nlt0 y=+1 nge0

Lineal Identidad

y=n

Lineal saturada y=0 nlt0

y=n 0lenle1 y=1 ngt1

Lineal saturada simeacutetrica

y=-1 nlt-1 y=n -1lenle1

y=1 ngt1

Sigmoidal logariacutetmica

ney minus+=

11

Xj

Xn

Entradas

Dendritas

Sinapsis

Cuerpo celular

Salida

Umbral

Figura 23 Modelo de neurona estaacutendar

12

Tangente

hiperboacutelica

nn

nn

eeeey minus

minus

+minus

=

Lineal positiva y=0 nlt0 y=n 0len

Competitiva a=1 neurona con maacutex n

a=0 todas las demaacutes

C

Tabla 2 Funciones de activacioacuten habituales (se han omitido algunas constantes)

Arquitecturas de redes neuronales Se denomina arquitectura a la topologiacutea estructura o patroacuten de conexionado de una red neuronal En un ANS los nodos se conectan por medio de sinapsis esta estructura de conexiones sinaacutepticas determina el comportamiento de la red Las conexiones sinaacutepticas son direccionales es decir la informacioacuten soacutelo puede propagarse en un uacutenico sentido (desde la neurona presinaacuteptica a la postsinaacuteptica ver figura 24)

j

i

YjXj

Wij

YiNeurona presinaacuteptica

Neurona postsinaacuteptica

Figura 24 Interaccioacuten entre una neurona presinaacuteptica y otra postsinaacuteptica

En general las neuronas se suelen agrupar en unidades estructurales que denominaremos capas Las neuronas de una capa pueden agruparse a su vez formando grupos neuronales (clusters) Dentro de un grupo o de una capa si no existe este tipo de agrupacioacuten las neuronas suelen ser del mismo tipo Finalmente el conjunto de una o maacutes capas constituye la red neuronal

Se distinguen tres tipos de capas de entrada de salida y ocultas Una capa de entrada o sensorial estaacute compuesta por neuronas que reciben datos o sentildeales procedentes del entorno (por ejemplo proporcionado por sensores) Una capa de salida es aquella cuyas neuronas proporcionan la respuesta de la red neuronal (sus neuronas pueden estar conectadas a efectores) Una capa oculta es aquella que no tiene una conexioacuten directa

13

con el entorno es decir que no se conecta directamente ni a organos sensores o efectores Esta capa proporciona a la red neuronal grados de libertad adicionales gracias a los cuales puede encontrar representaciones internas correspondientes a determinados rasgos del entorno proporcionando una mayor riqueza computacional (ver figura 25)

Informacioacuten Capa de salida

(efectora) Capa oculta Capa de entrada (procesamiento) (sensorial)

Figura 25 Arquitectura unidireccional de tres capas de entrada oculta y de salida

Las conexiones entre las neuronas pueden ser excitadoras o inhibidoras un peso sinaacuteptico negativo define una conexioacuten inhibidora mientras uno positivo determina una conexioacuten excitadora Habitualmente no se suele definir una conexioacuten como de un tipo u otro sino que por medio del aprendizaje se obtiene un valor para el peso que incluye signo y magnitud

El perceptroacuten simple Este modelo neuronal fue introducido por Rosenblatt a finales de los antildeos cincuenta Dicha estructura se inspira en las primeras etapas de procesamiento de los sistemas sensoriales de los animales (por ejemplo la visioacuten) en los cuales la infomacioacuten va atravesando sucesivas capas de neuronas que realizan un procesamiento progresivamente de maacutes alto nivel Un perceptroacuten simple es un modelo unidireccional compuesto por dos capas de neuronas una sensorial o de entrada y otra de salida A continuacioacuten se muestra en la figura 26 su representacioacuten y la funcion de transferencia que utiliza

Figura 26 a) Las neuronas de entrada no realizan ninguacuten coacutemputo uacutenicamente enviacutean la informacioacuten a las neuronas de salida b) la funcioacuten de activacioacuten de las neuronas de la capa de salida es de tipo escaloacuten

Capa de entrada

Capa de salida

f(x) x

Funcioacuten escaloacuten

a) b)

14

El perceptroacuten puede utilizarse tanto como clasificador como para la representacioacuten de funciones booleanas pues su neurona es esencialmente de tipo MacCulloch-Pitts es decir de salida binaria La importancia histoacuterica del perceptroacuten radica en su caraacutecter de dispositivo entrenable ya que el algoritmo de aprendizaje que desarrollo Rosenblatt permite determinar automaacuteticamente los pesos sinaacutepticos que clasifican un conjunto de patrones a partir de un conjunto de ejemplos etiquetados (a esto se le llama red neuronal supervisada y el perceptron simple es de este tipo) Ahora se mostraraacute que un perceptroacuten permite realizar tareas de clasificacioacuten Cada neurona del perceptroacuten representa una determinada clase de modo que dado un vetor de entrada una cierta neurona responde con 0 si no pertenece a la clase que representa y con un 1 si siacute pertenece Es faacutecil ver que una neurona tipo perceptroacuten solamente permite discriminar entre dos clases linealmente separables (es decir cuyas regiones de decisioacuten pueden ser separadas mediante una uacutenica condicioacuten lineal o hiperplano que es una liacutenea recta si trabajamos en dos dimensiones) Sea una neurona tipo perceptroacuten de dos entradas x1 y x2 con salida y cuya operacioacuten se define por lo tanto como

y = H(w1x1+w2x2 - ө) o bien 1 si w1x1+w2x2 geӨ y = 0 si w1x1+w2x2 ltӨ

Si consideramos x1 y x2 situadas sobre los ejes de abscisas y ordenadas en el plano la condicioacuten

w1x1+ w2x2 -Ө = 0 rarr x2 = - (w1 w2) x1 + Ө w2 representa una recta (hiperplano si trabajamos con n entradas) que divide el plano en dos regiones que son aquellas para las que la neurona proporciona una salida 0 o 1 respectivamente como se muestra en la figura 27

x x

x x x

x x x

x

x

oo

oo

o o

o

X1

X2

Regioacuten w1x1+w2x2 geӨ Regioacuten w1x1+w2x2 ltӨ

Figura 27 Una neurona tipo perceptroacuten representa un discriminador lineal que separa dos regiones en el espacio que representan dos diferentes clases de patrones En esta graacutefica x = lsquo1rsquo y o = lsquo0rsquo

15

Empleo del perceptroacuten para reconocer funciones loacutegicas -Funcion linealmente separable Consideremos la funcioacuten loacutegica NAND2 (AND negada de dos entradas) que representamos sobre un plano en la graacutefica 3 que se presenta en seguida

x (10) o (11)

x (00)

x (01) X1

X2

Figura 28 Funcioacuten loacutegica NAND de dos entradas En la graacutefica x = lsquo1rsquo y o = lsquo0rsquo

Se puede ver que en este caso existen paraacutemetros w1 w2 y Ө que permiten una recta que separa perfectamente las regiones correspondientes a los valores loacutegicos 0 y 1 Y por lo tanto se dice que la funcioacuten loacutegica NAND es linealmente separable -Funcioacuten no separable linealmente

Ahora consideremos la funcioacuten loacutegica or-exclusivo (XOR) y representandola en un plano en la figura 29

x (10) o (11)

o (00)

x (01) X1

X2

Figura 29 Funcioacuten loacutegica XOR de dos entradas que no es linealmente separable

16

Al ser XOR no linealmente separable se dice que ldquola clase de funciones no separables linealmente no pueden ser representadas por un perceptroacuten simplerdquo El perceptroacuten presenta serias limitaciones pues solamente puede representar funciones linealmentes separables Y aunque pueda aprender automaacuteticamente a representar complejas funciones booleanas o resolver con eacutexito muchos problemas de clasificacioacuten con un cierto algoritmo en ocasiones fallara draacutesticamente Minsky (que es uno de los padres de la inteligencia artificial) y Papera estudiaron en profundidad el perceptroacuten y en 1969 publicaron un exhaustivo trabajo donde exhibian las limitantes del modelo en lo que resultoacute decisivo para que muchos de los recursos que se destinaban a su investigacioacuten se desviara a otras aacutereas Una solucioacuten para las limitantes del perceptroacuten simple puede consistir en incluir maacutes capas en la arquitectura con lo que tendremos un perceptroacuten multicapa A finales de los antildeos sesenta ya se apuntaba como solucioacuten a las limitaciones del perceptroacuten introducir capas ocultas pero el problema estaba en que no se teniacutea un algoritmo de aprendizaje para el perceptroacuten multicapa (con capas ocultas) Dicho algoritmo fue propuesto por Paul Verbos alrededor de 1974 pero fue preciso hasta mediados de los ochenta cuando el grupo PDP redescubriera un algoritmo similar al cual denominaron Back-Propagation o BP y dieran a conocer a la comunidad internacional su gran potencial para la resolucioacuten de problemas praacutecticos

Algoritmo de aprendizaje del perceptroacuten El del perceptroacuten es un algoritmo de aprendizaje de los denominados por correccion de errores Los algoritmos de este tipo ajustan los pesos en proporcioacuten a la diferencia existente entre la salida actual de la red y la salida deseada con el objetivo de minimizar el error actual de la red Definicioacuten del algoritmo de aprendizaje Sea un conjunto de p patrones xn n=1hellipp con sus salidas deseadas tn Tanto las entradas como las salidas solamente pueden tomar los valores -1 o 1 Se tiene una arquitectura de perceptroacuten simple con pesos iniciales aleatorios y se requiere que clasifique correctamente todos los patrones del conjunto de aprendizaje (solo si son linealmente separables) Ahora actuaremos del siguiente modo ante la presentacioacuten del patron n-eacutesimo si la respuesta que proporciona el perceptroacuten es correcta no actualizaremos los pesos si es incorrecta los modificaremos seguacuten la regla de Hebb aplicada a nuestro caso Primero se muestra la regla de Hebb y despueacutes la regla modificada para el perceptroacuten simple Regla de Hebb

∆wij = ξyixjDonde

17

o wij corresponde a los pesos de una entrada j por la salida i de la neurona

o ξ se denomina ritmo de aprendizaje que su valor suele estar entre 1 y 0 Regla modificada para el perceptroacuten simple

2ξtnixnj si yn

ine tni ∆wn

ij(t)= 0 si yn

i= tni que puede reescribirse del siguiete modo que es la forma usual de expresar la regla del perceptroacuten

∆wnij(t)= 2ξ(tni - yn

i)xnj

Es importante mencionar que el proceso de aprendizaje es iterativo se

parte de una configuracioacuten sinaacuteptica de partida (normalmente de pesos pequentildeos aleatorios) y se presentan una y otra vez los patrones para que los pesos se ajusten iterativamente seguacuten forma usual de la regla del perceptroacuten hasta que todos queden bien clasificados El hiperplano que establece el liacutemite entre dos clases se desplaza lentamente hasta conseguir separarlas por completo (si es posible) como se ve en la figura 210

t= 115

x x

x x x

x x x

x

x

o

o o

o o o o

o

o o

o

o

o

o

o

o

o

X2

t= 21

t= 0 t= 4

X1

Figura 210 Regiones de decisioacuten que establece iterativamente el perceptroacuten durante el aprendizaje (en la iteracioacuten 115 ha conseguido separar ya las dos clases)

Avances En este capiacutetulo se haraacute una descripcioacuten de los avances que se han hecho hasta el momento Se hablaraacute acerca del entrenamiento de la red neuronal del sistema el reconocimiento de caracteres tanto con la red neuronal como con los clasificadores ya expuestos y el tratamiento de imaacutegenes para eliminar el ruido tipo sal y pimienta Reconocimiento de caracteres Se han hecho avances acerca del reconocimiento de caracteres utilizando redes neuronales y clasificadores diversos A continuacioacuten se exponen dichos avances

Entrenamiento de la red neuronal Para entrenar la red neuronal se utilizoacute el algoritmo de retropropagacioacuten expuesto en el capiacutetulo 1 Se disentildeoacute un programa en Java que permite entrenar una red neuronal de 3

18

capas La cantidad de clases a discriminar es variable y para este caso se utilizoacute una matriz de 5x8 es decir se tomaron 40 rasgos de entrada

Utilizando la red neuronal para reconocer caracteres A continuacioacuten se muestra en la imagen 211 el programa disentildeado en Java que permite discriminar un nuacutemero variable de clases Para este caso se eligioacute discriminar entre los diacutegitos del 0 al 9 El programa para reconocer los 128 caracteres referentes al sintetizador de voz tendraacute una interfaz similar con la diferencia de que la rejilla para ingresar el patroacuten a reconocer seraacute de 20x20 El programa mostrado fue programado tanto para entrenar la red como para reconocer los diacutegitos Se puede elegir entre los entrenamientos hechos para probar la efectividad de la red Las estadiacutesticas del entrenamiento elegido se muestran en la parte inferior de la pantalla

Imagen 211 Reconocimiento de los diacutegitos del 0 al 9 utilizando una red neuronal de 3 capas

19

Utilizando los clasificadores para reconocer caracteres Dentro de las teacutecnicas de reconocimiento de patrones existen diferentes clasificadores que nos permiten a partir de un conjunto de entrenamiento (en eacuteste caso un conjunto de tipos de letras que deseamos reconocer) saber a queacute clase pertenece un patroacuten de prueba que se introduce

Imagen 212 Un ejemplo de un clasificador KNN con un valor de K=3 y usando la meacutetrica City-Block para clasificar el patroacuten de prueba pruebabmp entre tres clases

En la imagen 212 se muestra como se puede clasificar un caraacutecter escalado de la imagen prueba 4bmp dentro de las tres clases existentes Se observa que si se puede clasificar este tipo de patrones pero veamos un ejemplo donde no sea posible clasificar un patroacuten de prueba y por queacute

Imagen 213 Un ejemplo de un clasificador KNN con un valor de K=5 y usando la meacutetrica Euclidiana para clasificar el patroacuten de prueba prueb3bmp entre tres clases El patroacuten no fue reconocido correctamente

20

Ahora como se observa no se pudo clasificar correctamente el patroacuten de prueba ya que pertenece claramente a la clase 3 pero por el clasificador que usamos o por el nuacutemero de K-vecinos o por el tipo de meacutetrica usada sucedioacute que en su mayoriacutea eran de la clase 2 y no de la clase 3 Tal vez si se hubiera elegido un valor de K menor a 5 tendriacutea maacutes posibilidades de clasificar correctamente Finalmente usar este tipo de teacutecnicas para reconocer caracteres es muy bueno ya que permite reconocer letras que se encuentran rotadas escaladas o trasladadas por una teacutecnica matemaacutetica llamada Momentos de Hu pero al tener una situacioacuten donde la imagen de prueba se encuentra exactamente a la misma distancia de dos o mas clases se crea el problema de no saber a que clase clasificar dicho patroacuten

Tratamiento digital de las imaacutegenes a capturar A continuacioacuten se muestra en la imagen 214 un programa que se codificoacute en C++ Builder y permite tratar digitalmente imaacutegenes BMP con la finalidad de eliminar el ruido pasarlas a escala de grises y binarizarlas El programa es capaz de generar histogramas de color

Imagen 214 Programa para tratar imaacutegenes digitalmente

21

CAPIacuteTULO 3 Buscadores La informacioacuten almacenada tendriacutea poco valor si no podemos consultarla buscar los datos en una base de datos o en muchas bases de datos que tienen conexioacuten por medio de la web es lo que nos permite explotar la informacioacuten Sin embargo la buacutesqueda seraacute eficiente si la respuesta del buscador es lo maacutes especifica o cercana a los temas solicitados Por lo que el software con aplicacioacuten de buscador es importante desarrollar un proceso para su creacioacuten Objetivo General Desarrollar un sistema de buacutesqueda de informacioacuten por conceptos en la Web basado en agentes inteligentes mediante la aplicacioacuten de ontologiacuteas Estado Del Arte Existen algunos sistemas que proporcionan buacutesquedas de informacioacuten basados en algunas de las tecnologiacuteas que vamos a utilizar Es habitual encontrar este tipo de buscadores y algunos otros similares bautizados como Megabuscadores o Multibuscadores a pesar de que estos teacuterminos no sean los maacutes idoacuteneos por lo que al hablar de este tipo de sistemas podemos referirlos como Buscadores Muacuteltiples en virtud de las caracteriacutesticas de su funcionamiento A continuacioacuten se mencionan algunos de ellos

Buscador muacuteltiple Copernic 2001 Pro Copernici producto de la empresa canadiense Copernic Technologies es un agente buscador que transfiere una ecuacioacuten de buacutesqueda a un conjunto de buscadores de manera simultaacutenea recupera las referencias pertinentes y las ordena seguacuten el grado medio de relevancia obtenido de cada uno de los buscadores La empresa creadora de Copernic se constituyoacute en 1996 con el propoacutesito de desarrollar soluciones innovadoras en tecnologiacuteas de agentes de buacutesqueda para conseguir un acceso y una gestioacuten eficientes de la gran masa de informacioacuten presente en Internet El programa se desarrolloacute el antildeo siguiente en una versioacuten experimental y se puso al alcance del puacuteblico en noviembre de 1998 Desde entonces se han lanzado versiones con elementos nuevos la mayoriacutea de los cuales no obstante soacutelo estaacuten disponibles en las ediciones comerciales La edicioacuten gratuita ofrece los servicios baacutesicos de consulta y con la intencioacuten de persuadir a los posibles compradores de las ediciones comerciales da una idea bastante aproximada de las posibilidades del programa completo

Lets Browse Como en otros medios (por ejemplo la televisioacuten) la navegacioacuten en Internet puede ser realizada por grupos de gente [Lieberman et al 1997] Lets browse muestra como un agente puede asistir a un grupo de gente en su navegacioacuten sugirieacutendoles materiales nuevos que puedan ser de intereacutes comuacuten entre ellos

Este trabajo es una extensioacuten del agente Letizia [Lieberman 1995] el cual selecciona paacuteginas de Web Letizia inicia una buacutesqueda por niveles visita las ligas que encuentra a partir de la paacutegina que su usuario esteacute revisando y selecciona aquellas que sean similares a los intereses que ha aprendido de su usuario (observando su navegacioacuten) Posteriormente muestra sus recomendaciones en un canal de navegacioacuten

22

El trabajo del agente consiste en seleccionar de la misma forma que Letizia lo hace aquellas paacuteginas que mejor satisfagan los intereses de todos los participantes Las caracteriacutesticas de Letrsquos browse son la deteccioacuten automaacutetica de la presencia de usuarios navegacioacuten automaacutetica (en canal de navegacioacuten) el despliege dinaacutemico de las preferencias de los usuarios y la explicacioacuten de las recomendaciones Permite ademaacutes revisar las paacuteginas desde el punto de vista de otra persona (con sus preferencias) y asiacute estimar cual seriacutea su posible opinioacuten acerca de dicha paacutegina auacuten cuando aquella persona no la haya revisado anteriormente

Agentes de Informacioacuten Un agente de informacioacuteiin es utilizado para organizar los espacios de informacioacuten del usuario y facilitar su explotacioacuten En el WWW (World Wide Web) se estaacuten implementando diversos agentes de informacioacuten El Agente Letizia [Lieberman 1995] que existe en un navegador de Web anticipa queacute artiacuteculos pueden ser de intereacutes para el usuario basaacutendose en las conductas pasadas del usuario Las paacuteginas que cree son de intereacutes del usuario Letizia las despliega en una ventana de sugerencias por unos instantes Marco Conceptual Actualmente para poder hacer la consulta de cualquier tipo de informacioacuten en Internet la mayoriacutea de las personas recurre a los motores de buacutesquedas conocidos como Google Yahoo Altavista por mencionar algunos siendo que estos usan diferentes meacutetodos para llegar a su objetivo podemos darnos cuenta que arrojan distintos resultados uno de otro que en el mejor de los casos coinciden en un porcentaje muy poco satisfactorio con la buacutesqueda en cuestioacuten con lo que concluimos que una respuesta a esta falta de precisioacuten en cuanto a la buacutesqueda de un tema en especial es mejor la buacutesqueda de conceptos lo cual permite al usuario acercarse maacutes al tema de su intereacutes Es importante enfocar nuestra solucioacuten apoyaacutendonos en un motor de buacutesqueda y aplicando herramientas como los Agentes que nos permitan recopilar la informacioacuten maacutes precisa de cada buacutesqueda a traveacutes de un algoritmo propio obteniendo resultados maacutes cercanos a los deseados ya que estos provienen de muacuteltiples documentos ahorrando tiempo y ganando precisioacuten a la vez Muy frecuentemente encontramos que cuando se trata de buacutesquedas en Internet a traveacutes de los motores de buacutesqueda populares los usuarios hacen consultas de diversas paginas y es muy difiacutecil llevar una lista de todos los sitios visitados o de aquellos que nos mostraron la informacioacuten maacutes adecuada nuestro sistema es capaz de registrar dentro de una base de datos un iacutendice de todos los sitios que se obtuvieron en la buacutesqueda de un tema o concepto con lo que el usuario no tendraacute que realizar una ldquonuevardquo buacutesqueda de un tema antes consultado sino que tendraacute a la mano todos los sitios que arrojoacute la primera buacutesqueda Marco teoacuterico

Descripcioacuten de RDF

El Resource Description Frameworiiik (RDF) es un fundamento para el procesamiento de metadatos proporciona interoperabilidad entre aplicaciones que intercambian informacioacuten legible por maacutequina en la Web RDF utiliza XML para intercambiar descripciones de recursos Web pero los recursos descritos pueden ser de cualquier tipo

23

incluyendo recursos XML y no-XML RDF resalta las facilidades para hacer posible el procesamiento automaacutetico de los recursos Web RDF puede utilizarse en diferentes aacutereas de aplicacioacuten por ejemplo en la recuperacioacuten de recursos para proporcionar mejores capacidades a los motores de buacutesqueda en catalogacioacuten para la descripcioacuten de contenido y relaciones de contenido accesibles en un sitio Web particular en una paacutegina o biblioteca digital a traveacutes de agentes de software inteligente para facilitar que el conocimiento se comparta e intercambie en la valoracioacuten de contenido en la descripcioacuten de colecciones de paacuteginas que representan un documento loacutegico individual para la descripcioacuten de los derechos de propiedad intelectual de las paacuteginas Web y para expresar las preferencias de privacidad de un usuario asiacute como las poliacuteticas de privacidad de un sitio Web Las descripciones utilizadas por estas aplicaciones pueden modelarse como relaciones entre recursos Web El modelo de datos de RDF tal y como se especifica en RDFMS define un modelo simple para describir las relaciones entre recursos en teacuterminos de propiedades y valores designadas Las propiedades RDF pueden entenderse como atributos de un recurso y en este sentido corresponden con los tradicionales pares atributo-valor Las propiedades RDF tambieacuten representa relaciones entre recursos De esta forma el modelo de datos RDF puede parecer un diagrama entidad-relacioacuten El modelo de datos RDF sin embargo no proporciona mecanismos para declarar estas propiedades ni proporcionan ninguacuten mecanismo para definir las relaciones entre estas propiedades y otros recursos Este es el papel [la funcioacuten] del Esquema RDF

Las comunidades de descripcioacuten de recursos necesitan la habilidad para decir ciertas cosas sobre ciertas clases de recursos Para describir recursos bibliograacuteficos por ejemplo son habituales atributos descriptivos tales como autor [author] tiacutetulo [title] y materia [subject] Para la certificacioacuten digital se necesitan muchas veces atributos tales como esquema simple de deteccioacuten de errores [checksum] y autorizacioacuten [authorization] La declaracioacuten de estas propiedades (atributos) y su semaacutentica correspondiente se definen en el contexto de RDF como un Esquema RDF Un esquema define no soacutelo las propiedades de un recurso (ej tiacutetulo autor materia tamantildeo color etc) sino que puede tambieacuten definir los tipos de recursos que se describiraacuten (libros paacuteginas Web personas empresas etc)

Los Esquemas RDF podriacutean contrastarse con las Definiciones del Tipo de Documentos (DTDs) de XML y los Esquemas XML A diferencia de una DTD o Esquema XML que dan restricciones especiacuteficas en la estructura de un documento XML un Esquema RDF proporciona informacioacuten sobre la interpretacioacuten de una sentencia dada en un modelo de datos RDF Mientras un Esquema XML puede utilizarse para validar la sintaxis de una expresioacuten RDFXML un esquema sintaacutectico soacutelo no es suficiente para los objetivos de RDF Los Esquemas RDF pueden tambieacuten especificar restricciones que deben seguirse por estos modelos de datos

Clases y Propiedades Un Esquema RDF se expresa a traveacutes de un modelo de datos descrito en la especificacioacuten del Modelo y la Sintaxis RDF [RDFMS] El lenguaje de descripcioacuten del esquema es un simple conjunto de recursos y propiedades definidos por la Especificacioacuten del Esquema RDF y la parte impliacutecita de cada modelo RDF que utiliza la mecaacutenica del esquema RDF

24

El sistema de escritura de datos [type system] El Esquema RDF definido en esta especificacioacuten es una coleccioacuten de recursos RDF que puede utilizarse para describir propiedades de otros recursos RDF (incluyendo propiedades) que definene vocabularios RDF de aplicacioacuten especiacutefica El nuacutecleo del vocabulario del esquema se define en un namespace denominado aquiacute informalmente rdfs e identificado por el URI de referencia httpwwww3org200001rdf-schema Esta especificacioacuten utiliza tambieacuten el prefijo rdf para referirse al namespace principal RDF httpwwww3org19990222-rdf-syntax-ns

Como se describe en la especificacioacuten del modelo y la sintaxis [RDFMS] los recursos pueden ser objetos especiacuteficos de una categoriacutea [instances] de una o maacutes clases esto se indica con la propiedad rdftype Las clases se organizan muchas veces de una forma jeraacuterquica por ejemplo la clase Dog [perro] podriacutea considerarse subclase de Mammal [mamiacutefero] que a su vez es una subclase de Animal dando a entender que cualquier recurso que esteacute en rdftype Dog se considera tambieacuten que estaacute en rdftype AnimalEsta especificacioacuten describe una propiedad rdfssubClassOf para indicar dichas relaciones entre clases

El sistema de escritura [type system] del Esquema RDF es similar al sistema de los lenguajes de programacioacuten orientados a objetos tales como Java Sin embargo RDF se diferencia de muchos de esos sistemas en que en lugar de definir una clase en teacuterminos de propiedades sus objetos especiacuteficos de una categoriacutea [instances] pueden tener un esquema RDF que definiraacute las propiedades en teacuterminos de clases de recurso a los que se aplican Este es el papel de las restricciones rdfsdomain y de rdfsrange

Por ejemplo podemos definir que la propiedad author tenga un dominio de Book y un alcance de Literal mientras que un sistema OO claacutesico podriacutea definir tiacutepicamente una clase Book con un atributo denominado author de tipo Literal

Clases y Recursos como Conjuntos y Elementos El siguiente esquema ilustra el concepto de clase subclase y recurso Una clase se describe por un rectaacutengulo redondeado un recurso se describe por un punto grande En la figura abajo se han dibujado flechas desde un recurso a una clase que define Una subclase se presenta en un rectaacutengulo redondeado (la subclase) completamente incluido en otro (la superclase) Si un recurso estaacute dentro de una clase entonces existe una propiedad rdftype o expliacutecita o impliacutecita de aquel recurso cuyo valor es un recurso que define la clase que contiene (Estas propiedades se muestran como arcos en la representacioacuten graacutefica directamente etiquetada en el Esquema 2) El recurso RDF representado en el esquema 1 se describe tanto en el resto de esta especificacioacuten como en la especificacioacuten del Modelo y Sintaxis RDF

Ontologiacuteas en la Representacioacuten del Conocimiento En estos uacuteltimos antildeos se incrementoacute la cantidad de informacioacuten en la Internet lo cual motivoacute el incremento de la complejidad y la diversidad de la informacioacuten Esto tambieacuten motivoacute el intereacutes de automatizar muchas actividades que tradicionalmente se realizan en forma manual La principal motivacioacuten en el uso de las ontologiacuteas es que permiten compartir y reutilizar conocimiento en un dominio De ahiacute el intereacutes de muchos

25

investigadores en el aacuterea de inteligencia artificial para tratar de aplicar las ontologiacuteas en la representacioacuten de conocimiento Las ontologiacuteas son un elemento importante en la Web Semaacutentica y es un teacutermino filosoacutefico que trata sobre la naturaleza de la existencia y los tipos de objetos que existen Tambieacuten la ontologiacutea se puede definir como una especificacioacuten expliacutecita de una conceptualizacioacuten compartida La conceptualizacioacuten se refiere a un modelo abstracto de un fenoacutemeno en el mundo en donde se tienen que identificar los conceptos relevantes de este fenoacutemeno El teacutermino expliacutecito significa queacute tipos de conceptos son usados y las restricciones de estos conceptos Y por uacuteltimo el teacutermino compartido se refiere a que las ontologiacuteas capturan conocimiento que es aceptado por todos y no es individual de un grupo Actualmente se les estaacute dando maacutes uso a las ontologiacuteas en el campo de la Inteligencia Artificial En este campo se define la ontologiacutea como una descripcioacuten formal y expliacutecita de conceptos de un dominio (classes a las que nos referiremos como conceptos) propiedades de cada concepto las cuales describen las caracteriacutesticas y atributos de los conceptos (slots llamados tambieacuten como propiedades o roles) y restricciones de las propiedades (facets conocidas como restricciones) La informacioacuten que es representada a traveacutes de los lenguajes semaacutenticos puede ser compartida entre aplicaciones como los agentes

OWL y Web Semaacutentica

La Web Semaacutentica es una Web extendida dotada de mayor significado en la que cualquier usuario en Internet podraacute encontrar respuestas a sus preguntas de forma maacutes raacutepida y sencilla gracias a una informacioacuten mejor definida Al dotar a la Web de maacutes significado y por lo tanto de maacutes semaacutentica se pueden obtener soluciones a problemas habituales en la buacutesqueda de informacioacuten gracias a la utilizacioacuten de una infraestructura comuacuten mediante la cual es posible compartir procesar y transferir informacioacuten de forma sencilla Esta Web extendida y basada en el significado se apoya en lenguajes universales que resuelven los problemas ocasionados por una Web carente de semaacutentica en la que en ocasiones el acceso a la informacioacuten se convierte en una tarea difiacutecil y frustrante

LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES La comunicacioacuten es uno de los aspectos importantes dentro de una comunidad de agentes la cual permitiraacute compartir y enviar mensajes entre agentes Los meacutetodos tradicionales permiten la comunicacioacuten entre los agentes pero eacutestos no son suficientes para lograr un comportamiento social entre los agentes para ello es necesario que los mensajes tengan un significado y contenido semaacutentico Se han desarrollado varios lenguajes los cuales son usados para el enviacuteo de mensajes a continuacioacuten hablaremos de dos de ellos KQML Knowledge Query and Manipulation Language (KQML) es uno de los lenguajes que nos provee la estructura para enviar mensajes entre agentes Dentro de sus principales caracteriacutesticas tenemos que es independiente de la sintaxis del contenido y la ontologiacutea

26

que se utilizaraacute Asiacute mismo es independiente del mecanismo de transporte (TCPIP SMTP IIOP etc) e independiente del contenido del lenguaje (KIF SQL STEP Prolog etc) KQML fue desarrollado por el consorcio DARPA Knowledge Sharing Effort (KSE) cuyo principal objetivo fue desarrollar una base tecnoloacutegica para construir en forma progresiva sistemas cada vez con maacutes funcionalidad complejidad y amplitud KQML provee un lenguaje y un protocolo para intercambiar informacioacuten entre agentes inteligentes y para lograr este intercambio se tiene que compartir una sintaxis y una semaacutentica comuacuten para que los mensajes sean entendidos por los agentes Al lenguaje KQML se le dividioacute en tres capas la capa de contenido alberga el contenido del mensaje que es especificado en cualquier formato ya sea texto o binario La capa de comunicacioacuten contiene paraacutemetros como el identificador uacutenico asociado a la comunicacioacuten identidad del remitente e identidad del destinatario La capa de mensaje define tanto los diferentes tipos de interaccioacuten que se pueden establecer entre los agentes como los protocolos que se pueden establecer entre los agentes Tambieacuten incluye otras caracteriacutesticas como el lenguaje de representacioacuten o la ontologiacutea siendo ambos opcionales

JADE (Java Agent DEvelopment Framework)

JADEiv (Java Agent DEvelopment Framework) es un middleware que proporciona tanto un entorno de desarrollo como un entorno de ejecucioacuten para la realizacioacuten y mantenimiento de sistemas multiagente El entorno de desarrollo estaacute formado por una serie de libreriacuteas en Java que permiten la implementacioacuten de agentes de manera limpia e independiente de la plataforma sobre la que se va a ejecutar El entorno de ejecucioacuten permite a los agentes vivir y comunicarse entre ellos Estaacute realizado enteramente en Java y proporciona una serie de herramientas que permiten al desarrollador controlar y depurar a los agentes en tiempo real JADE es un middleware desarrollado por TILAB para el desarrollo de aplicaciones distribuidas multiagente JADE proporciona tanto el entorno de desarrollo para la creacioacuten de aplicaciones basadas en agentes como el entorno de ejecucioacuten JADE presenta las siguientes caracteriacutesticas

P2P Arquitectura peer-to-peer cada agente puede tomar la iniciativa en una comunicacioacuten o bien responder a peticiones que le hagan otros agentes

Interoperabilidad JADE cumple con las especificaciones FIPA por lo que los agentes desarrollados en JADE pueden interactuar con otros agentes que no tienen porque estar desarrollados con JADE aunque si deben seguir las especificaciones FIPA

Portabilidad La API que proporciona JADE es independientemente de la red sobre la que va a operar asiacute como de la versioacuten de Java utilizada teniendo la misma API para J2EE J2SE y J2ME

27

Intuitiva JADE se ha desarrollado para ofrecer una API faacutecil de aprender y sencilla de manejar

Los agentes JADE tienen nombres uacutenicos y se permite a cada agente descubrir a otros agentes y comunicarse con ellos mediante comunicaciones punto a punto Los agentes proporcionan servicios cada agente puede buscar a otros dependiendo de los servicios que proporcionen otros agentes La comunicacioacuten entre agentes se lleva a cabo a traveacutes de mensajes asiacutencronos es decir el agente que enviacutea el mensaje y el destinatario del mensaje no tienen porqueacute estar disponibles al mismo tiempo Es maacutes el destinatario no tiene porqueacute existir en ese instante Los mensajes se pueden enviar a un agente en concreto o se pueden enviar a agentes que se desconocen pero se sabe que poseen unas ciertas caracteriacutesticas JADE proporciona mecanismos de seguridad ya que habraacute agentes a los que no se les esteacute permitido comunicarse con otros agentes de manera que una aplicacioacuten puede verificar la identidad del receptor y del agente que enviacutea el mensaje y no dejar realizar actuaciones no permitidas para un determinado agente La estructura de los mensajes se basa en el lenguaje ACL (Agent Communication Lenguaje) que ha sido definido por la FIPA JADE facilita mecanismos para el desarrollo de los objetivos que deben alcanzar los agentes Los comportamientos (behaviours) y la comunicacioacuten entre los agentes (junto con el servicio de paacuteginas amarillas) proporcionan los recursos necesarios para programar un sistema multiagente JADE tambieacuten permite a los agentes cambiar de Host (en J2SE) Un agente puede interrumpir en un momento dado su ejecucioacuten migrar a otro host (sin necesidad de que el coacutedigo esteacute previamente en el host destino) y continuar la ejecucioacuten en el mismo punto en el que la interrumpioacute Esto permite un balanceo de carga ya que permite a los agentes migrar hosts menos cargados El entorno de ejecucioacuten proporciona un marco donde poder ejecutar los agentes y herramientas graacuteficas para su monitorizacioacuten y depuracioacuten Los agentes JADE necesitan del entorno de ejecucioacuten donde poder vivir Cada instancia del entorno de ejecucioacuten se denomina contenedor (container) Al conjunto de los contenedores se le denomina plataforma (platform) y proporciona una capa que oculta a los agentes (y al desarrollador) el entorno donde se ha decidido ejecutar la aplicacioacuten En cada plataforma debe existir un contenedor especial denominado contenedor principal (main container) La principal diferencia del contenedor principal respecto al resto de contenedores es que alberga dos agentes especiales

AMS (Agent Management System) Este agente proporciona el servicio de nombres asegurando que cada agente en la plataforma disponga de un nombre uacutenico Tambieacuten representa la autoridad es posible crear y matar agentes en contenedores remotos requeriendoselo al agente AMS

DF (Directory Facilitator) Proporciona el servicio de Paacuteginas Amarillas Gracias al agente DF un agente puede encontrar otros agentes que provean los servicios necesarios para lograr sus objetivos

28

La caracteriacutestica mas importante del entorno de ejecucioacuten es la interfaz graacutefica que proporciona desde la que podemos controlar y depurar los agentes existentes Todas las herramientas han sido desarrolladas como agentes y siguen sus mismas reglas Disentildeo Arquitectura

Agente usuario

Agente de ontologiacutea

Agente de filtrado

Agente de recuperacioacuten

BD

OntologiacuteaSistema

Motor de buacutesqueda

El sistema esta disentildeado para que un usuario realice alguna buacutesqueda relacionada con alguno de los tres temas propuestos en nuestra base de conocimiento que son Ingenieriacutea de Software Base de Datos y Deportes El sistema esta basado en una arquitectura multiagente la cual se conforma por Agente Usuario Actuacutea de intermediario entre el usuario y el sistema Sus servicios son solicitados por el usuario para resolver las consultas El usuario le suministra una consulta y el sistema le devuelve una lista de documentos que pueden satisfacer sus necesidades Este agente tiene la capacidad de acceder a la base de datos con el objetivo de almacenar yo recuperar resultados Base de Datos Guardaraacute las ultimas buacutesquedas realizadas para su posterior consulta a peticioacuten del usuario Agente de Filtrado Gestiona la recuperacioacuten de documentos y realiza el filtrado de los mismos proporcionados por el Agente de Recuperacioacuten Recibe la peticioacuten del Agente Usuario y a su vez esta es enviada al Agente Ontologiacutea para que este regrese una evaluacioacuten de la consulta y de esta forma conocer si es necesaria una redefinicioacuten de la consulta En caso de ser necesaria se espera recibir el nuevo vector de consulta hasta que se cumpla una de dos opciones el usuario deje de redefinir la consulta o la consulta sea concreta Cuando la consulta sea concreta es enviada de nueva cuenta al Agente Ontologiacutea el cual regresaraacute el Nuevo Vector Expandido Este seraacute enviado al Agente de Recuperacioacuten Cuando el Agente de Recuperacioacuten regrese los urlacutes de los resultados (con sus respectivos vectores de teacuterminos) se realiza una evaluacioacuten de los vectores de cada documento con respecto al vector de buacutesqueda expandida con el objetivo de asignarles una calificacioacuten Gracias a esta calificacioacuten podemos obtener aquellos documentos que mejor cumplan con las expectativas del usuario (Estos documentos son regresados al Agente Usuario) Agente Ontologiacutea Recibe el vector de consulta proporcionado por el Agente de Filtrado La informacioacuten contenida en el vector de consulta es comparada con la existente en nuestra ontologiacutea Una vez verificada la existencia de la informacioacuten del

29

vector consulta dentro de la ontologiacutea este se encarga de devolver la distancia y el umbral al Agente de Filtrado Se espera que este devuelva una peticioacuten para expandir ese mismo vector Puede darse el caso de obtener dos tipos de buacutesquedas una general y otra mucho maacutes definida En cualquiera de los caso obtenemos un nuevo vector de buacutesqueda (con una informacioacuten mejor definida este es el Vector de Buacutesqueda Expandido) que es enviado de regreso al Agente de Filtrado el cual genera una copia y le es enviada al Agente de Recuperacioacuten Ontologiacutea Representa nuestra base de conocimientos Esta compuesta por tres aacutereas de conocimiento las cuales son Ingenieriacutea se Software Bases de Datos y Deportes Para poder representar esta ontologiacutea en un lenguaje entendible para agentes inteligentes se programaraacute bajo los fundamentos de las estructuras RDF contenidas en las especificaciones de XML y siguiendo los estaacutendares de la W3C Agente Recuperacioacuten Realiza la buacutesqueda gracias a la informacioacuten que le es entregada por el Agente de Filtrado (se trata Vector de Buacutesqueda Expandido generado por el Agente de Ontologiacutea) El agente estructura esta informacioacuten y se introduce en un motor de buacutesqueda(diacutegase por ejemplo Google) de tal manera que obtengamos una lista de posibles documentos A cada documento se le asigna un vector de teacuterminos con sus pesos derivados de un anaacutelisis TFIDF para despueacutes regresar las urlacutes con su respectivo vector de teacuterminos al Agente Filtrado RESULTADOS Este proyecto tiene la finalidad de desarrollar el software para un antivirus y un traductor Pero durante los estudios de anaacutelisis de estos dos productos se encontroacute que el software para la buacutesqueda de la informacioacuten tambieacuten puede ser implementada por medio de teacutecnicas de Inteligencia Artificial Para construir el software de aplicacioacuten para estas necesidades se usa la metodologiacutea de cascada Donde los pasos a seguir son el Anaacutelisis Disentildeo Pruebas Implementacioacuten y Mantenimiento Hasta este momento estamos en la etapa de pruebas de algunos moacutedulos de los tres productos IMPACTO El detector de intrusos en una red es de mucha importancia debido a que en la actualidad se han diseminado muchos virus que pueden ser transmitidos a traveacutes de intrusos Hasta la fecha el meacutetodo de proteccioacuten se hace de forma manual La finalidad de este software es automatizar la proteccioacuten El traductor de texto a voz tiene como primera aplicacioacuten el auxilio en la lectura de documentos para las personas invidentes o deacutebiles visuales una segunda aplicacioacuten es la comunicacioacuten con la computadora por medio del lenguaje natura El buscador de informacioacuten es un auxilio en la buacutesqueda de datos en una base de datos de conocimiento Ya que tambieacuten estaacuten proliferando las bibliotecas virtuales es una ayuda en la localizacioacuten de informacioacuten cientiacutefica y un preaacutembulo para un software de apoyo docente BIBLIOGRAFIacuteA [1] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

30

[2] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps[3] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[4] w3c en espantildeol OWL y Web Semaacutentica httpwwww3cesDivulgacionGuiasbrevesWebSemantica

[5] Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

[6] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[7] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[8] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[9] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[10] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[11] Laboratorios Googlehttplabsgooglecompapershtml

[12] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[13] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

[14] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

[15] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps [16] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[18] Trabajos de Agente en JADE http Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

31

[19] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[20] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[21] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[22] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[23] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[24] Laboratorios Googlehttplabsgooglecompapershtml

[25] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[26] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

  • En este reporte teacutecnico se presenta la descripcioacuten general anaacutelisis y estado actual de de los trabajos terminales TT2006135 TT20060097 y TT20060068 que tienen por titulo ldquoSistema prototipo de deteccioacuten de intrusos en la red utilizando agentes inteligentesrdquo rdquoProcesamiento digital de imaacutegenes para la conversioacuten de texto a vozrdquo y ldquoSistema de buacutesqueda de informacioacuten por conceptos en la webrdquo respectivamente Los prototipos que se obtendraacuten seraacuten un software robusto que se desarrollaraacuten con teacutecnicas de inteligencia artificial como Agentes inteligentes y Redes neuronales
  • Estructura de un sistema neuronal artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
    • Estado Del Arte
      • Estructura de un sistema neuronal artificial
        • Sistemas paralelos distribuidos y adaptativos
          • Modelo estaacutendar de neurona artificial
            • Sigmoidal logariacutetmica
              • Empleo del perceptroacuten para reconocer funciones loacutegicas
              • Algoritmo de aprendizaje del perceptroacuten
                • Objetivo General
                • Estado Del Arte
                • A continuacioacuten se mencionan algunos de ellos
                  • Buscador muacuteltiple Copernic 2001 Pro
                  • Lets Browse
                  • Agentes de Informacioacuten
                    • Marco Conceptual
                      • Clases y Propiedades
                      • El sistema de escritura de datos [type system]
                      • Clases y Recursos como Conjuntos y Elementos
                        • Ontologiacuteas en la Representacioacuten del Conocimiento
                          • LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES
                          • JADE (Java Agent DEvelopment Framework)
                            • Disentildeo
                            • Arquitectura
Page 8: INSTITUTO POLITÉCNICO NACIONALsappi.ipn.mx/cgpi/archivos_anexo/20061387_3286.pdf · La comunicación del hombre con la computadora por medio del lenguaje natural, es la finalidad

8

microscopio los pequentildeos espacios vaciacuteos que separaban unas neuronas de otras sino que tambieacuten establecioacute que la informacioacuten fluye en la neurona desde las dendritas hacia el axoacuten atravesando el soma Este descubrimiento baacutesico para el desarrollo de las neuro-ciencias en el siglo XX causoacute en la eacutepoca una verdadera conmocioacuten en la forma de entender el sistema nervioso concedieacutendose el premio Nobel de medicina a Ramoacuten y Cajal en 1906 (compartido con Camilo Golgi)

Axoacuten

Dendritas

Soma

Figura 22 Estructura de una neurona bioloacutegica tiacutepica

Sinapsis

Obviamente gracias al advenimiento de la microscopiacutea electroacutenica y a la introduccioacuten de otras importantes teacutecnicas se ha llegado a profundizar mucho maacutes en el estudio de la neurona Se estima que el sistema nervioso contiene alrededor de cien mil millones de neuronas Vistas al microscopio este tipo de ceacutelulas pueden presentarse en muacuteltiples formas aunque muchas de ellas presentan un aspecto similar muy peculiar (ver figura 21) con un cuerpo celular o soma (de entre 10 y 80 micras de longitud) del que surge un denso aacuterbol de ramificaciones (aacuterbol dendriacutetico) compuesto por las dendritas y del cual parte una fibra tubular denominada axoacuten (cuya longitud variacutea desde las 100 micras hasta el metro en el caso de las neuronas motoras1) que tambieacuten se ramifica en su extremo final para conectarse con otras neuronas En las interneuronas el axoacuten enviacutea la informacioacuten a otras neuronas mientras que las neuronas motoras lo hacen directamente al muacutesculo Existe un tercer tipo de neuronas las receptoras o sensoras que en vez de recibir informacioacuten de otras neuronas la reciben directamente del exterior (tal sucede por ejemplo en los conos y bastones de la retina) Se calcula que una neurona del coacutertex cerebral recibe informacioacuten por teacutermino medio de unas 10000 neuronas (convergencia) y enviacutea impulsos a varios cientos de ellas (divergencia)

Estructura de un sistema neuronal artificial Los ANS (Artificial Neural Systems) imitan la estructura hardware del sistema nervioso con la intencioacuten de construir sistemas de procesamiento de la informacioacuten

1 Lo que constituye el nervio

9

paralelos distribuidos y adaptativos que puedan presentar un cierto comportamiento ldquointeligenterdquo

Sistemas paralelos distribuidos y adaptativos Los tres conceptos clave de los sistemas nerviosos que se pretende emular en los artificiales son paralelismo de caacutelculo memoria distribuida y adaptabilidad al entorno De esta manera podemos hablar de las redes neuronales como sistemas paralelos distribuidos y adaptativos El procesamiento paralelo resulta esencial como se deduce de un sencillo ejemplo Una computadora convencional tipo PC que trabaja secuencialmente instruccioacuten por instruccioacuten empleariacutea varios minutos en realizar sobre una imagen compuesta por digamos 256x256 pixeles una sencilla tarea de tratamiento en bajo nivel (acentuar contrastes extraer contornos ) mucho maacutes simple que la que lleva a cabo el sistema visual para reconocer una imagen Un sistema basado en 16 DSP2 operando en paralelo empleariacutea del orden de 20 ms en la misma tarea puesto que cada procesador podriacutea operar en paralelo sobre diferentes sectores de la imagen Por otra parte el cerebro tarda este mismo tiempo en preprocesar una imagen compuesta por millones de pixeles (los que representan los conos y bastones de la retina) extraer sus rasgos caracteriacutesticos analizarla e interpretarla Ninguacuten sistema creado por el hombre es capaz de realizar algo semejante La clave reside en que los millones de neuronas que intervienen en el procesamiento de la imagen trabajan en paralelo sobre la totalidad de la imagen Otro concepto importante que aparece en el cerebro es el de memoria distribuida Mientras que en un computador la informacioacuten ocupa posiciones de memoria bien definidas en los sistemas neuronales se encuentra distribuida por las sinapsis de la red de modo que si una sinapsis resulta dantildeada no perdemos maacutes que una parte muy pequentildea de la informacioacuten Ademaacutes los sistemas neuronales bioloacutegicos son redundantes de modo que muchas neuronas y sinapsis pueden realizar un papel similar en definitiva el sistema resulta tolerante a fallos El uacuteltimo concepto fundamental es el de adaptabilidad Los ANS se adaptan faacutecilmente al entorno modificando sus sinapsis (y mediante otros mecanismos tambieacuten) y aprenden de la experiencia pudiendo generalizar conceptos a partir de casos particulares En el campo de las redes neuronales se llamaraacute a esta propiedad generalizacioacuten a partir de ejemplos Formalmente y desde el punto de vista del grupo PDP (Parallel Distributed Processing Reseach Group de la Universidad de California en San Diego) un sistema neuronal o conexionista estaacute compuesto por los siguientes elementos

bull Un conjunto de procesadores elementales o neuronas artificiales bull Un patroacuten de conectividad o arquitectura bull Una dinaacutemica de activaciones bull Una regla o dinaacutemica de aprendizaje bull El entorno donde opera

2 Digital Signal Processor

10

Modelo estaacutendar de neurona artificial Se denomina procesador elemental o neurona a un dispositivo simple de caacutelculo que a partir de un vector de entrada procedente del exterior o de otras neuronas proporciona una uacutenica respuesta o salida En este apartado se trataraacute el modelo denominado neurona estaacutendar (ver figura 31) que constituye un caso particular de un modelo maacutes complejo llamado modelo PDP El modelo estaacutendar considera que la regla de propagacioacuten es la suma ponderada y que la funcioacuten de salida es la identidad De esta forma la neurona estaacutendar etiquetada como i consiste en

bull Un conjunto de entradas Xj(t) y pesos sinaacutepticos Wij que representan la intensidad de interaccioacuten entre cada neurona presinaacuteptica j y cada neurona postsinaacuteptica i (ver figura 41)

bull Una regla de propagacioacuten σ(Wij Xj(t)) que proporciona el valor del potencial postsinaacuteptico hi(t)= σ(Wij Xj(t))=sumWijXj de la neurona i en funcioacuten de sus pesos y entradas

bull Una funcioacuten de activacioacuten Yi(t)=fi(hi(t)) que representa simultaacuteneamente la salida de la neurona i y su estado de activacioacuten (en el caso del modelo PDP las funciones de activacioacuten y de salida son tratadas por separado)

Con frecuencia se antildeade al conjunto de pesos de la neurona un paraacutemetro adicional θi que se denominaraacute umbral1 que se resta del potencial postsinaacuteptico por lo que el argumento de la funcioacuten de activacioacuten queda

sumj WijXj - θi

lo que representa antildeadir un grado de libertad adicional a la neurona En el caso de nodos de respuesta todo-nada este paraacutemetro representaraacute el umbral de disparo de la neurona es decir el nivel miacutenimo que debe alcanzar el potencial postsinaacuteptico (o potencial de membrana) para que la neurona se dispare o active En conclusioacuten el modelo de neurona denominado estaacutendar queda

Yi(t)=fi (sumj WijXj - θi)

Ahora bien si se hace que los iacutendices i y j comiencen en 0 se puede definir Wi0= θi y X0=-1 (constante) con lo que el potencial postsinaacuteptico (potencial local o de membrana) se obtiene realizando la suma desde j=0

Yi(t)=fi (sumj=012n WijXj)

1 En algunos modelos es threshold es decir ldquoumbralrdquo y en otros bias que no tiene una traduccioacuten clara en este caso

11

sum f ( )

Axoacuten Yi

Wi1

Wi2

Wij

Win

θi-1

X1

X2

Habiendo definido de esta manera la neurona estaacutendar basta con establecer la forma de la funcioacuten de activacioacuten para determinarla por completo A continuacioacuten se muestra una tabla con las funciones de activacioacuten maacutes utilizadas

Funcioacuten Relacioacuten entradasalida Graacutefica

Escaloacuten y=0 nlt0 y=1 nge0

Escaloacuten simeacutetrica y= -1 nlt0 y=+1 nge0

Lineal Identidad

y=n

Lineal saturada y=0 nlt0

y=n 0lenle1 y=1 ngt1

Lineal saturada simeacutetrica

y=-1 nlt-1 y=n -1lenle1

y=1 ngt1

Sigmoidal logariacutetmica

ney minus+=

11

Xj

Xn

Entradas

Dendritas

Sinapsis

Cuerpo celular

Salida

Umbral

Figura 23 Modelo de neurona estaacutendar

12

Tangente

hiperboacutelica

nn

nn

eeeey minus

minus

+minus

=

Lineal positiva y=0 nlt0 y=n 0len

Competitiva a=1 neurona con maacutex n

a=0 todas las demaacutes

C

Tabla 2 Funciones de activacioacuten habituales (se han omitido algunas constantes)

Arquitecturas de redes neuronales Se denomina arquitectura a la topologiacutea estructura o patroacuten de conexionado de una red neuronal En un ANS los nodos se conectan por medio de sinapsis esta estructura de conexiones sinaacutepticas determina el comportamiento de la red Las conexiones sinaacutepticas son direccionales es decir la informacioacuten soacutelo puede propagarse en un uacutenico sentido (desde la neurona presinaacuteptica a la postsinaacuteptica ver figura 24)

j

i

YjXj

Wij

YiNeurona presinaacuteptica

Neurona postsinaacuteptica

Figura 24 Interaccioacuten entre una neurona presinaacuteptica y otra postsinaacuteptica

En general las neuronas se suelen agrupar en unidades estructurales que denominaremos capas Las neuronas de una capa pueden agruparse a su vez formando grupos neuronales (clusters) Dentro de un grupo o de una capa si no existe este tipo de agrupacioacuten las neuronas suelen ser del mismo tipo Finalmente el conjunto de una o maacutes capas constituye la red neuronal

Se distinguen tres tipos de capas de entrada de salida y ocultas Una capa de entrada o sensorial estaacute compuesta por neuronas que reciben datos o sentildeales procedentes del entorno (por ejemplo proporcionado por sensores) Una capa de salida es aquella cuyas neuronas proporcionan la respuesta de la red neuronal (sus neuronas pueden estar conectadas a efectores) Una capa oculta es aquella que no tiene una conexioacuten directa

13

con el entorno es decir que no se conecta directamente ni a organos sensores o efectores Esta capa proporciona a la red neuronal grados de libertad adicionales gracias a los cuales puede encontrar representaciones internas correspondientes a determinados rasgos del entorno proporcionando una mayor riqueza computacional (ver figura 25)

Informacioacuten Capa de salida

(efectora) Capa oculta Capa de entrada (procesamiento) (sensorial)

Figura 25 Arquitectura unidireccional de tres capas de entrada oculta y de salida

Las conexiones entre las neuronas pueden ser excitadoras o inhibidoras un peso sinaacuteptico negativo define una conexioacuten inhibidora mientras uno positivo determina una conexioacuten excitadora Habitualmente no se suele definir una conexioacuten como de un tipo u otro sino que por medio del aprendizaje se obtiene un valor para el peso que incluye signo y magnitud

El perceptroacuten simple Este modelo neuronal fue introducido por Rosenblatt a finales de los antildeos cincuenta Dicha estructura se inspira en las primeras etapas de procesamiento de los sistemas sensoriales de los animales (por ejemplo la visioacuten) en los cuales la infomacioacuten va atravesando sucesivas capas de neuronas que realizan un procesamiento progresivamente de maacutes alto nivel Un perceptroacuten simple es un modelo unidireccional compuesto por dos capas de neuronas una sensorial o de entrada y otra de salida A continuacioacuten se muestra en la figura 26 su representacioacuten y la funcion de transferencia que utiliza

Figura 26 a) Las neuronas de entrada no realizan ninguacuten coacutemputo uacutenicamente enviacutean la informacioacuten a las neuronas de salida b) la funcioacuten de activacioacuten de las neuronas de la capa de salida es de tipo escaloacuten

Capa de entrada

Capa de salida

f(x) x

Funcioacuten escaloacuten

a) b)

14

El perceptroacuten puede utilizarse tanto como clasificador como para la representacioacuten de funciones booleanas pues su neurona es esencialmente de tipo MacCulloch-Pitts es decir de salida binaria La importancia histoacuterica del perceptroacuten radica en su caraacutecter de dispositivo entrenable ya que el algoritmo de aprendizaje que desarrollo Rosenblatt permite determinar automaacuteticamente los pesos sinaacutepticos que clasifican un conjunto de patrones a partir de un conjunto de ejemplos etiquetados (a esto se le llama red neuronal supervisada y el perceptron simple es de este tipo) Ahora se mostraraacute que un perceptroacuten permite realizar tareas de clasificacioacuten Cada neurona del perceptroacuten representa una determinada clase de modo que dado un vetor de entrada una cierta neurona responde con 0 si no pertenece a la clase que representa y con un 1 si siacute pertenece Es faacutecil ver que una neurona tipo perceptroacuten solamente permite discriminar entre dos clases linealmente separables (es decir cuyas regiones de decisioacuten pueden ser separadas mediante una uacutenica condicioacuten lineal o hiperplano que es una liacutenea recta si trabajamos en dos dimensiones) Sea una neurona tipo perceptroacuten de dos entradas x1 y x2 con salida y cuya operacioacuten se define por lo tanto como

y = H(w1x1+w2x2 - ө) o bien 1 si w1x1+w2x2 geӨ y = 0 si w1x1+w2x2 ltӨ

Si consideramos x1 y x2 situadas sobre los ejes de abscisas y ordenadas en el plano la condicioacuten

w1x1+ w2x2 -Ө = 0 rarr x2 = - (w1 w2) x1 + Ө w2 representa una recta (hiperplano si trabajamos con n entradas) que divide el plano en dos regiones que son aquellas para las que la neurona proporciona una salida 0 o 1 respectivamente como se muestra en la figura 27

x x

x x x

x x x

x

x

oo

oo

o o

o

X1

X2

Regioacuten w1x1+w2x2 geӨ Regioacuten w1x1+w2x2 ltӨ

Figura 27 Una neurona tipo perceptroacuten representa un discriminador lineal que separa dos regiones en el espacio que representan dos diferentes clases de patrones En esta graacutefica x = lsquo1rsquo y o = lsquo0rsquo

15

Empleo del perceptroacuten para reconocer funciones loacutegicas -Funcion linealmente separable Consideremos la funcioacuten loacutegica NAND2 (AND negada de dos entradas) que representamos sobre un plano en la graacutefica 3 que se presenta en seguida

x (10) o (11)

x (00)

x (01) X1

X2

Figura 28 Funcioacuten loacutegica NAND de dos entradas En la graacutefica x = lsquo1rsquo y o = lsquo0rsquo

Se puede ver que en este caso existen paraacutemetros w1 w2 y Ө que permiten una recta que separa perfectamente las regiones correspondientes a los valores loacutegicos 0 y 1 Y por lo tanto se dice que la funcioacuten loacutegica NAND es linealmente separable -Funcioacuten no separable linealmente

Ahora consideremos la funcioacuten loacutegica or-exclusivo (XOR) y representandola en un plano en la figura 29

x (10) o (11)

o (00)

x (01) X1

X2

Figura 29 Funcioacuten loacutegica XOR de dos entradas que no es linealmente separable

16

Al ser XOR no linealmente separable se dice que ldquola clase de funciones no separables linealmente no pueden ser representadas por un perceptroacuten simplerdquo El perceptroacuten presenta serias limitaciones pues solamente puede representar funciones linealmentes separables Y aunque pueda aprender automaacuteticamente a representar complejas funciones booleanas o resolver con eacutexito muchos problemas de clasificacioacuten con un cierto algoritmo en ocasiones fallara draacutesticamente Minsky (que es uno de los padres de la inteligencia artificial) y Papera estudiaron en profundidad el perceptroacuten y en 1969 publicaron un exhaustivo trabajo donde exhibian las limitantes del modelo en lo que resultoacute decisivo para que muchos de los recursos que se destinaban a su investigacioacuten se desviara a otras aacutereas Una solucioacuten para las limitantes del perceptroacuten simple puede consistir en incluir maacutes capas en la arquitectura con lo que tendremos un perceptroacuten multicapa A finales de los antildeos sesenta ya se apuntaba como solucioacuten a las limitaciones del perceptroacuten introducir capas ocultas pero el problema estaba en que no se teniacutea un algoritmo de aprendizaje para el perceptroacuten multicapa (con capas ocultas) Dicho algoritmo fue propuesto por Paul Verbos alrededor de 1974 pero fue preciso hasta mediados de los ochenta cuando el grupo PDP redescubriera un algoritmo similar al cual denominaron Back-Propagation o BP y dieran a conocer a la comunidad internacional su gran potencial para la resolucioacuten de problemas praacutecticos

Algoritmo de aprendizaje del perceptroacuten El del perceptroacuten es un algoritmo de aprendizaje de los denominados por correccion de errores Los algoritmos de este tipo ajustan los pesos en proporcioacuten a la diferencia existente entre la salida actual de la red y la salida deseada con el objetivo de minimizar el error actual de la red Definicioacuten del algoritmo de aprendizaje Sea un conjunto de p patrones xn n=1hellipp con sus salidas deseadas tn Tanto las entradas como las salidas solamente pueden tomar los valores -1 o 1 Se tiene una arquitectura de perceptroacuten simple con pesos iniciales aleatorios y se requiere que clasifique correctamente todos los patrones del conjunto de aprendizaje (solo si son linealmente separables) Ahora actuaremos del siguiente modo ante la presentacioacuten del patron n-eacutesimo si la respuesta que proporciona el perceptroacuten es correcta no actualizaremos los pesos si es incorrecta los modificaremos seguacuten la regla de Hebb aplicada a nuestro caso Primero se muestra la regla de Hebb y despueacutes la regla modificada para el perceptroacuten simple Regla de Hebb

∆wij = ξyixjDonde

17

o wij corresponde a los pesos de una entrada j por la salida i de la neurona

o ξ se denomina ritmo de aprendizaje que su valor suele estar entre 1 y 0 Regla modificada para el perceptroacuten simple

2ξtnixnj si yn

ine tni ∆wn

ij(t)= 0 si yn

i= tni que puede reescribirse del siguiete modo que es la forma usual de expresar la regla del perceptroacuten

∆wnij(t)= 2ξ(tni - yn

i)xnj

Es importante mencionar que el proceso de aprendizaje es iterativo se

parte de una configuracioacuten sinaacuteptica de partida (normalmente de pesos pequentildeos aleatorios) y se presentan una y otra vez los patrones para que los pesos se ajusten iterativamente seguacuten forma usual de la regla del perceptroacuten hasta que todos queden bien clasificados El hiperplano que establece el liacutemite entre dos clases se desplaza lentamente hasta conseguir separarlas por completo (si es posible) como se ve en la figura 210

t= 115

x x

x x x

x x x

x

x

o

o o

o o o o

o

o o

o

o

o

o

o

o

o

X2

t= 21

t= 0 t= 4

X1

Figura 210 Regiones de decisioacuten que establece iterativamente el perceptroacuten durante el aprendizaje (en la iteracioacuten 115 ha conseguido separar ya las dos clases)

Avances En este capiacutetulo se haraacute una descripcioacuten de los avances que se han hecho hasta el momento Se hablaraacute acerca del entrenamiento de la red neuronal del sistema el reconocimiento de caracteres tanto con la red neuronal como con los clasificadores ya expuestos y el tratamiento de imaacutegenes para eliminar el ruido tipo sal y pimienta Reconocimiento de caracteres Se han hecho avances acerca del reconocimiento de caracteres utilizando redes neuronales y clasificadores diversos A continuacioacuten se exponen dichos avances

Entrenamiento de la red neuronal Para entrenar la red neuronal se utilizoacute el algoritmo de retropropagacioacuten expuesto en el capiacutetulo 1 Se disentildeoacute un programa en Java que permite entrenar una red neuronal de 3

18

capas La cantidad de clases a discriminar es variable y para este caso se utilizoacute una matriz de 5x8 es decir se tomaron 40 rasgos de entrada

Utilizando la red neuronal para reconocer caracteres A continuacioacuten se muestra en la imagen 211 el programa disentildeado en Java que permite discriminar un nuacutemero variable de clases Para este caso se eligioacute discriminar entre los diacutegitos del 0 al 9 El programa para reconocer los 128 caracteres referentes al sintetizador de voz tendraacute una interfaz similar con la diferencia de que la rejilla para ingresar el patroacuten a reconocer seraacute de 20x20 El programa mostrado fue programado tanto para entrenar la red como para reconocer los diacutegitos Se puede elegir entre los entrenamientos hechos para probar la efectividad de la red Las estadiacutesticas del entrenamiento elegido se muestran en la parte inferior de la pantalla

Imagen 211 Reconocimiento de los diacutegitos del 0 al 9 utilizando una red neuronal de 3 capas

19

Utilizando los clasificadores para reconocer caracteres Dentro de las teacutecnicas de reconocimiento de patrones existen diferentes clasificadores que nos permiten a partir de un conjunto de entrenamiento (en eacuteste caso un conjunto de tipos de letras que deseamos reconocer) saber a queacute clase pertenece un patroacuten de prueba que se introduce

Imagen 212 Un ejemplo de un clasificador KNN con un valor de K=3 y usando la meacutetrica City-Block para clasificar el patroacuten de prueba pruebabmp entre tres clases

En la imagen 212 se muestra como se puede clasificar un caraacutecter escalado de la imagen prueba 4bmp dentro de las tres clases existentes Se observa que si se puede clasificar este tipo de patrones pero veamos un ejemplo donde no sea posible clasificar un patroacuten de prueba y por queacute

Imagen 213 Un ejemplo de un clasificador KNN con un valor de K=5 y usando la meacutetrica Euclidiana para clasificar el patroacuten de prueba prueb3bmp entre tres clases El patroacuten no fue reconocido correctamente

20

Ahora como se observa no se pudo clasificar correctamente el patroacuten de prueba ya que pertenece claramente a la clase 3 pero por el clasificador que usamos o por el nuacutemero de K-vecinos o por el tipo de meacutetrica usada sucedioacute que en su mayoriacutea eran de la clase 2 y no de la clase 3 Tal vez si se hubiera elegido un valor de K menor a 5 tendriacutea maacutes posibilidades de clasificar correctamente Finalmente usar este tipo de teacutecnicas para reconocer caracteres es muy bueno ya que permite reconocer letras que se encuentran rotadas escaladas o trasladadas por una teacutecnica matemaacutetica llamada Momentos de Hu pero al tener una situacioacuten donde la imagen de prueba se encuentra exactamente a la misma distancia de dos o mas clases se crea el problema de no saber a que clase clasificar dicho patroacuten

Tratamiento digital de las imaacutegenes a capturar A continuacioacuten se muestra en la imagen 214 un programa que se codificoacute en C++ Builder y permite tratar digitalmente imaacutegenes BMP con la finalidad de eliminar el ruido pasarlas a escala de grises y binarizarlas El programa es capaz de generar histogramas de color

Imagen 214 Programa para tratar imaacutegenes digitalmente

21

CAPIacuteTULO 3 Buscadores La informacioacuten almacenada tendriacutea poco valor si no podemos consultarla buscar los datos en una base de datos o en muchas bases de datos que tienen conexioacuten por medio de la web es lo que nos permite explotar la informacioacuten Sin embargo la buacutesqueda seraacute eficiente si la respuesta del buscador es lo maacutes especifica o cercana a los temas solicitados Por lo que el software con aplicacioacuten de buscador es importante desarrollar un proceso para su creacioacuten Objetivo General Desarrollar un sistema de buacutesqueda de informacioacuten por conceptos en la Web basado en agentes inteligentes mediante la aplicacioacuten de ontologiacuteas Estado Del Arte Existen algunos sistemas que proporcionan buacutesquedas de informacioacuten basados en algunas de las tecnologiacuteas que vamos a utilizar Es habitual encontrar este tipo de buscadores y algunos otros similares bautizados como Megabuscadores o Multibuscadores a pesar de que estos teacuterminos no sean los maacutes idoacuteneos por lo que al hablar de este tipo de sistemas podemos referirlos como Buscadores Muacuteltiples en virtud de las caracteriacutesticas de su funcionamiento A continuacioacuten se mencionan algunos de ellos

Buscador muacuteltiple Copernic 2001 Pro Copernici producto de la empresa canadiense Copernic Technologies es un agente buscador que transfiere una ecuacioacuten de buacutesqueda a un conjunto de buscadores de manera simultaacutenea recupera las referencias pertinentes y las ordena seguacuten el grado medio de relevancia obtenido de cada uno de los buscadores La empresa creadora de Copernic se constituyoacute en 1996 con el propoacutesito de desarrollar soluciones innovadoras en tecnologiacuteas de agentes de buacutesqueda para conseguir un acceso y una gestioacuten eficientes de la gran masa de informacioacuten presente en Internet El programa se desarrolloacute el antildeo siguiente en una versioacuten experimental y se puso al alcance del puacuteblico en noviembre de 1998 Desde entonces se han lanzado versiones con elementos nuevos la mayoriacutea de los cuales no obstante soacutelo estaacuten disponibles en las ediciones comerciales La edicioacuten gratuita ofrece los servicios baacutesicos de consulta y con la intencioacuten de persuadir a los posibles compradores de las ediciones comerciales da una idea bastante aproximada de las posibilidades del programa completo

Lets Browse Como en otros medios (por ejemplo la televisioacuten) la navegacioacuten en Internet puede ser realizada por grupos de gente [Lieberman et al 1997] Lets browse muestra como un agente puede asistir a un grupo de gente en su navegacioacuten sugirieacutendoles materiales nuevos que puedan ser de intereacutes comuacuten entre ellos

Este trabajo es una extensioacuten del agente Letizia [Lieberman 1995] el cual selecciona paacuteginas de Web Letizia inicia una buacutesqueda por niveles visita las ligas que encuentra a partir de la paacutegina que su usuario esteacute revisando y selecciona aquellas que sean similares a los intereses que ha aprendido de su usuario (observando su navegacioacuten) Posteriormente muestra sus recomendaciones en un canal de navegacioacuten

22

El trabajo del agente consiste en seleccionar de la misma forma que Letizia lo hace aquellas paacuteginas que mejor satisfagan los intereses de todos los participantes Las caracteriacutesticas de Letrsquos browse son la deteccioacuten automaacutetica de la presencia de usuarios navegacioacuten automaacutetica (en canal de navegacioacuten) el despliege dinaacutemico de las preferencias de los usuarios y la explicacioacuten de las recomendaciones Permite ademaacutes revisar las paacuteginas desde el punto de vista de otra persona (con sus preferencias) y asiacute estimar cual seriacutea su posible opinioacuten acerca de dicha paacutegina auacuten cuando aquella persona no la haya revisado anteriormente

Agentes de Informacioacuten Un agente de informacioacuteiin es utilizado para organizar los espacios de informacioacuten del usuario y facilitar su explotacioacuten En el WWW (World Wide Web) se estaacuten implementando diversos agentes de informacioacuten El Agente Letizia [Lieberman 1995] que existe en un navegador de Web anticipa queacute artiacuteculos pueden ser de intereacutes para el usuario basaacutendose en las conductas pasadas del usuario Las paacuteginas que cree son de intereacutes del usuario Letizia las despliega en una ventana de sugerencias por unos instantes Marco Conceptual Actualmente para poder hacer la consulta de cualquier tipo de informacioacuten en Internet la mayoriacutea de las personas recurre a los motores de buacutesquedas conocidos como Google Yahoo Altavista por mencionar algunos siendo que estos usan diferentes meacutetodos para llegar a su objetivo podemos darnos cuenta que arrojan distintos resultados uno de otro que en el mejor de los casos coinciden en un porcentaje muy poco satisfactorio con la buacutesqueda en cuestioacuten con lo que concluimos que una respuesta a esta falta de precisioacuten en cuanto a la buacutesqueda de un tema en especial es mejor la buacutesqueda de conceptos lo cual permite al usuario acercarse maacutes al tema de su intereacutes Es importante enfocar nuestra solucioacuten apoyaacutendonos en un motor de buacutesqueda y aplicando herramientas como los Agentes que nos permitan recopilar la informacioacuten maacutes precisa de cada buacutesqueda a traveacutes de un algoritmo propio obteniendo resultados maacutes cercanos a los deseados ya que estos provienen de muacuteltiples documentos ahorrando tiempo y ganando precisioacuten a la vez Muy frecuentemente encontramos que cuando se trata de buacutesquedas en Internet a traveacutes de los motores de buacutesqueda populares los usuarios hacen consultas de diversas paginas y es muy difiacutecil llevar una lista de todos los sitios visitados o de aquellos que nos mostraron la informacioacuten maacutes adecuada nuestro sistema es capaz de registrar dentro de una base de datos un iacutendice de todos los sitios que se obtuvieron en la buacutesqueda de un tema o concepto con lo que el usuario no tendraacute que realizar una ldquonuevardquo buacutesqueda de un tema antes consultado sino que tendraacute a la mano todos los sitios que arrojoacute la primera buacutesqueda Marco teoacuterico

Descripcioacuten de RDF

El Resource Description Frameworiiik (RDF) es un fundamento para el procesamiento de metadatos proporciona interoperabilidad entre aplicaciones que intercambian informacioacuten legible por maacutequina en la Web RDF utiliza XML para intercambiar descripciones de recursos Web pero los recursos descritos pueden ser de cualquier tipo

23

incluyendo recursos XML y no-XML RDF resalta las facilidades para hacer posible el procesamiento automaacutetico de los recursos Web RDF puede utilizarse en diferentes aacutereas de aplicacioacuten por ejemplo en la recuperacioacuten de recursos para proporcionar mejores capacidades a los motores de buacutesqueda en catalogacioacuten para la descripcioacuten de contenido y relaciones de contenido accesibles en un sitio Web particular en una paacutegina o biblioteca digital a traveacutes de agentes de software inteligente para facilitar que el conocimiento se comparta e intercambie en la valoracioacuten de contenido en la descripcioacuten de colecciones de paacuteginas que representan un documento loacutegico individual para la descripcioacuten de los derechos de propiedad intelectual de las paacuteginas Web y para expresar las preferencias de privacidad de un usuario asiacute como las poliacuteticas de privacidad de un sitio Web Las descripciones utilizadas por estas aplicaciones pueden modelarse como relaciones entre recursos Web El modelo de datos de RDF tal y como se especifica en RDFMS define un modelo simple para describir las relaciones entre recursos en teacuterminos de propiedades y valores designadas Las propiedades RDF pueden entenderse como atributos de un recurso y en este sentido corresponden con los tradicionales pares atributo-valor Las propiedades RDF tambieacuten representa relaciones entre recursos De esta forma el modelo de datos RDF puede parecer un diagrama entidad-relacioacuten El modelo de datos RDF sin embargo no proporciona mecanismos para declarar estas propiedades ni proporcionan ninguacuten mecanismo para definir las relaciones entre estas propiedades y otros recursos Este es el papel [la funcioacuten] del Esquema RDF

Las comunidades de descripcioacuten de recursos necesitan la habilidad para decir ciertas cosas sobre ciertas clases de recursos Para describir recursos bibliograacuteficos por ejemplo son habituales atributos descriptivos tales como autor [author] tiacutetulo [title] y materia [subject] Para la certificacioacuten digital se necesitan muchas veces atributos tales como esquema simple de deteccioacuten de errores [checksum] y autorizacioacuten [authorization] La declaracioacuten de estas propiedades (atributos) y su semaacutentica correspondiente se definen en el contexto de RDF como un Esquema RDF Un esquema define no soacutelo las propiedades de un recurso (ej tiacutetulo autor materia tamantildeo color etc) sino que puede tambieacuten definir los tipos de recursos que se describiraacuten (libros paacuteginas Web personas empresas etc)

Los Esquemas RDF podriacutean contrastarse con las Definiciones del Tipo de Documentos (DTDs) de XML y los Esquemas XML A diferencia de una DTD o Esquema XML que dan restricciones especiacuteficas en la estructura de un documento XML un Esquema RDF proporciona informacioacuten sobre la interpretacioacuten de una sentencia dada en un modelo de datos RDF Mientras un Esquema XML puede utilizarse para validar la sintaxis de una expresioacuten RDFXML un esquema sintaacutectico soacutelo no es suficiente para los objetivos de RDF Los Esquemas RDF pueden tambieacuten especificar restricciones que deben seguirse por estos modelos de datos

Clases y Propiedades Un Esquema RDF se expresa a traveacutes de un modelo de datos descrito en la especificacioacuten del Modelo y la Sintaxis RDF [RDFMS] El lenguaje de descripcioacuten del esquema es un simple conjunto de recursos y propiedades definidos por la Especificacioacuten del Esquema RDF y la parte impliacutecita de cada modelo RDF que utiliza la mecaacutenica del esquema RDF

24

El sistema de escritura de datos [type system] El Esquema RDF definido en esta especificacioacuten es una coleccioacuten de recursos RDF que puede utilizarse para describir propiedades de otros recursos RDF (incluyendo propiedades) que definene vocabularios RDF de aplicacioacuten especiacutefica El nuacutecleo del vocabulario del esquema se define en un namespace denominado aquiacute informalmente rdfs e identificado por el URI de referencia httpwwww3org200001rdf-schema Esta especificacioacuten utiliza tambieacuten el prefijo rdf para referirse al namespace principal RDF httpwwww3org19990222-rdf-syntax-ns

Como se describe en la especificacioacuten del modelo y la sintaxis [RDFMS] los recursos pueden ser objetos especiacuteficos de una categoriacutea [instances] de una o maacutes clases esto se indica con la propiedad rdftype Las clases se organizan muchas veces de una forma jeraacuterquica por ejemplo la clase Dog [perro] podriacutea considerarse subclase de Mammal [mamiacutefero] que a su vez es una subclase de Animal dando a entender que cualquier recurso que esteacute en rdftype Dog se considera tambieacuten que estaacute en rdftype AnimalEsta especificacioacuten describe una propiedad rdfssubClassOf para indicar dichas relaciones entre clases

El sistema de escritura [type system] del Esquema RDF es similar al sistema de los lenguajes de programacioacuten orientados a objetos tales como Java Sin embargo RDF se diferencia de muchos de esos sistemas en que en lugar de definir una clase en teacuterminos de propiedades sus objetos especiacuteficos de una categoriacutea [instances] pueden tener un esquema RDF que definiraacute las propiedades en teacuterminos de clases de recurso a los que se aplican Este es el papel de las restricciones rdfsdomain y de rdfsrange

Por ejemplo podemos definir que la propiedad author tenga un dominio de Book y un alcance de Literal mientras que un sistema OO claacutesico podriacutea definir tiacutepicamente una clase Book con un atributo denominado author de tipo Literal

Clases y Recursos como Conjuntos y Elementos El siguiente esquema ilustra el concepto de clase subclase y recurso Una clase se describe por un rectaacutengulo redondeado un recurso se describe por un punto grande En la figura abajo se han dibujado flechas desde un recurso a una clase que define Una subclase se presenta en un rectaacutengulo redondeado (la subclase) completamente incluido en otro (la superclase) Si un recurso estaacute dentro de una clase entonces existe una propiedad rdftype o expliacutecita o impliacutecita de aquel recurso cuyo valor es un recurso que define la clase que contiene (Estas propiedades se muestran como arcos en la representacioacuten graacutefica directamente etiquetada en el Esquema 2) El recurso RDF representado en el esquema 1 se describe tanto en el resto de esta especificacioacuten como en la especificacioacuten del Modelo y Sintaxis RDF

Ontologiacuteas en la Representacioacuten del Conocimiento En estos uacuteltimos antildeos se incrementoacute la cantidad de informacioacuten en la Internet lo cual motivoacute el incremento de la complejidad y la diversidad de la informacioacuten Esto tambieacuten motivoacute el intereacutes de automatizar muchas actividades que tradicionalmente se realizan en forma manual La principal motivacioacuten en el uso de las ontologiacuteas es que permiten compartir y reutilizar conocimiento en un dominio De ahiacute el intereacutes de muchos

25

investigadores en el aacuterea de inteligencia artificial para tratar de aplicar las ontologiacuteas en la representacioacuten de conocimiento Las ontologiacuteas son un elemento importante en la Web Semaacutentica y es un teacutermino filosoacutefico que trata sobre la naturaleza de la existencia y los tipos de objetos que existen Tambieacuten la ontologiacutea se puede definir como una especificacioacuten expliacutecita de una conceptualizacioacuten compartida La conceptualizacioacuten se refiere a un modelo abstracto de un fenoacutemeno en el mundo en donde se tienen que identificar los conceptos relevantes de este fenoacutemeno El teacutermino expliacutecito significa queacute tipos de conceptos son usados y las restricciones de estos conceptos Y por uacuteltimo el teacutermino compartido se refiere a que las ontologiacuteas capturan conocimiento que es aceptado por todos y no es individual de un grupo Actualmente se les estaacute dando maacutes uso a las ontologiacuteas en el campo de la Inteligencia Artificial En este campo se define la ontologiacutea como una descripcioacuten formal y expliacutecita de conceptos de un dominio (classes a las que nos referiremos como conceptos) propiedades de cada concepto las cuales describen las caracteriacutesticas y atributos de los conceptos (slots llamados tambieacuten como propiedades o roles) y restricciones de las propiedades (facets conocidas como restricciones) La informacioacuten que es representada a traveacutes de los lenguajes semaacutenticos puede ser compartida entre aplicaciones como los agentes

OWL y Web Semaacutentica

La Web Semaacutentica es una Web extendida dotada de mayor significado en la que cualquier usuario en Internet podraacute encontrar respuestas a sus preguntas de forma maacutes raacutepida y sencilla gracias a una informacioacuten mejor definida Al dotar a la Web de maacutes significado y por lo tanto de maacutes semaacutentica se pueden obtener soluciones a problemas habituales en la buacutesqueda de informacioacuten gracias a la utilizacioacuten de una infraestructura comuacuten mediante la cual es posible compartir procesar y transferir informacioacuten de forma sencilla Esta Web extendida y basada en el significado se apoya en lenguajes universales que resuelven los problemas ocasionados por una Web carente de semaacutentica en la que en ocasiones el acceso a la informacioacuten se convierte en una tarea difiacutecil y frustrante

LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES La comunicacioacuten es uno de los aspectos importantes dentro de una comunidad de agentes la cual permitiraacute compartir y enviar mensajes entre agentes Los meacutetodos tradicionales permiten la comunicacioacuten entre los agentes pero eacutestos no son suficientes para lograr un comportamiento social entre los agentes para ello es necesario que los mensajes tengan un significado y contenido semaacutentico Se han desarrollado varios lenguajes los cuales son usados para el enviacuteo de mensajes a continuacioacuten hablaremos de dos de ellos KQML Knowledge Query and Manipulation Language (KQML) es uno de los lenguajes que nos provee la estructura para enviar mensajes entre agentes Dentro de sus principales caracteriacutesticas tenemos que es independiente de la sintaxis del contenido y la ontologiacutea

26

que se utilizaraacute Asiacute mismo es independiente del mecanismo de transporte (TCPIP SMTP IIOP etc) e independiente del contenido del lenguaje (KIF SQL STEP Prolog etc) KQML fue desarrollado por el consorcio DARPA Knowledge Sharing Effort (KSE) cuyo principal objetivo fue desarrollar una base tecnoloacutegica para construir en forma progresiva sistemas cada vez con maacutes funcionalidad complejidad y amplitud KQML provee un lenguaje y un protocolo para intercambiar informacioacuten entre agentes inteligentes y para lograr este intercambio se tiene que compartir una sintaxis y una semaacutentica comuacuten para que los mensajes sean entendidos por los agentes Al lenguaje KQML se le dividioacute en tres capas la capa de contenido alberga el contenido del mensaje que es especificado en cualquier formato ya sea texto o binario La capa de comunicacioacuten contiene paraacutemetros como el identificador uacutenico asociado a la comunicacioacuten identidad del remitente e identidad del destinatario La capa de mensaje define tanto los diferentes tipos de interaccioacuten que se pueden establecer entre los agentes como los protocolos que se pueden establecer entre los agentes Tambieacuten incluye otras caracteriacutesticas como el lenguaje de representacioacuten o la ontologiacutea siendo ambos opcionales

JADE (Java Agent DEvelopment Framework)

JADEiv (Java Agent DEvelopment Framework) es un middleware que proporciona tanto un entorno de desarrollo como un entorno de ejecucioacuten para la realizacioacuten y mantenimiento de sistemas multiagente El entorno de desarrollo estaacute formado por una serie de libreriacuteas en Java que permiten la implementacioacuten de agentes de manera limpia e independiente de la plataforma sobre la que se va a ejecutar El entorno de ejecucioacuten permite a los agentes vivir y comunicarse entre ellos Estaacute realizado enteramente en Java y proporciona una serie de herramientas que permiten al desarrollador controlar y depurar a los agentes en tiempo real JADE es un middleware desarrollado por TILAB para el desarrollo de aplicaciones distribuidas multiagente JADE proporciona tanto el entorno de desarrollo para la creacioacuten de aplicaciones basadas en agentes como el entorno de ejecucioacuten JADE presenta las siguientes caracteriacutesticas

P2P Arquitectura peer-to-peer cada agente puede tomar la iniciativa en una comunicacioacuten o bien responder a peticiones que le hagan otros agentes

Interoperabilidad JADE cumple con las especificaciones FIPA por lo que los agentes desarrollados en JADE pueden interactuar con otros agentes que no tienen porque estar desarrollados con JADE aunque si deben seguir las especificaciones FIPA

Portabilidad La API que proporciona JADE es independientemente de la red sobre la que va a operar asiacute como de la versioacuten de Java utilizada teniendo la misma API para J2EE J2SE y J2ME

27

Intuitiva JADE se ha desarrollado para ofrecer una API faacutecil de aprender y sencilla de manejar

Los agentes JADE tienen nombres uacutenicos y se permite a cada agente descubrir a otros agentes y comunicarse con ellos mediante comunicaciones punto a punto Los agentes proporcionan servicios cada agente puede buscar a otros dependiendo de los servicios que proporcionen otros agentes La comunicacioacuten entre agentes se lleva a cabo a traveacutes de mensajes asiacutencronos es decir el agente que enviacutea el mensaje y el destinatario del mensaje no tienen porqueacute estar disponibles al mismo tiempo Es maacutes el destinatario no tiene porqueacute existir en ese instante Los mensajes se pueden enviar a un agente en concreto o se pueden enviar a agentes que se desconocen pero se sabe que poseen unas ciertas caracteriacutesticas JADE proporciona mecanismos de seguridad ya que habraacute agentes a los que no se les esteacute permitido comunicarse con otros agentes de manera que una aplicacioacuten puede verificar la identidad del receptor y del agente que enviacutea el mensaje y no dejar realizar actuaciones no permitidas para un determinado agente La estructura de los mensajes se basa en el lenguaje ACL (Agent Communication Lenguaje) que ha sido definido por la FIPA JADE facilita mecanismos para el desarrollo de los objetivos que deben alcanzar los agentes Los comportamientos (behaviours) y la comunicacioacuten entre los agentes (junto con el servicio de paacuteginas amarillas) proporcionan los recursos necesarios para programar un sistema multiagente JADE tambieacuten permite a los agentes cambiar de Host (en J2SE) Un agente puede interrumpir en un momento dado su ejecucioacuten migrar a otro host (sin necesidad de que el coacutedigo esteacute previamente en el host destino) y continuar la ejecucioacuten en el mismo punto en el que la interrumpioacute Esto permite un balanceo de carga ya que permite a los agentes migrar hosts menos cargados El entorno de ejecucioacuten proporciona un marco donde poder ejecutar los agentes y herramientas graacuteficas para su monitorizacioacuten y depuracioacuten Los agentes JADE necesitan del entorno de ejecucioacuten donde poder vivir Cada instancia del entorno de ejecucioacuten se denomina contenedor (container) Al conjunto de los contenedores se le denomina plataforma (platform) y proporciona una capa que oculta a los agentes (y al desarrollador) el entorno donde se ha decidido ejecutar la aplicacioacuten En cada plataforma debe existir un contenedor especial denominado contenedor principal (main container) La principal diferencia del contenedor principal respecto al resto de contenedores es que alberga dos agentes especiales

AMS (Agent Management System) Este agente proporciona el servicio de nombres asegurando que cada agente en la plataforma disponga de un nombre uacutenico Tambieacuten representa la autoridad es posible crear y matar agentes en contenedores remotos requeriendoselo al agente AMS

DF (Directory Facilitator) Proporciona el servicio de Paacuteginas Amarillas Gracias al agente DF un agente puede encontrar otros agentes que provean los servicios necesarios para lograr sus objetivos

28

La caracteriacutestica mas importante del entorno de ejecucioacuten es la interfaz graacutefica que proporciona desde la que podemos controlar y depurar los agentes existentes Todas las herramientas han sido desarrolladas como agentes y siguen sus mismas reglas Disentildeo Arquitectura

Agente usuario

Agente de ontologiacutea

Agente de filtrado

Agente de recuperacioacuten

BD

OntologiacuteaSistema

Motor de buacutesqueda

El sistema esta disentildeado para que un usuario realice alguna buacutesqueda relacionada con alguno de los tres temas propuestos en nuestra base de conocimiento que son Ingenieriacutea de Software Base de Datos y Deportes El sistema esta basado en una arquitectura multiagente la cual se conforma por Agente Usuario Actuacutea de intermediario entre el usuario y el sistema Sus servicios son solicitados por el usuario para resolver las consultas El usuario le suministra una consulta y el sistema le devuelve una lista de documentos que pueden satisfacer sus necesidades Este agente tiene la capacidad de acceder a la base de datos con el objetivo de almacenar yo recuperar resultados Base de Datos Guardaraacute las ultimas buacutesquedas realizadas para su posterior consulta a peticioacuten del usuario Agente de Filtrado Gestiona la recuperacioacuten de documentos y realiza el filtrado de los mismos proporcionados por el Agente de Recuperacioacuten Recibe la peticioacuten del Agente Usuario y a su vez esta es enviada al Agente Ontologiacutea para que este regrese una evaluacioacuten de la consulta y de esta forma conocer si es necesaria una redefinicioacuten de la consulta En caso de ser necesaria se espera recibir el nuevo vector de consulta hasta que se cumpla una de dos opciones el usuario deje de redefinir la consulta o la consulta sea concreta Cuando la consulta sea concreta es enviada de nueva cuenta al Agente Ontologiacutea el cual regresaraacute el Nuevo Vector Expandido Este seraacute enviado al Agente de Recuperacioacuten Cuando el Agente de Recuperacioacuten regrese los urlacutes de los resultados (con sus respectivos vectores de teacuterminos) se realiza una evaluacioacuten de los vectores de cada documento con respecto al vector de buacutesqueda expandida con el objetivo de asignarles una calificacioacuten Gracias a esta calificacioacuten podemos obtener aquellos documentos que mejor cumplan con las expectativas del usuario (Estos documentos son regresados al Agente Usuario) Agente Ontologiacutea Recibe el vector de consulta proporcionado por el Agente de Filtrado La informacioacuten contenida en el vector de consulta es comparada con la existente en nuestra ontologiacutea Una vez verificada la existencia de la informacioacuten del

29

vector consulta dentro de la ontologiacutea este se encarga de devolver la distancia y el umbral al Agente de Filtrado Se espera que este devuelva una peticioacuten para expandir ese mismo vector Puede darse el caso de obtener dos tipos de buacutesquedas una general y otra mucho maacutes definida En cualquiera de los caso obtenemos un nuevo vector de buacutesqueda (con una informacioacuten mejor definida este es el Vector de Buacutesqueda Expandido) que es enviado de regreso al Agente de Filtrado el cual genera una copia y le es enviada al Agente de Recuperacioacuten Ontologiacutea Representa nuestra base de conocimientos Esta compuesta por tres aacutereas de conocimiento las cuales son Ingenieriacutea se Software Bases de Datos y Deportes Para poder representar esta ontologiacutea en un lenguaje entendible para agentes inteligentes se programaraacute bajo los fundamentos de las estructuras RDF contenidas en las especificaciones de XML y siguiendo los estaacutendares de la W3C Agente Recuperacioacuten Realiza la buacutesqueda gracias a la informacioacuten que le es entregada por el Agente de Filtrado (se trata Vector de Buacutesqueda Expandido generado por el Agente de Ontologiacutea) El agente estructura esta informacioacuten y se introduce en un motor de buacutesqueda(diacutegase por ejemplo Google) de tal manera que obtengamos una lista de posibles documentos A cada documento se le asigna un vector de teacuterminos con sus pesos derivados de un anaacutelisis TFIDF para despueacutes regresar las urlacutes con su respectivo vector de teacuterminos al Agente Filtrado RESULTADOS Este proyecto tiene la finalidad de desarrollar el software para un antivirus y un traductor Pero durante los estudios de anaacutelisis de estos dos productos se encontroacute que el software para la buacutesqueda de la informacioacuten tambieacuten puede ser implementada por medio de teacutecnicas de Inteligencia Artificial Para construir el software de aplicacioacuten para estas necesidades se usa la metodologiacutea de cascada Donde los pasos a seguir son el Anaacutelisis Disentildeo Pruebas Implementacioacuten y Mantenimiento Hasta este momento estamos en la etapa de pruebas de algunos moacutedulos de los tres productos IMPACTO El detector de intrusos en una red es de mucha importancia debido a que en la actualidad se han diseminado muchos virus que pueden ser transmitidos a traveacutes de intrusos Hasta la fecha el meacutetodo de proteccioacuten se hace de forma manual La finalidad de este software es automatizar la proteccioacuten El traductor de texto a voz tiene como primera aplicacioacuten el auxilio en la lectura de documentos para las personas invidentes o deacutebiles visuales una segunda aplicacioacuten es la comunicacioacuten con la computadora por medio del lenguaje natura El buscador de informacioacuten es un auxilio en la buacutesqueda de datos en una base de datos de conocimiento Ya que tambieacuten estaacuten proliferando las bibliotecas virtuales es una ayuda en la localizacioacuten de informacioacuten cientiacutefica y un preaacutembulo para un software de apoyo docente BIBLIOGRAFIacuteA [1] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

30

[2] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps[3] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[4] w3c en espantildeol OWL y Web Semaacutentica httpwwww3cesDivulgacionGuiasbrevesWebSemantica

[5] Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

[6] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[7] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[8] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[9] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[10] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[11] Laboratorios Googlehttplabsgooglecompapershtml

[12] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[13] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

[14] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

[15] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps [16] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[18] Trabajos de Agente en JADE http Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

31

[19] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[20] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[21] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[22] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[23] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[24] Laboratorios Googlehttplabsgooglecompapershtml

[25] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[26] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

  • En este reporte teacutecnico se presenta la descripcioacuten general anaacutelisis y estado actual de de los trabajos terminales TT2006135 TT20060097 y TT20060068 que tienen por titulo ldquoSistema prototipo de deteccioacuten de intrusos en la red utilizando agentes inteligentesrdquo rdquoProcesamiento digital de imaacutegenes para la conversioacuten de texto a vozrdquo y ldquoSistema de buacutesqueda de informacioacuten por conceptos en la webrdquo respectivamente Los prototipos que se obtendraacuten seraacuten un software robusto que se desarrollaraacuten con teacutecnicas de inteligencia artificial como Agentes inteligentes y Redes neuronales
  • Estructura de un sistema neuronal artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
    • Estado Del Arte
      • Estructura de un sistema neuronal artificial
        • Sistemas paralelos distribuidos y adaptativos
          • Modelo estaacutendar de neurona artificial
            • Sigmoidal logariacutetmica
              • Empleo del perceptroacuten para reconocer funciones loacutegicas
              • Algoritmo de aprendizaje del perceptroacuten
                • Objetivo General
                • Estado Del Arte
                • A continuacioacuten se mencionan algunos de ellos
                  • Buscador muacuteltiple Copernic 2001 Pro
                  • Lets Browse
                  • Agentes de Informacioacuten
                    • Marco Conceptual
                      • Clases y Propiedades
                      • El sistema de escritura de datos [type system]
                      • Clases y Recursos como Conjuntos y Elementos
                        • Ontologiacuteas en la Representacioacuten del Conocimiento
                          • LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES
                          • JADE (Java Agent DEvelopment Framework)
                            • Disentildeo
                            • Arquitectura
Page 9: INSTITUTO POLITÉCNICO NACIONALsappi.ipn.mx/cgpi/archivos_anexo/20061387_3286.pdf · La comunicación del hombre con la computadora por medio del lenguaje natural, es la finalidad

9

paralelos distribuidos y adaptativos que puedan presentar un cierto comportamiento ldquointeligenterdquo

Sistemas paralelos distribuidos y adaptativos Los tres conceptos clave de los sistemas nerviosos que se pretende emular en los artificiales son paralelismo de caacutelculo memoria distribuida y adaptabilidad al entorno De esta manera podemos hablar de las redes neuronales como sistemas paralelos distribuidos y adaptativos El procesamiento paralelo resulta esencial como se deduce de un sencillo ejemplo Una computadora convencional tipo PC que trabaja secuencialmente instruccioacuten por instruccioacuten empleariacutea varios minutos en realizar sobre una imagen compuesta por digamos 256x256 pixeles una sencilla tarea de tratamiento en bajo nivel (acentuar contrastes extraer contornos ) mucho maacutes simple que la que lleva a cabo el sistema visual para reconocer una imagen Un sistema basado en 16 DSP2 operando en paralelo empleariacutea del orden de 20 ms en la misma tarea puesto que cada procesador podriacutea operar en paralelo sobre diferentes sectores de la imagen Por otra parte el cerebro tarda este mismo tiempo en preprocesar una imagen compuesta por millones de pixeles (los que representan los conos y bastones de la retina) extraer sus rasgos caracteriacutesticos analizarla e interpretarla Ninguacuten sistema creado por el hombre es capaz de realizar algo semejante La clave reside en que los millones de neuronas que intervienen en el procesamiento de la imagen trabajan en paralelo sobre la totalidad de la imagen Otro concepto importante que aparece en el cerebro es el de memoria distribuida Mientras que en un computador la informacioacuten ocupa posiciones de memoria bien definidas en los sistemas neuronales se encuentra distribuida por las sinapsis de la red de modo que si una sinapsis resulta dantildeada no perdemos maacutes que una parte muy pequentildea de la informacioacuten Ademaacutes los sistemas neuronales bioloacutegicos son redundantes de modo que muchas neuronas y sinapsis pueden realizar un papel similar en definitiva el sistema resulta tolerante a fallos El uacuteltimo concepto fundamental es el de adaptabilidad Los ANS se adaptan faacutecilmente al entorno modificando sus sinapsis (y mediante otros mecanismos tambieacuten) y aprenden de la experiencia pudiendo generalizar conceptos a partir de casos particulares En el campo de las redes neuronales se llamaraacute a esta propiedad generalizacioacuten a partir de ejemplos Formalmente y desde el punto de vista del grupo PDP (Parallel Distributed Processing Reseach Group de la Universidad de California en San Diego) un sistema neuronal o conexionista estaacute compuesto por los siguientes elementos

bull Un conjunto de procesadores elementales o neuronas artificiales bull Un patroacuten de conectividad o arquitectura bull Una dinaacutemica de activaciones bull Una regla o dinaacutemica de aprendizaje bull El entorno donde opera

2 Digital Signal Processor

10

Modelo estaacutendar de neurona artificial Se denomina procesador elemental o neurona a un dispositivo simple de caacutelculo que a partir de un vector de entrada procedente del exterior o de otras neuronas proporciona una uacutenica respuesta o salida En este apartado se trataraacute el modelo denominado neurona estaacutendar (ver figura 31) que constituye un caso particular de un modelo maacutes complejo llamado modelo PDP El modelo estaacutendar considera que la regla de propagacioacuten es la suma ponderada y que la funcioacuten de salida es la identidad De esta forma la neurona estaacutendar etiquetada como i consiste en

bull Un conjunto de entradas Xj(t) y pesos sinaacutepticos Wij que representan la intensidad de interaccioacuten entre cada neurona presinaacuteptica j y cada neurona postsinaacuteptica i (ver figura 41)

bull Una regla de propagacioacuten σ(Wij Xj(t)) que proporciona el valor del potencial postsinaacuteptico hi(t)= σ(Wij Xj(t))=sumWijXj de la neurona i en funcioacuten de sus pesos y entradas

bull Una funcioacuten de activacioacuten Yi(t)=fi(hi(t)) que representa simultaacuteneamente la salida de la neurona i y su estado de activacioacuten (en el caso del modelo PDP las funciones de activacioacuten y de salida son tratadas por separado)

Con frecuencia se antildeade al conjunto de pesos de la neurona un paraacutemetro adicional θi que se denominaraacute umbral1 que se resta del potencial postsinaacuteptico por lo que el argumento de la funcioacuten de activacioacuten queda

sumj WijXj - θi

lo que representa antildeadir un grado de libertad adicional a la neurona En el caso de nodos de respuesta todo-nada este paraacutemetro representaraacute el umbral de disparo de la neurona es decir el nivel miacutenimo que debe alcanzar el potencial postsinaacuteptico (o potencial de membrana) para que la neurona se dispare o active En conclusioacuten el modelo de neurona denominado estaacutendar queda

Yi(t)=fi (sumj WijXj - θi)

Ahora bien si se hace que los iacutendices i y j comiencen en 0 se puede definir Wi0= θi y X0=-1 (constante) con lo que el potencial postsinaacuteptico (potencial local o de membrana) se obtiene realizando la suma desde j=0

Yi(t)=fi (sumj=012n WijXj)

1 En algunos modelos es threshold es decir ldquoumbralrdquo y en otros bias que no tiene una traduccioacuten clara en este caso

11

sum f ( )

Axoacuten Yi

Wi1

Wi2

Wij

Win

θi-1

X1

X2

Habiendo definido de esta manera la neurona estaacutendar basta con establecer la forma de la funcioacuten de activacioacuten para determinarla por completo A continuacioacuten se muestra una tabla con las funciones de activacioacuten maacutes utilizadas

Funcioacuten Relacioacuten entradasalida Graacutefica

Escaloacuten y=0 nlt0 y=1 nge0

Escaloacuten simeacutetrica y= -1 nlt0 y=+1 nge0

Lineal Identidad

y=n

Lineal saturada y=0 nlt0

y=n 0lenle1 y=1 ngt1

Lineal saturada simeacutetrica

y=-1 nlt-1 y=n -1lenle1

y=1 ngt1

Sigmoidal logariacutetmica

ney minus+=

11

Xj

Xn

Entradas

Dendritas

Sinapsis

Cuerpo celular

Salida

Umbral

Figura 23 Modelo de neurona estaacutendar

12

Tangente

hiperboacutelica

nn

nn

eeeey minus

minus

+minus

=

Lineal positiva y=0 nlt0 y=n 0len

Competitiva a=1 neurona con maacutex n

a=0 todas las demaacutes

C

Tabla 2 Funciones de activacioacuten habituales (se han omitido algunas constantes)

Arquitecturas de redes neuronales Se denomina arquitectura a la topologiacutea estructura o patroacuten de conexionado de una red neuronal En un ANS los nodos se conectan por medio de sinapsis esta estructura de conexiones sinaacutepticas determina el comportamiento de la red Las conexiones sinaacutepticas son direccionales es decir la informacioacuten soacutelo puede propagarse en un uacutenico sentido (desde la neurona presinaacuteptica a la postsinaacuteptica ver figura 24)

j

i

YjXj

Wij

YiNeurona presinaacuteptica

Neurona postsinaacuteptica

Figura 24 Interaccioacuten entre una neurona presinaacuteptica y otra postsinaacuteptica

En general las neuronas se suelen agrupar en unidades estructurales que denominaremos capas Las neuronas de una capa pueden agruparse a su vez formando grupos neuronales (clusters) Dentro de un grupo o de una capa si no existe este tipo de agrupacioacuten las neuronas suelen ser del mismo tipo Finalmente el conjunto de una o maacutes capas constituye la red neuronal

Se distinguen tres tipos de capas de entrada de salida y ocultas Una capa de entrada o sensorial estaacute compuesta por neuronas que reciben datos o sentildeales procedentes del entorno (por ejemplo proporcionado por sensores) Una capa de salida es aquella cuyas neuronas proporcionan la respuesta de la red neuronal (sus neuronas pueden estar conectadas a efectores) Una capa oculta es aquella que no tiene una conexioacuten directa

13

con el entorno es decir que no se conecta directamente ni a organos sensores o efectores Esta capa proporciona a la red neuronal grados de libertad adicionales gracias a los cuales puede encontrar representaciones internas correspondientes a determinados rasgos del entorno proporcionando una mayor riqueza computacional (ver figura 25)

Informacioacuten Capa de salida

(efectora) Capa oculta Capa de entrada (procesamiento) (sensorial)

Figura 25 Arquitectura unidireccional de tres capas de entrada oculta y de salida

Las conexiones entre las neuronas pueden ser excitadoras o inhibidoras un peso sinaacuteptico negativo define una conexioacuten inhibidora mientras uno positivo determina una conexioacuten excitadora Habitualmente no se suele definir una conexioacuten como de un tipo u otro sino que por medio del aprendizaje se obtiene un valor para el peso que incluye signo y magnitud

El perceptroacuten simple Este modelo neuronal fue introducido por Rosenblatt a finales de los antildeos cincuenta Dicha estructura se inspira en las primeras etapas de procesamiento de los sistemas sensoriales de los animales (por ejemplo la visioacuten) en los cuales la infomacioacuten va atravesando sucesivas capas de neuronas que realizan un procesamiento progresivamente de maacutes alto nivel Un perceptroacuten simple es un modelo unidireccional compuesto por dos capas de neuronas una sensorial o de entrada y otra de salida A continuacioacuten se muestra en la figura 26 su representacioacuten y la funcion de transferencia que utiliza

Figura 26 a) Las neuronas de entrada no realizan ninguacuten coacutemputo uacutenicamente enviacutean la informacioacuten a las neuronas de salida b) la funcioacuten de activacioacuten de las neuronas de la capa de salida es de tipo escaloacuten

Capa de entrada

Capa de salida

f(x) x

Funcioacuten escaloacuten

a) b)

14

El perceptroacuten puede utilizarse tanto como clasificador como para la representacioacuten de funciones booleanas pues su neurona es esencialmente de tipo MacCulloch-Pitts es decir de salida binaria La importancia histoacuterica del perceptroacuten radica en su caraacutecter de dispositivo entrenable ya que el algoritmo de aprendizaje que desarrollo Rosenblatt permite determinar automaacuteticamente los pesos sinaacutepticos que clasifican un conjunto de patrones a partir de un conjunto de ejemplos etiquetados (a esto se le llama red neuronal supervisada y el perceptron simple es de este tipo) Ahora se mostraraacute que un perceptroacuten permite realizar tareas de clasificacioacuten Cada neurona del perceptroacuten representa una determinada clase de modo que dado un vetor de entrada una cierta neurona responde con 0 si no pertenece a la clase que representa y con un 1 si siacute pertenece Es faacutecil ver que una neurona tipo perceptroacuten solamente permite discriminar entre dos clases linealmente separables (es decir cuyas regiones de decisioacuten pueden ser separadas mediante una uacutenica condicioacuten lineal o hiperplano que es una liacutenea recta si trabajamos en dos dimensiones) Sea una neurona tipo perceptroacuten de dos entradas x1 y x2 con salida y cuya operacioacuten se define por lo tanto como

y = H(w1x1+w2x2 - ө) o bien 1 si w1x1+w2x2 geӨ y = 0 si w1x1+w2x2 ltӨ

Si consideramos x1 y x2 situadas sobre los ejes de abscisas y ordenadas en el plano la condicioacuten

w1x1+ w2x2 -Ө = 0 rarr x2 = - (w1 w2) x1 + Ө w2 representa una recta (hiperplano si trabajamos con n entradas) que divide el plano en dos regiones que son aquellas para las que la neurona proporciona una salida 0 o 1 respectivamente como se muestra en la figura 27

x x

x x x

x x x

x

x

oo

oo

o o

o

X1

X2

Regioacuten w1x1+w2x2 geӨ Regioacuten w1x1+w2x2 ltӨ

Figura 27 Una neurona tipo perceptroacuten representa un discriminador lineal que separa dos regiones en el espacio que representan dos diferentes clases de patrones En esta graacutefica x = lsquo1rsquo y o = lsquo0rsquo

15

Empleo del perceptroacuten para reconocer funciones loacutegicas -Funcion linealmente separable Consideremos la funcioacuten loacutegica NAND2 (AND negada de dos entradas) que representamos sobre un plano en la graacutefica 3 que se presenta en seguida

x (10) o (11)

x (00)

x (01) X1

X2

Figura 28 Funcioacuten loacutegica NAND de dos entradas En la graacutefica x = lsquo1rsquo y o = lsquo0rsquo

Se puede ver que en este caso existen paraacutemetros w1 w2 y Ө que permiten una recta que separa perfectamente las regiones correspondientes a los valores loacutegicos 0 y 1 Y por lo tanto se dice que la funcioacuten loacutegica NAND es linealmente separable -Funcioacuten no separable linealmente

Ahora consideremos la funcioacuten loacutegica or-exclusivo (XOR) y representandola en un plano en la figura 29

x (10) o (11)

o (00)

x (01) X1

X2

Figura 29 Funcioacuten loacutegica XOR de dos entradas que no es linealmente separable

16

Al ser XOR no linealmente separable se dice que ldquola clase de funciones no separables linealmente no pueden ser representadas por un perceptroacuten simplerdquo El perceptroacuten presenta serias limitaciones pues solamente puede representar funciones linealmentes separables Y aunque pueda aprender automaacuteticamente a representar complejas funciones booleanas o resolver con eacutexito muchos problemas de clasificacioacuten con un cierto algoritmo en ocasiones fallara draacutesticamente Minsky (que es uno de los padres de la inteligencia artificial) y Papera estudiaron en profundidad el perceptroacuten y en 1969 publicaron un exhaustivo trabajo donde exhibian las limitantes del modelo en lo que resultoacute decisivo para que muchos de los recursos que se destinaban a su investigacioacuten se desviara a otras aacutereas Una solucioacuten para las limitantes del perceptroacuten simple puede consistir en incluir maacutes capas en la arquitectura con lo que tendremos un perceptroacuten multicapa A finales de los antildeos sesenta ya se apuntaba como solucioacuten a las limitaciones del perceptroacuten introducir capas ocultas pero el problema estaba en que no se teniacutea un algoritmo de aprendizaje para el perceptroacuten multicapa (con capas ocultas) Dicho algoritmo fue propuesto por Paul Verbos alrededor de 1974 pero fue preciso hasta mediados de los ochenta cuando el grupo PDP redescubriera un algoritmo similar al cual denominaron Back-Propagation o BP y dieran a conocer a la comunidad internacional su gran potencial para la resolucioacuten de problemas praacutecticos

Algoritmo de aprendizaje del perceptroacuten El del perceptroacuten es un algoritmo de aprendizaje de los denominados por correccion de errores Los algoritmos de este tipo ajustan los pesos en proporcioacuten a la diferencia existente entre la salida actual de la red y la salida deseada con el objetivo de minimizar el error actual de la red Definicioacuten del algoritmo de aprendizaje Sea un conjunto de p patrones xn n=1hellipp con sus salidas deseadas tn Tanto las entradas como las salidas solamente pueden tomar los valores -1 o 1 Se tiene una arquitectura de perceptroacuten simple con pesos iniciales aleatorios y se requiere que clasifique correctamente todos los patrones del conjunto de aprendizaje (solo si son linealmente separables) Ahora actuaremos del siguiente modo ante la presentacioacuten del patron n-eacutesimo si la respuesta que proporciona el perceptroacuten es correcta no actualizaremos los pesos si es incorrecta los modificaremos seguacuten la regla de Hebb aplicada a nuestro caso Primero se muestra la regla de Hebb y despueacutes la regla modificada para el perceptroacuten simple Regla de Hebb

∆wij = ξyixjDonde

17

o wij corresponde a los pesos de una entrada j por la salida i de la neurona

o ξ se denomina ritmo de aprendizaje que su valor suele estar entre 1 y 0 Regla modificada para el perceptroacuten simple

2ξtnixnj si yn

ine tni ∆wn

ij(t)= 0 si yn

i= tni que puede reescribirse del siguiete modo que es la forma usual de expresar la regla del perceptroacuten

∆wnij(t)= 2ξ(tni - yn

i)xnj

Es importante mencionar que el proceso de aprendizaje es iterativo se

parte de una configuracioacuten sinaacuteptica de partida (normalmente de pesos pequentildeos aleatorios) y se presentan una y otra vez los patrones para que los pesos se ajusten iterativamente seguacuten forma usual de la regla del perceptroacuten hasta que todos queden bien clasificados El hiperplano que establece el liacutemite entre dos clases se desplaza lentamente hasta conseguir separarlas por completo (si es posible) como se ve en la figura 210

t= 115

x x

x x x

x x x

x

x

o

o o

o o o o

o

o o

o

o

o

o

o

o

o

X2

t= 21

t= 0 t= 4

X1

Figura 210 Regiones de decisioacuten que establece iterativamente el perceptroacuten durante el aprendizaje (en la iteracioacuten 115 ha conseguido separar ya las dos clases)

Avances En este capiacutetulo se haraacute una descripcioacuten de los avances que se han hecho hasta el momento Se hablaraacute acerca del entrenamiento de la red neuronal del sistema el reconocimiento de caracteres tanto con la red neuronal como con los clasificadores ya expuestos y el tratamiento de imaacutegenes para eliminar el ruido tipo sal y pimienta Reconocimiento de caracteres Se han hecho avances acerca del reconocimiento de caracteres utilizando redes neuronales y clasificadores diversos A continuacioacuten se exponen dichos avances

Entrenamiento de la red neuronal Para entrenar la red neuronal se utilizoacute el algoritmo de retropropagacioacuten expuesto en el capiacutetulo 1 Se disentildeoacute un programa en Java que permite entrenar una red neuronal de 3

18

capas La cantidad de clases a discriminar es variable y para este caso se utilizoacute una matriz de 5x8 es decir se tomaron 40 rasgos de entrada

Utilizando la red neuronal para reconocer caracteres A continuacioacuten se muestra en la imagen 211 el programa disentildeado en Java que permite discriminar un nuacutemero variable de clases Para este caso se eligioacute discriminar entre los diacutegitos del 0 al 9 El programa para reconocer los 128 caracteres referentes al sintetizador de voz tendraacute una interfaz similar con la diferencia de que la rejilla para ingresar el patroacuten a reconocer seraacute de 20x20 El programa mostrado fue programado tanto para entrenar la red como para reconocer los diacutegitos Se puede elegir entre los entrenamientos hechos para probar la efectividad de la red Las estadiacutesticas del entrenamiento elegido se muestran en la parte inferior de la pantalla

Imagen 211 Reconocimiento de los diacutegitos del 0 al 9 utilizando una red neuronal de 3 capas

19

Utilizando los clasificadores para reconocer caracteres Dentro de las teacutecnicas de reconocimiento de patrones existen diferentes clasificadores que nos permiten a partir de un conjunto de entrenamiento (en eacuteste caso un conjunto de tipos de letras que deseamos reconocer) saber a queacute clase pertenece un patroacuten de prueba que se introduce

Imagen 212 Un ejemplo de un clasificador KNN con un valor de K=3 y usando la meacutetrica City-Block para clasificar el patroacuten de prueba pruebabmp entre tres clases

En la imagen 212 se muestra como se puede clasificar un caraacutecter escalado de la imagen prueba 4bmp dentro de las tres clases existentes Se observa que si se puede clasificar este tipo de patrones pero veamos un ejemplo donde no sea posible clasificar un patroacuten de prueba y por queacute

Imagen 213 Un ejemplo de un clasificador KNN con un valor de K=5 y usando la meacutetrica Euclidiana para clasificar el patroacuten de prueba prueb3bmp entre tres clases El patroacuten no fue reconocido correctamente

20

Ahora como se observa no se pudo clasificar correctamente el patroacuten de prueba ya que pertenece claramente a la clase 3 pero por el clasificador que usamos o por el nuacutemero de K-vecinos o por el tipo de meacutetrica usada sucedioacute que en su mayoriacutea eran de la clase 2 y no de la clase 3 Tal vez si se hubiera elegido un valor de K menor a 5 tendriacutea maacutes posibilidades de clasificar correctamente Finalmente usar este tipo de teacutecnicas para reconocer caracteres es muy bueno ya que permite reconocer letras que se encuentran rotadas escaladas o trasladadas por una teacutecnica matemaacutetica llamada Momentos de Hu pero al tener una situacioacuten donde la imagen de prueba se encuentra exactamente a la misma distancia de dos o mas clases se crea el problema de no saber a que clase clasificar dicho patroacuten

Tratamiento digital de las imaacutegenes a capturar A continuacioacuten se muestra en la imagen 214 un programa que se codificoacute en C++ Builder y permite tratar digitalmente imaacutegenes BMP con la finalidad de eliminar el ruido pasarlas a escala de grises y binarizarlas El programa es capaz de generar histogramas de color

Imagen 214 Programa para tratar imaacutegenes digitalmente

21

CAPIacuteTULO 3 Buscadores La informacioacuten almacenada tendriacutea poco valor si no podemos consultarla buscar los datos en una base de datos o en muchas bases de datos que tienen conexioacuten por medio de la web es lo que nos permite explotar la informacioacuten Sin embargo la buacutesqueda seraacute eficiente si la respuesta del buscador es lo maacutes especifica o cercana a los temas solicitados Por lo que el software con aplicacioacuten de buscador es importante desarrollar un proceso para su creacioacuten Objetivo General Desarrollar un sistema de buacutesqueda de informacioacuten por conceptos en la Web basado en agentes inteligentes mediante la aplicacioacuten de ontologiacuteas Estado Del Arte Existen algunos sistemas que proporcionan buacutesquedas de informacioacuten basados en algunas de las tecnologiacuteas que vamos a utilizar Es habitual encontrar este tipo de buscadores y algunos otros similares bautizados como Megabuscadores o Multibuscadores a pesar de que estos teacuterminos no sean los maacutes idoacuteneos por lo que al hablar de este tipo de sistemas podemos referirlos como Buscadores Muacuteltiples en virtud de las caracteriacutesticas de su funcionamiento A continuacioacuten se mencionan algunos de ellos

Buscador muacuteltiple Copernic 2001 Pro Copernici producto de la empresa canadiense Copernic Technologies es un agente buscador que transfiere una ecuacioacuten de buacutesqueda a un conjunto de buscadores de manera simultaacutenea recupera las referencias pertinentes y las ordena seguacuten el grado medio de relevancia obtenido de cada uno de los buscadores La empresa creadora de Copernic se constituyoacute en 1996 con el propoacutesito de desarrollar soluciones innovadoras en tecnologiacuteas de agentes de buacutesqueda para conseguir un acceso y una gestioacuten eficientes de la gran masa de informacioacuten presente en Internet El programa se desarrolloacute el antildeo siguiente en una versioacuten experimental y se puso al alcance del puacuteblico en noviembre de 1998 Desde entonces se han lanzado versiones con elementos nuevos la mayoriacutea de los cuales no obstante soacutelo estaacuten disponibles en las ediciones comerciales La edicioacuten gratuita ofrece los servicios baacutesicos de consulta y con la intencioacuten de persuadir a los posibles compradores de las ediciones comerciales da una idea bastante aproximada de las posibilidades del programa completo

Lets Browse Como en otros medios (por ejemplo la televisioacuten) la navegacioacuten en Internet puede ser realizada por grupos de gente [Lieberman et al 1997] Lets browse muestra como un agente puede asistir a un grupo de gente en su navegacioacuten sugirieacutendoles materiales nuevos que puedan ser de intereacutes comuacuten entre ellos

Este trabajo es una extensioacuten del agente Letizia [Lieberman 1995] el cual selecciona paacuteginas de Web Letizia inicia una buacutesqueda por niveles visita las ligas que encuentra a partir de la paacutegina que su usuario esteacute revisando y selecciona aquellas que sean similares a los intereses que ha aprendido de su usuario (observando su navegacioacuten) Posteriormente muestra sus recomendaciones en un canal de navegacioacuten

22

El trabajo del agente consiste en seleccionar de la misma forma que Letizia lo hace aquellas paacuteginas que mejor satisfagan los intereses de todos los participantes Las caracteriacutesticas de Letrsquos browse son la deteccioacuten automaacutetica de la presencia de usuarios navegacioacuten automaacutetica (en canal de navegacioacuten) el despliege dinaacutemico de las preferencias de los usuarios y la explicacioacuten de las recomendaciones Permite ademaacutes revisar las paacuteginas desde el punto de vista de otra persona (con sus preferencias) y asiacute estimar cual seriacutea su posible opinioacuten acerca de dicha paacutegina auacuten cuando aquella persona no la haya revisado anteriormente

Agentes de Informacioacuten Un agente de informacioacuteiin es utilizado para organizar los espacios de informacioacuten del usuario y facilitar su explotacioacuten En el WWW (World Wide Web) se estaacuten implementando diversos agentes de informacioacuten El Agente Letizia [Lieberman 1995] que existe en un navegador de Web anticipa queacute artiacuteculos pueden ser de intereacutes para el usuario basaacutendose en las conductas pasadas del usuario Las paacuteginas que cree son de intereacutes del usuario Letizia las despliega en una ventana de sugerencias por unos instantes Marco Conceptual Actualmente para poder hacer la consulta de cualquier tipo de informacioacuten en Internet la mayoriacutea de las personas recurre a los motores de buacutesquedas conocidos como Google Yahoo Altavista por mencionar algunos siendo que estos usan diferentes meacutetodos para llegar a su objetivo podemos darnos cuenta que arrojan distintos resultados uno de otro que en el mejor de los casos coinciden en un porcentaje muy poco satisfactorio con la buacutesqueda en cuestioacuten con lo que concluimos que una respuesta a esta falta de precisioacuten en cuanto a la buacutesqueda de un tema en especial es mejor la buacutesqueda de conceptos lo cual permite al usuario acercarse maacutes al tema de su intereacutes Es importante enfocar nuestra solucioacuten apoyaacutendonos en un motor de buacutesqueda y aplicando herramientas como los Agentes que nos permitan recopilar la informacioacuten maacutes precisa de cada buacutesqueda a traveacutes de un algoritmo propio obteniendo resultados maacutes cercanos a los deseados ya que estos provienen de muacuteltiples documentos ahorrando tiempo y ganando precisioacuten a la vez Muy frecuentemente encontramos que cuando se trata de buacutesquedas en Internet a traveacutes de los motores de buacutesqueda populares los usuarios hacen consultas de diversas paginas y es muy difiacutecil llevar una lista de todos los sitios visitados o de aquellos que nos mostraron la informacioacuten maacutes adecuada nuestro sistema es capaz de registrar dentro de una base de datos un iacutendice de todos los sitios que se obtuvieron en la buacutesqueda de un tema o concepto con lo que el usuario no tendraacute que realizar una ldquonuevardquo buacutesqueda de un tema antes consultado sino que tendraacute a la mano todos los sitios que arrojoacute la primera buacutesqueda Marco teoacuterico

Descripcioacuten de RDF

El Resource Description Frameworiiik (RDF) es un fundamento para el procesamiento de metadatos proporciona interoperabilidad entre aplicaciones que intercambian informacioacuten legible por maacutequina en la Web RDF utiliza XML para intercambiar descripciones de recursos Web pero los recursos descritos pueden ser de cualquier tipo

23

incluyendo recursos XML y no-XML RDF resalta las facilidades para hacer posible el procesamiento automaacutetico de los recursos Web RDF puede utilizarse en diferentes aacutereas de aplicacioacuten por ejemplo en la recuperacioacuten de recursos para proporcionar mejores capacidades a los motores de buacutesqueda en catalogacioacuten para la descripcioacuten de contenido y relaciones de contenido accesibles en un sitio Web particular en una paacutegina o biblioteca digital a traveacutes de agentes de software inteligente para facilitar que el conocimiento se comparta e intercambie en la valoracioacuten de contenido en la descripcioacuten de colecciones de paacuteginas que representan un documento loacutegico individual para la descripcioacuten de los derechos de propiedad intelectual de las paacuteginas Web y para expresar las preferencias de privacidad de un usuario asiacute como las poliacuteticas de privacidad de un sitio Web Las descripciones utilizadas por estas aplicaciones pueden modelarse como relaciones entre recursos Web El modelo de datos de RDF tal y como se especifica en RDFMS define un modelo simple para describir las relaciones entre recursos en teacuterminos de propiedades y valores designadas Las propiedades RDF pueden entenderse como atributos de un recurso y en este sentido corresponden con los tradicionales pares atributo-valor Las propiedades RDF tambieacuten representa relaciones entre recursos De esta forma el modelo de datos RDF puede parecer un diagrama entidad-relacioacuten El modelo de datos RDF sin embargo no proporciona mecanismos para declarar estas propiedades ni proporcionan ninguacuten mecanismo para definir las relaciones entre estas propiedades y otros recursos Este es el papel [la funcioacuten] del Esquema RDF

Las comunidades de descripcioacuten de recursos necesitan la habilidad para decir ciertas cosas sobre ciertas clases de recursos Para describir recursos bibliograacuteficos por ejemplo son habituales atributos descriptivos tales como autor [author] tiacutetulo [title] y materia [subject] Para la certificacioacuten digital se necesitan muchas veces atributos tales como esquema simple de deteccioacuten de errores [checksum] y autorizacioacuten [authorization] La declaracioacuten de estas propiedades (atributos) y su semaacutentica correspondiente se definen en el contexto de RDF como un Esquema RDF Un esquema define no soacutelo las propiedades de un recurso (ej tiacutetulo autor materia tamantildeo color etc) sino que puede tambieacuten definir los tipos de recursos que se describiraacuten (libros paacuteginas Web personas empresas etc)

Los Esquemas RDF podriacutean contrastarse con las Definiciones del Tipo de Documentos (DTDs) de XML y los Esquemas XML A diferencia de una DTD o Esquema XML que dan restricciones especiacuteficas en la estructura de un documento XML un Esquema RDF proporciona informacioacuten sobre la interpretacioacuten de una sentencia dada en un modelo de datos RDF Mientras un Esquema XML puede utilizarse para validar la sintaxis de una expresioacuten RDFXML un esquema sintaacutectico soacutelo no es suficiente para los objetivos de RDF Los Esquemas RDF pueden tambieacuten especificar restricciones que deben seguirse por estos modelos de datos

Clases y Propiedades Un Esquema RDF se expresa a traveacutes de un modelo de datos descrito en la especificacioacuten del Modelo y la Sintaxis RDF [RDFMS] El lenguaje de descripcioacuten del esquema es un simple conjunto de recursos y propiedades definidos por la Especificacioacuten del Esquema RDF y la parte impliacutecita de cada modelo RDF que utiliza la mecaacutenica del esquema RDF

24

El sistema de escritura de datos [type system] El Esquema RDF definido en esta especificacioacuten es una coleccioacuten de recursos RDF que puede utilizarse para describir propiedades de otros recursos RDF (incluyendo propiedades) que definene vocabularios RDF de aplicacioacuten especiacutefica El nuacutecleo del vocabulario del esquema se define en un namespace denominado aquiacute informalmente rdfs e identificado por el URI de referencia httpwwww3org200001rdf-schema Esta especificacioacuten utiliza tambieacuten el prefijo rdf para referirse al namespace principal RDF httpwwww3org19990222-rdf-syntax-ns

Como se describe en la especificacioacuten del modelo y la sintaxis [RDFMS] los recursos pueden ser objetos especiacuteficos de una categoriacutea [instances] de una o maacutes clases esto se indica con la propiedad rdftype Las clases se organizan muchas veces de una forma jeraacuterquica por ejemplo la clase Dog [perro] podriacutea considerarse subclase de Mammal [mamiacutefero] que a su vez es una subclase de Animal dando a entender que cualquier recurso que esteacute en rdftype Dog se considera tambieacuten que estaacute en rdftype AnimalEsta especificacioacuten describe una propiedad rdfssubClassOf para indicar dichas relaciones entre clases

El sistema de escritura [type system] del Esquema RDF es similar al sistema de los lenguajes de programacioacuten orientados a objetos tales como Java Sin embargo RDF se diferencia de muchos de esos sistemas en que en lugar de definir una clase en teacuterminos de propiedades sus objetos especiacuteficos de una categoriacutea [instances] pueden tener un esquema RDF que definiraacute las propiedades en teacuterminos de clases de recurso a los que se aplican Este es el papel de las restricciones rdfsdomain y de rdfsrange

Por ejemplo podemos definir que la propiedad author tenga un dominio de Book y un alcance de Literal mientras que un sistema OO claacutesico podriacutea definir tiacutepicamente una clase Book con un atributo denominado author de tipo Literal

Clases y Recursos como Conjuntos y Elementos El siguiente esquema ilustra el concepto de clase subclase y recurso Una clase se describe por un rectaacutengulo redondeado un recurso se describe por un punto grande En la figura abajo se han dibujado flechas desde un recurso a una clase que define Una subclase se presenta en un rectaacutengulo redondeado (la subclase) completamente incluido en otro (la superclase) Si un recurso estaacute dentro de una clase entonces existe una propiedad rdftype o expliacutecita o impliacutecita de aquel recurso cuyo valor es un recurso que define la clase que contiene (Estas propiedades se muestran como arcos en la representacioacuten graacutefica directamente etiquetada en el Esquema 2) El recurso RDF representado en el esquema 1 se describe tanto en el resto de esta especificacioacuten como en la especificacioacuten del Modelo y Sintaxis RDF

Ontologiacuteas en la Representacioacuten del Conocimiento En estos uacuteltimos antildeos se incrementoacute la cantidad de informacioacuten en la Internet lo cual motivoacute el incremento de la complejidad y la diversidad de la informacioacuten Esto tambieacuten motivoacute el intereacutes de automatizar muchas actividades que tradicionalmente se realizan en forma manual La principal motivacioacuten en el uso de las ontologiacuteas es que permiten compartir y reutilizar conocimiento en un dominio De ahiacute el intereacutes de muchos

25

investigadores en el aacuterea de inteligencia artificial para tratar de aplicar las ontologiacuteas en la representacioacuten de conocimiento Las ontologiacuteas son un elemento importante en la Web Semaacutentica y es un teacutermino filosoacutefico que trata sobre la naturaleza de la existencia y los tipos de objetos que existen Tambieacuten la ontologiacutea se puede definir como una especificacioacuten expliacutecita de una conceptualizacioacuten compartida La conceptualizacioacuten se refiere a un modelo abstracto de un fenoacutemeno en el mundo en donde se tienen que identificar los conceptos relevantes de este fenoacutemeno El teacutermino expliacutecito significa queacute tipos de conceptos son usados y las restricciones de estos conceptos Y por uacuteltimo el teacutermino compartido se refiere a que las ontologiacuteas capturan conocimiento que es aceptado por todos y no es individual de un grupo Actualmente se les estaacute dando maacutes uso a las ontologiacuteas en el campo de la Inteligencia Artificial En este campo se define la ontologiacutea como una descripcioacuten formal y expliacutecita de conceptos de un dominio (classes a las que nos referiremos como conceptos) propiedades de cada concepto las cuales describen las caracteriacutesticas y atributos de los conceptos (slots llamados tambieacuten como propiedades o roles) y restricciones de las propiedades (facets conocidas como restricciones) La informacioacuten que es representada a traveacutes de los lenguajes semaacutenticos puede ser compartida entre aplicaciones como los agentes

OWL y Web Semaacutentica

La Web Semaacutentica es una Web extendida dotada de mayor significado en la que cualquier usuario en Internet podraacute encontrar respuestas a sus preguntas de forma maacutes raacutepida y sencilla gracias a una informacioacuten mejor definida Al dotar a la Web de maacutes significado y por lo tanto de maacutes semaacutentica se pueden obtener soluciones a problemas habituales en la buacutesqueda de informacioacuten gracias a la utilizacioacuten de una infraestructura comuacuten mediante la cual es posible compartir procesar y transferir informacioacuten de forma sencilla Esta Web extendida y basada en el significado se apoya en lenguajes universales que resuelven los problemas ocasionados por una Web carente de semaacutentica en la que en ocasiones el acceso a la informacioacuten se convierte en una tarea difiacutecil y frustrante

LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES La comunicacioacuten es uno de los aspectos importantes dentro de una comunidad de agentes la cual permitiraacute compartir y enviar mensajes entre agentes Los meacutetodos tradicionales permiten la comunicacioacuten entre los agentes pero eacutestos no son suficientes para lograr un comportamiento social entre los agentes para ello es necesario que los mensajes tengan un significado y contenido semaacutentico Se han desarrollado varios lenguajes los cuales son usados para el enviacuteo de mensajes a continuacioacuten hablaremos de dos de ellos KQML Knowledge Query and Manipulation Language (KQML) es uno de los lenguajes que nos provee la estructura para enviar mensajes entre agentes Dentro de sus principales caracteriacutesticas tenemos que es independiente de la sintaxis del contenido y la ontologiacutea

26

que se utilizaraacute Asiacute mismo es independiente del mecanismo de transporte (TCPIP SMTP IIOP etc) e independiente del contenido del lenguaje (KIF SQL STEP Prolog etc) KQML fue desarrollado por el consorcio DARPA Knowledge Sharing Effort (KSE) cuyo principal objetivo fue desarrollar una base tecnoloacutegica para construir en forma progresiva sistemas cada vez con maacutes funcionalidad complejidad y amplitud KQML provee un lenguaje y un protocolo para intercambiar informacioacuten entre agentes inteligentes y para lograr este intercambio se tiene que compartir una sintaxis y una semaacutentica comuacuten para que los mensajes sean entendidos por los agentes Al lenguaje KQML se le dividioacute en tres capas la capa de contenido alberga el contenido del mensaje que es especificado en cualquier formato ya sea texto o binario La capa de comunicacioacuten contiene paraacutemetros como el identificador uacutenico asociado a la comunicacioacuten identidad del remitente e identidad del destinatario La capa de mensaje define tanto los diferentes tipos de interaccioacuten que se pueden establecer entre los agentes como los protocolos que se pueden establecer entre los agentes Tambieacuten incluye otras caracteriacutesticas como el lenguaje de representacioacuten o la ontologiacutea siendo ambos opcionales

JADE (Java Agent DEvelopment Framework)

JADEiv (Java Agent DEvelopment Framework) es un middleware que proporciona tanto un entorno de desarrollo como un entorno de ejecucioacuten para la realizacioacuten y mantenimiento de sistemas multiagente El entorno de desarrollo estaacute formado por una serie de libreriacuteas en Java que permiten la implementacioacuten de agentes de manera limpia e independiente de la plataforma sobre la que se va a ejecutar El entorno de ejecucioacuten permite a los agentes vivir y comunicarse entre ellos Estaacute realizado enteramente en Java y proporciona una serie de herramientas que permiten al desarrollador controlar y depurar a los agentes en tiempo real JADE es un middleware desarrollado por TILAB para el desarrollo de aplicaciones distribuidas multiagente JADE proporciona tanto el entorno de desarrollo para la creacioacuten de aplicaciones basadas en agentes como el entorno de ejecucioacuten JADE presenta las siguientes caracteriacutesticas

P2P Arquitectura peer-to-peer cada agente puede tomar la iniciativa en una comunicacioacuten o bien responder a peticiones que le hagan otros agentes

Interoperabilidad JADE cumple con las especificaciones FIPA por lo que los agentes desarrollados en JADE pueden interactuar con otros agentes que no tienen porque estar desarrollados con JADE aunque si deben seguir las especificaciones FIPA

Portabilidad La API que proporciona JADE es independientemente de la red sobre la que va a operar asiacute como de la versioacuten de Java utilizada teniendo la misma API para J2EE J2SE y J2ME

27

Intuitiva JADE se ha desarrollado para ofrecer una API faacutecil de aprender y sencilla de manejar

Los agentes JADE tienen nombres uacutenicos y se permite a cada agente descubrir a otros agentes y comunicarse con ellos mediante comunicaciones punto a punto Los agentes proporcionan servicios cada agente puede buscar a otros dependiendo de los servicios que proporcionen otros agentes La comunicacioacuten entre agentes se lleva a cabo a traveacutes de mensajes asiacutencronos es decir el agente que enviacutea el mensaje y el destinatario del mensaje no tienen porqueacute estar disponibles al mismo tiempo Es maacutes el destinatario no tiene porqueacute existir en ese instante Los mensajes se pueden enviar a un agente en concreto o se pueden enviar a agentes que se desconocen pero se sabe que poseen unas ciertas caracteriacutesticas JADE proporciona mecanismos de seguridad ya que habraacute agentes a los que no se les esteacute permitido comunicarse con otros agentes de manera que una aplicacioacuten puede verificar la identidad del receptor y del agente que enviacutea el mensaje y no dejar realizar actuaciones no permitidas para un determinado agente La estructura de los mensajes se basa en el lenguaje ACL (Agent Communication Lenguaje) que ha sido definido por la FIPA JADE facilita mecanismos para el desarrollo de los objetivos que deben alcanzar los agentes Los comportamientos (behaviours) y la comunicacioacuten entre los agentes (junto con el servicio de paacuteginas amarillas) proporcionan los recursos necesarios para programar un sistema multiagente JADE tambieacuten permite a los agentes cambiar de Host (en J2SE) Un agente puede interrumpir en un momento dado su ejecucioacuten migrar a otro host (sin necesidad de que el coacutedigo esteacute previamente en el host destino) y continuar la ejecucioacuten en el mismo punto en el que la interrumpioacute Esto permite un balanceo de carga ya que permite a los agentes migrar hosts menos cargados El entorno de ejecucioacuten proporciona un marco donde poder ejecutar los agentes y herramientas graacuteficas para su monitorizacioacuten y depuracioacuten Los agentes JADE necesitan del entorno de ejecucioacuten donde poder vivir Cada instancia del entorno de ejecucioacuten se denomina contenedor (container) Al conjunto de los contenedores se le denomina plataforma (platform) y proporciona una capa que oculta a los agentes (y al desarrollador) el entorno donde se ha decidido ejecutar la aplicacioacuten En cada plataforma debe existir un contenedor especial denominado contenedor principal (main container) La principal diferencia del contenedor principal respecto al resto de contenedores es que alberga dos agentes especiales

AMS (Agent Management System) Este agente proporciona el servicio de nombres asegurando que cada agente en la plataforma disponga de un nombre uacutenico Tambieacuten representa la autoridad es posible crear y matar agentes en contenedores remotos requeriendoselo al agente AMS

DF (Directory Facilitator) Proporciona el servicio de Paacuteginas Amarillas Gracias al agente DF un agente puede encontrar otros agentes que provean los servicios necesarios para lograr sus objetivos

28

La caracteriacutestica mas importante del entorno de ejecucioacuten es la interfaz graacutefica que proporciona desde la que podemos controlar y depurar los agentes existentes Todas las herramientas han sido desarrolladas como agentes y siguen sus mismas reglas Disentildeo Arquitectura

Agente usuario

Agente de ontologiacutea

Agente de filtrado

Agente de recuperacioacuten

BD

OntologiacuteaSistema

Motor de buacutesqueda

El sistema esta disentildeado para que un usuario realice alguna buacutesqueda relacionada con alguno de los tres temas propuestos en nuestra base de conocimiento que son Ingenieriacutea de Software Base de Datos y Deportes El sistema esta basado en una arquitectura multiagente la cual se conforma por Agente Usuario Actuacutea de intermediario entre el usuario y el sistema Sus servicios son solicitados por el usuario para resolver las consultas El usuario le suministra una consulta y el sistema le devuelve una lista de documentos que pueden satisfacer sus necesidades Este agente tiene la capacidad de acceder a la base de datos con el objetivo de almacenar yo recuperar resultados Base de Datos Guardaraacute las ultimas buacutesquedas realizadas para su posterior consulta a peticioacuten del usuario Agente de Filtrado Gestiona la recuperacioacuten de documentos y realiza el filtrado de los mismos proporcionados por el Agente de Recuperacioacuten Recibe la peticioacuten del Agente Usuario y a su vez esta es enviada al Agente Ontologiacutea para que este regrese una evaluacioacuten de la consulta y de esta forma conocer si es necesaria una redefinicioacuten de la consulta En caso de ser necesaria se espera recibir el nuevo vector de consulta hasta que se cumpla una de dos opciones el usuario deje de redefinir la consulta o la consulta sea concreta Cuando la consulta sea concreta es enviada de nueva cuenta al Agente Ontologiacutea el cual regresaraacute el Nuevo Vector Expandido Este seraacute enviado al Agente de Recuperacioacuten Cuando el Agente de Recuperacioacuten regrese los urlacutes de los resultados (con sus respectivos vectores de teacuterminos) se realiza una evaluacioacuten de los vectores de cada documento con respecto al vector de buacutesqueda expandida con el objetivo de asignarles una calificacioacuten Gracias a esta calificacioacuten podemos obtener aquellos documentos que mejor cumplan con las expectativas del usuario (Estos documentos son regresados al Agente Usuario) Agente Ontologiacutea Recibe el vector de consulta proporcionado por el Agente de Filtrado La informacioacuten contenida en el vector de consulta es comparada con la existente en nuestra ontologiacutea Una vez verificada la existencia de la informacioacuten del

29

vector consulta dentro de la ontologiacutea este se encarga de devolver la distancia y el umbral al Agente de Filtrado Se espera que este devuelva una peticioacuten para expandir ese mismo vector Puede darse el caso de obtener dos tipos de buacutesquedas una general y otra mucho maacutes definida En cualquiera de los caso obtenemos un nuevo vector de buacutesqueda (con una informacioacuten mejor definida este es el Vector de Buacutesqueda Expandido) que es enviado de regreso al Agente de Filtrado el cual genera una copia y le es enviada al Agente de Recuperacioacuten Ontologiacutea Representa nuestra base de conocimientos Esta compuesta por tres aacutereas de conocimiento las cuales son Ingenieriacutea se Software Bases de Datos y Deportes Para poder representar esta ontologiacutea en un lenguaje entendible para agentes inteligentes se programaraacute bajo los fundamentos de las estructuras RDF contenidas en las especificaciones de XML y siguiendo los estaacutendares de la W3C Agente Recuperacioacuten Realiza la buacutesqueda gracias a la informacioacuten que le es entregada por el Agente de Filtrado (se trata Vector de Buacutesqueda Expandido generado por el Agente de Ontologiacutea) El agente estructura esta informacioacuten y se introduce en un motor de buacutesqueda(diacutegase por ejemplo Google) de tal manera que obtengamos una lista de posibles documentos A cada documento se le asigna un vector de teacuterminos con sus pesos derivados de un anaacutelisis TFIDF para despueacutes regresar las urlacutes con su respectivo vector de teacuterminos al Agente Filtrado RESULTADOS Este proyecto tiene la finalidad de desarrollar el software para un antivirus y un traductor Pero durante los estudios de anaacutelisis de estos dos productos se encontroacute que el software para la buacutesqueda de la informacioacuten tambieacuten puede ser implementada por medio de teacutecnicas de Inteligencia Artificial Para construir el software de aplicacioacuten para estas necesidades se usa la metodologiacutea de cascada Donde los pasos a seguir son el Anaacutelisis Disentildeo Pruebas Implementacioacuten y Mantenimiento Hasta este momento estamos en la etapa de pruebas de algunos moacutedulos de los tres productos IMPACTO El detector de intrusos en una red es de mucha importancia debido a que en la actualidad se han diseminado muchos virus que pueden ser transmitidos a traveacutes de intrusos Hasta la fecha el meacutetodo de proteccioacuten se hace de forma manual La finalidad de este software es automatizar la proteccioacuten El traductor de texto a voz tiene como primera aplicacioacuten el auxilio en la lectura de documentos para las personas invidentes o deacutebiles visuales una segunda aplicacioacuten es la comunicacioacuten con la computadora por medio del lenguaje natura El buscador de informacioacuten es un auxilio en la buacutesqueda de datos en una base de datos de conocimiento Ya que tambieacuten estaacuten proliferando las bibliotecas virtuales es una ayuda en la localizacioacuten de informacioacuten cientiacutefica y un preaacutembulo para un software de apoyo docente BIBLIOGRAFIacuteA [1] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

30

[2] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps[3] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[4] w3c en espantildeol OWL y Web Semaacutentica httpwwww3cesDivulgacionGuiasbrevesWebSemantica

[5] Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

[6] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[7] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[8] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[9] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[10] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[11] Laboratorios Googlehttplabsgooglecompapershtml

[12] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[13] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

[14] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

[15] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps [16] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[18] Trabajos de Agente en JADE http Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

31

[19] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[20] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[21] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[22] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[23] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[24] Laboratorios Googlehttplabsgooglecompapershtml

[25] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[26] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

  • En este reporte teacutecnico se presenta la descripcioacuten general anaacutelisis y estado actual de de los trabajos terminales TT2006135 TT20060097 y TT20060068 que tienen por titulo ldquoSistema prototipo de deteccioacuten de intrusos en la red utilizando agentes inteligentesrdquo rdquoProcesamiento digital de imaacutegenes para la conversioacuten de texto a vozrdquo y ldquoSistema de buacutesqueda de informacioacuten por conceptos en la webrdquo respectivamente Los prototipos que se obtendraacuten seraacuten un software robusto que se desarrollaraacuten con teacutecnicas de inteligencia artificial como Agentes inteligentes y Redes neuronales
  • Estructura de un sistema neuronal artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
    • Estado Del Arte
      • Estructura de un sistema neuronal artificial
        • Sistemas paralelos distribuidos y adaptativos
          • Modelo estaacutendar de neurona artificial
            • Sigmoidal logariacutetmica
              • Empleo del perceptroacuten para reconocer funciones loacutegicas
              • Algoritmo de aprendizaje del perceptroacuten
                • Objetivo General
                • Estado Del Arte
                • A continuacioacuten se mencionan algunos de ellos
                  • Buscador muacuteltiple Copernic 2001 Pro
                  • Lets Browse
                  • Agentes de Informacioacuten
                    • Marco Conceptual
                      • Clases y Propiedades
                      • El sistema de escritura de datos [type system]
                      • Clases y Recursos como Conjuntos y Elementos
                        • Ontologiacuteas en la Representacioacuten del Conocimiento
                          • LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES
                          • JADE (Java Agent DEvelopment Framework)
                            • Disentildeo
                            • Arquitectura
Page 10: INSTITUTO POLITÉCNICO NACIONALsappi.ipn.mx/cgpi/archivos_anexo/20061387_3286.pdf · La comunicación del hombre con la computadora por medio del lenguaje natural, es la finalidad

10

Modelo estaacutendar de neurona artificial Se denomina procesador elemental o neurona a un dispositivo simple de caacutelculo que a partir de un vector de entrada procedente del exterior o de otras neuronas proporciona una uacutenica respuesta o salida En este apartado se trataraacute el modelo denominado neurona estaacutendar (ver figura 31) que constituye un caso particular de un modelo maacutes complejo llamado modelo PDP El modelo estaacutendar considera que la regla de propagacioacuten es la suma ponderada y que la funcioacuten de salida es la identidad De esta forma la neurona estaacutendar etiquetada como i consiste en

bull Un conjunto de entradas Xj(t) y pesos sinaacutepticos Wij que representan la intensidad de interaccioacuten entre cada neurona presinaacuteptica j y cada neurona postsinaacuteptica i (ver figura 41)

bull Una regla de propagacioacuten σ(Wij Xj(t)) que proporciona el valor del potencial postsinaacuteptico hi(t)= σ(Wij Xj(t))=sumWijXj de la neurona i en funcioacuten de sus pesos y entradas

bull Una funcioacuten de activacioacuten Yi(t)=fi(hi(t)) que representa simultaacuteneamente la salida de la neurona i y su estado de activacioacuten (en el caso del modelo PDP las funciones de activacioacuten y de salida son tratadas por separado)

Con frecuencia se antildeade al conjunto de pesos de la neurona un paraacutemetro adicional θi que se denominaraacute umbral1 que se resta del potencial postsinaacuteptico por lo que el argumento de la funcioacuten de activacioacuten queda

sumj WijXj - θi

lo que representa antildeadir un grado de libertad adicional a la neurona En el caso de nodos de respuesta todo-nada este paraacutemetro representaraacute el umbral de disparo de la neurona es decir el nivel miacutenimo que debe alcanzar el potencial postsinaacuteptico (o potencial de membrana) para que la neurona se dispare o active En conclusioacuten el modelo de neurona denominado estaacutendar queda

Yi(t)=fi (sumj WijXj - θi)

Ahora bien si se hace que los iacutendices i y j comiencen en 0 se puede definir Wi0= θi y X0=-1 (constante) con lo que el potencial postsinaacuteptico (potencial local o de membrana) se obtiene realizando la suma desde j=0

Yi(t)=fi (sumj=012n WijXj)

1 En algunos modelos es threshold es decir ldquoumbralrdquo y en otros bias que no tiene una traduccioacuten clara en este caso

11

sum f ( )

Axoacuten Yi

Wi1

Wi2

Wij

Win

θi-1

X1

X2

Habiendo definido de esta manera la neurona estaacutendar basta con establecer la forma de la funcioacuten de activacioacuten para determinarla por completo A continuacioacuten se muestra una tabla con las funciones de activacioacuten maacutes utilizadas

Funcioacuten Relacioacuten entradasalida Graacutefica

Escaloacuten y=0 nlt0 y=1 nge0

Escaloacuten simeacutetrica y= -1 nlt0 y=+1 nge0

Lineal Identidad

y=n

Lineal saturada y=0 nlt0

y=n 0lenle1 y=1 ngt1

Lineal saturada simeacutetrica

y=-1 nlt-1 y=n -1lenle1

y=1 ngt1

Sigmoidal logariacutetmica

ney minus+=

11

Xj

Xn

Entradas

Dendritas

Sinapsis

Cuerpo celular

Salida

Umbral

Figura 23 Modelo de neurona estaacutendar

12

Tangente

hiperboacutelica

nn

nn

eeeey minus

minus

+minus

=

Lineal positiva y=0 nlt0 y=n 0len

Competitiva a=1 neurona con maacutex n

a=0 todas las demaacutes

C

Tabla 2 Funciones de activacioacuten habituales (se han omitido algunas constantes)

Arquitecturas de redes neuronales Se denomina arquitectura a la topologiacutea estructura o patroacuten de conexionado de una red neuronal En un ANS los nodos se conectan por medio de sinapsis esta estructura de conexiones sinaacutepticas determina el comportamiento de la red Las conexiones sinaacutepticas son direccionales es decir la informacioacuten soacutelo puede propagarse en un uacutenico sentido (desde la neurona presinaacuteptica a la postsinaacuteptica ver figura 24)

j

i

YjXj

Wij

YiNeurona presinaacuteptica

Neurona postsinaacuteptica

Figura 24 Interaccioacuten entre una neurona presinaacuteptica y otra postsinaacuteptica

En general las neuronas se suelen agrupar en unidades estructurales que denominaremos capas Las neuronas de una capa pueden agruparse a su vez formando grupos neuronales (clusters) Dentro de un grupo o de una capa si no existe este tipo de agrupacioacuten las neuronas suelen ser del mismo tipo Finalmente el conjunto de una o maacutes capas constituye la red neuronal

Se distinguen tres tipos de capas de entrada de salida y ocultas Una capa de entrada o sensorial estaacute compuesta por neuronas que reciben datos o sentildeales procedentes del entorno (por ejemplo proporcionado por sensores) Una capa de salida es aquella cuyas neuronas proporcionan la respuesta de la red neuronal (sus neuronas pueden estar conectadas a efectores) Una capa oculta es aquella que no tiene una conexioacuten directa

13

con el entorno es decir que no se conecta directamente ni a organos sensores o efectores Esta capa proporciona a la red neuronal grados de libertad adicionales gracias a los cuales puede encontrar representaciones internas correspondientes a determinados rasgos del entorno proporcionando una mayor riqueza computacional (ver figura 25)

Informacioacuten Capa de salida

(efectora) Capa oculta Capa de entrada (procesamiento) (sensorial)

Figura 25 Arquitectura unidireccional de tres capas de entrada oculta y de salida

Las conexiones entre las neuronas pueden ser excitadoras o inhibidoras un peso sinaacuteptico negativo define una conexioacuten inhibidora mientras uno positivo determina una conexioacuten excitadora Habitualmente no se suele definir una conexioacuten como de un tipo u otro sino que por medio del aprendizaje se obtiene un valor para el peso que incluye signo y magnitud

El perceptroacuten simple Este modelo neuronal fue introducido por Rosenblatt a finales de los antildeos cincuenta Dicha estructura se inspira en las primeras etapas de procesamiento de los sistemas sensoriales de los animales (por ejemplo la visioacuten) en los cuales la infomacioacuten va atravesando sucesivas capas de neuronas que realizan un procesamiento progresivamente de maacutes alto nivel Un perceptroacuten simple es un modelo unidireccional compuesto por dos capas de neuronas una sensorial o de entrada y otra de salida A continuacioacuten se muestra en la figura 26 su representacioacuten y la funcion de transferencia que utiliza

Figura 26 a) Las neuronas de entrada no realizan ninguacuten coacutemputo uacutenicamente enviacutean la informacioacuten a las neuronas de salida b) la funcioacuten de activacioacuten de las neuronas de la capa de salida es de tipo escaloacuten

Capa de entrada

Capa de salida

f(x) x

Funcioacuten escaloacuten

a) b)

14

El perceptroacuten puede utilizarse tanto como clasificador como para la representacioacuten de funciones booleanas pues su neurona es esencialmente de tipo MacCulloch-Pitts es decir de salida binaria La importancia histoacuterica del perceptroacuten radica en su caraacutecter de dispositivo entrenable ya que el algoritmo de aprendizaje que desarrollo Rosenblatt permite determinar automaacuteticamente los pesos sinaacutepticos que clasifican un conjunto de patrones a partir de un conjunto de ejemplos etiquetados (a esto se le llama red neuronal supervisada y el perceptron simple es de este tipo) Ahora se mostraraacute que un perceptroacuten permite realizar tareas de clasificacioacuten Cada neurona del perceptroacuten representa una determinada clase de modo que dado un vetor de entrada una cierta neurona responde con 0 si no pertenece a la clase que representa y con un 1 si siacute pertenece Es faacutecil ver que una neurona tipo perceptroacuten solamente permite discriminar entre dos clases linealmente separables (es decir cuyas regiones de decisioacuten pueden ser separadas mediante una uacutenica condicioacuten lineal o hiperplano que es una liacutenea recta si trabajamos en dos dimensiones) Sea una neurona tipo perceptroacuten de dos entradas x1 y x2 con salida y cuya operacioacuten se define por lo tanto como

y = H(w1x1+w2x2 - ө) o bien 1 si w1x1+w2x2 geӨ y = 0 si w1x1+w2x2 ltӨ

Si consideramos x1 y x2 situadas sobre los ejes de abscisas y ordenadas en el plano la condicioacuten

w1x1+ w2x2 -Ө = 0 rarr x2 = - (w1 w2) x1 + Ө w2 representa una recta (hiperplano si trabajamos con n entradas) que divide el plano en dos regiones que son aquellas para las que la neurona proporciona una salida 0 o 1 respectivamente como se muestra en la figura 27

x x

x x x

x x x

x

x

oo

oo

o o

o

X1

X2

Regioacuten w1x1+w2x2 geӨ Regioacuten w1x1+w2x2 ltӨ

Figura 27 Una neurona tipo perceptroacuten representa un discriminador lineal que separa dos regiones en el espacio que representan dos diferentes clases de patrones En esta graacutefica x = lsquo1rsquo y o = lsquo0rsquo

15

Empleo del perceptroacuten para reconocer funciones loacutegicas -Funcion linealmente separable Consideremos la funcioacuten loacutegica NAND2 (AND negada de dos entradas) que representamos sobre un plano en la graacutefica 3 que se presenta en seguida

x (10) o (11)

x (00)

x (01) X1

X2

Figura 28 Funcioacuten loacutegica NAND de dos entradas En la graacutefica x = lsquo1rsquo y o = lsquo0rsquo

Se puede ver que en este caso existen paraacutemetros w1 w2 y Ө que permiten una recta que separa perfectamente las regiones correspondientes a los valores loacutegicos 0 y 1 Y por lo tanto se dice que la funcioacuten loacutegica NAND es linealmente separable -Funcioacuten no separable linealmente

Ahora consideremos la funcioacuten loacutegica or-exclusivo (XOR) y representandola en un plano en la figura 29

x (10) o (11)

o (00)

x (01) X1

X2

Figura 29 Funcioacuten loacutegica XOR de dos entradas que no es linealmente separable

16

Al ser XOR no linealmente separable se dice que ldquola clase de funciones no separables linealmente no pueden ser representadas por un perceptroacuten simplerdquo El perceptroacuten presenta serias limitaciones pues solamente puede representar funciones linealmentes separables Y aunque pueda aprender automaacuteticamente a representar complejas funciones booleanas o resolver con eacutexito muchos problemas de clasificacioacuten con un cierto algoritmo en ocasiones fallara draacutesticamente Minsky (que es uno de los padres de la inteligencia artificial) y Papera estudiaron en profundidad el perceptroacuten y en 1969 publicaron un exhaustivo trabajo donde exhibian las limitantes del modelo en lo que resultoacute decisivo para que muchos de los recursos que se destinaban a su investigacioacuten se desviara a otras aacutereas Una solucioacuten para las limitantes del perceptroacuten simple puede consistir en incluir maacutes capas en la arquitectura con lo que tendremos un perceptroacuten multicapa A finales de los antildeos sesenta ya se apuntaba como solucioacuten a las limitaciones del perceptroacuten introducir capas ocultas pero el problema estaba en que no se teniacutea un algoritmo de aprendizaje para el perceptroacuten multicapa (con capas ocultas) Dicho algoritmo fue propuesto por Paul Verbos alrededor de 1974 pero fue preciso hasta mediados de los ochenta cuando el grupo PDP redescubriera un algoritmo similar al cual denominaron Back-Propagation o BP y dieran a conocer a la comunidad internacional su gran potencial para la resolucioacuten de problemas praacutecticos

Algoritmo de aprendizaje del perceptroacuten El del perceptroacuten es un algoritmo de aprendizaje de los denominados por correccion de errores Los algoritmos de este tipo ajustan los pesos en proporcioacuten a la diferencia existente entre la salida actual de la red y la salida deseada con el objetivo de minimizar el error actual de la red Definicioacuten del algoritmo de aprendizaje Sea un conjunto de p patrones xn n=1hellipp con sus salidas deseadas tn Tanto las entradas como las salidas solamente pueden tomar los valores -1 o 1 Se tiene una arquitectura de perceptroacuten simple con pesos iniciales aleatorios y se requiere que clasifique correctamente todos los patrones del conjunto de aprendizaje (solo si son linealmente separables) Ahora actuaremos del siguiente modo ante la presentacioacuten del patron n-eacutesimo si la respuesta que proporciona el perceptroacuten es correcta no actualizaremos los pesos si es incorrecta los modificaremos seguacuten la regla de Hebb aplicada a nuestro caso Primero se muestra la regla de Hebb y despueacutes la regla modificada para el perceptroacuten simple Regla de Hebb

∆wij = ξyixjDonde

17

o wij corresponde a los pesos de una entrada j por la salida i de la neurona

o ξ se denomina ritmo de aprendizaje que su valor suele estar entre 1 y 0 Regla modificada para el perceptroacuten simple

2ξtnixnj si yn

ine tni ∆wn

ij(t)= 0 si yn

i= tni que puede reescribirse del siguiete modo que es la forma usual de expresar la regla del perceptroacuten

∆wnij(t)= 2ξ(tni - yn

i)xnj

Es importante mencionar que el proceso de aprendizaje es iterativo se

parte de una configuracioacuten sinaacuteptica de partida (normalmente de pesos pequentildeos aleatorios) y se presentan una y otra vez los patrones para que los pesos se ajusten iterativamente seguacuten forma usual de la regla del perceptroacuten hasta que todos queden bien clasificados El hiperplano que establece el liacutemite entre dos clases se desplaza lentamente hasta conseguir separarlas por completo (si es posible) como se ve en la figura 210

t= 115

x x

x x x

x x x

x

x

o

o o

o o o o

o

o o

o

o

o

o

o

o

o

X2

t= 21

t= 0 t= 4

X1

Figura 210 Regiones de decisioacuten que establece iterativamente el perceptroacuten durante el aprendizaje (en la iteracioacuten 115 ha conseguido separar ya las dos clases)

Avances En este capiacutetulo se haraacute una descripcioacuten de los avances que se han hecho hasta el momento Se hablaraacute acerca del entrenamiento de la red neuronal del sistema el reconocimiento de caracteres tanto con la red neuronal como con los clasificadores ya expuestos y el tratamiento de imaacutegenes para eliminar el ruido tipo sal y pimienta Reconocimiento de caracteres Se han hecho avances acerca del reconocimiento de caracteres utilizando redes neuronales y clasificadores diversos A continuacioacuten se exponen dichos avances

Entrenamiento de la red neuronal Para entrenar la red neuronal se utilizoacute el algoritmo de retropropagacioacuten expuesto en el capiacutetulo 1 Se disentildeoacute un programa en Java que permite entrenar una red neuronal de 3

18

capas La cantidad de clases a discriminar es variable y para este caso se utilizoacute una matriz de 5x8 es decir se tomaron 40 rasgos de entrada

Utilizando la red neuronal para reconocer caracteres A continuacioacuten se muestra en la imagen 211 el programa disentildeado en Java que permite discriminar un nuacutemero variable de clases Para este caso se eligioacute discriminar entre los diacutegitos del 0 al 9 El programa para reconocer los 128 caracteres referentes al sintetizador de voz tendraacute una interfaz similar con la diferencia de que la rejilla para ingresar el patroacuten a reconocer seraacute de 20x20 El programa mostrado fue programado tanto para entrenar la red como para reconocer los diacutegitos Se puede elegir entre los entrenamientos hechos para probar la efectividad de la red Las estadiacutesticas del entrenamiento elegido se muestran en la parte inferior de la pantalla

Imagen 211 Reconocimiento de los diacutegitos del 0 al 9 utilizando una red neuronal de 3 capas

19

Utilizando los clasificadores para reconocer caracteres Dentro de las teacutecnicas de reconocimiento de patrones existen diferentes clasificadores que nos permiten a partir de un conjunto de entrenamiento (en eacuteste caso un conjunto de tipos de letras que deseamos reconocer) saber a queacute clase pertenece un patroacuten de prueba que se introduce

Imagen 212 Un ejemplo de un clasificador KNN con un valor de K=3 y usando la meacutetrica City-Block para clasificar el patroacuten de prueba pruebabmp entre tres clases

En la imagen 212 se muestra como se puede clasificar un caraacutecter escalado de la imagen prueba 4bmp dentro de las tres clases existentes Se observa que si se puede clasificar este tipo de patrones pero veamos un ejemplo donde no sea posible clasificar un patroacuten de prueba y por queacute

Imagen 213 Un ejemplo de un clasificador KNN con un valor de K=5 y usando la meacutetrica Euclidiana para clasificar el patroacuten de prueba prueb3bmp entre tres clases El patroacuten no fue reconocido correctamente

20

Ahora como se observa no se pudo clasificar correctamente el patroacuten de prueba ya que pertenece claramente a la clase 3 pero por el clasificador que usamos o por el nuacutemero de K-vecinos o por el tipo de meacutetrica usada sucedioacute que en su mayoriacutea eran de la clase 2 y no de la clase 3 Tal vez si se hubiera elegido un valor de K menor a 5 tendriacutea maacutes posibilidades de clasificar correctamente Finalmente usar este tipo de teacutecnicas para reconocer caracteres es muy bueno ya que permite reconocer letras que se encuentran rotadas escaladas o trasladadas por una teacutecnica matemaacutetica llamada Momentos de Hu pero al tener una situacioacuten donde la imagen de prueba se encuentra exactamente a la misma distancia de dos o mas clases se crea el problema de no saber a que clase clasificar dicho patroacuten

Tratamiento digital de las imaacutegenes a capturar A continuacioacuten se muestra en la imagen 214 un programa que se codificoacute en C++ Builder y permite tratar digitalmente imaacutegenes BMP con la finalidad de eliminar el ruido pasarlas a escala de grises y binarizarlas El programa es capaz de generar histogramas de color

Imagen 214 Programa para tratar imaacutegenes digitalmente

21

CAPIacuteTULO 3 Buscadores La informacioacuten almacenada tendriacutea poco valor si no podemos consultarla buscar los datos en una base de datos o en muchas bases de datos que tienen conexioacuten por medio de la web es lo que nos permite explotar la informacioacuten Sin embargo la buacutesqueda seraacute eficiente si la respuesta del buscador es lo maacutes especifica o cercana a los temas solicitados Por lo que el software con aplicacioacuten de buscador es importante desarrollar un proceso para su creacioacuten Objetivo General Desarrollar un sistema de buacutesqueda de informacioacuten por conceptos en la Web basado en agentes inteligentes mediante la aplicacioacuten de ontologiacuteas Estado Del Arte Existen algunos sistemas que proporcionan buacutesquedas de informacioacuten basados en algunas de las tecnologiacuteas que vamos a utilizar Es habitual encontrar este tipo de buscadores y algunos otros similares bautizados como Megabuscadores o Multibuscadores a pesar de que estos teacuterminos no sean los maacutes idoacuteneos por lo que al hablar de este tipo de sistemas podemos referirlos como Buscadores Muacuteltiples en virtud de las caracteriacutesticas de su funcionamiento A continuacioacuten se mencionan algunos de ellos

Buscador muacuteltiple Copernic 2001 Pro Copernici producto de la empresa canadiense Copernic Technologies es un agente buscador que transfiere una ecuacioacuten de buacutesqueda a un conjunto de buscadores de manera simultaacutenea recupera las referencias pertinentes y las ordena seguacuten el grado medio de relevancia obtenido de cada uno de los buscadores La empresa creadora de Copernic se constituyoacute en 1996 con el propoacutesito de desarrollar soluciones innovadoras en tecnologiacuteas de agentes de buacutesqueda para conseguir un acceso y una gestioacuten eficientes de la gran masa de informacioacuten presente en Internet El programa se desarrolloacute el antildeo siguiente en una versioacuten experimental y se puso al alcance del puacuteblico en noviembre de 1998 Desde entonces se han lanzado versiones con elementos nuevos la mayoriacutea de los cuales no obstante soacutelo estaacuten disponibles en las ediciones comerciales La edicioacuten gratuita ofrece los servicios baacutesicos de consulta y con la intencioacuten de persuadir a los posibles compradores de las ediciones comerciales da una idea bastante aproximada de las posibilidades del programa completo

Lets Browse Como en otros medios (por ejemplo la televisioacuten) la navegacioacuten en Internet puede ser realizada por grupos de gente [Lieberman et al 1997] Lets browse muestra como un agente puede asistir a un grupo de gente en su navegacioacuten sugirieacutendoles materiales nuevos que puedan ser de intereacutes comuacuten entre ellos

Este trabajo es una extensioacuten del agente Letizia [Lieberman 1995] el cual selecciona paacuteginas de Web Letizia inicia una buacutesqueda por niveles visita las ligas que encuentra a partir de la paacutegina que su usuario esteacute revisando y selecciona aquellas que sean similares a los intereses que ha aprendido de su usuario (observando su navegacioacuten) Posteriormente muestra sus recomendaciones en un canal de navegacioacuten

22

El trabajo del agente consiste en seleccionar de la misma forma que Letizia lo hace aquellas paacuteginas que mejor satisfagan los intereses de todos los participantes Las caracteriacutesticas de Letrsquos browse son la deteccioacuten automaacutetica de la presencia de usuarios navegacioacuten automaacutetica (en canal de navegacioacuten) el despliege dinaacutemico de las preferencias de los usuarios y la explicacioacuten de las recomendaciones Permite ademaacutes revisar las paacuteginas desde el punto de vista de otra persona (con sus preferencias) y asiacute estimar cual seriacutea su posible opinioacuten acerca de dicha paacutegina auacuten cuando aquella persona no la haya revisado anteriormente

Agentes de Informacioacuten Un agente de informacioacuteiin es utilizado para organizar los espacios de informacioacuten del usuario y facilitar su explotacioacuten En el WWW (World Wide Web) se estaacuten implementando diversos agentes de informacioacuten El Agente Letizia [Lieberman 1995] que existe en un navegador de Web anticipa queacute artiacuteculos pueden ser de intereacutes para el usuario basaacutendose en las conductas pasadas del usuario Las paacuteginas que cree son de intereacutes del usuario Letizia las despliega en una ventana de sugerencias por unos instantes Marco Conceptual Actualmente para poder hacer la consulta de cualquier tipo de informacioacuten en Internet la mayoriacutea de las personas recurre a los motores de buacutesquedas conocidos como Google Yahoo Altavista por mencionar algunos siendo que estos usan diferentes meacutetodos para llegar a su objetivo podemos darnos cuenta que arrojan distintos resultados uno de otro que en el mejor de los casos coinciden en un porcentaje muy poco satisfactorio con la buacutesqueda en cuestioacuten con lo que concluimos que una respuesta a esta falta de precisioacuten en cuanto a la buacutesqueda de un tema en especial es mejor la buacutesqueda de conceptos lo cual permite al usuario acercarse maacutes al tema de su intereacutes Es importante enfocar nuestra solucioacuten apoyaacutendonos en un motor de buacutesqueda y aplicando herramientas como los Agentes que nos permitan recopilar la informacioacuten maacutes precisa de cada buacutesqueda a traveacutes de un algoritmo propio obteniendo resultados maacutes cercanos a los deseados ya que estos provienen de muacuteltiples documentos ahorrando tiempo y ganando precisioacuten a la vez Muy frecuentemente encontramos que cuando se trata de buacutesquedas en Internet a traveacutes de los motores de buacutesqueda populares los usuarios hacen consultas de diversas paginas y es muy difiacutecil llevar una lista de todos los sitios visitados o de aquellos que nos mostraron la informacioacuten maacutes adecuada nuestro sistema es capaz de registrar dentro de una base de datos un iacutendice de todos los sitios que se obtuvieron en la buacutesqueda de un tema o concepto con lo que el usuario no tendraacute que realizar una ldquonuevardquo buacutesqueda de un tema antes consultado sino que tendraacute a la mano todos los sitios que arrojoacute la primera buacutesqueda Marco teoacuterico

Descripcioacuten de RDF

El Resource Description Frameworiiik (RDF) es un fundamento para el procesamiento de metadatos proporciona interoperabilidad entre aplicaciones que intercambian informacioacuten legible por maacutequina en la Web RDF utiliza XML para intercambiar descripciones de recursos Web pero los recursos descritos pueden ser de cualquier tipo

23

incluyendo recursos XML y no-XML RDF resalta las facilidades para hacer posible el procesamiento automaacutetico de los recursos Web RDF puede utilizarse en diferentes aacutereas de aplicacioacuten por ejemplo en la recuperacioacuten de recursos para proporcionar mejores capacidades a los motores de buacutesqueda en catalogacioacuten para la descripcioacuten de contenido y relaciones de contenido accesibles en un sitio Web particular en una paacutegina o biblioteca digital a traveacutes de agentes de software inteligente para facilitar que el conocimiento se comparta e intercambie en la valoracioacuten de contenido en la descripcioacuten de colecciones de paacuteginas que representan un documento loacutegico individual para la descripcioacuten de los derechos de propiedad intelectual de las paacuteginas Web y para expresar las preferencias de privacidad de un usuario asiacute como las poliacuteticas de privacidad de un sitio Web Las descripciones utilizadas por estas aplicaciones pueden modelarse como relaciones entre recursos Web El modelo de datos de RDF tal y como se especifica en RDFMS define un modelo simple para describir las relaciones entre recursos en teacuterminos de propiedades y valores designadas Las propiedades RDF pueden entenderse como atributos de un recurso y en este sentido corresponden con los tradicionales pares atributo-valor Las propiedades RDF tambieacuten representa relaciones entre recursos De esta forma el modelo de datos RDF puede parecer un diagrama entidad-relacioacuten El modelo de datos RDF sin embargo no proporciona mecanismos para declarar estas propiedades ni proporcionan ninguacuten mecanismo para definir las relaciones entre estas propiedades y otros recursos Este es el papel [la funcioacuten] del Esquema RDF

Las comunidades de descripcioacuten de recursos necesitan la habilidad para decir ciertas cosas sobre ciertas clases de recursos Para describir recursos bibliograacuteficos por ejemplo son habituales atributos descriptivos tales como autor [author] tiacutetulo [title] y materia [subject] Para la certificacioacuten digital se necesitan muchas veces atributos tales como esquema simple de deteccioacuten de errores [checksum] y autorizacioacuten [authorization] La declaracioacuten de estas propiedades (atributos) y su semaacutentica correspondiente se definen en el contexto de RDF como un Esquema RDF Un esquema define no soacutelo las propiedades de un recurso (ej tiacutetulo autor materia tamantildeo color etc) sino que puede tambieacuten definir los tipos de recursos que se describiraacuten (libros paacuteginas Web personas empresas etc)

Los Esquemas RDF podriacutean contrastarse con las Definiciones del Tipo de Documentos (DTDs) de XML y los Esquemas XML A diferencia de una DTD o Esquema XML que dan restricciones especiacuteficas en la estructura de un documento XML un Esquema RDF proporciona informacioacuten sobre la interpretacioacuten de una sentencia dada en un modelo de datos RDF Mientras un Esquema XML puede utilizarse para validar la sintaxis de una expresioacuten RDFXML un esquema sintaacutectico soacutelo no es suficiente para los objetivos de RDF Los Esquemas RDF pueden tambieacuten especificar restricciones que deben seguirse por estos modelos de datos

Clases y Propiedades Un Esquema RDF se expresa a traveacutes de un modelo de datos descrito en la especificacioacuten del Modelo y la Sintaxis RDF [RDFMS] El lenguaje de descripcioacuten del esquema es un simple conjunto de recursos y propiedades definidos por la Especificacioacuten del Esquema RDF y la parte impliacutecita de cada modelo RDF que utiliza la mecaacutenica del esquema RDF

24

El sistema de escritura de datos [type system] El Esquema RDF definido en esta especificacioacuten es una coleccioacuten de recursos RDF que puede utilizarse para describir propiedades de otros recursos RDF (incluyendo propiedades) que definene vocabularios RDF de aplicacioacuten especiacutefica El nuacutecleo del vocabulario del esquema se define en un namespace denominado aquiacute informalmente rdfs e identificado por el URI de referencia httpwwww3org200001rdf-schema Esta especificacioacuten utiliza tambieacuten el prefijo rdf para referirse al namespace principal RDF httpwwww3org19990222-rdf-syntax-ns

Como se describe en la especificacioacuten del modelo y la sintaxis [RDFMS] los recursos pueden ser objetos especiacuteficos de una categoriacutea [instances] de una o maacutes clases esto se indica con la propiedad rdftype Las clases se organizan muchas veces de una forma jeraacuterquica por ejemplo la clase Dog [perro] podriacutea considerarse subclase de Mammal [mamiacutefero] que a su vez es una subclase de Animal dando a entender que cualquier recurso que esteacute en rdftype Dog se considera tambieacuten que estaacute en rdftype AnimalEsta especificacioacuten describe una propiedad rdfssubClassOf para indicar dichas relaciones entre clases

El sistema de escritura [type system] del Esquema RDF es similar al sistema de los lenguajes de programacioacuten orientados a objetos tales como Java Sin embargo RDF se diferencia de muchos de esos sistemas en que en lugar de definir una clase en teacuterminos de propiedades sus objetos especiacuteficos de una categoriacutea [instances] pueden tener un esquema RDF que definiraacute las propiedades en teacuterminos de clases de recurso a los que se aplican Este es el papel de las restricciones rdfsdomain y de rdfsrange

Por ejemplo podemos definir que la propiedad author tenga un dominio de Book y un alcance de Literal mientras que un sistema OO claacutesico podriacutea definir tiacutepicamente una clase Book con un atributo denominado author de tipo Literal

Clases y Recursos como Conjuntos y Elementos El siguiente esquema ilustra el concepto de clase subclase y recurso Una clase se describe por un rectaacutengulo redondeado un recurso se describe por un punto grande En la figura abajo se han dibujado flechas desde un recurso a una clase que define Una subclase se presenta en un rectaacutengulo redondeado (la subclase) completamente incluido en otro (la superclase) Si un recurso estaacute dentro de una clase entonces existe una propiedad rdftype o expliacutecita o impliacutecita de aquel recurso cuyo valor es un recurso que define la clase que contiene (Estas propiedades se muestran como arcos en la representacioacuten graacutefica directamente etiquetada en el Esquema 2) El recurso RDF representado en el esquema 1 se describe tanto en el resto de esta especificacioacuten como en la especificacioacuten del Modelo y Sintaxis RDF

Ontologiacuteas en la Representacioacuten del Conocimiento En estos uacuteltimos antildeos se incrementoacute la cantidad de informacioacuten en la Internet lo cual motivoacute el incremento de la complejidad y la diversidad de la informacioacuten Esto tambieacuten motivoacute el intereacutes de automatizar muchas actividades que tradicionalmente se realizan en forma manual La principal motivacioacuten en el uso de las ontologiacuteas es que permiten compartir y reutilizar conocimiento en un dominio De ahiacute el intereacutes de muchos

25

investigadores en el aacuterea de inteligencia artificial para tratar de aplicar las ontologiacuteas en la representacioacuten de conocimiento Las ontologiacuteas son un elemento importante en la Web Semaacutentica y es un teacutermino filosoacutefico que trata sobre la naturaleza de la existencia y los tipos de objetos que existen Tambieacuten la ontologiacutea se puede definir como una especificacioacuten expliacutecita de una conceptualizacioacuten compartida La conceptualizacioacuten se refiere a un modelo abstracto de un fenoacutemeno en el mundo en donde se tienen que identificar los conceptos relevantes de este fenoacutemeno El teacutermino expliacutecito significa queacute tipos de conceptos son usados y las restricciones de estos conceptos Y por uacuteltimo el teacutermino compartido se refiere a que las ontologiacuteas capturan conocimiento que es aceptado por todos y no es individual de un grupo Actualmente se les estaacute dando maacutes uso a las ontologiacuteas en el campo de la Inteligencia Artificial En este campo se define la ontologiacutea como una descripcioacuten formal y expliacutecita de conceptos de un dominio (classes a las que nos referiremos como conceptos) propiedades de cada concepto las cuales describen las caracteriacutesticas y atributos de los conceptos (slots llamados tambieacuten como propiedades o roles) y restricciones de las propiedades (facets conocidas como restricciones) La informacioacuten que es representada a traveacutes de los lenguajes semaacutenticos puede ser compartida entre aplicaciones como los agentes

OWL y Web Semaacutentica

La Web Semaacutentica es una Web extendida dotada de mayor significado en la que cualquier usuario en Internet podraacute encontrar respuestas a sus preguntas de forma maacutes raacutepida y sencilla gracias a una informacioacuten mejor definida Al dotar a la Web de maacutes significado y por lo tanto de maacutes semaacutentica se pueden obtener soluciones a problemas habituales en la buacutesqueda de informacioacuten gracias a la utilizacioacuten de una infraestructura comuacuten mediante la cual es posible compartir procesar y transferir informacioacuten de forma sencilla Esta Web extendida y basada en el significado se apoya en lenguajes universales que resuelven los problemas ocasionados por una Web carente de semaacutentica en la que en ocasiones el acceso a la informacioacuten se convierte en una tarea difiacutecil y frustrante

LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES La comunicacioacuten es uno de los aspectos importantes dentro de una comunidad de agentes la cual permitiraacute compartir y enviar mensajes entre agentes Los meacutetodos tradicionales permiten la comunicacioacuten entre los agentes pero eacutestos no son suficientes para lograr un comportamiento social entre los agentes para ello es necesario que los mensajes tengan un significado y contenido semaacutentico Se han desarrollado varios lenguajes los cuales son usados para el enviacuteo de mensajes a continuacioacuten hablaremos de dos de ellos KQML Knowledge Query and Manipulation Language (KQML) es uno de los lenguajes que nos provee la estructura para enviar mensajes entre agentes Dentro de sus principales caracteriacutesticas tenemos que es independiente de la sintaxis del contenido y la ontologiacutea

26

que se utilizaraacute Asiacute mismo es independiente del mecanismo de transporte (TCPIP SMTP IIOP etc) e independiente del contenido del lenguaje (KIF SQL STEP Prolog etc) KQML fue desarrollado por el consorcio DARPA Knowledge Sharing Effort (KSE) cuyo principal objetivo fue desarrollar una base tecnoloacutegica para construir en forma progresiva sistemas cada vez con maacutes funcionalidad complejidad y amplitud KQML provee un lenguaje y un protocolo para intercambiar informacioacuten entre agentes inteligentes y para lograr este intercambio se tiene que compartir una sintaxis y una semaacutentica comuacuten para que los mensajes sean entendidos por los agentes Al lenguaje KQML se le dividioacute en tres capas la capa de contenido alberga el contenido del mensaje que es especificado en cualquier formato ya sea texto o binario La capa de comunicacioacuten contiene paraacutemetros como el identificador uacutenico asociado a la comunicacioacuten identidad del remitente e identidad del destinatario La capa de mensaje define tanto los diferentes tipos de interaccioacuten que se pueden establecer entre los agentes como los protocolos que se pueden establecer entre los agentes Tambieacuten incluye otras caracteriacutesticas como el lenguaje de representacioacuten o la ontologiacutea siendo ambos opcionales

JADE (Java Agent DEvelopment Framework)

JADEiv (Java Agent DEvelopment Framework) es un middleware que proporciona tanto un entorno de desarrollo como un entorno de ejecucioacuten para la realizacioacuten y mantenimiento de sistemas multiagente El entorno de desarrollo estaacute formado por una serie de libreriacuteas en Java que permiten la implementacioacuten de agentes de manera limpia e independiente de la plataforma sobre la que se va a ejecutar El entorno de ejecucioacuten permite a los agentes vivir y comunicarse entre ellos Estaacute realizado enteramente en Java y proporciona una serie de herramientas que permiten al desarrollador controlar y depurar a los agentes en tiempo real JADE es un middleware desarrollado por TILAB para el desarrollo de aplicaciones distribuidas multiagente JADE proporciona tanto el entorno de desarrollo para la creacioacuten de aplicaciones basadas en agentes como el entorno de ejecucioacuten JADE presenta las siguientes caracteriacutesticas

P2P Arquitectura peer-to-peer cada agente puede tomar la iniciativa en una comunicacioacuten o bien responder a peticiones que le hagan otros agentes

Interoperabilidad JADE cumple con las especificaciones FIPA por lo que los agentes desarrollados en JADE pueden interactuar con otros agentes que no tienen porque estar desarrollados con JADE aunque si deben seguir las especificaciones FIPA

Portabilidad La API que proporciona JADE es independientemente de la red sobre la que va a operar asiacute como de la versioacuten de Java utilizada teniendo la misma API para J2EE J2SE y J2ME

27

Intuitiva JADE se ha desarrollado para ofrecer una API faacutecil de aprender y sencilla de manejar

Los agentes JADE tienen nombres uacutenicos y se permite a cada agente descubrir a otros agentes y comunicarse con ellos mediante comunicaciones punto a punto Los agentes proporcionan servicios cada agente puede buscar a otros dependiendo de los servicios que proporcionen otros agentes La comunicacioacuten entre agentes se lleva a cabo a traveacutes de mensajes asiacutencronos es decir el agente que enviacutea el mensaje y el destinatario del mensaje no tienen porqueacute estar disponibles al mismo tiempo Es maacutes el destinatario no tiene porqueacute existir en ese instante Los mensajes se pueden enviar a un agente en concreto o se pueden enviar a agentes que se desconocen pero se sabe que poseen unas ciertas caracteriacutesticas JADE proporciona mecanismos de seguridad ya que habraacute agentes a los que no se les esteacute permitido comunicarse con otros agentes de manera que una aplicacioacuten puede verificar la identidad del receptor y del agente que enviacutea el mensaje y no dejar realizar actuaciones no permitidas para un determinado agente La estructura de los mensajes se basa en el lenguaje ACL (Agent Communication Lenguaje) que ha sido definido por la FIPA JADE facilita mecanismos para el desarrollo de los objetivos que deben alcanzar los agentes Los comportamientos (behaviours) y la comunicacioacuten entre los agentes (junto con el servicio de paacuteginas amarillas) proporcionan los recursos necesarios para programar un sistema multiagente JADE tambieacuten permite a los agentes cambiar de Host (en J2SE) Un agente puede interrumpir en un momento dado su ejecucioacuten migrar a otro host (sin necesidad de que el coacutedigo esteacute previamente en el host destino) y continuar la ejecucioacuten en el mismo punto en el que la interrumpioacute Esto permite un balanceo de carga ya que permite a los agentes migrar hosts menos cargados El entorno de ejecucioacuten proporciona un marco donde poder ejecutar los agentes y herramientas graacuteficas para su monitorizacioacuten y depuracioacuten Los agentes JADE necesitan del entorno de ejecucioacuten donde poder vivir Cada instancia del entorno de ejecucioacuten se denomina contenedor (container) Al conjunto de los contenedores se le denomina plataforma (platform) y proporciona una capa que oculta a los agentes (y al desarrollador) el entorno donde se ha decidido ejecutar la aplicacioacuten En cada plataforma debe existir un contenedor especial denominado contenedor principal (main container) La principal diferencia del contenedor principal respecto al resto de contenedores es que alberga dos agentes especiales

AMS (Agent Management System) Este agente proporciona el servicio de nombres asegurando que cada agente en la plataforma disponga de un nombre uacutenico Tambieacuten representa la autoridad es posible crear y matar agentes en contenedores remotos requeriendoselo al agente AMS

DF (Directory Facilitator) Proporciona el servicio de Paacuteginas Amarillas Gracias al agente DF un agente puede encontrar otros agentes que provean los servicios necesarios para lograr sus objetivos

28

La caracteriacutestica mas importante del entorno de ejecucioacuten es la interfaz graacutefica que proporciona desde la que podemos controlar y depurar los agentes existentes Todas las herramientas han sido desarrolladas como agentes y siguen sus mismas reglas Disentildeo Arquitectura

Agente usuario

Agente de ontologiacutea

Agente de filtrado

Agente de recuperacioacuten

BD

OntologiacuteaSistema

Motor de buacutesqueda

El sistema esta disentildeado para que un usuario realice alguna buacutesqueda relacionada con alguno de los tres temas propuestos en nuestra base de conocimiento que son Ingenieriacutea de Software Base de Datos y Deportes El sistema esta basado en una arquitectura multiagente la cual se conforma por Agente Usuario Actuacutea de intermediario entre el usuario y el sistema Sus servicios son solicitados por el usuario para resolver las consultas El usuario le suministra una consulta y el sistema le devuelve una lista de documentos que pueden satisfacer sus necesidades Este agente tiene la capacidad de acceder a la base de datos con el objetivo de almacenar yo recuperar resultados Base de Datos Guardaraacute las ultimas buacutesquedas realizadas para su posterior consulta a peticioacuten del usuario Agente de Filtrado Gestiona la recuperacioacuten de documentos y realiza el filtrado de los mismos proporcionados por el Agente de Recuperacioacuten Recibe la peticioacuten del Agente Usuario y a su vez esta es enviada al Agente Ontologiacutea para que este regrese una evaluacioacuten de la consulta y de esta forma conocer si es necesaria una redefinicioacuten de la consulta En caso de ser necesaria se espera recibir el nuevo vector de consulta hasta que se cumpla una de dos opciones el usuario deje de redefinir la consulta o la consulta sea concreta Cuando la consulta sea concreta es enviada de nueva cuenta al Agente Ontologiacutea el cual regresaraacute el Nuevo Vector Expandido Este seraacute enviado al Agente de Recuperacioacuten Cuando el Agente de Recuperacioacuten regrese los urlacutes de los resultados (con sus respectivos vectores de teacuterminos) se realiza una evaluacioacuten de los vectores de cada documento con respecto al vector de buacutesqueda expandida con el objetivo de asignarles una calificacioacuten Gracias a esta calificacioacuten podemos obtener aquellos documentos que mejor cumplan con las expectativas del usuario (Estos documentos son regresados al Agente Usuario) Agente Ontologiacutea Recibe el vector de consulta proporcionado por el Agente de Filtrado La informacioacuten contenida en el vector de consulta es comparada con la existente en nuestra ontologiacutea Una vez verificada la existencia de la informacioacuten del

29

vector consulta dentro de la ontologiacutea este se encarga de devolver la distancia y el umbral al Agente de Filtrado Se espera que este devuelva una peticioacuten para expandir ese mismo vector Puede darse el caso de obtener dos tipos de buacutesquedas una general y otra mucho maacutes definida En cualquiera de los caso obtenemos un nuevo vector de buacutesqueda (con una informacioacuten mejor definida este es el Vector de Buacutesqueda Expandido) que es enviado de regreso al Agente de Filtrado el cual genera una copia y le es enviada al Agente de Recuperacioacuten Ontologiacutea Representa nuestra base de conocimientos Esta compuesta por tres aacutereas de conocimiento las cuales son Ingenieriacutea se Software Bases de Datos y Deportes Para poder representar esta ontologiacutea en un lenguaje entendible para agentes inteligentes se programaraacute bajo los fundamentos de las estructuras RDF contenidas en las especificaciones de XML y siguiendo los estaacutendares de la W3C Agente Recuperacioacuten Realiza la buacutesqueda gracias a la informacioacuten que le es entregada por el Agente de Filtrado (se trata Vector de Buacutesqueda Expandido generado por el Agente de Ontologiacutea) El agente estructura esta informacioacuten y se introduce en un motor de buacutesqueda(diacutegase por ejemplo Google) de tal manera que obtengamos una lista de posibles documentos A cada documento se le asigna un vector de teacuterminos con sus pesos derivados de un anaacutelisis TFIDF para despueacutes regresar las urlacutes con su respectivo vector de teacuterminos al Agente Filtrado RESULTADOS Este proyecto tiene la finalidad de desarrollar el software para un antivirus y un traductor Pero durante los estudios de anaacutelisis de estos dos productos se encontroacute que el software para la buacutesqueda de la informacioacuten tambieacuten puede ser implementada por medio de teacutecnicas de Inteligencia Artificial Para construir el software de aplicacioacuten para estas necesidades se usa la metodologiacutea de cascada Donde los pasos a seguir son el Anaacutelisis Disentildeo Pruebas Implementacioacuten y Mantenimiento Hasta este momento estamos en la etapa de pruebas de algunos moacutedulos de los tres productos IMPACTO El detector de intrusos en una red es de mucha importancia debido a que en la actualidad se han diseminado muchos virus que pueden ser transmitidos a traveacutes de intrusos Hasta la fecha el meacutetodo de proteccioacuten se hace de forma manual La finalidad de este software es automatizar la proteccioacuten El traductor de texto a voz tiene como primera aplicacioacuten el auxilio en la lectura de documentos para las personas invidentes o deacutebiles visuales una segunda aplicacioacuten es la comunicacioacuten con la computadora por medio del lenguaje natura El buscador de informacioacuten es un auxilio en la buacutesqueda de datos en una base de datos de conocimiento Ya que tambieacuten estaacuten proliferando las bibliotecas virtuales es una ayuda en la localizacioacuten de informacioacuten cientiacutefica y un preaacutembulo para un software de apoyo docente BIBLIOGRAFIacuteA [1] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

30

[2] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps[3] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[4] w3c en espantildeol OWL y Web Semaacutentica httpwwww3cesDivulgacionGuiasbrevesWebSemantica

[5] Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

[6] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[7] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[8] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[9] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[10] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[11] Laboratorios Googlehttplabsgooglecompapershtml

[12] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[13] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

[14] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

[15] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps [16] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[18] Trabajos de Agente en JADE http Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

31

[19] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[20] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[21] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[22] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[23] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[24] Laboratorios Googlehttplabsgooglecompapershtml

[25] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[26] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

  • En este reporte teacutecnico se presenta la descripcioacuten general anaacutelisis y estado actual de de los trabajos terminales TT2006135 TT20060097 y TT20060068 que tienen por titulo ldquoSistema prototipo de deteccioacuten de intrusos en la red utilizando agentes inteligentesrdquo rdquoProcesamiento digital de imaacutegenes para la conversioacuten de texto a vozrdquo y ldquoSistema de buacutesqueda de informacioacuten por conceptos en la webrdquo respectivamente Los prototipos que se obtendraacuten seraacuten un software robusto que se desarrollaraacuten con teacutecnicas de inteligencia artificial como Agentes inteligentes y Redes neuronales
  • Estructura de un sistema neuronal artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
    • Estado Del Arte
      • Estructura de un sistema neuronal artificial
        • Sistemas paralelos distribuidos y adaptativos
          • Modelo estaacutendar de neurona artificial
            • Sigmoidal logariacutetmica
              • Empleo del perceptroacuten para reconocer funciones loacutegicas
              • Algoritmo de aprendizaje del perceptroacuten
                • Objetivo General
                • Estado Del Arte
                • A continuacioacuten se mencionan algunos de ellos
                  • Buscador muacuteltiple Copernic 2001 Pro
                  • Lets Browse
                  • Agentes de Informacioacuten
                    • Marco Conceptual
                      • Clases y Propiedades
                      • El sistema de escritura de datos [type system]
                      • Clases y Recursos como Conjuntos y Elementos
                        • Ontologiacuteas en la Representacioacuten del Conocimiento
                          • LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES
                          • JADE (Java Agent DEvelopment Framework)
                            • Disentildeo
                            • Arquitectura
Page 11: INSTITUTO POLITÉCNICO NACIONALsappi.ipn.mx/cgpi/archivos_anexo/20061387_3286.pdf · La comunicación del hombre con la computadora por medio del lenguaje natural, es la finalidad

11

sum f ( )

Axoacuten Yi

Wi1

Wi2

Wij

Win

θi-1

X1

X2

Habiendo definido de esta manera la neurona estaacutendar basta con establecer la forma de la funcioacuten de activacioacuten para determinarla por completo A continuacioacuten se muestra una tabla con las funciones de activacioacuten maacutes utilizadas

Funcioacuten Relacioacuten entradasalida Graacutefica

Escaloacuten y=0 nlt0 y=1 nge0

Escaloacuten simeacutetrica y= -1 nlt0 y=+1 nge0

Lineal Identidad

y=n

Lineal saturada y=0 nlt0

y=n 0lenle1 y=1 ngt1

Lineal saturada simeacutetrica

y=-1 nlt-1 y=n -1lenle1

y=1 ngt1

Sigmoidal logariacutetmica

ney minus+=

11

Xj

Xn

Entradas

Dendritas

Sinapsis

Cuerpo celular

Salida

Umbral

Figura 23 Modelo de neurona estaacutendar

12

Tangente

hiperboacutelica

nn

nn

eeeey minus

minus

+minus

=

Lineal positiva y=0 nlt0 y=n 0len

Competitiva a=1 neurona con maacutex n

a=0 todas las demaacutes

C

Tabla 2 Funciones de activacioacuten habituales (se han omitido algunas constantes)

Arquitecturas de redes neuronales Se denomina arquitectura a la topologiacutea estructura o patroacuten de conexionado de una red neuronal En un ANS los nodos se conectan por medio de sinapsis esta estructura de conexiones sinaacutepticas determina el comportamiento de la red Las conexiones sinaacutepticas son direccionales es decir la informacioacuten soacutelo puede propagarse en un uacutenico sentido (desde la neurona presinaacuteptica a la postsinaacuteptica ver figura 24)

j

i

YjXj

Wij

YiNeurona presinaacuteptica

Neurona postsinaacuteptica

Figura 24 Interaccioacuten entre una neurona presinaacuteptica y otra postsinaacuteptica

En general las neuronas se suelen agrupar en unidades estructurales que denominaremos capas Las neuronas de una capa pueden agruparse a su vez formando grupos neuronales (clusters) Dentro de un grupo o de una capa si no existe este tipo de agrupacioacuten las neuronas suelen ser del mismo tipo Finalmente el conjunto de una o maacutes capas constituye la red neuronal

Se distinguen tres tipos de capas de entrada de salida y ocultas Una capa de entrada o sensorial estaacute compuesta por neuronas que reciben datos o sentildeales procedentes del entorno (por ejemplo proporcionado por sensores) Una capa de salida es aquella cuyas neuronas proporcionan la respuesta de la red neuronal (sus neuronas pueden estar conectadas a efectores) Una capa oculta es aquella que no tiene una conexioacuten directa

13

con el entorno es decir que no se conecta directamente ni a organos sensores o efectores Esta capa proporciona a la red neuronal grados de libertad adicionales gracias a los cuales puede encontrar representaciones internas correspondientes a determinados rasgos del entorno proporcionando una mayor riqueza computacional (ver figura 25)

Informacioacuten Capa de salida

(efectora) Capa oculta Capa de entrada (procesamiento) (sensorial)

Figura 25 Arquitectura unidireccional de tres capas de entrada oculta y de salida

Las conexiones entre las neuronas pueden ser excitadoras o inhibidoras un peso sinaacuteptico negativo define una conexioacuten inhibidora mientras uno positivo determina una conexioacuten excitadora Habitualmente no se suele definir una conexioacuten como de un tipo u otro sino que por medio del aprendizaje se obtiene un valor para el peso que incluye signo y magnitud

El perceptroacuten simple Este modelo neuronal fue introducido por Rosenblatt a finales de los antildeos cincuenta Dicha estructura se inspira en las primeras etapas de procesamiento de los sistemas sensoriales de los animales (por ejemplo la visioacuten) en los cuales la infomacioacuten va atravesando sucesivas capas de neuronas que realizan un procesamiento progresivamente de maacutes alto nivel Un perceptroacuten simple es un modelo unidireccional compuesto por dos capas de neuronas una sensorial o de entrada y otra de salida A continuacioacuten se muestra en la figura 26 su representacioacuten y la funcion de transferencia que utiliza

Figura 26 a) Las neuronas de entrada no realizan ninguacuten coacutemputo uacutenicamente enviacutean la informacioacuten a las neuronas de salida b) la funcioacuten de activacioacuten de las neuronas de la capa de salida es de tipo escaloacuten

Capa de entrada

Capa de salida

f(x) x

Funcioacuten escaloacuten

a) b)

14

El perceptroacuten puede utilizarse tanto como clasificador como para la representacioacuten de funciones booleanas pues su neurona es esencialmente de tipo MacCulloch-Pitts es decir de salida binaria La importancia histoacuterica del perceptroacuten radica en su caraacutecter de dispositivo entrenable ya que el algoritmo de aprendizaje que desarrollo Rosenblatt permite determinar automaacuteticamente los pesos sinaacutepticos que clasifican un conjunto de patrones a partir de un conjunto de ejemplos etiquetados (a esto se le llama red neuronal supervisada y el perceptron simple es de este tipo) Ahora se mostraraacute que un perceptroacuten permite realizar tareas de clasificacioacuten Cada neurona del perceptroacuten representa una determinada clase de modo que dado un vetor de entrada una cierta neurona responde con 0 si no pertenece a la clase que representa y con un 1 si siacute pertenece Es faacutecil ver que una neurona tipo perceptroacuten solamente permite discriminar entre dos clases linealmente separables (es decir cuyas regiones de decisioacuten pueden ser separadas mediante una uacutenica condicioacuten lineal o hiperplano que es una liacutenea recta si trabajamos en dos dimensiones) Sea una neurona tipo perceptroacuten de dos entradas x1 y x2 con salida y cuya operacioacuten se define por lo tanto como

y = H(w1x1+w2x2 - ө) o bien 1 si w1x1+w2x2 geӨ y = 0 si w1x1+w2x2 ltӨ

Si consideramos x1 y x2 situadas sobre los ejes de abscisas y ordenadas en el plano la condicioacuten

w1x1+ w2x2 -Ө = 0 rarr x2 = - (w1 w2) x1 + Ө w2 representa una recta (hiperplano si trabajamos con n entradas) que divide el plano en dos regiones que son aquellas para las que la neurona proporciona una salida 0 o 1 respectivamente como se muestra en la figura 27

x x

x x x

x x x

x

x

oo

oo

o o

o

X1

X2

Regioacuten w1x1+w2x2 geӨ Regioacuten w1x1+w2x2 ltӨ

Figura 27 Una neurona tipo perceptroacuten representa un discriminador lineal que separa dos regiones en el espacio que representan dos diferentes clases de patrones En esta graacutefica x = lsquo1rsquo y o = lsquo0rsquo

15

Empleo del perceptroacuten para reconocer funciones loacutegicas -Funcion linealmente separable Consideremos la funcioacuten loacutegica NAND2 (AND negada de dos entradas) que representamos sobre un plano en la graacutefica 3 que se presenta en seguida

x (10) o (11)

x (00)

x (01) X1

X2

Figura 28 Funcioacuten loacutegica NAND de dos entradas En la graacutefica x = lsquo1rsquo y o = lsquo0rsquo

Se puede ver que en este caso existen paraacutemetros w1 w2 y Ө que permiten una recta que separa perfectamente las regiones correspondientes a los valores loacutegicos 0 y 1 Y por lo tanto se dice que la funcioacuten loacutegica NAND es linealmente separable -Funcioacuten no separable linealmente

Ahora consideremos la funcioacuten loacutegica or-exclusivo (XOR) y representandola en un plano en la figura 29

x (10) o (11)

o (00)

x (01) X1

X2

Figura 29 Funcioacuten loacutegica XOR de dos entradas que no es linealmente separable

16

Al ser XOR no linealmente separable se dice que ldquola clase de funciones no separables linealmente no pueden ser representadas por un perceptroacuten simplerdquo El perceptroacuten presenta serias limitaciones pues solamente puede representar funciones linealmentes separables Y aunque pueda aprender automaacuteticamente a representar complejas funciones booleanas o resolver con eacutexito muchos problemas de clasificacioacuten con un cierto algoritmo en ocasiones fallara draacutesticamente Minsky (que es uno de los padres de la inteligencia artificial) y Papera estudiaron en profundidad el perceptroacuten y en 1969 publicaron un exhaustivo trabajo donde exhibian las limitantes del modelo en lo que resultoacute decisivo para que muchos de los recursos que se destinaban a su investigacioacuten se desviara a otras aacutereas Una solucioacuten para las limitantes del perceptroacuten simple puede consistir en incluir maacutes capas en la arquitectura con lo que tendremos un perceptroacuten multicapa A finales de los antildeos sesenta ya se apuntaba como solucioacuten a las limitaciones del perceptroacuten introducir capas ocultas pero el problema estaba en que no se teniacutea un algoritmo de aprendizaje para el perceptroacuten multicapa (con capas ocultas) Dicho algoritmo fue propuesto por Paul Verbos alrededor de 1974 pero fue preciso hasta mediados de los ochenta cuando el grupo PDP redescubriera un algoritmo similar al cual denominaron Back-Propagation o BP y dieran a conocer a la comunidad internacional su gran potencial para la resolucioacuten de problemas praacutecticos

Algoritmo de aprendizaje del perceptroacuten El del perceptroacuten es un algoritmo de aprendizaje de los denominados por correccion de errores Los algoritmos de este tipo ajustan los pesos en proporcioacuten a la diferencia existente entre la salida actual de la red y la salida deseada con el objetivo de minimizar el error actual de la red Definicioacuten del algoritmo de aprendizaje Sea un conjunto de p patrones xn n=1hellipp con sus salidas deseadas tn Tanto las entradas como las salidas solamente pueden tomar los valores -1 o 1 Se tiene una arquitectura de perceptroacuten simple con pesos iniciales aleatorios y se requiere que clasifique correctamente todos los patrones del conjunto de aprendizaje (solo si son linealmente separables) Ahora actuaremos del siguiente modo ante la presentacioacuten del patron n-eacutesimo si la respuesta que proporciona el perceptroacuten es correcta no actualizaremos los pesos si es incorrecta los modificaremos seguacuten la regla de Hebb aplicada a nuestro caso Primero se muestra la regla de Hebb y despueacutes la regla modificada para el perceptroacuten simple Regla de Hebb

∆wij = ξyixjDonde

17

o wij corresponde a los pesos de una entrada j por la salida i de la neurona

o ξ se denomina ritmo de aprendizaje que su valor suele estar entre 1 y 0 Regla modificada para el perceptroacuten simple

2ξtnixnj si yn

ine tni ∆wn

ij(t)= 0 si yn

i= tni que puede reescribirse del siguiete modo que es la forma usual de expresar la regla del perceptroacuten

∆wnij(t)= 2ξ(tni - yn

i)xnj

Es importante mencionar que el proceso de aprendizaje es iterativo se

parte de una configuracioacuten sinaacuteptica de partida (normalmente de pesos pequentildeos aleatorios) y se presentan una y otra vez los patrones para que los pesos se ajusten iterativamente seguacuten forma usual de la regla del perceptroacuten hasta que todos queden bien clasificados El hiperplano que establece el liacutemite entre dos clases se desplaza lentamente hasta conseguir separarlas por completo (si es posible) como se ve en la figura 210

t= 115

x x

x x x

x x x

x

x

o

o o

o o o o

o

o o

o

o

o

o

o

o

o

X2

t= 21

t= 0 t= 4

X1

Figura 210 Regiones de decisioacuten que establece iterativamente el perceptroacuten durante el aprendizaje (en la iteracioacuten 115 ha conseguido separar ya las dos clases)

Avances En este capiacutetulo se haraacute una descripcioacuten de los avances que se han hecho hasta el momento Se hablaraacute acerca del entrenamiento de la red neuronal del sistema el reconocimiento de caracteres tanto con la red neuronal como con los clasificadores ya expuestos y el tratamiento de imaacutegenes para eliminar el ruido tipo sal y pimienta Reconocimiento de caracteres Se han hecho avances acerca del reconocimiento de caracteres utilizando redes neuronales y clasificadores diversos A continuacioacuten se exponen dichos avances

Entrenamiento de la red neuronal Para entrenar la red neuronal se utilizoacute el algoritmo de retropropagacioacuten expuesto en el capiacutetulo 1 Se disentildeoacute un programa en Java que permite entrenar una red neuronal de 3

18

capas La cantidad de clases a discriminar es variable y para este caso se utilizoacute una matriz de 5x8 es decir se tomaron 40 rasgos de entrada

Utilizando la red neuronal para reconocer caracteres A continuacioacuten se muestra en la imagen 211 el programa disentildeado en Java que permite discriminar un nuacutemero variable de clases Para este caso se eligioacute discriminar entre los diacutegitos del 0 al 9 El programa para reconocer los 128 caracteres referentes al sintetizador de voz tendraacute una interfaz similar con la diferencia de que la rejilla para ingresar el patroacuten a reconocer seraacute de 20x20 El programa mostrado fue programado tanto para entrenar la red como para reconocer los diacutegitos Se puede elegir entre los entrenamientos hechos para probar la efectividad de la red Las estadiacutesticas del entrenamiento elegido se muestran en la parte inferior de la pantalla

Imagen 211 Reconocimiento de los diacutegitos del 0 al 9 utilizando una red neuronal de 3 capas

19

Utilizando los clasificadores para reconocer caracteres Dentro de las teacutecnicas de reconocimiento de patrones existen diferentes clasificadores que nos permiten a partir de un conjunto de entrenamiento (en eacuteste caso un conjunto de tipos de letras que deseamos reconocer) saber a queacute clase pertenece un patroacuten de prueba que se introduce

Imagen 212 Un ejemplo de un clasificador KNN con un valor de K=3 y usando la meacutetrica City-Block para clasificar el patroacuten de prueba pruebabmp entre tres clases

En la imagen 212 se muestra como se puede clasificar un caraacutecter escalado de la imagen prueba 4bmp dentro de las tres clases existentes Se observa que si se puede clasificar este tipo de patrones pero veamos un ejemplo donde no sea posible clasificar un patroacuten de prueba y por queacute

Imagen 213 Un ejemplo de un clasificador KNN con un valor de K=5 y usando la meacutetrica Euclidiana para clasificar el patroacuten de prueba prueb3bmp entre tres clases El patroacuten no fue reconocido correctamente

20

Ahora como se observa no se pudo clasificar correctamente el patroacuten de prueba ya que pertenece claramente a la clase 3 pero por el clasificador que usamos o por el nuacutemero de K-vecinos o por el tipo de meacutetrica usada sucedioacute que en su mayoriacutea eran de la clase 2 y no de la clase 3 Tal vez si se hubiera elegido un valor de K menor a 5 tendriacutea maacutes posibilidades de clasificar correctamente Finalmente usar este tipo de teacutecnicas para reconocer caracteres es muy bueno ya que permite reconocer letras que se encuentran rotadas escaladas o trasladadas por una teacutecnica matemaacutetica llamada Momentos de Hu pero al tener una situacioacuten donde la imagen de prueba se encuentra exactamente a la misma distancia de dos o mas clases se crea el problema de no saber a que clase clasificar dicho patroacuten

Tratamiento digital de las imaacutegenes a capturar A continuacioacuten se muestra en la imagen 214 un programa que se codificoacute en C++ Builder y permite tratar digitalmente imaacutegenes BMP con la finalidad de eliminar el ruido pasarlas a escala de grises y binarizarlas El programa es capaz de generar histogramas de color

Imagen 214 Programa para tratar imaacutegenes digitalmente

21

CAPIacuteTULO 3 Buscadores La informacioacuten almacenada tendriacutea poco valor si no podemos consultarla buscar los datos en una base de datos o en muchas bases de datos que tienen conexioacuten por medio de la web es lo que nos permite explotar la informacioacuten Sin embargo la buacutesqueda seraacute eficiente si la respuesta del buscador es lo maacutes especifica o cercana a los temas solicitados Por lo que el software con aplicacioacuten de buscador es importante desarrollar un proceso para su creacioacuten Objetivo General Desarrollar un sistema de buacutesqueda de informacioacuten por conceptos en la Web basado en agentes inteligentes mediante la aplicacioacuten de ontologiacuteas Estado Del Arte Existen algunos sistemas que proporcionan buacutesquedas de informacioacuten basados en algunas de las tecnologiacuteas que vamos a utilizar Es habitual encontrar este tipo de buscadores y algunos otros similares bautizados como Megabuscadores o Multibuscadores a pesar de que estos teacuterminos no sean los maacutes idoacuteneos por lo que al hablar de este tipo de sistemas podemos referirlos como Buscadores Muacuteltiples en virtud de las caracteriacutesticas de su funcionamiento A continuacioacuten se mencionan algunos de ellos

Buscador muacuteltiple Copernic 2001 Pro Copernici producto de la empresa canadiense Copernic Technologies es un agente buscador que transfiere una ecuacioacuten de buacutesqueda a un conjunto de buscadores de manera simultaacutenea recupera las referencias pertinentes y las ordena seguacuten el grado medio de relevancia obtenido de cada uno de los buscadores La empresa creadora de Copernic se constituyoacute en 1996 con el propoacutesito de desarrollar soluciones innovadoras en tecnologiacuteas de agentes de buacutesqueda para conseguir un acceso y una gestioacuten eficientes de la gran masa de informacioacuten presente en Internet El programa se desarrolloacute el antildeo siguiente en una versioacuten experimental y se puso al alcance del puacuteblico en noviembre de 1998 Desde entonces se han lanzado versiones con elementos nuevos la mayoriacutea de los cuales no obstante soacutelo estaacuten disponibles en las ediciones comerciales La edicioacuten gratuita ofrece los servicios baacutesicos de consulta y con la intencioacuten de persuadir a los posibles compradores de las ediciones comerciales da una idea bastante aproximada de las posibilidades del programa completo

Lets Browse Como en otros medios (por ejemplo la televisioacuten) la navegacioacuten en Internet puede ser realizada por grupos de gente [Lieberman et al 1997] Lets browse muestra como un agente puede asistir a un grupo de gente en su navegacioacuten sugirieacutendoles materiales nuevos que puedan ser de intereacutes comuacuten entre ellos

Este trabajo es una extensioacuten del agente Letizia [Lieberman 1995] el cual selecciona paacuteginas de Web Letizia inicia una buacutesqueda por niveles visita las ligas que encuentra a partir de la paacutegina que su usuario esteacute revisando y selecciona aquellas que sean similares a los intereses que ha aprendido de su usuario (observando su navegacioacuten) Posteriormente muestra sus recomendaciones en un canal de navegacioacuten

22

El trabajo del agente consiste en seleccionar de la misma forma que Letizia lo hace aquellas paacuteginas que mejor satisfagan los intereses de todos los participantes Las caracteriacutesticas de Letrsquos browse son la deteccioacuten automaacutetica de la presencia de usuarios navegacioacuten automaacutetica (en canal de navegacioacuten) el despliege dinaacutemico de las preferencias de los usuarios y la explicacioacuten de las recomendaciones Permite ademaacutes revisar las paacuteginas desde el punto de vista de otra persona (con sus preferencias) y asiacute estimar cual seriacutea su posible opinioacuten acerca de dicha paacutegina auacuten cuando aquella persona no la haya revisado anteriormente

Agentes de Informacioacuten Un agente de informacioacuteiin es utilizado para organizar los espacios de informacioacuten del usuario y facilitar su explotacioacuten En el WWW (World Wide Web) se estaacuten implementando diversos agentes de informacioacuten El Agente Letizia [Lieberman 1995] que existe en un navegador de Web anticipa queacute artiacuteculos pueden ser de intereacutes para el usuario basaacutendose en las conductas pasadas del usuario Las paacuteginas que cree son de intereacutes del usuario Letizia las despliega en una ventana de sugerencias por unos instantes Marco Conceptual Actualmente para poder hacer la consulta de cualquier tipo de informacioacuten en Internet la mayoriacutea de las personas recurre a los motores de buacutesquedas conocidos como Google Yahoo Altavista por mencionar algunos siendo que estos usan diferentes meacutetodos para llegar a su objetivo podemos darnos cuenta que arrojan distintos resultados uno de otro que en el mejor de los casos coinciden en un porcentaje muy poco satisfactorio con la buacutesqueda en cuestioacuten con lo que concluimos que una respuesta a esta falta de precisioacuten en cuanto a la buacutesqueda de un tema en especial es mejor la buacutesqueda de conceptos lo cual permite al usuario acercarse maacutes al tema de su intereacutes Es importante enfocar nuestra solucioacuten apoyaacutendonos en un motor de buacutesqueda y aplicando herramientas como los Agentes que nos permitan recopilar la informacioacuten maacutes precisa de cada buacutesqueda a traveacutes de un algoritmo propio obteniendo resultados maacutes cercanos a los deseados ya que estos provienen de muacuteltiples documentos ahorrando tiempo y ganando precisioacuten a la vez Muy frecuentemente encontramos que cuando se trata de buacutesquedas en Internet a traveacutes de los motores de buacutesqueda populares los usuarios hacen consultas de diversas paginas y es muy difiacutecil llevar una lista de todos los sitios visitados o de aquellos que nos mostraron la informacioacuten maacutes adecuada nuestro sistema es capaz de registrar dentro de una base de datos un iacutendice de todos los sitios que se obtuvieron en la buacutesqueda de un tema o concepto con lo que el usuario no tendraacute que realizar una ldquonuevardquo buacutesqueda de un tema antes consultado sino que tendraacute a la mano todos los sitios que arrojoacute la primera buacutesqueda Marco teoacuterico

Descripcioacuten de RDF

El Resource Description Frameworiiik (RDF) es un fundamento para el procesamiento de metadatos proporciona interoperabilidad entre aplicaciones que intercambian informacioacuten legible por maacutequina en la Web RDF utiliza XML para intercambiar descripciones de recursos Web pero los recursos descritos pueden ser de cualquier tipo

23

incluyendo recursos XML y no-XML RDF resalta las facilidades para hacer posible el procesamiento automaacutetico de los recursos Web RDF puede utilizarse en diferentes aacutereas de aplicacioacuten por ejemplo en la recuperacioacuten de recursos para proporcionar mejores capacidades a los motores de buacutesqueda en catalogacioacuten para la descripcioacuten de contenido y relaciones de contenido accesibles en un sitio Web particular en una paacutegina o biblioteca digital a traveacutes de agentes de software inteligente para facilitar que el conocimiento se comparta e intercambie en la valoracioacuten de contenido en la descripcioacuten de colecciones de paacuteginas que representan un documento loacutegico individual para la descripcioacuten de los derechos de propiedad intelectual de las paacuteginas Web y para expresar las preferencias de privacidad de un usuario asiacute como las poliacuteticas de privacidad de un sitio Web Las descripciones utilizadas por estas aplicaciones pueden modelarse como relaciones entre recursos Web El modelo de datos de RDF tal y como se especifica en RDFMS define un modelo simple para describir las relaciones entre recursos en teacuterminos de propiedades y valores designadas Las propiedades RDF pueden entenderse como atributos de un recurso y en este sentido corresponden con los tradicionales pares atributo-valor Las propiedades RDF tambieacuten representa relaciones entre recursos De esta forma el modelo de datos RDF puede parecer un diagrama entidad-relacioacuten El modelo de datos RDF sin embargo no proporciona mecanismos para declarar estas propiedades ni proporcionan ninguacuten mecanismo para definir las relaciones entre estas propiedades y otros recursos Este es el papel [la funcioacuten] del Esquema RDF

Las comunidades de descripcioacuten de recursos necesitan la habilidad para decir ciertas cosas sobre ciertas clases de recursos Para describir recursos bibliograacuteficos por ejemplo son habituales atributos descriptivos tales como autor [author] tiacutetulo [title] y materia [subject] Para la certificacioacuten digital se necesitan muchas veces atributos tales como esquema simple de deteccioacuten de errores [checksum] y autorizacioacuten [authorization] La declaracioacuten de estas propiedades (atributos) y su semaacutentica correspondiente se definen en el contexto de RDF como un Esquema RDF Un esquema define no soacutelo las propiedades de un recurso (ej tiacutetulo autor materia tamantildeo color etc) sino que puede tambieacuten definir los tipos de recursos que se describiraacuten (libros paacuteginas Web personas empresas etc)

Los Esquemas RDF podriacutean contrastarse con las Definiciones del Tipo de Documentos (DTDs) de XML y los Esquemas XML A diferencia de una DTD o Esquema XML que dan restricciones especiacuteficas en la estructura de un documento XML un Esquema RDF proporciona informacioacuten sobre la interpretacioacuten de una sentencia dada en un modelo de datos RDF Mientras un Esquema XML puede utilizarse para validar la sintaxis de una expresioacuten RDFXML un esquema sintaacutectico soacutelo no es suficiente para los objetivos de RDF Los Esquemas RDF pueden tambieacuten especificar restricciones que deben seguirse por estos modelos de datos

Clases y Propiedades Un Esquema RDF se expresa a traveacutes de un modelo de datos descrito en la especificacioacuten del Modelo y la Sintaxis RDF [RDFMS] El lenguaje de descripcioacuten del esquema es un simple conjunto de recursos y propiedades definidos por la Especificacioacuten del Esquema RDF y la parte impliacutecita de cada modelo RDF que utiliza la mecaacutenica del esquema RDF

24

El sistema de escritura de datos [type system] El Esquema RDF definido en esta especificacioacuten es una coleccioacuten de recursos RDF que puede utilizarse para describir propiedades de otros recursos RDF (incluyendo propiedades) que definene vocabularios RDF de aplicacioacuten especiacutefica El nuacutecleo del vocabulario del esquema se define en un namespace denominado aquiacute informalmente rdfs e identificado por el URI de referencia httpwwww3org200001rdf-schema Esta especificacioacuten utiliza tambieacuten el prefijo rdf para referirse al namespace principal RDF httpwwww3org19990222-rdf-syntax-ns

Como se describe en la especificacioacuten del modelo y la sintaxis [RDFMS] los recursos pueden ser objetos especiacuteficos de una categoriacutea [instances] de una o maacutes clases esto se indica con la propiedad rdftype Las clases se organizan muchas veces de una forma jeraacuterquica por ejemplo la clase Dog [perro] podriacutea considerarse subclase de Mammal [mamiacutefero] que a su vez es una subclase de Animal dando a entender que cualquier recurso que esteacute en rdftype Dog se considera tambieacuten que estaacute en rdftype AnimalEsta especificacioacuten describe una propiedad rdfssubClassOf para indicar dichas relaciones entre clases

El sistema de escritura [type system] del Esquema RDF es similar al sistema de los lenguajes de programacioacuten orientados a objetos tales como Java Sin embargo RDF se diferencia de muchos de esos sistemas en que en lugar de definir una clase en teacuterminos de propiedades sus objetos especiacuteficos de una categoriacutea [instances] pueden tener un esquema RDF que definiraacute las propiedades en teacuterminos de clases de recurso a los que se aplican Este es el papel de las restricciones rdfsdomain y de rdfsrange

Por ejemplo podemos definir que la propiedad author tenga un dominio de Book y un alcance de Literal mientras que un sistema OO claacutesico podriacutea definir tiacutepicamente una clase Book con un atributo denominado author de tipo Literal

Clases y Recursos como Conjuntos y Elementos El siguiente esquema ilustra el concepto de clase subclase y recurso Una clase se describe por un rectaacutengulo redondeado un recurso se describe por un punto grande En la figura abajo se han dibujado flechas desde un recurso a una clase que define Una subclase se presenta en un rectaacutengulo redondeado (la subclase) completamente incluido en otro (la superclase) Si un recurso estaacute dentro de una clase entonces existe una propiedad rdftype o expliacutecita o impliacutecita de aquel recurso cuyo valor es un recurso que define la clase que contiene (Estas propiedades se muestran como arcos en la representacioacuten graacutefica directamente etiquetada en el Esquema 2) El recurso RDF representado en el esquema 1 se describe tanto en el resto de esta especificacioacuten como en la especificacioacuten del Modelo y Sintaxis RDF

Ontologiacuteas en la Representacioacuten del Conocimiento En estos uacuteltimos antildeos se incrementoacute la cantidad de informacioacuten en la Internet lo cual motivoacute el incremento de la complejidad y la diversidad de la informacioacuten Esto tambieacuten motivoacute el intereacutes de automatizar muchas actividades que tradicionalmente se realizan en forma manual La principal motivacioacuten en el uso de las ontologiacuteas es que permiten compartir y reutilizar conocimiento en un dominio De ahiacute el intereacutes de muchos

25

investigadores en el aacuterea de inteligencia artificial para tratar de aplicar las ontologiacuteas en la representacioacuten de conocimiento Las ontologiacuteas son un elemento importante en la Web Semaacutentica y es un teacutermino filosoacutefico que trata sobre la naturaleza de la existencia y los tipos de objetos que existen Tambieacuten la ontologiacutea se puede definir como una especificacioacuten expliacutecita de una conceptualizacioacuten compartida La conceptualizacioacuten se refiere a un modelo abstracto de un fenoacutemeno en el mundo en donde se tienen que identificar los conceptos relevantes de este fenoacutemeno El teacutermino expliacutecito significa queacute tipos de conceptos son usados y las restricciones de estos conceptos Y por uacuteltimo el teacutermino compartido se refiere a que las ontologiacuteas capturan conocimiento que es aceptado por todos y no es individual de un grupo Actualmente se les estaacute dando maacutes uso a las ontologiacuteas en el campo de la Inteligencia Artificial En este campo se define la ontologiacutea como una descripcioacuten formal y expliacutecita de conceptos de un dominio (classes a las que nos referiremos como conceptos) propiedades de cada concepto las cuales describen las caracteriacutesticas y atributos de los conceptos (slots llamados tambieacuten como propiedades o roles) y restricciones de las propiedades (facets conocidas como restricciones) La informacioacuten que es representada a traveacutes de los lenguajes semaacutenticos puede ser compartida entre aplicaciones como los agentes

OWL y Web Semaacutentica

La Web Semaacutentica es una Web extendida dotada de mayor significado en la que cualquier usuario en Internet podraacute encontrar respuestas a sus preguntas de forma maacutes raacutepida y sencilla gracias a una informacioacuten mejor definida Al dotar a la Web de maacutes significado y por lo tanto de maacutes semaacutentica se pueden obtener soluciones a problemas habituales en la buacutesqueda de informacioacuten gracias a la utilizacioacuten de una infraestructura comuacuten mediante la cual es posible compartir procesar y transferir informacioacuten de forma sencilla Esta Web extendida y basada en el significado se apoya en lenguajes universales que resuelven los problemas ocasionados por una Web carente de semaacutentica en la que en ocasiones el acceso a la informacioacuten se convierte en una tarea difiacutecil y frustrante

LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES La comunicacioacuten es uno de los aspectos importantes dentro de una comunidad de agentes la cual permitiraacute compartir y enviar mensajes entre agentes Los meacutetodos tradicionales permiten la comunicacioacuten entre los agentes pero eacutestos no son suficientes para lograr un comportamiento social entre los agentes para ello es necesario que los mensajes tengan un significado y contenido semaacutentico Se han desarrollado varios lenguajes los cuales son usados para el enviacuteo de mensajes a continuacioacuten hablaremos de dos de ellos KQML Knowledge Query and Manipulation Language (KQML) es uno de los lenguajes que nos provee la estructura para enviar mensajes entre agentes Dentro de sus principales caracteriacutesticas tenemos que es independiente de la sintaxis del contenido y la ontologiacutea

26

que se utilizaraacute Asiacute mismo es independiente del mecanismo de transporte (TCPIP SMTP IIOP etc) e independiente del contenido del lenguaje (KIF SQL STEP Prolog etc) KQML fue desarrollado por el consorcio DARPA Knowledge Sharing Effort (KSE) cuyo principal objetivo fue desarrollar una base tecnoloacutegica para construir en forma progresiva sistemas cada vez con maacutes funcionalidad complejidad y amplitud KQML provee un lenguaje y un protocolo para intercambiar informacioacuten entre agentes inteligentes y para lograr este intercambio se tiene que compartir una sintaxis y una semaacutentica comuacuten para que los mensajes sean entendidos por los agentes Al lenguaje KQML se le dividioacute en tres capas la capa de contenido alberga el contenido del mensaje que es especificado en cualquier formato ya sea texto o binario La capa de comunicacioacuten contiene paraacutemetros como el identificador uacutenico asociado a la comunicacioacuten identidad del remitente e identidad del destinatario La capa de mensaje define tanto los diferentes tipos de interaccioacuten que se pueden establecer entre los agentes como los protocolos que se pueden establecer entre los agentes Tambieacuten incluye otras caracteriacutesticas como el lenguaje de representacioacuten o la ontologiacutea siendo ambos opcionales

JADE (Java Agent DEvelopment Framework)

JADEiv (Java Agent DEvelopment Framework) es un middleware que proporciona tanto un entorno de desarrollo como un entorno de ejecucioacuten para la realizacioacuten y mantenimiento de sistemas multiagente El entorno de desarrollo estaacute formado por una serie de libreriacuteas en Java que permiten la implementacioacuten de agentes de manera limpia e independiente de la plataforma sobre la que se va a ejecutar El entorno de ejecucioacuten permite a los agentes vivir y comunicarse entre ellos Estaacute realizado enteramente en Java y proporciona una serie de herramientas que permiten al desarrollador controlar y depurar a los agentes en tiempo real JADE es un middleware desarrollado por TILAB para el desarrollo de aplicaciones distribuidas multiagente JADE proporciona tanto el entorno de desarrollo para la creacioacuten de aplicaciones basadas en agentes como el entorno de ejecucioacuten JADE presenta las siguientes caracteriacutesticas

P2P Arquitectura peer-to-peer cada agente puede tomar la iniciativa en una comunicacioacuten o bien responder a peticiones que le hagan otros agentes

Interoperabilidad JADE cumple con las especificaciones FIPA por lo que los agentes desarrollados en JADE pueden interactuar con otros agentes que no tienen porque estar desarrollados con JADE aunque si deben seguir las especificaciones FIPA

Portabilidad La API que proporciona JADE es independientemente de la red sobre la que va a operar asiacute como de la versioacuten de Java utilizada teniendo la misma API para J2EE J2SE y J2ME

27

Intuitiva JADE se ha desarrollado para ofrecer una API faacutecil de aprender y sencilla de manejar

Los agentes JADE tienen nombres uacutenicos y se permite a cada agente descubrir a otros agentes y comunicarse con ellos mediante comunicaciones punto a punto Los agentes proporcionan servicios cada agente puede buscar a otros dependiendo de los servicios que proporcionen otros agentes La comunicacioacuten entre agentes se lleva a cabo a traveacutes de mensajes asiacutencronos es decir el agente que enviacutea el mensaje y el destinatario del mensaje no tienen porqueacute estar disponibles al mismo tiempo Es maacutes el destinatario no tiene porqueacute existir en ese instante Los mensajes se pueden enviar a un agente en concreto o se pueden enviar a agentes que se desconocen pero se sabe que poseen unas ciertas caracteriacutesticas JADE proporciona mecanismos de seguridad ya que habraacute agentes a los que no se les esteacute permitido comunicarse con otros agentes de manera que una aplicacioacuten puede verificar la identidad del receptor y del agente que enviacutea el mensaje y no dejar realizar actuaciones no permitidas para un determinado agente La estructura de los mensajes se basa en el lenguaje ACL (Agent Communication Lenguaje) que ha sido definido por la FIPA JADE facilita mecanismos para el desarrollo de los objetivos que deben alcanzar los agentes Los comportamientos (behaviours) y la comunicacioacuten entre los agentes (junto con el servicio de paacuteginas amarillas) proporcionan los recursos necesarios para programar un sistema multiagente JADE tambieacuten permite a los agentes cambiar de Host (en J2SE) Un agente puede interrumpir en un momento dado su ejecucioacuten migrar a otro host (sin necesidad de que el coacutedigo esteacute previamente en el host destino) y continuar la ejecucioacuten en el mismo punto en el que la interrumpioacute Esto permite un balanceo de carga ya que permite a los agentes migrar hosts menos cargados El entorno de ejecucioacuten proporciona un marco donde poder ejecutar los agentes y herramientas graacuteficas para su monitorizacioacuten y depuracioacuten Los agentes JADE necesitan del entorno de ejecucioacuten donde poder vivir Cada instancia del entorno de ejecucioacuten se denomina contenedor (container) Al conjunto de los contenedores se le denomina plataforma (platform) y proporciona una capa que oculta a los agentes (y al desarrollador) el entorno donde se ha decidido ejecutar la aplicacioacuten En cada plataforma debe existir un contenedor especial denominado contenedor principal (main container) La principal diferencia del contenedor principal respecto al resto de contenedores es que alberga dos agentes especiales

AMS (Agent Management System) Este agente proporciona el servicio de nombres asegurando que cada agente en la plataforma disponga de un nombre uacutenico Tambieacuten representa la autoridad es posible crear y matar agentes en contenedores remotos requeriendoselo al agente AMS

DF (Directory Facilitator) Proporciona el servicio de Paacuteginas Amarillas Gracias al agente DF un agente puede encontrar otros agentes que provean los servicios necesarios para lograr sus objetivos

28

La caracteriacutestica mas importante del entorno de ejecucioacuten es la interfaz graacutefica que proporciona desde la que podemos controlar y depurar los agentes existentes Todas las herramientas han sido desarrolladas como agentes y siguen sus mismas reglas Disentildeo Arquitectura

Agente usuario

Agente de ontologiacutea

Agente de filtrado

Agente de recuperacioacuten

BD

OntologiacuteaSistema

Motor de buacutesqueda

El sistema esta disentildeado para que un usuario realice alguna buacutesqueda relacionada con alguno de los tres temas propuestos en nuestra base de conocimiento que son Ingenieriacutea de Software Base de Datos y Deportes El sistema esta basado en una arquitectura multiagente la cual se conforma por Agente Usuario Actuacutea de intermediario entre el usuario y el sistema Sus servicios son solicitados por el usuario para resolver las consultas El usuario le suministra una consulta y el sistema le devuelve una lista de documentos que pueden satisfacer sus necesidades Este agente tiene la capacidad de acceder a la base de datos con el objetivo de almacenar yo recuperar resultados Base de Datos Guardaraacute las ultimas buacutesquedas realizadas para su posterior consulta a peticioacuten del usuario Agente de Filtrado Gestiona la recuperacioacuten de documentos y realiza el filtrado de los mismos proporcionados por el Agente de Recuperacioacuten Recibe la peticioacuten del Agente Usuario y a su vez esta es enviada al Agente Ontologiacutea para que este regrese una evaluacioacuten de la consulta y de esta forma conocer si es necesaria una redefinicioacuten de la consulta En caso de ser necesaria se espera recibir el nuevo vector de consulta hasta que se cumpla una de dos opciones el usuario deje de redefinir la consulta o la consulta sea concreta Cuando la consulta sea concreta es enviada de nueva cuenta al Agente Ontologiacutea el cual regresaraacute el Nuevo Vector Expandido Este seraacute enviado al Agente de Recuperacioacuten Cuando el Agente de Recuperacioacuten regrese los urlacutes de los resultados (con sus respectivos vectores de teacuterminos) se realiza una evaluacioacuten de los vectores de cada documento con respecto al vector de buacutesqueda expandida con el objetivo de asignarles una calificacioacuten Gracias a esta calificacioacuten podemos obtener aquellos documentos que mejor cumplan con las expectativas del usuario (Estos documentos son regresados al Agente Usuario) Agente Ontologiacutea Recibe el vector de consulta proporcionado por el Agente de Filtrado La informacioacuten contenida en el vector de consulta es comparada con la existente en nuestra ontologiacutea Una vez verificada la existencia de la informacioacuten del

29

vector consulta dentro de la ontologiacutea este se encarga de devolver la distancia y el umbral al Agente de Filtrado Se espera que este devuelva una peticioacuten para expandir ese mismo vector Puede darse el caso de obtener dos tipos de buacutesquedas una general y otra mucho maacutes definida En cualquiera de los caso obtenemos un nuevo vector de buacutesqueda (con una informacioacuten mejor definida este es el Vector de Buacutesqueda Expandido) que es enviado de regreso al Agente de Filtrado el cual genera una copia y le es enviada al Agente de Recuperacioacuten Ontologiacutea Representa nuestra base de conocimientos Esta compuesta por tres aacutereas de conocimiento las cuales son Ingenieriacutea se Software Bases de Datos y Deportes Para poder representar esta ontologiacutea en un lenguaje entendible para agentes inteligentes se programaraacute bajo los fundamentos de las estructuras RDF contenidas en las especificaciones de XML y siguiendo los estaacutendares de la W3C Agente Recuperacioacuten Realiza la buacutesqueda gracias a la informacioacuten que le es entregada por el Agente de Filtrado (se trata Vector de Buacutesqueda Expandido generado por el Agente de Ontologiacutea) El agente estructura esta informacioacuten y se introduce en un motor de buacutesqueda(diacutegase por ejemplo Google) de tal manera que obtengamos una lista de posibles documentos A cada documento se le asigna un vector de teacuterminos con sus pesos derivados de un anaacutelisis TFIDF para despueacutes regresar las urlacutes con su respectivo vector de teacuterminos al Agente Filtrado RESULTADOS Este proyecto tiene la finalidad de desarrollar el software para un antivirus y un traductor Pero durante los estudios de anaacutelisis de estos dos productos se encontroacute que el software para la buacutesqueda de la informacioacuten tambieacuten puede ser implementada por medio de teacutecnicas de Inteligencia Artificial Para construir el software de aplicacioacuten para estas necesidades se usa la metodologiacutea de cascada Donde los pasos a seguir son el Anaacutelisis Disentildeo Pruebas Implementacioacuten y Mantenimiento Hasta este momento estamos en la etapa de pruebas de algunos moacutedulos de los tres productos IMPACTO El detector de intrusos en una red es de mucha importancia debido a que en la actualidad se han diseminado muchos virus que pueden ser transmitidos a traveacutes de intrusos Hasta la fecha el meacutetodo de proteccioacuten se hace de forma manual La finalidad de este software es automatizar la proteccioacuten El traductor de texto a voz tiene como primera aplicacioacuten el auxilio en la lectura de documentos para las personas invidentes o deacutebiles visuales una segunda aplicacioacuten es la comunicacioacuten con la computadora por medio del lenguaje natura El buscador de informacioacuten es un auxilio en la buacutesqueda de datos en una base de datos de conocimiento Ya que tambieacuten estaacuten proliferando las bibliotecas virtuales es una ayuda en la localizacioacuten de informacioacuten cientiacutefica y un preaacutembulo para un software de apoyo docente BIBLIOGRAFIacuteA [1] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

30

[2] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps[3] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[4] w3c en espantildeol OWL y Web Semaacutentica httpwwww3cesDivulgacionGuiasbrevesWebSemantica

[5] Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

[6] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[7] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[8] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[9] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[10] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[11] Laboratorios Googlehttplabsgooglecompapershtml

[12] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[13] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

[14] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

[15] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps [16] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[18] Trabajos de Agente en JADE http Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

31

[19] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[20] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[21] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[22] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[23] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[24] Laboratorios Googlehttplabsgooglecompapershtml

[25] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[26] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

  • En este reporte teacutecnico se presenta la descripcioacuten general anaacutelisis y estado actual de de los trabajos terminales TT2006135 TT20060097 y TT20060068 que tienen por titulo ldquoSistema prototipo de deteccioacuten de intrusos en la red utilizando agentes inteligentesrdquo rdquoProcesamiento digital de imaacutegenes para la conversioacuten de texto a vozrdquo y ldquoSistema de buacutesqueda de informacioacuten por conceptos en la webrdquo respectivamente Los prototipos que se obtendraacuten seraacuten un software robusto que se desarrollaraacuten con teacutecnicas de inteligencia artificial como Agentes inteligentes y Redes neuronales
  • Estructura de un sistema neuronal artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
    • Estado Del Arte
      • Estructura de un sistema neuronal artificial
        • Sistemas paralelos distribuidos y adaptativos
          • Modelo estaacutendar de neurona artificial
            • Sigmoidal logariacutetmica
              • Empleo del perceptroacuten para reconocer funciones loacutegicas
              • Algoritmo de aprendizaje del perceptroacuten
                • Objetivo General
                • Estado Del Arte
                • A continuacioacuten se mencionan algunos de ellos
                  • Buscador muacuteltiple Copernic 2001 Pro
                  • Lets Browse
                  • Agentes de Informacioacuten
                    • Marco Conceptual
                      • Clases y Propiedades
                      • El sistema de escritura de datos [type system]
                      • Clases y Recursos como Conjuntos y Elementos
                        • Ontologiacuteas en la Representacioacuten del Conocimiento
                          • LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES
                          • JADE (Java Agent DEvelopment Framework)
                            • Disentildeo
                            • Arquitectura
Page 12: INSTITUTO POLITÉCNICO NACIONALsappi.ipn.mx/cgpi/archivos_anexo/20061387_3286.pdf · La comunicación del hombre con la computadora por medio del lenguaje natural, es la finalidad

12

Tangente

hiperboacutelica

nn

nn

eeeey minus

minus

+minus

=

Lineal positiva y=0 nlt0 y=n 0len

Competitiva a=1 neurona con maacutex n

a=0 todas las demaacutes

C

Tabla 2 Funciones de activacioacuten habituales (se han omitido algunas constantes)

Arquitecturas de redes neuronales Se denomina arquitectura a la topologiacutea estructura o patroacuten de conexionado de una red neuronal En un ANS los nodos se conectan por medio de sinapsis esta estructura de conexiones sinaacutepticas determina el comportamiento de la red Las conexiones sinaacutepticas son direccionales es decir la informacioacuten soacutelo puede propagarse en un uacutenico sentido (desde la neurona presinaacuteptica a la postsinaacuteptica ver figura 24)

j

i

YjXj

Wij

YiNeurona presinaacuteptica

Neurona postsinaacuteptica

Figura 24 Interaccioacuten entre una neurona presinaacuteptica y otra postsinaacuteptica

En general las neuronas se suelen agrupar en unidades estructurales que denominaremos capas Las neuronas de una capa pueden agruparse a su vez formando grupos neuronales (clusters) Dentro de un grupo o de una capa si no existe este tipo de agrupacioacuten las neuronas suelen ser del mismo tipo Finalmente el conjunto de una o maacutes capas constituye la red neuronal

Se distinguen tres tipos de capas de entrada de salida y ocultas Una capa de entrada o sensorial estaacute compuesta por neuronas que reciben datos o sentildeales procedentes del entorno (por ejemplo proporcionado por sensores) Una capa de salida es aquella cuyas neuronas proporcionan la respuesta de la red neuronal (sus neuronas pueden estar conectadas a efectores) Una capa oculta es aquella que no tiene una conexioacuten directa

13

con el entorno es decir que no se conecta directamente ni a organos sensores o efectores Esta capa proporciona a la red neuronal grados de libertad adicionales gracias a los cuales puede encontrar representaciones internas correspondientes a determinados rasgos del entorno proporcionando una mayor riqueza computacional (ver figura 25)

Informacioacuten Capa de salida

(efectora) Capa oculta Capa de entrada (procesamiento) (sensorial)

Figura 25 Arquitectura unidireccional de tres capas de entrada oculta y de salida

Las conexiones entre las neuronas pueden ser excitadoras o inhibidoras un peso sinaacuteptico negativo define una conexioacuten inhibidora mientras uno positivo determina una conexioacuten excitadora Habitualmente no se suele definir una conexioacuten como de un tipo u otro sino que por medio del aprendizaje se obtiene un valor para el peso que incluye signo y magnitud

El perceptroacuten simple Este modelo neuronal fue introducido por Rosenblatt a finales de los antildeos cincuenta Dicha estructura se inspira en las primeras etapas de procesamiento de los sistemas sensoriales de los animales (por ejemplo la visioacuten) en los cuales la infomacioacuten va atravesando sucesivas capas de neuronas que realizan un procesamiento progresivamente de maacutes alto nivel Un perceptroacuten simple es un modelo unidireccional compuesto por dos capas de neuronas una sensorial o de entrada y otra de salida A continuacioacuten se muestra en la figura 26 su representacioacuten y la funcion de transferencia que utiliza

Figura 26 a) Las neuronas de entrada no realizan ninguacuten coacutemputo uacutenicamente enviacutean la informacioacuten a las neuronas de salida b) la funcioacuten de activacioacuten de las neuronas de la capa de salida es de tipo escaloacuten

Capa de entrada

Capa de salida

f(x) x

Funcioacuten escaloacuten

a) b)

14

El perceptroacuten puede utilizarse tanto como clasificador como para la representacioacuten de funciones booleanas pues su neurona es esencialmente de tipo MacCulloch-Pitts es decir de salida binaria La importancia histoacuterica del perceptroacuten radica en su caraacutecter de dispositivo entrenable ya que el algoritmo de aprendizaje que desarrollo Rosenblatt permite determinar automaacuteticamente los pesos sinaacutepticos que clasifican un conjunto de patrones a partir de un conjunto de ejemplos etiquetados (a esto se le llama red neuronal supervisada y el perceptron simple es de este tipo) Ahora se mostraraacute que un perceptroacuten permite realizar tareas de clasificacioacuten Cada neurona del perceptroacuten representa una determinada clase de modo que dado un vetor de entrada una cierta neurona responde con 0 si no pertenece a la clase que representa y con un 1 si siacute pertenece Es faacutecil ver que una neurona tipo perceptroacuten solamente permite discriminar entre dos clases linealmente separables (es decir cuyas regiones de decisioacuten pueden ser separadas mediante una uacutenica condicioacuten lineal o hiperplano que es una liacutenea recta si trabajamos en dos dimensiones) Sea una neurona tipo perceptroacuten de dos entradas x1 y x2 con salida y cuya operacioacuten se define por lo tanto como

y = H(w1x1+w2x2 - ө) o bien 1 si w1x1+w2x2 geӨ y = 0 si w1x1+w2x2 ltӨ

Si consideramos x1 y x2 situadas sobre los ejes de abscisas y ordenadas en el plano la condicioacuten

w1x1+ w2x2 -Ө = 0 rarr x2 = - (w1 w2) x1 + Ө w2 representa una recta (hiperplano si trabajamos con n entradas) que divide el plano en dos regiones que son aquellas para las que la neurona proporciona una salida 0 o 1 respectivamente como se muestra en la figura 27

x x

x x x

x x x

x

x

oo

oo

o o

o

X1

X2

Regioacuten w1x1+w2x2 geӨ Regioacuten w1x1+w2x2 ltӨ

Figura 27 Una neurona tipo perceptroacuten representa un discriminador lineal que separa dos regiones en el espacio que representan dos diferentes clases de patrones En esta graacutefica x = lsquo1rsquo y o = lsquo0rsquo

15

Empleo del perceptroacuten para reconocer funciones loacutegicas -Funcion linealmente separable Consideremos la funcioacuten loacutegica NAND2 (AND negada de dos entradas) que representamos sobre un plano en la graacutefica 3 que se presenta en seguida

x (10) o (11)

x (00)

x (01) X1

X2

Figura 28 Funcioacuten loacutegica NAND de dos entradas En la graacutefica x = lsquo1rsquo y o = lsquo0rsquo

Se puede ver que en este caso existen paraacutemetros w1 w2 y Ө que permiten una recta que separa perfectamente las regiones correspondientes a los valores loacutegicos 0 y 1 Y por lo tanto se dice que la funcioacuten loacutegica NAND es linealmente separable -Funcioacuten no separable linealmente

Ahora consideremos la funcioacuten loacutegica or-exclusivo (XOR) y representandola en un plano en la figura 29

x (10) o (11)

o (00)

x (01) X1

X2

Figura 29 Funcioacuten loacutegica XOR de dos entradas que no es linealmente separable

16

Al ser XOR no linealmente separable se dice que ldquola clase de funciones no separables linealmente no pueden ser representadas por un perceptroacuten simplerdquo El perceptroacuten presenta serias limitaciones pues solamente puede representar funciones linealmentes separables Y aunque pueda aprender automaacuteticamente a representar complejas funciones booleanas o resolver con eacutexito muchos problemas de clasificacioacuten con un cierto algoritmo en ocasiones fallara draacutesticamente Minsky (que es uno de los padres de la inteligencia artificial) y Papera estudiaron en profundidad el perceptroacuten y en 1969 publicaron un exhaustivo trabajo donde exhibian las limitantes del modelo en lo que resultoacute decisivo para que muchos de los recursos que se destinaban a su investigacioacuten se desviara a otras aacutereas Una solucioacuten para las limitantes del perceptroacuten simple puede consistir en incluir maacutes capas en la arquitectura con lo que tendremos un perceptroacuten multicapa A finales de los antildeos sesenta ya se apuntaba como solucioacuten a las limitaciones del perceptroacuten introducir capas ocultas pero el problema estaba en que no se teniacutea un algoritmo de aprendizaje para el perceptroacuten multicapa (con capas ocultas) Dicho algoritmo fue propuesto por Paul Verbos alrededor de 1974 pero fue preciso hasta mediados de los ochenta cuando el grupo PDP redescubriera un algoritmo similar al cual denominaron Back-Propagation o BP y dieran a conocer a la comunidad internacional su gran potencial para la resolucioacuten de problemas praacutecticos

Algoritmo de aprendizaje del perceptroacuten El del perceptroacuten es un algoritmo de aprendizaje de los denominados por correccion de errores Los algoritmos de este tipo ajustan los pesos en proporcioacuten a la diferencia existente entre la salida actual de la red y la salida deseada con el objetivo de minimizar el error actual de la red Definicioacuten del algoritmo de aprendizaje Sea un conjunto de p patrones xn n=1hellipp con sus salidas deseadas tn Tanto las entradas como las salidas solamente pueden tomar los valores -1 o 1 Se tiene una arquitectura de perceptroacuten simple con pesos iniciales aleatorios y se requiere que clasifique correctamente todos los patrones del conjunto de aprendizaje (solo si son linealmente separables) Ahora actuaremos del siguiente modo ante la presentacioacuten del patron n-eacutesimo si la respuesta que proporciona el perceptroacuten es correcta no actualizaremos los pesos si es incorrecta los modificaremos seguacuten la regla de Hebb aplicada a nuestro caso Primero se muestra la regla de Hebb y despueacutes la regla modificada para el perceptroacuten simple Regla de Hebb

∆wij = ξyixjDonde

17

o wij corresponde a los pesos de una entrada j por la salida i de la neurona

o ξ se denomina ritmo de aprendizaje que su valor suele estar entre 1 y 0 Regla modificada para el perceptroacuten simple

2ξtnixnj si yn

ine tni ∆wn

ij(t)= 0 si yn

i= tni que puede reescribirse del siguiete modo que es la forma usual de expresar la regla del perceptroacuten

∆wnij(t)= 2ξ(tni - yn

i)xnj

Es importante mencionar que el proceso de aprendizaje es iterativo se

parte de una configuracioacuten sinaacuteptica de partida (normalmente de pesos pequentildeos aleatorios) y se presentan una y otra vez los patrones para que los pesos se ajusten iterativamente seguacuten forma usual de la regla del perceptroacuten hasta que todos queden bien clasificados El hiperplano que establece el liacutemite entre dos clases se desplaza lentamente hasta conseguir separarlas por completo (si es posible) como se ve en la figura 210

t= 115

x x

x x x

x x x

x

x

o

o o

o o o o

o

o o

o

o

o

o

o

o

o

X2

t= 21

t= 0 t= 4

X1

Figura 210 Regiones de decisioacuten que establece iterativamente el perceptroacuten durante el aprendizaje (en la iteracioacuten 115 ha conseguido separar ya las dos clases)

Avances En este capiacutetulo se haraacute una descripcioacuten de los avances que se han hecho hasta el momento Se hablaraacute acerca del entrenamiento de la red neuronal del sistema el reconocimiento de caracteres tanto con la red neuronal como con los clasificadores ya expuestos y el tratamiento de imaacutegenes para eliminar el ruido tipo sal y pimienta Reconocimiento de caracteres Se han hecho avances acerca del reconocimiento de caracteres utilizando redes neuronales y clasificadores diversos A continuacioacuten se exponen dichos avances

Entrenamiento de la red neuronal Para entrenar la red neuronal se utilizoacute el algoritmo de retropropagacioacuten expuesto en el capiacutetulo 1 Se disentildeoacute un programa en Java que permite entrenar una red neuronal de 3

18

capas La cantidad de clases a discriminar es variable y para este caso se utilizoacute una matriz de 5x8 es decir se tomaron 40 rasgos de entrada

Utilizando la red neuronal para reconocer caracteres A continuacioacuten se muestra en la imagen 211 el programa disentildeado en Java que permite discriminar un nuacutemero variable de clases Para este caso se eligioacute discriminar entre los diacutegitos del 0 al 9 El programa para reconocer los 128 caracteres referentes al sintetizador de voz tendraacute una interfaz similar con la diferencia de que la rejilla para ingresar el patroacuten a reconocer seraacute de 20x20 El programa mostrado fue programado tanto para entrenar la red como para reconocer los diacutegitos Se puede elegir entre los entrenamientos hechos para probar la efectividad de la red Las estadiacutesticas del entrenamiento elegido se muestran en la parte inferior de la pantalla

Imagen 211 Reconocimiento de los diacutegitos del 0 al 9 utilizando una red neuronal de 3 capas

19

Utilizando los clasificadores para reconocer caracteres Dentro de las teacutecnicas de reconocimiento de patrones existen diferentes clasificadores que nos permiten a partir de un conjunto de entrenamiento (en eacuteste caso un conjunto de tipos de letras que deseamos reconocer) saber a queacute clase pertenece un patroacuten de prueba que se introduce

Imagen 212 Un ejemplo de un clasificador KNN con un valor de K=3 y usando la meacutetrica City-Block para clasificar el patroacuten de prueba pruebabmp entre tres clases

En la imagen 212 se muestra como se puede clasificar un caraacutecter escalado de la imagen prueba 4bmp dentro de las tres clases existentes Se observa que si se puede clasificar este tipo de patrones pero veamos un ejemplo donde no sea posible clasificar un patroacuten de prueba y por queacute

Imagen 213 Un ejemplo de un clasificador KNN con un valor de K=5 y usando la meacutetrica Euclidiana para clasificar el patroacuten de prueba prueb3bmp entre tres clases El patroacuten no fue reconocido correctamente

20

Ahora como se observa no se pudo clasificar correctamente el patroacuten de prueba ya que pertenece claramente a la clase 3 pero por el clasificador que usamos o por el nuacutemero de K-vecinos o por el tipo de meacutetrica usada sucedioacute que en su mayoriacutea eran de la clase 2 y no de la clase 3 Tal vez si se hubiera elegido un valor de K menor a 5 tendriacutea maacutes posibilidades de clasificar correctamente Finalmente usar este tipo de teacutecnicas para reconocer caracteres es muy bueno ya que permite reconocer letras que se encuentran rotadas escaladas o trasladadas por una teacutecnica matemaacutetica llamada Momentos de Hu pero al tener una situacioacuten donde la imagen de prueba se encuentra exactamente a la misma distancia de dos o mas clases se crea el problema de no saber a que clase clasificar dicho patroacuten

Tratamiento digital de las imaacutegenes a capturar A continuacioacuten se muestra en la imagen 214 un programa que se codificoacute en C++ Builder y permite tratar digitalmente imaacutegenes BMP con la finalidad de eliminar el ruido pasarlas a escala de grises y binarizarlas El programa es capaz de generar histogramas de color

Imagen 214 Programa para tratar imaacutegenes digitalmente

21

CAPIacuteTULO 3 Buscadores La informacioacuten almacenada tendriacutea poco valor si no podemos consultarla buscar los datos en una base de datos o en muchas bases de datos que tienen conexioacuten por medio de la web es lo que nos permite explotar la informacioacuten Sin embargo la buacutesqueda seraacute eficiente si la respuesta del buscador es lo maacutes especifica o cercana a los temas solicitados Por lo que el software con aplicacioacuten de buscador es importante desarrollar un proceso para su creacioacuten Objetivo General Desarrollar un sistema de buacutesqueda de informacioacuten por conceptos en la Web basado en agentes inteligentes mediante la aplicacioacuten de ontologiacuteas Estado Del Arte Existen algunos sistemas que proporcionan buacutesquedas de informacioacuten basados en algunas de las tecnologiacuteas que vamos a utilizar Es habitual encontrar este tipo de buscadores y algunos otros similares bautizados como Megabuscadores o Multibuscadores a pesar de que estos teacuterminos no sean los maacutes idoacuteneos por lo que al hablar de este tipo de sistemas podemos referirlos como Buscadores Muacuteltiples en virtud de las caracteriacutesticas de su funcionamiento A continuacioacuten se mencionan algunos de ellos

Buscador muacuteltiple Copernic 2001 Pro Copernici producto de la empresa canadiense Copernic Technologies es un agente buscador que transfiere una ecuacioacuten de buacutesqueda a un conjunto de buscadores de manera simultaacutenea recupera las referencias pertinentes y las ordena seguacuten el grado medio de relevancia obtenido de cada uno de los buscadores La empresa creadora de Copernic se constituyoacute en 1996 con el propoacutesito de desarrollar soluciones innovadoras en tecnologiacuteas de agentes de buacutesqueda para conseguir un acceso y una gestioacuten eficientes de la gran masa de informacioacuten presente en Internet El programa se desarrolloacute el antildeo siguiente en una versioacuten experimental y se puso al alcance del puacuteblico en noviembre de 1998 Desde entonces se han lanzado versiones con elementos nuevos la mayoriacutea de los cuales no obstante soacutelo estaacuten disponibles en las ediciones comerciales La edicioacuten gratuita ofrece los servicios baacutesicos de consulta y con la intencioacuten de persuadir a los posibles compradores de las ediciones comerciales da una idea bastante aproximada de las posibilidades del programa completo

Lets Browse Como en otros medios (por ejemplo la televisioacuten) la navegacioacuten en Internet puede ser realizada por grupos de gente [Lieberman et al 1997] Lets browse muestra como un agente puede asistir a un grupo de gente en su navegacioacuten sugirieacutendoles materiales nuevos que puedan ser de intereacutes comuacuten entre ellos

Este trabajo es una extensioacuten del agente Letizia [Lieberman 1995] el cual selecciona paacuteginas de Web Letizia inicia una buacutesqueda por niveles visita las ligas que encuentra a partir de la paacutegina que su usuario esteacute revisando y selecciona aquellas que sean similares a los intereses que ha aprendido de su usuario (observando su navegacioacuten) Posteriormente muestra sus recomendaciones en un canal de navegacioacuten

22

El trabajo del agente consiste en seleccionar de la misma forma que Letizia lo hace aquellas paacuteginas que mejor satisfagan los intereses de todos los participantes Las caracteriacutesticas de Letrsquos browse son la deteccioacuten automaacutetica de la presencia de usuarios navegacioacuten automaacutetica (en canal de navegacioacuten) el despliege dinaacutemico de las preferencias de los usuarios y la explicacioacuten de las recomendaciones Permite ademaacutes revisar las paacuteginas desde el punto de vista de otra persona (con sus preferencias) y asiacute estimar cual seriacutea su posible opinioacuten acerca de dicha paacutegina auacuten cuando aquella persona no la haya revisado anteriormente

Agentes de Informacioacuten Un agente de informacioacuteiin es utilizado para organizar los espacios de informacioacuten del usuario y facilitar su explotacioacuten En el WWW (World Wide Web) se estaacuten implementando diversos agentes de informacioacuten El Agente Letizia [Lieberman 1995] que existe en un navegador de Web anticipa queacute artiacuteculos pueden ser de intereacutes para el usuario basaacutendose en las conductas pasadas del usuario Las paacuteginas que cree son de intereacutes del usuario Letizia las despliega en una ventana de sugerencias por unos instantes Marco Conceptual Actualmente para poder hacer la consulta de cualquier tipo de informacioacuten en Internet la mayoriacutea de las personas recurre a los motores de buacutesquedas conocidos como Google Yahoo Altavista por mencionar algunos siendo que estos usan diferentes meacutetodos para llegar a su objetivo podemos darnos cuenta que arrojan distintos resultados uno de otro que en el mejor de los casos coinciden en un porcentaje muy poco satisfactorio con la buacutesqueda en cuestioacuten con lo que concluimos que una respuesta a esta falta de precisioacuten en cuanto a la buacutesqueda de un tema en especial es mejor la buacutesqueda de conceptos lo cual permite al usuario acercarse maacutes al tema de su intereacutes Es importante enfocar nuestra solucioacuten apoyaacutendonos en un motor de buacutesqueda y aplicando herramientas como los Agentes que nos permitan recopilar la informacioacuten maacutes precisa de cada buacutesqueda a traveacutes de un algoritmo propio obteniendo resultados maacutes cercanos a los deseados ya que estos provienen de muacuteltiples documentos ahorrando tiempo y ganando precisioacuten a la vez Muy frecuentemente encontramos que cuando se trata de buacutesquedas en Internet a traveacutes de los motores de buacutesqueda populares los usuarios hacen consultas de diversas paginas y es muy difiacutecil llevar una lista de todos los sitios visitados o de aquellos que nos mostraron la informacioacuten maacutes adecuada nuestro sistema es capaz de registrar dentro de una base de datos un iacutendice de todos los sitios que se obtuvieron en la buacutesqueda de un tema o concepto con lo que el usuario no tendraacute que realizar una ldquonuevardquo buacutesqueda de un tema antes consultado sino que tendraacute a la mano todos los sitios que arrojoacute la primera buacutesqueda Marco teoacuterico

Descripcioacuten de RDF

El Resource Description Frameworiiik (RDF) es un fundamento para el procesamiento de metadatos proporciona interoperabilidad entre aplicaciones que intercambian informacioacuten legible por maacutequina en la Web RDF utiliza XML para intercambiar descripciones de recursos Web pero los recursos descritos pueden ser de cualquier tipo

23

incluyendo recursos XML y no-XML RDF resalta las facilidades para hacer posible el procesamiento automaacutetico de los recursos Web RDF puede utilizarse en diferentes aacutereas de aplicacioacuten por ejemplo en la recuperacioacuten de recursos para proporcionar mejores capacidades a los motores de buacutesqueda en catalogacioacuten para la descripcioacuten de contenido y relaciones de contenido accesibles en un sitio Web particular en una paacutegina o biblioteca digital a traveacutes de agentes de software inteligente para facilitar que el conocimiento se comparta e intercambie en la valoracioacuten de contenido en la descripcioacuten de colecciones de paacuteginas que representan un documento loacutegico individual para la descripcioacuten de los derechos de propiedad intelectual de las paacuteginas Web y para expresar las preferencias de privacidad de un usuario asiacute como las poliacuteticas de privacidad de un sitio Web Las descripciones utilizadas por estas aplicaciones pueden modelarse como relaciones entre recursos Web El modelo de datos de RDF tal y como se especifica en RDFMS define un modelo simple para describir las relaciones entre recursos en teacuterminos de propiedades y valores designadas Las propiedades RDF pueden entenderse como atributos de un recurso y en este sentido corresponden con los tradicionales pares atributo-valor Las propiedades RDF tambieacuten representa relaciones entre recursos De esta forma el modelo de datos RDF puede parecer un diagrama entidad-relacioacuten El modelo de datos RDF sin embargo no proporciona mecanismos para declarar estas propiedades ni proporcionan ninguacuten mecanismo para definir las relaciones entre estas propiedades y otros recursos Este es el papel [la funcioacuten] del Esquema RDF

Las comunidades de descripcioacuten de recursos necesitan la habilidad para decir ciertas cosas sobre ciertas clases de recursos Para describir recursos bibliograacuteficos por ejemplo son habituales atributos descriptivos tales como autor [author] tiacutetulo [title] y materia [subject] Para la certificacioacuten digital se necesitan muchas veces atributos tales como esquema simple de deteccioacuten de errores [checksum] y autorizacioacuten [authorization] La declaracioacuten de estas propiedades (atributos) y su semaacutentica correspondiente se definen en el contexto de RDF como un Esquema RDF Un esquema define no soacutelo las propiedades de un recurso (ej tiacutetulo autor materia tamantildeo color etc) sino que puede tambieacuten definir los tipos de recursos que se describiraacuten (libros paacuteginas Web personas empresas etc)

Los Esquemas RDF podriacutean contrastarse con las Definiciones del Tipo de Documentos (DTDs) de XML y los Esquemas XML A diferencia de una DTD o Esquema XML que dan restricciones especiacuteficas en la estructura de un documento XML un Esquema RDF proporciona informacioacuten sobre la interpretacioacuten de una sentencia dada en un modelo de datos RDF Mientras un Esquema XML puede utilizarse para validar la sintaxis de una expresioacuten RDFXML un esquema sintaacutectico soacutelo no es suficiente para los objetivos de RDF Los Esquemas RDF pueden tambieacuten especificar restricciones que deben seguirse por estos modelos de datos

Clases y Propiedades Un Esquema RDF se expresa a traveacutes de un modelo de datos descrito en la especificacioacuten del Modelo y la Sintaxis RDF [RDFMS] El lenguaje de descripcioacuten del esquema es un simple conjunto de recursos y propiedades definidos por la Especificacioacuten del Esquema RDF y la parte impliacutecita de cada modelo RDF que utiliza la mecaacutenica del esquema RDF

24

El sistema de escritura de datos [type system] El Esquema RDF definido en esta especificacioacuten es una coleccioacuten de recursos RDF que puede utilizarse para describir propiedades de otros recursos RDF (incluyendo propiedades) que definene vocabularios RDF de aplicacioacuten especiacutefica El nuacutecleo del vocabulario del esquema se define en un namespace denominado aquiacute informalmente rdfs e identificado por el URI de referencia httpwwww3org200001rdf-schema Esta especificacioacuten utiliza tambieacuten el prefijo rdf para referirse al namespace principal RDF httpwwww3org19990222-rdf-syntax-ns

Como se describe en la especificacioacuten del modelo y la sintaxis [RDFMS] los recursos pueden ser objetos especiacuteficos de una categoriacutea [instances] de una o maacutes clases esto se indica con la propiedad rdftype Las clases se organizan muchas veces de una forma jeraacuterquica por ejemplo la clase Dog [perro] podriacutea considerarse subclase de Mammal [mamiacutefero] que a su vez es una subclase de Animal dando a entender que cualquier recurso que esteacute en rdftype Dog se considera tambieacuten que estaacute en rdftype AnimalEsta especificacioacuten describe una propiedad rdfssubClassOf para indicar dichas relaciones entre clases

El sistema de escritura [type system] del Esquema RDF es similar al sistema de los lenguajes de programacioacuten orientados a objetos tales como Java Sin embargo RDF se diferencia de muchos de esos sistemas en que en lugar de definir una clase en teacuterminos de propiedades sus objetos especiacuteficos de una categoriacutea [instances] pueden tener un esquema RDF que definiraacute las propiedades en teacuterminos de clases de recurso a los que se aplican Este es el papel de las restricciones rdfsdomain y de rdfsrange

Por ejemplo podemos definir que la propiedad author tenga un dominio de Book y un alcance de Literal mientras que un sistema OO claacutesico podriacutea definir tiacutepicamente una clase Book con un atributo denominado author de tipo Literal

Clases y Recursos como Conjuntos y Elementos El siguiente esquema ilustra el concepto de clase subclase y recurso Una clase se describe por un rectaacutengulo redondeado un recurso se describe por un punto grande En la figura abajo se han dibujado flechas desde un recurso a una clase que define Una subclase se presenta en un rectaacutengulo redondeado (la subclase) completamente incluido en otro (la superclase) Si un recurso estaacute dentro de una clase entonces existe una propiedad rdftype o expliacutecita o impliacutecita de aquel recurso cuyo valor es un recurso que define la clase que contiene (Estas propiedades se muestran como arcos en la representacioacuten graacutefica directamente etiquetada en el Esquema 2) El recurso RDF representado en el esquema 1 se describe tanto en el resto de esta especificacioacuten como en la especificacioacuten del Modelo y Sintaxis RDF

Ontologiacuteas en la Representacioacuten del Conocimiento En estos uacuteltimos antildeos se incrementoacute la cantidad de informacioacuten en la Internet lo cual motivoacute el incremento de la complejidad y la diversidad de la informacioacuten Esto tambieacuten motivoacute el intereacutes de automatizar muchas actividades que tradicionalmente se realizan en forma manual La principal motivacioacuten en el uso de las ontologiacuteas es que permiten compartir y reutilizar conocimiento en un dominio De ahiacute el intereacutes de muchos

25

investigadores en el aacuterea de inteligencia artificial para tratar de aplicar las ontologiacuteas en la representacioacuten de conocimiento Las ontologiacuteas son un elemento importante en la Web Semaacutentica y es un teacutermino filosoacutefico que trata sobre la naturaleza de la existencia y los tipos de objetos que existen Tambieacuten la ontologiacutea se puede definir como una especificacioacuten expliacutecita de una conceptualizacioacuten compartida La conceptualizacioacuten se refiere a un modelo abstracto de un fenoacutemeno en el mundo en donde se tienen que identificar los conceptos relevantes de este fenoacutemeno El teacutermino expliacutecito significa queacute tipos de conceptos son usados y las restricciones de estos conceptos Y por uacuteltimo el teacutermino compartido se refiere a que las ontologiacuteas capturan conocimiento que es aceptado por todos y no es individual de un grupo Actualmente se les estaacute dando maacutes uso a las ontologiacuteas en el campo de la Inteligencia Artificial En este campo se define la ontologiacutea como una descripcioacuten formal y expliacutecita de conceptos de un dominio (classes a las que nos referiremos como conceptos) propiedades de cada concepto las cuales describen las caracteriacutesticas y atributos de los conceptos (slots llamados tambieacuten como propiedades o roles) y restricciones de las propiedades (facets conocidas como restricciones) La informacioacuten que es representada a traveacutes de los lenguajes semaacutenticos puede ser compartida entre aplicaciones como los agentes

OWL y Web Semaacutentica

La Web Semaacutentica es una Web extendida dotada de mayor significado en la que cualquier usuario en Internet podraacute encontrar respuestas a sus preguntas de forma maacutes raacutepida y sencilla gracias a una informacioacuten mejor definida Al dotar a la Web de maacutes significado y por lo tanto de maacutes semaacutentica se pueden obtener soluciones a problemas habituales en la buacutesqueda de informacioacuten gracias a la utilizacioacuten de una infraestructura comuacuten mediante la cual es posible compartir procesar y transferir informacioacuten de forma sencilla Esta Web extendida y basada en el significado se apoya en lenguajes universales que resuelven los problemas ocasionados por una Web carente de semaacutentica en la que en ocasiones el acceso a la informacioacuten se convierte en una tarea difiacutecil y frustrante

LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES La comunicacioacuten es uno de los aspectos importantes dentro de una comunidad de agentes la cual permitiraacute compartir y enviar mensajes entre agentes Los meacutetodos tradicionales permiten la comunicacioacuten entre los agentes pero eacutestos no son suficientes para lograr un comportamiento social entre los agentes para ello es necesario que los mensajes tengan un significado y contenido semaacutentico Se han desarrollado varios lenguajes los cuales son usados para el enviacuteo de mensajes a continuacioacuten hablaremos de dos de ellos KQML Knowledge Query and Manipulation Language (KQML) es uno de los lenguajes que nos provee la estructura para enviar mensajes entre agentes Dentro de sus principales caracteriacutesticas tenemos que es independiente de la sintaxis del contenido y la ontologiacutea

26

que se utilizaraacute Asiacute mismo es independiente del mecanismo de transporte (TCPIP SMTP IIOP etc) e independiente del contenido del lenguaje (KIF SQL STEP Prolog etc) KQML fue desarrollado por el consorcio DARPA Knowledge Sharing Effort (KSE) cuyo principal objetivo fue desarrollar una base tecnoloacutegica para construir en forma progresiva sistemas cada vez con maacutes funcionalidad complejidad y amplitud KQML provee un lenguaje y un protocolo para intercambiar informacioacuten entre agentes inteligentes y para lograr este intercambio se tiene que compartir una sintaxis y una semaacutentica comuacuten para que los mensajes sean entendidos por los agentes Al lenguaje KQML se le dividioacute en tres capas la capa de contenido alberga el contenido del mensaje que es especificado en cualquier formato ya sea texto o binario La capa de comunicacioacuten contiene paraacutemetros como el identificador uacutenico asociado a la comunicacioacuten identidad del remitente e identidad del destinatario La capa de mensaje define tanto los diferentes tipos de interaccioacuten que se pueden establecer entre los agentes como los protocolos que se pueden establecer entre los agentes Tambieacuten incluye otras caracteriacutesticas como el lenguaje de representacioacuten o la ontologiacutea siendo ambos opcionales

JADE (Java Agent DEvelopment Framework)

JADEiv (Java Agent DEvelopment Framework) es un middleware que proporciona tanto un entorno de desarrollo como un entorno de ejecucioacuten para la realizacioacuten y mantenimiento de sistemas multiagente El entorno de desarrollo estaacute formado por una serie de libreriacuteas en Java que permiten la implementacioacuten de agentes de manera limpia e independiente de la plataforma sobre la que se va a ejecutar El entorno de ejecucioacuten permite a los agentes vivir y comunicarse entre ellos Estaacute realizado enteramente en Java y proporciona una serie de herramientas que permiten al desarrollador controlar y depurar a los agentes en tiempo real JADE es un middleware desarrollado por TILAB para el desarrollo de aplicaciones distribuidas multiagente JADE proporciona tanto el entorno de desarrollo para la creacioacuten de aplicaciones basadas en agentes como el entorno de ejecucioacuten JADE presenta las siguientes caracteriacutesticas

P2P Arquitectura peer-to-peer cada agente puede tomar la iniciativa en una comunicacioacuten o bien responder a peticiones que le hagan otros agentes

Interoperabilidad JADE cumple con las especificaciones FIPA por lo que los agentes desarrollados en JADE pueden interactuar con otros agentes que no tienen porque estar desarrollados con JADE aunque si deben seguir las especificaciones FIPA

Portabilidad La API que proporciona JADE es independientemente de la red sobre la que va a operar asiacute como de la versioacuten de Java utilizada teniendo la misma API para J2EE J2SE y J2ME

27

Intuitiva JADE se ha desarrollado para ofrecer una API faacutecil de aprender y sencilla de manejar

Los agentes JADE tienen nombres uacutenicos y se permite a cada agente descubrir a otros agentes y comunicarse con ellos mediante comunicaciones punto a punto Los agentes proporcionan servicios cada agente puede buscar a otros dependiendo de los servicios que proporcionen otros agentes La comunicacioacuten entre agentes se lleva a cabo a traveacutes de mensajes asiacutencronos es decir el agente que enviacutea el mensaje y el destinatario del mensaje no tienen porqueacute estar disponibles al mismo tiempo Es maacutes el destinatario no tiene porqueacute existir en ese instante Los mensajes se pueden enviar a un agente en concreto o se pueden enviar a agentes que se desconocen pero se sabe que poseen unas ciertas caracteriacutesticas JADE proporciona mecanismos de seguridad ya que habraacute agentes a los que no se les esteacute permitido comunicarse con otros agentes de manera que una aplicacioacuten puede verificar la identidad del receptor y del agente que enviacutea el mensaje y no dejar realizar actuaciones no permitidas para un determinado agente La estructura de los mensajes se basa en el lenguaje ACL (Agent Communication Lenguaje) que ha sido definido por la FIPA JADE facilita mecanismos para el desarrollo de los objetivos que deben alcanzar los agentes Los comportamientos (behaviours) y la comunicacioacuten entre los agentes (junto con el servicio de paacuteginas amarillas) proporcionan los recursos necesarios para programar un sistema multiagente JADE tambieacuten permite a los agentes cambiar de Host (en J2SE) Un agente puede interrumpir en un momento dado su ejecucioacuten migrar a otro host (sin necesidad de que el coacutedigo esteacute previamente en el host destino) y continuar la ejecucioacuten en el mismo punto en el que la interrumpioacute Esto permite un balanceo de carga ya que permite a los agentes migrar hosts menos cargados El entorno de ejecucioacuten proporciona un marco donde poder ejecutar los agentes y herramientas graacuteficas para su monitorizacioacuten y depuracioacuten Los agentes JADE necesitan del entorno de ejecucioacuten donde poder vivir Cada instancia del entorno de ejecucioacuten se denomina contenedor (container) Al conjunto de los contenedores se le denomina plataforma (platform) y proporciona una capa que oculta a los agentes (y al desarrollador) el entorno donde se ha decidido ejecutar la aplicacioacuten En cada plataforma debe existir un contenedor especial denominado contenedor principal (main container) La principal diferencia del contenedor principal respecto al resto de contenedores es que alberga dos agentes especiales

AMS (Agent Management System) Este agente proporciona el servicio de nombres asegurando que cada agente en la plataforma disponga de un nombre uacutenico Tambieacuten representa la autoridad es posible crear y matar agentes en contenedores remotos requeriendoselo al agente AMS

DF (Directory Facilitator) Proporciona el servicio de Paacuteginas Amarillas Gracias al agente DF un agente puede encontrar otros agentes que provean los servicios necesarios para lograr sus objetivos

28

La caracteriacutestica mas importante del entorno de ejecucioacuten es la interfaz graacutefica que proporciona desde la que podemos controlar y depurar los agentes existentes Todas las herramientas han sido desarrolladas como agentes y siguen sus mismas reglas Disentildeo Arquitectura

Agente usuario

Agente de ontologiacutea

Agente de filtrado

Agente de recuperacioacuten

BD

OntologiacuteaSistema

Motor de buacutesqueda

El sistema esta disentildeado para que un usuario realice alguna buacutesqueda relacionada con alguno de los tres temas propuestos en nuestra base de conocimiento que son Ingenieriacutea de Software Base de Datos y Deportes El sistema esta basado en una arquitectura multiagente la cual se conforma por Agente Usuario Actuacutea de intermediario entre el usuario y el sistema Sus servicios son solicitados por el usuario para resolver las consultas El usuario le suministra una consulta y el sistema le devuelve una lista de documentos que pueden satisfacer sus necesidades Este agente tiene la capacidad de acceder a la base de datos con el objetivo de almacenar yo recuperar resultados Base de Datos Guardaraacute las ultimas buacutesquedas realizadas para su posterior consulta a peticioacuten del usuario Agente de Filtrado Gestiona la recuperacioacuten de documentos y realiza el filtrado de los mismos proporcionados por el Agente de Recuperacioacuten Recibe la peticioacuten del Agente Usuario y a su vez esta es enviada al Agente Ontologiacutea para que este regrese una evaluacioacuten de la consulta y de esta forma conocer si es necesaria una redefinicioacuten de la consulta En caso de ser necesaria se espera recibir el nuevo vector de consulta hasta que se cumpla una de dos opciones el usuario deje de redefinir la consulta o la consulta sea concreta Cuando la consulta sea concreta es enviada de nueva cuenta al Agente Ontologiacutea el cual regresaraacute el Nuevo Vector Expandido Este seraacute enviado al Agente de Recuperacioacuten Cuando el Agente de Recuperacioacuten regrese los urlacutes de los resultados (con sus respectivos vectores de teacuterminos) se realiza una evaluacioacuten de los vectores de cada documento con respecto al vector de buacutesqueda expandida con el objetivo de asignarles una calificacioacuten Gracias a esta calificacioacuten podemos obtener aquellos documentos que mejor cumplan con las expectativas del usuario (Estos documentos son regresados al Agente Usuario) Agente Ontologiacutea Recibe el vector de consulta proporcionado por el Agente de Filtrado La informacioacuten contenida en el vector de consulta es comparada con la existente en nuestra ontologiacutea Una vez verificada la existencia de la informacioacuten del

29

vector consulta dentro de la ontologiacutea este se encarga de devolver la distancia y el umbral al Agente de Filtrado Se espera que este devuelva una peticioacuten para expandir ese mismo vector Puede darse el caso de obtener dos tipos de buacutesquedas una general y otra mucho maacutes definida En cualquiera de los caso obtenemos un nuevo vector de buacutesqueda (con una informacioacuten mejor definida este es el Vector de Buacutesqueda Expandido) que es enviado de regreso al Agente de Filtrado el cual genera una copia y le es enviada al Agente de Recuperacioacuten Ontologiacutea Representa nuestra base de conocimientos Esta compuesta por tres aacutereas de conocimiento las cuales son Ingenieriacutea se Software Bases de Datos y Deportes Para poder representar esta ontologiacutea en un lenguaje entendible para agentes inteligentes se programaraacute bajo los fundamentos de las estructuras RDF contenidas en las especificaciones de XML y siguiendo los estaacutendares de la W3C Agente Recuperacioacuten Realiza la buacutesqueda gracias a la informacioacuten que le es entregada por el Agente de Filtrado (se trata Vector de Buacutesqueda Expandido generado por el Agente de Ontologiacutea) El agente estructura esta informacioacuten y se introduce en un motor de buacutesqueda(diacutegase por ejemplo Google) de tal manera que obtengamos una lista de posibles documentos A cada documento se le asigna un vector de teacuterminos con sus pesos derivados de un anaacutelisis TFIDF para despueacutes regresar las urlacutes con su respectivo vector de teacuterminos al Agente Filtrado RESULTADOS Este proyecto tiene la finalidad de desarrollar el software para un antivirus y un traductor Pero durante los estudios de anaacutelisis de estos dos productos se encontroacute que el software para la buacutesqueda de la informacioacuten tambieacuten puede ser implementada por medio de teacutecnicas de Inteligencia Artificial Para construir el software de aplicacioacuten para estas necesidades se usa la metodologiacutea de cascada Donde los pasos a seguir son el Anaacutelisis Disentildeo Pruebas Implementacioacuten y Mantenimiento Hasta este momento estamos en la etapa de pruebas de algunos moacutedulos de los tres productos IMPACTO El detector de intrusos en una red es de mucha importancia debido a que en la actualidad se han diseminado muchos virus que pueden ser transmitidos a traveacutes de intrusos Hasta la fecha el meacutetodo de proteccioacuten se hace de forma manual La finalidad de este software es automatizar la proteccioacuten El traductor de texto a voz tiene como primera aplicacioacuten el auxilio en la lectura de documentos para las personas invidentes o deacutebiles visuales una segunda aplicacioacuten es la comunicacioacuten con la computadora por medio del lenguaje natura El buscador de informacioacuten es un auxilio en la buacutesqueda de datos en una base de datos de conocimiento Ya que tambieacuten estaacuten proliferando las bibliotecas virtuales es una ayuda en la localizacioacuten de informacioacuten cientiacutefica y un preaacutembulo para un software de apoyo docente BIBLIOGRAFIacuteA [1] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

30

[2] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps[3] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[4] w3c en espantildeol OWL y Web Semaacutentica httpwwww3cesDivulgacionGuiasbrevesWebSemantica

[5] Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

[6] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[7] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[8] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[9] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[10] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[11] Laboratorios Googlehttplabsgooglecompapershtml

[12] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[13] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

[14] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

[15] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps [16] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[18] Trabajos de Agente en JADE http Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

31

[19] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[20] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[21] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[22] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[23] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[24] Laboratorios Googlehttplabsgooglecompapershtml

[25] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[26] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

  • En este reporte teacutecnico se presenta la descripcioacuten general anaacutelisis y estado actual de de los trabajos terminales TT2006135 TT20060097 y TT20060068 que tienen por titulo ldquoSistema prototipo de deteccioacuten de intrusos en la red utilizando agentes inteligentesrdquo rdquoProcesamiento digital de imaacutegenes para la conversioacuten de texto a vozrdquo y ldquoSistema de buacutesqueda de informacioacuten por conceptos en la webrdquo respectivamente Los prototipos que se obtendraacuten seraacuten un software robusto que se desarrollaraacuten con teacutecnicas de inteligencia artificial como Agentes inteligentes y Redes neuronales
  • Estructura de un sistema neuronal artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
    • Estado Del Arte
      • Estructura de un sistema neuronal artificial
        • Sistemas paralelos distribuidos y adaptativos
          • Modelo estaacutendar de neurona artificial
            • Sigmoidal logariacutetmica
              • Empleo del perceptroacuten para reconocer funciones loacutegicas
              • Algoritmo de aprendizaje del perceptroacuten
                • Objetivo General
                • Estado Del Arte
                • A continuacioacuten se mencionan algunos de ellos
                  • Buscador muacuteltiple Copernic 2001 Pro
                  • Lets Browse
                  • Agentes de Informacioacuten
                    • Marco Conceptual
                      • Clases y Propiedades
                      • El sistema de escritura de datos [type system]
                      • Clases y Recursos como Conjuntos y Elementos
                        • Ontologiacuteas en la Representacioacuten del Conocimiento
                          • LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES
                          • JADE (Java Agent DEvelopment Framework)
                            • Disentildeo
                            • Arquitectura
Page 13: INSTITUTO POLITÉCNICO NACIONALsappi.ipn.mx/cgpi/archivos_anexo/20061387_3286.pdf · La comunicación del hombre con la computadora por medio del lenguaje natural, es la finalidad

13

con el entorno es decir que no se conecta directamente ni a organos sensores o efectores Esta capa proporciona a la red neuronal grados de libertad adicionales gracias a los cuales puede encontrar representaciones internas correspondientes a determinados rasgos del entorno proporcionando una mayor riqueza computacional (ver figura 25)

Informacioacuten Capa de salida

(efectora) Capa oculta Capa de entrada (procesamiento) (sensorial)

Figura 25 Arquitectura unidireccional de tres capas de entrada oculta y de salida

Las conexiones entre las neuronas pueden ser excitadoras o inhibidoras un peso sinaacuteptico negativo define una conexioacuten inhibidora mientras uno positivo determina una conexioacuten excitadora Habitualmente no se suele definir una conexioacuten como de un tipo u otro sino que por medio del aprendizaje se obtiene un valor para el peso que incluye signo y magnitud

El perceptroacuten simple Este modelo neuronal fue introducido por Rosenblatt a finales de los antildeos cincuenta Dicha estructura se inspira en las primeras etapas de procesamiento de los sistemas sensoriales de los animales (por ejemplo la visioacuten) en los cuales la infomacioacuten va atravesando sucesivas capas de neuronas que realizan un procesamiento progresivamente de maacutes alto nivel Un perceptroacuten simple es un modelo unidireccional compuesto por dos capas de neuronas una sensorial o de entrada y otra de salida A continuacioacuten se muestra en la figura 26 su representacioacuten y la funcion de transferencia que utiliza

Figura 26 a) Las neuronas de entrada no realizan ninguacuten coacutemputo uacutenicamente enviacutean la informacioacuten a las neuronas de salida b) la funcioacuten de activacioacuten de las neuronas de la capa de salida es de tipo escaloacuten

Capa de entrada

Capa de salida

f(x) x

Funcioacuten escaloacuten

a) b)

14

El perceptroacuten puede utilizarse tanto como clasificador como para la representacioacuten de funciones booleanas pues su neurona es esencialmente de tipo MacCulloch-Pitts es decir de salida binaria La importancia histoacuterica del perceptroacuten radica en su caraacutecter de dispositivo entrenable ya que el algoritmo de aprendizaje que desarrollo Rosenblatt permite determinar automaacuteticamente los pesos sinaacutepticos que clasifican un conjunto de patrones a partir de un conjunto de ejemplos etiquetados (a esto se le llama red neuronal supervisada y el perceptron simple es de este tipo) Ahora se mostraraacute que un perceptroacuten permite realizar tareas de clasificacioacuten Cada neurona del perceptroacuten representa una determinada clase de modo que dado un vetor de entrada una cierta neurona responde con 0 si no pertenece a la clase que representa y con un 1 si siacute pertenece Es faacutecil ver que una neurona tipo perceptroacuten solamente permite discriminar entre dos clases linealmente separables (es decir cuyas regiones de decisioacuten pueden ser separadas mediante una uacutenica condicioacuten lineal o hiperplano que es una liacutenea recta si trabajamos en dos dimensiones) Sea una neurona tipo perceptroacuten de dos entradas x1 y x2 con salida y cuya operacioacuten se define por lo tanto como

y = H(w1x1+w2x2 - ө) o bien 1 si w1x1+w2x2 geӨ y = 0 si w1x1+w2x2 ltӨ

Si consideramos x1 y x2 situadas sobre los ejes de abscisas y ordenadas en el plano la condicioacuten

w1x1+ w2x2 -Ө = 0 rarr x2 = - (w1 w2) x1 + Ө w2 representa una recta (hiperplano si trabajamos con n entradas) que divide el plano en dos regiones que son aquellas para las que la neurona proporciona una salida 0 o 1 respectivamente como se muestra en la figura 27

x x

x x x

x x x

x

x

oo

oo

o o

o

X1

X2

Regioacuten w1x1+w2x2 geӨ Regioacuten w1x1+w2x2 ltӨ

Figura 27 Una neurona tipo perceptroacuten representa un discriminador lineal que separa dos regiones en el espacio que representan dos diferentes clases de patrones En esta graacutefica x = lsquo1rsquo y o = lsquo0rsquo

15

Empleo del perceptroacuten para reconocer funciones loacutegicas -Funcion linealmente separable Consideremos la funcioacuten loacutegica NAND2 (AND negada de dos entradas) que representamos sobre un plano en la graacutefica 3 que se presenta en seguida

x (10) o (11)

x (00)

x (01) X1

X2

Figura 28 Funcioacuten loacutegica NAND de dos entradas En la graacutefica x = lsquo1rsquo y o = lsquo0rsquo

Se puede ver que en este caso existen paraacutemetros w1 w2 y Ө que permiten una recta que separa perfectamente las regiones correspondientes a los valores loacutegicos 0 y 1 Y por lo tanto se dice que la funcioacuten loacutegica NAND es linealmente separable -Funcioacuten no separable linealmente

Ahora consideremos la funcioacuten loacutegica or-exclusivo (XOR) y representandola en un plano en la figura 29

x (10) o (11)

o (00)

x (01) X1

X2

Figura 29 Funcioacuten loacutegica XOR de dos entradas que no es linealmente separable

16

Al ser XOR no linealmente separable se dice que ldquola clase de funciones no separables linealmente no pueden ser representadas por un perceptroacuten simplerdquo El perceptroacuten presenta serias limitaciones pues solamente puede representar funciones linealmentes separables Y aunque pueda aprender automaacuteticamente a representar complejas funciones booleanas o resolver con eacutexito muchos problemas de clasificacioacuten con un cierto algoritmo en ocasiones fallara draacutesticamente Minsky (que es uno de los padres de la inteligencia artificial) y Papera estudiaron en profundidad el perceptroacuten y en 1969 publicaron un exhaustivo trabajo donde exhibian las limitantes del modelo en lo que resultoacute decisivo para que muchos de los recursos que se destinaban a su investigacioacuten se desviara a otras aacutereas Una solucioacuten para las limitantes del perceptroacuten simple puede consistir en incluir maacutes capas en la arquitectura con lo que tendremos un perceptroacuten multicapa A finales de los antildeos sesenta ya se apuntaba como solucioacuten a las limitaciones del perceptroacuten introducir capas ocultas pero el problema estaba en que no se teniacutea un algoritmo de aprendizaje para el perceptroacuten multicapa (con capas ocultas) Dicho algoritmo fue propuesto por Paul Verbos alrededor de 1974 pero fue preciso hasta mediados de los ochenta cuando el grupo PDP redescubriera un algoritmo similar al cual denominaron Back-Propagation o BP y dieran a conocer a la comunidad internacional su gran potencial para la resolucioacuten de problemas praacutecticos

Algoritmo de aprendizaje del perceptroacuten El del perceptroacuten es un algoritmo de aprendizaje de los denominados por correccion de errores Los algoritmos de este tipo ajustan los pesos en proporcioacuten a la diferencia existente entre la salida actual de la red y la salida deseada con el objetivo de minimizar el error actual de la red Definicioacuten del algoritmo de aprendizaje Sea un conjunto de p patrones xn n=1hellipp con sus salidas deseadas tn Tanto las entradas como las salidas solamente pueden tomar los valores -1 o 1 Se tiene una arquitectura de perceptroacuten simple con pesos iniciales aleatorios y se requiere que clasifique correctamente todos los patrones del conjunto de aprendizaje (solo si son linealmente separables) Ahora actuaremos del siguiente modo ante la presentacioacuten del patron n-eacutesimo si la respuesta que proporciona el perceptroacuten es correcta no actualizaremos los pesos si es incorrecta los modificaremos seguacuten la regla de Hebb aplicada a nuestro caso Primero se muestra la regla de Hebb y despueacutes la regla modificada para el perceptroacuten simple Regla de Hebb

∆wij = ξyixjDonde

17

o wij corresponde a los pesos de una entrada j por la salida i de la neurona

o ξ se denomina ritmo de aprendizaje que su valor suele estar entre 1 y 0 Regla modificada para el perceptroacuten simple

2ξtnixnj si yn

ine tni ∆wn

ij(t)= 0 si yn

i= tni que puede reescribirse del siguiete modo que es la forma usual de expresar la regla del perceptroacuten

∆wnij(t)= 2ξ(tni - yn

i)xnj

Es importante mencionar que el proceso de aprendizaje es iterativo se

parte de una configuracioacuten sinaacuteptica de partida (normalmente de pesos pequentildeos aleatorios) y se presentan una y otra vez los patrones para que los pesos se ajusten iterativamente seguacuten forma usual de la regla del perceptroacuten hasta que todos queden bien clasificados El hiperplano que establece el liacutemite entre dos clases se desplaza lentamente hasta conseguir separarlas por completo (si es posible) como se ve en la figura 210

t= 115

x x

x x x

x x x

x

x

o

o o

o o o o

o

o o

o

o

o

o

o

o

o

X2

t= 21

t= 0 t= 4

X1

Figura 210 Regiones de decisioacuten que establece iterativamente el perceptroacuten durante el aprendizaje (en la iteracioacuten 115 ha conseguido separar ya las dos clases)

Avances En este capiacutetulo se haraacute una descripcioacuten de los avances que se han hecho hasta el momento Se hablaraacute acerca del entrenamiento de la red neuronal del sistema el reconocimiento de caracteres tanto con la red neuronal como con los clasificadores ya expuestos y el tratamiento de imaacutegenes para eliminar el ruido tipo sal y pimienta Reconocimiento de caracteres Se han hecho avances acerca del reconocimiento de caracteres utilizando redes neuronales y clasificadores diversos A continuacioacuten se exponen dichos avances

Entrenamiento de la red neuronal Para entrenar la red neuronal se utilizoacute el algoritmo de retropropagacioacuten expuesto en el capiacutetulo 1 Se disentildeoacute un programa en Java que permite entrenar una red neuronal de 3

18

capas La cantidad de clases a discriminar es variable y para este caso se utilizoacute una matriz de 5x8 es decir se tomaron 40 rasgos de entrada

Utilizando la red neuronal para reconocer caracteres A continuacioacuten se muestra en la imagen 211 el programa disentildeado en Java que permite discriminar un nuacutemero variable de clases Para este caso se eligioacute discriminar entre los diacutegitos del 0 al 9 El programa para reconocer los 128 caracteres referentes al sintetizador de voz tendraacute una interfaz similar con la diferencia de que la rejilla para ingresar el patroacuten a reconocer seraacute de 20x20 El programa mostrado fue programado tanto para entrenar la red como para reconocer los diacutegitos Se puede elegir entre los entrenamientos hechos para probar la efectividad de la red Las estadiacutesticas del entrenamiento elegido se muestran en la parte inferior de la pantalla

Imagen 211 Reconocimiento de los diacutegitos del 0 al 9 utilizando una red neuronal de 3 capas

19

Utilizando los clasificadores para reconocer caracteres Dentro de las teacutecnicas de reconocimiento de patrones existen diferentes clasificadores que nos permiten a partir de un conjunto de entrenamiento (en eacuteste caso un conjunto de tipos de letras que deseamos reconocer) saber a queacute clase pertenece un patroacuten de prueba que se introduce

Imagen 212 Un ejemplo de un clasificador KNN con un valor de K=3 y usando la meacutetrica City-Block para clasificar el patroacuten de prueba pruebabmp entre tres clases

En la imagen 212 se muestra como se puede clasificar un caraacutecter escalado de la imagen prueba 4bmp dentro de las tres clases existentes Se observa que si se puede clasificar este tipo de patrones pero veamos un ejemplo donde no sea posible clasificar un patroacuten de prueba y por queacute

Imagen 213 Un ejemplo de un clasificador KNN con un valor de K=5 y usando la meacutetrica Euclidiana para clasificar el patroacuten de prueba prueb3bmp entre tres clases El patroacuten no fue reconocido correctamente

20

Ahora como se observa no se pudo clasificar correctamente el patroacuten de prueba ya que pertenece claramente a la clase 3 pero por el clasificador que usamos o por el nuacutemero de K-vecinos o por el tipo de meacutetrica usada sucedioacute que en su mayoriacutea eran de la clase 2 y no de la clase 3 Tal vez si se hubiera elegido un valor de K menor a 5 tendriacutea maacutes posibilidades de clasificar correctamente Finalmente usar este tipo de teacutecnicas para reconocer caracteres es muy bueno ya que permite reconocer letras que se encuentran rotadas escaladas o trasladadas por una teacutecnica matemaacutetica llamada Momentos de Hu pero al tener una situacioacuten donde la imagen de prueba se encuentra exactamente a la misma distancia de dos o mas clases se crea el problema de no saber a que clase clasificar dicho patroacuten

Tratamiento digital de las imaacutegenes a capturar A continuacioacuten se muestra en la imagen 214 un programa que se codificoacute en C++ Builder y permite tratar digitalmente imaacutegenes BMP con la finalidad de eliminar el ruido pasarlas a escala de grises y binarizarlas El programa es capaz de generar histogramas de color

Imagen 214 Programa para tratar imaacutegenes digitalmente

21

CAPIacuteTULO 3 Buscadores La informacioacuten almacenada tendriacutea poco valor si no podemos consultarla buscar los datos en una base de datos o en muchas bases de datos que tienen conexioacuten por medio de la web es lo que nos permite explotar la informacioacuten Sin embargo la buacutesqueda seraacute eficiente si la respuesta del buscador es lo maacutes especifica o cercana a los temas solicitados Por lo que el software con aplicacioacuten de buscador es importante desarrollar un proceso para su creacioacuten Objetivo General Desarrollar un sistema de buacutesqueda de informacioacuten por conceptos en la Web basado en agentes inteligentes mediante la aplicacioacuten de ontologiacuteas Estado Del Arte Existen algunos sistemas que proporcionan buacutesquedas de informacioacuten basados en algunas de las tecnologiacuteas que vamos a utilizar Es habitual encontrar este tipo de buscadores y algunos otros similares bautizados como Megabuscadores o Multibuscadores a pesar de que estos teacuterminos no sean los maacutes idoacuteneos por lo que al hablar de este tipo de sistemas podemos referirlos como Buscadores Muacuteltiples en virtud de las caracteriacutesticas de su funcionamiento A continuacioacuten se mencionan algunos de ellos

Buscador muacuteltiple Copernic 2001 Pro Copernici producto de la empresa canadiense Copernic Technologies es un agente buscador que transfiere una ecuacioacuten de buacutesqueda a un conjunto de buscadores de manera simultaacutenea recupera las referencias pertinentes y las ordena seguacuten el grado medio de relevancia obtenido de cada uno de los buscadores La empresa creadora de Copernic se constituyoacute en 1996 con el propoacutesito de desarrollar soluciones innovadoras en tecnologiacuteas de agentes de buacutesqueda para conseguir un acceso y una gestioacuten eficientes de la gran masa de informacioacuten presente en Internet El programa se desarrolloacute el antildeo siguiente en una versioacuten experimental y se puso al alcance del puacuteblico en noviembre de 1998 Desde entonces se han lanzado versiones con elementos nuevos la mayoriacutea de los cuales no obstante soacutelo estaacuten disponibles en las ediciones comerciales La edicioacuten gratuita ofrece los servicios baacutesicos de consulta y con la intencioacuten de persuadir a los posibles compradores de las ediciones comerciales da una idea bastante aproximada de las posibilidades del programa completo

Lets Browse Como en otros medios (por ejemplo la televisioacuten) la navegacioacuten en Internet puede ser realizada por grupos de gente [Lieberman et al 1997] Lets browse muestra como un agente puede asistir a un grupo de gente en su navegacioacuten sugirieacutendoles materiales nuevos que puedan ser de intereacutes comuacuten entre ellos

Este trabajo es una extensioacuten del agente Letizia [Lieberman 1995] el cual selecciona paacuteginas de Web Letizia inicia una buacutesqueda por niveles visita las ligas que encuentra a partir de la paacutegina que su usuario esteacute revisando y selecciona aquellas que sean similares a los intereses que ha aprendido de su usuario (observando su navegacioacuten) Posteriormente muestra sus recomendaciones en un canal de navegacioacuten

22

El trabajo del agente consiste en seleccionar de la misma forma que Letizia lo hace aquellas paacuteginas que mejor satisfagan los intereses de todos los participantes Las caracteriacutesticas de Letrsquos browse son la deteccioacuten automaacutetica de la presencia de usuarios navegacioacuten automaacutetica (en canal de navegacioacuten) el despliege dinaacutemico de las preferencias de los usuarios y la explicacioacuten de las recomendaciones Permite ademaacutes revisar las paacuteginas desde el punto de vista de otra persona (con sus preferencias) y asiacute estimar cual seriacutea su posible opinioacuten acerca de dicha paacutegina auacuten cuando aquella persona no la haya revisado anteriormente

Agentes de Informacioacuten Un agente de informacioacuteiin es utilizado para organizar los espacios de informacioacuten del usuario y facilitar su explotacioacuten En el WWW (World Wide Web) se estaacuten implementando diversos agentes de informacioacuten El Agente Letizia [Lieberman 1995] que existe en un navegador de Web anticipa queacute artiacuteculos pueden ser de intereacutes para el usuario basaacutendose en las conductas pasadas del usuario Las paacuteginas que cree son de intereacutes del usuario Letizia las despliega en una ventana de sugerencias por unos instantes Marco Conceptual Actualmente para poder hacer la consulta de cualquier tipo de informacioacuten en Internet la mayoriacutea de las personas recurre a los motores de buacutesquedas conocidos como Google Yahoo Altavista por mencionar algunos siendo que estos usan diferentes meacutetodos para llegar a su objetivo podemos darnos cuenta que arrojan distintos resultados uno de otro que en el mejor de los casos coinciden en un porcentaje muy poco satisfactorio con la buacutesqueda en cuestioacuten con lo que concluimos que una respuesta a esta falta de precisioacuten en cuanto a la buacutesqueda de un tema en especial es mejor la buacutesqueda de conceptos lo cual permite al usuario acercarse maacutes al tema de su intereacutes Es importante enfocar nuestra solucioacuten apoyaacutendonos en un motor de buacutesqueda y aplicando herramientas como los Agentes que nos permitan recopilar la informacioacuten maacutes precisa de cada buacutesqueda a traveacutes de un algoritmo propio obteniendo resultados maacutes cercanos a los deseados ya que estos provienen de muacuteltiples documentos ahorrando tiempo y ganando precisioacuten a la vez Muy frecuentemente encontramos que cuando se trata de buacutesquedas en Internet a traveacutes de los motores de buacutesqueda populares los usuarios hacen consultas de diversas paginas y es muy difiacutecil llevar una lista de todos los sitios visitados o de aquellos que nos mostraron la informacioacuten maacutes adecuada nuestro sistema es capaz de registrar dentro de una base de datos un iacutendice de todos los sitios que se obtuvieron en la buacutesqueda de un tema o concepto con lo que el usuario no tendraacute que realizar una ldquonuevardquo buacutesqueda de un tema antes consultado sino que tendraacute a la mano todos los sitios que arrojoacute la primera buacutesqueda Marco teoacuterico

Descripcioacuten de RDF

El Resource Description Frameworiiik (RDF) es un fundamento para el procesamiento de metadatos proporciona interoperabilidad entre aplicaciones que intercambian informacioacuten legible por maacutequina en la Web RDF utiliza XML para intercambiar descripciones de recursos Web pero los recursos descritos pueden ser de cualquier tipo

23

incluyendo recursos XML y no-XML RDF resalta las facilidades para hacer posible el procesamiento automaacutetico de los recursos Web RDF puede utilizarse en diferentes aacutereas de aplicacioacuten por ejemplo en la recuperacioacuten de recursos para proporcionar mejores capacidades a los motores de buacutesqueda en catalogacioacuten para la descripcioacuten de contenido y relaciones de contenido accesibles en un sitio Web particular en una paacutegina o biblioteca digital a traveacutes de agentes de software inteligente para facilitar que el conocimiento se comparta e intercambie en la valoracioacuten de contenido en la descripcioacuten de colecciones de paacuteginas que representan un documento loacutegico individual para la descripcioacuten de los derechos de propiedad intelectual de las paacuteginas Web y para expresar las preferencias de privacidad de un usuario asiacute como las poliacuteticas de privacidad de un sitio Web Las descripciones utilizadas por estas aplicaciones pueden modelarse como relaciones entre recursos Web El modelo de datos de RDF tal y como se especifica en RDFMS define un modelo simple para describir las relaciones entre recursos en teacuterminos de propiedades y valores designadas Las propiedades RDF pueden entenderse como atributos de un recurso y en este sentido corresponden con los tradicionales pares atributo-valor Las propiedades RDF tambieacuten representa relaciones entre recursos De esta forma el modelo de datos RDF puede parecer un diagrama entidad-relacioacuten El modelo de datos RDF sin embargo no proporciona mecanismos para declarar estas propiedades ni proporcionan ninguacuten mecanismo para definir las relaciones entre estas propiedades y otros recursos Este es el papel [la funcioacuten] del Esquema RDF

Las comunidades de descripcioacuten de recursos necesitan la habilidad para decir ciertas cosas sobre ciertas clases de recursos Para describir recursos bibliograacuteficos por ejemplo son habituales atributos descriptivos tales como autor [author] tiacutetulo [title] y materia [subject] Para la certificacioacuten digital se necesitan muchas veces atributos tales como esquema simple de deteccioacuten de errores [checksum] y autorizacioacuten [authorization] La declaracioacuten de estas propiedades (atributos) y su semaacutentica correspondiente se definen en el contexto de RDF como un Esquema RDF Un esquema define no soacutelo las propiedades de un recurso (ej tiacutetulo autor materia tamantildeo color etc) sino que puede tambieacuten definir los tipos de recursos que se describiraacuten (libros paacuteginas Web personas empresas etc)

Los Esquemas RDF podriacutean contrastarse con las Definiciones del Tipo de Documentos (DTDs) de XML y los Esquemas XML A diferencia de una DTD o Esquema XML que dan restricciones especiacuteficas en la estructura de un documento XML un Esquema RDF proporciona informacioacuten sobre la interpretacioacuten de una sentencia dada en un modelo de datos RDF Mientras un Esquema XML puede utilizarse para validar la sintaxis de una expresioacuten RDFXML un esquema sintaacutectico soacutelo no es suficiente para los objetivos de RDF Los Esquemas RDF pueden tambieacuten especificar restricciones que deben seguirse por estos modelos de datos

Clases y Propiedades Un Esquema RDF se expresa a traveacutes de un modelo de datos descrito en la especificacioacuten del Modelo y la Sintaxis RDF [RDFMS] El lenguaje de descripcioacuten del esquema es un simple conjunto de recursos y propiedades definidos por la Especificacioacuten del Esquema RDF y la parte impliacutecita de cada modelo RDF que utiliza la mecaacutenica del esquema RDF

24

El sistema de escritura de datos [type system] El Esquema RDF definido en esta especificacioacuten es una coleccioacuten de recursos RDF que puede utilizarse para describir propiedades de otros recursos RDF (incluyendo propiedades) que definene vocabularios RDF de aplicacioacuten especiacutefica El nuacutecleo del vocabulario del esquema se define en un namespace denominado aquiacute informalmente rdfs e identificado por el URI de referencia httpwwww3org200001rdf-schema Esta especificacioacuten utiliza tambieacuten el prefijo rdf para referirse al namespace principal RDF httpwwww3org19990222-rdf-syntax-ns

Como se describe en la especificacioacuten del modelo y la sintaxis [RDFMS] los recursos pueden ser objetos especiacuteficos de una categoriacutea [instances] de una o maacutes clases esto se indica con la propiedad rdftype Las clases se organizan muchas veces de una forma jeraacuterquica por ejemplo la clase Dog [perro] podriacutea considerarse subclase de Mammal [mamiacutefero] que a su vez es una subclase de Animal dando a entender que cualquier recurso que esteacute en rdftype Dog se considera tambieacuten que estaacute en rdftype AnimalEsta especificacioacuten describe una propiedad rdfssubClassOf para indicar dichas relaciones entre clases

El sistema de escritura [type system] del Esquema RDF es similar al sistema de los lenguajes de programacioacuten orientados a objetos tales como Java Sin embargo RDF se diferencia de muchos de esos sistemas en que en lugar de definir una clase en teacuterminos de propiedades sus objetos especiacuteficos de una categoriacutea [instances] pueden tener un esquema RDF que definiraacute las propiedades en teacuterminos de clases de recurso a los que se aplican Este es el papel de las restricciones rdfsdomain y de rdfsrange

Por ejemplo podemos definir que la propiedad author tenga un dominio de Book y un alcance de Literal mientras que un sistema OO claacutesico podriacutea definir tiacutepicamente una clase Book con un atributo denominado author de tipo Literal

Clases y Recursos como Conjuntos y Elementos El siguiente esquema ilustra el concepto de clase subclase y recurso Una clase se describe por un rectaacutengulo redondeado un recurso se describe por un punto grande En la figura abajo se han dibujado flechas desde un recurso a una clase que define Una subclase se presenta en un rectaacutengulo redondeado (la subclase) completamente incluido en otro (la superclase) Si un recurso estaacute dentro de una clase entonces existe una propiedad rdftype o expliacutecita o impliacutecita de aquel recurso cuyo valor es un recurso que define la clase que contiene (Estas propiedades se muestran como arcos en la representacioacuten graacutefica directamente etiquetada en el Esquema 2) El recurso RDF representado en el esquema 1 se describe tanto en el resto de esta especificacioacuten como en la especificacioacuten del Modelo y Sintaxis RDF

Ontologiacuteas en la Representacioacuten del Conocimiento En estos uacuteltimos antildeos se incrementoacute la cantidad de informacioacuten en la Internet lo cual motivoacute el incremento de la complejidad y la diversidad de la informacioacuten Esto tambieacuten motivoacute el intereacutes de automatizar muchas actividades que tradicionalmente se realizan en forma manual La principal motivacioacuten en el uso de las ontologiacuteas es que permiten compartir y reutilizar conocimiento en un dominio De ahiacute el intereacutes de muchos

25

investigadores en el aacuterea de inteligencia artificial para tratar de aplicar las ontologiacuteas en la representacioacuten de conocimiento Las ontologiacuteas son un elemento importante en la Web Semaacutentica y es un teacutermino filosoacutefico que trata sobre la naturaleza de la existencia y los tipos de objetos que existen Tambieacuten la ontologiacutea se puede definir como una especificacioacuten expliacutecita de una conceptualizacioacuten compartida La conceptualizacioacuten se refiere a un modelo abstracto de un fenoacutemeno en el mundo en donde se tienen que identificar los conceptos relevantes de este fenoacutemeno El teacutermino expliacutecito significa queacute tipos de conceptos son usados y las restricciones de estos conceptos Y por uacuteltimo el teacutermino compartido se refiere a que las ontologiacuteas capturan conocimiento que es aceptado por todos y no es individual de un grupo Actualmente se les estaacute dando maacutes uso a las ontologiacuteas en el campo de la Inteligencia Artificial En este campo se define la ontologiacutea como una descripcioacuten formal y expliacutecita de conceptos de un dominio (classes a las que nos referiremos como conceptos) propiedades de cada concepto las cuales describen las caracteriacutesticas y atributos de los conceptos (slots llamados tambieacuten como propiedades o roles) y restricciones de las propiedades (facets conocidas como restricciones) La informacioacuten que es representada a traveacutes de los lenguajes semaacutenticos puede ser compartida entre aplicaciones como los agentes

OWL y Web Semaacutentica

La Web Semaacutentica es una Web extendida dotada de mayor significado en la que cualquier usuario en Internet podraacute encontrar respuestas a sus preguntas de forma maacutes raacutepida y sencilla gracias a una informacioacuten mejor definida Al dotar a la Web de maacutes significado y por lo tanto de maacutes semaacutentica se pueden obtener soluciones a problemas habituales en la buacutesqueda de informacioacuten gracias a la utilizacioacuten de una infraestructura comuacuten mediante la cual es posible compartir procesar y transferir informacioacuten de forma sencilla Esta Web extendida y basada en el significado se apoya en lenguajes universales que resuelven los problemas ocasionados por una Web carente de semaacutentica en la que en ocasiones el acceso a la informacioacuten se convierte en una tarea difiacutecil y frustrante

LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES La comunicacioacuten es uno de los aspectos importantes dentro de una comunidad de agentes la cual permitiraacute compartir y enviar mensajes entre agentes Los meacutetodos tradicionales permiten la comunicacioacuten entre los agentes pero eacutestos no son suficientes para lograr un comportamiento social entre los agentes para ello es necesario que los mensajes tengan un significado y contenido semaacutentico Se han desarrollado varios lenguajes los cuales son usados para el enviacuteo de mensajes a continuacioacuten hablaremos de dos de ellos KQML Knowledge Query and Manipulation Language (KQML) es uno de los lenguajes que nos provee la estructura para enviar mensajes entre agentes Dentro de sus principales caracteriacutesticas tenemos que es independiente de la sintaxis del contenido y la ontologiacutea

26

que se utilizaraacute Asiacute mismo es independiente del mecanismo de transporte (TCPIP SMTP IIOP etc) e independiente del contenido del lenguaje (KIF SQL STEP Prolog etc) KQML fue desarrollado por el consorcio DARPA Knowledge Sharing Effort (KSE) cuyo principal objetivo fue desarrollar una base tecnoloacutegica para construir en forma progresiva sistemas cada vez con maacutes funcionalidad complejidad y amplitud KQML provee un lenguaje y un protocolo para intercambiar informacioacuten entre agentes inteligentes y para lograr este intercambio se tiene que compartir una sintaxis y una semaacutentica comuacuten para que los mensajes sean entendidos por los agentes Al lenguaje KQML se le dividioacute en tres capas la capa de contenido alberga el contenido del mensaje que es especificado en cualquier formato ya sea texto o binario La capa de comunicacioacuten contiene paraacutemetros como el identificador uacutenico asociado a la comunicacioacuten identidad del remitente e identidad del destinatario La capa de mensaje define tanto los diferentes tipos de interaccioacuten que se pueden establecer entre los agentes como los protocolos que se pueden establecer entre los agentes Tambieacuten incluye otras caracteriacutesticas como el lenguaje de representacioacuten o la ontologiacutea siendo ambos opcionales

JADE (Java Agent DEvelopment Framework)

JADEiv (Java Agent DEvelopment Framework) es un middleware que proporciona tanto un entorno de desarrollo como un entorno de ejecucioacuten para la realizacioacuten y mantenimiento de sistemas multiagente El entorno de desarrollo estaacute formado por una serie de libreriacuteas en Java que permiten la implementacioacuten de agentes de manera limpia e independiente de la plataforma sobre la que se va a ejecutar El entorno de ejecucioacuten permite a los agentes vivir y comunicarse entre ellos Estaacute realizado enteramente en Java y proporciona una serie de herramientas que permiten al desarrollador controlar y depurar a los agentes en tiempo real JADE es un middleware desarrollado por TILAB para el desarrollo de aplicaciones distribuidas multiagente JADE proporciona tanto el entorno de desarrollo para la creacioacuten de aplicaciones basadas en agentes como el entorno de ejecucioacuten JADE presenta las siguientes caracteriacutesticas

P2P Arquitectura peer-to-peer cada agente puede tomar la iniciativa en una comunicacioacuten o bien responder a peticiones que le hagan otros agentes

Interoperabilidad JADE cumple con las especificaciones FIPA por lo que los agentes desarrollados en JADE pueden interactuar con otros agentes que no tienen porque estar desarrollados con JADE aunque si deben seguir las especificaciones FIPA

Portabilidad La API que proporciona JADE es independientemente de la red sobre la que va a operar asiacute como de la versioacuten de Java utilizada teniendo la misma API para J2EE J2SE y J2ME

27

Intuitiva JADE se ha desarrollado para ofrecer una API faacutecil de aprender y sencilla de manejar

Los agentes JADE tienen nombres uacutenicos y se permite a cada agente descubrir a otros agentes y comunicarse con ellos mediante comunicaciones punto a punto Los agentes proporcionan servicios cada agente puede buscar a otros dependiendo de los servicios que proporcionen otros agentes La comunicacioacuten entre agentes se lleva a cabo a traveacutes de mensajes asiacutencronos es decir el agente que enviacutea el mensaje y el destinatario del mensaje no tienen porqueacute estar disponibles al mismo tiempo Es maacutes el destinatario no tiene porqueacute existir en ese instante Los mensajes se pueden enviar a un agente en concreto o se pueden enviar a agentes que se desconocen pero se sabe que poseen unas ciertas caracteriacutesticas JADE proporciona mecanismos de seguridad ya que habraacute agentes a los que no se les esteacute permitido comunicarse con otros agentes de manera que una aplicacioacuten puede verificar la identidad del receptor y del agente que enviacutea el mensaje y no dejar realizar actuaciones no permitidas para un determinado agente La estructura de los mensajes se basa en el lenguaje ACL (Agent Communication Lenguaje) que ha sido definido por la FIPA JADE facilita mecanismos para el desarrollo de los objetivos que deben alcanzar los agentes Los comportamientos (behaviours) y la comunicacioacuten entre los agentes (junto con el servicio de paacuteginas amarillas) proporcionan los recursos necesarios para programar un sistema multiagente JADE tambieacuten permite a los agentes cambiar de Host (en J2SE) Un agente puede interrumpir en un momento dado su ejecucioacuten migrar a otro host (sin necesidad de que el coacutedigo esteacute previamente en el host destino) y continuar la ejecucioacuten en el mismo punto en el que la interrumpioacute Esto permite un balanceo de carga ya que permite a los agentes migrar hosts menos cargados El entorno de ejecucioacuten proporciona un marco donde poder ejecutar los agentes y herramientas graacuteficas para su monitorizacioacuten y depuracioacuten Los agentes JADE necesitan del entorno de ejecucioacuten donde poder vivir Cada instancia del entorno de ejecucioacuten se denomina contenedor (container) Al conjunto de los contenedores se le denomina plataforma (platform) y proporciona una capa que oculta a los agentes (y al desarrollador) el entorno donde se ha decidido ejecutar la aplicacioacuten En cada plataforma debe existir un contenedor especial denominado contenedor principal (main container) La principal diferencia del contenedor principal respecto al resto de contenedores es que alberga dos agentes especiales

AMS (Agent Management System) Este agente proporciona el servicio de nombres asegurando que cada agente en la plataforma disponga de un nombre uacutenico Tambieacuten representa la autoridad es posible crear y matar agentes en contenedores remotos requeriendoselo al agente AMS

DF (Directory Facilitator) Proporciona el servicio de Paacuteginas Amarillas Gracias al agente DF un agente puede encontrar otros agentes que provean los servicios necesarios para lograr sus objetivos

28

La caracteriacutestica mas importante del entorno de ejecucioacuten es la interfaz graacutefica que proporciona desde la que podemos controlar y depurar los agentes existentes Todas las herramientas han sido desarrolladas como agentes y siguen sus mismas reglas Disentildeo Arquitectura

Agente usuario

Agente de ontologiacutea

Agente de filtrado

Agente de recuperacioacuten

BD

OntologiacuteaSistema

Motor de buacutesqueda

El sistema esta disentildeado para que un usuario realice alguna buacutesqueda relacionada con alguno de los tres temas propuestos en nuestra base de conocimiento que son Ingenieriacutea de Software Base de Datos y Deportes El sistema esta basado en una arquitectura multiagente la cual se conforma por Agente Usuario Actuacutea de intermediario entre el usuario y el sistema Sus servicios son solicitados por el usuario para resolver las consultas El usuario le suministra una consulta y el sistema le devuelve una lista de documentos que pueden satisfacer sus necesidades Este agente tiene la capacidad de acceder a la base de datos con el objetivo de almacenar yo recuperar resultados Base de Datos Guardaraacute las ultimas buacutesquedas realizadas para su posterior consulta a peticioacuten del usuario Agente de Filtrado Gestiona la recuperacioacuten de documentos y realiza el filtrado de los mismos proporcionados por el Agente de Recuperacioacuten Recibe la peticioacuten del Agente Usuario y a su vez esta es enviada al Agente Ontologiacutea para que este regrese una evaluacioacuten de la consulta y de esta forma conocer si es necesaria una redefinicioacuten de la consulta En caso de ser necesaria se espera recibir el nuevo vector de consulta hasta que se cumpla una de dos opciones el usuario deje de redefinir la consulta o la consulta sea concreta Cuando la consulta sea concreta es enviada de nueva cuenta al Agente Ontologiacutea el cual regresaraacute el Nuevo Vector Expandido Este seraacute enviado al Agente de Recuperacioacuten Cuando el Agente de Recuperacioacuten regrese los urlacutes de los resultados (con sus respectivos vectores de teacuterminos) se realiza una evaluacioacuten de los vectores de cada documento con respecto al vector de buacutesqueda expandida con el objetivo de asignarles una calificacioacuten Gracias a esta calificacioacuten podemos obtener aquellos documentos que mejor cumplan con las expectativas del usuario (Estos documentos son regresados al Agente Usuario) Agente Ontologiacutea Recibe el vector de consulta proporcionado por el Agente de Filtrado La informacioacuten contenida en el vector de consulta es comparada con la existente en nuestra ontologiacutea Una vez verificada la existencia de la informacioacuten del

29

vector consulta dentro de la ontologiacutea este se encarga de devolver la distancia y el umbral al Agente de Filtrado Se espera que este devuelva una peticioacuten para expandir ese mismo vector Puede darse el caso de obtener dos tipos de buacutesquedas una general y otra mucho maacutes definida En cualquiera de los caso obtenemos un nuevo vector de buacutesqueda (con una informacioacuten mejor definida este es el Vector de Buacutesqueda Expandido) que es enviado de regreso al Agente de Filtrado el cual genera una copia y le es enviada al Agente de Recuperacioacuten Ontologiacutea Representa nuestra base de conocimientos Esta compuesta por tres aacutereas de conocimiento las cuales son Ingenieriacutea se Software Bases de Datos y Deportes Para poder representar esta ontologiacutea en un lenguaje entendible para agentes inteligentes se programaraacute bajo los fundamentos de las estructuras RDF contenidas en las especificaciones de XML y siguiendo los estaacutendares de la W3C Agente Recuperacioacuten Realiza la buacutesqueda gracias a la informacioacuten que le es entregada por el Agente de Filtrado (se trata Vector de Buacutesqueda Expandido generado por el Agente de Ontologiacutea) El agente estructura esta informacioacuten y se introduce en un motor de buacutesqueda(diacutegase por ejemplo Google) de tal manera que obtengamos una lista de posibles documentos A cada documento se le asigna un vector de teacuterminos con sus pesos derivados de un anaacutelisis TFIDF para despueacutes regresar las urlacutes con su respectivo vector de teacuterminos al Agente Filtrado RESULTADOS Este proyecto tiene la finalidad de desarrollar el software para un antivirus y un traductor Pero durante los estudios de anaacutelisis de estos dos productos se encontroacute que el software para la buacutesqueda de la informacioacuten tambieacuten puede ser implementada por medio de teacutecnicas de Inteligencia Artificial Para construir el software de aplicacioacuten para estas necesidades se usa la metodologiacutea de cascada Donde los pasos a seguir son el Anaacutelisis Disentildeo Pruebas Implementacioacuten y Mantenimiento Hasta este momento estamos en la etapa de pruebas de algunos moacutedulos de los tres productos IMPACTO El detector de intrusos en una red es de mucha importancia debido a que en la actualidad se han diseminado muchos virus que pueden ser transmitidos a traveacutes de intrusos Hasta la fecha el meacutetodo de proteccioacuten se hace de forma manual La finalidad de este software es automatizar la proteccioacuten El traductor de texto a voz tiene como primera aplicacioacuten el auxilio en la lectura de documentos para las personas invidentes o deacutebiles visuales una segunda aplicacioacuten es la comunicacioacuten con la computadora por medio del lenguaje natura El buscador de informacioacuten es un auxilio en la buacutesqueda de datos en una base de datos de conocimiento Ya que tambieacuten estaacuten proliferando las bibliotecas virtuales es una ayuda en la localizacioacuten de informacioacuten cientiacutefica y un preaacutembulo para un software de apoyo docente BIBLIOGRAFIacuteA [1] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

30

[2] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps[3] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[4] w3c en espantildeol OWL y Web Semaacutentica httpwwww3cesDivulgacionGuiasbrevesWebSemantica

[5] Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

[6] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[7] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[8] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[9] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[10] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[11] Laboratorios Googlehttplabsgooglecompapershtml

[12] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[13] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

[14] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

[15] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps [16] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[18] Trabajos de Agente en JADE http Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

31

[19] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[20] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[21] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[22] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[23] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[24] Laboratorios Googlehttplabsgooglecompapershtml

[25] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[26] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

  • En este reporte teacutecnico se presenta la descripcioacuten general anaacutelisis y estado actual de de los trabajos terminales TT2006135 TT20060097 y TT20060068 que tienen por titulo ldquoSistema prototipo de deteccioacuten de intrusos en la red utilizando agentes inteligentesrdquo rdquoProcesamiento digital de imaacutegenes para la conversioacuten de texto a vozrdquo y ldquoSistema de buacutesqueda de informacioacuten por conceptos en la webrdquo respectivamente Los prototipos que se obtendraacuten seraacuten un software robusto que se desarrollaraacuten con teacutecnicas de inteligencia artificial como Agentes inteligentes y Redes neuronales
  • Estructura de un sistema neuronal artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
    • Estado Del Arte
      • Estructura de un sistema neuronal artificial
        • Sistemas paralelos distribuidos y adaptativos
          • Modelo estaacutendar de neurona artificial
            • Sigmoidal logariacutetmica
              • Empleo del perceptroacuten para reconocer funciones loacutegicas
              • Algoritmo de aprendizaje del perceptroacuten
                • Objetivo General
                • Estado Del Arte
                • A continuacioacuten se mencionan algunos de ellos
                  • Buscador muacuteltiple Copernic 2001 Pro
                  • Lets Browse
                  • Agentes de Informacioacuten
                    • Marco Conceptual
                      • Clases y Propiedades
                      • El sistema de escritura de datos [type system]
                      • Clases y Recursos como Conjuntos y Elementos
                        • Ontologiacuteas en la Representacioacuten del Conocimiento
                          • LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES
                          • JADE (Java Agent DEvelopment Framework)
                            • Disentildeo
                            • Arquitectura
Page 14: INSTITUTO POLITÉCNICO NACIONALsappi.ipn.mx/cgpi/archivos_anexo/20061387_3286.pdf · La comunicación del hombre con la computadora por medio del lenguaje natural, es la finalidad

14

El perceptroacuten puede utilizarse tanto como clasificador como para la representacioacuten de funciones booleanas pues su neurona es esencialmente de tipo MacCulloch-Pitts es decir de salida binaria La importancia histoacuterica del perceptroacuten radica en su caraacutecter de dispositivo entrenable ya que el algoritmo de aprendizaje que desarrollo Rosenblatt permite determinar automaacuteticamente los pesos sinaacutepticos que clasifican un conjunto de patrones a partir de un conjunto de ejemplos etiquetados (a esto se le llama red neuronal supervisada y el perceptron simple es de este tipo) Ahora se mostraraacute que un perceptroacuten permite realizar tareas de clasificacioacuten Cada neurona del perceptroacuten representa una determinada clase de modo que dado un vetor de entrada una cierta neurona responde con 0 si no pertenece a la clase que representa y con un 1 si siacute pertenece Es faacutecil ver que una neurona tipo perceptroacuten solamente permite discriminar entre dos clases linealmente separables (es decir cuyas regiones de decisioacuten pueden ser separadas mediante una uacutenica condicioacuten lineal o hiperplano que es una liacutenea recta si trabajamos en dos dimensiones) Sea una neurona tipo perceptroacuten de dos entradas x1 y x2 con salida y cuya operacioacuten se define por lo tanto como

y = H(w1x1+w2x2 - ө) o bien 1 si w1x1+w2x2 geӨ y = 0 si w1x1+w2x2 ltӨ

Si consideramos x1 y x2 situadas sobre los ejes de abscisas y ordenadas en el plano la condicioacuten

w1x1+ w2x2 -Ө = 0 rarr x2 = - (w1 w2) x1 + Ө w2 representa una recta (hiperplano si trabajamos con n entradas) que divide el plano en dos regiones que son aquellas para las que la neurona proporciona una salida 0 o 1 respectivamente como se muestra en la figura 27

x x

x x x

x x x

x

x

oo

oo

o o

o

X1

X2

Regioacuten w1x1+w2x2 geӨ Regioacuten w1x1+w2x2 ltӨ

Figura 27 Una neurona tipo perceptroacuten representa un discriminador lineal que separa dos regiones en el espacio que representan dos diferentes clases de patrones En esta graacutefica x = lsquo1rsquo y o = lsquo0rsquo

15

Empleo del perceptroacuten para reconocer funciones loacutegicas -Funcion linealmente separable Consideremos la funcioacuten loacutegica NAND2 (AND negada de dos entradas) que representamos sobre un plano en la graacutefica 3 que se presenta en seguida

x (10) o (11)

x (00)

x (01) X1

X2

Figura 28 Funcioacuten loacutegica NAND de dos entradas En la graacutefica x = lsquo1rsquo y o = lsquo0rsquo

Se puede ver que en este caso existen paraacutemetros w1 w2 y Ө que permiten una recta que separa perfectamente las regiones correspondientes a los valores loacutegicos 0 y 1 Y por lo tanto se dice que la funcioacuten loacutegica NAND es linealmente separable -Funcioacuten no separable linealmente

Ahora consideremos la funcioacuten loacutegica or-exclusivo (XOR) y representandola en un plano en la figura 29

x (10) o (11)

o (00)

x (01) X1

X2

Figura 29 Funcioacuten loacutegica XOR de dos entradas que no es linealmente separable

16

Al ser XOR no linealmente separable se dice que ldquola clase de funciones no separables linealmente no pueden ser representadas por un perceptroacuten simplerdquo El perceptroacuten presenta serias limitaciones pues solamente puede representar funciones linealmentes separables Y aunque pueda aprender automaacuteticamente a representar complejas funciones booleanas o resolver con eacutexito muchos problemas de clasificacioacuten con un cierto algoritmo en ocasiones fallara draacutesticamente Minsky (que es uno de los padres de la inteligencia artificial) y Papera estudiaron en profundidad el perceptroacuten y en 1969 publicaron un exhaustivo trabajo donde exhibian las limitantes del modelo en lo que resultoacute decisivo para que muchos de los recursos que se destinaban a su investigacioacuten se desviara a otras aacutereas Una solucioacuten para las limitantes del perceptroacuten simple puede consistir en incluir maacutes capas en la arquitectura con lo que tendremos un perceptroacuten multicapa A finales de los antildeos sesenta ya se apuntaba como solucioacuten a las limitaciones del perceptroacuten introducir capas ocultas pero el problema estaba en que no se teniacutea un algoritmo de aprendizaje para el perceptroacuten multicapa (con capas ocultas) Dicho algoritmo fue propuesto por Paul Verbos alrededor de 1974 pero fue preciso hasta mediados de los ochenta cuando el grupo PDP redescubriera un algoritmo similar al cual denominaron Back-Propagation o BP y dieran a conocer a la comunidad internacional su gran potencial para la resolucioacuten de problemas praacutecticos

Algoritmo de aprendizaje del perceptroacuten El del perceptroacuten es un algoritmo de aprendizaje de los denominados por correccion de errores Los algoritmos de este tipo ajustan los pesos en proporcioacuten a la diferencia existente entre la salida actual de la red y la salida deseada con el objetivo de minimizar el error actual de la red Definicioacuten del algoritmo de aprendizaje Sea un conjunto de p patrones xn n=1hellipp con sus salidas deseadas tn Tanto las entradas como las salidas solamente pueden tomar los valores -1 o 1 Se tiene una arquitectura de perceptroacuten simple con pesos iniciales aleatorios y se requiere que clasifique correctamente todos los patrones del conjunto de aprendizaje (solo si son linealmente separables) Ahora actuaremos del siguiente modo ante la presentacioacuten del patron n-eacutesimo si la respuesta que proporciona el perceptroacuten es correcta no actualizaremos los pesos si es incorrecta los modificaremos seguacuten la regla de Hebb aplicada a nuestro caso Primero se muestra la regla de Hebb y despueacutes la regla modificada para el perceptroacuten simple Regla de Hebb

∆wij = ξyixjDonde

17

o wij corresponde a los pesos de una entrada j por la salida i de la neurona

o ξ se denomina ritmo de aprendizaje que su valor suele estar entre 1 y 0 Regla modificada para el perceptroacuten simple

2ξtnixnj si yn

ine tni ∆wn

ij(t)= 0 si yn

i= tni que puede reescribirse del siguiete modo que es la forma usual de expresar la regla del perceptroacuten

∆wnij(t)= 2ξ(tni - yn

i)xnj

Es importante mencionar que el proceso de aprendizaje es iterativo se

parte de una configuracioacuten sinaacuteptica de partida (normalmente de pesos pequentildeos aleatorios) y se presentan una y otra vez los patrones para que los pesos se ajusten iterativamente seguacuten forma usual de la regla del perceptroacuten hasta que todos queden bien clasificados El hiperplano que establece el liacutemite entre dos clases se desplaza lentamente hasta conseguir separarlas por completo (si es posible) como se ve en la figura 210

t= 115

x x

x x x

x x x

x

x

o

o o

o o o o

o

o o

o

o

o

o

o

o

o

X2

t= 21

t= 0 t= 4

X1

Figura 210 Regiones de decisioacuten que establece iterativamente el perceptroacuten durante el aprendizaje (en la iteracioacuten 115 ha conseguido separar ya las dos clases)

Avances En este capiacutetulo se haraacute una descripcioacuten de los avances que se han hecho hasta el momento Se hablaraacute acerca del entrenamiento de la red neuronal del sistema el reconocimiento de caracteres tanto con la red neuronal como con los clasificadores ya expuestos y el tratamiento de imaacutegenes para eliminar el ruido tipo sal y pimienta Reconocimiento de caracteres Se han hecho avances acerca del reconocimiento de caracteres utilizando redes neuronales y clasificadores diversos A continuacioacuten se exponen dichos avances

Entrenamiento de la red neuronal Para entrenar la red neuronal se utilizoacute el algoritmo de retropropagacioacuten expuesto en el capiacutetulo 1 Se disentildeoacute un programa en Java que permite entrenar una red neuronal de 3

18

capas La cantidad de clases a discriminar es variable y para este caso se utilizoacute una matriz de 5x8 es decir se tomaron 40 rasgos de entrada

Utilizando la red neuronal para reconocer caracteres A continuacioacuten se muestra en la imagen 211 el programa disentildeado en Java que permite discriminar un nuacutemero variable de clases Para este caso se eligioacute discriminar entre los diacutegitos del 0 al 9 El programa para reconocer los 128 caracteres referentes al sintetizador de voz tendraacute una interfaz similar con la diferencia de que la rejilla para ingresar el patroacuten a reconocer seraacute de 20x20 El programa mostrado fue programado tanto para entrenar la red como para reconocer los diacutegitos Se puede elegir entre los entrenamientos hechos para probar la efectividad de la red Las estadiacutesticas del entrenamiento elegido se muestran en la parte inferior de la pantalla

Imagen 211 Reconocimiento de los diacutegitos del 0 al 9 utilizando una red neuronal de 3 capas

19

Utilizando los clasificadores para reconocer caracteres Dentro de las teacutecnicas de reconocimiento de patrones existen diferentes clasificadores que nos permiten a partir de un conjunto de entrenamiento (en eacuteste caso un conjunto de tipos de letras que deseamos reconocer) saber a queacute clase pertenece un patroacuten de prueba que se introduce

Imagen 212 Un ejemplo de un clasificador KNN con un valor de K=3 y usando la meacutetrica City-Block para clasificar el patroacuten de prueba pruebabmp entre tres clases

En la imagen 212 se muestra como se puede clasificar un caraacutecter escalado de la imagen prueba 4bmp dentro de las tres clases existentes Se observa que si se puede clasificar este tipo de patrones pero veamos un ejemplo donde no sea posible clasificar un patroacuten de prueba y por queacute

Imagen 213 Un ejemplo de un clasificador KNN con un valor de K=5 y usando la meacutetrica Euclidiana para clasificar el patroacuten de prueba prueb3bmp entre tres clases El patroacuten no fue reconocido correctamente

20

Ahora como se observa no se pudo clasificar correctamente el patroacuten de prueba ya que pertenece claramente a la clase 3 pero por el clasificador que usamos o por el nuacutemero de K-vecinos o por el tipo de meacutetrica usada sucedioacute que en su mayoriacutea eran de la clase 2 y no de la clase 3 Tal vez si se hubiera elegido un valor de K menor a 5 tendriacutea maacutes posibilidades de clasificar correctamente Finalmente usar este tipo de teacutecnicas para reconocer caracteres es muy bueno ya que permite reconocer letras que se encuentran rotadas escaladas o trasladadas por una teacutecnica matemaacutetica llamada Momentos de Hu pero al tener una situacioacuten donde la imagen de prueba se encuentra exactamente a la misma distancia de dos o mas clases se crea el problema de no saber a que clase clasificar dicho patroacuten

Tratamiento digital de las imaacutegenes a capturar A continuacioacuten se muestra en la imagen 214 un programa que se codificoacute en C++ Builder y permite tratar digitalmente imaacutegenes BMP con la finalidad de eliminar el ruido pasarlas a escala de grises y binarizarlas El programa es capaz de generar histogramas de color

Imagen 214 Programa para tratar imaacutegenes digitalmente

21

CAPIacuteTULO 3 Buscadores La informacioacuten almacenada tendriacutea poco valor si no podemos consultarla buscar los datos en una base de datos o en muchas bases de datos que tienen conexioacuten por medio de la web es lo que nos permite explotar la informacioacuten Sin embargo la buacutesqueda seraacute eficiente si la respuesta del buscador es lo maacutes especifica o cercana a los temas solicitados Por lo que el software con aplicacioacuten de buscador es importante desarrollar un proceso para su creacioacuten Objetivo General Desarrollar un sistema de buacutesqueda de informacioacuten por conceptos en la Web basado en agentes inteligentes mediante la aplicacioacuten de ontologiacuteas Estado Del Arte Existen algunos sistemas que proporcionan buacutesquedas de informacioacuten basados en algunas de las tecnologiacuteas que vamos a utilizar Es habitual encontrar este tipo de buscadores y algunos otros similares bautizados como Megabuscadores o Multibuscadores a pesar de que estos teacuterminos no sean los maacutes idoacuteneos por lo que al hablar de este tipo de sistemas podemos referirlos como Buscadores Muacuteltiples en virtud de las caracteriacutesticas de su funcionamiento A continuacioacuten se mencionan algunos de ellos

Buscador muacuteltiple Copernic 2001 Pro Copernici producto de la empresa canadiense Copernic Technologies es un agente buscador que transfiere una ecuacioacuten de buacutesqueda a un conjunto de buscadores de manera simultaacutenea recupera las referencias pertinentes y las ordena seguacuten el grado medio de relevancia obtenido de cada uno de los buscadores La empresa creadora de Copernic se constituyoacute en 1996 con el propoacutesito de desarrollar soluciones innovadoras en tecnologiacuteas de agentes de buacutesqueda para conseguir un acceso y una gestioacuten eficientes de la gran masa de informacioacuten presente en Internet El programa se desarrolloacute el antildeo siguiente en una versioacuten experimental y se puso al alcance del puacuteblico en noviembre de 1998 Desde entonces se han lanzado versiones con elementos nuevos la mayoriacutea de los cuales no obstante soacutelo estaacuten disponibles en las ediciones comerciales La edicioacuten gratuita ofrece los servicios baacutesicos de consulta y con la intencioacuten de persuadir a los posibles compradores de las ediciones comerciales da una idea bastante aproximada de las posibilidades del programa completo

Lets Browse Como en otros medios (por ejemplo la televisioacuten) la navegacioacuten en Internet puede ser realizada por grupos de gente [Lieberman et al 1997] Lets browse muestra como un agente puede asistir a un grupo de gente en su navegacioacuten sugirieacutendoles materiales nuevos que puedan ser de intereacutes comuacuten entre ellos

Este trabajo es una extensioacuten del agente Letizia [Lieberman 1995] el cual selecciona paacuteginas de Web Letizia inicia una buacutesqueda por niveles visita las ligas que encuentra a partir de la paacutegina que su usuario esteacute revisando y selecciona aquellas que sean similares a los intereses que ha aprendido de su usuario (observando su navegacioacuten) Posteriormente muestra sus recomendaciones en un canal de navegacioacuten

22

El trabajo del agente consiste en seleccionar de la misma forma que Letizia lo hace aquellas paacuteginas que mejor satisfagan los intereses de todos los participantes Las caracteriacutesticas de Letrsquos browse son la deteccioacuten automaacutetica de la presencia de usuarios navegacioacuten automaacutetica (en canal de navegacioacuten) el despliege dinaacutemico de las preferencias de los usuarios y la explicacioacuten de las recomendaciones Permite ademaacutes revisar las paacuteginas desde el punto de vista de otra persona (con sus preferencias) y asiacute estimar cual seriacutea su posible opinioacuten acerca de dicha paacutegina auacuten cuando aquella persona no la haya revisado anteriormente

Agentes de Informacioacuten Un agente de informacioacuteiin es utilizado para organizar los espacios de informacioacuten del usuario y facilitar su explotacioacuten En el WWW (World Wide Web) se estaacuten implementando diversos agentes de informacioacuten El Agente Letizia [Lieberman 1995] que existe en un navegador de Web anticipa queacute artiacuteculos pueden ser de intereacutes para el usuario basaacutendose en las conductas pasadas del usuario Las paacuteginas que cree son de intereacutes del usuario Letizia las despliega en una ventana de sugerencias por unos instantes Marco Conceptual Actualmente para poder hacer la consulta de cualquier tipo de informacioacuten en Internet la mayoriacutea de las personas recurre a los motores de buacutesquedas conocidos como Google Yahoo Altavista por mencionar algunos siendo que estos usan diferentes meacutetodos para llegar a su objetivo podemos darnos cuenta que arrojan distintos resultados uno de otro que en el mejor de los casos coinciden en un porcentaje muy poco satisfactorio con la buacutesqueda en cuestioacuten con lo que concluimos que una respuesta a esta falta de precisioacuten en cuanto a la buacutesqueda de un tema en especial es mejor la buacutesqueda de conceptos lo cual permite al usuario acercarse maacutes al tema de su intereacutes Es importante enfocar nuestra solucioacuten apoyaacutendonos en un motor de buacutesqueda y aplicando herramientas como los Agentes que nos permitan recopilar la informacioacuten maacutes precisa de cada buacutesqueda a traveacutes de un algoritmo propio obteniendo resultados maacutes cercanos a los deseados ya que estos provienen de muacuteltiples documentos ahorrando tiempo y ganando precisioacuten a la vez Muy frecuentemente encontramos que cuando se trata de buacutesquedas en Internet a traveacutes de los motores de buacutesqueda populares los usuarios hacen consultas de diversas paginas y es muy difiacutecil llevar una lista de todos los sitios visitados o de aquellos que nos mostraron la informacioacuten maacutes adecuada nuestro sistema es capaz de registrar dentro de una base de datos un iacutendice de todos los sitios que se obtuvieron en la buacutesqueda de un tema o concepto con lo que el usuario no tendraacute que realizar una ldquonuevardquo buacutesqueda de un tema antes consultado sino que tendraacute a la mano todos los sitios que arrojoacute la primera buacutesqueda Marco teoacuterico

Descripcioacuten de RDF

El Resource Description Frameworiiik (RDF) es un fundamento para el procesamiento de metadatos proporciona interoperabilidad entre aplicaciones que intercambian informacioacuten legible por maacutequina en la Web RDF utiliza XML para intercambiar descripciones de recursos Web pero los recursos descritos pueden ser de cualquier tipo

23

incluyendo recursos XML y no-XML RDF resalta las facilidades para hacer posible el procesamiento automaacutetico de los recursos Web RDF puede utilizarse en diferentes aacutereas de aplicacioacuten por ejemplo en la recuperacioacuten de recursos para proporcionar mejores capacidades a los motores de buacutesqueda en catalogacioacuten para la descripcioacuten de contenido y relaciones de contenido accesibles en un sitio Web particular en una paacutegina o biblioteca digital a traveacutes de agentes de software inteligente para facilitar que el conocimiento se comparta e intercambie en la valoracioacuten de contenido en la descripcioacuten de colecciones de paacuteginas que representan un documento loacutegico individual para la descripcioacuten de los derechos de propiedad intelectual de las paacuteginas Web y para expresar las preferencias de privacidad de un usuario asiacute como las poliacuteticas de privacidad de un sitio Web Las descripciones utilizadas por estas aplicaciones pueden modelarse como relaciones entre recursos Web El modelo de datos de RDF tal y como se especifica en RDFMS define un modelo simple para describir las relaciones entre recursos en teacuterminos de propiedades y valores designadas Las propiedades RDF pueden entenderse como atributos de un recurso y en este sentido corresponden con los tradicionales pares atributo-valor Las propiedades RDF tambieacuten representa relaciones entre recursos De esta forma el modelo de datos RDF puede parecer un diagrama entidad-relacioacuten El modelo de datos RDF sin embargo no proporciona mecanismos para declarar estas propiedades ni proporcionan ninguacuten mecanismo para definir las relaciones entre estas propiedades y otros recursos Este es el papel [la funcioacuten] del Esquema RDF

Las comunidades de descripcioacuten de recursos necesitan la habilidad para decir ciertas cosas sobre ciertas clases de recursos Para describir recursos bibliograacuteficos por ejemplo son habituales atributos descriptivos tales como autor [author] tiacutetulo [title] y materia [subject] Para la certificacioacuten digital se necesitan muchas veces atributos tales como esquema simple de deteccioacuten de errores [checksum] y autorizacioacuten [authorization] La declaracioacuten de estas propiedades (atributos) y su semaacutentica correspondiente se definen en el contexto de RDF como un Esquema RDF Un esquema define no soacutelo las propiedades de un recurso (ej tiacutetulo autor materia tamantildeo color etc) sino que puede tambieacuten definir los tipos de recursos que se describiraacuten (libros paacuteginas Web personas empresas etc)

Los Esquemas RDF podriacutean contrastarse con las Definiciones del Tipo de Documentos (DTDs) de XML y los Esquemas XML A diferencia de una DTD o Esquema XML que dan restricciones especiacuteficas en la estructura de un documento XML un Esquema RDF proporciona informacioacuten sobre la interpretacioacuten de una sentencia dada en un modelo de datos RDF Mientras un Esquema XML puede utilizarse para validar la sintaxis de una expresioacuten RDFXML un esquema sintaacutectico soacutelo no es suficiente para los objetivos de RDF Los Esquemas RDF pueden tambieacuten especificar restricciones que deben seguirse por estos modelos de datos

Clases y Propiedades Un Esquema RDF se expresa a traveacutes de un modelo de datos descrito en la especificacioacuten del Modelo y la Sintaxis RDF [RDFMS] El lenguaje de descripcioacuten del esquema es un simple conjunto de recursos y propiedades definidos por la Especificacioacuten del Esquema RDF y la parte impliacutecita de cada modelo RDF que utiliza la mecaacutenica del esquema RDF

24

El sistema de escritura de datos [type system] El Esquema RDF definido en esta especificacioacuten es una coleccioacuten de recursos RDF que puede utilizarse para describir propiedades de otros recursos RDF (incluyendo propiedades) que definene vocabularios RDF de aplicacioacuten especiacutefica El nuacutecleo del vocabulario del esquema se define en un namespace denominado aquiacute informalmente rdfs e identificado por el URI de referencia httpwwww3org200001rdf-schema Esta especificacioacuten utiliza tambieacuten el prefijo rdf para referirse al namespace principal RDF httpwwww3org19990222-rdf-syntax-ns

Como se describe en la especificacioacuten del modelo y la sintaxis [RDFMS] los recursos pueden ser objetos especiacuteficos de una categoriacutea [instances] de una o maacutes clases esto se indica con la propiedad rdftype Las clases se organizan muchas veces de una forma jeraacuterquica por ejemplo la clase Dog [perro] podriacutea considerarse subclase de Mammal [mamiacutefero] que a su vez es una subclase de Animal dando a entender que cualquier recurso que esteacute en rdftype Dog se considera tambieacuten que estaacute en rdftype AnimalEsta especificacioacuten describe una propiedad rdfssubClassOf para indicar dichas relaciones entre clases

El sistema de escritura [type system] del Esquema RDF es similar al sistema de los lenguajes de programacioacuten orientados a objetos tales como Java Sin embargo RDF se diferencia de muchos de esos sistemas en que en lugar de definir una clase en teacuterminos de propiedades sus objetos especiacuteficos de una categoriacutea [instances] pueden tener un esquema RDF que definiraacute las propiedades en teacuterminos de clases de recurso a los que se aplican Este es el papel de las restricciones rdfsdomain y de rdfsrange

Por ejemplo podemos definir que la propiedad author tenga un dominio de Book y un alcance de Literal mientras que un sistema OO claacutesico podriacutea definir tiacutepicamente una clase Book con un atributo denominado author de tipo Literal

Clases y Recursos como Conjuntos y Elementos El siguiente esquema ilustra el concepto de clase subclase y recurso Una clase se describe por un rectaacutengulo redondeado un recurso se describe por un punto grande En la figura abajo se han dibujado flechas desde un recurso a una clase que define Una subclase se presenta en un rectaacutengulo redondeado (la subclase) completamente incluido en otro (la superclase) Si un recurso estaacute dentro de una clase entonces existe una propiedad rdftype o expliacutecita o impliacutecita de aquel recurso cuyo valor es un recurso que define la clase que contiene (Estas propiedades se muestran como arcos en la representacioacuten graacutefica directamente etiquetada en el Esquema 2) El recurso RDF representado en el esquema 1 se describe tanto en el resto de esta especificacioacuten como en la especificacioacuten del Modelo y Sintaxis RDF

Ontologiacuteas en la Representacioacuten del Conocimiento En estos uacuteltimos antildeos se incrementoacute la cantidad de informacioacuten en la Internet lo cual motivoacute el incremento de la complejidad y la diversidad de la informacioacuten Esto tambieacuten motivoacute el intereacutes de automatizar muchas actividades que tradicionalmente se realizan en forma manual La principal motivacioacuten en el uso de las ontologiacuteas es que permiten compartir y reutilizar conocimiento en un dominio De ahiacute el intereacutes de muchos

25

investigadores en el aacuterea de inteligencia artificial para tratar de aplicar las ontologiacuteas en la representacioacuten de conocimiento Las ontologiacuteas son un elemento importante en la Web Semaacutentica y es un teacutermino filosoacutefico que trata sobre la naturaleza de la existencia y los tipos de objetos que existen Tambieacuten la ontologiacutea se puede definir como una especificacioacuten expliacutecita de una conceptualizacioacuten compartida La conceptualizacioacuten se refiere a un modelo abstracto de un fenoacutemeno en el mundo en donde se tienen que identificar los conceptos relevantes de este fenoacutemeno El teacutermino expliacutecito significa queacute tipos de conceptos son usados y las restricciones de estos conceptos Y por uacuteltimo el teacutermino compartido se refiere a que las ontologiacuteas capturan conocimiento que es aceptado por todos y no es individual de un grupo Actualmente se les estaacute dando maacutes uso a las ontologiacuteas en el campo de la Inteligencia Artificial En este campo se define la ontologiacutea como una descripcioacuten formal y expliacutecita de conceptos de un dominio (classes a las que nos referiremos como conceptos) propiedades de cada concepto las cuales describen las caracteriacutesticas y atributos de los conceptos (slots llamados tambieacuten como propiedades o roles) y restricciones de las propiedades (facets conocidas como restricciones) La informacioacuten que es representada a traveacutes de los lenguajes semaacutenticos puede ser compartida entre aplicaciones como los agentes

OWL y Web Semaacutentica

La Web Semaacutentica es una Web extendida dotada de mayor significado en la que cualquier usuario en Internet podraacute encontrar respuestas a sus preguntas de forma maacutes raacutepida y sencilla gracias a una informacioacuten mejor definida Al dotar a la Web de maacutes significado y por lo tanto de maacutes semaacutentica se pueden obtener soluciones a problemas habituales en la buacutesqueda de informacioacuten gracias a la utilizacioacuten de una infraestructura comuacuten mediante la cual es posible compartir procesar y transferir informacioacuten de forma sencilla Esta Web extendida y basada en el significado se apoya en lenguajes universales que resuelven los problemas ocasionados por una Web carente de semaacutentica en la que en ocasiones el acceso a la informacioacuten se convierte en una tarea difiacutecil y frustrante

LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES La comunicacioacuten es uno de los aspectos importantes dentro de una comunidad de agentes la cual permitiraacute compartir y enviar mensajes entre agentes Los meacutetodos tradicionales permiten la comunicacioacuten entre los agentes pero eacutestos no son suficientes para lograr un comportamiento social entre los agentes para ello es necesario que los mensajes tengan un significado y contenido semaacutentico Se han desarrollado varios lenguajes los cuales son usados para el enviacuteo de mensajes a continuacioacuten hablaremos de dos de ellos KQML Knowledge Query and Manipulation Language (KQML) es uno de los lenguajes que nos provee la estructura para enviar mensajes entre agentes Dentro de sus principales caracteriacutesticas tenemos que es independiente de la sintaxis del contenido y la ontologiacutea

26

que se utilizaraacute Asiacute mismo es independiente del mecanismo de transporte (TCPIP SMTP IIOP etc) e independiente del contenido del lenguaje (KIF SQL STEP Prolog etc) KQML fue desarrollado por el consorcio DARPA Knowledge Sharing Effort (KSE) cuyo principal objetivo fue desarrollar una base tecnoloacutegica para construir en forma progresiva sistemas cada vez con maacutes funcionalidad complejidad y amplitud KQML provee un lenguaje y un protocolo para intercambiar informacioacuten entre agentes inteligentes y para lograr este intercambio se tiene que compartir una sintaxis y una semaacutentica comuacuten para que los mensajes sean entendidos por los agentes Al lenguaje KQML se le dividioacute en tres capas la capa de contenido alberga el contenido del mensaje que es especificado en cualquier formato ya sea texto o binario La capa de comunicacioacuten contiene paraacutemetros como el identificador uacutenico asociado a la comunicacioacuten identidad del remitente e identidad del destinatario La capa de mensaje define tanto los diferentes tipos de interaccioacuten que se pueden establecer entre los agentes como los protocolos que se pueden establecer entre los agentes Tambieacuten incluye otras caracteriacutesticas como el lenguaje de representacioacuten o la ontologiacutea siendo ambos opcionales

JADE (Java Agent DEvelopment Framework)

JADEiv (Java Agent DEvelopment Framework) es un middleware que proporciona tanto un entorno de desarrollo como un entorno de ejecucioacuten para la realizacioacuten y mantenimiento de sistemas multiagente El entorno de desarrollo estaacute formado por una serie de libreriacuteas en Java que permiten la implementacioacuten de agentes de manera limpia e independiente de la plataforma sobre la que se va a ejecutar El entorno de ejecucioacuten permite a los agentes vivir y comunicarse entre ellos Estaacute realizado enteramente en Java y proporciona una serie de herramientas que permiten al desarrollador controlar y depurar a los agentes en tiempo real JADE es un middleware desarrollado por TILAB para el desarrollo de aplicaciones distribuidas multiagente JADE proporciona tanto el entorno de desarrollo para la creacioacuten de aplicaciones basadas en agentes como el entorno de ejecucioacuten JADE presenta las siguientes caracteriacutesticas

P2P Arquitectura peer-to-peer cada agente puede tomar la iniciativa en una comunicacioacuten o bien responder a peticiones que le hagan otros agentes

Interoperabilidad JADE cumple con las especificaciones FIPA por lo que los agentes desarrollados en JADE pueden interactuar con otros agentes que no tienen porque estar desarrollados con JADE aunque si deben seguir las especificaciones FIPA

Portabilidad La API que proporciona JADE es independientemente de la red sobre la que va a operar asiacute como de la versioacuten de Java utilizada teniendo la misma API para J2EE J2SE y J2ME

27

Intuitiva JADE se ha desarrollado para ofrecer una API faacutecil de aprender y sencilla de manejar

Los agentes JADE tienen nombres uacutenicos y se permite a cada agente descubrir a otros agentes y comunicarse con ellos mediante comunicaciones punto a punto Los agentes proporcionan servicios cada agente puede buscar a otros dependiendo de los servicios que proporcionen otros agentes La comunicacioacuten entre agentes se lleva a cabo a traveacutes de mensajes asiacutencronos es decir el agente que enviacutea el mensaje y el destinatario del mensaje no tienen porqueacute estar disponibles al mismo tiempo Es maacutes el destinatario no tiene porqueacute existir en ese instante Los mensajes se pueden enviar a un agente en concreto o se pueden enviar a agentes que se desconocen pero se sabe que poseen unas ciertas caracteriacutesticas JADE proporciona mecanismos de seguridad ya que habraacute agentes a los que no se les esteacute permitido comunicarse con otros agentes de manera que una aplicacioacuten puede verificar la identidad del receptor y del agente que enviacutea el mensaje y no dejar realizar actuaciones no permitidas para un determinado agente La estructura de los mensajes se basa en el lenguaje ACL (Agent Communication Lenguaje) que ha sido definido por la FIPA JADE facilita mecanismos para el desarrollo de los objetivos que deben alcanzar los agentes Los comportamientos (behaviours) y la comunicacioacuten entre los agentes (junto con el servicio de paacuteginas amarillas) proporcionan los recursos necesarios para programar un sistema multiagente JADE tambieacuten permite a los agentes cambiar de Host (en J2SE) Un agente puede interrumpir en un momento dado su ejecucioacuten migrar a otro host (sin necesidad de que el coacutedigo esteacute previamente en el host destino) y continuar la ejecucioacuten en el mismo punto en el que la interrumpioacute Esto permite un balanceo de carga ya que permite a los agentes migrar hosts menos cargados El entorno de ejecucioacuten proporciona un marco donde poder ejecutar los agentes y herramientas graacuteficas para su monitorizacioacuten y depuracioacuten Los agentes JADE necesitan del entorno de ejecucioacuten donde poder vivir Cada instancia del entorno de ejecucioacuten se denomina contenedor (container) Al conjunto de los contenedores se le denomina plataforma (platform) y proporciona una capa que oculta a los agentes (y al desarrollador) el entorno donde se ha decidido ejecutar la aplicacioacuten En cada plataforma debe existir un contenedor especial denominado contenedor principal (main container) La principal diferencia del contenedor principal respecto al resto de contenedores es que alberga dos agentes especiales

AMS (Agent Management System) Este agente proporciona el servicio de nombres asegurando que cada agente en la plataforma disponga de un nombre uacutenico Tambieacuten representa la autoridad es posible crear y matar agentes en contenedores remotos requeriendoselo al agente AMS

DF (Directory Facilitator) Proporciona el servicio de Paacuteginas Amarillas Gracias al agente DF un agente puede encontrar otros agentes que provean los servicios necesarios para lograr sus objetivos

28

La caracteriacutestica mas importante del entorno de ejecucioacuten es la interfaz graacutefica que proporciona desde la que podemos controlar y depurar los agentes existentes Todas las herramientas han sido desarrolladas como agentes y siguen sus mismas reglas Disentildeo Arquitectura

Agente usuario

Agente de ontologiacutea

Agente de filtrado

Agente de recuperacioacuten

BD

OntologiacuteaSistema

Motor de buacutesqueda

El sistema esta disentildeado para que un usuario realice alguna buacutesqueda relacionada con alguno de los tres temas propuestos en nuestra base de conocimiento que son Ingenieriacutea de Software Base de Datos y Deportes El sistema esta basado en una arquitectura multiagente la cual se conforma por Agente Usuario Actuacutea de intermediario entre el usuario y el sistema Sus servicios son solicitados por el usuario para resolver las consultas El usuario le suministra una consulta y el sistema le devuelve una lista de documentos que pueden satisfacer sus necesidades Este agente tiene la capacidad de acceder a la base de datos con el objetivo de almacenar yo recuperar resultados Base de Datos Guardaraacute las ultimas buacutesquedas realizadas para su posterior consulta a peticioacuten del usuario Agente de Filtrado Gestiona la recuperacioacuten de documentos y realiza el filtrado de los mismos proporcionados por el Agente de Recuperacioacuten Recibe la peticioacuten del Agente Usuario y a su vez esta es enviada al Agente Ontologiacutea para que este regrese una evaluacioacuten de la consulta y de esta forma conocer si es necesaria una redefinicioacuten de la consulta En caso de ser necesaria se espera recibir el nuevo vector de consulta hasta que se cumpla una de dos opciones el usuario deje de redefinir la consulta o la consulta sea concreta Cuando la consulta sea concreta es enviada de nueva cuenta al Agente Ontologiacutea el cual regresaraacute el Nuevo Vector Expandido Este seraacute enviado al Agente de Recuperacioacuten Cuando el Agente de Recuperacioacuten regrese los urlacutes de los resultados (con sus respectivos vectores de teacuterminos) se realiza una evaluacioacuten de los vectores de cada documento con respecto al vector de buacutesqueda expandida con el objetivo de asignarles una calificacioacuten Gracias a esta calificacioacuten podemos obtener aquellos documentos que mejor cumplan con las expectativas del usuario (Estos documentos son regresados al Agente Usuario) Agente Ontologiacutea Recibe el vector de consulta proporcionado por el Agente de Filtrado La informacioacuten contenida en el vector de consulta es comparada con la existente en nuestra ontologiacutea Una vez verificada la existencia de la informacioacuten del

29

vector consulta dentro de la ontologiacutea este se encarga de devolver la distancia y el umbral al Agente de Filtrado Se espera que este devuelva una peticioacuten para expandir ese mismo vector Puede darse el caso de obtener dos tipos de buacutesquedas una general y otra mucho maacutes definida En cualquiera de los caso obtenemos un nuevo vector de buacutesqueda (con una informacioacuten mejor definida este es el Vector de Buacutesqueda Expandido) que es enviado de regreso al Agente de Filtrado el cual genera una copia y le es enviada al Agente de Recuperacioacuten Ontologiacutea Representa nuestra base de conocimientos Esta compuesta por tres aacutereas de conocimiento las cuales son Ingenieriacutea se Software Bases de Datos y Deportes Para poder representar esta ontologiacutea en un lenguaje entendible para agentes inteligentes se programaraacute bajo los fundamentos de las estructuras RDF contenidas en las especificaciones de XML y siguiendo los estaacutendares de la W3C Agente Recuperacioacuten Realiza la buacutesqueda gracias a la informacioacuten que le es entregada por el Agente de Filtrado (se trata Vector de Buacutesqueda Expandido generado por el Agente de Ontologiacutea) El agente estructura esta informacioacuten y se introduce en un motor de buacutesqueda(diacutegase por ejemplo Google) de tal manera que obtengamos una lista de posibles documentos A cada documento se le asigna un vector de teacuterminos con sus pesos derivados de un anaacutelisis TFIDF para despueacutes regresar las urlacutes con su respectivo vector de teacuterminos al Agente Filtrado RESULTADOS Este proyecto tiene la finalidad de desarrollar el software para un antivirus y un traductor Pero durante los estudios de anaacutelisis de estos dos productos se encontroacute que el software para la buacutesqueda de la informacioacuten tambieacuten puede ser implementada por medio de teacutecnicas de Inteligencia Artificial Para construir el software de aplicacioacuten para estas necesidades se usa la metodologiacutea de cascada Donde los pasos a seguir son el Anaacutelisis Disentildeo Pruebas Implementacioacuten y Mantenimiento Hasta este momento estamos en la etapa de pruebas de algunos moacutedulos de los tres productos IMPACTO El detector de intrusos en una red es de mucha importancia debido a que en la actualidad se han diseminado muchos virus que pueden ser transmitidos a traveacutes de intrusos Hasta la fecha el meacutetodo de proteccioacuten se hace de forma manual La finalidad de este software es automatizar la proteccioacuten El traductor de texto a voz tiene como primera aplicacioacuten el auxilio en la lectura de documentos para las personas invidentes o deacutebiles visuales una segunda aplicacioacuten es la comunicacioacuten con la computadora por medio del lenguaje natura El buscador de informacioacuten es un auxilio en la buacutesqueda de datos en una base de datos de conocimiento Ya que tambieacuten estaacuten proliferando las bibliotecas virtuales es una ayuda en la localizacioacuten de informacioacuten cientiacutefica y un preaacutembulo para un software de apoyo docente BIBLIOGRAFIacuteA [1] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

30

[2] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps[3] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[4] w3c en espantildeol OWL y Web Semaacutentica httpwwww3cesDivulgacionGuiasbrevesWebSemantica

[5] Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

[6] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[7] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[8] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[9] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[10] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[11] Laboratorios Googlehttplabsgooglecompapershtml

[12] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[13] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

[14] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

[15] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps [16] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[18] Trabajos de Agente en JADE http Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

31

[19] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[20] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[21] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[22] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[23] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[24] Laboratorios Googlehttplabsgooglecompapershtml

[25] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[26] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

  • En este reporte teacutecnico se presenta la descripcioacuten general anaacutelisis y estado actual de de los trabajos terminales TT2006135 TT20060097 y TT20060068 que tienen por titulo ldquoSistema prototipo de deteccioacuten de intrusos en la red utilizando agentes inteligentesrdquo rdquoProcesamiento digital de imaacutegenes para la conversioacuten de texto a vozrdquo y ldquoSistema de buacutesqueda de informacioacuten por conceptos en la webrdquo respectivamente Los prototipos que se obtendraacuten seraacuten un software robusto que se desarrollaraacuten con teacutecnicas de inteligencia artificial como Agentes inteligentes y Redes neuronales
  • Estructura de un sistema neuronal artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
    • Estado Del Arte
      • Estructura de un sistema neuronal artificial
        • Sistemas paralelos distribuidos y adaptativos
          • Modelo estaacutendar de neurona artificial
            • Sigmoidal logariacutetmica
              • Empleo del perceptroacuten para reconocer funciones loacutegicas
              • Algoritmo de aprendizaje del perceptroacuten
                • Objetivo General
                • Estado Del Arte
                • A continuacioacuten se mencionan algunos de ellos
                  • Buscador muacuteltiple Copernic 2001 Pro
                  • Lets Browse
                  • Agentes de Informacioacuten
                    • Marco Conceptual
                      • Clases y Propiedades
                      • El sistema de escritura de datos [type system]
                      • Clases y Recursos como Conjuntos y Elementos
                        • Ontologiacuteas en la Representacioacuten del Conocimiento
                          • LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES
                          • JADE (Java Agent DEvelopment Framework)
                            • Disentildeo
                            • Arquitectura
Page 15: INSTITUTO POLITÉCNICO NACIONALsappi.ipn.mx/cgpi/archivos_anexo/20061387_3286.pdf · La comunicación del hombre con la computadora por medio del lenguaje natural, es la finalidad

15

Empleo del perceptroacuten para reconocer funciones loacutegicas -Funcion linealmente separable Consideremos la funcioacuten loacutegica NAND2 (AND negada de dos entradas) que representamos sobre un plano en la graacutefica 3 que se presenta en seguida

x (10) o (11)

x (00)

x (01) X1

X2

Figura 28 Funcioacuten loacutegica NAND de dos entradas En la graacutefica x = lsquo1rsquo y o = lsquo0rsquo

Se puede ver que en este caso existen paraacutemetros w1 w2 y Ө que permiten una recta que separa perfectamente las regiones correspondientes a los valores loacutegicos 0 y 1 Y por lo tanto se dice que la funcioacuten loacutegica NAND es linealmente separable -Funcioacuten no separable linealmente

Ahora consideremos la funcioacuten loacutegica or-exclusivo (XOR) y representandola en un plano en la figura 29

x (10) o (11)

o (00)

x (01) X1

X2

Figura 29 Funcioacuten loacutegica XOR de dos entradas que no es linealmente separable

16

Al ser XOR no linealmente separable se dice que ldquola clase de funciones no separables linealmente no pueden ser representadas por un perceptroacuten simplerdquo El perceptroacuten presenta serias limitaciones pues solamente puede representar funciones linealmentes separables Y aunque pueda aprender automaacuteticamente a representar complejas funciones booleanas o resolver con eacutexito muchos problemas de clasificacioacuten con un cierto algoritmo en ocasiones fallara draacutesticamente Minsky (que es uno de los padres de la inteligencia artificial) y Papera estudiaron en profundidad el perceptroacuten y en 1969 publicaron un exhaustivo trabajo donde exhibian las limitantes del modelo en lo que resultoacute decisivo para que muchos de los recursos que se destinaban a su investigacioacuten se desviara a otras aacutereas Una solucioacuten para las limitantes del perceptroacuten simple puede consistir en incluir maacutes capas en la arquitectura con lo que tendremos un perceptroacuten multicapa A finales de los antildeos sesenta ya se apuntaba como solucioacuten a las limitaciones del perceptroacuten introducir capas ocultas pero el problema estaba en que no se teniacutea un algoritmo de aprendizaje para el perceptroacuten multicapa (con capas ocultas) Dicho algoritmo fue propuesto por Paul Verbos alrededor de 1974 pero fue preciso hasta mediados de los ochenta cuando el grupo PDP redescubriera un algoritmo similar al cual denominaron Back-Propagation o BP y dieran a conocer a la comunidad internacional su gran potencial para la resolucioacuten de problemas praacutecticos

Algoritmo de aprendizaje del perceptroacuten El del perceptroacuten es un algoritmo de aprendizaje de los denominados por correccion de errores Los algoritmos de este tipo ajustan los pesos en proporcioacuten a la diferencia existente entre la salida actual de la red y la salida deseada con el objetivo de minimizar el error actual de la red Definicioacuten del algoritmo de aprendizaje Sea un conjunto de p patrones xn n=1hellipp con sus salidas deseadas tn Tanto las entradas como las salidas solamente pueden tomar los valores -1 o 1 Se tiene una arquitectura de perceptroacuten simple con pesos iniciales aleatorios y se requiere que clasifique correctamente todos los patrones del conjunto de aprendizaje (solo si son linealmente separables) Ahora actuaremos del siguiente modo ante la presentacioacuten del patron n-eacutesimo si la respuesta que proporciona el perceptroacuten es correcta no actualizaremos los pesos si es incorrecta los modificaremos seguacuten la regla de Hebb aplicada a nuestro caso Primero se muestra la regla de Hebb y despueacutes la regla modificada para el perceptroacuten simple Regla de Hebb

∆wij = ξyixjDonde

17

o wij corresponde a los pesos de una entrada j por la salida i de la neurona

o ξ se denomina ritmo de aprendizaje que su valor suele estar entre 1 y 0 Regla modificada para el perceptroacuten simple

2ξtnixnj si yn

ine tni ∆wn

ij(t)= 0 si yn

i= tni que puede reescribirse del siguiete modo que es la forma usual de expresar la regla del perceptroacuten

∆wnij(t)= 2ξ(tni - yn

i)xnj

Es importante mencionar que el proceso de aprendizaje es iterativo se

parte de una configuracioacuten sinaacuteptica de partida (normalmente de pesos pequentildeos aleatorios) y se presentan una y otra vez los patrones para que los pesos se ajusten iterativamente seguacuten forma usual de la regla del perceptroacuten hasta que todos queden bien clasificados El hiperplano que establece el liacutemite entre dos clases se desplaza lentamente hasta conseguir separarlas por completo (si es posible) como se ve en la figura 210

t= 115

x x

x x x

x x x

x

x

o

o o

o o o o

o

o o

o

o

o

o

o

o

o

X2

t= 21

t= 0 t= 4

X1

Figura 210 Regiones de decisioacuten que establece iterativamente el perceptroacuten durante el aprendizaje (en la iteracioacuten 115 ha conseguido separar ya las dos clases)

Avances En este capiacutetulo se haraacute una descripcioacuten de los avances que se han hecho hasta el momento Se hablaraacute acerca del entrenamiento de la red neuronal del sistema el reconocimiento de caracteres tanto con la red neuronal como con los clasificadores ya expuestos y el tratamiento de imaacutegenes para eliminar el ruido tipo sal y pimienta Reconocimiento de caracteres Se han hecho avances acerca del reconocimiento de caracteres utilizando redes neuronales y clasificadores diversos A continuacioacuten se exponen dichos avances

Entrenamiento de la red neuronal Para entrenar la red neuronal se utilizoacute el algoritmo de retropropagacioacuten expuesto en el capiacutetulo 1 Se disentildeoacute un programa en Java que permite entrenar una red neuronal de 3

18

capas La cantidad de clases a discriminar es variable y para este caso se utilizoacute una matriz de 5x8 es decir se tomaron 40 rasgos de entrada

Utilizando la red neuronal para reconocer caracteres A continuacioacuten se muestra en la imagen 211 el programa disentildeado en Java que permite discriminar un nuacutemero variable de clases Para este caso se eligioacute discriminar entre los diacutegitos del 0 al 9 El programa para reconocer los 128 caracteres referentes al sintetizador de voz tendraacute una interfaz similar con la diferencia de que la rejilla para ingresar el patroacuten a reconocer seraacute de 20x20 El programa mostrado fue programado tanto para entrenar la red como para reconocer los diacutegitos Se puede elegir entre los entrenamientos hechos para probar la efectividad de la red Las estadiacutesticas del entrenamiento elegido se muestran en la parte inferior de la pantalla

Imagen 211 Reconocimiento de los diacutegitos del 0 al 9 utilizando una red neuronal de 3 capas

19

Utilizando los clasificadores para reconocer caracteres Dentro de las teacutecnicas de reconocimiento de patrones existen diferentes clasificadores que nos permiten a partir de un conjunto de entrenamiento (en eacuteste caso un conjunto de tipos de letras que deseamos reconocer) saber a queacute clase pertenece un patroacuten de prueba que se introduce

Imagen 212 Un ejemplo de un clasificador KNN con un valor de K=3 y usando la meacutetrica City-Block para clasificar el patroacuten de prueba pruebabmp entre tres clases

En la imagen 212 se muestra como se puede clasificar un caraacutecter escalado de la imagen prueba 4bmp dentro de las tres clases existentes Se observa que si se puede clasificar este tipo de patrones pero veamos un ejemplo donde no sea posible clasificar un patroacuten de prueba y por queacute

Imagen 213 Un ejemplo de un clasificador KNN con un valor de K=5 y usando la meacutetrica Euclidiana para clasificar el patroacuten de prueba prueb3bmp entre tres clases El patroacuten no fue reconocido correctamente

20

Ahora como se observa no se pudo clasificar correctamente el patroacuten de prueba ya que pertenece claramente a la clase 3 pero por el clasificador que usamos o por el nuacutemero de K-vecinos o por el tipo de meacutetrica usada sucedioacute que en su mayoriacutea eran de la clase 2 y no de la clase 3 Tal vez si se hubiera elegido un valor de K menor a 5 tendriacutea maacutes posibilidades de clasificar correctamente Finalmente usar este tipo de teacutecnicas para reconocer caracteres es muy bueno ya que permite reconocer letras que se encuentran rotadas escaladas o trasladadas por una teacutecnica matemaacutetica llamada Momentos de Hu pero al tener una situacioacuten donde la imagen de prueba se encuentra exactamente a la misma distancia de dos o mas clases se crea el problema de no saber a que clase clasificar dicho patroacuten

Tratamiento digital de las imaacutegenes a capturar A continuacioacuten se muestra en la imagen 214 un programa que se codificoacute en C++ Builder y permite tratar digitalmente imaacutegenes BMP con la finalidad de eliminar el ruido pasarlas a escala de grises y binarizarlas El programa es capaz de generar histogramas de color

Imagen 214 Programa para tratar imaacutegenes digitalmente

21

CAPIacuteTULO 3 Buscadores La informacioacuten almacenada tendriacutea poco valor si no podemos consultarla buscar los datos en una base de datos o en muchas bases de datos que tienen conexioacuten por medio de la web es lo que nos permite explotar la informacioacuten Sin embargo la buacutesqueda seraacute eficiente si la respuesta del buscador es lo maacutes especifica o cercana a los temas solicitados Por lo que el software con aplicacioacuten de buscador es importante desarrollar un proceso para su creacioacuten Objetivo General Desarrollar un sistema de buacutesqueda de informacioacuten por conceptos en la Web basado en agentes inteligentes mediante la aplicacioacuten de ontologiacuteas Estado Del Arte Existen algunos sistemas que proporcionan buacutesquedas de informacioacuten basados en algunas de las tecnologiacuteas que vamos a utilizar Es habitual encontrar este tipo de buscadores y algunos otros similares bautizados como Megabuscadores o Multibuscadores a pesar de que estos teacuterminos no sean los maacutes idoacuteneos por lo que al hablar de este tipo de sistemas podemos referirlos como Buscadores Muacuteltiples en virtud de las caracteriacutesticas de su funcionamiento A continuacioacuten se mencionan algunos de ellos

Buscador muacuteltiple Copernic 2001 Pro Copernici producto de la empresa canadiense Copernic Technologies es un agente buscador que transfiere una ecuacioacuten de buacutesqueda a un conjunto de buscadores de manera simultaacutenea recupera las referencias pertinentes y las ordena seguacuten el grado medio de relevancia obtenido de cada uno de los buscadores La empresa creadora de Copernic se constituyoacute en 1996 con el propoacutesito de desarrollar soluciones innovadoras en tecnologiacuteas de agentes de buacutesqueda para conseguir un acceso y una gestioacuten eficientes de la gran masa de informacioacuten presente en Internet El programa se desarrolloacute el antildeo siguiente en una versioacuten experimental y se puso al alcance del puacuteblico en noviembre de 1998 Desde entonces se han lanzado versiones con elementos nuevos la mayoriacutea de los cuales no obstante soacutelo estaacuten disponibles en las ediciones comerciales La edicioacuten gratuita ofrece los servicios baacutesicos de consulta y con la intencioacuten de persuadir a los posibles compradores de las ediciones comerciales da una idea bastante aproximada de las posibilidades del programa completo

Lets Browse Como en otros medios (por ejemplo la televisioacuten) la navegacioacuten en Internet puede ser realizada por grupos de gente [Lieberman et al 1997] Lets browse muestra como un agente puede asistir a un grupo de gente en su navegacioacuten sugirieacutendoles materiales nuevos que puedan ser de intereacutes comuacuten entre ellos

Este trabajo es una extensioacuten del agente Letizia [Lieberman 1995] el cual selecciona paacuteginas de Web Letizia inicia una buacutesqueda por niveles visita las ligas que encuentra a partir de la paacutegina que su usuario esteacute revisando y selecciona aquellas que sean similares a los intereses que ha aprendido de su usuario (observando su navegacioacuten) Posteriormente muestra sus recomendaciones en un canal de navegacioacuten

22

El trabajo del agente consiste en seleccionar de la misma forma que Letizia lo hace aquellas paacuteginas que mejor satisfagan los intereses de todos los participantes Las caracteriacutesticas de Letrsquos browse son la deteccioacuten automaacutetica de la presencia de usuarios navegacioacuten automaacutetica (en canal de navegacioacuten) el despliege dinaacutemico de las preferencias de los usuarios y la explicacioacuten de las recomendaciones Permite ademaacutes revisar las paacuteginas desde el punto de vista de otra persona (con sus preferencias) y asiacute estimar cual seriacutea su posible opinioacuten acerca de dicha paacutegina auacuten cuando aquella persona no la haya revisado anteriormente

Agentes de Informacioacuten Un agente de informacioacuteiin es utilizado para organizar los espacios de informacioacuten del usuario y facilitar su explotacioacuten En el WWW (World Wide Web) se estaacuten implementando diversos agentes de informacioacuten El Agente Letizia [Lieberman 1995] que existe en un navegador de Web anticipa queacute artiacuteculos pueden ser de intereacutes para el usuario basaacutendose en las conductas pasadas del usuario Las paacuteginas que cree son de intereacutes del usuario Letizia las despliega en una ventana de sugerencias por unos instantes Marco Conceptual Actualmente para poder hacer la consulta de cualquier tipo de informacioacuten en Internet la mayoriacutea de las personas recurre a los motores de buacutesquedas conocidos como Google Yahoo Altavista por mencionar algunos siendo que estos usan diferentes meacutetodos para llegar a su objetivo podemos darnos cuenta que arrojan distintos resultados uno de otro que en el mejor de los casos coinciden en un porcentaje muy poco satisfactorio con la buacutesqueda en cuestioacuten con lo que concluimos que una respuesta a esta falta de precisioacuten en cuanto a la buacutesqueda de un tema en especial es mejor la buacutesqueda de conceptos lo cual permite al usuario acercarse maacutes al tema de su intereacutes Es importante enfocar nuestra solucioacuten apoyaacutendonos en un motor de buacutesqueda y aplicando herramientas como los Agentes que nos permitan recopilar la informacioacuten maacutes precisa de cada buacutesqueda a traveacutes de un algoritmo propio obteniendo resultados maacutes cercanos a los deseados ya que estos provienen de muacuteltiples documentos ahorrando tiempo y ganando precisioacuten a la vez Muy frecuentemente encontramos que cuando se trata de buacutesquedas en Internet a traveacutes de los motores de buacutesqueda populares los usuarios hacen consultas de diversas paginas y es muy difiacutecil llevar una lista de todos los sitios visitados o de aquellos que nos mostraron la informacioacuten maacutes adecuada nuestro sistema es capaz de registrar dentro de una base de datos un iacutendice de todos los sitios que se obtuvieron en la buacutesqueda de un tema o concepto con lo que el usuario no tendraacute que realizar una ldquonuevardquo buacutesqueda de un tema antes consultado sino que tendraacute a la mano todos los sitios que arrojoacute la primera buacutesqueda Marco teoacuterico

Descripcioacuten de RDF

El Resource Description Frameworiiik (RDF) es un fundamento para el procesamiento de metadatos proporciona interoperabilidad entre aplicaciones que intercambian informacioacuten legible por maacutequina en la Web RDF utiliza XML para intercambiar descripciones de recursos Web pero los recursos descritos pueden ser de cualquier tipo

23

incluyendo recursos XML y no-XML RDF resalta las facilidades para hacer posible el procesamiento automaacutetico de los recursos Web RDF puede utilizarse en diferentes aacutereas de aplicacioacuten por ejemplo en la recuperacioacuten de recursos para proporcionar mejores capacidades a los motores de buacutesqueda en catalogacioacuten para la descripcioacuten de contenido y relaciones de contenido accesibles en un sitio Web particular en una paacutegina o biblioteca digital a traveacutes de agentes de software inteligente para facilitar que el conocimiento se comparta e intercambie en la valoracioacuten de contenido en la descripcioacuten de colecciones de paacuteginas que representan un documento loacutegico individual para la descripcioacuten de los derechos de propiedad intelectual de las paacuteginas Web y para expresar las preferencias de privacidad de un usuario asiacute como las poliacuteticas de privacidad de un sitio Web Las descripciones utilizadas por estas aplicaciones pueden modelarse como relaciones entre recursos Web El modelo de datos de RDF tal y como se especifica en RDFMS define un modelo simple para describir las relaciones entre recursos en teacuterminos de propiedades y valores designadas Las propiedades RDF pueden entenderse como atributos de un recurso y en este sentido corresponden con los tradicionales pares atributo-valor Las propiedades RDF tambieacuten representa relaciones entre recursos De esta forma el modelo de datos RDF puede parecer un diagrama entidad-relacioacuten El modelo de datos RDF sin embargo no proporciona mecanismos para declarar estas propiedades ni proporcionan ninguacuten mecanismo para definir las relaciones entre estas propiedades y otros recursos Este es el papel [la funcioacuten] del Esquema RDF

Las comunidades de descripcioacuten de recursos necesitan la habilidad para decir ciertas cosas sobre ciertas clases de recursos Para describir recursos bibliograacuteficos por ejemplo son habituales atributos descriptivos tales como autor [author] tiacutetulo [title] y materia [subject] Para la certificacioacuten digital se necesitan muchas veces atributos tales como esquema simple de deteccioacuten de errores [checksum] y autorizacioacuten [authorization] La declaracioacuten de estas propiedades (atributos) y su semaacutentica correspondiente se definen en el contexto de RDF como un Esquema RDF Un esquema define no soacutelo las propiedades de un recurso (ej tiacutetulo autor materia tamantildeo color etc) sino que puede tambieacuten definir los tipos de recursos que se describiraacuten (libros paacuteginas Web personas empresas etc)

Los Esquemas RDF podriacutean contrastarse con las Definiciones del Tipo de Documentos (DTDs) de XML y los Esquemas XML A diferencia de una DTD o Esquema XML que dan restricciones especiacuteficas en la estructura de un documento XML un Esquema RDF proporciona informacioacuten sobre la interpretacioacuten de una sentencia dada en un modelo de datos RDF Mientras un Esquema XML puede utilizarse para validar la sintaxis de una expresioacuten RDFXML un esquema sintaacutectico soacutelo no es suficiente para los objetivos de RDF Los Esquemas RDF pueden tambieacuten especificar restricciones que deben seguirse por estos modelos de datos

Clases y Propiedades Un Esquema RDF se expresa a traveacutes de un modelo de datos descrito en la especificacioacuten del Modelo y la Sintaxis RDF [RDFMS] El lenguaje de descripcioacuten del esquema es un simple conjunto de recursos y propiedades definidos por la Especificacioacuten del Esquema RDF y la parte impliacutecita de cada modelo RDF que utiliza la mecaacutenica del esquema RDF

24

El sistema de escritura de datos [type system] El Esquema RDF definido en esta especificacioacuten es una coleccioacuten de recursos RDF que puede utilizarse para describir propiedades de otros recursos RDF (incluyendo propiedades) que definene vocabularios RDF de aplicacioacuten especiacutefica El nuacutecleo del vocabulario del esquema se define en un namespace denominado aquiacute informalmente rdfs e identificado por el URI de referencia httpwwww3org200001rdf-schema Esta especificacioacuten utiliza tambieacuten el prefijo rdf para referirse al namespace principal RDF httpwwww3org19990222-rdf-syntax-ns

Como se describe en la especificacioacuten del modelo y la sintaxis [RDFMS] los recursos pueden ser objetos especiacuteficos de una categoriacutea [instances] de una o maacutes clases esto se indica con la propiedad rdftype Las clases se organizan muchas veces de una forma jeraacuterquica por ejemplo la clase Dog [perro] podriacutea considerarse subclase de Mammal [mamiacutefero] que a su vez es una subclase de Animal dando a entender que cualquier recurso que esteacute en rdftype Dog se considera tambieacuten que estaacute en rdftype AnimalEsta especificacioacuten describe una propiedad rdfssubClassOf para indicar dichas relaciones entre clases

El sistema de escritura [type system] del Esquema RDF es similar al sistema de los lenguajes de programacioacuten orientados a objetos tales como Java Sin embargo RDF se diferencia de muchos de esos sistemas en que en lugar de definir una clase en teacuterminos de propiedades sus objetos especiacuteficos de una categoriacutea [instances] pueden tener un esquema RDF que definiraacute las propiedades en teacuterminos de clases de recurso a los que se aplican Este es el papel de las restricciones rdfsdomain y de rdfsrange

Por ejemplo podemos definir que la propiedad author tenga un dominio de Book y un alcance de Literal mientras que un sistema OO claacutesico podriacutea definir tiacutepicamente una clase Book con un atributo denominado author de tipo Literal

Clases y Recursos como Conjuntos y Elementos El siguiente esquema ilustra el concepto de clase subclase y recurso Una clase se describe por un rectaacutengulo redondeado un recurso se describe por un punto grande En la figura abajo se han dibujado flechas desde un recurso a una clase que define Una subclase se presenta en un rectaacutengulo redondeado (la subclase) completamente incluido en otro (la superclase) Si un recurso estaacute dentro de una clase entonces existe una propiedad rdftype o expliacutecita o impliacutecita de aquel recurso cuyo valor es un recurso que define la clase que contiene (Estas propiedades se muestran como arcos en la representacioacuten graacutefica directamente etiquetada en el Esquema 2) El recurso RDF representado en el esquema 1 se describe tanto en el resto de esta especificacioacuten como en la especificacioacuten del Modelo y Sintaxis RDF

Ontologiacuteas en la Representacioacuten del Conocimiento En estos uacuteltimos antildeos se incrementoacute la cantidad de informacioacuten en la Internet lo cual motivoacute el incremento de la complejidad y la diversidad de la informacioacuten Esto tambieacuten motivoacute el intereacutes de automatizar muchas actividades que tradicionalmente se realizan en forma manual La principal motivacioacuten en el uso de las ontologiacuteas es que permiten compartir y reutilizar conocimiento en un dominio De ahiacute el intereacutes de muchos

25

investigadores en el aacuterea de inteligencia artificial para tratar de aplicar las ontologiacuteas en la representacioacuten de conocimiento Las ontologiacuteas son un elemento importante en la Web Semaacutentica y es un teacutermino filosoacutefico que trata sobre la naturaleza de la existencia y los tipos de objetos que existen Tambieacuten la ontologiacutea se puede definir como una especificacioacuten expliacutecita de una conceptualizacioacuten compartida La conceptualizacioacuten se refiere a un modelo abstracto de un fenoacutemeno en el mundo en donde se tienen que identificar los conceptos relevantes de este fenoacutemeno El teacutermino expliacutecito significa queacute tipos de conceptos son usados y las restricciones de estos conceptos Y por uacuteltimo el teacutermino compartido se refiere a que las ontologiacuteas capturan conocimiento que es aceptado por todos y no es individual de un grupo Actualmente se les estaacute dando maacutes uso a las ontologiacuteas en el campo de la Inteligencia Artificial En este campo se define la ontologiacutea como una descripcioacuten formal y expliacutecita de conceptos de un dominio (classes a las que nos referiremos como conceptos) propiedades de cada concepto las cuales describen las caracteriacutesticas y atributos de los conceptos (slots llamados tambieacuten como propiedades o roles) y restricciones de las propiedades (facets conocidas como restricciones) La informacioacuten que es representada a traveacutes de los lenguajes semaacutenticos puede ser compartida entre aplicaciones como los agentes

OWL y Web Semaacutentica

La Web Semaacutentica es una Web extendida dotada de mayor significado en la que cualquier usuario en Internet podraacute encontrar respuestas a sus preguntas de forma maacutes raacutepida y sencilla gracias a una informacioacuten mejor definida Al dotar a la Web de maacutes significado y por lo tanto de maacutes semaacutentica se pueden obtener soluciones a problemas habituales en la buacutesqueda de informacioacuten gracias a la utilizacioacuten de una infraestructura comuacuten mediante la cual es posible compartir procesar y transferir informacioacuten de forma sencilla Esta Web extendida y basada en el significado se apoya en lenguajes universales que resuelven los problemas ocasionados por una Web carente de semaacutentica en la que en ocasiones el acceso a la informacioacuten se convierte en una tarea difiacutecil y frustrante

LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES La comunicacioacuten es uno de los aspectos importantes dentro de una comunidad de agentes la cual permitiraacute compartir y enviar mensajes entre agentes Los meacutetodos tradicionales permiten la comunicacioacuten entre los agentes pero eacutestos no son suficientes para lograr un comportamiento social entre los agentes para ello es necesario que los mensajes tengan un significado y contenido semaacutentico Se han desarrollado varios lenguajes los cuales son usados para el enviacuteo de mensajes a continuacioacuten hablaremos de dos de ellos KQML Knowledge Query and Manipulation Language (KQML) es uno de los lenguajes que nos provee la estructura para enviar mensajes entre agentes Dentro de sus principales caracteriacutesticas tenemos que es independiente de la sintaxis del contenido y la ontologiacutea

26

que se utilizaraacute Asiacute mismo es independiente del mecanismo de transporte (TCPIP SMTP IIOP etc) e independiente del contenido del lenguaje (KIF SQL STEP Prolog etc) KQML fue desarrollado por el consorcio DARPA Knowledge Sharing Effort (KSE) cuyo principal objetivo fue desarrollar una base tecnoloacutegica para construir en forma progresiva sistemas cada vez con maacutes funcionalidad complejidad y amplitud KQML provee un lenguaje y un protocolo para intercambiar informacioacuten entre agentes inteligentes y para lograr este intercambio se tiene que compartir una sintaxis y una semaacutentica comuacuten para que los mensajes sean entendidos por los agentes Al lenguaje KQML se le dividioacute en tres capas la capa de contenido alberga el contenido del mensaje que es especificado en cualquier formato ya sea texto o binario La capa de comunicacioacuten contiene paraacutemetros como el identificador uacutenico asociado a la comunicacioacuten identidad del remitente e identidad del destinatario La capa de mensaje define tanto los diferentes tipos de interaccioacuten que se pueden establecer entre los agentes como los protocolos que se pueden establecer entre los agentes Tambieacuten incluye otras caracteriacutesticas como el lenguaje de representacioacuten o la ontologiacutea siendo ambos opcionales

JADE (Java Agent DEvelopment Framework)

JADEiv (Java Agent DEvelopment Framework) es un middleware que proporciona tanto un entorno de desarrollo como un entorno de ejecucioacuten para la realizacioacuten y mantenimiento de sistemas multiagente El entorno de desarrollo estaacute formado por una serie de libreriacuteas en Java que permiten la implementacioacuten de agentes de manera limpia e independiente de la plataforma sobre la que se va a ejecutar El entorno de ejecucioacuten permite a los agentes vivir y comunicarse entre ellos Estaacute realizado enteramente en Java y proporciona una serie de herramientas que permiten al desarrollador controlar y depurar a los agentes en tiempo real JADE es un middleware desarrollado por TILAB para el desarrollo de aplicaciones distribuidas multiagente JADE proporciona tanto el entorno de desarrollo para la creacioacuten de aplicaciones basadas en agentes como el entorno de ejecucioacuten JADE presenta las siguientes caracteriacutesticas

P2P Arquitectura peer-to-peer cada agente puede tomar la iniciativa en una comunicacioacuten o bien responder a peticiones que le hagan otros agentes

Interoperabilidad JADE cumple con las especificaciones FIPA por lo que los agentes desarrollados en JADE pueden interactuar con otros agentes que no tienen porque estar desarrollados con JADE aunque si deben seguir las especificaciones FIPA

Portabilidad La API que proporciona JADE es independientemente de la red sobre la que va a operar asiacute como de la versioacuten de Java utilizada teniendo la misma API para J2EE J2SE y J2ME

27

Intuitiva JADE se ha desarrollado para ofrecer una API faacutecil de aprender y sencilla de manejar

Los agentes JADE tienen nombres uacutenicos y se permite a cada agente descubrir a otros agentes y comunicarse con ellos mediante comunicaciones punto a punto Los agentes proporcionan servicios cada agente puede buscar a otros dependiendo de los servicios que proporcionen otros agentes La comunicacioacuten entre agentes se lleva a cabo a traveacutes de mensajes asiacutencronos es decir el agente que enviacutea el mensaje y el destinatario del mensaje no tienen porqueacute estar disponibles al mismo tiempo Es maacutes el destinatario no tiene porqueacute existir en ese instante Los mensajes se pueden enviar a un agente en concreto o se pueden enviar a agentes que se desconocen pero se sabe que poseen unas ciertas caracteriacutesticas JADE proporciona mecanismos de seguridad ya que habraacute agentes a los que no se les esteacute permitido comunicarse con otros agentes de manera que una aplicacioacuten puede verificar la identidad del receptor y del agente que enviacutea el mensaje y no dejar realizar actuaciones no permitidas para un determinado agente La estructura de los mensajes se basa en el lenguaje ACL (Agent Communication Lenguaje) que ha sido definido por la FIPA JADE facilita mecanismos para el desarrollo de los objetivos que deben alcanzar los agentes Los comportamientos (behaviours) y la comunicacioacuten entre los agentes (junto con el servicio de paacuteginas amarillas) proporcionan los recursos necesarios para programar un sistema multiagente JADE tambieacuten permite a los agentes cambiar de Host (en J2SE) Un agente puede interrumpir en un momento dado su ejecucioacuten migrar a otro host (sin necesidad de que el coacutedigo esteacute previamente en el host destino) y continuar la ejecucioacuten en el mismo punto en el que la interrumpioacute Esto permite un balanceo de carga ya que permite a los agentes migrar hosts menos cargados El entorno de ejecucioacuten proporciona un marco donde poder ejecutar los agentes y herramientas graacuteficas para su monitorizacioacuten y depuracioacuten Los agentes JADE necesitan del entorno de ejecucioacuten donde poder vivir Cada instancia del entorno de ejecucioacuten se denomina contenedor (container) Al conjunto de los contenedores se le denomina plataforma (platform) y proporciona una capa que oculta a los agentes (y al desarrollador) el entorno donde se ha decidido ejecutar la aplicacioacuten En cada plataforma debe existir un contenedor especial denominado contenedor principal (main container) La principal diferencia del contenedor principal respecto al resto de contenedores es que alberga dos agentes especiales

AMS (Agent Management System) Este agente proporciona el servicio de nombres asegurando que cada agente en la plataforma disponga de un nombre uacutenico Tambieacuten representa la autoridad es posible crear y matar agentes en contenedores remotos requeriendoselo al agente AMS

DF (Directory Facilitator) Proporciona el servicio de Paacuteginas Amarillas Gracias al agente DF un agente puede encontrar otros agentes que provean los servicios necesarios para lograr sus objetivos

28

La caracteriacutestica mas importante del entorno de ejecucioacuten es la interfaz graacutefica que proporciona desde la que podemos controlar y depurar los agentes existentes Todas las herramientas han sido desarrolladas como agentes y siguen sus mismas reglas Disentildeo Arquitectura

Agente usuario

Agente de ontologiacutea

Agente de filtrado

Agente de recuperacioacuten

BD

OntologiacuteaSistema

Motor de buacutesqueda

El sistema esta disentildeado para que un usuario realice alguna buacutesqueda relacionada con alguno de los tres temas propuestos en nuestra base de conocimiento que son Ingenieriacutea de Software Base de Datos y Deportes El sistema esta basado en una arquitectura multiagente la cual se conforma por Agente Usuario Actuacutea de intermediario entre el usuario y el sistema Sus servicios son solicitados por el usuario para resolver las consultas El usuario le suministra una consulta y el sistema le devuelve una lista de documentos que pueden satisfacer sus necesidades Este agente tiene la capacidad de acceder a la base de datos con el objetivo de almacenar yo recuperar resultados Base de Datos Guardaraacute las ultimas buacutesquedas realizadas para su posterior consulta a peticioacuten del usuario Agente de Filtrado Gestiona la recuperacioacuten de documentos y realiza el filtrado de los mismos proporcionados por el Agente de Recuperacioacuten Recibe la peticioacuten del Agente Usuario y a su vez esta es enviada al Agente Ontologiacutea para que este regrese una evaluacioacuten de la consulta y de esta forma conocer si es necesaria una redefinicioacuten de la consulta En caso de ser necesaria se espera recibir el nuevo vector de consulta hasta que se cumpla una de dos opciones el usuario deje de redefinir la consulta o la consulta sea concreta Cuando la consulta sea concreta es enviada de nueva cuenta al Agente Ontologiacutea el cual regresaraacute el Nuevo Vector Expandido Este seraacute enviado al Agente de Recuperacioacuten Cuando el Agente de Recuperacioacuten regrese los urlacutes de los resultados (con sus respectivos vectores de teacuterminos) se realiza una evaluacioacuten de los vectores de cada documento con respecto al vector de buacutesqueda expandida con el objetivo de asignarles una calificacioacuten Gracias a esta calificacioacuten podemos obtener aquellos documentos que mejor cumplan con las expectativas del usuario (Estos documentos son regresados al Agente Usuario) Agente Ontologiacutea Recibe el vector de consulta proporcionado por el Agente de Filtrado La informacioacuten contenida en el vector de consulta es comparada con la existente en nuestra ontologiacutea Una vez verificada la existencia de la informacioacuten del

29

vector consulta dentro de la ontologiacutea este se encarga de devolver la distancia y el umbral al Agente de Filtrado Se espera que este devuelva una peticioacuten para expandir ese mismo vector Puede darse el caso de obtener dos tipos de buacutesquedas una general y otra mucho maacutes definida En cualquiera de los caso obtenemos un nuevo vector de buacutesqueda (con una informacioacuten mejor definida este es el Vector de Buacutesqueda Expandido) que es enviado de regreso al Agente de Filtrado el cual genera una copia y le es enviada al Agente de Recuperacioacuten Ontologiacutea Representa nuestra base de conocimientos Esta compuesta por tres aacutereas de conocimiento las cuales son Ingenieriacutea se Software Bases de Datos y Deportes Para poder representar esta ontologiacutea en un lenguaje entendible para agentes inteligentes se programaraacute bajo los fundamentos de las estructuras RDF contenidas en las especificaciones de XML y siguiendo los estaacutendares de la W3C Agente Recuperacioacuten Realiza la buacutesqueda gracias a la informacioacuten que le es entregada por el Agente de Filtrado (se trata Vector de Buacutesqueda Expandido generado por el Agente de Ontologiacutea) El agente estructura esta informacioacuten y se introduce en un motor de buacutesqueda(diacutegase por ejemplo Google) de tal manera que obtengamos una lista de posibles documentos A cada documento se le asigna un vector de teacuterminos con sus pesos derivados de un anaacutelisis TFIDF para despueacutes regresar las urlacutes con su respectivo vector de teacuterminos al Agente Filtrado RESULTADOS Este proyecto tiene la finalidad de desarrollar el software para un antivirus y un traductor Pero durante los estudios de anaacutelisis de estos dos productos se encontroacute que el software para la buacutesqueda de la informacioacuten tambieacuten puede ser implementada por medio de teacutecnicas de Inteligencia Artificial Para construir el software de aplicacioacuten para estas necesidades se usa la metodologiacutea de cascada Donde los pasos a seguir son el Anaacutelisis Disentildeo Pruebas Implementacioacuten y Mantenimiento Hasta este momento estamos en la etapa de pruebas de algunos moacutedulos de los tres productos IMPACTO El detector de intrusos en una red es de mucha importancia debido a que en la actualidad se han diseminado muchos virus que pueden ser transmitidos a traveacutes de intrusos Hasta la fecha el meacutetodo de proteccioacuten se hace de forma manual La finalidad de este software es automatizar la proteccioacuten El traductor de texto a voz tiene como primera aplicacioacuten el auxilio en la lectura de documentos para las personas invidentes o deacutebiles visuales una segunda aplicacioacuten es la comunicacioacuten con la computadora por medio del lenguaje natura El buscador de informacioacuten es un auxilio en la buacutesqueda de datos en una base de datos de conocimiento Ya que tambieacuten estaacuten proliferando las bibliotecas virtuales es una ayuda en la localizacioacuten de informacioacuten cientiacutefica y un preaacutembulo para un software de apoyo docente BIBLIOGRAFIacuteA [1] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

30

[2] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps[3] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[4] w3c en espantildeol OWL y Web Semaacutentica httpwwww3cesDivulgacionGuiasbrevesWebSemantica

[5] Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

[6] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[7] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[8] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[9] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[10] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[11] Laboratorios Googlehttplabsgooglecompapershtml

[12] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[13] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

[14] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

[15] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps [16] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[18] Trabajos de Agente en JADE http Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

31

[19] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[20] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[21] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[22] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[23] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[24] Laboratorios Googlehttplabsgooglecompapershtml

[25] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[26] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

  • En este reporte teacutecnico se presenta la descripcioacuten general anaacutelisis y estado actual de de los trabajos terminales TT2006135 TT20060097 y TT20060068 que tienen por titulo ldquoSistema prototipo de deteccioacuten de intrusos en la red utilizando agentes inteligentesrdquo rdquoProcesamiento digital de imaacutegenes para la conversioacuten de texto a vozrdquo y ldquoSistema de buacutesqueda de informacioacuten por conceptos en la webrdquo respectivamente Los prototipos que se obtendraacuten seraacuten un software robusto que se desarrollaraacuten con teacutecnicas de inteligencia artificial como Agentes inteligentes y Redes neuronales
  • Estructura de un sistema neuronal artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
    • Estado Del Arte
      • Estructura de un sistema neuronal artificial
        • Sistemas paralelos distribuidos y adaptativos
          • Modelo estaacutendar de neurona artificial
            • Sigmoidal logariacutetmica
              • Empleo del perceptroacuten para reconocer funciones loacutegicas
              • Algoritmo de aprendizaje del perceptroacuten
                • Objetivo General
                • Estado Del Arte
                • A continuacioacuten se mencionan algunos de ellos
                  • Buscador muacuteltiple Copernic 2001 Pro
                  • Lets Browse
                  • Agentes de Informacioacuten
                    • Marco Conceptual
                      • Clases y Propiedades
                      • El sistema de escritura de datos [type system]
                      • Clases y Recursos como Conjuntos y Elementos
                        • Ontologiacuteas en la Representacioacuten del Conocimiento
                          • LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES
                          • JADE (Java Agent DEvelopment Framework)
                            • Disentildeo
                            • Arquitectura
Page 16: INSTITUTO POLITÉCNICO NACIONALsappi.ipn.mx/cgpi/archivos_anexo/20061387_3286.pdf · La comunicación del hombre con la computadora por medio del lenguaje natural, es la finalidad

16

Al ser XOR no linealmente separable se dice que ldquola clase de funciones no separables linealmente no pueden ser representadas por un perceptroacuten simplerdquo El perceptroacuten presenta serias limitaciones pues solamente puede representar funciones linealmentes separables Y aunque pueda aprender automaacuteticamente a representar complejas funciones booleanas o resolver con eacutexito muchos problemas de clasificacioacuten con un cierto algoritmo en ocasiones fallara draacutesticamente Minsky (que es uno de los padres de la inteligencia artificial) y Papera estudiaron en profundidad el perceptroacuten y en 1969 publicaron un exhaustivo trabajo donde exhibian las limitantes del modelo en lo que resultoacute decisivo para que muchos de los recursos que se destinaban a su investigacioacuten se desviara a otras aacutereas Una solucioacuten para las limitantes del perceptroacuten simple puede consistir en incluir maacutes capas en la arquitectura con lo que tendremos un perceptroacuten multicapa A finales de los antildeos sesenta ya se apuntaba como solucioacuten a las limitaciones del perceptroacuten introducir capas ocultas pero el problema estaba en que no se teniacutea un algoritmo de aprendizaje para el perceptroacuten multicapa (con capas ocultas) Dicho algoritmo fue propuesto por Paul Verbos alrededor de 1974 pero fue preciso hasta mediados de los ochenta cuando el grupo PDP redescubriera un algoritmo similar al cual denominaron Back-Propagation o BP y dieran a conocer a la comunidad internacional su gran potencial para la resolucioacuten de problemas praacutecticos

Algoritmo de aprendizaje del perceptroacuten El del perceptroacuten es un algoritmo de aprendizaje de los denominados por correccion de errores Los algoritmos de este tipo ajustan los pesos en proporcioacuten a la diferencia existente entre la salida actual de la red y la salida deseada con el objetivo de minimizar el error actual de la red Definicioacuten del algoritmo de aprendizaje Sea un conjunto de p patrones xn n=1hellipp con sus salidas deseadas tn Tanto las entradas como las salidas solamente pueden tomar los valores -1 o 1 Se tiene una arquitectura de perceptroacuten simple con pesos iniciales aleatorios y se requiere que clasifique correctamente todos los patrones del conjunto de aprendizaje (solo si son linealmente separables) Ahora actuaremos del siguiente modo ante la presentacioacuten del patron n-eacutesimo si la respuesta que proporciona el perceptroacuten es correcta no actualizaremos los pesos si es incorrecta los modificaremos seguacuten la regla de Hebb aplicada a nuestro caso Primero se muestra la regla de Hebb y despueacutes la regla modificada para el perceptroacuten simple Regla de Hebb

∆wij = ξyixjDonde

17

o wij corresponde a los pesos de una entrada j por la salida i de la neurona

o ξ se denomina ritmo de aprendizaje que su valor suele estar entre 1 y 0 Regla modificada para el perceptroacuten simple

2ξtnixnj si yn

ine tni ∆wn

ij(t)= 0 si yn

i= tni que puede reescribirse del siguiete modo que es la forma usual de expresar la regla del perceptroacuten

∆wnij(t)= 2ξ(tni - yn

i)xnj

Es importante mencionar que el proceso de aprendizaje es iterativo se

parte de una configuracioacuten sinaacuteptica de partida (normalmente de pesos pequentildeos aleatorios) y se presentan una y otra vez los patrones para que los pesos se ajusten iterativamente seguacuten forma usual de la regla del perceptroacuten hasta que todos queden bien clasificados El hiperplano que establece el liacutemite entre dos clases se desplaza lentamente hasta conseguir separarlas por completo (si es posible) como se ve en la figura 210

t= 115

x x

x x x

x x x

x

x

o

o o

o o o o

o

o o

o

o

o

o

o

o

o

X2

t= 21

t= 0 t= 4

X1

Figura 210 Regiones de decisioacuten que establece iterativamente el perceptroacuten durante el aprendizaje (en la iteracioacuten 115 ha conseguido separar ya las dos clases)

Avances En este capiacutetulo se haraacute una descripcioacuten de los avances que se han hecho hasta el momento Se hablaraacute acerca del entrenamiento de la red neuronal del sistema el reconocimiento de caracteres tanto con la red neuronal como con los clasificadores ya expuestos y el tratamiento de imaacutegenes para eliminar el ruido tipo sal y pimienta Reconocimiento de caracteres Se han hecho avances acerca del reconocimiento de caracteres utilizando redes neuronales y clasificadores diversos A continuacioacuten se exponen dichos avances

Entrenamiento de la red neuronal Para entrenar la red neuronal se utilizoacute el algoritmo de retropropagacioacuten expuesto en el capiacutetulo 1 Se disentildeoacute un programa en Java que permite entrenar una red neuronal de 3

18

capas La cantidad de clases a discriminar es variable y para este caso se utilizoacute una matriz de 5x8 es decir se tomaron 40 rasgos de entrada

Utilizando la red neuronal para reconocer caracteres A continuacioacuten se muestra en la imagen 211 el programa disentildeado en Java que permite discriminar un nuacutemero variable de clases Para este caso se eligioacute discriminar entre los diacutegitos del 0 al 9 El programa para reconocer los 128 caracteres referentes al sintetizador de voz tendraacute una interfaz similar con la diferencia de que la rejilla para ingresar el patroacuten a reconocer seraacute de 20x20 El programa mostrado fue programado tanto para entrenar la red como para reconocer los diacutegitos Se puede elegir entre los entrenamientos hechos para probar la efectividad de la red Las estadiacutesticas del entrenamiento elegido se muestran en la parte inferior de la pantalla

Imagen 211 Reconocimiento de los diacutegitos del 0 al 9 utilizando una red neuronal de 3 capas

19

Utilizando los clasificadores para reconocer caracteres Dentro de las teacutecnicas de reconocimiento de patrones existen diferentes clasificadores que nos permiten a partir de un conjunto de entrenamiento (en eacuteste caso un conjunto de tipos de letras que deseamos reconocer) saber a queacute clase pertenece un patroacuten de prueba que se introduce

Imagen 212 Un ejemplo de un clasificador KNN con un valor de K=3 y usando la meacutetrica City-Block para clasificar el patroacuten de prueba pruebabmp entre tres clases

En la imagen 212 se muestra como se puede clasificar un caraacutecter escalado de la imagen prueba 4bmp dentro de las tres clases existentes Se observa que si se puede clasificar este tipo de patrones pero veamos un ejemplo donde no sea posible clasificar un patroacuten de prueba y por queacute

Imagen 213 Un ejemplo de un clasificador KNN con un valor de K=5 y usando la meacutetrica Euclidiana para clasificar el patroacuten de prueba prueb3bmp entre tres clases El patroacuten no fue reconocido correctamente

20

Ahora como se observa no se pudo clasificar correctamente el patroacuten de prueba ya que pertenece claramente a la clase 3 pero por el clasificador que usamos o por el nuacutemero de K-vecinos o por el tipo de meacutetrica usada sucedioacute que en su mayoriacutea eran de la clase 2 y no de la clase 3 Tal vez si se hubiera elegido un valor de K menor a 5 tendriacutea maacutes posibilidades de clasificar correctamente Finalmente usar este tipo de teacutecnicas para reconocer caracteres es muy bueno ya que permite reconocer letras que se encuentran rotadas escaladas o trasladadas por una teacutecnica matemaacutetica llamada Momentos de Hu pero al tener una situacioacuten donde la imagen de prueba se encuentra exactamente a la misma distancia de dos o mas clases se crea el problema de no saber a que clase clasificar dicho patroacuten

Tratamiento digital de las imaacutegenes a capturar A continuacioacuten se muestra en la imagen 214 un programa que se codificoacute en C++ Builder y permite tratar digitalmente imaacutegenes BMP con la finalidad de eliminar el ruido pasarlas a escala de grises y binarizarlas El programa es capaz de generar histogramas de color

Imagen 214 Programa para tratar imaacutegenes digitalmente

21

CAPIacuteTULO 3 Buscadores La informacioacuten almacenada tendriacutea poco valor si no podemos consultarla buscar los datos en una base de datos o en muchas bases de datos que tienen conexioacuten por medio de la web es lo que nos permite explotar la informacioacuten Sin embargo la buacutesqueda seraacute eficiente si la respuesta del buscador es lo maacutes especifica o cercana a los temas solicitados Por lo que el software con aplicacioacuten de buscador es importante desarrollar un proceso para su creacioacuten Objetivo General Desarrollar un sistema de buacutesqueda de informacioacuten por conceptos en la Web basado en agentes inteligentes mediante la aplicacioacuten de ontologiacuteas Estado Del Arte Existen algunos sistemas que proporcionan buacutesquedas de informacioacuten basados en algunas de las tecnologiacuteas que vamos a utilizar Es habitual encontrar este tipo de buscadores y algunos otros similares bautizados como Megabuscadores o Multibuscadores a pesar de que estos teacuterminos no sean los maacutes idoacuteneos por lo que al hablar de este tipo de sistemas podemos referirlos como Buscadores Muacuteltiples en virtud de las caracteriacutesticas de su funcionamiento A continuacioacuten se mencionan algunos de ellos

Buscador muacuteltiple Copernic 2001 Pro Copernici producto de la empresa canadiense Copernic Technologies es un agente buscador que transfiere una ecuacioacuten de buacutesqueda a un conjunto de buscadores de manera simultaacutenea recupera las referencias pertinentes y las ordena seguacuten el grado medio de relevancia obtenido de cada uno de los buscadores La empresa creadora de Copernic se constituyoacute en 1996 con el propoacutesito de desarrollar soluciones innovadoras en tecnologiacuteas de agentes de buacutesqueda para conseguir un acceso y una gestioacuten eficientes de la gran masa de informacioacuten presente en Internet El programa se desarrolloacute el antildeo siguiente en una versioacuten experimental y se puso al alcance del puacuteblico en noviembre de 1998 Desde entonces se han lanzado versiones con elementos nuevos la mayoriacutea de los cuales no obstante soacutelo estaacuten disponibles en las ediciones comerciales La edicioacuten gratuita ofrece los servicios baacutesicos de consulta y con la intencioacuten de persuadir a los posibles compradores de las ediciones comerciales da una idea bastante aproximada de las posibilidades del programa completo

Lets Browse Como en otros medios (por ejemplo la televisioacuten) la navegacioacuten en Internet puede ser realizada por grupos de gente [Lieberman et al 1997] Lets browse muestra como un agente puede asistir a un grupo de gente en su navegacioacuten sugirieacutendoles materiales nuevos que puedan ser de intereacutes comuacuten entre ellos

Este trabajo es una extensioacuten del agente Letizia [Lieberman 1995] el cual selecciona paacuteginas de Web Letizia inicia una buacutesqueda por niveles visita las ligas que encuentra a partir de la paacutegina que su usuario esteacute revisando y selecciona aquellas que sean similares a los intereses que ha aprendido de su usuario (observando su navegacioacuten) Posteriormente muestra sus recomendaciones en un canal de navegacioacuten

22

El trabajo del agente consiste en seleccionar de la misma forma que Letizia lo hace aquellas paacuteginas que mejor satisfagan los intereses de todos los participantes Las caracteriacutesticas de Letrsquos browse son la deteccioacuten automaacutetica de la presencia de usuarios navegacioacuten automaacutetica (en canal de navegacioacuten) el despliege dinaacutemico de las preferencias de los usuarios y la explicacioacuten de las recomendaciones Permite ademaacutes revisar las paacuteginas desde el punto de vista de otra persona (con sus preferencias) y asiacute estimar cual seriacutea su posible opinioacuten acerca de dicha paacutegina auacuten cuando aquella persona no la haya revisado anteriormente

Agentes de Informacioacuten Un agente de informacioacuteiin es utilizado para organizar los espacios de informacioacuten del usuario y facilitar su explotacioacuten En el WWW (World Wide Web) se estaacuten implementando diversos agentes de informacioacuten El Agente Letizia [Lieberman 1995] que existe en un navegador de Web anticipa queacute artiacuteculos pueden ser de intereacutes para el usuario basaacutendose en las conductas pasadas del usuario Las paacuteginas que cree son de intereacutes del usuario Letizia las despliega en una ventana de sugerencias por unos instantes Marco Conceptual Actualmente para poder hacer la consulta de cualquier tipo de informacioacuten en Internet la mayoriacutea de las personas recurre a los motores de buacutesquedas conocidos como Google Yahoo Altavista por mencionar algunos siendo que estos usan diferentes meacutetodos para llegar a su objetivo podemos darnos cuenta que arrojan distintos resultados uno de otro que en el mejor de los casos coinciden en un porcentaje muy poco satisfactorio con la buacutesqueda en cuestioacuten con lo que concluimos que una respuesta a esta falta de precisioacuten en cuanto a la buacutesqueda de un tema en especial es mejor la buacutesqueda de conceptos lo cual permite al usuario acercarse maacutes al tema de su intereacutes Es importante enfocar nuestra solucioacuten apoyaacutendonos en un motor de buacutesqueda y aplicando herramientas como los Agentes que nos permitan recopilar la informacioacuten maacutes precisa de cada buacutesqueda a traveacutes de un algoritmo propio obteniendo resultados maacutes cercanos a los deseados ya que estos provienen de muacuteltiples documentos ahorrando tiempo y ganando precisioacuten a la vez Muy frecuentemente encontramos que cuando se trata de buacutesquedas en Internet a traveacutes de los motores de buacutesqueda populares los usuarios hacen consultas de diversas paginas y es muy difiacutecil llevar una lista de todos los sitios visitados o de aquellos que nos mostraron la informacioacuten maacutes adecuada nuestro sistema es capaz de registrar dentro de una base de datos un iacutendice de todos los sitios que se obtuvieron en la buacutesqueda de un tema o concepto con lo que el usuario no tendraacute que realizar una ldquonuevardquo buacutesqueda de un tema antes consultado sino que tendraacute a la mano todos los sitios que arrojoacute la primera buacutesqueda Marco teoacuterico

Descripcioacuten de RDF

El Resource Description Frameworiiik (RDF) es un fundamento para el procesamiento de metadatos proporciona interoperabilidad entre aplicaciones que intercambian informacioacuten legible por maacutequina en la Web RDF utiliza XML para intercambiar descripciones de recursos Web pero los recursos descritos pueden ser de cualquier tipo

23

incluyendo recursos XML y no-XML RDF resalta las facilidades para hacer posible el procesamiento automaacutetico de los recursos Web RDF puede utilizarse en diferentes aacutereas de aplicacioacuten por ejemplo en la recuperacioacuten de recursos para proporcionar mejores capacidades a los motores de buacutesqueda en catalogacioacuten para la descripcioacuten de contenido y relaciones de contenido accesibles en un sitio Web particular en una paacutegina o biblioteca digital a traveacutes de agentes de software inteligente para facilitar que el conocimiento se comparta e intercambie en la valoracioacuten de contenido en la descripcioacuten de colecciones de paacuteginas que representan un documento loacutegico individual para la descripcioacuten de los derechos de propiedad intelectual de las paacuteginas Web y para expresar las preferencias de privacidad de un usuario asiacute como las poliacuteticas de privacidad de un sitio Web Las descripciones utilizadas por estas aplicaciones pueden modelarse como relaciones entre recursos Web El modelo de datos de RDF tal y como se especifica en RDFMS define un modelo simple para describir las relaciones entre recursos en teacuterminos de propiedades y valores designadas Las propiedades RDF pueden entenderse como atributos de un recurso y en este sentido corresponden con los tradicionales pares atributo-valor Las propiedades RDF tambieacuten representa relaciones entre recursos De esta forma el modelo de datos RDF puede parecer un diagrama entidad-relacioacuten El modelo de datos RDF sin embargo no proporciona mecanismos para declarar estas propiedades ni proporcionan ninguacuten mecanismo para definir las relaciones entre estas propiedades y otros recursos Este es el papel [la funcioacuten] del Esquema RDF

Las comunidades de descripcioacuten de recursos necesitan la habilidad para decir ciertas cosas sobre ciertas clases de recursos Para describir recursos bibliograacuteficos por ejemplo son habituales atributos descriptivos tales como autor [author] tiacutetulo [title] y materia [subject] Para la certificacioacuten digital se necesitan muchas veces atributos tales como esquema simple de deteccioacuten de errores [checksum] y autorizacioacuten [authorization] La declaracioacuten de estas propiedades (atributos) y su semaacutentica correspondiente se definen en el contexto de RDF como un Esquema RDF Un esquema define no soacutelo las propiedades de un recurso (ej tiacutetulo autor materia tamantildeo color etc) sino que puede tambieacuten definir los tipos de recursos que se describiraacuten (libros paacuteginas Web personas empresas etc)

Los Esquemas RDF podriacutean contrastarse con las Definiciones del Tipo de Documentos (DTDs) de XML y los Esquemas XML A diferencia de una DTD o Esquema XML que dan restricciones especiacuteficas en la estructura de un documento XML un Esquema RDF proporciona informacioacuten sobre la interpretacioacuten de una sentencia dada en un modelo de datos RDF Mientras un Esquema XML puede utilizarse para validar la sintaxis de una expresioacuten RDFXML un esquema sintaacutectico soacutelo no es suficiente para los objetivos de RDF Los Esquemas RDF pueden tambieacuten especificar restricciones que deben seguirse por estos modelos de datos

Clases y Propiedades Un Esquema RDF se expresa a traveacutes de un modelo de datos descrito en la especificacioacuten del Modelo y la Sintaxis RDF [RDFMS] El lenguaje de descripcioacuten del esquema es un simple conjunto de recursos y propiedades definidos por la Especificacioacuten del Esquema RDF y la parte impliacutecita de cada modelo RDF que utiliza la mecaacutenica del esquema RDF

24

El sistema de escritura de datos [type system] El Esquema RDF definido en esta especificacioacuten es una coleccioacuten de recursos RDF que puede utilizarse para describir propiedades de otros recursos RDF (incluyendo propiedades) que definene vocabularios RDF de aplicacioacuten especiacutefica El nuacutecleo del vocabulario del esquema se define en un namespace denominado aquiacute informalmente rdfs e identificado por el URI de referencia httpwwww3org200001rdf-schema Esta especificacioacuten utiliza tambieacuten el prefijo rdf para referirse al namespace principal RDF httpwwww3org19990222-rdf-syntax-ns

Como se describe en la especificacioacuten del modelo y la sintaxis [RDFMS] los recursos pueden ser objetos especiacuteficos de una categoriacutea [instances] de una o maacutes clases esto se indica con la propiedad rdftype Las clases se organizan muchas veces de una forma jeraacuterquica por ejemplo la clase Dog [perro] podriacutea considerarse subclase de Mammal [mamiacutefero] que a su vez es una subclase de Animal dando a entender que cualquier recurso que esteacute en rdftype Dog se considera tambieacuten que estaacute en rdftype AnimalEsta especificacioacuten describe una propiedad rdfssubClassOf para indicar dichas relaciones entre clases

El sistema de escritura [type system] del Esquema RDF es similar al sistema de los lenguajes de programacioacuten orientados a objetos tales como Java Sin embargo RDF se diferencia de muchos de esos sistemas en que en lugar de definir una clase en teacuterminos de propiedades sus objetos especiacuteficos de una categoriacutea [instances] pueden tener un esquema RDF que definiraacute las propiedades en teacuterminos de clases de recurso a los que se aplican Este es el papel de las restricciones rdfsdomain y de rdfsrange

Por ejemplo podemos definir que la propiedad author tenga un dominio de Book y un alcance de Literal mientras que un sistema OO claacutesico podriacutea definir tiacutepicamente una clase Book con un atributo denominado author de tipo Literal

Clases y Recursos como Conjuntos y Elementos El siguiente esquema ilustra el concepto de clase subclase y recurso Una clase se describe por un rectaacutengulo redondeado un recurso se describe por un punto grande En la figura abajo se han dibujado flechas desde un recurso a una clase que define Una subclase se presenta en un rectaacutengulo redondeado (la subclase) completamente incluido en otro (la superclase) Si un recurso estaacute dentro de una clase entonces existe una propiedad rdftype o expliacutecita o impliacutecita de aquel recurso cuyo valor es un recurso que define la clase que contiene (Estas propiedades se muestran como arcos en la representacioacuten graacutefica directamente etiquetada en el Esquema 2) El recurso RDF representado en el esquema 1 se describe tanto en el resto de esta especificacioacuten como en la especificacioacuten del Modelo y Sintaxis RDF

Ontologiacuteas en la Representacioacuten del Conocimiento En estos uacuteltimos antildeos se incrementoacute la cantidad de informacioacuten en la Internet lo cual motivoacute el incremento de la complejidad y la diversidad de la informacioacuten Esto tambieacuten motivoacute el intereacutes de automatizar muchas actividades que tradicionalmente se realizan en forma manual La principal motivacioacuten en el uso de las ontologiacuteas es que permiten compartir y reutilizar conocimiento en un dominio De ahiacute el intereacutes de muchos

25

investigadores en el aacuterea de inteligencia artificial para tratar de aplicar las ontologiacuteas en la representacioacuten de conocimiento Las ontologiacuteas son un elemento importante en la Web Semaacutentica y es un teacutermino filosoacutefico que trata sobre la naturaleza de la existencia y los tipos de objetos que existen Tambieacuten la ontologiacutea se puede definir como una especificacioacuten expliacutecita de una conceptualizacioacuten compartida La conceptualizacioacuten se refiere a un modelo abstracto de un fenoacutemeno en el mundo en donde se tienen que identificar los conceptos relevantes de este fenoacutemeno El teacutermino expliacutecito significa queacute tipos de conceptos son usados y las restricciones de estos conceptos Y por uacuteltimo el teacutermino compartido se refiere a que las ontologiacuteas capturan conocimiento que es aceptado por todos y no es individual de un grupo Actualmente se les estaacute dando maacutes uso a las ontologiacuteas en el campo de la Inteligencia Artificial En este campo se define la ontologiacutea como una descripcioacuten formal y expliacutecita de conceptos de un dominio (classes a las que nos referiremos como conceptos) propiedades de cada concepto las cuales describen las caracteriacutesticas y atributos de los conceptos (slots llamados tambieacuten como propiedades o roles) y restricciones de las propiedades (facets conocidas como restricciones) La informacioacuten que es representada a traveacutes de los lenguajes semaacutenticos puede ser compartida entre aplicaciones como los agentes

OWL y Web Semaacutentica

La Web Semaacutentica es una Web extendida dotada de mayor significado en la que cualquier usuario en Internet podraacute encontrar respuestas a sus preguntas de forma maacutes raacutepida y sencilla gracias a una informacioacuten mejor definida Al dotar a la Web de maacutes significado y por lo tanto de maacutes semaacutentica se pueden obtener soluciones a problemas habituales en la buacutesqueda de informacioacuten gracias a la utilizacioacuten de una infraestructura comuacuten mediante la cual es posible compartir procesar y transferir informacioacuten de forma sencilla Esta Web extendida y basada en el significado se apoya en lenguajes universales que resuelven los problemas ocasionados por una Web carente de semaacutentica en la que en ocasiones el acceso a la informacioacuten se convierte en una tarea difiacutecil y frustrante

LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES La comunicacioacuten es uno de los aspectos importantes dentro de una comunidad de agentes la cual permitiraacute compartir y enviar mensajes entre agentes Los meacutetodos tradicionales permiten la comunicacioacuten entre los agentes pero eacutestos no son suficientes para lograr un comportamiento social entre los agentes para ello es necesario que los mensajes tengan un significado y contenido semaacutentico Se han desarrollado varios lenguajes los cuales son usados para el enviacuteo de mensajes a continuacioacuten hablaremos de dos de ellos KQML Knowledge Query and Manipulation Language (KQML) es uno de los lenguajes que nos provee la estructura para enviar mensajes entre agentes Dentro de sus principales caracteriacutesticas tenemos que es independiente de la sintaxis del contenido y la ontologiacutea

26

que se utilizaraacute Asiacute mismo es independiente del mecanismo de transporte (TCPIP SMTP IIOP etc) e independiente del contenido del lenguaje (KIF SQL STEP Prolog etc) KQML fue desarrollado por el consorcio DARPA Knowledge Sharing Effort (KSE) cuyo principal objetivo fue desarrollar una base tecnoloacutegica para construir en forma progresiva sistemas cada vez con maacutes funcionalidad complejidad y amplitud KQML provee un lenguaje y un protocolo para intercambiar informacioacuten entre agentes inteligentes y para lograr este intercambio se tiene que compartir una sintaxis y una semaacutentica comuacuten para que los mensajes sean entendidos por los agentes Al lenguaje KQML se le dividioacute en tres capas la capa de contenido alberga el contenido del mensaje que es especificado en cualquier formato ya sea texto o binario La capa de comunicacioacuten contiene paraacutemetros como el identificador uacutenico asociado a la comunicacioacuten identidad del remitente e identidad del destinatario La capa de mensaje define tanto los diferentes tipos de interaccioacuten que se pueden establecer entre los agentes como los protocolos que se pueden establecer entre los agentes Tambieacuten incluye otras caracteriacutesticas como el lenguaje de representacioacuten o la ontologiacutea siendo ambos opcionales

JADE (Java Agent DEvelopment Framework)

JADEiv (Java Agent DEvelopment Framework) es un middleware que proporciona tanto un entorno de desarrollo como un entorno de ejecucioacuten para la realizacioacuten y mantenimiento de sistemas multiagente El entorno de desarrollo estaacute formado por una serie de libreriacuteas en Java que permiten la implementacioacuten de agentes de manera limpia e independiente de la plataforma sobre la que se va a ejecutar El entorno de ejecucioacuten permite a los agentes vivir y comunicarse entre ellos Estaacute realizado enteramente en Java y proporciona una serie de herramientas que permiten al desarrollador controlar y depurar a los agentes en tiempo real JADE es un middleware desarrollado por TILAB para el desarrollo de aplicaciones distribuidas multiagente JADE proporciona tanto el entorno de desarrollo para la creacioacuten de aplicaciones basadas en agentes como el entorno de ejecucioacuten JADE presenta las siguientes caracteriacutesticas

P2P Arquitectura peer-to-peer cada agente puede tomar la iniciativa en una comunicacioacuten o bien responder a peticiones que le hagan otros agentes

Interoperabilidad JADE cumple con las especificaciones FIPA por lo que los agentes desarrollados en JADE pueden interactuar con otros agentes que no tienen porque estar desarrollados con JADE aunque si deben seguir las especificaciones FIPA

Portabilidad La API que proporciona JADE es independientemente de la red sobre la que va a operar asiacute como de la versioacuten de Java utilizada teniendo la misma API para J2EE J2SE y J2ME

27

Intuitiva JADE se ha desarrollado para ofrecer una API faacutecil de aprender y sencilla de manejar

Los agentes JADE tienen nombres uacutenicos y se permite a cada agente descubrir a otros agentes y comunicarse con ellos mediante comunicaciones punto a punto Los agentes proporcionan servicios cada agente puede buscar a otros dependiendo de los servicios que proporcionen otros agentes La comunicacioacuten entre agentes se lleva a cabo a traveacutes de mensajes asiacutencronos es decir el agente que enviacutea el mensaje y el destinatario del mensaje no tienen porqueacute estar disponibles al mismo tiempo Es maacutes el destinatario no tiene porqueacute existir en ese instante Los mensajes se pueden enviar a un agente en concreto o se pueden enviar a agentes que se desconocen pero se sabe que poseen unas ciertas caracteriacutesticas JADE proporciona mecanismos de seguridad ya que habraacute agentes a los que no se les esteacute permitido comunicarse con otros agentes de manera que una aplicacioacuten puede verificar la identidad del receptor y del agente que enviacutea el mensaje y no dejar realizar actuaciones no permitidas para un determinado agente La estructura de los mensajes se basa en el lenguaje ACL (Agent Communication Lenguaje) que ha sido definido por la FIPA JADE facilita mecanismos para el desarrollo de los objetivos que deben alcanzar los agentes Los comportamientos (behaviours) y la comunicacioacuten entre los agentes (junto con el servicio de paacuteginas amarillas) proporcionan los recursos necesarios para programar un sistema multiagente JADE tambieacuten permite a los agentes cambiar de Host (en J2SE) Un agente puede interrumpir en un momento dado su ejecucioacuten migrar a otro host (sin necesidad de que el coacutedigo esteacute previamente en el host destino) y continuar la ejecucioacuten en el mismo punto en el que la interrumpioacute Esto permite un balanceo de carga ya que permite a los agentes migrar hosts menos cargados El entorno de ejecucioacuten proporciona un marco donde poder ejecutar los agentes y herramientas graacuteficas para su monitorizacioacuten y depuracioacuten Los agentes JADE necesitan del entorno de ejecucioacuten donde poder vivir Cada instancia del entorno de ejecucioacuten se denomina contenedor (container) Al conjunto de los contenedores se le denomina plataforma (platform) y proporciona una capa que oculta a los agentes (y al desarrollador) el entorno donde se ha decidido ejecutar la aplicacioacuten En cada plataforma debe existir un contenedor especial denominado contenedor principal (main container) La principal diferencia del contenedor principal respecto al resto de contenedores es que alberga dos agentes especiales

AMS (Agent Management System) Este agente proporciona el servicio de nombres asegurando que cada agente en la plataforma disponga de un nombre uacutenico Tambieacuten representa la autoridad es posible crear y matar agentes en contenedores remotos requeriendoselo al agente AMS

DF (Directory Facilitator) Proporciona el servicio de Paacuteginas Amarillas Gracias al agente DF un agente puede encontrar otros agentes que provean los servicios necesarios para lograr sus objetivos

28

La caracteriacutestica mas importante del entorno de ejecucioacuten es la interfaz graacutefica que proporciona desde la que podemos controlar y depurar los agentes existentes Todas las herramientas han sido desarrolladas como agentes y siguen sus mismas reglas Disentildeo Arquitectura

Agente usuario

Agente de ontologiacutea

Agente de filtrado

Agente de recuperacioacuten

BD

OntologiacuteaSistema

Motor de buacutesqueda

El sistema esta disentildeado para que un usuario realice alguna buacutesqueda relacionada con alguno de los tres temas propuestos en nuestra base de conocimiento que son Ingenieriacutea de Software Base de Datos y Deportes El sistema esta basado en una arquitectura multiagente la cual se conforma por Agente Usuario Actuacutea de intermediario entre el usuario y el sistema Sus servicios son solicitados por el usuario para resolver las consultas El usuario le suministra una consulta y el sistema le devuelve una lista de documentos que pueden satisfacer sus necesidades Este agente tiene la capacidad de acceder a la base de datos con el objetivo de almacenar yo recuperar resultados Base de Datos Guardaraacute las ultimas buacutesquedas realizadas para su posterior consulta a peticioacuten del usuario Agente de Filtrado Gestiona la recuperacioacuten de documentos y realiza el filtrado de los mismos proporcionados por el Agente de Recuperacioacuten Recibe la peticioacuten del Agente Usuario y a su vez esta es enviada al Agente Ontologiacutea para que este regrese una evaluacioacuten de la consulta y de esta forma conocer si es necesaria una redefinicioacuten de la consulta En caso de ser necesaria se espera recibir el nuevo vector de consulta hasta que se cumpla una de dos opciones el usuario deje de redefinir la consulta o la consulta sea concreta Cuando la consulta sea concreta es enviada de nueva cuenta al Agente Ontologiacutea el cual regresaraacute el Nuevo Vector Expandido Este seraacute enviado al Agente de Recuperacioacuten Cuando el Agente de Recuperacioacuten regrese los urlacutes de los resultados (con sus respectivos vectores de teacuterminos) se realiza una evaluacioacuten de los vectores de cada documento con respecto al vector de buacutesqueda expandida con el objetivo de asignarles una calificacioacuten Gracias a esta calificacioacuten podemos obtener aquellos documentos que mejor cumplan con las expectativas del usuario (Estos documentos son regresados al Agente Usuario) Agente Ontologiacutea Recibe el vector de consulta proporcionado por el Agente de Filtrado La informacioacuten contenida en el vector de consulta es comparada con la existente en nuestra ontologiacutea Una vez verificada la existencia de la informacioacuten del

29

vector consulta dentro de la ontologiacutea este se encarga de devolver la distancia y el umbral al Agente de Filtrado Se espera que este devuelva una peticioacuten para expandir ese mismo vector Puede darse el caso de obtener dos tipos de buacutesquedas una general y otra mucho maacutes definida En cualquiera de los caso obtenemos un nuevo vector de buacutesqueda (con una informacioacuten mejor definida este es el Vector de Buacutesqueda Expandido) que es enviado de regreso al Agente de Filtrado el cual genera una copia y le es enviada al Agente de Recuperacioacuten Ontologiacutea Representa nuestra base de conocimientos Esta compuesta por tres aacutereas de conocimiento las cuales son Ingenieriacutea se Software Bases de Datos y Deportes Para poder representar esta ontologiacutea en un lenguaje entendible para agentes inteligentes se programaraacute bajo los fundamentos de las estructuras RDF contenidas en las especificaciones de XML y siguiendo los estaacutendares de la W3C Agente Recuperacioacuten Realiza la buacutesqueda gracias a la informacioacuten que le es entregada por el Agente de Filtrado (se trata Vector de Buacutesqueda Expandido generado por el Agente de Ontologiacutea) El agente estructura esta informacioacuten y se introduce en un motor de buacutesqueda(diacutegase por ejemplo Google) de tal manera que obtengamos una lista de posibles documentos A cada documento se le asigna un vector de teacuterminos con sus pesos derivados de un anaacutelisis TFIDF para despueacutes regresar las urlacutes con su respectivo vector de teacuterminos al Agente Filtrado RESULTADOS Este proyecto tiene la finalidad de desarrollar el software para un antivirus y un traductor Pero durante los estudios de anaacutelisis de estos dos productos se encontroacute que el software para la buacutesqueda de la informacioacuten tambieacuten puede ser implementada por medio de teacutecnicas de Inteligencia Artificial Para construir el software de aplicacioacuten para estas necesidades se usa la metodologiacutea de cascada Donde los pasos a seguir son el Anaacutelisis Disentildeo Pruebas Implementacioacuten y Mantenimiento Hasta este momento estamos en la etapa de pruebas de algunos moacutedulos de los tres productos IMPACTO El detector de intrusos en una red es de mucha importancia debido a que en la actualidad se han diseminado muchos virus que pueden ser transmitidos a traveacutes de intrusos Hasta la fecha el meacutetodo de proteccioacuten se hace de forma manual La finalidad de este software es automatizar la proteccioacuten El traductor de texto a voz tiene como primera aplicacioacuten el auxilio en la lectura de documentos para las personas invidentes o deacutebiles visuales una segunda aplicacioacuten es la comunicacioacuten con la computadora por medio del lenguaje natura El buscador de informacioacuten es un auxilio en la buacutesqueda de datos en una base de datos de conocimiento Ya que tambieacuten estaacuten proliferando las bibliotecas virtuales es una ayuda en la localizacioacuten de informacioacuten cientiacutefica y un preaacutembulo para un software de apoyo docente BIBLIOGRAFIacuteA [1] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

30

[2] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps[3] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[4] w3c en espantildeol OWL y Web Semaacutentica httpwwww3cesDivulgacionGuiasbrevesWebSemantica

[5] Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

[6] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[7] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[8] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[9] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[10] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[11] Laboratorios Googlehttplabsgooglecompapershtml

[12] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[13] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

[14] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

[15] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps [16] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[18] Trabajos de Agente en JADE http Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

31

[19] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[20] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[21] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[22] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[23] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[24] Laboratorios Googlehttplabsgooglecompapershtml

[25] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[26] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

  • En este reporte teacutecnico se presenta la descripcioacuten general anaacutelisis y estado actual de de los trabajos terminales TT2006135 TT20060097 y TT20060068 que tienen por titulo ldquoSistema prototipo de deteccioacuten de intrusos en la red utilizando agentes inteligentesrdquo rdquoProcesamiento digital de imaacutegenes para la conversioacuten de texto a vozrdquo y ldquoSistema de buacutesqueda de informacioacuten por conceptos en la webrdquo respectivamente Los prototipos que se obtendraacuten seraacuten un software robusto que se desarrollaraacuten con teacutecnicas de inteligencia artificial como Agentes inteligentes y Redes neuronales
  • Estructura de un sistema neuronal artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
    • Estado Del Arte
      • Estructura de un sistema neuronal artificial
        • Sistemas paralelos distribuidos y adaptativos
          • Modelo estaacutendar de neurona artificial
            • Sigmoidal logariacutetmica
              • Empleo del perceptroacuten para reconocer funciones loacutegicas
              • Algoritmo de aprendizaje del perceptroacuten
                • Objetivo General
                • Estado Del Arte
                • A continuacioacuten se mencionan algunos de ellos
                  • Buscador muacuteltiple Copernic 2001 Pro
                  • Lets Browse
                  • Agentes de Informacioacuten
                    • Marco Conceptual
                      • Clases y Propiedades
                      • El sistema de escritura de datos [type system]
                      • Clases y Recursos como Conjuntos y Elementos
                        • Ontologiacuteas en la Representacioacuten del Conocimiento
                          • LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES
                          • JADE (Java Agent DEvelopment Framework)
                            • Disentildeo
                            • Arquitectura
Page 17: INSTITUTO POLITÉCNICO NACIONALsappi.ipn.mx/cgpi/archivos_anexo/20061387_3286.pdf · La comunicación del hombre con la computadora por medio del lenguaje natural, es la finalidad

17

o wij corresponde a los pesos de una entrada j por la salida i de la neurona

o ξ se denomina ritmo de aprendizaje que su valor suele estar entre 1 y 0 Regla modificada para el perceptroacuten simple

2ξtnixnj si yn

ine tni ∆wn

ij(t)= 0 si yn

i= tni que puede reescribirse del siguiete modo que es la forma usual de expresar la regla del perceptroacuten

∆wnij(t)= 2ξ(tni - yn

i)xnj

Es importante mencionar que el proceso de aprendizaje es iterativo se

parte de una configuracioacuten sinaacuteptica de partida (normalmente de pesos pequentildeos aleatorios) y se presentan una y otra vez los patrones para que los pesos se ajusten iterativamente seguacuten forma usual de la regla del perceptroacuten hasta que todos queden bien clasificados El hiperplano que establece el liacutemite entre dos clases se desplaza lentamente hasta conseguir separarlas por completo (si es posible) como se ve en la figura 210

t= 115

x x

x x x

x x x

x

x

o

o o

o o o o

o

o o

o

o

o

o

o

o

o

X2

t= 21

t= 0 t= 4

X1

Figura 210 Regiones de decisioacuten que establece iterativamente el perceptroacuten durante el aprendizaje (en la iteracioacuten 115 ha conseguido separar ya las dos clases)

Avances En este capiacutetulo se haraacute una descripcioacuten de los avances que se han hecho hasta el momento Se hablaraacute acerca del entrenamiento de la red neuronal del sistema el reconocimiento de caracteres tanto con la red neuronal como con los clasificadores ya expuestos y el tratamiento de imaacutegenes para eliminar el ruido tipo sal y pimienta Reconocimiento de caracteres Se han hecho avances acerca del reconocimiento de caracteres utilizando redes neuronales y clasificadores diversos A continuacioacuten se exponen dichos avances

Entrenamiento de la red neuronal Para entrenar la red neuronal se utilizoacute el algoritmo de retropropagacioacuten expuesto en el capiacutetulo 1 Se disentildeoacute un programa en Java que permite entrenar una red neuronal de 3

18

capas La cantidad de clases a discriminar es variable y para este caso se utilizoacute una matriz de 5x8 es decir se tomaron 40 rasgos de entrada

Utilizando la red neuronal para reconocer caracteres A continuacioacuten se muestra en la imagen 211 el programa disentildeado en Java que permite discriminar un nuacutemero variable de clases Para este caso se eligioacute discriminar entre los diacutegitos del 0 al 9 El programa para reconocer los 128 caracteres referentes al sintetizador de voz tendraacute una interfaz similar con la diferencia de que la rejilla para ingresar el patroacuten a reconocer seraacute de 20x20 El programa mostrado fue programado tanto para entrenar la red como para reconocer los diacutegitos Se puede elegir entre los entrenamientos hechos para probar la efectividad de la red Las estadiacutesticas del entrenamiento elegido se muestran en la parte inferior de la pantalla

Imagen 211 Reconocimiento de los diacutegitos del 0 al 9 utilizando una red neuronal de 3 capas

19

Utilizando los clasificadores para reconocer caracteres Dentro de las teacutecnicas de reconocimiento de patrones existen diferentes clasificadores que nos permiten a partir de un conjunto de entrenamiento (en eacuteste caso un conjunto de tipos de letras que deseamos reconocer) saber a queacute clase pertenece un patroacuten de prueba que se introduce

Imagen 212 Un ejemplo de un clasificador KNN con un valor de K=3 y usando la meacutetrica City-Block para clasificar el patroacuten de prueba pruebabmp entre tres clases

En la imagen 212 se muestra como se puede clasificar un caraacutecter escalado de la imagen prueba 4bmp dentro de las tres clases existentes Se observa que si se puede clasificar este tipo de patrones pero veamos un ejemplo donde no sea posible clasificar un patroacuten de prueba y por queacute

Imagen 213 Un ejemplo de un clasificador KNN con un valor de K=5 y usando la meacutetrica Euclidiana para clasificar el patroacuten de prueba prueb3bmp entre tres clases El patroacuten no fue reconocido correctamente

20

Ahora como se observa no se pudo clasificar correctamente el patroacuten de prueba ya que pertenece claramente a la clase 3 pero por el clasificador que usamos o por el nuacutemero de K-vecinos o por el tipo de meacutetrica usada sucedioacute que en su mayoriacutea eran de la clase 2 y no de la clase 3 Tal vez si se hubiera elegido un valor de K menor a 5 tendriacutea maacutes posibilidades de clasificar correctamente Finalmente usar este tipo de teacutecnicas para reconocer caracteres es muy bueno ya que permite reconocer letras que se encuentran rotadas escaladas o trasladadas por una teacutecnica matemaacutetica llamada Momentos de Hu pero al tener una situacioacuten donde la imagen de prueba se encuentra exactamente a la misma distancia de dos o mas clases se crea el problema de no saber a que clase clasificar dicho patroacuten

Tratamiento digital de las imaacutegenes a capturar A continuacioacuten se muestra en la imagen 214 un programa que se codificoacute en C++ Builder y permite tratar digitalmente imaacutegenes BMP con la finalidad de eliminar el ruido pasarlas a escala de grises y binarizarlas El programa es capaz de generar histogramas de color

Imagen 214 Programa para tratar imaacutegenes digitalmente

21

CAPIacuteTULO 3 Buscadores La informacioacuten almacenada tendriacutea poco valor si no podemos consultarla buscar los datos en una base de datos o en muchas bases de datos que tienen conexioacuten por medio de la web es lo que nos permite explotar la informacioacuten Sin embargo la buacutesqueda seraacute eficiente si la respuesta del buscador es lo maacutes especifica o cercana a los temas solicitados Por lo que el software con aplicacioacuten de buscador es importante desarrollar un proceso para su creacioacuten Objetivo General Desarrollar un sistema de buacutesqueda de informacioacuten por conceptos en la Web basado en agentes inteligentes mediante la aplicacioacuten de ontologiacuteas Estado Del Arte Existen algunos sistemas que proporcionan buacutesquedas de informacioacuten basados en algunas de las tecnologiacuteas que vamos a utilizar Es habitual encontrar este tipo de buscadores y algunos otros similares bautizados como Megabuscadores o Multibuscadores a pesar de que estos teacuterminos no sean los maacutes idoacuteneos por lo que al hablar de este tipo de sistemas podemos referirlos como Buscadores Muacuteltiples en virtud de las caracteriacutesticas de su funcionamiento A continuacioacuten se mencionan algunos de ellos

Buscador muacuteltiple Copernic 2001 Pro Copernici producto de la empresa canadiense Copernic Technologies es un agente buscador que transfiere una ecuacioacuten de buacutesqueda a un conjunto de buscadores de manera simultaacutenea recupera las referencias pertinentes y las ordena seguacuten el grado medio de relevancia obtenido de cada uno de los buscadores La empresa creadora de Copernic se constituyoacute en 1996 con el propoacutesito de desarrollar soluciones innovadoras en tecnologiacuteas de agentes de buacutesqueda para conseguir un acceso y una gestioacuten eficientes de la gran masa de informacioacuten presente en Internet El programa se desarrolloacute el antildeo siguiente en una versioacuten experimental y se puso al alcance del puacuteblico en noviembre de 1998 Desde entonces se han lanzado versiones con elementos nuevos la mayoriacutea de los cuales no obstante soacutelo estaacuten disponibles en las ediciones comerciales La edicioacuten gratuita ofrece los servicios baacutesicos de consulta y con la intencioacuten de persuadir a los posibles compradores de las ediciones comerciales da una idea bastante aproximada de las posibilidades del programa completo

Lets Browse Como en otros medios (por ejemplo la televisioacuten) la navegacioacuten en Internet puede ser realizada por grupos de gente [Lieberman et al 1997] Lets browse muestra como un agente puede asistir a un grupo de gente en su navegacioacuten sugirieacutendoles materiales nuevos que puedan ser de intereacutes comuacuten entre ellos

Este trabajo es una extensioacuten del agente Letizia [Lieberman 1995] el cual selecciona paacuteginas de Web Letizia inicia una buacutesqueda por niveles visita las ligas que encuentra a partir de la paacutegina que su usuario esteacute revisando y selecciona aquellas que sean similares a los intereses que ha aprendido de su usuario (observando su navegacioacuten) Posteriormente muestra sus recomendaciones en un canal de navegacioacuten

22

El trabajo del agente consiste en seleccionar de la misma forma que Letizia lo hace aquellas paacuteginas que mejor satisfagan los intereses de todos los participantes Las caracteriacutesticas de Letrsquos browse son la deteccioacuten automaacutetica de la presencia de usuarios navegacioacuten automaacutetica (en canal de navegacioacuten) el despliege dinaacutemico de las preferencias de los usuarios y la explicacioacuten de las recomendaciones Permite ademaacutes revisar las paacuteginas desde el punto de vista de otra persona (con sus preferencias) y asiacute estimar cual seriacutea su posible opinioacuten acerca de dicha paacutegina auacuten cuando aquella persona no la haya revisado anteriormente

Agentes de Informacioacuten Un agente de informacioacuteiin es utilizado para organizar los espacios de informacioacuten del usuario y facilitar su explotacioacuten En el WWW (World Wide Web) se estaacuten implementando diversos agentes de informacioacuten El Agente Letizia [Lieberman 1995] que existe en un navegador de Web anticipa queacute artiacuteculos pueden ser de intereacutes para el usuario basaacutendose en las conductas pasadas del usuario Las paacuteginas que cree son de intereacutes del usuario Letizia las despliega en una ventana de sugerencias por unos instantes Marco Conceptual Actualmente para poder hacer la consulta de cualquier tipo de informacioacuten en Internet la mayoriacutea de las personas recurre a los motores de buacutesquedas conocidos como Google Yahoo Altavista por mencionar algunos siendo que estos usan diferentes meacutetodos para llegar a su objetivo podemos darnos cuenta que arrojan distintos resultados uno de otro que en el mejor de los casos coinciden en un porcentaje muy poco satisfactorio con la buacutesqueda en cuestioacuten con lo que concluimos que una respuesta a esta falta de precisioacuten en cuanto a la buacutesqueda de un tema en especial es mejor la buacutesqueda de conceptos lo cual permite al usuario acercarse maacutes al tema de su intereacutes Es importante enfocar nuestra solucioacuten apoyaacutendonos en un motor de buacutesqueda y aplicando herramientas como los Agentes que nos permitan recopilar la informacioacuten maacutes precisa de cada buacutesqueda a traveacutes de un algoritmo propio obteniendo resultados maacutes cercanos a los deseados ya que estos provienen de muacuteltiples documentos ahorrando tiempo y ganando precisioacuten a la vez Muy frecuentemente encontramos que cuando se trata de buacutesquedas en Internet a traveacutes de los motores de buacutesqueda populares los usuarios hacen consultas de diversas paginas y es muy difiacutecil llevar una lista de todos los sitios visitados o de aquellos que nos mostraron la informacioacuten maacutes adecuada nuestro sistema es capaz de registrar dentro de una base de datos un iacutendice de todos los sitios que se obtuvieron en la buacutesqueda de un tema o concepto con lo que el usuario no tendraacute que realizar una ldquonuevardquo buacutesqueda de un tema antes consultado sino que tendraacute a la mano todos los sitios que arrojoacute la primera buacutesqueda Marco teoacuterico

Descripcioacuten de RDF

El Resource Description Frameworiiik (RDF) es un fundamento para el procesamiento de metadatos proporciona interoperabilidad entre aplicaciones que intercambian informacioacuten legible por maacutequina en la Web RDF utiliza XML para intercambiar descripciones de recursos Web pero los recursos descritos pueden ser de cualquier tipo

23

incluyendo recursos XML y no-XML RDF resalta las facilidades para hacer posible el procesamiento automaacutetico de los recursos Web RDF puede utilizarse en diferentes aacutereas de aplicacioacuten por ejemplo en la recuperacioacuten de recursos para proporcionar mejores capacidades a los motores de buacutesqueda en catalogacioacuten para la descripcioacuten de contenido y relaciones de contenido accesibles en un sitio Web particular en una paacutegina o biblioteca digital a traveacutes de agentes de software inteligente para facilitar que el conocimiento se comparta e intercambie en la valoracioacuten de contenido en la descripcioacuten de colecciones de paacuteginas que representan un documento loacutegico individual para la descripcioacuten de los derechos de propiedad intelectual de las paacuteginas Web y para expresar las preferencias de privacidad de un usuario asiacute como las poliacuteticas de privacidad de un sitio Web Las descripciones utilizadas por estas aplicaciones pueden modelarse como relaciones entre recursos Web El modelo de datos de RDF tal y como se especifica en RDFMS define un modelo simple para describir las relaciones entre recursos en teacuterminos de propiedades y valores designadas Las propiedades RDF pueden entenderse como atributos de un recurso y en este sentido corresponden con los tradicionales pares atributo-valor Las propiedades RDF tambieacuten representa relaciones entre recursos De esta forma el modelo de datos RDF puede parecer un diagrama entidad-relacioacuten El modelo de datos RDF sin embargo no proporciona mecanismos para declarar estas propiedades ni proporcionan ninguacuten mecanismo para definir las relaciones entre estas propiedades y otros recursos Este es el papel [la funcioacuten] del Esquema RDF

Las comunidades de descripcioacuten de recursos necesitan la habilidad para decir ciertas cosas sobre ciertas clases de recursos Para describir recursos bibliograacuteficos por ejemplo son habituales atributos descriptivos tales como autor [author] tiacutetulo [title] y materia [subject] Para la certificacioacuten digital se necesitan muchas veces atributos tales como esquema simple de deteccioacuten de errores [checksum] y autorizacioacuten [authorization] La declaracioacuten de estas propiedades (atributos) y su semaacutentica correspondiente se definen en el contexto de RDF como un Esquema RDF Un esquema define no soacutelo las propiedades de un recurso (ej tiacutetulo autor materia tamantildeo color etc) sino que puede tambieacuten definir los tipos de recursos que se describiraacuten (libros paacuteginas Web personas empresas etc)

Los Esquemas RDF podriacutean contrastarse con las Definiciones del Tipo de Documentos (DTDs) de XML y los Esquemas XML A diferencia de una DTD o Esquema XML que dan restricciones especiacuteficas en la estructura de un documento XML un Esquema RDF proporciona informacioacuten sobre la interpretacioacuten de una sentencia dada en un modelo de datos RDF Mientras un Esquema XML puede utilizarse para validar la sintaxis de una expresioacuten RDFXML un esquema sintaacutectico soacutelo no es suficiente para los objetivos de RDF Los Esquemas RDF pueden tambieacuten especificar restricciones que deben seguirse por estos modelos de datos

Clases y Propiedades Un Esquema RDF se expresa a traveacutes de un modelo de datos descrito en la especificacioacuten del Modelo y la Sintaxis RDF [RDFMS] El lenguaje de descripcioacuten del esquema es un simple conjunto de recursos y propiedades definidos por la Especificacioacuten del Esquema RDF y la parte impliacutecita de cada modelo RDF que utiliza la mecaacutenica del esquema RDF

24

El sistema de escritura de datos [type system] El Esquema RDF definido en esta especificacioacuten es una coleccioacuten de recursos RDF que puede utilizarse para describir propiedades de otros recursos RDF (incluyendo propiedades) que definene vocabularios RDF de aplicacioacuten especiacutefica El nuacutecleo del vocabulario del esquema se define en un namespace denominado aquiacute informalmente rdfs e identificado por el URI de referencia httpwwww3org200001rdf-schema Esta especificacioacuten utiliza tambieacuten el prefijo rdf para referirse al namespace principal RDF httpwwww3org19990222-rdf-syntax-ns

Como se describe en la especificacioacuten del modelo y la sintaxis [RDFMS] los recursos pueden ser objetos especiacuteficos de una categoriacutea [instances] de una o maacutes clases esto se indica con la propiedad rdftype Las clases se organizan muchas veces de una forma jeraacuterquica por ejemplo la clase Dog [perro] podriacutea considerarse subclase de Mammal [mamiacutefero] que a su vez es una subclase de Animal dando a entender que cualquier recurso que esteacute en rdftype Dog se considera tambieacuten que estaacute en rdftype AnimalEsta especificacioacuten describe una propiedad rdfssubClassOf para indicar dichas relaciones entre clases

El sistema de escritura [type system] del Esquema RDF es similar al sistema de los lenguajes de programacioacuten orientados a objetos tales como Java Sin embargo RDF se diferencia de muchos de esos sistemas en que en lugar de definir una clase en teacuterminos de propiedades sus objetos especiacuteficos de una categoriacutea [instances] pueden tener un esquema RDF que definiraacute las propiedades en teacuterminos de clases de recurso a los que se aplican Este es el papel de las restricciones rdfsdomain y de rdfsrange

Por ejemplo podemos definir que la propiedad author tenga un dominio de Book y un alcance de Literal mientras que un sistema OO claacutesico podriacutea definir tiacutepicamente una clase Book con un atributo denominado author de tipo Literal

Clases y Recursos como Conjuntos y Elementos El siguiente esquema ilustra el concepto de clase subclase y recurso Una clase se describe por un rectaacutengulo redondeado un recurso se describe por un punto grande En la figura abajo se han dibujado flechas desde un recurso a una clase que define Una subclase se presenta en un rectaacutengulo redondeado (la subclase) completamente incluido en otro (la superclase) Si un recurso estaacute dentro de una clase entonces existe una propiedad rdftype o expliacutecita o impliacutecita de aquel recurso cuyo valor es un recurso que define la clase que contiene (Estas propiedades se muestran como arcos en la representacioacuten graacutefica directamente etiquetada en el Esquema 2) El recurso RDF representado en el esquema 1 se describe tanto en el resto de esta especificacioacuten como en la especificacioacuten del Modelo y Sintaxis RDF

Ontologiacuteas en la Representacioacuten del Conocimiento En estos uacuteltimos antildeos se incrementoacute la cantidad de informacioacuten en la Internet lo cual motivoacute el incremento de la complejidad y la diversidad de la informacioacuten Esto tambieacuten motivoacute el intereacutes de automatizar muchas actividades que tradicionalmente se realizan en forma manual La principal motivacioacuten en el uso de las ontologiacuteas es que permiten compartir y reutilizar conocimiento en un dominio De ahiacute el intereacutes de muchos

25

investigadores en el aacuterea de inteligencia artificial para tratar de aplicar las ontologiacuteas en la representacioacuten de conocimiento Las ontologiacuteas son un elemento importante en la Web Semaacutentica y es un teacutermino filosoacutefico que trata sobre la naturaleza de la existencia y los tipos de objetos que existen Tambieacuten la ontologiacutea se puede definir como una especificacioacuten expliacutecita de una conceptualizacioacuten compartida La conceptualizacioacuten se refiere a un modelo abstracto de un fenoacutemeno en el mundo en donde se tienen que identificar los conceptos relevantes de este fenoacutemeno El teacutermino expliacutecito significa queacute tipos de conceptos son usados y las restricciones de estos conceptos Y por uacuteltimo el teacutermino compartido se refiere a que las ontologiacuteas capturan conocimiento que es aceptado por todos y no es individual de un grupo Actualmente se les estaacute dando maacutes uso a las ontologiacuteas en el campo de la Inteligencia Artificial En este campo se define la ontologiacutea como una descripcioacuten formal y expliacutecita de conceptos de un dominio (classes a las que nos referiremos como conceptos) propiedades de cada concepto las cuales describen las caracteriacutesticas y atributos de los conceptos (slots llamados tambieacuten como propiedades o roles) y restricciones de las propiedades (facets conocidas como restricciones) La informacioacuten que es representada a traveacutes de los lenguajes semaacutenticos puede ser compartida entre aplicaciones como los agentes

OWL y Web Semaacutentica

La Web Semaacutentica es una Web extendida dotada de mayor significado en la que cualquier usuario en Internet podraacute encontrar respuestas a sus preguntas de forma maacutes raacutepida y sencilla gracias a una informacioacuten mejor definida Al dotar a la Web de maacutes significado y por lo tanto de maacutes semaacutentica se pueden obtener soluciones a problemas habituales en la buacutesqueda de informacioacuten gracias a la utilizacioacuten de una infraestructura comuacuten mediante la cual es posible compartir procesar y transferir informacioacuten de forma sencilla Esta Web extendida y basada en el significado se apoya en lenguajes universales que resuelven los problemas ocasionados por una Web carente de semaacutentica en la que en ocasiones el acceso a la informacioacuten se convierte en una tarea difiacutecil y frustrante

LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES La comunicacioacuten es uno de los aspectos importantes dentro de una comunidad de agentes la cual permitiraacute compartir y enviar mensajes entre agentes Los meacutetodos tradicionales permiten la comunicacioacuten entre los agentes pero eacutestos no son suficientes para lograr un comportamiento social entre los agentes para ello es necesario que los mensajes tengan un significado y contenido semaacutentico Se han desarrollado varios lenguajes los cuales son usados para el enviacuteo de mensajes a continuacioacuten hablaremos de dos de ellos KQML Knowledge Query and Manipulation Language (KQML) es uno de los lenguajes que nos provee la estructura para enviar mensajes entre agentes Dentro de sus principales caracteriacutesticas tenemos que es independiente de la sintaxis del contenido y la ontologiacutea

26

que se utilizaraacute Asiacute mismo es independiente del mecanismo de transporte (TCPIP SMTP IIOP etc) e independiente del contenido del lenguaje (KIF SQL STEP Prolog etc) KQML fue desarrollado por el consorcio DARPA Knowledge Sharing Effort (KSE) cuyo principal objetivo fue desarrollar una base tecnoloacutegica para construir en forma progresiva sistemas cada vez con maacutes funcionalidad complejidad y amplitud KQML provee un lenguaje y un protocolo para intercambiar informacioacuten entre agentes inteligentes y para lograr este intercambio se tiene que compartir una sintaxis y una semaacutentica comuacuten para que los mensajes sean entendidos por los agentes Al lenguaje KQML se le dividioacute en tres capas la capa de contenido alberga el contenido del mensaje que es especificado en cualquier formato ya sea texto o binario La capa de comunicacioacuten contiene paraacutemetros como el identificador uacutenico asociado a la comunicacioacuten identidad del remitente e identidad del destinatario La capa de mensaje define tanto los diferentes tipos de interaccioacuten que se pueden establecer entre los agentes como los protocolos que se pueden establecer entre los agentes Tambieacuten incluye otras caracteriacutesticas como el lenguaje de representacioacuten o la ontologiacutea siendo ambos opcionales

JADE (Java Agent DEvelopment Framework)

JADEiv (Java Agent DEvelopment Framework) es un middleware que proporciona tanto un entorno de desarrollo como un entorno de ejecucioacuten para la realizacioacuten y mantenimiento de sistemas multiagente El entorno de desarrollo estaacute formado por una serie de libreriacuteas en Java que permiten la implementacioacuten de agentes de manera limpia e independiente de la plataforma sobre la que se va a ejecutar El entorno de ejecucioacuten permite a los agentes vivir y comunicarse entre ellos Estaacute realizado enteramente en Java y proporciona una serie de herramientas que permiten al desarrollador controlar y depurar a los agentes en tiempo real JADE es un middleware desarrollado por TILAB para el desarrollo de aplicaciones distribuidas multiagente JADE proporciona tanto el entorno de desarrollo para la creacioacuten de aplicaciones basadas en agentes como el entorno de ejecucioacuten JADE presenta las siguientes caracteriacutesticas

P2P Arquitectura peer-to-peer cada agente puede tomar la iniciativa en una comunicacioacuten o bien responder a peticiones que le hagan otros agentes

Interoperabilidad JADE cumple con las especificaciones FIPA por lo que los agentes desarrollados en JADE pueden interactuar con otros agentes que no tienen porque estar desarrollados con JADE aunque si deben seguir las especificaciones FIPA

Portabilidad La API que proporciona JADE es independientemente de la red sobre la que va a operar asiacute como de la versioacuten de Java utilizada teniendo la misma API para J2EE J2SE y J2ME

27

Intuitiva JADE se ha desarrollado para ofrecer una API faacutecil de aprender y sencilla de manejar

Los agentes JADE tienen nombres uacutenicos y se permite a cada agente descubrir a otros agentes y comunicarse con ellos mediante comunicaciones punto a punto Los agentes proporcionan servicios cada agente puede buscar a otros dependiendo de los servicios que proporcionen otros agentes La comunicacioacuten entre agentes se lleva a cabo a traveacutes de mensajes asiacutencronos es decir el agente que enviacutea el mensaje y el destinatario del mensaje no tienen porqueacute estar disponibles al mismo tiempo Es maacutes el destinatario no tiene porqueacute existir en ese instante Los mensajes se pueden enviar a un agente en concreto o se pueden enviar a agentes que se desconocen pero se sabe que poseen unas ciertas caracteriacutesticas JADE proporciona mecanismos de seguridad ya que habraacute agentes a los que no se les esteacute permitido comunicarse con otros agentes de manera que una aplicacioacuten puede verificar la identidad del receptor y del agente que enviacutea el mensaje y no dejar realizar actuaciones no permitidas para un determinado agente La estructura de los mensajes se basa en el lenguaje ACL (Agent Communication Lenguaje) que ha sido definido por la FIPA JADE facilita mecanismos para el desarrollo de los objetivos que deben alcanzar los agentes Los comportamientos (behaviours) y la comunicacioacuten entre los agentes (junto con el servicio de paacuteginas amarillas) proporcionan los recursos necesarios para programar un sistema multiagente JADE tambieacuten permite a los agentes cambiar de Host (en J2SE) Un agente puede interrumpir en un momento dado su ejecucioacuten migrar a otro host (sin necesidad de que el coacutedigo esteacute previamente en el host destino) y continuar la ejecucioacuten en el mismo punto en el que la interrumpioacute Esto permite un balanceo de carga ya que permite a los agentes migrar hosts menos cargados El entorno de ejecucioacuten proporciona un marco donde poder ejecutar los agentes y herramientas graacuteficas para su monitorizacioacuten y depuracioacuten Los agentes JADE necesitan del entorno de ejecucioacuten donde poder vivir Cada instancia del entorno de ejecucioacuten se denomina contenedor (container) Al conjunto de los contenedores se le denomina plataforma (platform) y proporciona una capa que oculta a los agentes (y al desarrollador) el entorno donde se ha decidido ejecutar la aplicacioacuten En cada plataforma debe existir un contenedor especial denominado contenedor principal (main container) La principal diferencia del contenedor principal respecto al resto de contenedores es que alberga dos agentes especiales

AMS (Agent Management System) Este agente proporciona el servicio de nombres asegurando que cada agente en la plataforma disponga de un nombre uacutenico Tambieacuten representa la autoridad es posible crear y matar agentes en contenedores remotos requeriendoselo al agente AMS

DF (Directory Facilitator) Proporciona el servicio de Paacuteginas Amarillas Gracias al agente DF un agente puede encontrar otros agentes que provean los servicios necesarios para lograr sus objetivos

28

La caracteriacutestica mas importante del entorno de ejecucioacuten es la interfaz graacutefica que proporciona desde la que podemos controlar y depurar los agentes existentes Todas las herramientas han sido desarrolladas como agentes y siguen sus mismas reglas Disentildeo Arquitectura

Agente usuario

Agente de ontologiacutea

Agente de filtrado

Agente de recuperacioacuten

BD

OntologiacuteaSistema

Motor de buacutesqueda

El sistema esta disentildeado para que un usuario realice alguna buacutesqueda relacionada con alguno de los tres temas propuestos en nuestra base de conocimiento que son Ingenieriacutea de Software Base de Datos y Deportes El sistema esta basado en una arquitectura multiagente la cual se conforma por Agente Usuario Actuacutea de intermediario entre el usuario y el sistema Sus servicios son solicitados por el usuario para resolver las consultas El usuario le suministra una consulta y el sistema le devuelve una lista de documentos que pueden satisfacer sus necesidades Este agente tiene la capacidad de acceder a la base de datos con el objetivo de almacenar yo recuperar resultados Base de Datos Guardaraacute las ultimas buacutesquedas realizadas para su posterior consulta a peticioacuten del usuario Agente de Filtrado Gestiona la recuperacioacuten de documentos y realiza el filtrado de los mismos proporcionados por el Agente de Recuperacioacuten Recibe la peticioacuten del Agente Usuario y a su vez esta es enviada al Agente Ontologiacutea para que este regrese una evaluacioacuten de la consulta y de esta forma conocer si es necesaria una redefinicioacuten de la consulta En caso de ser necesaria se espera recibir el nuevo vector de consulta hasta que se cumpla una de dos opciones el usuario deje de redefinir la consulta o la consulta sea concreta Cuando la consulta sea concreta es enviada de nueva cuenta al Agente Ontologiacutea el cual regresaraacute el Nuevo Vector Expandido Este seraacute enviado al Agente de Recuperacioacuten Cuando el Agente de Recuperacioacuten regrese los urlacutes de los resultados (con sus respectivos vectores de teacuterminos) se realiza una evaluacioacuten de los vectores de cada documento con respecto al vector de buacutesqueda expandida con el objetivo de asignarles una calificacioacuten Gracias a esta calificacioacuten podemos obtener aquellos documentos que mejor cumplan con las expectativas del usuario (Estos documentos son regresados al Agente Usuario) Agente Ontologiacutea Recibe el vector de consulta proporcionado por el Agente de Filtrado La informacioacuten contenida en el vector de consulta es comparada con la existente en nuestra ontologiacutea Una vez verificada la existencia de la informacioacuten del

29

vector consulta dentro de la ontologiacutea este se encarga de devolver la distancia y el umbral al Agente de Filtrado Se espera que este devuelva una peticioacuten para expandir ese mismo vector Puede darse el caso de obtener dos tipos de buacutesquedas una general y otra mucho maacutes definida En cualquiera de los caso obtenemos un nuevo vector de buacutesqueda (con una informacioacuten mejor definida este es el Vector de Buacutesqueda Expandido) que es enviado de regreso al Agente de Filtrado el cual genera una copia y le es enviada al Agente de Recuperacioacuten Ontologiacutea Representa nuestra base de conocimientos Esta compuesta por tres aacutereas de conocimiento las cuales son Ingenieriacutea se Software Bases de Datos y Deportes Para poder representar esta ontologiacutea en un lenguaje entendible para agentes inteligentes se programaraacute bajo los fundamentos de las estructuras RDF contenidas en las especificaciones de XML y siguiendo los estaacutendares de la W3C Agente Recuperacioacuten Realiza la buacutesqueda gracias a la informacioacuten que le es entregada por el Agente de Filtrado (se trata Vector de Buacutesqueda Expandido generado por el Agente de Ontologiacutea) El agente estructura esta informacioacuten y se introduce en un motor de buacutesqueda(diacutegase por ejemplo Google) de tal manera que obtengamos una lista de posibles documentos A cada documento se le asigna un vector de teacuterminos con sus pesos derivados de un anaacutelisis TFIDF para despueacutes regresar las urlacutes con su respectivo vector de teacuterminos al Agente Filtrado RESULTADOS Este proyecto tiene la finalidad de desarrollar el software para un antivirus y un traductor Pero durante los estudios de anaacutelisis de estos dos productos se encontroacute que el software para la buacutesqueda de la informacioacuten tambieacuten puede ser implementada por medio de teacutecnicas de Inteligencia Artificial Para construir el software de aplicacioacuten para estas necesidades se usa la metodologiacutea de cascada Donde los pasos a seguir son el Anaacutelisis Disentildeo Pruebas Implementacioacuten y Mantenimiento Hasta este momento estamos en la etapa de pruebas de algunos moacutedulos de los tres productos IMPACTO El detector de intrusos en una red es de mucha importancia debido a que en la actualidad se han diseminado muchos virus que pueden ser transmitidos a traveacutes de intrusos Hasta la fecha el meacutetodo de proteccioacuten se hace de forma manual La finalidad de este software es automatizar la proteccioacuten El traductor de texto a voz tiene como primera aplicacioacuten el auxilio en la lectura de documentos para las personas invidentes o deacutebiles visuales una segunda aplicacioacuten es la comunicacioacuten con la computadora por medio del lenguaje natura El buscador de informacioacuten es un auxilio en la buacutesqueda de datos en una base de datos de conocimiento Ya que tambieacuten estaacuten proliferando las bibliotecas virtuales es una ayuda en la localizacioacuten de informacioacuten cientiacutefica y un preaacutembulo para un software de apoyo docente BIBLIOGRAFIacuteA [1] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

30

[2] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps[3] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[4] w3c en espantildeol OWL y Web Semaacutentica httpwwww3cesDivulgacionGuiasbrevesWebSemantica

[5] Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

[6] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[7] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[8] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[9] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[10] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[11] Laboratorios Googlehttplabsgooglecompapershtml

[12] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[13] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

[14] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

[15] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps [16] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[18] Trabajos de Agente en JADE http Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

31

[19] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[20] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[21] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[22] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[23] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[24] Laboratorios Googlehttplabsgooglecompapershtml

[25] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[26] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

  • En este reporte teacutecnico se presenta la descripcioacuten general anaacutelisis y estado actual de de los trabajos terminales TT2006135 TT20060097 y TT20060068 que tienen por titulo ldquoSistema prototipo de deteccioacuten de intrusos en la red utilizando agentes inteligentesrdquo rdquoProcesamiento digital de imaacutegenes para la conversioacuten de texto a vozrdquo y ldquoSistema de buacutesqueda de informacioacuten por conceptos en la webrdquo respectivamente Los prototipos que se obtendraacuten seraacuten un software robusto que se desarrollaraacuten con teacutecnicas de inteligencia artificial como Agentes inteligentes y Redes neuronales
  • Estructura de un sistema neuronal artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
    • Estado Del Arte
      • Estructura de un sistema neuronal artificial
        • Sistemas paralelos distribuidos y adaptativos
          • Modelo estaacutendar de neurona artificial
            • Sigmoidal logariacutetmica
              • Empleo del perceptroacuten para reconocer funciones loacutegicas
              • Algoritmo de aprendizaje del perceptroacuten
                • Objetivo General
                • Estado Del Arte
                • A continuacioacuten se mencionan algunos de ellos
                  • Buscador muacuteltiple Copernic 2001 Pro
                  • Lets Browse
                  • Agentes de Informacioacuten
                    • Marco Conceptual
                      • Clases y Propiedades
                      • El sistema de escritura de datos [type system]
                      • Clases y Recursos como Conjuntos y Elementos
                        • Ontologiacuteas en la Representacioacuten del Conocimiento
                          • LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES
                          • JADE (Java Agent DEvelopment Framework)
                            • Disentildeo
                            • Arquitectura
Page 18: INSTITUTO POLITÉCNICO NACIONALsappi.ipn.mx/cgpi/archivos_anexo/20061387_3286.pdf · La comunicación del hombre con la computadora por medio del lenguaje natural, es la finalidad

18

capas La cantidad de clases a discriminar es variable y para este caso se utilizoacute una matriz de 5x8 es decir se tomaron 40 rasgos de entrada

Utilizando la red neuronal para reconocer caracteres A continuacioacuten se muestra en la imagen 211 el programa disentildeado en Java que permite discriminar un nuacutemero variable de clases Para este caso se eligioacute discriminar entre los diacutegitos del 0 al 9 El programa para reconocer los 128 caracteres referentes al sintetizador de voz tendraacute una interfaz similar con la diferencia de que la rejilla para ingresar el patroacuten a reconocer seraacute de 20x20 El programa mostrado fue programado tanto para entrenar la red como para reconocer los diacutegitos Se puede elegir entre los entrenamientos hechos para probar la efectividad de la red Las estadiacutesticas del entrenamiento elegido se muestran en la parte inferior de la pantalla

Imagen 211 Reconocimiento de los diacutegitos del 0 al 9 utilizando una red neuronal de 3 capas

19

Utilizando los clasificadores para reconocer caracteres Dentro de las teacutecnicas de reconocimiento de patrones existen diferentes clasificadores que nos permiten a partir de un conjunto de entrenamiento (en eacuteste caso un conjunto de tipos de letras que deseamos reconocer) saber a queacute clase pertenece un patroacuten de prueba que se introduce

Imagen 212 Un ejemplo de un clasificador KNN con un valor de K=3 y usando la meacutetrica City-Block para clasificar el patroacuten de prueba pruebabmp entre tres clases

En la imagen 212 se muestra como se puede clasificar un caraacutecter escalado de la imagen prueba 4bmp dentro de las tres clases existentes Se observa que si se puede clasificar este tipo de patrones pero veamos un ejemplo donde no sea posible clasificar un patroacuten de prueba y por queacute

Imagen 213 Un ejemplo de un clasificador KNN con un valor de K=5 y usando la meacutetrica Euclidiana para clasificar el patroacuten de prueba prueb3bmp entre tres clases El patroacuten no fue reconocido correctamente

20

Ahora como se observa no se pudo clasificar correctamente el patroacuten de prueba ya que pertenece claramente a la clase 3 pero por el clasificador que usamos o por el nuacutemero de K-vecinos o por el tipo de meacutetrica usada sucedioacute que en su mayoriacutea eran de la clase 2 y no de la clase 3 Tal vez si se hubiera elegido un valor de K menor a 5 tendriacutea maacutes posibilidades de clasificar correctamente Finalmente usar este tipo de teacutecnicas para reconocer caracteres es muy bueno ya que permite reconocer letras que se encuentran rotadas escaladas o trasladadas por una teacutecnica matemaacutetica llamada Momentos de Hu pero al tener una situacioacuten donde la imagen de prueba se encuentra exactamente a la misma distancia de dos o mas clases se crea el problema de no saber a que clase clasificar dicho patroacuten

Tratamiento digital de las imaacutegenes a capturar A continuacioacuten se muestra en la imagen 214 un programa que se codificoacute en C++ Builder y permite tratar digitalmente imaacutegenes BMP con la finalidad de eliminar el ruido pasarlas a escala de grises y binarizarlas El programa es capaz de generar histogramas de color

Imagen 214 Programa para tratar imaacutegenes digitalmente

21

CAPIacuteTULO 3 Buscadores La informacioacuten almacenada tendriacutea poco valor si no podemos consultarla buscar los datos en una base de datos o en muchas bases de datos que tienen conexioacuten por medio de la web es lo que nos permite explotar la informacioacuten Sin embargo la buacutesqueda seraacute eficiente si la respuesta del buscador es lo maacutes especifica o cercana a los temas solicitados Por lo que el software con aplicacioacuten de buscador es importante desarrollar un proceso para su creacioacuten Objetivo General Desarrollar un sistema de buacutesqueda de informacioacuten por conceptos en la Web basado en agentes inteligentes mediante la aplicacioacuten de ontologiacuteas Estado Del Arte Existen algunos sistemas que proporcionan buacutesquedas de informacioacuten basados en algunas de las tecnologiacuteas que vamos a utilizar Es habitual encontrar este tipo de buscadores y algunos otros similares bautizados como Megabuscadores o Multibuscadores a pesar de que estos teacuterminos no sean los maacutes idoacuteneos por lo que al hablar de este tipo de sistemas podemos referirlos como Buscadores Muacuteltiples en virtud de las caracteriacutesticas de su funcionamiento A continuacioacuten se mencionan algunos de ellos

Buscador muacuteltiple Copernic 2001 Pro Copernici producto de la empresa canadiense Copernic Technologies es un agente buscador que transfiere una ecuacioacuten de buacutesqueda a un conjunto de buscadores de manera simultaacutenea recupera las referencias pertinentes y las ordena seguacuten el grado medio de relevancia obtenido de cada uno de los buscadores La empresa creadora de Copernic se constituyoacute en 1996 con el propoacutesito de desarrollar soluciones innovadoras en tecnologiacuteas de agentes de buacutesqueda para conseguir un acceso y una gestioacuten eficientes de la gran masa de informacioacuten presente en Internet El programa se desarrolloacute el antildeo siguiente en una versioacuten experimental y se puso al alcance del puacuteblico en noviembre de 1998 Desde entonces se han lanzado versiones con elementos nuevos la mayoriacutea de los cuales no obstante soacutelo estaacuten disponibles en las ediciones comerciales La edicioacuten gratuita ofrece los servicios baacutesicos de consulta y con la intencioacuten de persuadir a los posibles compradores de las ediciones comerciales da una idea bastante aproximada de las posibilidades del programa completo

Lets Browse Como en otros medios (por ejemplo la televisioacuten) la navegacioacuten en Internet puede ser realizada por grupos de gente [Lieberman et al 1997] Lets browse muestra como un agente puede asistir a un grupo de gente en su navegacioacuten sugirieacutendoles materiales nuevos que puedan ser de intereacutes comuacuten entre ellos

Este trabajo es una extensioacuten del agente Letizia [Lieberman 1995] el cual selecciona paacuteginas de Web Letizia inicia una buacutesqueda por niveles visita las ligas que encuentra a partir de la paacutegina que su usuario esteacute revisando y selecciona aquellas que sean similares a los intereses que ha aprendido de su usuario (observando su navegacioacuten) Posteriormente muestra sus recomendaciones en un canal de navegacioacuten

22

El trabajo del agente consiste en seleccionar de la misma forma que Letizia lo hace aquellas paacuteginas que mejor satisfagan los intereses de todos los participantes Las caracteriacutesticas de Letrsquos browse son la deteccioacuten automaacutetica de la presencia de usuarios navegacioacuten automaacutetica (en canal de navegacioacuten) el despliege dinaacutemico de las preferencias de los usuarios y la explicacioacuten de las recomendaciones Permite ademaacutes revisar las paacuteginas desde el punto de vista de otra persona (con sus preferencias) y asiacute estimar cual seriacutea su posible opinioacuten acerca de dicha paacutegina auacuten cuando aquella persona no la haya revisado anteriormente

Agentes de Informacioacuten Un agente de informacioacuteiin es utilizado para organizar los espacios de informacioacuten del usuario y facilitar su explotacioacuten En el WWW (World Wide Web) se estaacuten implementando diversos agentes de informacioacuten El Agente Letizia [Lieberman 1995] que existe en un navegador de Web anticipa queacute artiacuteculos pueden ser de intereacutes para el usuario basaacutendose en las conductas pasadas del usuario Las paacuteginas que cree son de intereacutes del usuario Letizia las despliega en una ventana de sugerencias por unos instantes Marco Conceptual Actualmente para poder hacer la consulta de cualquier tipo de informacioacuten en Internet la mayoriacutea de las personas recurre a los motores de buacutesquedas conocidos como Google Yahoo Altavista por mencionar algunos siendo que estos usan diferentes meacutetodos para llegar a su objetivo podemos darnos cuenta que arrojan distintos resultados uno de otro que en el mejor de los casos coinciden en un porcentaje muy poco satisfactorio con la buacutesqueda en cuestioacuten con lo que concluimos que una respuesta a esta falta de precisioacuten en cuanto a la buacutesqueda de un tema en especial es mejor la buacutesqueda de conceptos lo cual permite al usuario acercarse maacutes al tema de su intereacutes Es importante enfocar nuestra solucioacuten apoyaacutendonos en un motor de buacutesqueda y aplicando herramientas como los Agentes que nos permitan recopilar la informacioacuten maacutes precisa de cada buacutesqueda a traveacutes de un algoritmo propio obteniendo resultados maacutes cercanos a los deseados ya que estos provienen de muacuteltiples documentos ahorrando tiempo y ganando precisioacuten a la vez Muy frecuentemente encontramos que cuando se trata de buacutesquedas en Internet a traveacutes de los motores de buacutesqueda populares los usuarios hacen consultas de diversas paginas y es muy difiacutecil llevar una lista de todos los sitios visitados o de aquellos que nos mostraron la informacioacuten maacutes adecuada nuestro sistema es capaz de registrar dentro de una base de datos un iacutendice de todos los sitios que se obtuvieron en la buacutesqueda de un tema o concepto con lo que el usuario no tendraacute que realizar una ldquonuevardquo buacutesqueda de un tema antes consultado sino que tendraacute a la mano todos los sitios que arrojoacute la primera buacutesqueda Marco teoacuterico

Descripcioacuten de RDF

El Resource Description Frameworiiik (RDF) es un fundamento para el procesamiento de metadatos proporciona interoperabilidad entre aplicaciones que intercambian informacioacuten legible por maacutequina en la Web RDF utiliza XML para intercambiar descripciones de recursos Web pero los recursos descritos pueden ser de cualquier tipo

23

incluyendo recursos XML y no-XML RDF resalta las facilidades para hacer posible el procesamiento automaacutetico de los recursos Web RDF puede utilizarse en diferentes aacutereas de aplicacioacuten por ejemplo en la recuperacioacuten de recursos para proporcionar mejores capacidades a los motores de buacutesqueda en catalogacioacuten para la descripcioacuten de contenido y relaciones de contenido accesibles en un sitio Web particular en una paacutegina o biblioteca digital a traveacutes de agentes de software inteligente para facilitar que el conocimiento se comparta e intercambie en la valoracioacuten de contenido en la descripcioacuten de colecciones de paacuteginas que representan un documento loacutegico individual para la descripcioacuten de los derechos de propiedad intelectual de las paacuteginas Web y para expresar las preferencias de privacidad de un usuario asiacute como las poliacuteticas de privacidad de un sitio Web Las descripciones utilizadas por estas aplicaciones pueden modelarse como relaciones entre recursos Web El modelo de datos de RDF tal y como se especifica en RDFMS define un modelo simple para describir las relaciones entre recursos en teacuterminos de propiedades y valores designadas Las propiedades RDF pueden entenderse como atributos de un recurso y en este sentido corresponden con los tradicionales pares atributo-valor Las propiedades RDF tambieacuten representa relaciones entre recursos De esta forma el modelo de datos RDF puede parecer un diagrama entidad-relacioacuten El modelo de datos RDF sin embargo no proporciona mecanismos para declarar estas propiedades ni proporcionan ninguacuten mecanismo para definir las relaciones entre estas propiedades y otros recursos Este es el papel [la funcioacuten] del Esquema RDF

Las comunidades de descripcioacuten de recursos necesitan la habilidad para decir ciertas cosas sobre ciertas clases de recursos Para describir recursos bibliograacuteficos por ejemplo son habituales atributos descriptivos tales como autor [author] tiacutetulo [title] y materia [subject] Para la certificacioacuten digital se necesitan muchas veces atributos tales como esquema simple de deteccioacuten de errores [checksum] y autorizacioacuten [authorization] La declaracioacuten de estas propiedades (atributos) y su semaacutentica correspondiente se definen en el contexto de RDF como un Esquema RDF Un esquema define no soacutelo las propiedades de un recurso (ej tiacutetulo autor materia tamantildeo color etc) sino que puede tambieacuten definir los tipos de recursos que se describiraacuten (libros paacuteginas Web personas empresas etc)

Los Esquemas RDF podriacutean contrastarse con las Definiciones del Tipo de Documentos (DTDs) de XML y los Esquemas XML A diferencia de una DTD o Esquema XML que dan restricciones especiacuteficas en la estructura de un documento XML un Esquema RDF proporciona informacioacuten sobre la interpretacioacuten de una sentencia dada en un modelo de datos RDF Mientras un Esquema XML puede utilizarse para validar la sintaxis de una expresioacuten RDFXML un esquema sintaacutectico soacutelo no es suficiente para los objetivos de RDF Los Esquemas RDF pueden tambieacuten especificar restricciones que deben seguirse por estos modelos de datos

Clases y Propiedades Un Esquema RDF se expresa a traveacutes de un modelo de datos descrito en la especificacioacuten del Modelo y la Sintaxis RDF [RDFMS] El lenguaje de descripcioacuten del esquema es un simple conjunto de recursos y propiedades definidos por la Especificacioacuten del Esquema RDF y la parte impliacutecita de cada modelo RDF que utiliza la mecaacutenica del esquema RDF

24

El sistema de escritura de datos [type system] El Esquema RDF definido en esta especificacioacuten es una coleccioacuten de recursos RDF que puede utilizarse para describir propiedades de otros recursos RDF (incluyendo propiedades) que definene vocabularios RDF de aplicacioacuten especiacutefica El nuacutecleo del vocabulario del esquema se define en un namespace denominado aquiacute informalmente rdfs e identificado por el URI de referencia httpwwww3org200001rdf-schema Esta especificacioacuten utiliza tambieacuten el prefijo rdf para referirse al namespace principal RDF httpwwww3org19990222-rdf-syntax-ns

Como se describe en la especificacioacuten del modelo y la sintaxis [RDFMS] los recursos pueden ser objetos especiacuteficos de una categoriacutea [instances] de una o maacutes clases esto se indica con la propiedad rdftype Las clases se organizan muchas veces de una forma jeraacuterquica por ejemplo la clase Dog [perro] podriacutea considerarse subclase de Mammal [mamiacutefero] que a su vez es una subclase de Animal dando a entender que cualquier recurso que esteacute en rdftype Dog se considera tambieacuten que estaacute en rdftype AnimalEsta especificacioacuten describe una propiedad rdfssubClassOf para indicar dichas relaciones entre clases

El sistema de escritura [type system] del Esquema RDF es similar al sistema de los lenguajes de programacioacuten orientados a objetos tales como Java Sin embargo RDF se diferencia de muchos de esos sistemas en que en lugar de definir una clase en teacuterminos de propiedades sus objetos especiacuteficos de una categoriacutea [instances] pueden tener un esquema RDF que definiraacute las propiedades en teacuterminos de clases de recurso a los que se aplican Este es el papel de las restricciones rdfsdomain y de rdfsrange

Por ejemplo podemos definir que la propiedad author tenga un dominio de Book y un alcance de Literal mientras que un sistema OO claacutesico podriacutea definir tiacutepicamente una clase Book con un atributo denominado author de tipo Literal

Clases y Recursos como Conjuntos y Elementos El siguiente esquema ilustra el concepto de clase subclase y recurso Una clase se describe por un rectaacutengulo redondeado un recurso se describe por un punto grande En la figura abajo se han dibujado flechas desde un recurso a una clase que define Una subclase se presenta en un rectaacutengulo redondeado (la subclase) completamente incluido en otro (la superclase) Si un recurso estaacute dentro de una clase entonces existe una propiedad rdftype o expliacutecita o impliacutecita de aquel recurso cuyo valor es un recurso que define la clase que contiene (Estas propiedades se muestran como arcos en la representacioacuten graacutefica directamente etiquetada en el Esquema 2) El recurso RDF representado en el esquema 1 se describe tanto en el resto de esta especificacioacuten como en la especificacioacuten del Modelo y Sintaxis RDF

Ontologiacuteas en la Representacioacuten del Conocimiento En estos uacuteltimos antildeos se incrementoacute la cantidad de informacioacuten en la Internet lo cual motivoacute el incremento de la complejidad y la diversidad de la informacioacuten Esto tambieacuten motivoacute el intereacutes de automatizar muchas actividades que tradicionalmente se realizan en forma manual La principal motivacioacuten en el uso de las ontologiacuteas es que permiten compartir y reutilizar conocimiento en un dominio De ahiacute el intereacutes de muchos

25

investigadores en el aacuterea de inteligencia artificial para tratar de aplicar las ontologiacuteas en la representacioacuten de conocimiento Las ontologiacuteas son un elemento importante en la Web Semaacutentica y es un teacutermino filosoacutefico que trata sobre la naturaleza de la existencia y los tipos de objetos que existen Tambieacuten la ontologiacutea se puede definir como una especificacioacuten expliacutecita de una conceptualizacioacuten compartida La conceptualizacioacuten se refiere a un modelo abstracto de un fenoacutemeno en el mundo en donde se tienen que identificar los conceptos relevantes de este fenoacutemeno El teacutermino expliacutecito significa queacute tipos de conceptos son usados y las restricciones de estos conceptos Y por uacuteltimo el teacutermino compartido se refiere a que las ontologiacuteas capturan conocimiento que es aceptado por todos y no es individual de un grupo Actualmente se les estaacute dando maacutes uso a las ontologiacuteas en el campo de la Inteligencia Artificial En este campo se define la ontologiacutea como una descripcioacuten formal y expliacutecita de conceptos de un dominio (classes a las que nos referiremos como conceptos) propiedades de cada concepto las cuales describen las caracteriacutesticas y atributos de los conceptos (slots llamados tambieacuten como propiedades o roles) y restricciones de las propiedades (facets conocidas como restricciones) La informacioacuten que es representada a traveacutes de los lenguajes semaacutenticos puede ser compartida entre aplicaciones como los agentes

OWL y Web Semaacutentica

La Web Semaacutentica es una Web extendida dotada de mayor significado en la que cualquier usuario en Internet podraacute encontrar respuestas a sus preguntas de forma maacutes raacutepida y sencilla gracias a una informacioacuten mejor definida Al dotar a la Web de maacutes significado y por lo tanto de maacutes semaacutentica se pueden obtener soluciones a problemas habituales en la buacutesqueda de informacioacuten gracias a la utilizacioacuten de una infraestructura comuacuten mediante la cual es posible compartir procesar y transferir informacioacuten de forma sencilla Esta Web extendida y basada en el significado se apoya en lenguajes universales que resuelven los problemas ocasionados por una Web carente de semaacutentica en la que en ocasiones el acceso a la informacioacuten se convierte en una tarea difiacutecil y frustrante

LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES La comunicacioacuten es uno de los aspectos importantes dentro de una comunidad de agentes la cual permitiraacute compartir y enviar mensajes entre agentes Los meacutetodos tradicionales permiten la comunicacioacuten entre los agentes pero eacutestos no son suficientes para lograr un comportamiento social entre los agentes para ello es necesario que los mensajes tengan un significado y contenido semaacutentico Se han desarrollado varios lenguajes los cuales son usados para el enviacuteo de mensajes a continuacioacuten hablaremos de dos de ellos KQML Knowledge Query and Manipulation Language (KQML) es uno de los lenguajes que nos provee la estructura para enviar mensajes entre agentes Dentro de sus principales caracteriacutesticas tenemos que es independiente de la sintaxis del contenido y la ontologiacutea

26

que se utilizaraacute Asiacute mismo es independiente del mecanismo de transporte (TCPIP SMTP IIOP etc) e independiente del contenido del lenguaje (KIF SQL STEP Prolog etc) KQML fue desarrollado por el consorcio DARPA Knowledge Sharing Effort (KSE) cuyo principal objetivo fue desarrollar una base tecnoloacutegica para construir en forma progresiva sistemas cada vez con maacutes funcionalidad complejidad y amplitud KQML provee un lenguaje y un protocolo para intercambiar informacioacuten entre agentes inteligentes y para lograr este intercambio se tiene que compartir una sintaxis y una semaacutentica comuacuten para que los mensajes sean entendidos por los agentes Al lenguaje KQML se le dividioacute en tres capas la capa de contenido alberga el contenido del mensaje que es especificado en cualquier formato ya sea texto o binario La capa de comunicacioacuten contiene paraacutemetros como el identificador uacutenico asociado a la comunicacioacuten identidad del remitente e identidad del destinatario La capa de mensaje define tanto los diferentes tipos de interaccioacuten que se pueden establecer entre los agentes como los protocolos que se pueden establecer entre los agentes Tambieacuten incluye otras caracteriacutesticas como el lenguaje de representacioacuten o la ontologiacutea siendo ambos opcionales

JADE (Java Agent DEvelopment Framework)

JADEiv (Java Agent DEvelopment Framework) es un middleware que proporciona tanto un entorno de desarrollo como un entorno de ejecucioacuten para la realizacioacuten y mantenimiento de sistemas multiagente El entorno de desarrollo estaacute formado por una serie de libreriacuteas en Java que permiten la implementacioacuten de agentes de manera limpia e independiente de la plataforma sobre la que se va a ejecutar El entorno de ejecucioacuten permite a los agentes vivir y comunicarse entre ellos Estaacute realizado enteramente en Java y proporciona una serie de herramientas que permiten al desarrollador controlar y depurar a los agentes en tiempo real JADE es un middleware desarrollado por TILAB para el desarrollo de aplicaciones distribuidas multiagente JADE proporciona tanto el entorno de desarrollo para la creacioacuten de aplicaciones basadas en agentes como el entorno de ejecucioacuten JADE presenta las siguientes caracteriacutesticas

P2P Arquitectura peer-to-peer cada agente puede tomar la iniciativa en una comunicacioacuten o bien responder a peticiones que le hagan otros agentes

Interoperabilidad JADE cumple con las especificaciones FIPA por lo que los agentes desarrollados en JADE pueden interactuar con otros agentes que no tienen porque estar desarrollados con JADE aunque si deben seguir las especificaciones FIPA

Portabilidad La API que proporciona JADE es independientemente de la red sobre la que va a operar asiacute como de la versioacuten de Java utilizada teniendo la misma API para J2EE J2SE y J2ME

27

Intuitiva JADE se ha desarrollado para ofrecer una API faacutecil de aprender y sencilla de manejar

Los agentes JADE tienen nombres uacutenicos y se permite a cada agente descubrir a otros agentes y comunicarse con ellos mediante comunicaciones punto a punto Los agentes proporcionan servicios cada agente puede buscar a otros dependiendo de los servicios que proporcionen otros agentes La comunicacioacuten entre agentes se lleva a cabo a traveacutes de mensajes asiacutencronos es decir el agente que enviacutea el mensaje y el destinatario del mensaje no tienen porqueacute estar disponibles al mismo tiempo Es maacutes el destinatario no tiene porqueacute existir en ese instante Los mensajes se pueden enviar a un agente en concreto o se pueden enviar a agentes que se desconocen pero se sabe que poseen unas ciertas caracteriacutesticas JADE proporciona mecanismos de seguridad ya que habraacute agentes a los que no se les esteacute permitido comunicarse con otros agentes de manera que una aplicacioacuten puede verificar la identidad del receptor y del agente que enviacutea el mensaje y no dejar realizar actuaciones no permitidas para un determinado agente La estructura de los mensajes se basa en el lenguaje ACL (Agent Communication Lenguaje) que ha sido definido por la FIPA JADE facilita mecanismos para el desarrollo de los objetivos que deben alcanzar los agentes Los comportamientos (behaviours) y la comunicacioacuten entre los agentes (junto con el servicio de paacuteginas amarillas) proporcionan los recursos necesarios para programar un sistema multiagente JADE tambieacuten permite a los agentes cambiar de Host (en J2SE) Un agente puede interrumpir en un momento dado su ejecucioacuten migrar a otro host (sin necesidad de que el coacutedigo esteacute previamente en el host destino) y continuar la ejecucioacuten en el mismo punto en el que la interrumpioacute Esto permite un balanceo de carga ya que permite a los agentes migrar hosts menos cargados El entorno de ejecucioacuten proporciona un marco donde poder ejecutar los agentes y herramientas graacuteficas para su monitorizacioacuten y depuracioacuten Los agentes JADE necesitan del entorno de ejecucioacuten donde poder vivir Cada instancia del entorno de ejecucioacuten se denomina contenedor (container) Al conjunto de los contenedores se le denomina plataforma (platform) y proporciona una capa que oculta a los agentes (y al desarrollador) el entorno donde se ha decidido ejecutar la aplicacioacuten En cada plataforma debe existir un contenedor especial denominado contenedor principal (main container) La principal diferencia del contenedor principal respecto al resto de contenedores es que alberga dos agentes especiales

AMS (Agent Management System) Este agente proporciona el servicio de nombres asegurando que cada agente en la plataforma disponga de un nombre uacutenico Tambieacuten representa la autoridad es posible crear y matar agentes en contenedores remotos requeriendoselo al agente AMS

DF (Directory Facilitator) Proporciona el servicio de Paacuteginas Amarillas Gracias al agente DF un agente puede encontrar otros agentes que provean los servicios necesarios para lograr sus objetivos

28

La caracteriacutestica mas importante del entorno de ejecucioacuten es la interfaz graacutefica que proporciona desde la que podemos controlar y depurar los agentes existentes Todas las herramientas han sido desarrolladas como agentes y siguen sus mismas reglas Disentildeo Arquitectura

Agente usuario

Agente de ontologiacutea

Agente de filtrado

Agente de recuperacioacuten

BD

OntologiacuteaSistema

Motor de buacutesqueda

El sistema esta disentildeado para que un usuario realice alguna buacutesqueda relacionada con alguno de los tres temas propuestos en nuestra base de conocimiento que son Ingenieriacutea de Software Base de Datos y Deportes El sistema esta basado en una arquitectura multiagente la cual se conforma por Agente Usuario Actuacutea de intermediario entre el usuario y el sistema Sus servicios son solicitados por el usuario para resolver las consultas El usuario le suministra una consulta y el sistema le devuelve una lista de documentos que pueden satisfacer sus necesidades Este agente tiene la capacidad de acceder a la base de datos con el objetivo de almacenar yo recuperar resultados Base de Datos Guardaraacute las ultimas buacutesquedas realizadas para su posterior consulta a peticioacuten del usuario Agente de Filtrado Gestiona la recuperacioacuten de documentos y realiza el filtrado de los mismos proporcionados por el Agente de Recuperacioacuten Recibe la peticioacuten del Agente Usuario y a su vez esta es enviada al Agente Ontologiacutea para que este regrese una evaluacioacuten de la consulta y de esta forma conocer si es necesaria una redefinicioacuten de la consulta En caso de ser necesaria se espera recibir el nuevo vector de consulta hasta que se cumpla una de dos opciones el usuario deje de redefinir la consulta o la consulta sea concreta Cuando la consulta sea concreta es enviada de nueva cuenta al Agente Ontologiacutea el cual regresaraacute el Nuevo Vector Expandido Este seraacute enviado al Agente de Recuperacioacuten Cuando el Agente de Recuperacioacuten regrese los urlacutes de los resultados (con sus respectivos vectores de teacuterminos) se realiza una evaluacioacuten de los vectores de cada documento con respecto al vector de buacutesqueda expandida con el objetivo de asignarles una calificacioacuten Gracias a esta calificacioacuten podemos obtener aquellos documentos que mejor cumplan con las expectativas del usuario (Estos documentos son regresados al Agente Usuario) Agente Ontologiacutea Recibe el vector de consulta proporcionado por el Agente de Filtrado La informacioacuten contenida en el vector de consulta es comparada con la existente en nuestra ontologiacutea Una vez verificada la existencia de la informacioacuten del

29

vector consulta dentro de la ontologiacutea este se encarga de devolver la distancia y el umbral al Agente de Filtrado Se espera que este devuelva una peticioacuten para expandir ese mismo vector Puede darse el caso de obtener dos tipos de buacutesquedas una general y otra mucho maacutes definida En cualquiera de los caso obtenemos un nuevo vector de buacutesqueda (con una informacioacuten mejor definida este es el Vector de Buacutesqueda Expandido) que es enviado de regreso al Agente de Filtrado el cual genera una copia y le es enviada al Agente de Recuperacioacuten Ontologiacutea Representa nuestra base de conocimientos Esta compuesta por tres aacutereas de conocimiento las cuales son Ingenieriacutea se Software Bases de Datos y Deportes Para poder representar esta ontologiacutea en un lenguaje entendible para agentes inteligentes se programaraacute bajo los fundamentos de las estructuras RDF contenidas en las especificaciones de XML y siguiendo los estaacutendares de la W3C Agente Recuperacioacuten Realiza la buacutesqueda gracias a la informacioacuten que le es entregada por el Agente de Filtrado (se trata Vector de Buacutesqueda Expandido generado por el Agente de Ontologiacutea) El agente estructura esta informacioacuten y se introduce en un motor de buacutesqueda(diacutegase por ejemplo Google) de tal manera que obtengamos una lista de posibles documentos A cada documento se le asigna un vector de teacuterminos con sus pesos derivados de un anaacutelisis TFIDF para despueacutes regresar las urlacutes con su respectivo vector de teacuterminos al Agente Filtrado RESULTADOS Este proyecto tiene la finalidad de desarrollar el software para un antivirus y un traductor Pero durante los estudios de anaacutelisis de estos dos productos se encontroacute que el software para la buacutesqueda de la informacioacuten tambieacuten puede ser implementada por medio de teacutecnicas de Inteligencia Artificial Para construir el software de aplicacioacuten para estas necesidades se usa la metodologiacutea de cascada Donde los pasos a seguir son el Anaacutelisis Disentildeo Pruebas Implementacioacuten y Mantenimiento Hasta este momento estamos en la etapa de pruebas de algunos moacutedulos de los tres productos IMPACTO El detector de intrusos en una red es de mucha importancia debido a que en la actualidad se han diseminado muchos virus que pueden ser transmitidos a traveacutes de intrusos Hasta la fecha el meacutetodo de proteccioacuten se hace de forma manual La finalidad de este software es automatizar la proteccioacuten El traductor de texto a voz tiene como primera aplicacioacuten el auxilio en la lectura de documentos para las personas invidentes o deacutebiles visuales una segunda aplicacioacuten es la comunicacioacuten con la computadora por medio del lenguaje natura El buscador de informacioacuten es un auxilio en la buacutesqueda de datos en una base de datos de conocimiento Ya que tambieacuten estaacuten proliferando las bibliotecas virtuales es una ayuda en la localizacioacuten de informacioacuten cientiacutefica y un preaacutembulo para un software de apoyo docente BIBLIOGRAFIacuteA [1] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

30

[2] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps[3] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[4] w3c en espantildeol OWL y Web Semaacutentica httpwwww3cesDivulgacionGuiasbrevesWebSemantica

[5] Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

[6] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[7] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[8] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[9] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[10] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[11] Laboratorios Googlehttplabsgooglecompapershtml

[12] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[13] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

[14] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

[15] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps [16] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[18] Trabajos de Agente en JADE http Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

31

[19] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[20] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[21] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[22] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[23] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[24] Laboratorios Googlehttplabsgooglecompapershtml

[25] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[26] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

  • En este reporte teacutecnico se presenta la descripcioacuten general anaacutelisis y estado actual de de los trabajos terminales TT2006135 TT20060097 y TT20060068 que tienen por titulo ldquoSistema prototipo de deteccioacuten de intrusos en la red utilizando agentes inteligentesrdquo rdquoProcesamiento digital de imaacutegenes para la conversioacuten de texto a vozrdquo y ldquoSistema de buacutesqueda de informacioacuten por conceptos en la webrdquo respectivamente Los prototipos que se obtendraacuten seraacuten un software robusto que se desarrollaraacuten con teacutecnicas de inteligencia artificial como Agentes inteligentes y Redes neuronales
  • Estructura de un sistema neuronal artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
    • Estado Del Arte
      • Estructura de un sistema neuronal artificial
        • Sistemas paralelos distribuidos y adaptativos
          • Modelo estaacutendar de neurona artificial
            • Sigmoidal logariacutetmica
              • Empleo del perceptroacuten para reconocer funciones loacutegicas
              • Algoritmo de aprendizaje del perceptroacuten
                • Objetivo General
                • Estado Del Arte
                • A continuacioacuten se mencionan algunos de ellos
                  • Buscador muacuteltiple Copernic 2001 Pro
                  • Lets Browse
                  • Agentes de Informacioacuten
                    • Marco Conceptual
                      • Clases y Propiedades
                      • El sistema de escritura de datos [type system]
                      • Clases y Recursos como Conjuntos y Elementos
                        • Ontologiacuteas en la Representacioacuten del Conocimiento
                          • LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES
                          • JADE (Java Agent DEvelopment Framework)
                            • Disentildeo
                            • Arquitectura
Page 19: INSTITUTO POLITÉCNICO NACIONALsappi.ipn.mx/cgpi/archivos_anexo/20061387_3286.pdf · La comunicación del hombre con la computadora por medio del lenguaje natural, es la finalidad

19

Utilizando los clasificadores para reconocer caracteres Dentro de las teacutecnicas de reconocimiento de patrones existen diferentes clasificadores que nos permiten a partir de un conjunto de entrenamiento (en eacuteste caso un conjunto de tipos de letras que deseamos reconocer) saber a queacute clase pertenece un patroacuten de prueba que se introduce

Imagen 212 Un ejemplo de un clasificador KNN con un valor de K=3 y usando la meacutetrica City-Block para clasificar el patroacuten de prueba pruebabmp entre tres clases

En la imagen 212 se muestra como se puede clasificar un caraacutecter escalado de la imagen prueba 4bmp dentro de las tres clases existentes Se observa que si se puede clasificar este tipo de patrones pero veamos un ejemplo donde no sea posible clasificar un patroacuten de prueba y por queacute

Imagen 213 Un ejemplo de un clasificador KNN con un valor de K=5 y usando la meacutetrica Euclidiana para clasificar el patroacuten de prueba prueb3bmp entre tres clases El patroacuten no fue reconocido correctamente

20

Ahora como se observa no se pudo clasificar correctamente el patroacuten de prueba ya que pertenece claramente a la clase 3 pero por el clasificador que usamos o por el nuacutemero de K-vecinos o por el tipo de meacutetrica usada sucedioacute que en su mayoriacutea eran de la clase 2 y no de la clase 3 Tal vez si se hubiera elegido un valor de K menor a 5 tendriacutea maacutes posibilidades de clasificar correctamente Finalmente usar este tipo de teacutecnicas para reconocer caracteres es muy bueno ya que permite reconocer letras que se encuentran rotadas escaladas o trasladadas por una teacutecnica matemaacutetica llamada Momentos de Hu pero al tener una situacioacuten donde la imagen de prueba se encuentra exactamente a la misma distancia de dos o mas clases se crea el problema de no saber a que clase clasificar dicho patroacuten

Tratamiento digital de las imaacutegenes a capturar A continuacioacuten se muestra en la imagen 214 un programa que se codificoacute en C++ Builder y permite tratar digitalmente imaacutegenes BMP con la finalidad de eliminar el ruido pasarlas a escala de grises y binarizarlas El programa es capaz de generar histogramas de color

Imagen 214 Programa para tratar imaacutegenes digitalmente

21

CAPIacuteTULO 3 Buscadores La informacioacuten almacenada tendriacutea poco valor si no podemos consultarla buscar los datos en una base de datos o en muchas bases de datos que tienen conexioacuten por medio de la web es lo que nos permite explotar la informacioacuten Sin embargo la buacutesqueda seraacute eficiente si la respuesta del buscador es lo maacutes especifica o cercana a los temas solicitados Por lo que el software con aplicacioacuten de buscador es importante desarrollar un proceso para su creacioacuten Objetivo General Desarrollar un sistema de buacutesqueda de informacioacuten por conceptos en la Web basado en agentes inteligentes mediante la aplicacioacuten de ontologiacuteas Estado Del Arte Existen algunos sistemas que proporcionan buacutesquedas de informacioacuten basados en algunas de las tecnologiacuteas que vamos a utilizar Es habitual encontrar este tipo de buscadores y algunos otros similares bautizados como Megabuscadores o Multibuscadores a pesar de que estos teacuterminos no sean los maacutes idoacuteneos por lo que al hablar de este tipo de sistemas podemos referirlos como Buscadores Muacuteltiples en virtud de las caracteriacutesticas de su funcionamiento A continuacioacuten se mencionan algunos de ellos

Buscador muacuteltiple Copernic 2001 Pro Copernici producto de la empresa canadiense Copernic Technologies es un agente buscador que transfiere una ecuacioacuten de buacutesqueda a un conjunto de buscadores de manera simultaacutenea recupera las referencias pertinentes y las ordena seguacuten el grado medio de relevancia obtenido de cada uno de los buscadores La empresa creadora de Copernic se constituyoacute en 1996 con el propoacutesito de desarrollar soluciones innovadoras en tecnologiacuteas de agentes de buacutesqueda para conseguir un acceso y una gestioacuten eficientes de la gran masa de informacioacuten presente en Internet El programa se desarrolloacute el antildeo siguiente en una versioacuten experimental y se puso al alcance del puacuteblico en noviembre de 1998 Desde entonces se han lanzado versiones con elementos nuevos la mayoriacutea de los cuales no obstante soacutelo estaacuten disponibles en las ediciones comerciales La edicioacuten gratuita ofrece los servicios baacutesicos de consulta y con la intencioacuten de persuadir a los posibles compradores de las ediciones comerciales da una idea bastante aproximada de las posibilidades del programa completo

Lets Browse Como en otros medios (por ejemplo la televisioacuten) la navegacioacuten en Internet puede ser realizada por grupos de gente [Lieberman et al 1997] Lets browse muestra como un agente puede asistir a un grupo de gente en su navegacioacuten sugirieacutendoles materiales nuevos que puedan ser de intereacutes comuacuten entre ellos

Este trabajo es una extensioacuten del agente Letizia [Lieberman 1995] el cual selecciona paacuteginas de Web Letizia inicia una buacutesqueda por niveles visita las ligas que encuentra a partir de la paacutegina que su usuario esteacute revisando y selecciona aquellas que sean similares a los intereses que ha aprendido de su usuario (observando su navegacioacuten) Posteriormente muestra sus recomendaciones en un canal de navegacioacuten

22

El trabajo del agente consiste en seleccionar de la misma forma que Letizia lo hace aquellas paacuteginas que mejor satisfagan los intereses de todos los participantes Las caracteriacutesticas de Letrsquos browse son la deteccioacuten automaacutetica de la presencia de usuarios navegacioacuten automaacutetica (en canal de navegacioacuten) el despliege dinaacutemico de las preferencias de los usuarios y la explicacioacuten de las recomendaciones Permite ademaacutes revisar las paacuteginas desde el punto de vista de otra persona (con sus preferencias) y asiacute estimar cual seriacutea su posible opinioacuten acerca de dicha paacutegina auacuten cuando aquella persona no la haya revisado anteriormente

Agentes de Informacioacuten Un agente de informacioacuteiin es utilizado para organizar los espacios de informacioacuten del usuario y facilitar su explotacioacuten En el WWW (World Wide Web) se estaacuten implementando diversos agentes de informacioacuten El Agente Letizia [Lieberman 1995] que existe en un navegador de Web anticipa queacute artiacuteculos pueden ser de intereacutes para el usuario basaacutendose en las conductas pasadas del usuario Las paacuteginas que cree son de intereacutes del usuario Letizia las despliega en una ventana de sugerencias por unos instantes Marco Conceptual Actualmente para poder hacer la consulta de cualquier tipo de informacioacuten en Internet la mayoriacutea de las personas recurre a los motores de buacutesquedas conocidos como Google Yahoo Altavista por mencionar algunos siendo que estos usan diferentes meacutetodos para llegar a su objetivo podemos darnos cuenta que arrojan distintos resultados uno de otro que en el mejor de los casos coinciden en un porcentaje muy poco satisfactorio con la buacutesqueda en cuestioacuten con lo que concluimos que una respuesta a esta falta de precisioacuten en cuanto a la buacutesqueda de un tema en especial es mejor la buacutesqueda de conceptos lo cual permite al usuario acercarse maacutes al tema de su intereacutes Es importante enfocar nuestra solucioacuten apoyaacutendonos en un motor de buacutesqueda y aplicando herramientas como los Agentes que nos permitan recopilar la informacioacuten maacutes precisa de cada buacutesqueda a traveacutes de un algoritmo propio obteniendo resultados maacutes cercanos a los deseados ya que estos provienen de muacuteltiples documentos ahorrando tiempo y ganando precisioacuten a la vez Muy frecuentemente encontramos que cuando se trata de buacutesquedas en Internet a traveacutes de los motores de buacutesqueda populares los usuarios hacen consultas de diversas paginas y es muy difiacutecil llevar una lista de todos los sitios visitados o de aquellos que nos mostraron la informacioacuten maacutes adecuada nuestro sistema es capaz de registrar dentro de una base de datos un iacutendice de todos los sitios que se obtuvieron en la buacutesqueda de un tema o concepto con lo que el usuario no tendraacute que realizar una ldquonuevardquo buacutesqueda de un tema antes consultado sino que tendraacute a la mano todos los sitios que arrojoacute la primera buacutesqueda Marco teoacuterico

Descripcioacuten de RDF

El Resource Description Frameworiiik (RDF) es un fundamento para el procesamiento de metadatos proporciona interoperabilidad entre aplicaciones que intercambian informacioacuten legible por maacutequina en la Web RDF utiliza XML para intercambiar descripciones de recursos Web pero los recursos descritos pueden ser de cualquier tipo

23

incluyendo recursos XML y no-XML RDF resalta las facilidades para hacer posible el procesamiento automaacutetico de los recursos Web RDF puede utilizarse en diferentes aacutereas de aplicacioacuten por ejemplo en la recuperacioacuten de recursos para proporcionar mejores capacidades a los motores de buacutesqueda en catalogacioacuten para la descripcioacuten de contenido y relaciones de contenido accesibles en un sitio Web particular en una paacutegina o biblioteca digital a traveacutes de agentes de software inteligente para facilitar que el conocimiento se comparta e intercambie en la valoracioacuten de contenido en la descripcioacuten de colecciones de paacuteginas que representan un documento loacutegico individual para la descripcioacuten de los derechos de propiedad intelectual de las paacuteginas Web y para expresar las preferencias de privacidad de un usuario asiacute como las poliacuteticas de privacidad de un sitio Web Las descripciones utilizadas por estas aplicaciones pueden modelarse como relaciones entre recursos Web El modelo de datos de RDF tal y como se especifica en RDFMS define un modelo simple para describir las relaciones entre recursos en teacuterminos de propiedades y valores designadas Las propiedades RDF pueden entenderse como atributos de un recurso y en este sentido corresponden con los tradicionales pares atributo-valor Las propiedades RDF tambieacuten representa relaciones entre recursos De esta forma el modelo de datos RDF puede parecer un diagrama entidad-relacioacuten El modelo de datos RDF sin embargo no proporciona mecanismos para declarar estas propiedades ni proporcionan ninguacuten mecanismo para definir las relaciones entre estas propiedades y otros recursos Este es el papel [la funcioacuten] del Esquema RDF

Las comunidades de descripcioacuten de recursos necesitan la habilidad para decir ciertas cosas sobre ciertas clases de recursos Para describir recursos bibliograacuteficos por ejemplo son habituales atributos descriptivos tales como autor [author] tiacutetulo [title] y materia [subject] Para la certificacioacuten digital se necesitan muchas veces atributos tales como esquema simple de deteccioacuten de errores [checksum] y autorizacioacuten [authorization] La declaracioacuten de estas propiedades (atributos) y su semaacutentica correspondiente se definen en el contexto de RDF como un Esquema RDF Un esquema define no soacutelo las propiedades de un recurso (ej tiacutetulo autor materia tamantildeo color etc) sino que puede tambieacuten definir los tipos de recursos que se describiraacuten (libros paacuteginas Web personas empresas etc)

Los Esquemas RDF podriacutean contrastarse con las Definiciones del Tipo de Documentos (DTDs) de XML y los Esquemas XML A diferencia de una DTD o Esquema XML que dan restricciones especiacuteficas en la estructura de un documento XML un Esquema RDF proporciona informacioacuten sobre la interpretacioacuten de una sentencia dada en un modelo de datos RDF Mientras un Esquema XML puede utilizarse para validar la sintaxis de una expresioacuten RDFXML un esquema sintaacutectico soacutelo no es suficiente para los objetivos de RDF Los Esquemas RDF pueden tambieacuten especificar restricciones que deben seguirse por estos modelos de datos

Clases y Propiedades Un Esquema RDF se expresa a traveacutes de un modelo de datos descrito en la especificacioacuten del Modelo y la Sintaxis RDF [RDFMS] El lenguaje de descripcioacuten del esquema es un simple conjunto de recursos y propiedades definidos por la Especificacioacuten del Esquema RDF y la parte impliacutecita de cada modelo RDF que utiliza la mecaacutenica del esquema RDF

24

El sistema de escritura de datos [type system] El Esquema RDF definido en esta especificacioacuten es una coleccioacuten de recursos RDF que puede utilizarse para describir propiedades de otros recursos RDF (incluyendo propiedades) que definene vocabularios RDF de aplicacioacuten especiacutefica El nuacutecleo del vocabulario del esquema se define en un namespace denominado aquiacute informalmente rdfs e identificado por el URI de referencia httpwwww3org200001rdf-schema Esta especificacioacuten utiliza tambieacuten el prefijo rdf para referirse al namespace principal RDF httpwwww3org19990222-rdf-syntax-ns

Como se describe en la especificacioacuten del modelo y la sintaxis [RDFMS] los recursos pueden ser objetos especiacuteficos de una categoriacutea [instances] de una o maacutes clases esto se indica con la propiedad rdftype Las clases se organizan muchas veces de una forma jeraacuterquica por ejemplo la clase Dog [perro] podriacutea considerarse subclase de Mammal [mamiacutefero] que a su vez es una subclase de Animal dando a entender que cualquier recurso que esteacute en rdftype Dog se considera tambieacuten que estaacute en rdftype AnimalEsta especificacioacuten describe una propiedad rdfssubClassOf para indicar dichas relaciones entre clases

El sistema de escritura [type system] del Esquema RDF es similar al sistema de los lenguajes de programacioacuten orientados a objetos tales como Java Sin embargo RDF se diferencia de muchos de esos sistemas en que en lugar de definir una clase en teacuterminos de propiedades sus objetos especiacuteficos de una categoriacutea [instances] pueden tener un esquema RDF que definiraacute las propiedades en teacuterminos de clases de recurso a los que se aplican Este es el papel de las restricciones rdfsdomain y de rdfsrange

Por ejemplo podemos definir que la propiedad author tenga un dominio de Book y un alcance de Literal mientras que un sistema OO claacutesico podriacutea definir tiacutepicamente una clase Book con un atributo denominado author de tipo Literal

Clases y Recursos como Conjuntos y Elementos El siguiente esquema ilustra el concepto de clase subclase y recurso Una clase se describe por un rectaacutengulo redondeado un recurso se describe por un punto grande En la figura abajo se han dibujado flechas desde un recurso a una clase que define Una subclase se presenta en un rectaacutengulo redondeado (la subclase) completamente incluido en otro (la superclase) Si un recurso estaacute dentro de una clase entonces existe una propiedad rdftype o expliacutecita o impliacutecita de aquel recurso cuyo valor es un recurso que define la clase que contiene (Estas propiedades se muestran como arcos en la representacioacuten graacutefica directamente etiquetada en el Esquema 2) El recurso RDF representado en el esquema 1 se describe tanto en el resto de esta especificacioacuten como en la especificacioacuten del Modelo y Sintaxis RDF

Ontologiacuteas en la Representacioacuten del Conocimiento En estos uacuteltimos antildeos se incrementoacute la cantidad de informacioacuten en la Internet lo cual motivoacute el incremento de la complejidad y la diversidad de la informacioacuten Esto tambieacuten motivoacute el intereacutes de automatizar muchas actividades que tradicionalmente se realizan en forma manual La principal motivacioacuten en el uso de las ontologiacuteas es que permiten compartir y reutilizar conocimiento en un dominio De ahiacute el intereacutes de muchos

25

investigadores en el aacuterea de inteligencia artificial para tratar de aplicar las ontologiacuteas en la representacioacuten de conocimiento Las ontologiacuteas son un elemento importante en la Web Semaacutentica y es un teacutermino filosoacutefico que trata sobre la naturaleza de la existencia y los tipos de objetos que existen Tambieacuten la ontologiacutea se puede definir como una especificacioacuten expliacutecita de una conceptualizacioacuten compartida La conceptualizacioacuten se refiere a un modelo abstracto de un fenoacutemeno en el mundo en donde se tienen que identificar los conceptos relevantes de este fenoacutemeno El teacutermino expliacutecito significa queacute tipos de conceptos son usados y las restricciones de estos conceptos Y por uacuteltimo el teacutermino compartido se refiere a que las ontologiacuteas capturan conocimiento que es aceptado por todos y no es individual de un grupo Actualmente se les estaacute dando maacutes uso a las ontologiacuteas en el campo de la Inteligencia Artificial En este campo se define la ontologiacutea como una descripcioacuten formal y expliacutecita de conceptos de un dominio (classes a las que nos referiremos como conceptos) propiedades de cada concepto las cuales describen las caracteriacutesticas y atributos de los conceptos (slots llamados tambieacuten como propiedades o roles) y restricciones de las propiedades (facets conocidas como restricciones) La informacioacuten que es representada a traveacutes de los lenguajes semaacutenticos puede ser compartida entre aplicaciones como los agentes

OWL y Web Semaacutentica

La Web Semaacutentica es una Web extendida dotada de mayor significado en la que cualquier usuario en Internet podraacute encontrar respuestas a sus preguntas de forma maacutes raacutepida y sencilla gracias a una informacioacuten mejor definida Al dotar a la Web de maacutes significado y por lo tanto de maacutes semaacutentica se pueden obtener soluciones a problemas habituales en la buacutesqueda de informacioacuten gracias a la utilizacioacuten de una infraestructura comuacuten mediante la cual es posible compartir procesar y transferir informacioacuten de forma sencilla Esta Web extendida y basada en el significado se apoya en lenguajes universales que resuelven los problemas ocasionados por una Web carente de semaacutentica en la que en ocasiones el acceso a la informacioacuten se convierte en una tarea difiacutecil y frustrante

LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES La comunicacioacuten es uno de los aspectos importantes dentro de una comunidad de agentes la cual permitiraacute compartir y enviar mensajes entre agentes Los meacutetodos tradicionales permiten la comunicacioacuten entre los agentes pero eacutestos no son suficientes para lograr un comportamiento social entre los agentes para ello es necesario que los mensajes tengan un significado y contenido semaacutentico Se han desarrollado varios lenguajes los cuales son usados para el enviacuteo de mensajes a continuacioacuten hablaremos de dos de ellos KQML Knowledge Query and Manipulation Language (KQML) es uno de los lenguajes que nos provee la estructura para enviar mensajes entre agentes Dentro de sus principales caracteriacutesticas tenemos que es independiente de la sintaxis del contenido y la ontologiacutea

26

que se utilizaraacute Asiacute mismo es independiente del mecanismo de transporte (TCPIP SMTP IIOP etc) e independiente del contenido del lenguaje (KIF SQL STEP Prolog etc) KQML fue desarrollado por el consorcio DARPA Knowledge Sharing Effort (KSE) cuyo principal objetivo fue desarrollar una base tecnoloacutegica para construir en forma progresiva sistemas cada vez con maacutes funcionalidad complejidad y amplitud KQML provee un lenguaje y un protocolo para intercambiar informacioacuten entre agentes inteligentes y para lograr este intercambio se tiene que compartir una sintaxis y una semaacutentica comuacuten para que los mensajes sean entendidos por los agentes Al lenguaje KQML se le dividioacute en tres capas la capa de contenido alberga el contenido del mensaje que es especificado en cualquier formato ya sea texto o binario La capa de comunicacioacuten contiene paraacutemetros como el identificador uacutenico asociado a la comunicacioacuten identidad del remitente e identidad del destinatario La capa de mensaje define tanto los diferentes tipos de interaccioacuten que se pueden establecer entre los agentes como los protocolos que se pueden establecer entre los agentes Tambieacuten incluye otras caracteriacutesticas como el lenguaje de representacioacuten o la ontologiacutea siendo ambos opcionales

JADE (Java Agent DEvelopment Framework)

JADEiv (Java Agent DEvelopment Framework) es un middleware que proporciona tanto un entorno de desarrollo como un entorno de ejecucioacuten para la realizacioacuten y mantenimiento de sistemas multiagente El entorno de desarrollo estaacute formado por una serie de libreriacuteas en Java que permiten la implementacioacuten de agentes de manera limpia e independiente de la plataforma sobre la que se va a ejecutar El entorno de ejecucioacuten permite a los agentes vivir y comunicarse entre ellos Estaacute realizado enteramente en Java y proporciona una serie de herramientas que permiten al desarrollador controlar y depurar a los agentes en tiempo real JADE es un middleware desarrollado por TILAB para el desarrollo de aplicaciones distribuidas multiagente JADE proporciona tanto el entorno de desarrollo para la creacioacuten de aplicaciones basadas en agentes como el entorno de ejecucioacuten JADE presenta las siguientes caracteriacutesticas

P2P Arquitectura peer-to-peer cada agente puede tomar la iniciativa en una comunicacioacuten o bien responder a peticiones que le hagan otros agentes

Interoperabilidad JADE cumple con las especificaciones FIPA por lo que los agentes desarrollados en JADE pueden interactuar con otros agentes que no tienen porque estar desarrollados con JADE aunque si deben seguir las especificaciones FIPA

Portabilidad La API que proporciona JADE es independientemente de la red sobre la que va a operar asiacute como de la versioacuten de Java utilizada teniendo la misma API para J2EE J2SE y J2ME

27

Intuitiva JADE se ha desarrollado para ofrecer una API faacutecil de aprender y sencilla de manejar

Los agentes JADE tienen nombres uacutenicos y se permite a cada agente descubrir a otros agentes y comunicarse con ellos mediante comunicaciones punto a punto Los agentes proporcionan servicios cada agente puede buscar a otros dependiendo de los servicios que proporcionen otros agentes La comunicacioacuten entre agentes se lleva a cabo a traveacutes de mensajes asiacutencronos es decir el agente que enviacutea el mensaje y el destinatario del mensaje no tienen porqueacute estar disponibles al mismo tiempo Es maacutes el destinatario no tiene porqueacute existir en ese instante Los mensajes se pueden enviar a un agente en concreto o se pueden enviar a agentes que se desconocen pero se sabe que poseen unas ciertas caracteriacutesticas JADE proporciona mecanismos de seguridad ya que habraacute agentes a los que no se les esteacute permitido comunicarse con otros agentes de manera que una aplicacioacuten puede verificar la identidad del receptor y del agente que enviacutea el mensaje y no dejar realizar actuaciones no permitidas para un determinado agente La estructura de los mensajes se basa en el lenguaje ACL (Agent Communication Lenguaje) que ha sido definido por la FIPA JADE facilita mecanismos para el desarrollo de los objetivos que deben alcanzar los agentes Los comportamientos (behaviours) y la comunicacioacuten entre los agentes (junto con el servicio de paacuteginas amarillas) proporcionan los recursos necesarios para programar un sistema multiagente JADE tambieacuten permite a los agentes cambiar de Host (en J2SE) Un agente puede interrumpir en un momento dado su ejecucioacuten migrar a otro host (sin necesidad de que el coacutedigo esteacute previamente en el host destino) y continuar la ejecucioacuten en el mismo punto en el que la interrumpioacute Esto permite un balanceo de carga ya que permite a los agentes migrar hosts menos cargados El entorno de ejecucioacuten proporciona un marco donde poder ejecutar los agentes y herramientas graacuteficas para su monitorizacioacuten y depuracioacuten Los agentes JADE necesitan del entorno de ejecucioacuten donde poder vivir Cada instancia del entorno de ejecucioacuten se denomina contenedor (container) Al conjunto de los contenedores se le denomina plataforma (platform) y proporciona una capa que oculta a los agentes (y al desarrollador) el entorno donde se ha decidido ejecutar la aplicacioacuten En cada plataforma debe existir un contenedor especial denominado contenedor principal (main container) La principal diferencia del contenedor principal respecto al resto de contenedores es que alberga dos agentes especiales

AMS (Agent Management System) Este agente proporciona el servicio de nombres asegurando que cada agente en la plataforma disponga de un nombre uacutenico Tambieacuten representa la autoridad es posible crear y matar agentes en contenedores remotos requeriendoselo al agente AMS

DF (Directory Facilitator) Proporciona el servicio de Paacuteginas Amarillas Gracias al agente DF un agente puede encontrar otros agentes que provean los servicios necesarios para lograr sus objetivos

28

La caracteriacutestica mas importante del entorno de ejecucioacuten es la interfaz graacutefica que proporciona desde la que podemos controlar y depurar los agentes existentes Todas las herramientas han sido desarrolladas como agentes y siguen sus mismas reglas Disentildeo Arquitectura

Agente usuario

Agente de ontologiacutea

Agente de filtrado

Agente de recuperacioacuten

BD

OntologiacuteaSistema

Motor de buacutesqueda

El sistema esta disentildeado para que un usuario realice alguna buacutesqueda relacionada con alguno de los tres temas propuestos en nuestra base de conocimiento que son Ingenieriacutea de Software Base de Datos y Deportes El sistema esta basado en una arquitectura multiagente la cual se conforma por Agente Usuario Actuacutea de intermediario entre el usuario y el sistema Sus servicios son solicitados por el usuario para resolver las consultas El usuario le suministra una consulta y el sistema le devuelve una lista de documentos que pueden satisfacer sus necesidades Este agente tiene la capacidad de acceder a la base de datos con el objetivo de almacenar yo recuperar resultados Base de Datos Guardaraacute las ultimas buacutesquedas realizadas para su posterior consulta a peticioacuten del usuario Agente de Filtrado Gestiona la recuperacioacuten de documentos y realiza el filtrado de los mismos proporcionados por el Agente de Recuperacioacuten Recibe la peticioacuten del Agente Usuario y a su vez esta es enviada al Agente Ontologiacutea para que este regrese una evaluacioacuten de la consulta y de esta forma conocer si es necesaria una redefinicioacuten de la consulta En caso de ser necesaria se espera recibir el nuevo vector de consulta hasta que se cumpla una de dos opciones el usuario deje de redefinir la consulta o la consulta sea concreta Cuando la consulta sea concreta es enviada de nueva cuenta al Agente Ontologiacutea el cual regresaraacute el Nuevo Vector Expandido Este seraacute enviado al Agente de Recuperacioacuten Cuando el Agente de Recuperacioacuten regrese los urlacutes de los resultados (con sus respectivos vectores de teacuterminos) se realiza una evaluacioacuten de los vectores de cada documento con respecto al vector de buacutesqueda expandida con el objetivo de asignarles una calificacioacuten Gracias a esta calificacioacuten podemos obtener aquellos documentos que mejor cumplan con las expectativas del usuario (Estos documentos son regresados al Agente Usuario) Agente Ontologiacutea Recibe el vector de consulta proporcionado por el Agente de Filtrado La informacioacuten contenida en el vector de consulta es comparada con la existente en nuestra ontologiacutea Una vez verificada la existencia de la informacioacuten del

29

vector consulta dentro de la ontologiacutea este se encarga de devolver la distancia y el umbral al Agente de Filtrado Se espera que este devuelva una peticioacuten para expandir ese mismo vector Puede darse el caso de obtener dos tipos de buacutesquedas una general y otra mucho maacutes definida En cualquiera de los caso obtenemos un nuevo vector de buacutesqueda (con una informacioacuten mejor definida este es el Vector de Buacutesqueda Expandido) que es enviado de regreso al Agente de Filtrado el cual genera una copia y le es enviada al Agente de Recuperacioacuten Ontologiacutea Representa nuestra base de conocimientos Esta compuesta por tres aacutereas de conocimiento las cuales son Ingenieriacutea se Software Bases de Datos y Deportes Para poder representar esta ontologiacutea en un lenguaje entendible para agentes inteligentes se programaraacute bajo los fundamentos de las estructuras RDF contenidas en las especificaciones de XML y siguiendo los estaacutendares de la W3C Agente Recuperacioacuten Realiza la buacutesqueda gracias a la informacioacuten que le es entregada por el Agente de Filtrado (se trata Vector de Buacutesqueda Expandido generado por el Agente de Ontologiacutea) El agente estructura esta informacioacuten y se introduce en un motor de buacutesqueda(diacutegase por ejemplo Google) de tal manera que obtengamos una lista de posibles documentos A cada documento se le asigna un vector de teacuterminos con sus pesos derivados de un anaacutelisis TFIDF para despueacutes regresar las urlacutes con su respectivo vector de teacuterminos al Agente Filtrado RESULTADOS Este proyecto tiene la finalidad de desarrollar el software para un antivirus y un traductor Pero durante los estudios de anaacutelisis de estos dos productos se encontroacute que el software para la buacutesqueda de la informacioacuten tambieacuten puede ser implementada por medio de teacutecnicas de Inteligencia Artificial Para construir el software de aplicacioacuten para estas necesidades se usa la metodologiacutea de cascada Donde los pasos a seguir son el Anaacutelisis Disentildeo Pruebas Implementacioacuten y Mantenimiento Hasta este momento estamos en la etapa de pruebas de algunos moacutedulos de los tres productos IMPACTO El detector de intrusos en una red es de mucha importancia debido a que en la actualidad se han diseminado muchos virus que pueden ser transmitidos a traveacutes de intrusos Hasta la fecha el meacutetodo de proteccioacuten se hace de forma manual La finalidad de este software es automatizar la proteccioacuten El traductor de texto a voz tiene como primera aplicacioacuten el auxilio en la lectura de documentos para las personas invidentes o deacutebiles visuales una segunda aplicacioacuten es la comunicacioacuten con la computadora por medio del lenguaje natura El buscador de informacioacuten es un auxilio en la buacutesqueda de datos en una base de datos de conocimiento Ya que tambieacuten estaacuten proliferando las bibliotecas virtuales es una ayuda en la localizacioacuten de informacioacuten cientiacutefica y un preaacutembulo para un software de apoyo docente BIBLIOGRAFIacuteA [1] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

30

[2] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps[3] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[4] w3c en espantildeol OWL y Web Semaacutentica httpwwww3cesDivulgacionGuiasbrevesWebSemantica

[5] Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

[6] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[7] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[8] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[9] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[10] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[11] Laboratorios Googlehttplabsgooglecompapershtml

[12] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[13] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

[14] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

[15] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps [16] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[18] Trabajos de Agente en JADE http Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

31

[19] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[20] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[21] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[22] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[23] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[24] Laboratorios Googlehttplabsgooglecompapershtml

[25] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[26] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

  • En este reporte teacutecnico se presenta la descripcioacuten general anaacutelisis y estado actual de de los trabajos terminales TT2006135 TT20060097 y TT20060068 que tienen por titulo ldquoSistema prototipo de deteccioacuten de intrusos en la red utilizando agentes inteligentesrdquo rdquoProcesamiento digital de imaacutegenes para la conversioacuten de texto a vozrdquo y ldquoSistema de buacutesqueda de informacioacuten por conceptos en la webrdquo respectivamente Los prototipos que se obtendraacuten seraacuten un software robusto que se desarrollaraacuten con teacutecnicas de inteligencia artificial como Agentes inteligentes y Redes neuronales
  • Estructura de un sistema neuronal artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
    • Estado Del Arte
      • Estructura de un sistema neuronal artificial
        • Sistemas paralelos distribuidos y adaptativos
          • Modelo estaacutendar de neurona artificial
            • Sigmoidal logariacutetmica
              • Empleo del perceptroacuten para reconocer funciones loacutegicas
              • Algoritmo de aprendizaje del perceptroacuten
                • Objetivo General
                • Estado Del Arte
                • A continuacioacuten se mencionan algunos de ellos
                  • Buscador muacuteltiple Copernic 2001 Pro
                  • Lets Browse
                  • Agentes de Informacioacuten
                    • Marco Conceptual
                      • Clases y Propiedades
                      • El sistema de escritura de datos [type system]
                      • Clases y Recursos como Conjuntos y Elementos
                        • Ontologiacuteas en la Representacioacuten del Conocimiento
                          • LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES
                          • JADE (Java Agent DEvelopment Framework)
                            • Disentildeo
                            • Arquitectura
Page 20: INSTITUTO POLITÉCNICO NACIONALsappi.ipn.mx/cgpi/archivos_anexo/20061387_3286.pdf · La comunicación del hombre con la computadora por medio del lenguaje natural, es la finalidad

20

Ahora como se observa no se pudo clasificar correctamente el patroacuten de prueba ya que pertenece claramente a la clase 3 pero por el clasificador que usamos o por el nuacutemero de K-vecinos o por el tipo de meacutetrica usada sucedioacute que en su mayoriacutea eran de la clase 2 y no de la clase 3 Tal vez si se hubiera elegido un valor de K menor a 5 tendriacutea maacutes posibilidades de clasificar correctamente Finalmente usar este tipo de teacutecnicas para reconocer caracteres es muy bueno ya que permite reconocer letras que se encuentran rotadas escaladas o trasladadas por una teacutecnica matemaacutetica llamada Momentos de Hu pero al tener una situacioacuten donde la imagen de prueba se encuentra exactamente a la misma distancia de dos o mas clases se crea el problema de no saber a que clase clasificar dicho patroacuten

Tratamiento digital de las imaacutegenes a capturar A continuacioacuten se muestra en la imagen 214 un programa que se codificoacute en C++ Builder y permite tratar digitalmente imaacutegenes BMP con la finalidad de eliminar el ruido pasarlas a escala de grises y binarizarlas El programa es capaz de generar histogramas de color

Imagen 214 Programa para tratar imaacutegenes digitalmente

21

CAPIacuteTULO 3 Buscadores La informacioacuten almacenada tendriacutea poco valor si no podemos consultarla buscar los datos en una base de datos o en muchas bases de datos que tienen conexioacuten por medio de la web es lo que nos permite explotar la informacioacuten Sin embargo la buacutesqueda seraacute eficiente si la respuesta del buscador es lo maacutes especifica o cercana a los temas solicitados Por lo que el software con aplicacioacuten de buscador es importante desarrollar un proceso para su creacioacuten Objetivo General Desarrollar un sistema de buacutesqueda de informacioacuten por conceptos en la Web basado en agentes inteligentes mediante la aplicacioacuten de ontologiacuteas Estado Del Arte Existen algunos sistemas que proporcionan buacutesquedas de informacioacuten basados en algunas de las tecnologiacuteas que vamos a utilizar Es habitual encontrar este tipo de buscadores y algunos otros similares bautizados como Megabuscadores o Multibuscadores a pesar de que estos teacuterminos no sean los maacutes idoacuteneos por lo que al hablar de este tipo de sistemas podemos referirlos como Buscadores Muacuteltiples en virtud de las caracteriacutesticas de su funcionamiento A continuacioacuten se mencionan algunos de ellos

Buscador muacuteltiple Copernic 2001 Pro Copernici producto de la empresa canadiense Copernic Technologies es un agente buscador que transfiere una ecuacioacuten de buacutesqueda a un conjunto de buscadores de manera simultaacutenea recupera las referencias pertinentes y las ordena seguacuten el grado medio de relevancia obtenido de cada uno de los buscadores La empresa creadora de Copernic se constituyoacute en 1996 con el propoacutesito de desarrollar soluciones innovadoras en tecnologiacuteas de agentes de buacutesqueda para conseguir un acceso y una gestioacuten eficientes de la gran masa de informacioacuten presente en Internet El programa se desarrolloacute el antildeo siguiente en una versioacuten experimental y se puso al alcance del puacuteblico en noviembre de 1998 Desde entonces se han lanzado versiones con elementos nuevos la mayoriacutea de los cuales no obstante soacutelo estaacuten disponibles en las ediciones comerciales La edicioacuten gratuita ofrece los servicios baacutesicos de consulta y con la intencioacuten de persuadir a los posibles compradores de las ediciones comerciales da una idea bastante aproximada de las posibilidades del programa completo

Lets Browse Como en otros medios (por ejemplo la televisioacuten) la navegacioacuten en Internet puede ser realizada por grupos de gente [Lieberman et al 1997] Lets browse muestra como un agente puede asistir a un grupo de gente en su navegacioacuten sugirieacutendoles materiales nuevos que puedan ser de intereacutes comuacuten entre ellos

Este trabajo es una extensioacuten del agente Letizia [Lieberman 1995] el cual selecciona paacuteginas de Web Letizia inicia una buacutesqueda por niveles visita las ligas que encuentra a partir de la paacutegina que su usuario esteacute revisando y selecciona aquellas que sean similares a los intereses que ha aprendido de su usuario (observando su navegacioacuten) Posteriormente muestra sus recomendaciones en un canal de navegacioacuten

22

El trabajo del agente consiste en seleccionar de la misma forma que Letizia lo hace aquellas paacuteginas que mejor satisfagan los intereses de todos los participantes Las caracteriacutesticas de Letrsquos browse son la deteccioacuten automaacutetica de la presencia de usuarios navegacioacuten automaacutetica (en canal de navegacioacuten) el despliege dinaacutemico de las preferencias de los usuarios y la explicacioacuten de las recomendaciones Permite ademaacutes revisar las paacuteginas desde el punto de vista de otra persona (con sus preferencias) y asiacute estimar cual seriacutea su posible opinioacuten acerca de dicha paacutegina auacuten cuando aquella persona no la haya revisado anteriormente

Agentes de Informacioacuten Un agente de informacioacuteiin es utilizado para organizar los espacios de informacioacuten del usuario y facilitar su explotacioacuten En el WWW (World Wide Web) se estaacuten implementando diversos agentes de informacioacuten El Agente Letizia [Lieberman 1995] que existe en un navegador de Web anticipa queacute artiacuteculos pueden ser de intereacutes para el usuario basaacutendose en las conductas pasadas del usuario Las paacuteginas que cree son de intereacutes del usuario Letizia las despliega en una ventana de sugerencias por unos instantes Marco Conceptual Actualmente para poder hacer la consulta de cualquier tipo de informacioacuten en Internet la mayoriacutea de las personas recurre a los motores de buacutesquedas conocidos como Google Yahoo Altavista por mencionar algunos siendo que estos usan diferentes meacutetodos para llegar a su objetivo podemos darnos cuenta que arrojan distintos resultados uno de otro que en el mejor de los casos coinciden en un porcentaje muy poco satisfactorio con la buacutesqueda en cuestioacuten con lo que concluimos que una respuesta a esta falta de precisioacuten en cuanto a la buacutesqueda de un tema en especial es mejor la buacutesqueda de conceptos lo cual permite al usuario acercarse maacutes al tema de su intereacutes Es importante enfocar nuestra solucioacuten apoyaacutendonos en un motor de buacutesqueda y aplicando herramientas como los Agentes que nos permitan recopilar la informacioacuten maacutes precisa de cada buacutesqueda a traveacutes de un algoritmo propio obteniendo resultados maacutes cercanos a los deseados ya que estos provienen de muacuteltiples documentos ahorrando tiempo y ganando precisioacuten a la vez Muy frecuentemente encontramos que cuando se trata de buacutesquedas en Internet a traveacutes de los motores de buacutesqueda populares los usuarios hacen consultas de diversas paginas y es muy difiacutecil llevar una lista de todos los sitios visitados o de aquellos que nos mostraron la informacioacuten maacutes adecuada nuestro sistema es capaz de registrar dentro de una base de datos un iacutendice de todos los sitios que se obtuvieron en la buacutesqueda de un tema o concepto con lo que el usuario no tendraacute que realizar una ldquonuevardquo buacutesqueda de un tema antes consultado sino que tendraacute a la mano todos los sitios que arrojoacute la primera buacutesqueda Marco teoacuterico

Descripcioacuten de RDF

El Resource Description Frameworiiik (RDF) es un fundamento para el procesamiento de metadatos proporciona interoperabilidad entre aplicaciones que intercambian informacioacuten legible por maacutequina en la Web RDF utiliza XML para intercambiar descripciones de recursos Web pero los recursos descritos pueden ser de cualquier tipo

23

incluyendo recursos XML y no-XML RDF resalta las facilidades para hacer posible el procesamiento automaacutetico de los recursos Web RDF puede utilizarse en diferentes aacutereas de aplicacioacuten por ejemplo en la recuperacioacuten de recursos para proporcionar mejores capacidades a los motores de buacutesqueda en catalogacioacuten para la descripcioacuten de contenido y relaciones de contenido accesibles en un sitio Web particular en una paacutegina o biblioteca digital a traveacutes de agentes de software inteligente para facilitar que el conocimiento se comparta e intercambie en la valoracioacuten de contenido en la descripcioacuten de colecciones de paacuteginas que representan un documento loacutegico individual para la descripcioacuten de los derechos de propiedad intelectual de las paacuteginas Web y para expresar las preferencias de privacidad de un usuario asiacute como las poliacuteticas de privacidad de un sitio Web Las descripciones utilizadas por estas aplicaciones pueden modelarse como relaciones entre recursos Web El modelo de datos de RDF tal y como se especifica en RDFMS define un modelo simple para describir las relaciones entre recursos en teacuterminos de propiedades y valores designadas Las propiedades RDF pueden entenderse como atributos de un recurso y en este sentido corresponden con los tradicionales pares atributo-valor Las propiedades RDF tambieacuten representa relaciones entre recursos De esta forma el modelo de datos RDF puede parecer un diagrama entidad-relacioacuten El modelo de datos RDF sin embargo no proporciona mecanismos para declarar estas propiedades ni proporcionan ninguacuten mecanismo para definir las relaciones entre estas propiedades y otros recursos Este es el papel [la funcioacuten] del Esquema RDF

Las comunidades de descripcioacuten de recursos necesitan la habilidad para decir ciertas cosas sobre ciertas clases de recursos Para describir recursos bibliograacuteficos por ejemplo son habituales atributos descriptivos tales como autor [author] tiacutetulo [title] y materia [subject] Para la certificacioacuten digital se necesitan muchas veces atributos tales como esquema simple de deteccioacuten de errores [checksum] y autorizacioacuten [authorization] La declaracioacuten de estas propiedades (atributos) y su semaacutentica correspondiente se definen en el contexto de RDF como un Esquema RDF Un esquema define no soacutelo las propiedades de un recurso (ej tiacutetulo autor materia tamantildeo color etc) sino que puede tambieacuten definir los tipos de recursos que se describiraacuten (libros paacuteginas Web personas empresas etc)

Los Esquemas RDF podriacutean contrastarse con las Definiciones del Tipo de Documentos (DTDs) de XML y los Esquemas XML A diferencia de una DTD o Esquema XML que dan restricciones especiacuteficas en la estructura de un documento XML un Esquema RDF proporciona informacioacuten sobre la interpretacioacuten de una sentencia dada en un modelo de datos RDF Mientras un Esquema XML puede utilizarse para validar la sintaxis de una expresioacuten RDFXML un esquema sintaacutectico soacutelo no es suficiente para los objetivos de RDF Los Esquemas RDF pueden tambieacuten especificar restricciones que deben seguirse por estos modelos de datos

Clases y Propiedades Un Esquema RDF se expresa a traveacutes de un modelo de datos descrito en la especificacioacuten del Modelo y la Sintaxis RDF [RDFMS] El lenguaje de descripcioacuten del esquema es un simple conjunto de recursos y propiedades definidos por la Especificacioacuten del Esquema RDF y la parte impliacutecita de cada modelo RDF que utiliza la mecaacutenica del esquema RDF

24

El sistema de escritura de datos [type system] El Esquema RDF definido en esta especificacioacuten es una coleccioacuten de recursos RDF que puede utilizarse para describir propiedades de otros recursos RDF (incluyendo propiedades) que definene vocabularios RDF de aplicacioacuten especiacutefica El nuacutecleo del vocabulario del esquema se define en un namespace denominado aquiacute informalmente rdfs e identificado por el URI de referencia httpwwww3org200001rdf-schema Esta especificacioacuten utiliza tambieacuten el prefijo rdf para referirse al namespace principal RDF httpwwww3org19990222-rdf-syntax-ns

Como se describe en la especificacioacuten del modelo y la sintaxis [RDFMS] los recursos pueden ser objetos especiacuteficos de una categoriacutea [instances] de una o maacutes clases esto se indica con la propiedad rdftype Las clases se organizan muchas veces de una forma jeraacuterquica por ejemplo la clase Dog [perro] podriacutea considerarse subclase de Mammal [mamiacutefero] que a su vez es una subclase de Animal dando a entender que cualquier recurso que esteacute en rdftype Dog se considera tambieacuten que estaacute en rdftype AnimalEsta especificacioacuten describe una propiedad rdfssubClassOf para indicar dichas relaciones entre clases

El sistema de escritura [type system] del Esquema RDF es similar al sistema de los lenguajes de programacioacuten orientados a objetos tales como Java Sin embargo RDF se diferencia de muchos de esos sistemas en que en lugar de definir una clase en teacuterminos de propiedades sus objetos especiacuteficos de una categoriacutea [instances] pueden tener un esquema RDF que definiraacute las propiedades en teacuterminos de clases de recurso a los que se aplican Este es el papel de las restricciones rdfsdomain y de rdfsrange

Por ejemplo podemos definir que la propiedad author tenga un dominio de Book y un alcance de Literal mientras que un sistema OO claacutesico podriacutea definir tiacutepicamente una clase Book con un atributo denominado author de tipo Literal

Clases y Recursos como Conjuntos y Elementos El siguiente esquema ilustra el concepto de clase subclase y recurso Una clase se describe por un rectaacutengulo redondeado un recurso se describe por un punto grande En la figura abajo se han dibujado flechas desde un recurso a una clase que define Una subclase se presenta en un rectaacutengulo redondeado (la subclase) completamente incluido en otro (la superclase) Si un recurso estaacute dentro de una clase entonces existe una propiedad rdftype o expliacutecita o impliacutecita de aquel recurso cuyo valor es un recurso que define la clase que contiene (Estas propiedades se muestran como arcos en la representacioacuten graacutefica directamente etiquetada en el Esquema 2) El recurso RDF representado en el esquema 1 se describe tanto en el resto de esta especificacioacuten como en la especificacioacuten del Modelo y Sintaxis RDF

Ontologiacuteas en la Representacioacuten del Conocimiento En estos uacuteltimos antildeos se incrementoacute la cantidad de informacioacuten en la Internet lo cual motivoacute el incremento de la complejidad y la diversidad de la informacioacuten Esto tambieacuten motivoacute el intereacutes de automatizar muchas actividades que tradicionalmente se realizan en forma manual La principal motivacioacuten en el uso de las ontologiacuteas es que permiten compartir y reutilizar conocimiento en un dominio De ahiacute el intereacutes de muchos

25

investigadores en el aacuterea de inteligencia artificial para tratar de aplicar las ontologiacuteas en la representacioacuten de conocimiento Las ontologiacuteas son un elemento importante en la Web Semaacutentica y es un teacutermino filosoacutefico que trata sobre la naturaleza de la existencia y los tipos de objetos que existen Tambieacuten la ontologiacutea se puede definir como una especificacioacuten expliacutecita de una conceptualizacioacuten compartida La conceptualizacioacuten se refiere a un modelo abstracto de un fenoacutemeno en el mundo en donde se tienen que identificar los conceptos relevantes de este fenoacutemeno El teacutermino expliacutecito significa queacute tipos de conceptos son usados y las restricciones de estos conceptos Y por uacuteltimo el teacutermino compartido se refiere a que las ontologiacuteas capturan conocimiento que es aceptado por todos y no es individual de un grupo Actualmente se les estaacute dando maacutes uso a las ontologiacuteas en el campo de la Inteligencia Artificial En este campo se define la ontologiacutea como una descripcioacuten formal y expliacutecita de conceptos de un dominio (classes a las que nos referiremos como conceptos) propiedades de cada concepto las cuales describen las caracteriacutesticas y atributos de los conceptos (slots llamados tambieacuten como propiedades o roles) y restricciones de las propiedades (facets conocidas como restricciones) La informacioacuten que es representada a traveacutes de los lenguajes semaacutenticos puede ser compartida entre aplicaciones como los agentes

OWL y Web Semaacutentica

La Web Semaacutentica es una Web extendida dotada de mayor significado en la que cualquier usuario en Internet podraacute encontrar respuestas a sus preguntas de forma maacutes raacutepida y sencilla gracias a una informacioacuten mejor definida Al dotar a la Web de maacutes significado y por lo tanto de maacutes semaacutentica se pueden obtener soluciones a problemas habituales en la buacutesqueda de informacioacuten gracias a la utilizacioacuten de una infraestructura comuacuten mediante la cual es posible compartir procesar y transferir informacioacuten de forma sencilla Esta Web extendida y basada en el significado se apoya en lenguajes universales que resuelven los problemas ocasionados por una Web carente de semaacutentica en la que en ocasiones el acceso a la informacioacuten se convierte en una tarea difiacutecil y frustrante

LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES La comunicacioacuten es uno de los aspectos importantes dentro de una comunidad de agentes la cual permitiraacute compartir y enviar mensajes entre agentes Los meacutetodos tradicionales permiten la comunicacioacuten entre los agentes pero eacutestos no son suficientes para lograr un comportamiento social entre los agentes para ello es necesario que los mensajes tengan un significado y contenido semaacutentico Se han desarrollado varios lenguajes los cuales son usados para el enviacuteo de mensajes a continuacioacuten hablaremos de dos de ellos KQML Knowledge Query and Manipulation Language (KQML) es uno de los lenguajes que nos provee la estructura para enviar mensajes entre agentes Dentro de sus principales caracteriacutesticas tenemos que es independiente de la sintaxis del contenido y la ontologiacutea

26

que se utilizaraacute Asiacute mismo es independiente del mecanismo de transporte (TCPIP SMTP IIOP etc) e independiente del contenido del lenguaje (KIF SQL STEP Prolog etc) KQML fue desarrollado por el consorcio DARPA Knowledge Sharing Effort (KSE) cuyo principal objetivo fue desarrollar una base tecnoloacutegica para construir en forma progresiva sistemas cada vez con maacutes funcionalidad complejidad y amplitud KQML provee un lenguaje y un protocolo para intercambiar informacioacuten entre agentes inteligentes y para lograr este intercambio se tiene que compartir una sintaxis y una semaacutentica comuacuten para que los mensajes sean entendidos por los agentes Al lenguaje KQML se le dividioacute en tres capas la capa de contenido alberga el contenido del mensaje que es especificado en cualquier formato ya sea texto o binario La capa de comunicacioacuten contiene paraacutemetros como el identificador uacutenico asociado a la comunicacioacuten identidad del remitente e identidad del destinatario La capa de mensaje define tanto los diferentes tipos de interaccioacuten que se pueden establecer entre los agentes como los protocolos que se pueden establecer entre los agentes Tambieacuten incluye otras caracteriacutesticas como el lenguaje de representacioacuten o la ontologiacutea siendo ambos opcionales

JADE (Java Agent DEvelopment Framework)

JADEiv (Java Agent DEvelopment Framework) es un middleware que proporciona tanto un entorno de desarrollo como un entorno de ejecucioacuten para la realizacioacuten y mantenimiento de sistemas multiagente El entorno de desarrollo estaacute formado por una serie de libreriacuteas en Java que permiten la implementacioacuten de agentes de manera limpia e independiente de la plataforma sobre la que se va a ejecutar El entorno de ejecucioacuten permite a los agentes vivir y comunicarse entre ellos Estaacute realizado enteramente en Java y proporciona una serie de herramientas que permiten al desarrollador controlar y depurar a los agentes en tiempo real JADE es un middleware desarrollado por TILAB para el desarrollo de aplicaciones distribuidas multiagente JADE proporciona tanto el entorno de desarrollo para la creacioacuten de aplicaciones basadas en agentes como el entorno de ejecucioacuten JADE presenta las siguientes caracteriacutesticas

P2P Arquitectura peer-to-peer cada agente puede tomar la iniciativa en una comunicacioacuten o bien responder a peticiones que le hagan otros agentes

Interoperabilidad JADE cumple con las especificaciones FIPA por lo que los agentes desarrollados en JADE pueden interactuar con otros agentes que no tienen porque estar desarrollados con JADE aunque si deben seguir las especificaciones FIPA

Portabilidad La API que proporciona JADE es independientemente de la red sobre la que va a operar asiacute como de la versioacuten de Java utilizada teniendo la misma API para J2EE J2SE y J2ME

27

Intuitiva JADE se ha desarrollado para ofrecer una API faacutecil de aprender y sencilla de manejar

Los agentes JADE tienen nombres uacutenicos y se permite a cada agente descubrir a otros agentes y comunicarse con ellos mediante comunicaciones punto a punto Los agentes proporcionan servicios cada agente puede buscar a otros dependiendo de los servicios que proporcionen otros agentes La comunicacioacuten entre agentes se lleva a cabo a traveacutes de mensajes asiacutencronos es decir el agente que enviacutea el mensaje y el destinatario del mensaje no tienen porqueacute estar disponibles al mismo tiempo Es maacutes el destinatario no tiene porqueacute existir en ese instante Los mensajes se pueden enviar a un agente en concreto o se pueden enviar a agentes que se desconocen pero se sabe que poseen unas ciertas caracteriacutesticas JADE proporciona mecanismos de seguridad ya que habraacute agentes a los que no se les esteacute permitido comunicarse con otros agentes de manera que una aplicacioacuten puede verificar la identidad del receptor y del agente que enviacutea el mensaje y no dejar realizar actuaciones no permitidas para un determinado agente La estructura de los mensajes se basa en el lenguaje ACL (Agent Communication Lenguaje) que ha sido definido por la FIPA JADE facilita mecanismos para el desarrollo de los objetivos que deben alcanzar los agentes Los comportamientos (behaviours) y la comunicacioacuten entre los agentes (junto con el servicio de paacuteginas amarillas) proporcionan los recursos necesarios para programar un sistema multiagente JADE tambieacuten permite a los agentes cambiar de Host (en J2SE) Un agente puede interrumpir en un momento dado su ejecucioacuten migrar a otro host (sin necesidad de que el coacutedigo esteacute previamente en el host destino) y continuar la ejecucioacuten en el mismo punto en el que la interrumpioacute Esto permite un balanceo de carga ya que permite a los agentes migrar hosts menos cargados El entorno de ejecucioacuten proporciona un marco donde poder ejecutar los agentes y herramientas graacuteficas para su monitorizacioacuten y depuracioacuten Los agentes JADE necesitan del entorno de ejecucioacuten donde poder vivir Cada instancia del entorno de ejecucioacuten se denomina contenedor (container) Al conjunto de los contenedores se le denomina plataforma (platform) y proporciona una capa que oculta a los agentes (y al desarrollador) el entorno donde se ha decidido ejecutar la aplicacioacuten En cada plataforma debe existir un contenedor especial denominado contenedor principal (main container) La principal diferencia del contenedor principal respecto al resto de contenedores es que alberga dos agentes especiales

AMS (Agent Management System) Este agente proporciona el servicio de nombres asegurando que cada agente en la plataforma disponga de un nombre uacutenico Tambieacuten representa la autoridad es posible crear y matar agentes en contenedores remotos requeriendoselo al agente AMS

DF (Directory Facilitator) Proporciona el servicio de Paacuteginas Amarillas Gracias al agente DF un agente puede encontrar otros agentes que provean los servicios necesarios para lograr sus objetivos

28

La caracteriacutestica mas importante del entorno de ejecucioacuten es la interfaz graacutefica que proporciona desde la que podemos controlar y depurar los agentes existentes Todas las herramientas han sido desarrolladas como agentes y siguen sus mismas reglas Disentildeo Arquitectura

Agente usuario

Agente de ontologiacutea

Agente de filtrado

Agente de recuperacioacuten

BD

OntologiacuteaSistema

Motor de buacutesqueda

El sistema esta disentildeado para que un usuario realice alguna buacutesqueda relacionada con alguno de los tres temas propuestos en nuestra base de conocimiento que son Ingenieriacutea de Software Base de Datos y Deportes El sistema esta basado en una arquitectura multiagente la cual se conforma por Agente Usuario Actuacutea de intermediario entre el usuario y el sistema Sus servicios son solicitados por el usuario para resolver las consultas El usuario le suministra una consulta y el sistema le devuelve una lista de documentos que pueden satisfacer sus necesidades Este agente tiene la capacidad de acceder a la base de datos con el objetivo de almacenar yo recuperar resultados Base de Datos Guardaraacute las ultimas buacutesquedas realizadas para su posterior consulta a peticioacuten del usuario Agente de Filtrado Gestiona la recuperacioacuten de documentos y realiza el filtrado de los mismos proporcionados por el Agente de Recuperacioacuten Recibe la peticioacuten del Agente Usuario y a su vez esta es enviada al Agente Ontologiacutea para que este regrese una evaluacioacuten de la consulta y de esta forma conocer si es necesaria una redefinicioacuten de la consulta En caso de ser necesaria se espera recibir el nuevo vector de consulta hasta que se cumpla una de dos opciones el usuario deje de redefinir la consulta o la consulta sea concreta Cuando la consulta sea concreta es enviada de nueva cuenta al Agente Ontologiacutea el cual regresaraacute el Nuevo Vector Expandido Este seraacute enviado al Agente de Recuperacioacuten Cuando el Agente de Recuperacioacuten regrese los urlacutes de los resultados (con sus respectivos vectores de teacuterminos) se realiza una evaluacioacuten de los vectores de cada documento con respecto al vector de buacutesqueda expandida con el objetivo de asignarles una calificacioacuten Gracias a esta calificacioacuten podemos obtener aquellos documentos que mejor cumplan con las expectativas del usuario (Estos documentos son regresados al Agente Usuario) Agente Ontologiacutea Recibe el vector de consulta proporcionado por el Agente de Filtrado La informacioacuten contenida en el vector de consulta es comparada con la existente en nuestra ontologiacutea Una vez verificada la existencia de la informacioacuten del

29

vector consulta dentro de la ontologiacutea este se encarga de devolver la distancia y el umbral al Agente de Filtrado Se espera que este devuelva una peticioacuten para expandir ese mismo vector Puede darse el caso de obtener dos tipos de buacutesquedas una general y otra mucho maacutes definida En cualquiera de los caso obtenemos un nuevo vector de buacutesqueda (con una informacioacuten mejor definida este es el Vector de Buacutesqueda Expandido) que es enviado de regreso al Agente de Filtrado el cual genera una copia y le es enviada al Agente de Recuperacioacuten Ontologiacutea Representa nuestra base de conocimientos Esta compuesta por tres aacutereas de conocimiento las cuales son Ingenieriacutea se Software Bases de Datos y Deportes Para poder representar esta ontologiacutea en un lenguaje entendible para agentes inteligentes se programaraacute bajo los fundamentos de las estructuras RDF contenidas en las especificaciones de XML y siguiendo los estaacutendares de la W3C Agente Recuperacioacuten Realiza la buacutesqueda gracias a la informacioacuten que le es entregada por el Agente de Filtrado (se trata Vector de Buacutesqueda Expandido generado por el Agente de Ontologiacutea) El agente estructura esta informacioacuten y se introduce en un motor de buacutesqueda(diacutegase por ejemplo Google) de tal manera que obtengamos una lista de posibles documentos A cada documento se le asigna un vector de teacuterminos con sus pesos derivados de un anaacutelisis TFIDF para despueacutes regresar las urlacutes con su respectivo vector de teacuterminos al Agente Filtrado RESULTADOS Este proyecto tiene la finalidad de desarrollar el software para un antivirus y un traductor Pero durante los estudios de anaacutelisis de estos dos productos se encontroacute que el software para la buacutesqueda de la informacioacuten tambieacuten puede ser implementada por medio de teacutecnicas de Inteligencia Artificial Para construir el software de aplicacioacuten para estas necesidades se usa la metodologiacutea de cascada Donde los pasos a seguir son el Anaacutelisis Disentildeo Pruebas Implementacioacuten y Mantenimiento Hasta este momento estamos en la etapa de pruebas de algunos moacutedulos de los tres productos IMPACTO El detector de intrusos en una red es de mucha importancia debido a que en la actualidad se han diseminado muchos virus que pueden ser transmitidos a traveacutes de intrusos Hasta la fecha el meacutetodo de proteccioacuten se hace de forma manual La finalidad de este software es automatizar la proteccioacuten El traductor de texto a voz tiene como primera aplicacioacuten el auxilio en la lectura de documentos para las personas invidentes o deacutebiles visuales una segunda aplicacioacuten es la comunicacioacuten con la computadora por medio del lenguaje natura El buscador de informacioacuten es un auxilio en la buacutesqueda de datos en una base de datos de conocimiento Ya que tambieacuten estaacuten proliferando las bibliotecas virtuales es una ayuda en la localizacioacuten de informacioacuten cientiacutefica y un preaacutembulo para un software de apoyo docente BIBLIOGRAFIacuteA [1] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

30

[2] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps[3] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[4] w3c en espantildeol OWL y Web Semaacutentica httpwwww3cesDivulgacionGuiasbrevesWebSemantica

[5] Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

[6] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[7] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[8] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[9] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[10] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[11] Laboratorios Googlehttplabsgooglecompapershtml

[12] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[13] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

[14] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

[15] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps [16] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[18] Trabajos de Agente en JADE http Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

31

[19] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[20] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[21] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[22] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[23] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[24] Laboratorios Googlehttplabsgooglecompapershtml

[25] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[26] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

  • En este reporte teacutecnico se presenta la descripcioacuten general anaacutelisis y estado actual de de los trabajos terminales TT2006135 TT20060097 y TT20060068 que tienen por titulo ldquoSistema prototipo de deteccioacuten de intrusos en la red utilizando agentes inteligentesrdquo rdquoProcesamiento digital de imaacutegenes para la conversioacuten de texto a vozrdquo y ldquoSistema de buacutesqueda de informacioacuten por conceptos en la webrdquo respectivamente Los prototipos que se obtendraacuten seraacuten un software robusto que se desarrollaraacuten con teacutecnicas de inteligencia artificial como Agentes inteligentes y Redes neuronales
  • Estructura de un sistema neuronal artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
    • Estado Del Arte
      • Estructura de un sistema neuronal artificial
        • Sistemas paralelos distribuidos y adaptativos
          • Modelo estaacutendar de neurona artificial
            • Sigmoidal logariacutetmica
              • Empleo del perceptroacuten para reconocer funciones loacutegicas
              • Algoritmo de aprendizaje del perceptroacuten
                • Objetivo General
                • Estado Del Arte
                • A continuacioacuten se mencionan algunos de ellos
                  • Buscador muacuteltiple Copernic 2001 Pro
                  • Lets Browse
                  • Agentes de Informacioacuten
                    • Marco Conceptual
                      • Clases y Propiedades
                      • El sistema de escritura de datos [type system]
                      • Clases y Recursos como Conjuntos y Elementos
                        • Ontologiacuteas en la Representacioacuten del Conocimiento
                          • LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES
                          • JADE (Java Agent DEvelopment Framework)
                            • Disentildeo
                            • Arquitectura
Page 21: INSTITUTO POLITÉCNICO NACIONALsappi.ipn.mx/cgpi/archivos_anexo/20061387_3286.pdf · La comunicación del hombre con la computadora por medio del lenguaje natural, es la finalidad

21

CAPIacuteTULO 3 Buscadores La informacioacuten almacenada tendriacutea poco valor si no podemos consultarla buscar los datos en una base de datos o en muchas bases de datos que tienen conexioacuten por medio de la web es lo que nos permite explotar la informacioacuten Sin embargo la buacutesqueda seraacute eficiente si la respuesta del buscador es lo maacutes especifica o cercana a los temas solicitados Por lo que el software con aplicacioacuten de buscador es importante desarrollar un proceso para su creacioacuten Objetivo General Desarrollar un sistema de buacutesqueda de informacioacuten por conceptos en la Web basado en agentes inteligentes mediante la aplicacioacuten de ontologiacuteas Estado Del Arte Existen algunos sistemas que proporcionan buacutesquedas de informacioacuten basados en algunas de las tecnologiacuteas que vamos a utilizar Es habitual encontrar este tipo de buscadores y algunos otros similares bautizados como Megabuscadores o Multibuscadores a pesar de que estos teacuterminos no sean los maacutes idoacuteneos por lo que al hablar de este tipo de sistemas podemos referirlos como Buscadores Muacuteltiples en virtud de las caracteriacutesticas de su funcionamiento A continuacioacuten se mencionan algunos de ellos

Buscador muacuteltiple Copernic 2001 Pro Copernici producto de la empresa canadiense Copernic Technologies es un agente buscador que transfiere una ecuacioacuten de buacutesqueda a un conjunto de buscadores de manera simultaacutenea recupera las referencias pertinentes y las ordena seguacuten el grado medio de relevancia obtenido de cada uno de los buscadores La empresa creadora de Copernic se constituyoacute en 1996 con el propoacutesito de desarrollar soluciones innovadoras en tecnologiacuteas de agentes de buacutesqueda para conseguir un acceso y una gestioacuten eficientes de la gran masa de informacioacuten presente en Internet El programa se desarrolloacute el antildeo siguiente en una versioacuten experimental y se puso al alcance del puacuteblico en noviembre de 1998 Desde entonces se han lanzado versiones con elementos nuevos la mayoriacutea de los cuales no obstante soacutelo estaacuten disponibles en las ediciones comerciales La edicioacuten gratuita ofrece los servicios baacutesicos de consulta y con la intencioacuten de persuadir a los posibles compradores de las ediciones comerciales da una idea bastante aproximada de las posibilidades del programa completo

Lets Browse Como en otros medios (por ejemplo la televisioacuten) la navegacioacuten en Internet puede ser realizada por grupos de gente [Lieberman et al 1997] Lets browse muestra como un agente puede asistir a un grupo de gente en su navegacioacuten sugirieacutendoles materiales nuevos que puedan ser de intereacutes comuacuten entre ellos

Este trabajo es una extensioacuten del agente Letizia [Lieberman 1995] el cual selecciona paacuteginas de Web Letizia inicia una buacutesqueda por niveles visita las ligas que encuentra a partir de la paacutegina que su usuario esteacute revisando y selecciona aquellas que sean similares a los intereses que ha aprendido de su usuario (observando su navegacioacuten) Posteriormente muestra sus recomendaciones en un canal de navegacioacuten

22

El trabajo del agente consiste en seleccionar de la misma forma que Letizia lo hace aquellas paacuteginas que mejor satisfagan los intereses de todos los participantes Las caracteriacutesticas de Letrsquos browse son la deteccioacuten automaacutetica de la presencia de usuarios navegacioacuten automaacutetica (en canal de navegacioacuten) el despliege dinaacutemico de las preferencias de los usuarios y la explicacioacuten de las recomendaciones Permite ademaacutes revisar las paacuteginas desde el punto de vista de otra persona (con sus preferencias) y asiacute estimar cual seriacutea su posible opinioacuten acerca de dicha paacutegina auacuten cuando aquella persona no la haya revisado anteriormente

Agentes de Informacioacuten Un agente de informacioacuteiin es utilizado para organizar los espacios de informacioacuten del usuario y facilitar su explotacioacuten En el WWW (World Wide Web) se estaacuten implementando diversos agentes de informacioacuten El Agente Letizia [Lieberman 1995] que existe en un navegador de Web anticipa queacute artiacuteculos pueden ser de intereacutes para el usuario basaacutendose en las conductas pasadas del usuario Las paacuteginas que cree son de intereacutes del usuario Letizia las despliega en una ventana de sugerencias por unos instantes Marco Conceptual Actualmente para poder hacer la consulta de cualquier tipo de informacioacuten en Internet la mayoriacutea de las personas recurre a los motores de buacutesquedas conocidos como Google Yahoo Altavista por mencionar algunos siendo que estos usan diferentes meacutetodos para llegar a su objetivo podemos darnos cuenta que arrojan distintos resultados uno de otro que en el mejor de los casos coinciden en un porcentaje muy poco satisfactorio con la buacutesqueda en cuestioacuten con lo que concluimos que una respuesta a esta falta de precisioacuten en cuanto a la buacutesqueda de un tema en especial es mejor la buacutesqueda de conceptos lo cual permite al usuario acercarse maacutes al tema de su intereacutes Es importante enfocar nuestra solucioacuten apoyaacutendonos en un motor de buacutesqueda y aplicando herramientas como los Agentes que nos permitan recopilar la informacioacuten maacutes precisa de cada buacutesqueda a traveacutes de un algoritmo propio obteniendo resultados maacutes cercanos a los deseados ya que estos provienen de muacuteltiples documentos ahorrando tiempo y ganando precisioacuten a la vez Muy frecuentemente encontramos que cuando se trata de buacutesquedas en Internet a traveacutes de los motores de buacutesqueda populares los usuarios hacen consultas de diversas paginas y es muy difiacutecil llevar una lista de todos los sitios visitados o de aquellos que nos mostraron la informacioacuten maacutes adecuada nuestro sistema es capaz de registrar dentro de una base de datos un iacutendice de todos los sitios que se obtuvieron en la buacutesqueda de un tema o concepto con lo que el usuario no tendraacute que realizar una ldquonuevardquo buacutesqueda de un tema antes consultado sino que tendraacute a la mano todos los sitios que arrojoacute la primera buacutesqueda Marco teoacuterico

Descripcioacuten de RDF

El Resource Description Frameworiiik (RDF) es un fundamento para el procesamiento de metadatos proporciona interoperabilidad entre aplicaciones que intercambian informacioacuten legible por maacutequina en la Web RDF utiliza XML para intercambiar descripciones de recursos Web pero los recursos descritos pueden ser de cualquier tipo

23

incluyendo recursos XML y no-XML RDF resalta las facilidades para hacer posible el procesamiento automaacutetico de los recursos Web RDF puede utilizarse en diferentes aacutereas de aplicacioacuten por ejemplo en la recuperacioacuten de recursos para proporcionar mejores capacidades a los motores de buacutesqueda en catalogacioacuten para la descripcioacuten de contenido y relaciones de contenido accesibles en un sitio Web particular en una paacutegina o biblioteca digital a traveacutes de agentes de software inteligente para facilitar que el conocimiento se comparta e intercambie en la valoracioacuten de contenido en la descripcioacuten de colecciones de paacuteginas que representan un documento loacutegico individual para la descripcioacuten de los derechos de propiedad intelectual de las paacuteginas Web y para expresar las preferencias de privacidad de un usuario asiacute como las poliacuteticas de privacidad de un sitio Web Las descripciones utilizadas por estas aplicaciones pueden modelarse como relaciones entre recursos Web El modelo de datos de RDF tal y como se especifica en RDFMS define un modelo simple para describir las relaciones entre recursos en teacuterminos de propiedades y valores designadas Las propiedades RDF pueden entenderse como atributos de un recurso y en este sentido corresponden con los tradicionales pares atributo-valor Las propiedades RDF tambieacuten representa relaciones entre recursos De esta forma el modelo de datos RDF puede parecer un diagrama entidad-relacioacuten El modelo de datos RDF sin embargo no proporciona mecanismos para declarar estas propiedades ni proporcionan ninguacuten mecanismo para definir las relaciones entre estas propiedades y otros recursos Este es el papel [la funcioacuten] del Esquema RDF

Las comunidades de descripcioacuten de recursos necesitan la habilidad para decir ciertas cosas sobre ciertas clases de recursos Para describir recursos bibliograacuteficos por ejemplo son habituales atributos descriptivos tales como autor [author] tiacutetulo [title] y materia [subject] Para la certificacioacuten digital se necesitan muchas veces atributos tales como esquema simple de deteccioacuten de errores [checksum] y autorizacioacuten [authorization] La declaracioacuten de estas propiedades (atributos) y su semaacutentica correspondiente se definen en el contexto de RDF como un Esquema RDF Un esquema define no soacutelo las propiedades de un recurso (ej tiacutetulo autor materia tamantildeo color etc) sino que puede tambieacuten definir los tipos de recursos que se describiraacuten (libros paacuteginas Web personas empresas etc)

Los Esquemas RDF podriacutean contrastarse con las Definiciones del Tipo de Documentos (DTDs) de XML y los Esquemas XML A diferencia de una DTD o Esquema XML que dan restricciones especiacuteficas en la estructura de un documento XML un Esquema RDF proporciona informacioacuten sobre la interpretacioacuten de una sentencia dada en un modelo de datos RDF Mientras un Esquema XML puede utilizarse para validar la sintaxis de una expresioacuten RDFXML un esquema sintaacutectico soacutelo no es suficiente para los objetivos de RDF Los Esquemas RDF pueden tambieacuten especificar restricciones que deben seguirse por estos modelos de datos

Clases y Propiedades Un Esquema RDF se expresa a traveacutes de un modelo de datos descrito en la especificacioacuten del Modelo y la Sintaxis RDF [RDFMS] El lenguaje de descripcioacuten del esquema es un simple conjunto de recursos y propiedades definidos por la Especificacioacuten del Esquema RDF y la parte impliacutecita de cada modelo RDF que utiliza la mecaacutenica del esquema RDF

24

El sistema de escritura de datos [type system] El Esquema RDF definido en esta especificacioacuten es una coleccioacuten de recursos RDF que puede utilizarse para describir propiedades de otros recursos RDF (incluyendo propiedades) que definene vocabularios RDF de aplicacioacuten especiacutefica El nuacutecleo del vocabulario del esquema se define en un namespace denominado aquiacute informalmente rdfs e identificado por el URI de referencia httpwwww3org200001rdf-schema Esta especificacioacuten utiliza tambieacuten el prefijo rdf para referirse al namespace principal RDF httpwwww3org19990222-rdf-syntax-ns

Como se describe en la especificacioacuten del modelo y la sintaxis [RDFMS] los recursos pueden ser objetos especiacuteficos de una categoriacutea [instances] de una o maacutes clases esto se indica con la propiedad rdftype Las clases se organizan muchas veces de una forma jeraacuterquica por ejemplo la clase Dog [perro] podriacutea considerarse subclase de Mammal [mamiacutefero] que a su vez es una subclase de Animal dando a entender que cualquier recurso que esteacute en rdftype Dog se considera tambieacuten que estaacute en rdftype AnimalEsta especificacioacuten describe una propiedad rdfssubClassOf para indicar dichas relaciones entre clases

El sistema de escritura [type system] del Esquema RDF es similar al sistema de los lenguajes de programacioacuten orientados a objetos tales como Java Sin embargo RDF se diferencia de muchos de esos sistemas en que en lugar de definir una clase en teacuterminos de propiedades sus objetos especiacuteficos de una categoriacutea [instances] pueden tener un esquema RDF que definiraacute las propiedades en teacuterminos de clases de recurso a los que se aplican Este es el papel de las restricciones rdfsdomain y de rdfsrange

Por ejemplo podemos definir que la propiedad author tenga un dominio de Book y un alcance de Literal mientras que un sistema OO claacutesico podriacutea definir tiacutepicamente una clase Book con un atributo denominado author de tipo Literal

Clases y Recursos como Conjuntos y Elementos El siguiente esquema ilustra el concepto de clase subclase y recurso Una clase se describe por un rectaacutengulo redondeado un recurso se describe por un punto grande En la figura abajo se han dibujado flechas desde un recurso a una clase que define Una subclase se presenta en un rectaacutengulo redondeado (la subclase) completamente incluido en otro (la superclase) Si un recurso estaacute dentro de una clase entonces existe una propiedad rdftype o expliacutecita o impliacutecita de aquel recurso cuyo valor es un recurso que define la clase que contiene (Estas propiedades se muestran como arcos en la representacioacuten graacutefica directamente etiquetada en el Esquema 2) El recurso RDF representado en el esquema 1 se describe tanto en el resto de esta especificacioacuten como en la especificacioacuten del Modelo y Sintaxis RDF

Ontologiacuteas en la Representacioacuten del Conocimiento En estos uacuteltimos antildeos se incrementoacute la cantidad de informacioacuten en la Internet lo cual motivoacute el incremento de la complejidad y la diversidad de la informacioacuten Esto tambieacuten motivoacute el intereacutes de automatizar muchas actividades que tradicionalmente se realizan en forma manual La principal motivacioacuten en el uso de las ontologiacuteas es que permiten compartir y reutilizar conocimiento en un dominio De ahiacute el intereacutes de muchos

25

investigadores en el aacuterea de inteligencia artificial para tratar de aplicar las ontologiacuteas en la representacioacuten de conocimiento Las ontologiacuteas son un elemento importante en la Web Semaacutentica y es un teacutermino filosoacutefico que trata sobre la naturaleza de la existencia y los tipos de objetos que existen Tambieacuten la ontologiacutea se puede definir como una especificacioacuten expliacutecita de una conceptualizacioacuten compartida La conceptualizacioacuten se refiere a un modelo abstracto de un fenoacutemeno en el mundo en donde se tienen que identificar los conceptos relevantes de este fenoacutemeno El teacutermino expliacutecito significa queacute tipos de conceptos son usados y las restricciones de estos conceptos Y por uacuteltimo el teacutermino compartido se refiere a que las ontologiacuteas capturan conocimiento que es aceptado por todos y no es individual de un grupo Actualmente se les estaacute dando maacutes uso a las ontologiacuteas en el campo de la Inteligencia Artificial En este campo se define la ontologiacutea como una descripcioacuten formal y expliacutecita de conceptos de un dominio (classes a las que nos referiremos como conceptos) propiedades de cada concepto las cuales describen las caracteriacutesticas y atributos de los conceptos (slots llamados tambieacuten como propiedades o roles) y restricciones de las propiedades (facets conocidas como restricciones) La informacioacuten que es representada a traveacutes de los lenguajes semaacutenticos puede ser compartida entre aplicaciones como los agentes

OWL y Web Semaacutentica

La Web Semaacutentica es una Web extendida dotada de mayor significado en la que cualquier usuario en Internet podraacute encontrar respuestas a sus preguntas de forma maacutes raacutepida y sencilla gracias a una informacioacuten mejor definida Al dotar a la Web de maacutes significado y por lo tanto de maacutes semaacutentica se pueden obtener soluciones a problemas habituales en la buacutesqueda de informacioacuten gracias a la utilizacioacuten de una infraestructura comuacuten mediante la cual es posible compartir procesar y transferir informacioacuten de forma sencilla Esta Web extendida y basada en el significado se apoya en lenguajes universales que resuelven los problemas ocasionados por una Web carente de semaacutentica en la que en ocasiones el acceso a la informacioacuten se convierte en una tarea difiacutecil y frustrante

LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES La comunicacioacuten es uno de los aspectos importantes dentro de una comunidad de agentes la cual permitiraacute compartir y enviar mensajes entre agentes Los meacutetodos tradicionales permiten la comunicacioacuten entre los agentes pero eacutestos no son suficientes para lograr un comportamiento social entre los agentes para ello es necesario que los mensajes tengan un significado y contenido semaacutentico Se han desarrollado varios lenguajes los cuales son usados para el enviacuteo de mensajes a continuacioacuten hablaremos de dos de ellos KQML Knowledge Query and Manipulation Language (KQML) es uno de los lenguajes que nos provee la estructura para enviar mensajes entre agentes Dentro de sus principales caracteriacutesticas tenemos que es independiente de la sintaxis del contenido y la ontologiacutea

26

que se utilizaraacute Asiacute mismo es independiente del mecanismo de transporte (TCPIP SMTP IIOP etc) e independiente del contenido del lenguaje (KIF SQL STEP Prolog etc) KQML fue desarrollado por el consorcio DARPA Knowledge Sharing Effort (KSE) cuyo principal objetivo fue desarrollar una base tecnoloacutegica para construir en forma progresiva sistemas cada vez con maacutes funcionalidad complejidad y amplitud KQML provee un lenguaje y un protocolo para intercambiar informacioacuten entre agentes inteligentes y para lograr este intercambio se tiene que compartir una sintaxis y una semaacutentica comuacuten para que los mensajes sean entendidos por los agentes Al lenguaje KQML se le dividioacute en tres capas la capa de contenido alberga el contenido del mensaje que es especificado en cualquier formato ya sea texto o binario La capa de comunicacioacuten contiene paraacutemetros como el identificador uacutenico asociado a la comunicacioacuten identidad del remitente e identidad del destinatario La capa de mensaje define tanto los diferentes tipos de interaccioacuten que se pueden establecer entre los agentes como los protocolos que se pueden establecer entre los agentes Tambieacuten incluye otras caracteriacutesticas como el lenguaje de representacioacuten o la ontologiacutea siendo ambos opcionales

JADE (Java Agent DEvelopment Framework)

JADEiv (Java Agent DEvelopment Framework) es un middleware que proporciona tanto un entorno de desarrollo como un entorno de ejecucioacuten para la realizacioacuten y mantenimiento de sistemas multiagente El entorno de desarrollo estaacute formado por una serie de libreriacuteas en Java que permiten la implementacioacuten de agentes de manera limpia e independiente de la plataforma sobre la que se va a ejecutar El entorno de ejecucioacuten permite a los agentes vivir y comunicarse entre ellos Estaacute realizado enteramente en Java y proporciona una serie de herramientas que permiten al desarrollador controlar y depurar a los agentes en tiempo real JADE es un middleware desarrollado por TILAB para el desarrollo de aplicaciones distribuidas multiagente JADE proporciona tanto el entorno de desarrollo para la creacioacuten de aplicaciones basadas en agentes como el entorno de ejecucioacuten JADE presenta las siguientes caracteriacutesticas

P2P Arquitectura peer-to-peer cada agente puede tomar la iniciativa en una comunicacioacuten o bien responder a peticiones que le hagan otros agentes

Interoperabilidad JADE cumple con las especificaciones FIPA por lo que los agentes desarrollados en JADE pueden interactuar con otros agentes que no tienen porque estar desarrollados con JADE aunque si deben seguir las especificaciones FIPA

Portabilidad La API que proporciona JADE es independientemente de la red sobre la que va a operar asiacute como de la versioacuten de Java utilizada teniendo la misma API para J2EE J2SE y J2ME

27

Intuitiva JADE se ha desarrollado para ofrecer una API faacutecil de aprender y sencilla de manejar

Los agentes JADE tienen nombres uacutenicos y se permite a cada agente descubrir a otros agentes y comunicarse con ellos mediante comunicaciones punto a punto Los agentes proporcionan servicios cada agente puede buscar a otros dependiendo de los servicios que proporcionen otros agentes La comunicacioacuten entre agentes se lleva a cabo a traveacutes de mensajes asiacutencronos es decir el agente que enviacutea el mensaje y el destinatario del mensaje no tienen porqueacute estar disponibles al mismo tiempo Es maacutes el destinatario no tiene porqueacute existir en ese instante Los mensajes se pueden enviar a un agente en concreto o se pueden enviar a agentes que se desconocen pero se sabe que poseen unas ciertas caracteriacutesticas JADE proporciona mecanismos de seguridad ya que habraacute agentes a los que no se les esteacute permitido comunicarse con otros agentes de manera que una aplicacioacuten puede verificar la identidad del receptor y del agente que enviacutea el mensaje y no dejar realizar actuaciones no permitidas para un determinado agente La estructura de los mensajes se basa en el lenguaje ACL (Agent Communication Lenguaje) que ha sido definido por la FIPA JADE facilita mecanismos para el desarrollo de los objetivos que deben alcanzar los agentes Los comportamientos (behaviours) y la comunicacioacuten entre los agentes (junto con el servicio de paacuteginas amarillas) proporcionan los recursos necesarios para programar un sistema multiagente JADE tambieacuten permite a los agentes cambiar de Host (en J2SE) Un agente puede interrumpir en un momento dado su ejecucioacuten migrar a otro host (sin necesidad de que el coacutedigo esteacute previamente en el host destino) y continuar la ejecucioacuten en el mismo punto en el que la interrumpioacute Esto permite un balanceo de carga ya que permite a los agentes migrar hosts menos cargados El entorno de ejecucioacuten proporciona un marco donde poder ejecutar los agentes y herramientas graacuteficas para su monitorizacioacuten y depuracioacuten Los agentes JADE necesitan del entorno de ejecucioacuten donde poder vivir Cada instancia del entorno de ejecucioacuten se denomina contenedor (container) Al conjunto de los contenedores se le denomina plataforma (platform) y proporciona una capa que oculta a los agentes (y al desarrollador) el entorno donde se ha decidido ejecutar la aplicacioacuten En cada plataforma debe existir un contenedor especial denominado contenedor principal (main container) La principal diferencia del contenedor principal respecto al resto de contenedores es que alberga dos agentes especiales

AMS (Agent Management System) Este agente proporciona el servicio de nombres asegurando que cada agente en la plataforma disponga de un nombre uacutenico Tambieacuten representa la autoridad es posible crear y matar agentes en contenedores remotos requeriendoselo al agente AMS

DF (Directory Facilitator) Proporciona el servicio de Paacuteginas Amarillas Gracias al agente DF un agente puede encontrar otros agentes que provean los servicios necesarios para lograr sus objetivos

28

La caracteriacutestica mas importante del entorno de ejecucioacuten es la interfaz graacutefica que proporciona desde la que podemos controlar y depurar los agentes existentes Todas las herramientas han sido desarrolladas como agentes y siguen sus mismas reglas Disentildeo Arquitectura

Agente usuario

Agente de ontologiacutea

Agente de filtrado

Agente de recuperacioacuten

BD

OntologiacuteaSistema

Motor de buacutesqueda

El sistema esta disentildeado para que un usuario realice alguna buacutesqueda relacionada con alguno de los tres temas propuestos en nuestra base de conocimiento que son Ingenieriacutea de Software Base de Datos y Deportes El sistema esta basado en una arquitectura multiagente la cual se conforma por Agente Usuario Actuacutea de intermediario entre el usuario y el sistema Sus servicios son solicitados por el usuario para resolver las consultas El usuario le suministra una consulta y el sistema le devuelve una lista de documentos que pueden satisfacer sus necesidades Este agente tiene la capacidad de acceder a la base de datos con el objetivo de almacenar yo recuperar resultados Base de Datos Guardaraacute las ultimas buacutesquedas realizadas para su posterior consulta a peticioacuten del usuario Agente de Filtrado Gestiona la recuperacioacuten de documentos y realiza el filtrado de los mismos proporcionados por el Agente de Recuperacioacuten Recibe la peticioacuten del Agente Usuario y a su vez esta es enviada al Agente Ontologiacutea para que este regrese una evaluacioacuten de la consulta y de esta forma conocer si es necesaria una redefinicioacuten de la consulta En caso de ser necesaria se espera recibir el nuevo vector de consulta hasta que se cumpla una de dos opciones el usuario deje de redefinir la consulta o la consulta sea concreta Cuando la consulta sea concreta es enviada de nueva cuenta al Agente Ontologiacutea el cual regresaraacute el Nuevo Vector Expandido Este seraacute enviado al Agente de Recuperacioacuten Cuando el Agente de Recuperacioacuten regrese los urlacutes de los resultados (con sus respectivos vectores de teacuterminos) se realiza una evaluacioacuten de los vectores de cada documento con respecto al vector de buacutesqueda expandida con el objetivo de asignarles una calificacioacuten Gracias a esta calificacioacuten podemos obtener aquellos documentos que mejor cumplan con las expectativas del usuario (Estos documentos son regresados al Agente Usuario) Agente Ontologiacutea Recibe el vector de consulta proporcionado por el Agente de Filtrado La informacioacuten contenida en el vector de consulta es comparada con la existente en nuestra ontologiacutea Una vez verificada la existencia de la informacioacuten del

29

vector consulta dentro de la ontologiacutea este se encarga de devolver la distancia y el umbral al Agente de Filtrado Se espera que este devuelva una peticioacuten para expandir ese mismo vector Puede darse el caso de obtener dos tipos de buacutesquedas una general y otra mucho maacutes definida En cualquiera de los caso obtenemos un nuevo vector de buacutesqueda (con una informacioacuten mejor definida este es el Vector de Buacutesqueda Expandido) que es enviado de regreso al Agente de Filtrado el cual genera una copia y le es enviada al Agente de Recuperacioacuten Ontologiacutea Representa nuestra base de conocimientos Esta compuesta por tres aacutereas de conocimiento las cuales son Ingenieriacutea se Software Bases de Datos y Deportes Para poder representar esta ontologiacutea en un lenguaje entendible para agentes inteligentes se programaraacute bajo los fundamentos de las estructuras RDF contenidas en las especificaciones de XML y siguiendo los estaacutendares de la W3C Agente Recuperacioacuten Realiza la buacutesqueda gracias a la informacioacuten que le es entregada por el Agente de Filtrado (se trata Vector de Buacutesqueda Expandido generado por el Agente de Ontologiacutea) El agente estructura esta informacioacuten y se introduce en un motor de buacutesqueda(diacutegase por ejemplo Google) de tal manera que obtengamos una lista de posibles documentos A cada documento se le asigna un vector de teacuterminos con sus pesos derivados de un anaacutelisis TFIDF para despueacutes regresar las urlacutes con su respectivo vector de teacuterminos al Agente Filtrado RESULTADOS Este proyecto tiene la finalidad de desarrollar el software para un antivirus y un traductor Pero durante los estudios de anaacutelisis de estos dos productos se encontroacute que el software para la buacutesqueda de la informacioacuten tambieacuten puede ser implementada por medio de teacutecnicas de Inteligencia Artificial Para construir el software de aplicacioacuten para estas necesidades se usa la metodologiacutea de cascada Donde los pasos a seguir son el Anaacutelisis Disentildeo Pruebas Implementacioacuten y Mantenimiento Hasta este momento estamos en la etapa de pruebas de algunos moacutedulos de los tres productos IMPACTO El detector de intrusos en una red es de mucha importancia debido a que en la actualidad se han diseminado muchos virus que pueden ser transmitidos a traveacutes de intrusos Hasta la fecha el meacutetodo de proteccioacuten se hace de forma manual La finalidad de este software es automatizar la proteccioacuten El traductor de texto a voz tiene como primera aplicacioacuten el auxilio en la lectura de documentos para las personas invidentes o deacutebiles visuales una segunda aplicacioacuten es la comunicacioacuten con la computadora por medio del lenguaje natura El buscador de informacioacuten es un auxilio en la buacutesqueda de datos en una base de datos de conocimiento Ya que tambieacuten estaacuten proliferando las bibliotecas virtuales es una ayuda en la localizacioacuten de informacioacuten cientiacutefica y un preaacutembulo para un software de apoyo docente BIBLIOGRAFIacuteA [1] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

30

[2] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps[3] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[4] w3c en espantildeol OWL y Web Semaacutentica httpwwww3cesDivulgacionGuiasbrevesWebSemantica

[5] Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

[6] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[7] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[8] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[9] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[10] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[11] Laboratorios Googlehttplabsgooglecompapershtml

[12] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[13] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

[14] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

[15] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps [16] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[18] Trabajos de Agente en JADE http Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

31

[19] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[20] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[21] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[22] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[23] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[24] Laboratorios Googlehttplabsgooglecompapershtml

[25] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[26] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

  • En este reporte teacutecnico se presenta la descripcioacuten general anaacutelisis y estado actual de de los trabajos terminales TT2006135 TT20060097 y TT20060068 que tienen por titulo ldquoSistema prototipo de deteccioacuten de intrusos en la red utilizando agentes inteligentesrdquo rdquoProcesamiento digital de imaacutegenes para la conversioacuten de texto a vozrdquo y ldquoSistema de buacutesqueda de informacioacuten por conceptos en la webrdquo respectivamente Los prototipos que se obtendraacuten seraacuten un software robusto que se desarrollaraacuten con teacutecnicas de inteligencia artificial como Agentes inteligentes y Redes neuronales
  • Estructura de un sistema neuronal artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
    • Estado Del Arte
      • Estructura de un sistema neuronal artificial
        • Sistemas paralelos distribuidos y adaptativos
          • Modelo estaacutendar de neurona artificial
            • Sigmoidal logariacutetmica
              • Empleo del perceptroacuten para reconocer funciones loacutegicas
              • Algoritmo de aprendizaje del perceptroacuten
                • Objetivo General
                • Estado Del Arte
                • A continuacioacuten se mencionan algunos de ellos
                  • Buscador muacuteltiple Copernic 2001 Pro
                  • Lets Browse
                  • Agentes de Informacioacuten
                    • Marco Conceptual
                      • Clases y Propiedades
                      • El sistema de escritura de datos [type system]
                      • Clases y Recursos como Conjuntos y Elementos
                        • Ontologiacuteas en la Representacioacuten del Conocimiento
                          • LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES
                          • JADE (Java Agent DEvelopment Framework)
                            • Disentildeo
                            • Arquitectura
Page 22: INSTITUTO POLITÉCNICO NACIONALsappi.ipn.mx/cgpi/archivos_anexo/20061387_3286.pdf · La comunicación del hombre con la computadora por medio del lenguaje natural, es la finalidad

22

El trabajo del agente consiste en seleccionar de la misma forma que Letizia lo hace aquellas paacuteginas que mejor satisfagan los intereses de todos los participantes Las caracteriacutesticas de Letrsquos browse son la deteccioacuten automaacutetica de la presencia de usuarios navegacioacuten automaacutetica (en canal de navegacioacuten) el despliege dinaacutemico de las preferencias de los usuarios y la explicacioacuten de las recomendaciones Permite ademaacutes revisar las paacuteginas desde el punto de vista de otra persona (con sus preferencias) y asiacute estimar cual seriacutea su posible opinioacuten acerca de dicha paacutegina auacuten cuando aquella persona no la haya revisado anteriormente

Agentes de Informacioacuten Un agente de informacioacuteiin es utilizado para organizar los espacios de informacioacuten del usuario y facilitar su explotacioacuten En el WWW (World Wide Web) se estaacuten implementando diversos agentes de informacioacuten El Agente Letizia [Lieberman 1995] que existe en un navegador de Web anticipa queacute artiacuteculos pueden ser de intereacutes para el usuario basaacutendose en las conductas pasadas del usuario Las paacuteginas que cree son de intereacutes del usuario Letizia las despliega en una ventana de sugerencias por unos instantes Marco Conceptual Actualmente para poder hacer la consulta de cualquier tipo de informacioacuten en Internet la mayoriacutea de las personas recurre a los motores de buacutesquedas conocidos como Google Yahoo Altavista por mencionar algunos siendo que estos usan diferentes meacutetodos para llegar a su objetivo podemos darnos cuenta que arrojan distintos resultados uno de otro que en el mejor de los casos coinciden en un porcentaje muy poco satisfactorio con la buacutesqueda en cuestioacuten con lo que concluimos que una respuesta a esta falta de precisioacuten en cuanto a la buacutesqueda de un tema en especial es mejor la buacutesqueda de conceptos lo cual permite al usuario acercarse maacutes al tema de su intereacutes Es importante enfocar nuestra solucioacuten apoyaacutendonos en un motor de buacutesqueda y aplicando herramientas como los Agentes que nos permitan recopilar la informacioacuten maacutes precisa de cada buacutesqueda a traveacutes de un algoritmo propio obteniendo resultados maacutes cercanos a los deseados ya que estos provienen de muacuteltiples documentos ahorrando tiempo y ganando precisioacuten a la vez Muy frecuentemente encontramos que cuando se trata de buacutesquedas en Internet a traveacutes de los motores de buacutesqueda populares los usuarios hacen consultas de diversas paginas y es muy difiacutecil llevar una lista de todos los sitios visitados o de aquellos que nos mostraron la informacioacuten maacutes adecuada nuestro sistema es capaz de registrar dentro de una base de datos un iacutendice de todos los sitios que se obtuvieron en la buacutesqueda de un tema o concepto con lo que el usuario no tendraacute que realizar una ldquonuevardquo buacutesqueda de un tema antes consultado sino que tendraacute a la mano todos los sitios que arrojoacute la primera buacutesqueda Marco teoacuterico

Descripcioacuten de RDF

El Resource Description Frameworiiik (RDF) es un fundamento para el procesamiento de metadatos proporciona interoperabilidad entre aplicaciones que intercambian informacioacuten legible por maacutequina en la Web RDF utiliza XML para intercambiar descripciones de recursos Web pero los recursos descritos pueden ser de cualquier tipo

23

incluyendo recursos XML y no-XML RDF resalta las facilidades para hacer posible el procesamiento automaacutetico de los recursos Web RDF puede utilizarse en diferentes aacutereas de aplicacioacuten por ejemplo en la recuperacioacuten de recursos para proporcionar mejores capacidades a los motores de buacutesqueda en catalogacioacuten para la descripcioacuten de contenido y relaciones de contenido accesibles en un sitio Web particular en una paacutegina o biblioteca digital a traveacutes de agentes de software inteligente para facilitar que el conocimiento se comparta e intercambie en la valoracioacuten de contenido en la descripcioacuten de colecciones de paacuteginas que representan un documento loacutegico individual para la descripcioacuten de los derechos de propiedad intelectual de las paacuteginas Web y para expresar las preferencias de privacidad de un usuario asiacute como las poliacuteticas de privacidad de un sitio Web Las descripciones utilizadas por estas aplicaciones pueden modelarse como relaciones entre recursos Web El modelo de datos de RDF tal y como se especifica en RDFMS define un modelo simple para describir las relaciones entre recursos en teacuterminos de propiedades y valores designadas Las propiedades RDF pueden entenderse como atributos de un recurso y en este sentido corresponden con los tradicionales pares atributo-valor Las propiedades RDF tambieacuten representa relaciones entre recursos De esta forma el modelo de datos RDF puede parecer un diagrama entidad-relacioacuten El modelo de datos RDF sin embargo no proporciona mecanismos para declarar estas propiedades ni proporcionan ninguacuten mecanismo para definir las relaciones entre estas propiedades y otros recursos Este es el papel [la funcioacuten] del Esquema RDF

Las comunidades de descripcioacuten de recursos necesitan la habilidad para decir ciertas cosas sobre ciertas clases de recursos Para describir recursos bibliograacuteficos por ejemplo son habituales atributos descriptivos tales como autor [author] tiacutetulo [title] y materia [subject] Para la certificacioacuten digital se necesitan muchas veces atributos tales como esquema simple de deteccioacuten de errores [checksum] y autorizacioacuten [authorization] La declaracioacuten de estas propiedades (atributos) y su semaacutentica correspondiente se definen en el contexto de RDF como un Esquema RDF Un esquema define no soacutelo las propiedades de un recurso (ej tiacutetulo autor materia tamantildeo color etc) sino que puede tambieacuten definir los tipos de recursos que se describiraacuten (libros paacuteginas Web personas empresas etc)

Los Esquemas RDF podriacutean contrastarse con las Definiciones del Tipo de Documentos (DTDs) de XML y los Esquemas XML A diferencia de una DTD o Esquema XML que dan restricciones especiacuteficas en la estructura de un documento XML un Esquema RDF proporciona informacioacuten sobre la interpretacioacuten de una sentencia dada en un modelo de datos RDF Mientras un Esquema XML puede utilizarse para validar la sintaxis de una expresioacuten RDFXML un esquema sintaacutectico soacutelo no es suficiente para los objetivos de RDF Los Esquemas RDF pueden tambieacuten especificar restricciones que deben seguirse por estos modelos de datos

Clases y Propiedades Un Esquema RDF se expresa a traveacutes de un modelo de datos descrito en la especificacioacuten del Modelo y la Sintaxis RDF [RDFMS] El lenguaje de descripcioacuten del esquema es un simple conjunto de recursos y propiedades definidos por la Especificacioacuten del Esquema RDF y la parte impliacutecita de cada modelo RDF que utiliza la mecaacutenica del esquema RDF

24

El sistema de escritura de datos [type system] El Esquema RDF definido en esta especificacioacuten es una coleccioacuten de recursos RDF que puede utilizarse para describir propiedades de otros recursos RDF (incluyendo propiedades) que definene vocabularios RDF de aplicacioacuten especiacutefica El nuacutecleo del vocabulario del esquema se define en un namespace denominado aquiacute informalmente rdfs e identificado por el URI de referencia httpwwww3org200001rdf-schema Esta especificacioacuten utiliza tambieacuten el prefijo rdf para referirse al namespace principal RDF httpwwww3org19990222-rdf-syntax-ns

Como se describe en la especificacioacuten del modelo y la sintaxis [RDFMS] los recursos pueden ser objetos especiacuteficos de una categoriacutea [instances] de una o maacutes clases esto se indica con la propiedad rdftype Las clases se organizan muchas veces de una forma jeraacuterquica por ejemplo la clase Dog [perro] podriacutea considerarse subclase de Mammal [mamiacutefero] que a su vez es una subclase de Animal dando a entender que cualquier recurso que esteacute en rdftype Dog se considera tambieacuten que estaacute en rdftype AnimalEsta especificacioacuten describe una propiedad rdfssubClassOf para indicar dichas relaciones entre clases

El sistema de escritura [type system] del Esquema RDF es similar al sistema de los lenguajes de programacioacuten orientados a objetos tales como Java Sin embargo RDF se diferencia de muchos de esos sistemas en que en lugar de definir una clase en teacuterminos de propiedades sus objetos especiacuteficos de una categoriacutea [instances] pueden tener un esquema RDF que definiraacute las propiedades en teacuterminos de clases de recurso a los que se aplican Este es el papel de las restricciones rdfsdomain y de rdfsrange

Por ejemplo podemos definir que la propiedad author tenga un dominio de Book y un alcance de Literal mientras que un sistema OO claacutesico podriacutea definir tiacutepicamente una clase Book con un atributo denominado author de tipo Literal

Clases y Recursos como Conjuntos y Elementos El siguiente esquema ilustra el concepto de clase subclase y recurso Una clase se describe por un rectaacutengulo redondeado un recurso se describe por un punto grande En la figura abajo se han dibujado flechas desde un recurso a una clase que define Una subclase se presenta en un rectaacutengulo redondeado (la subclase) completamente incluido en otro (la superclase) Si un recurso estaacute dentro de una clase entonces existe una propiedad rdftype o expliacutecita o impliacutecita de aquel recurso cuyo valor es un recurso que define la clase que contiene (Estas propiedades se muestran como arcos en la representacioacuten graacutefica directamente etiquetada en el Esquema 2) El recurso RDF representado en el esquema 1 se describe tanto en el resto de esta especificacioacuten como en la especificacioacuten del Modelo y Sintaxis RDF

Ontologiacuteas en la Representacioacuten del Conocimiento En estos uacuteltimos antildeos se incrementoacute la cantidad de informacioacuten en la Internet lo cual motivoacute el incremento de la complejidad y la diversidad de la informacioacuten Esto tambieacuten motivoacute el intereacutes de automatizar muchas actividades que tradicionalmente se realizan en forma manual La principal motivacioacuten en el uso de las ontologiacuteas es que permiten compartir y reutilizar conocimiento en un dominio De ahiacute el intereacutes de muchos

25

investigadores en el aacuterea de inteligencia artificial para tratar de aplicar las ontologiacuteas en la representacioacuten de conocimiento Las ontologiacuteas son un elemento importante en la Web Semaacutentica y es un teacutermino filosoacutefico que trata sobre la naturaleza de la existencia y los tipos de objetos que existen Tambieacuten la ontologiacutea se puede definir como una especificacioacuten expliacutecita de una conceptualizacioacuten compartida La conceptualizacioacuten se refiere a un modelo abstracto de un fenoacutemeno en el mundo en donde se tienen que identificar los conceptos relevantes de este fenoacutemeno El teacutermino expliacutecito significa queacute tipos de conceptos son usados y las restricciones de estos conceptos Y por uacuteltimo el teacutermino compartido se refiere a que las ontologiacuteas capturan conocimiento que es aceptado por todos y no es individual de un grupo Actualmente se les estaacute dando maacutes uso a las ontologiacuteas en el campo de la Inteligencia Artificial En este campo se define la ontologiacutea como una descripcioacuten formal y expliacutecita de conceptos de un dominio (classes a las que nos referiremos como conceptos) propiedades de cada concepto las cuales describen las caracteriacutesticas y atributos de los conceptos (slots llamados tambieacuten como propiedades o roles) y restricciones de las propiedades (facets conocidas como restricciones) La informacioacuten que es representada a traveacutes de los lenguajes semaacutenticos puede ser compartida entre aplicaciones como los agentes

OWL y Web Semaacutentica

La Web Semaacutentica es una Web extendida dotada de mayor significado en la que cualquier usuario en Internet podraacute encontrar respuestas a sus preguntas de forma maacutes raacutepida y sencilla gracias a una informacioacuten mejor definida Al dotar a la Web de maacutes significado y por lo tanto de maacutes semaacutentica se pueden obtener soluciones a problemas habituales en la buacutesqueda de informacioacuten gracias a la utilizacioacuten de una infraestructura comuacuten mediante la cual es posible compartir procesar y transferir informacioacuten de forma sencilla Esta Web extendida y basada en el significado se apoya en lenguajes universales que resuelven los problemas ocasionados por una Web carente de semaacutentica en la que en ocasiones el acceso a la informacioacuten se convierte en una tarea difiacutecil y frustrante

LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES La comunicacioacuten es uno de los aspectos importantes dentro de una comunidad de agentes la cual permitiraacute compartir y enviar mensajes entre agentes Los meacutetodos tradicionales permiten la comunicacioacuten entre los agentes pero eacutestos no son suficientes para lograr un comportamiento social entre los agentes para ello es necesario que los mensajes tengan un significado y contenido semaacutentico Se han desarrollado varios lenguajes los cuales son usados para el enviacuteo de mensajes a continuacioacuten hablaremos de dos de ellos KQML Knowledge Query and Manipulation Language (KQML) es uno de los lenguajes que nos provee la estructura para enviar mensajes entre agentes Dentro de sus principales caracteriacutesticas tenemos que es independiente de la sintaxis del contenido y la ontologiacutea

26

que se utilizaraacute Asiacute mismo es independiente del mecanismo de transporte (TCPIP SMTP IIOP etc) e independiente del contenido del lenguaje (KIF SQL STEP Prolog etc) KQML fue desarrollado por el consorcio DARPA Knowledge Sharing Effort (KSE) cuyo principal objetivo fue desarrollar una base tecnoloacutegica para construir en forma progresiva sistemas cada vez con maacutes funcionalidad complejidad y amplitud KQML provee un lenguaje y un protocolo para intercambiar informacioacuten entre agentes inteligentes y para lograr este intercambio se tiene que compartir una sintaxis y una semaacutentica comuacuten para que los mensajes sean entendidos por los agentes Al lenguaje KQML se le dividioacute en tres capas la capa de contenido alberga el contenido del mensaje que es especificado en cualquier formato ya sea texto o binario La capa de comunicacioacuten contiene paraacutemetros como el identificador uacutenico asociado a la comunicacioacuten identidad del remitente e identidad del destinatario La capa de mensaje define tanto los diferentes tipos de interaccioacuten que se pueden establecer entre los agentes como los protocolos que se pueden establecer entre los agentes Tambieacuten incluye otras caracteriacutesticas como el lenguaje de representacioacuten o la ontologiacutea siendo ambos opcionales

JADE (Java Agent DEvelopment Framework)

JADEiv (Java Agent DEvelopment Framework) es un middleware que proporciona tanto un entorno de desarrollo como un entorno de ejecucioacuten para la realizacioacuten y mantenimiento de sistemas multiagente El entorno de desarrollo estaacute formado por una serie de libreriacuteas en Java que permiten la implementacioacuten de agentes de manera limpia e independiente de la plataforma sobre la que se va a ejecutar El entorno de ejecucioacuten permite a los agentes vivir y comunicarse entre ellos Estaacute realizado enteramente en Java y proporciona una serie de herramientas que permiten al desarrollador controlar y depurar a los agentes en tiempo real JADE es un middleware desarrollado por TILAB para el desarrollo de aplicaciones distribuidas multiagente JADE proporciona tanto el entorno de desarrollo para la creacioacuten de aplicaciones basadas en agentes como el entorno de ejecucioacuten JADE presenta las siguientes caracteriacutesticas

P2P Arquitectura peer-to-peer cada agente puede tomar la iniciativa en una comunicacioacuten o bien responder a peticiones que le hagan otros agentes

Interoperabilidad JADE cumple con las especificaciones FIPA por lo que los agentes desarrollados en JADE pueden interactuar con otros agentes que no tienen porque estar desarrollados con JADE aunque si deben seguir las especificaciones FIPA

Portabilidad La API que proporciona JADE es independientemente de la red sobre la que va a operar asiacute como de la versioacuten de Java utilizada teniendo la misma API para J2EE J2SE y J2ME

27

Intuitiva JADE se ha desarrollado para ofrecer una API faacutecil de aprender y sencilla de manejar

Los agentes JADE tienen nombres uacutenicos y se permite a cada agente descubrir a otros agentes y comunicarse con ellos mediante comunicaciones punto a punto Los agentes proporcionan servicios cada agente puede buscar a otros dependiendo de los servicios que proporcionen otros agentes La comunicacioacuten entre agentes se lleva a cabo a traveacutes de mensajes asiacutencronos es decir el agente que enviacutea el mensaje y el destinatario del mensaje no tienen porqueacute estar disponibles al mismo tiempo Es maacutes el destinatario no tiene porqueacute existir en ese instante Los mensajes se pueden enviar a un agente en concreto o se pueden enviar a agentes que se desconocen pero se sabe que poseen unas ciertas caracteriacutesticas JADE proporciona mecanismos de seguridad ya que habraacute agentes a los que no se les esteacute permitido comunicarse con otros agentes de manera que una aplicacioacuten puede verificar la identidad del receptor y del agente que enviacutea el mensaje y no dejar realizar actuaciones no permitidas para un determinado agente La estructura de los mensajes se basa en el lenguaje ACL (Agent Communication Lenguaje) que ha sido definido por la FIPA JADE facilita mecanismos para el desarrollo de los objetivos que deben alcanzar los agentes Los comportamientos (behaviours) y la comunicacioacuten entre los agentes (junto con el servicio de paacuteginas amarillas) proporcionan los recursos necesarios para programar un sistema multiagente JADE tambieacuten permite a los agentes cambiar de Host (en J2SE) Un agente puede interrumpir en un momento dado su ejecucioacuten migrar a otro host (sin necesidad de que el coacutedigo esteacute previamente en el host destino) y continuar la ejecucioacuten en el mismo punto en el que la interrumpioacute Esto permite un balanceo de carga ya que permite a los agentes migrar hosts menos cargados El entorno de ejecucioacuten proporciona un marco donde poder ejecutar los agentes y herramientas graacuteficas para su monitorizacioacuten y depuracioacuten Los agentes JADE necesitan del entorno de ejecucioacuten donde poder vivir Cada instancia del entorno de ejecucioacuten se denomina contenedor (container) Al conjunto de los contenedores se le denomina plataforma (platform) y proporciona una capa que oculta a los agentes (y al desarrollador) el entorno donde se ha decidido ejecutar la aplicacioacuten En cada plataforma debe existir un contenedor especial denominado contenedor principal (main container) La principal diferencia del contenedor principal respecto al resto de contenedores es que alberga dos agentes especiales

AMS (Agent Management System) Este agente proporciona el servicio de nombres asegurando que cada agente en la plataforma disponga de un nombre uacutenico Tambieacuten representa la autoridad es posible crear y matar agentes en contenedores remotos requeriendoselo al agente AMS

DF (Directory Facilitator) Proporciona el servicio de Paacuteginas Amarillas Gracias al agente DF un agente puede encontrar otros agentes que provean los servicios necesarios para lograr sus objetivos

28

La caracteriacutestica mas importante del entorno de ejecucioacuten es la interfaz graacutefica que proporciona desde la que podemos controlar y depurar los agentes existentes Todas las herramientas han sido desarrolladas como agentes y siguen sus mismas reglas Disentildeo Arquitectura

Agente usuario

Agente de ontologiacutea

Agente de filtrado

Agente de recuperacioacuten

BD

OntologiacuteaSistema

Motor de buacutesqueda

El sistema esta disentildeado para que un usuario realice alguna buacutesqueda relacionada con alguno de los tres temas propuestos en nuestra base de conocimiento que son Ingenieriacutea de Software Base de Datos y Deportes El sistema esta basado en una arquitectura multiagente la cual se conforma por Agente Usuario Actuacutea de intermediario entre el usuario y el sistema Sus servicios son solicitados por el usuario para resolver las consultas El usuario le suministra una consulta y el sistema le devuelve una lista de documentos que pueden satisfacer sus necesidades Este agente tiene la capacidad de acceder a la base de datos con el objetivo de almacenar yo recuperar resultados Base de Datos Guardaraacute las ultimas buacutesquedas realizadas para su posterior consulta a peticioacuten del usuario Agente de Filtrado Gestiona la recuperacioacuten de documentos y realiza el filtrado de los mismos proporcionados por el Agente de Recuperacioacuten Recibe la peticioacuten del Agente Usuario y a su vez esta es enviada al Agente Ontologiacutea para que este regrese una evaluacioacuten de la consulta y de esta forma conocer si es necesaria una redefinicioacuten de la consulta En caso de ser necesaria se espera recibir el nuevo vector de consulta hasta que se cumpla una de dos opciones el usuario deje de redefinir la consulta o la consulta sea concreta Cuando la consulta sea concreta es enviada de nueva cuenta al Agente Ontologiacutea el cual regresaraacute el Nuevo Vector Expandido Este seraacute enviado al Agente de Recuperacioacuten Cuando el Agente de Recuperacioacuten regrese los urlacutes de los resultados (con sus respectivos vectores de teacuterminos) se realiza una evaluacioacuten de los vectores de cada documento con respecto al vector de buacutesqueda expandida con el objetivo de asignarles una calificacioacuten Gracias a esta calificacioacuten podemos obtener aquellos documentos que mejor cumplan con las expectativas del usuario (Estos documentos son regresados al Agente Usuario) Agente Ontologiacutea Recibe el vector de consulta proporcionado por el Agente de Filtrado La informacioacuten contenida en el vector de consulta es comparada con la existente en nuestra ontologiacutea Una vez verificada la existencia de la informacioacuten del

29

vector consulta dentro de la ontologiacutea este se encarga de devolver la distancia y el umbral al Agente de Filtrado Se espera que este devuelva una peticioacuten para expandir ese mismo vector Puede darse el caso de obtener dos tipos de buacutesquedas una general y otra mucho maacutes definida En cualquiera de los caso obtenemos un nuevo vector de buacutesqueda (con una informacioacuten mejor definida este es el Vector de Buacutesqueda Expandido) que es enviado de regreso al Agente de Filtrado el cual genera una copia y le es enviada al Agente de Recuperacioacuten Ontologiacutea Representa nuestra base de conocimientos Esta compuesta por tres aacutereas de conocimiento las cuales son Ingenieriacutea se Software Bases de Datos y Deportes Para poder representar esta ontologiacutea en un lenguaje entendible para agentes inteligentes se programaraacute bajo los fundamentos de las estructuras RDF contenidas en las especificaciones de XML y siguiendo los estaacutendares de la W3C Agente Recuperacioacuten Realiza la buacutesqueda gracias a la informacioacuten que le es entregada por el Agente de Filtrado (se trata Vector de Buacutesqueda Expandido generado por el Agente de Ontologiacutea) El agente estructura esta informacioacuten y se introduce en un motor de buacutesqueda(diacutegase por ejemplo Google) de tal manera que obtengamos una lista de posibles documentos A cada documento se le asigna un vector de teacuterminos con sus pesos derivados de un anaacutelisis TFIDF para despueacutes regresar las urlacutes con su respectivo vector de teacuterminos al Agente Filtrado RESULTADOS Este proyecto tiene la finalidad de desarrollar el software para un antivirus y un traductor Pero durante los estudios de anaacutelisis de estos dos productos se encontroacute que el software para la buacutesqueda de la informacioacuten tambieacuten puede ser implementada por medio de teacutecnicas de Inteligencia Artificial Para construir el software de aplicacioacuten para estas necesidades se usa la metodologiacutea de cascada Donde los pasos a seguir son el Anaacutelisis Disentildeo Pruebas Implementacioacuten y Mantenimiento Hasta este momento estamos en la etapa de pruebas de algunos moacutedulos de los tres productos IMPACTO El detector de intrusos en una red es de mucha importancia debido a que en la actualidad se han diseminado muchos virus que pueden ser transmitidos a traveacutes de intrusos Hasta la fecha el meacutetodo de proteccioacuten se hace de forma manual La finalidad de este software es automatizar la proteccioacuten El traductor de texto a voz tiene como primera aplicacioacuten el auxilio en la lectura de documentos para las personas invidentes o deacutebiles visuales una segunda aplicacioacuten es la comunicacioacuten con la computadora por medio del lenguaje natura El buscador de informacioacuten es un auxilio en la buacutesqueda de datos en una base de datos de conocimiento Ya que tambieacuten estaacuten proliferando las bibliotecas virtuales es una ayuda en la localizacioacuten de informacioacuten cientiacutefica y un preaacutembulo para un software de apoyo docente BIBLIOGRAFIacuteA [1] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

30

[2] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps[3] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[4] w3c en espantildeol OWL y Web Semaacutentica httpwwww3cesDivulgacionGuiasbrevesWebSemantica

[5] Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

[6] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[7] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[8] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[9] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[10] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[11] Laboratorios Googlehttplabsgooglecompapershtml

[12] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[13] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

[14] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

[15] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps [16] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[18] Trabajos de Agente en JADE http Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

31

[19] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[20] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[21] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[22] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[23] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[24] Laboratorios Googlehttplabsgooglecompapershtml

[25] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[26] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

  • En este reporte teacutecnico se presenta la descripcioacuten general anaacutelisis y estado actual de de los trabajos terminales TT2006135 TT20060097 y TT20060068 que tienen por titulo ldquoSistema prototipo de deteccioacuten de intrusos en la red utilizando agentes inteligentesrdquo rdquoProcesamiento digital de imaacutegenes para la conversioacuten de texto a vozrdquo y ldquoSistema de buacutesqueda de informacioacuten por conceptos en la webrdquo respectivamente Los prototipos que se obtendraacuten seraacuten un software robusto que se desarrollaraacuten con teacutecnicas de inteligencia artificial como Agentes inteligentes y Redes neuronales
  • Estructura de un sistema neuronal artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
    • Estado Del Arte
      • Estructura de un sistema neuronal artificial
        • Sistemas paralelos distribuidos y adaptativos
          • Modelo estaacutendar de neurona artificial
            • Sigmoidal logariacutetmica
              • Empleo del perceptroacuten para reconocer funciones loacutegicas
              • Algoritmo de aprendizaje del perceptroacuten
                • Objetivo General
                • Estado Del Arte
                • A continuacioacuten se mencionan algunos de ellos
                  • Buscador muacuteltiple Copernic 2001 Pro
                  • Lets Browse
                  • Agentes de Informacioacuten
                    • Marco Conceptual
                      • Clases y Propiedades
                      • El sistema de escritura de datos [type system]
                      • Clases y Recursos como Conjuntos y Elementos
                        • Ontologiacuteas en la Representacioacuten del Conocimiento
                          • LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES
                          • JADE (Java Agent DEvelopment Framework)
                            • Disentildeo
                            • Arquitectura
Page 23: INSTITUTO POLITÉCNICO NACIONALsappi.ipn.mx/cgpi/archivos_anexo/20061387_3286.pdf · La comunicación del hombre con la computadora por medio del lenguaje natural, es la finalidad

23

incluyendo recursos XML y no-XML RDF resalta las facilidades para hacer posible el procesamiento automaacutetico de los recursos Web RDF puede utilizarse en diferentes aacutereas de aplicacioacuten por ejemplo en la recuperacioacuten de recursos para proporcionar mejores capacidades a los motores de buacutesqueda en catalogacioacuten para la descripcioacuten de contenido y relaciones de contenido accesibles en un sitio Web particular en una paacutegina o biblioteca digital a traveacutes de agentes de software inteligente para facilitar que el conocimiento se comparta e intercambie en la valoracioacuten de contenido en la descripcioacuten de colecciones de paacuteginas que representan un documento loacutegico individual para la descripcioacuten de los derechos de propiedad intelectual de las paacuteginas Web y para expresar las preferencias de privacidad de un usuario asiacute como las poliacuteticas de privacidad de un sitio Web Las descripciones utilizadas por estas aplicaciones pueden modelarse como relaciones entre recursos Web El modelo de datos de RDF tal y como se especifica en RDFMS define un modelo simple para describir las relaciones entre recursos en teacuterminos de propiedades y valores designadas Las propiedades RDF pueden entenderse como atributos de un recurso y en este sentido corresponden con los tradicionales pares atributo-valor Las propiedades RDF tambieacuten representa relaciones entre recursos De esta forma el modelo de datos RDF puede parecer un diagrama entidad-relacioacuten El modelo de datos RDF sin embargo no proporciona mecanismos para declarar estas propiedades ni proporcionan ninguacuten mecanismo para definir las relaciones entre estas propiedades y otros recursos Este es el papel [la funcioacuten] del Esquema RDF

Las comunidades de descripcioacuten de recursos necesitan la habilidad para decir ciertas cosas sobre ciertas clases de recursos Para describir recursos bibliograacuteficos por ejemplo son habituales atributos descriptivos tales como autor [author] tiacutetulo [title] y materia [subject] Para la certificacioacuten digital se necesitan muchas veces atributos tales como esquema simple de deteccioacuten de errores [checksum] y autorizacioacuten [authorization] La declaracioacuten de estas propiedades (atributos) y su semaacutentica correspondiente se definen en el contexto de RDF como un Esquema RDF Un esquema define no soacutelo las propiedades de un recurso (ej tiacutetulo autor materia tamantildeo color etc) sino que puede tambieacuten definir los tipos de recursos que se describiraacuten (libros paacuteginas Web personas empresas etc)

Los Esquemas RDF podriacutean contrastarse con las Definiciones del Tipo de Documentos (DTDs) de XML y los Esquemas XML A diferencia de una DTD o Esquema XML que dan restricciones especiacuteficas en la estructura de un documento XML un Esquema RDF proporciona informacioacuten sobre la interpretacioacuten de una sentencia dada en un modelo de datos RDF Mientras un Esquema XML puede utilizarse para validar la sintaxis de una expresioacuten RDFXML un esquema sintaacutectico soacutelo no es suficiente para los objetivos de RDF Los Esquemas RDF pueden tambieacuten especificar restricciones que deben seguirse por estos modelos de datos

Clases y Propiedades Un Esquema RDF se expresa a traveacutes de un modelo de datos descrito en la especificacioacuten del Modelo y la Sintaxis RDF [RDFMS] El lenguaje de descripcioacuten del esquema es un simple conjunto de recursos y propiedades definidos por la Especificacioacuten del Esquema RDF y la parte impliacutecita de cada modelo RDF que utiliza la mecaacutenica del esquema RDF

24

El sistema de escritura de datos [type system] El Esquema RDF definido en esta especificacioacuten es una coleccioacuten de recursos RDF que puede utilizarse para describir propiedades de otros recursos RDF (incluyendo propiedades) que definene vocabularios RDF de aplicacioacuten especiacutefica El nuacutecleo del vocabulario del esquema se define en un namespace denominado aquiacute informalmente rdfs e identificado por el URI de referencia httpwwww3org200001rdf-schema Esta especificacioacuten utiliza tambieacuten el prefijo rdf para referirse al namespace principal RDF httpwwww3org19990222-rdf-syntax-ns

Como se describe en la especificacioacuten del modelo y la sintaxis [RDFMS] los recursos pueden ser objetos especiacuteficos de una categoriacutea [instances] de una o maacutes clases esto se indica con la propiedad rdftype Las clases se organizan muchas veces de una forma jeraacuterquica por ejemplo la clase Dog [perro] podriacutea considerarse subclase de Mammal [mamiacutefero] que a su vez es una subclase de Animal dando a entender que cualquier recurso que esteacute en rdftype Dog se considera tambieacuten que estaacute en rdftype AnimalEsta especificacioacuten describe una propiedad rdfssubClassOf para indicar dichas relaciones entre clases

El sistema de escritura [type system] del Esquema RDF es similar al sistema de los lenguajes de programacioacuten orientados a objetos tales como Java Sin embargo RDF se diferencia de muchos de esos sistemas en que en lugar de definir una clase en teacuterminos de propiedades sus objetos especiacuteficos de una categoriacutea [instances] pueden tener un esquema RDF que definiraacute las propiedades en teacuterminos de clases de recurso a los que se aplican Este es el papel de las restricciones rdfsdomain y de rdfsrange

Por ejemplo podemos definir que la propiedad author tenga un dominio de Book y un alcance de Literal mientras que un sistema OO claacutesico podriacutea definir tiacutepicamente una clase Book con un atributo denominado author de tipo Literal

Clases y Recursos como Conjuntos y Elementos El siguiente esquema ilustra el concepto de clase subclase y recurso Una clase se describe por un rectaacutengulo redondeado un recurso se describe por un punto grande En la figura abajo se han dibujado flechas desde un recurso a una clase que define Una subclase se presenta en un rectaacutengulo redondeado (la subclase) completamente incluido en otro (la superclase) Si un recurso estaacute dentro de una clase entonces existe una propiedad rdftype o expliacutecita o impliacutecita de aquel recurso cuyo valor es un recurso que define la clase que contiene (Estas propiedades se muestran como arcos en la representacioacuten graacutefica directamente etiquetada en el Esquema 2) El recurso RDF representado en el esquema 1 se describe tanto en el resto de esta especificacioacuten como en la especificacioacuten del Modelo y Sintaxis RDF

Ontologiacuteas en la Representacioacuten del Conocimiento En estos uacuteltimos antildeos se incrementoacute la cantidad de informacioacuten en la Internet lo cual motivoacute el incremento de la complejidad y la diversidad de la informacioacuten Esto tambieacuten motivoacute el intereacutes de automatizar muchas actividades que tradicionalmente se realizan en forma manual La principal motivacioacuten en el uso de las ontologiacuteas es que permiten compartir y reutilizar conocimiento en un dominio De ahiacute el intereacutes de muchos

25

investigadores en el aacuterea de inteligencia artificial para tratar de aplicar las ontologiacuteas en la representacioacuten de conocimiento Las ontologiacuteas son un elemento importante en la Web Semaacutentica y es un teacutermino filosoacutefico que trata sobre la naturaleza de la existencia y los tipos de objetos que existen Tambieacuten la ontologiacutea se puede definir como una especificacioacuten expliacutecita de una conceptualizacioacuten compartida La conceptualizacioacuten se refiere a un modelo abstracto de un fenoacutemeno en el mundo en donde se tienen que identificar los conceptos relevantes de este fenoacutemeno El teacutermino expliacutecito significa queacute tipos de conceptos son usados y las restricciones de estos conceptos Y por uacuteltimo el teacutermino compartido se refiere a que las ontologiacuteas capturan conocimiento que es aceptado por todos y no es individual de un grupo Actualmente se les estaacute dando maacutes uso a las ontologiacuteas en el campo de la Inteligencia Artificial En este campo se define la ontologiacutea como una descripcioacuten formal y expliacutecita de conceptos de un dominio (classes a las que nos referiremos como conceptos) propiedades de cada concepto las cuales describen las caracteriacutesticas y atributos de los conceptos (slots llamados tambieacuten como propiedades o roles) y restricciones de las propiedades (facets conocidas como restricciones) La informacioacuten que es representada a traveacutes de los lenguajes semaacutenticos puede ser compartida entre aplicaciones como los agentes

OWL y Web Semaacutentica

La Web Semaacutentica es una Web extendida dotada de mayor significado en la que cualquier usuario en Internet podraacute encontrar respuestas a sus preguntas de forma maacutes raacutepida y sencilla gracias a una informacioacuten mejor definida Al dotar a la Web de maacutes significado y por lo tanto de maacutes semaacutentica se pueden obtener soluciones a problemas habituales en la buacutesqueda de informacioacuten gracias a la utilizacioacuten de una infraestructura comuacuten mediante la cual es posible compartir procesar y transferir informacioacuten de forma sencilla Esta Web extendida y basada en el significado se apoya en lenguajes universales que resuelven los problemas ocasionados por una Web carente de semaacutentica en la que en ocasiones el acceso a la informacioacuten se convierte en una tarea difiacutecil y frustrante

LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES La comunicacioacuten es uno de los aspectos importantes dentro de una comunidad de agentes la cual permitiraacute compartir y enviar mensajes entre agentes Los meacutetodos tradicionales permiten la comunicacioacuten entre los agentes pero eacutestos no son suficientes para lograr un comportamiento social entre los agentes para ello es necesario que los mensajes tengan un significado y contenido semaacutentico Se han desarrollado varios lenguajes los cuales son usados para el enviacuteo de mensajes a continuacioacuten hablaremos de dos de ellos KQML Knowledge Query and Manipulation Language (KQML) es uno de los lenguajes que nos provee la estructura para enviar mensajes entre agentes Dentro de sus principales caracteriacutesticas tenemos que es independiente de la sintaxis del contenido y la ontologiacutea

26

que se utilizaraacute Asiacute mismo es independiente del mecanismo de transporte (TCPIP SMTP IIOP etc) e independiente del contenido del lenguaje (KIF SQL STEP Prolog etc) KQML fue desarrollado por el consorcio DARPA Knowledge Sharing Effort (KSE) cuyo principal objetivo fue desarrollar una base tecnoloacutegica para construir en forma progresiva sistemas cada vez con maacutes funcionalidad complejidad y amplitud KQML provee un lenguaje y un protocolo para intercambiar informacioacuten entre agentes inteligentes y para lograr este intercambio se tiene que compartir una sintaxis y una semaacutentica comuacuten para que los mensajes sean entendidos por los agentes Al lenguaje KQML se le dividioacute en tres capas la capa de contenido alberga el contenido del mensaje que es especificado en cualquier formato ya sea texto o binario La capa de comunicacioacuten contiene paraacutemetros como el identificador uacutenico asociado a la comunicacioacuten identidad del remitente e identidad del destinatario La capa de mensaje define tanto los diferentes tipos de interaccioacuten que se pueden establecer entre los agentes como los protocolos que se pueden establecer entre los agentes Tambieacuten incluye otras caracteriacutesticas como el lenguaje de representacioacuten o la ontologiacutea siendo ambos opcionales

JADE (Java Agent DEvelopment Framework)

JADEiv (Java Agent DEvelopment Framework) es un middleware que proporciona tanto un entorno de desarrollo como un entorno de ejecucioacuten para la realizacioacuten y mantenimiento de sistemas multiagente El entorno de desarrollo estaacute formado por una serie de libreriacuteas en Java que permiten la implementacioacuten de agentes de manera limpia e independiente de la plataforma sobre la que se va a ejecutar El entorno de ejecucioacuten permite a los agentes vivir y comunicarse entre ellos Estaacute realizado enteramente en Java y proporciona una serie de herramientas que permiten al desarrollador controlar y depurar a los agentes en tiempo real JADE es un middleware desarrollado por TILAB para el desarrollo de aplicaciones distribuidas multiagente JADE proporciona tanto el entorno de desarrollo para la creacioacuten de aplicaciones basadas en agentes como el entorno de ejecucioacuten JADE presenta las siguientes caracteriacutesticas

P2P Arquitectura peer-to-peer cada agente puede tomar la iniciativa en una comunicacioacuten o bien responder a peticiones que le hagan otros agentes

Interoperabilidad JADE cumple con las especificaciones FIPA por lo que los agentes desarrollados en JADE pueden interactuar con otros agentes que no tienen porque estar desarrollados con JADE aunque si deben seguir las especificaciones FIPA

Portabilidad La API que proporciona JADE es independientemente de la red sobre la que va a operar asiacute como de la versioacuten de Java utilizada teniendo la misma API para J2EE J2SE y J2ME

27

Intuitiva JADE se ha desarrollado para ofrecer una API faacutecil de aprender y sencilla de manejar

Los agentes JADE tienen nombres uacutenicos y se permite a cada agente descubrir a otros agentes y comunicarse con ellos mediante comunicaciones punto a punto Los agentes proporcionan servicios cada agente puede buscar a otros dependiendo de los servicios que proporcionen otros agentes La comunicacioacuten entre agentes se lleva a cabo a traveacutes de mensajes asiacutencronos es decir el agente que enviacutea el mensaje y el destinatario del mensaje no tienen porqueacute estar disponibles al mismo tiempo Es maacutes el destinatario no tiene porqueacute existir en ese instante Los mensajes se pueden enviar a un agente en concreto o se pueden enviar a agentes que se desconocen pero se sabe que poseen unas ciertas caracteriacutesticas JADE proporciona mecanismos de seguridad ya que habraacute agentes a los que no se les esteacute permitido comunicarse con otros agentes de manera que una aplicacioacuten puede verificar la identidad del receptor y del agente que enviacutea el mensaje y no dejar realizar actuaciones no permitidas para un determinado agente La estructura de los mensajes se basa en el lenguaje ACL (Agent Communication Lenguaje) que ha sido definido por la FIPA JADE facilita mecanismos para el desarrollo de los objetivos que deben alcanzar los agentes Los comportamientos (behaviours) y la comunicacioacuten entre los agentes (junto con el servicio de paacuteginas amarillas) proporcionan los recursos necesarios para programar un sistema multiagente JADE tambieacuten permite a los agentes cambiar de Host (en J2SE) Un agente puede interrumpir en un momento dado su ejecucioacuten migrar a otro host (sin necesidad de que el coacutedigo esteacute previamente en el host destino) y continuar la ejecucioacuten en el mismo punto en el que la interrumpioacute Esto permite un balanceo de carga ya que permite a los agentes migrar hosts menos cargados El entorno de ejecucioacuten proporciona un marco donde poder ejecutar los agentes y herramientas graacuteficas para su monitorizacioacuten y depuracioacuten Los agentes JADE necesitan del entorno de ejecucioacuten donde poder vivir Cada instancia del entorno de ejecucioacuten se denomina contenedor (container) Al conjunto de los contenedores se le denomina plataforma (platform) y proporciona una capa que oculta a los agentes (y al desarrollador) el entorno donde se ha decidido ejecutar la aplicacioacuten En cada plataforma debe existir un contenedor especial denominado contenedor principal (main container) La principal diferencia del contenedor principal respecto al resto de contenedores es que alberga dos agentes especiales

AMS (Agent Management System) Este agente proporciona el servicio de nombres asegurando que cada agente en la plataforma disponga de un nombre uacutenico Tambieacuten representa la autoridad es posible crear y matar agentes en contenedores remotos requeriendoselo al agente AMS

DF (Directory Facilitator) Proporciona el servicio de Paacuteginas Amarillas Gracias al agente DF un agente puede encontrar otros agentes que provean los servicios necesarios para lograr sus objetivos

28

La caracteriacutestica mas importante del entorno de ejecucioacuten es la interfaz graacutefica que proporciona desde la que podemos controlar y depurar los agentes existentes Todas las herramientas han sido desarrolladas como agentes y siguen sus mismas reglas Disentildeo Arquitectura

Agente usuario

Agente de ontologiacutea

Agente de filtrado

Agente de recuperacioacuten

BD

OntologiacuteaSistema

Motor de buacutesqueda

El sistema esta disentildeado para que un usuario realice alguna buacutesqueda relacionada con alguno de los tres temas propuestos en nuestra base de conocimiento que son Ingenieriacutea de Software Base de Datos y Deportes El sistema esta basado en una arquitectura multiagente la cual se conforma por Agente Usuario Actuacutea de intermediario entre el usuario y el sistema Sus servicios son solicitados por el usuario para resolver las consultas El usuario le suministra una consulta y el sistema le devuelve una lista de documentos que pueden satisfacer sus necesidades Este agente tiene la capacidad de acceder a la base de datos con el objetivo de almacenar yo recuperar resultados Base de Datos Guardaraacute las ultimas buacutesquedas realizadas para su posterior consulta a peticioacuten del usuario Agente de Filtrado Gestiona la recuperacioacuten de documentos y realiza el filtrado de los mismos proporcionados por el Agente de Recuperacioacuten Recibe la peticioacuten del Agente Usuario y a su vez esta es enviada al Agente Ontologiacutea para que este regrese una evaluacioacuten de la consulta y de esta forma conocer si es necesaria una redefinicioacuten de la consulta En caso de ser necesaria se espera recibir el nuevo vector de consulta hasta que se cumpla una de dos opciones el usuario deje de redefinir la consulta o la consulta sea concreta Cuando la consulta sea concreta es enviada de nueva cuenta al Agente Ontologiacutea el cual regresaraacute el Nuevo Vector Expandido Este seraacute enviado al Agente de Recuperacioacuten Cuando el Agente de Recuperacioacuten regrese los urlacutes de los resultados (con sus respectivos vectores de teacuterminos) se realiza una evaluacioacuten de los vectores de cada documento con respecto al vector de buacutesqueda expandida con el objetivo de asignarles una calificacioacuten Gracias a esta calificacioacuten podemos obtener aquellos documentos que mejor cumplan con las expectativas del usuario (Estos documentos son regresados al Agente Usuario) Agente Ontologiacutea Recibe el vector de consulta proporcionado por el Agente de Filtrado La informacioacuten contenida en el vector de consulta es comparada con la existente en nuestra ontologiacutea Una vez verificada la existencia de la informacioacuten del

29

vector consulta dentro de la ontologiacutea este se encarga de devolver la distancia y el umbral al Agente de Filtrado Se espera que este devuelva una peticioacuten para expandir ese mismo vector Puede darse el caso de obtener dos tipos de buacutesquedas una general y otra mucho maacutes definida En cualquiera de los caso obtenemos un nuevo vector de buacutesqueda (con una informacioacuten mejor definida este es el Vector de Buacutesqueda Expandido) que es enviado de regreso al Agente de Filtrado el cual genera una copia y le es enviada al Agente de Recuperacioacuten Ontologiacutea Representa nuestra base de conocimientos Esta compuesta por tres aacutereas de conocimiento las cuales son Ingenieriacutea se Software Bases de Datos y Deportes Para poder representar esta ontologiacutea en un lenguaje entendible para agentes inteligentes se programaraacute bajo los fundamentos de las estructuras RDF contenidas en las especificaciones de XML y siguiendo los estaacutendares de la W3C Agente Recuperacioacuten Realiza la buacutesqueda gracias a la informacioacuten que le es entregada por el Agente de Filtrado (se trata Vector de Buacutesqueda Expandido generado por el Agente de Ontologiacutea) El agente estructura esta informacioacuten y se introduce en un motor de buacutesqueda(diacutegase por ejemplo Google) de tal manera que obtengamos una lista de posibles documentos A cada documento se le asigna un vector de teacuterminos con sus pesos derivados de un anaacutelisis TFIDF para despueacutes regresar las urlacutes con su respectivo vector de teacuterminos al Agente Filtrado RESULTADOS Este proyecto tiene la finalidad de desarrollar el software para un antivirus y un traductor Pero durante los estudios de anaacutelisis de estos dos productos se encontroacute que el software para la buacutesqueda de la informacioacuten tambieacuten puede ser implementada por medio de teacutecnicas de Inteligencia Artificial Para construir el software de aplicacioacuten para estas necesidades se usa la metodologiacutea de cascada Donde los pasos a seguir son el Anaacutelisis Disentildeo Pruebas Implementacioacuten y Mantenimiento Hasta este momento estamos en la etapa de pruebas de algunos moacutedulos de los tres productos IMPACTO El detector de intrusos en una red es de mucha importancia debido a que en la actualidad se han diseminado muchos virus que pueden ser transmitidos a traveacutes de intrusos Hasta la fecha el meacutetodo de proteccioacuten se hace de forma manual La finalidad de este software es automatizar la proteccioacuten El traductor de texto a voz tiene como primera aplicacioacuten el auxilio en la lectura de documentos para las personas invidentes o deacutebiles visuales una segunda aplicacioacuten es la comunicacioacuten con la computadora por medio del lenguaje natura El buscador de informacioacuten es un auxilio en la buacutesqueda de datos en una base de datos de conocimiento Ya que tambieacuten estaacuten proliferando las bibliotecas virtuales es una ayuda en la localizacioacuten de informacioacuten cientiacutefica y un preaacutembulo para un software de apoyo docente BIBLIOGRAFIacuteA [1] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

30

[2] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps[3] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[4] w3c en espantildeol OWL y Web Semaacutentica httpwwww3cesDivulgacionGuiasbrevesWebSemantica

[5] Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

[6] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[7] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[8] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[9] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[10] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[11] Laboratorios Googlehttplabsgooglecompapershtml

[12] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[13] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

[14] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

[15] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps [16] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[18] Trabajos de Agente en JADE http Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

31

[19] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[20] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[21] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[22] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[23] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[24] Laboratorios Googlehttplabsgooglecompapershtml

[25] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[26] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

  • En este reporte teacutecnico se presenta la descripcioacuten general anaacutelisis y estado actual de de los trabajos terminales TT2006135 TT20060097 y TT20060068 que tienen por titulo ldquoSistema prototipo de deteccioacuten de intrusos en la red utilizando agentes inteligentesrdquo rdquoProcesamiento digital de imaacutegenes para la conversioacuten de texto a vozrdquo y ldquoSistema de buacutesqueda de informacioacuten por conceptos en la webrdquo respectivamente Los prototipos que se obtendraacuten seraacuten un software robusto que se desarrollaraacuten con teacutecnicas de inteligencia artificial como Agentes inteligentes y Redes neuronales
  • Estructura de un sistema neuronal artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
    • Estado Del Arte
      • Estructura de un sistema neuronal artificial
        • Sistemas paralelos distribuidos y adaptativos
          • Modelo estaacutendar de neurona artificial
            • Sigmoidal logariacutetmica
              • Empleo del perceptroacuten para reconocer funciones loacutegicas
              • Algoritmo de aprendizaje del perceptroacuten
                • Objetivo General
                • Estado Del Arte
                • A continuacioacuten se mencionan algunos de ellos
                  • Buscador muacuteltiple Copernic 2001 Pro
                  • Lets Browse
                  • Agentes de Informacioacuten
                    • Marco Conceptual
                      • Clases y Propiedades
                      • El sistema de escritura de datos [type system]
                      • Clases y Recursos como Conjuntos y Elementos
                        • Ontologiacuteas en la Representacioacuten del Conocimiento
                          • LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES
                          • JADE (Java Agent DEvelopment Framework)
                            • Disentildeo
                            • Arquitectura
Page 24: INSTITUTO POLITÉCNICO NACIONALsappi.ipn.mx/cgpi/archivos_anexo/20061387_3286.pdf · La comunicación del hombre con la computadora por medio del lenguaje natural, es la finalidad

24

El sistema de escritura de datos [type system] El Esquema RDF definido en esta especificacioacuten es una coleccioacuten de recursos RDF que puede utilizarse para describir propiedades de otros recursos RDF (incluyendo propiedades) que definene vocabularios RDF de aplicacioacuten especiacutefica El nuacutecleo del vocabulario del esquema se define en un namespace denominado aquiacute informalmente rdfs e identificado por el URI de referencia httpwwww3org200001rdf-schema Esta especificacioacuten utiliza tambieacuten el prefijo rdf para referirse al namespace principal RDF httpwwww3org19990222-rdf-syntax-ns

Como se describe en la especificacioacuten del modelo y la sintaxis [RDFMS] los recursos pueden ser objetos especiacuteficos de una categoriacutea [instances] de una o maacutes clases esto se indica con la propiedad rdftype Las clases se organizan muchas veces de una forma jeraacuterquica por ejemplo la clase Dog [perro] podriacutea considerarse subclase de Mammal [mamiacutefero] que a su vez es una subclase de Animal dando a entender que cualquier recurso que esteacute en rdftype Dog se considera tambieacuten que estaacute en rdftype AnimalEsta especificacioacuten describe una propiedad rdfssubClassOf para indicar dichas relaciones entre clases

El sistema de escritura [type system] del Esquema RDF es similar al sistema de los lenguajes de programacioacuten orientados a objetos tales como Java Sin embargo RDF se diferencia de muchos de esos sistemas en que en lugar de definir una clase en teacuterminos de propiedades sus objetos especiacuteficos de una categoriacutea [instances] pueden tener un esquema RDF que definiraacute las propiedades en teacuterminos de clases de recurso a los que se aplican Este es el papel de las restricciones rdfsdomain y de rdfsrange

Por ejemplo podemos definir que la propiedad author tenga un dominio de Book y un alcance de Literal mientras que un sistema OO claacutesico podriacutea definir tiacutepicamente una clase Book con un atributo denominado author de tipo Literal

Clases y Recursos como Conjuntos y Elementos El siguiente esquema ilustra el concepto de clase subclase y recurso Una clase se describe por un rectaacutengulo redondeado un recurso se describe por un punto grande En la figura abajo se han dibujado flechas desde un recurso a una clase que define Una subclase se presenta en un rectaacutengulo redondeado (la subclase) completamente incluido en otro (la superclase) Si un recurso estaacute dentro de una clase entonces existe una propiedad rdftype o expliacutecita o impliacutecita de aquel recurso cuyo valor es un recurso que define la clase que contiene (Estas propiedades se muestran como arcos en la representacioacuten graacutefica directamente etiquetada en el Esquema 2) El recurso RDF representado en el esquema 1 se describe tanto en el resto de esta especificacioacuten como en la especificacioacuten del Modelo y Sintaxis RDF

Ontologiacuteas en la Representacioacuten del Conocimiento En estos uacuteltimos antildeos se incrementoacute la cantidad de informacioacuten en la Internet lo cual motivoacute el incremento de la complejidad y la diversidad de la informacioacuten Esto tambieacuten motivoacute el intereacutes de automatizar muchas actividades que tradicionalmente se realizan en forma manual La principal motivacioacuten en el uso de las ontologiacuteas es que permiten compartir y reutilizar conocimiento en un dominio De ahiacute el intereacutes de muchos

25

investigadores en el aacuterea de inteligencia artificial para tratar de aplicar las ontologiacuteas en la representacioacuten de conocimiento Las ontologiacuteas son un elemento importante en la Web Semaacutentica y es un teacutermino filosoacutefico que trata sobre la naturaleza de la existencia y los tipos de objetos que existen Tambieacuten la ontologiacutea se puede definir como una especificacioacuten expliacutecita de una conceptualizacioacuten compartida La conceptualizacioacuten se refiere a un modelo abstracto de un fenoacutemeno en el mundo en donde se tienen que identificar los conceptos relevantes de este fenoacutemeno El teacutermino expliacutecito significa queacute tipos de conceptos son usados y las restricciones de estos conceptos Y por uacuteltimo el teacutermino compartido se refiere a que las ontologiacuteas capturan conocimiento que es aceptado por todos y no es individual de un grupo Actualmente se les estaacute dando maacutes uso a las ontologiacuteas en el campo de la Inteligencia Artificial En este campo se define la ontologiacutea como una descripcioacuten formal y expliacutecita de conceptos de un dominio (classes a las que nos referiremos como conceptos) propiedades de cada concepto las cuales describen las caracteriacutesticas y atributos de los conceptos (slots llamados tambieacuten como propiedades o roles) y restricciones de las propiedades (facets conocidas como restricciones) La informacioacuten que es representada a traveacutes de los lenguajes semaacutenticos puede ser compartida entre aplicaciones como los agentes

OWL y Web Semaacutentica

La Web Semaacutentica es una Web extendida dotada de mayor significado en la que cualquier usuario en Internet podraacute encontrar respuestas a sus preguntas de forma maacutes raacutepida y sencilla gracias a una informacioacuten mejor definida Al dotar a la Web de maacutes significado y por lo tanto de maacutes semaacutentica se pueden obtener soluciones a problemas habituales en la buacutesqueda de informacioacuten gracias a la utilizacioacuten de una infraestructura comuacuten mediante la cual es posible compartir procesar y transferir informacioacuten de forma sencilla Esta Web extendida y basada en el significado se apoya en lenguajes universales que resuelven los problemas ocasionados por una Web carente de semaacutentica en la que en ocasiones el acceso a la informacioacuten se convierte en una tarea difiacutecil y frustrante

LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES La comunicacioacuten es uno de los aspectos importantes dentro de una comunidad de agentes la cual permitiraacute compartir y enviar mensajes entre agentes Los meacutetodos tradicionales permiten la comunicacioacuten entre los agentes pero eacutestos no son suficientes para lograr un comportamiento social entre los agentes para ello es necesario que los mensajes tengan un significado y contenido semaacutentico Se han desarrollado varios lenguajes los cuales son usados para el enviacuteo de mensajes a continuacioacuten hablaremos de dos de ellos KQML Knowledge Query and Manipulation Language (KQML) es uno de los lenguajes que nos provee la estructura para enviar mensajes entre agentes Dentro de sus principales caracteriacutesticas tenemos que es independiente de la sintaxis del contenido y la ontologiacutea

26

que se utilizaraacute Asiacute mismo es independiente del mecanismo de transporte (TCPIP SMTP IIOP etc) e independiente del contenido del lenguaje (KIF SQL STEP Prolog etc) KQML fue desarrollado por el consorcio DARPA Knowledge Sharing Effort (KSE) cuyo principal objetivo fue desarrollar una base tecnoloacutegica para construir en forma progresiva sistemas cada vez con maacutes funcionalidad complejidad y amplitud KQML provee un lenguaje y un protocolo para intercambiar informacioacuten entre agentes inteligentes y para lograr este intercambio se tiene que compartir una sintaxis y una semaacutentica comuacuten para que los mensajes sean entendidos por los agentes Al lenguaje KQML se le dividioacute en tres capas la capa de contenido alberga el contenido del mensaje que es especificado en cualquier formato ya sea texto o binario La capa de comunicacioacuten contiene paraacutemetros como el identificador uacutenico asociado a la comunicacioacuten identidad del remitente e identidad del destinatario La capa de mensaje define tanto los diferentes tipos de interaccioacuten que se pueden establecer entre los agentes como los protocolos que se pueden establecer entre los agentes Tambieacuten incluye otras caracteriacutesticas como el lenguaje de representacioacuten o la ontologiacutea siendo ambos opcionales

JADE (Java Agent DEvelopment Framework)

JADEiv (Java Agent DEvelopment Framework) es un middleware que proporciona tanto un entorno de desarrollo como un entorno de ejecucioacuten para la realizacioacuten y mantenimiento de sistemas multiagente El entorno de desarrollo estaacute formado por una serie de libreriacuteas en Java que permiten la implementacioacuten de agentes de manera limpia e independiente de la plataforma sobre la que se va a ejecutar El entorno de ejecucioacuten permite a los agentes vivir y comunicarse entre ellos Estaacute realizado enteramente en Java y proporciona una serie de herramientas que permiten al desarrollador controlar y depurar a los agentes en tiempo real JADE es un middleware desarrollado por TILAB para el desarrollo de aplicaciones distribuidas multiagente JADE proporciona tanto el entorno de desarrollo para la creacioacuten de aplicaciones basadas en agentes como el entorno de ejecucioacuten JADE presenta las siguientes caracteriacutesticas

P2P Arquitectura peer-to-peer cada agente puede tomar la iniciativa en una comunicacioacuten o bien responder a peticiones que le hagan otros agentes

Interoperabilidad JADE cumple con las especificaciones FIPA por lo que los agentes desarrollados en JADE pueden interactuar con otros agentes que no tienen porque estar desarrollados con JADE aunque si deben seguir las especificaciones FIPA

Portabilidad La API que proporciona JADE es independientemente de la red sobre la que va a operar asiacute como de la versioacuten de Java utilizada teniendo la misma API para J2EE J2SE y J2ME

27

Intuitiva JADE se ha desarrollado para ofrecer una API faacutecil de aprender y sencilla de manejar

Los agentes JADE tienen nombres uacutenicos y se permite a cada agente descubrir a otros agentes y comunicarse con ellos mediante comunicaciones punto a punto Los agentes proporcionan servicios cada agente puede buscar a otros dependiendo de los servicios que proporcionen otros agentes La comunicacioacuten entre agentes se lleva a cabo a traveacutes de mensajes asiacutencronos es decir el agente que enviacutea el mensaje y el destinatario del mensaje no tienen porqueacute estar disponibles al mismo tiempo Es maacutes el destinatario no tiene porqueacute existir en ese instante Los mensajes se pueden enviar a un agente en concreto o se pueden enviar a agentes que se desconocen pero se sabe que poseen unas ciertas caracteriacutesticas JADE proporciona mecanismos de seguridad ya que habraacute agentes a los que no se les esteacute permitido comunicarse con otros agentes de manera que una aplicacioacuten puede verificar la identidad del receptor y del agente que enviacutea el mensaje y no dejar realizar actuaciones no permitidas para un determinado agente La estructura de los mensajes se basa en el lenguaje ACL (Agent Communication Lenguaje) que ha sido definido por la FIPA JADE facilita mecanismos para el desarrollo de los objetivos que deben alcanzar los agentes Los comportamientos (behaviours) y la comunicacioacuten entre los agentes (junto con el servicio de paacuteginas amarillas) proporcionan los recursos necesarios para programar un sistema multiagente JADE tambieacuten permite a los agentes cambiar de Host (en J2SE) Un agente puede interrumpir en un momento dado su ejecucioacuten migrar a otro host (sin necesidad de que el coacutedigo esteacute previamente en el host destino) y continuar la ejecucioacuten en el mismo punto en el que la interrumpioacute Esto permite un balanceo de carga ya que permite a los agentes migrar hosts menos cargados El entorno de ejecucioacuten proporciona un marco donde poder ejecutar los agentes y herramientas graacuteficas para su monitorizacioacuten y depuracioacuten Los agentes JADE necesitan del entorno de ejecucioacuten donde poder vivir Cada instancia del entorno de ejecucioacuten se denomina contenedor (container) Al conjunto de los contenedores se le denomina plataforma (platform) y proporciona una capa que oculta a los agentes (y al desarrollador) el entorno donde se ha decidido ejecutar la aplicacioacuten En cada plataforma debe existir un contenedor especial denominado contenedor principal (main container) La principal diferencia del contenedor principal respecto al resto de contenedores es que alberga dos agentes especiales

AMS (Agent Management System) Este agente proporciona el servicio de nombres asegurando que cada agente en la plataforma disponga de un nombre uacutenico Tambieacuten representa la autoridad es posible crear y matar agentes en contenedores remotos requeriendoselo al agente AMS

DF (Directory Facilitator) Proporciona el servicio de Paacuteginas Amarillas Gracias al agente DF un agente puede encontrar otros agentes que provean los servicios necesarios para lograr sus objetivos

28

La caracteriacutestica mas importante del entorno de ejecucioacuten es la interfaz graacutefica que proporciona desde la que podemos controlar y depurar los agentes existentes Todas las herramientas han sido desarrolladas como agentes y siguen sus mismas reglas Disentildeo Arquitectura

Agente usuario

Agente de ontologiacutea

Agente de filtrado

Agente de recuperacioacuten

BD

OntologiacuteaSistema

Motor de buacutesqueda

El sistema esta disentildeado para que un usuario realice alguna buacutesqueda relacionada con alguno de los tres temas propuestos en nuestra base de conocimiento que son Ingenieriacutea de Software Base de Datos y Deportes El sistema esta basado en una arquitectura multiagente la cual se conforma por Agente Usuario Actuacutea de intermediario entre el usuario y el sistema Sus servicios son solicitados por el usuario para resolver las consultas El usuario le suministra una consulta y el sistema le devuelve una lista de documentos que pueden satisfacer sus necesidades Este agente tiene la capacidad de acceder a la base de datos con el objetivo de almacenar yo recuperar resultados Base de Datos Guardaraacute las ultimas buacutesquedas realizadas para su posterior consulta a peticioacuten del usuario Agente de Filtrado Gestiona la recuperacioacuten de documentos y realiza el filtrado de los mismos proporcionados por el Agente de Recuperacioacuten Recibe la peticioacuten del Agente Usuario y a su vez esta es enviada al Agente Ontologiacutea para que este regrese una evaluacioacuten de la consulta y de esta forma conocer si es necesaria una redefinicioacuten de la consulta En caso de ser necesaria se espera recibir el nuevo vector de consulta hasta que se cumpla una de dos opciones el usuario deje de redefinir la consulta o la consulta sea concreta Cuando la consulta sea concreta es enviada de nueva cuenta al Agente Ontologiacutea el cual regresaraacute el Nuevo Vector Expandido Este seraacute enviado al Agente de Recuperacioacuten Cuando el Agente de Recuperacioacuten regrese los urlacutes de los resultados (con sus respectivos vectores de teacuterminos) se realiza una evaluacioacuten de los vectores de cada documento con respecto al vector de buacutesqueda expandida con el objetivo de asignarles una calificacioacuten Gracias a esta calificacioacuten podemos obtener aquellos documentos que mejor cumplan con las expectativas del usuario (Estos documentos son regresados al Agente Usuario) Agente Ontologiacutea Recibe el vector de consulta proporcionado por el Agente de Filtrado La informacioacuten contenida en el vector de consulta es comparada con la existente en nuestra ontologiacutea Una vez verificada la existencia de la informacioacuten del

29

vector consulta dentro de la ontologiacutea este se encarga de devolver la distancia y el umbral al Agente de Filtrado Se espera que este devuelva una peticioacuten para expandir ese mismo vector Puede darse el caso de obtener dos tipos de buacutesquedas una general y otra mucho maacutes definida En cualquiera de los caso obtenemos un nuevo vector de buacutesqueda (con una informacioacuten mejor definida este es el Vector de Buacutesqueda Expandido) que es enviado de regreso al Agente de Filtrado el cual genera una copia y le es enviada al Agente de Recuperacioacuten Ontologiacutea Representa nuestra base de conocimientos Esta compuesta por tres aacutereas de conocimiento las cuales son Ingenieriacutea se Software Bases de Datos y Deportes Para poder representar esta ontologiacutea en un lenguaje entendible para agentes inteligentes se programaraacute bajo los fundamentos de las estructuras RDF contenidas en las especificaciones de XML y siguiendo los estaacutendares de la W3C Agente Recuperacioacuten Realiza la buacutesqueda gracias a la informacioacuten que le es entregada por el Agente de Filtrado (se trata Vector de Buacutesqueda Expandido generado por el Agente de Ontologiacutea) El agente estructura esta informacioacuten y se introduce en un motor de buacutesqueda(diacutegase por ejemplo Google) de tal manera que obtengamos una lista de posibles documentos A cada documento se le asigna un vector de teacuterminos con sus pesos derivados de un anaacutelisis TFIDF para despueacutes regresar las urlacutes con su respectivo vector de teacuterminos al Agente Filtrado RESULTADOS Este proyecto tiene la finalidad de desarrollar el software para un antivirus y un traductor Pero durante los estudios de anaacutelisis de estos dos productos se encontroacute que el software para la buacutesqueda de la informacioacuten tambieacuten puede ser implementada por medio de teacutecnicas de Inteligencia Artificial Para construir el software de aplicacioacuten para estas necesidades se usa la metodologiacutea de cascada Donde los pasos a seguir son el Anaacutelisis Disentildeo Pruebas Implementacioacuten y Mantenimiento Hasta este momento estamos en la etapa de pruebas de algunos moacutedulos de los tres productos IMPACTO El detector de intrusos en una red es de mucha importancia debido a que en la actualidad se han diseminado muchos virus que pueden ser transmitidos a traveacutes de intrusos Hasta la fecha el meacutetodo de proteccioacuten se hace de forma manual La finalidad de este software es automatizar la proteccioacuten El traductor de texto a voz tiene como primera aplicacioacuten el auxilio en la lectura de documentos para las personas invidentes o deacutebiles visuales una segunda aplicacioacuten es la comunicacioacuten con la computadora por medio del lenguaje natura El buscador de informacioacuten es un auxilio en la buacutesqueda de datos en una base de datos de conocimiento Ya que tambieacuten estaacuten proliferando las bibliotecas virtuales es una ayuda en la localizacioacuten de informacioacuten cientiacutefica y un preaacutembulo para un software de apoyo docente BIBLIOGRAFIacuteA [1] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

30

[2] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps[3] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[4] w3c en espantildeol OWL y Web Semaacutentica httpwwww3cesDivulgacionGuiasbrevesWebSemantica

[5] Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

[6] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[7] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[8] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[9] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[10] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[11] Laboratorios Googlehttplabsgooglecompapershtml

[12] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[13] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

[14] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

[15] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps [16] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[18] Trabajos de Agente en JADE http Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

31

[19] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[20] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[21] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[22] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[23] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[24] Laboratorios Googlehttplabsgooglecompapershtml

[25] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[26] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

  • En este reporte teacutecnico se presenta la descripcioacuten general anaacutelisis y estado actual de de los trabajos terminales TT2006135 TT20060097 y TT20060068 que tienen por titulo ldquoSistema prototipo de deteccioacuten de intrusos en la red utilizando agentes inteligentesrdquo rdquoProcesamiento digital de imaacutegenes para la conversioacuten de texto a vozrdquo y ldquoSistema de buacutesqueda de informacioacuten por conceptos en la webrdquo respectivamente Los prototipos que se obtendraacuten seraacuten un software robusto que se desarrollaraacuten con teacutecnicas de inteligencia artificial como Agentes inteligentes y Redes neuronales
  • Estructura de un sistema neuronal artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
    • Estado Del Arte
      • Estructura de un sistema neuronal artificial
        • Sistemas paralelos distribuidos y adaptativos
          • Modelo estaacutendar de neurona artificial
            • Sigmoidal logariacutetmica
              • Empleo del perceptroacuten para reconocer funciones loacutegicas
              • Algoritmo de aprendizaje del perceptroacuten
                • Objetivo General
                • Estado Del Arte
                • A continuacioacuten se mencionan algunos de ellos
                  • Buscador muacuteltiple Copernic 2001 Pro
                  • Lets Browse
                  • Agentes de Informacioacuten
                    • Marco Conceptual
                      • Clases y Propiedades
                      • El sistema de escritura de datos [type system]
                      • Clases y Recursos como Conjuntos y Elementos
                        • Ontologiacuteas en la Representacioacuten del Conocimiento
                          • LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES
                          • JADE (Java Agent DEvelopment Framework)
                            • Disentildeo
                            • Arquitectura
Page 25: INSTITUTO POLITÉCNICO NACIONALsappi.ipn.mx/cgpi/archivos_anexo/20061387_3286.pdf · La comunicación del hombre con la computadora por medio del lenguaje natural, es la finalidad

25

investigadores en el aacuterea de inteligencia artificial para tratar de aplicar las ontologiacuteas en la representacioacuten de conocimiento Las ontologiacuteas son un elemento importante en la Web Semaacutentica y es un teacutermino filosoacutefico que trata sobre la naturaleza de la existencia y los tipos de objetos que existen Tambieacuten la ontologiacutea se puede definir como una especificacioacuten expliacutecita de una conceptualizacioacuten compartida La conceptualizacioacuten se refiere a un modelo abstracto de un fenoacutemeno en el mundo en donde se tienen que identificar los conceptos relevantes de este fenoacutemeno El teacutermino expliacutecito significa queacute tipos de conceptos son usados y las restricciones de estos conceptos Y por uacuteltimo el teacutermino compartido se refiere a que las ontologiacuteas capturan conocimiento que es aceptado por todos y no es individual de un grupo Actualmente se les estaacute dando maacutes uso a las ontologiacuteas en el campo de la Inteligencia Artificial En este campo se define la ontologiacutea como una descripcioacuten formal y expliacutecita de conceptos de un dominio (classes a las que nos referiremos como conceptos) propiedades de cada concepto las cuales describen las caracteriacutesticas y atributos de los conceptos (slots llamados tambieacuten como propiedades o roles) y restricciones de las propiedades (facets conocidas como restricciones) La informacioacuten que es representada a traveacutes de los lenguajes semaacutenticos puede ser compartida entre aplicaciones como los agentes

OWL y Web Semaacutentica

La Web Semaacutentica es una Web extendida dotada de mayor significado en la que cualquier usuario en Internet podraacute encontrar respuestas a sus preguntas de forma maacutes raacutepida y sencilla gracias a una informacioacuten mejor definida Al dotar a la Web de maacutes significado y por lo tanto de maacutes semaacutentica se pueden obtener soluciones a problemas habituales en la buacutesqueda de informacioacuten gracias a la utilizacioacuten de una infraestructura comuacuten mediante la cual es posible compartir procesar y transferir informacioacuten de forma sencilla Esta Web extendida y basada en el significado se apoya en lenguajes universales que resuelven los problemas ocasionados por una Web carente de semaacutentica en la que en ocasiones el acceso a la informacioacuten se convierte en una tarea difiacutecil y frustrante

LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES La comunicacioacuten es uno de los aspectos importantes dentro de una comunidad de agentes la cual permitiraacute compartir y enviar mensajes entre agentes Los meacutetodos tradicionales permiten la comunicacioacuten entre los agentes pero eacutestos no son suficientes para lograr un comportamiento social entre los agentes para ello es necesario que los mensajes tengan un significado y contenido semaacutentico Se han desarrollado varios lenguajes los cuales son usados para el enviacuteo de mensajes a continuacioacuten hablaremos de dos de ellos KQML Knowledge Query and Manipulation Language (KQML) es uno de los lenguajes que nos provee la estructura para enviar mensajes entre agentes Dentro de sus principales caracteriacutesticas tenemos que es independiente de la sintaxis del contenido y la ontologiacutea

26

que se utilizaraacute Asiacute mismo es independiente del mecanismo de transporte (TCPIP SMTP IIOP etc) e independiente del contenido del lenguaje (KIF SQL STEP Prolog etc) KQML fue desarrollado por el consorcio DARPA Knowledge Sharing Effort (KSE) cuyo principal objetivo fue desarrollar una base tecnoloacutegica para construir en forma progresiva sistemas cada vez con maacutes funcionalidad complejidad y amplitud KQML provee un lenguaje y un protocolo para intercambiar informacioacuten entre agentes inteligentes y para lograr este intercambio se tiene que compartir una sintaxis y una semaacutentica comuacuten para que los mensajes sean entendidos por los agentes Al lenguaje KQML se le dividioacute en tres capas la capa de contenido alberga el contenido del mensaje que es especificado en cualquier formato ya sea texto o binario La capa de comunicacioacuten contiene paraacutemetros como el identificador uacutenico asociado a la comunicacioacuten identidad del remitente e identidad del destinatario La capa de mensaje define tanto los diferentes tipos de interaccioacuten que se pueden establecer entre los agentes como los protocolos que se pueden establecer entre los agentes Tambieacuten incluye otras caracteriacutesticas como el lenguaje de representacioacuten o la ontologiacutea siendo ambos opcionales

JADE (Java Agent DEvelopment Framework)

JADEiv (Java Agent DEvelopment Framework) es un middleware que proporciona tanto un entorno de desarrollo como un entorno de ejecucioacuten para la realizacioacuten y mantenimiento de sistemas multiagente El entorno de desarrollo estaacute formado por una serie de libreriacuteas en Java que permiten la implementacioacuten de agentes de manera limpia e independiente de la plataforma sobre la que se va a ejecutar El entorno de ejecucioacuten permite a los agentes vivir y comunicarse entre ellos Estaacute realizado enteramente en Java y proporciona una serie de herramientas que permiten al desarrollador controlar y depurar a los agentes en tiempo real JADE es un middleware desarrollado por TILAB para el desarrollo de aplicaciones distribuidas multiagente JADE proporciona tanto el entorno de desarrollo para la creacioacuten de aplicaciones basadas en agentes como el entorno de ejecucioacuten JADE presenta las siguientes caracteriacutesticas

P2P Arquitectura peer-to-peer cada agente puede tomar la iniciativa en una comunicacioacuten o bien responder a peticiones que le hagan otros agentes

Interoperabilidad JADE cumple con las especificaciones FIPA por lo que los agentes desarrollados en JADE pueden interactuar con otros agentes que no tienen porque estar desarrollados con JADE aunque si deben seguir las especificaciones FIPA

Portabilidad La API que proporciona JADE es independientemente de la red sobre la que va a operar asiacute como de la versioacuten de Java utilizada teniendo la misma API para J2EE J2SE y J2ME

27

Intuitiva JADE se ha desarrollado para ofrecer una API faacutecil de aprender y sencilla de manejar

Los agentes JADE tienen nombres uacutenicos y se permite a cada agente descubrir a otros agentes y comunicarse con ellos mediante comunicaciones punto a punto Los agentes proporcionan servicios cada agente puede buscar a otros dependiendo de los servicios que proporcionen otros agentes La comunicacioacuten entre agentes se lleva a cabo a traveacutes de mensajes asiacutencronos es decir el agente que enviacutea el mensaje y el destinatario del mensaje no tienen porqueacute estar disponibles al mismo tiempo Es maacutes el destinatario no tiene porqueacute existir en ese instante Los mensajes se pueden enviar a un agente en concreto o se pueden enviar a agentes que se desconocen pero se sabe que poseen unas ciertas caracteriacutesticas JADE proporciona mecanismos de seguridad ya que habraacute agentes a los que no se les esteacute permitido comunicarse con otros agentes de manera que una aplicacioacuten puede verificar la identidad del receptor y del agente que enviacutea el mensaje y no dejar realizar actuaciones no permitidas para un determinado agente La estructura de los mensajes se basa en el lenguaje ACL (Agent Communication Lenguaje) que ha sido definido por la FIPA JADE facilita mecanismos para el desarrollo de los objetivos que deben alcanzar los agentes Los comportamientos (behaviours) y la comunicacioacuten entre los agentes (junto con el servicio de paacuteginas amarillas) proporcionan los recursos necesarios para programar un sistema multiagente JADE tambieacuten permite a los agentes cambiar de Host (en J2SE) Un agente puede interrumpir en un momento dado su ejecucioacuten migrar a otro host (sin necesidad de que el coacutedigo esteacute previamente en el host destino) y continuar la ejecucioacuten en el mismo punto en el que la interrumpioacute Esto permite un balanceo de carga ya que permite a los agentes migrar hosts menos cargados El entorno de ejecucioacuten proporciona un marco donde poder ejecutar los agentes y herramientas graacuteficas para su monitorizacioacuten y depuracioacuten Los agentes JADE necesitan del entorno de ejecucioacuten donde poder vivir Cada instancia del entorno de ejecucioacuten se denomina contenedor (container) Al conjunto de los contenedores se le denomina plataforma (platform) y proporciona una capa que oculta a los agentes (y al desarrollador) el entorno donde se ha decidido ejecutar la aplicacioacuten En cada plataforma debe existir un contenedor especial denominado contenedor principal (main container) La principal diferencia del contenedor principal respecto al resto de contenedores es que alberga dos agentes especiales

AMS (Agent Management System) Este agente proporciona el servicio de nombres asegurando que cada agente en la plataforma disponga de un nombre uacutenico Tambieacuten representa la autoridad es posible crear y matar agentes en contenedores remotos requeriendoselo al agente AMS

DF (Directory Facilitator) Proporciona el servicio de Paacuteginas Amarillas Gracias al agente DF un agente puede encontrar otros agentes que provean los servicios necesarios para lograr sus objetivos

28

La caracteriacutestica mas importante del entorno de ejecucioacuten es la interfaz graacutefica que proporciona desde la que podemos controlar y depurar los agentes existentes Todas las herramientas han sido desarrolladas como agentes y siguen sus mismas reglas Disentildeo Arquitectura

Agente usuario

Agente de ontologiacutea

Agente de filtrado

Agente de recuperacioacuten

BD

OntologiacuteaSistema

Motor de buacutesqueda

El sistema esta disentildeado para que un usuario realice alguna buacutesqueda relacionada con alguno de los tres temas propuestos en nuestra base de conocimiento que son Ingenieriacutea de Software Base de Datos y Deportes El sistema esta basado en una arquitectura multiagente la cual se conforma por Agente Usuario Actuacutea de intermediario entre el usuario y el sistema Sus servicios son solicitados por el usuario para resolver las consultas El usuario le suministra una consulta y el sistema le devuelve una lista de documentos que pueden satisfacer sus necesidades Este agente tiene la capacidad de acceder a la base de datos con el objetivo de almacenar yo recuperar resultados Base de Datos Guardaraacute las ultimas buacutesquedas realizadas para su posterior consulta a peticioacuten del usuario Agente de Filtrado Gestiona la recuperacioacuten de documentos y realiza el filtrado de los mismos proporcionados por el Agente de Recuperacioacuten Recibe la peticioacuten del Agente Usuario y a su vez esta es enviada al Agente Ontologiacutea para que este regrese una evaluacioacuten de la consulta y de esta forma conocer si es necesaria una redefinicioacuten de la consulta En caso de ser necesaria se espera recibir el nuevo vector de consulta hasta que se cumpla una de dos opciones el usuario deje de redefinir la consulta o la consulta sea concreta Cuando la consulta sea concreta es enviada de nueva cuenta al Agente Ontologiacutea el cual regresaraacute el Nuevo Vector Expandido Este seraacute enviado al Agente de Recuperacioacuten Cuando el Agente de Recuperacioacuten regrese los urlacutes de los resultados (con sus respectivos vectores de teacuterminos) se realiza una evaluacioacuten de los vectores de cada documento con respecto al vector de buacutesqueda expandida con el objetivo de asignarles una calificacioacuten Gracias a esta calificacioacuten podemos obtener aquellos documentos que mejor cumplan con las expectativas del usuario (Estos documentos son regresados al Agente Usuario) Agente Ontologiacutea Recibe el vector de consulta proporcionado por el Agente de Filtrado La informacioacuten contenida en el vector de consulta es comparada con la existente en nuestra ontologiacutea Una vez verificada la existencia de la informacioacuten del

29

vector consulta dentro de la ontologiacutea este se encarga de devolver la distancia y el umbral al Agente de Filtrado Se espera que este devuelva una peticioacuten para expandir ese mismo vector Puede darse el caso de obtener dos tipos de buacutesquedas una general y otra mucho maacutes definida En cualquiera de los caso obtenemos un nuevo vector de buacutesqueda (con una informacioacuten mejor definida este es el Vector de Buacutesqueda Expandido) que es enviado de regreso al Agente de Filtrado el cual genera una copia y le es enviada al Agente de Recuperacioacuten Ontologiacutea Representa nuestra base de conocimientos Esta compuesta por tres aacutereas de conocimiento las cuales son Ingenieriacutea se Software Bases de Datos y Deportes Para poder representar esta ontologiacutea en un lenguaje entendible para agentes inteligentes se programaraacute bajo los fundamentos de las estructuras RDF contenidas en las especificaciones de XML y siguiendo los estaacutendares de la W3C Agente Recuperacioacuten Realiza la buacutesqueda gracias a la informacioacuten que le es entregada por el Agente de Filtrado (se trata Vector de Buacutesqueda Expandido generado por el Agente de Ontologiacutea) El agente estructura esta informacioacuten y se introduce en un motor de buacutesqueda(diacutegase por ejemplo Google) de tal manera que obtengamos una lista de posibles documentos A cada documento se le asigna un vector de teacuterminos con sus pesos derivados de un anaacutelisis TFIDF para despueacutes regresar las urlacutes con su respectivo vector de teacuterminos al Agente Filtrado RESULTADOS Este proyecto tiene la finalidad de desarrollar el software para un antivirus y un traductor Pero durante los estudios de anaacutelisis de estos dos productos se encontroacute que el software para la buacutesqueda de la informacioacuten tambieacuten puede ser implementada por medio de teacutecnicas de Inteligencia Artificial Para construir el software de aplicacioacuten para estas necesidades se usa la metodologiacutea de cascada Donde los pasos a seguir son el Anaacutelisis Disentildeo Pruebas Implementacioacuten y Mantenimiento Hasta este momento estamos en la etapa de pruebas de algunos moacutedulos de los tres productos IMPACTO El detector de intrusos en una red es de mucha importancia debido a que en la actualidad se han diseminado muchos virus que pueden ser transmitidos a traveacutes de intrusos Hasta la fecha el meacutetodo de proteccioacuten se hace de forma manual La finalidad de este software es automatizar la proteccioacuten El traductor de texto a voz tiene como primera aplicacioacuten el auxilio en la lectura de documentos para las personas invidentes o deacutebiles visuales una segunda aplicacioacuten es la comunicacioacuten con la computadora por medio del lenguaje natura El buscador de informacioacuten es un auxilio en la buacutesqueda de datos en una base de datos de conocimiento Ya que tambieacuten estaacuten proliferando las bibliotecas virtuales es una ayuda en la localizacioacuten de informacioacuten cientiacutefica y un preaacutembulo para un software de apoyo docente BIBLIOGRAFIacuteA [1] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

30

[2] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps[3] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[4] w3c en espantildeol OWL y Web Semaacutentica httpwwww3cesDivulgacionGuiasbrevesWebSemantica

[5] Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

[6] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[7] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[8] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[9] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[10] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[11] Laboratorios Googlehttplabsgooglecompapershtml

[12] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[13] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

[14] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

[15] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps [16] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[18] Trabajos de Agente en JADE http Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

31

[19] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[20] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[21] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[22] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[23] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[24] Laboratorios Googlehttplabsgooglecompapershtml

[25] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[26] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

  • En este reporte teacutecnico se presenta la descripcioacuten general anaacutelisis y estado actual de de los trabajos terminales TT2006135 TT20060097 y TT20060068 que tienen por titulo ldquoSistema prototipo de deteccioacuten de intrusos en la red utilizando agentes inteligentesrdquo rdquoProcesamiento digital de imaacutegenes para la conversioacuten de texto a vozrdquo y ldquoSistema de buacutesqueda de informacioacuten por conceptos en la webrdquo respectivamente Los prototipos que se obtendraacuten seraacuten un software robusto que se desarrollaraacuten con teacutecnicas de inteligencia artificial como Agentes inteligentes y Redes neuronales
  • Estructura de un sistema neuronal artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
    • Estado Del Arte
      • Estructura de un sistema neuronal artificial
        • Sistemas paralelos distribuidos y adaptativos
          • Modelo estaacutendar de neurona artificial
            • Sigmoidal logariacutetmica
              • Empleo del perceptroacuten para reconocer funciones loacutegicas
              • Algoritmo de aprendizaje del perceptroacuten
                • Objetivo General
                • Estado Del Arte
                • A continuacioacuten se mencionan algunos de ellos
                  • Buscador muacuteltiple Copernic 2001 Pro
                  • Lets Browse
                  • Agentes de Informacioacuten
                    • Marco Conceptual
                      • Clases y Propiedades
                      • El sistema de escritura de datos [type system]
                      • Clases y Recursos como Conjuntos y Elementos
                        • Ontologiacuteas en la Representacioacuten del Conocimiento
                          • LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES
                          • JADE (Java Agent DEvelopment Framework)
                            • Disentildeo
                            • Arquitectura
Page 26: INSTITUTO POLITÉCNICO NACIONALsappi.ipn.mx/cgpi/archivos_anexo/20061387_3286.pdf · La comunicación del hombre con la computadora por medio del lenguaje natural, es la finalidad

26

que se utilizaraacute Asiacute mismo es independiente del mecanismo de transporte (TCPIP SMTP IIOP etc) e independiente del contenido del lenguaje (KIF SQL STEP Prolog etc) KQML fue desarrollado por el consorcio DARPA Knowledge Sharing Effort (KSE) cuyo principal objetivo fue desarrollar una base tecnoloacutegica para construir en forma progresiva sistemas cada vez con maacutes funcionalidad complejidad y amplitud KQML provee un lenguaje y un protocolo para intercambiar informacioacuten entre agentes inteligentes y para lograr este intercambio se tiene que compartir una sintaxis y una semaacutentica comuacuten para que los mensajes sean entendidos por los agentes Al lenguaje KQML se le dividioacute en tres capas la capa de contenido alberga el contenido del mensaje que es especificado en cualquier formato ya sea texto o binario La capa de comunicacioacuten contiene paraacutemetros como el identificador uacutenico asociado a la comunicacioacuten identidad del remitente e identidad del destinatario La capa de mensaje define tanto los diferentes tipos de interaccioacuten que se pueden establecer entre los agentes como los protocolos que se pueden establecer entre los agentes Tambieacuten incluye otras caracteriacutesticas como el lenguaje de representacioacuten o la ontologiacutea siendo ambos opcionales

JADE (Java Agent DEvelopment Framework)

JADEiv (Java Agent DEvelopment Framework) es un middleware que proporciona tanto un entorno de desarrollo como un entorno de ejecucioacuten para la realizacioacuten y mantenimiento de sistemas multiagente El entorno de desarrollo estaacute formado por una serie de libreriacuteas en Java que permiten la implementacioacuten de agentes de manera limpia e independiente de la plataforma sobre la que se va a ejecutar El entorno de ejecucioacuten permite a los agentes vivir y comunicarse entre ellos Estaacute realizado enteramente en Java y proporciona una serie de herramientas que permiten al desarrollador controlar y depurar a los agentes en tiempo real JADE es un middleware desarrollado por TILAB para el desarrollo de aplicaciones distribuidas multiagente JADE proporciona tanto el entorno de desarrollo para la creacioacuten de aplicaciones basadas en agentes como el entorno de ejecucioacuten JADE presenta las siguientes caracteriacutesticas

P2P Arquitectura peer-to-peer cada agente puede tomar la iniciativa en una comunicacioacuten o bien responder a peticiones que le hagan otros agentes

Interoperabilidad JADE cumple con las especificaciones FIPA por lo que los agentes desarrollados en JADE pueden interactuar con otros agentes que no tienen porque estar desarrollados con JADE aunque si deben seguir las especificaciones FIPA

Portabilidad La API que proporciona JADE es independientemente de la red sobre la que va a operar asiacute como de la versioacuten de Java utilizada teniendo la misma API para J2EE J2SE y J2ME

27

Intuitiva JADE se ha desarrollado para ofrecer una API faacutecil de aprender y sencilla de manejar

Los agentes JADE tienen nombres uacutenicos y se permite a cada agente descubrir a otros agentes y comunicarse con ellos mediante comunicaciones punto a punto Los agentes proporcionan servicios cada agente puede buscar a otros dependiendo de los servicios que proporcionen otros agentes La comunicacioacuten entre agentes se lleva a cabo a traveacutes de mensajes asiacutencronos es decir el agente que enviacutea el mensaje y el destinatario del mensaje no tienen porqueacute estar disponibles al mismo tiempo Es maacutes el destinatario no tiene porqueacute existir en ese instante Los mensajes se pueden enviar a un agente en concreto o se pueden enviar a agentes que se desconocen pero se sabe que poseen unas ciertas caracteriacutesticas JADE proporciona mecanismos de seguridad ya que habraacute agentes a los que no se les esteacute permitido comunicarse con otros agentes de manera que una aplicacioacuten puede verificar la identidad del receptor y del agente que enviacutea el mensaje y no dejar realizar actuaciones no permitidas para un determinado agente La estructura de los mensajes se basa en el lenguaje ACL (Agent Communication Lenguaje) que ha sido definido por la FIPA JADE facilita mecanismos para el desarrollo de los objetivos que deben alcanzar los agentes Los comportamientos (behaviours) y la comunicacioacuten entre los agentes (junto con el servicio de paacuteginas amarillas) proporcionan los recursos necesarios para programar un sistema multiagente JADE tambieacuten permite a los agentes cambiar de Host (en J2SE) Un agente puede interrumpir en un momento dado su ejecucioacuten migrar a otro host (sin necesidad de que el coacutedigo esteacute previamente en el host destino) y continuar la ejecucioacuten en el mismo punto en el que la interrumpioacute Esto permite un balanceo de carga ya que permite a los agentes migrar hosts menos cargados El entorno de ejecucioacuten proporciona un marco donde poder ejecutar los agentes y herramientas graacuteficas para su monitorizacioacuten y depuracioacuten Los agentes JADE necesitan del entorno de ejecucioacuten donde poder vivir Cada instancia del entorno de ejecucioacuten se denomina contenedor (container) Al conjunto de los contenedores se le denomina plataforma (platform) y proporciona una capa que oculta a los agentes (y al desarrollador) el entorno donde se ha decidido ejecutar la aplicacioacuten En cada plataforma debe existir un contenedor especial denominado contenedor principal (main container) La principal diferencia del contenedor principal respecto al resto de contenedores es que alberga dos agentes especiales

AMS (Agent Management System) Este agente proporciona el servicio de nombres asegurando que cada agente en la plataforma disponga de un nombre uacutenico Tambieacuten representa la autoridad es posible crear y matar agentes en contenedores remotos requeriendoselo al agente AMS

DF (Directory Facilitator) Proporciona el servicio de Paacuteginas Amarillas Gracias al agente DF un agente puede encontrar otros agentes que provean los servicios necesarios para lograr sus objetivos

28

La caracteriacutestica mas importante del entorno de ejecucioacuten es la interfaz graacutefica que proporciona desde la que podemos controlar y depurar los agentes existentes Todas las herramientas han sido desarrolladas como agentes y siguen sus mismas reglas Disentildeo Arquitectura

Agente usuario

Agente de ontologiacutea

Agente de filtrado

Agente de recuperacioacuten

BD

OntologiacuteaSistema

Motor de buacutesqueda

El sistema esta disentildeado para que un usuario realice alguna buacutesqueda relacionada con alguno de los tres temas propuestos en nuestra base de conocimiento que son Ingenieriacutea de Software Base de Datos y Deportes El sistema esta basado en una arquitectura multiagente la cual se conforma por Agente Usuario Actuacutea de intermediario entre el usuario y el sistema Sus servicios son solicitados por el usuario para resolver las consultas El usuario le suministra una consulta y el sistema le devuelve una lista de documentos que pueden satisfacer sus necesidades Este agente tiene la capacidad de acceder a la base de datos con el objetivo de almacenar yo recuperar resultados Base de Datos Guardaraacute las ultimas buacutesquedas realizadas para su posterior consulta a peticioacuten del usuario Agente de Filtrado Gestiona la recuperacioacuten de documentos y realiza el filtrado de los mismos proporcionados por el Agente de Recuperacioacuten Recibe la peticioacuten del Agente Usuario y a su vez esta es enviada al Agente Ontologiacutea para que este regrese una evaluacioacuten de la consulta y de esta forma conocer si es necesaria una redefinicioacuten de la consulta En caso de ser necesaria se espera recibir el nuevo vector de consulta hasta que se cumpla una de dos opciones el usuario deje de redefinir la consulta o la consulta sea concreta Cuando la consulta sea concreta es enviada de nueva cuenta al Agente Ontologiacutea el cual regresaraacute el Nuevo Vector Expandido Este seraacute enviado al Agente de Recuperacioacuten Cuando el Agente de Recuperacioacuten regrese los urlacutes de los resultados (con sus respectivos vectores de teacuterminos) se realiza una evaluacioacuten de los vectores de cada documento con respecto al vector de buacutesqueda expandida con el objetivo de asignarles una calificacioacuten Gracias a esta calificacioacuten podemos obtener aquellos documentos que mejor cumplan con las expectativas del usuario (Estos documentos son regresados al Agente Usuario) Agente Ontologiacutea Recibe el vector de consulta proporcionado por el Agente de Filtrado La informacioacuten contenida en el vector de consulta es comparada con la existente en nuestra ontologiacutea Una vez verificada la existencia de la informacioacuten del

29

vector consulta dentro de la ontologiacutea este se encarga de devolver la distancia y el umbral al Agente de Filtrado Se espera que este devuelva una peticioacuten para expandir ese mismo vector Puede darse el caso de obtener dos tipos de buacutesquedas una general y otra mucho maacutes definida En cualquiera de los caso obtenemos un nuevo vector de buacutesqueda (con una informacioacuten mejor definida este es el Vector de Buacutesqueda Expandido) que es enviado de regreso al Agente de Filtrado el cual genera una copia y le es enviada al Agente de Recuperacioacuten Ontologiacutea Representa nuestra base de conocimientos Esta compuesta por tres aacutereas de conocimiento las cuales son Ingenieriacutea se Software Bases de Datos y Deportes Para poder representar esta ontologiacutea en un lenguaje entendible para agentes inteligentes se programaraacute bajo los fundamentos de las estructuras RDF contenidas en las especificaciones de XML y siguiendo los estaacutendares de la W3C Agente Recuperacioacuten Realiza la buacutesqueda gracias a la informacioacuten que le es entregada por el Agente de Filtrado (se trata Vector de Buacutesqueda Expandido generado por el Agente de Ontologiacutea) El agente estructura esta informacioacuten y se introduce en un motor de buacutesqueda(diacutegase por ejemplo Google) de tal manera que obtengamos una lista de posibles documentos A cada documento se le asigna un vector de teacuterminos con sus pesos derivados de un anaacutelisis TFIDF para despueacutes regresar las urlacutes con su respectivo vector de teacuterminos al Agente Filtrado RESULTADOS Este proyecto tiene la finalidad de desarrollar el software para un antivirus y un traductor Pero durante los estudios de anaacutelisis de estos dos productos se encontroacute que el software para la buacutesqueda de la informacioacuten tambieacuten puede ser implementada por medio de teacutecnicas de Inteligencia Artificial Para construir el software de aplicacioacuten para estas necesidades se usa la metodologiacutea de cascada Donde los pasos a seguir son el Anaacutelisis Disentildeo Pruebas Implementacioacuten y Mantenimiento Hasta este momento estamos en la etapa de pruebas de algunos moacutedulos de los tres productos IMPACTO El detector de intrusos en una red es de mucha importancia debido a que en la actualidad se han diseminado muchos virus que pueden ser transmitidos a traveacutes de intrusos Hasta la fecha el meacutetodo de proteccioacuten se hace de forma manual La finalidad de este software es automatizar la proteccioacuten El traductor de texto a voz tiene como primera aplicacioacuten el auxilio en la lectura de documentos para las personas invidentes o deacutebiles visuales una segunda aplicacioacuten es la comunicacioacuten con la computadora por medio del lenguaje natura El buscador de informacioacuten es un auxilio en la buacutesqueda de datos en una base de datos de conocimiento Ya que tambieacuten estaacuten proliferando las bibliotecas virtuales es una ayuda en la localizacioacuten de informacioacuten cientiacutefica y un preaacutembulo para un software de apoyo docente BIBLIOGRAFIacuteA [1] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

30

[2] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps[3] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[4] w3c en espantildeol OWL y Web Semaacutentica httpwwww3cesDivulgacionGuiasbrevesWebSemantica

[5] Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

[6] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[7] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[8] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[9] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[10] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[11] Laboratorios Googlehttplabsgooglecompapershtml

[12] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[13] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

[14] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

[15] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps [16] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[18] Trabajos de Agente en JADE http Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

31

[19] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[20] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[21] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[22] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[23] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[24] Laboratorios Googlehttplabsgooglecompapershtml

[25] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[26] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

  • En este reporte teacutecnico se presenta la descripcioacuten general anaacutelisis y estado actual de de los trabajos terminales TT2006135 TT20060097 y TT20060068 que tienen por titulo ldquoSistema prototipo de deteccioacuten de intrusos en la red utilizando agentes inteligentesrdquo rdquoProcesamiento digital de imaacutegenes para la conversioacuten de texto a vozrdquo y ldquoSistema de buacutesqueda de informacioacuten por conceptos en la webrdquo respectivamente Los prototipos que se obtendraacuten seraacuten un software robusto que se desarrollaraacuten con teacutecnicas de inteligencia artificial como Agentes inteligentes y Redes neuronales
  • Estructura de un sistema neuronal artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
    • Estado Del Arte
      • Estructura de un sistema neuronal artificial
        • Sistemas paralelos distribuidos y adaptativos
          • Modelo estaacutendar de neurona artificial
            • Sigmoidal logariacutetmica
              • Empleo del perceptroacuten para reconocer funciones loacutegicas
              • Algoritmo de aprendizaje del perceptroacuten
                • Objetivo General
                • Estado Del Arte
                • A continuacioacuten se mencionan algunos de ellos
                  • Buscador muacuteltiple Copernic 2001 Pro
                  • Lets Browse
                  • Agentes de Informacioacuten
                    • Marco Conceptual
                      • Clases y Propiedades
                      • El sistema de escritura de datos [type system]
                      • Clases y Recursos como Conjuntos y Elementos
                        • Ontologiacuteas en la Representacioacuten del Conocimiento
                          • LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES
                          • JADE (Java Agent DEvelopment Framework)
                            • Disentildeo
                            • Arquitectura
Page 27: INSTITUTO POLITÉCNICO NACIONALsappi.ipn.mx/cgpi/archivos_anexo/20061387_3286.pdf · La comunicación del hombre con la computadora por medio del lenguaje natural, es la finalidad

27

Intuitiva JADE se ha desarrollado para ofrecer una API faacutecil de aprender y sencilla de manejar

Los agentes JADE tienen nombres uacutenicos y se permite a cada agente descubrir a otros agentes y comunicarse con ellos mediante comunicaciones punto a punto Los agentes proporcionan servicios cada agente puede buscar a otros dependiendo de los servicios que proporcionen otros agentes La comunicacioacuten entre agentes se lleva a cabo a traveacutes de mensajes asiacutencronos es decir el agente que enviacutea el mensaje y el destinatario del mensaje no tienen porqueacute estar disponibles al mismo tiempo Es maacutes el destinatario no tiene porqueacute existir en ese instante Los mensajes se pueden enviar a un agente en concreto o se pueden enviar a agentes que se desconocen pero se sabe que poseen unas ciertas caracteriacutesticas JADE proporciona mecanismos de seguridad ya que habraacute agentes a los que no se les esteacute permitido comunicarse con otros agentes de manera que una aplicacioacuten puede verificar la identidad del receptor y del agente que enviacutea el mensaje y no dejar realizar actuaciones no permitidas para un determinado agente La estructura de los mensajes se basa en el lenguaje ACL (Agent Communication Lenguaje) que ha sido definido por la FIPA JADE facilita mecanismos para el desarrollo de los objetivos que deben alcanzar los agentes Los comportamientos (behaviours) y la comunicacioacuten entre los agentes (junto con el servicio de paacuteginas amarillas) proporcionan los recursos necesarios para programar un sistema multiagente JADE tambieacuten permite a los agentes cambiar de Host (en J2SE) Un agente puede interrumpir en un momento dado su ejecucioacuten migrar a otro host (sin necesidad de que el coacutedigo esteacute previamente en el host destino) y continuar la ejecucioacuten en el mismo punto en el que la interrumpioacute Esto permite un balanceo de carga ya que permite a los agentes migrar hosts menos cargados El entorno de ejecucioacuten proporciona un marco donde poder ejecutar los agentes y herramientas graacuteficas para su monitorizacioacuten y depuracioacuten Los agentes JADE necesitan del entorno de ejecucioacuten donde poder vivir Cada instancia del entorno de ejecucioacuten se denomina contenedor (container) Al conjunto de los contenedores se le denomina plataforma (platform) y proporciona una capa que oculta a los agentes (y al desarrollador) el entorno donde se ha decidido ejecutar la aplicacioacuten En cada plataforma debe existir un contenedor especial denominado contenedor principal (main container) La principal diferencia del contenedor principal respecto al resto de contenedores es que alberga dos agentes especiales

AMS (Agent Management System) Este agente proporciona el servicio de nombres asegurando que cada agente en la plataforma disponga de un nombre uacutenico Tambieacuten representa la autoridad es posible crear y matar agentes en contenedores remotos requeriendoselo al agente AMS

DF (Directory Facilitator) Proporciona el servicio de Paacuteginas Amarillas Gracias al agente DF un agente puede encontrar otros agentes que provean los servicios necesarios para lograr sus objetivos

28

La caracteriacutestica mas importante del entorno de ejecucioacuten es la interfaz graacutefica que proporciona desde la que podemos controlar y depurar los agentes existentes Todas las herramientas han sido desarrolladas como agentes y siguen sus mismas reglas Disentildeo Arquitectura

Agente usuario

Agente de ontologiacutea

Agente de filtrado

Agente de recuperacioacuten

BD

OntologiacuteaSistema

Motor de buacutesqueda

El sistema esta disentildeado para que un usuario realice alguna buacutesqueda relacionada con alguno de los tres temas propuestos en nuestra base de conocimiento que son Ingenieriacutea de Software Base de Datos y Deportes El sistema esta basado en una arquitectura multiagente la cual se conforma por Agente Usuario Actuacutea de intermediario entre el usuario y el sistema Sus servicios son solicitados por el usuario para resolver las consultas El usuario le suministra una consulta y el sistema le devuelve una lista de documentos que pueden satisfacer sus necesidades Este agente tiene la capacidad de acceder a la base de datos con el objetivo de almacenar yo recuperar resultados Base de Datos Guardaraacute las ultimas buacutesquedas realizadas para su posterior consulta a peticioacuten del usuario Agente de Filtrado Gestiona la recuperacioacuten de documentos y realiza el filtrado de los mismos proporcionados por el Agente de Recuperacioacuten Recibe la peticioacuten del Agente Usuario y a su vez esta es enviada al Agente Ontologiacutea para que este regrese una evaluacioacuten de la consulta y de esta forma conocer si es necesaria una redefinicioacuten de la consulta En caso de ser necesaria se espera recibir el nuevo vector de consulta hasta que se cumpla una de dos opciones el usuario deje de redefinir la consulta o la consulta sea concreta Cuando la consulta sea concreta es enviada de nueva cuenta al Agente Ontologiacutea el cual regresaraacute el Nuevo Vector Expandido Este seraacute enviado al Agente de Recuperacioacuten Cuando el Agente de Recuperacioacuten regrese los urlacutes de los resultados (con sus respectivos vectores de teacuterminos) se realiza una evaluacioacuten de los vectores de cada documento con respecto al vector de buacutesqueda expandida con el objetivo de asignarles una calificacioacuten Gracias a esta calificacioacuten podemos obtener aquellos documentos que mejor cumplan con las expectativas del usuario (Estos documentos son regresados al Agente Usuario) Agente Ontologiacutea Recibe el vector de consulta proporcionado por el Agente de Filtrado La informacioacuten contenida en el vector de consulta es comparada con la existente en nuestra ontologiacutea Una vez verificada la existencia de la informacioacuten del

29

vector consulta dentro de la ontologiacutea este se encarga de devolver la distancia y el umbral al Agente de Filtrado Se espera que este devuelva una peticioacuten para expandir ese mismo vector Puede darse el caso de obtener dos tipos de buacutesquedas una general y otra mucho maacutes definida En cualquiera de los caso obtenemos un nuevo vector de buacutesqueda (con una informacioacuten mejor definida este es el Vector de Buacutesqueda Expandido) que es enviado de regreso al Agente de Filtrado el cual genera una copia y le es enviada al Agente de Recuperacioacuten Ontologiacutea Representa nuestra base de conocimientos Esta compuesta por tres aacutereas de conocimiento las cuales son Ingenieriacutea se Software Bases de Datos y Deportes Para poder representar esta ontologiacutea en un lenguaje entendible para agentes inteligentes se programaraacute bajo los fundamentos de las estructuras RDF contenidas en las especificaciones de XML y siguiendo los estaacutendares de la W3C Agente Recuperacioacuten Realiza la buacutesqueda gracias a la informacioacuten que le es entregada por el Agente de Filtrado (se trata Vector de Buacutesqueda Expandido generado por el Agente de Ontologiacutea) El agente estructura esta informacioacuten y se introduce en un motor de buacutesqueda(diacutegase por ejemplo Google) de tal manera que obtengamos una lista de posibles documentos A cada documento se le asigna un vector de teacuterminos con sus pesos derivados de un anaacutelisis TFIDF para despueacutes regresar las urlacutes con su respectivo vector de teacuterminos al Agente Filtrado RESULTADOS Este proyecto tiene la finalidad de desarrollar el software para un antivirus y un traductor Pero durante los estudios de anaacutelisis de estos dos productos se encontroacute que el software para la buacutesqueda de la informacioacuten tambieacuten puede ser implementada por medio de teacutecnicas de Inteligencia Artificial Para construir el software de aplicacioacuten para estas necesidades se usa la metodologiacutea de cascada Donde los pasos a seguir son el Anaacutelisis Disentildeo Pruebas Implementacioacuten y Mantenimiento Hasta este momento estamos en la etapa de pruebas de algunos moacutedulos de los tres productos IMPACTO El detector de intrusos en una red es de mucha importancia debido a que en la actualidad se han diseminado muchos virus que pueden ser transmitidos a traveacutes de intrusos Hasta la fecha el meacutetodo de proteccioacuten se hace de forma manual La finalidad de este software es automatizar la proteccioacuten El traductor de texto a voz tiene como primera aplicacioacuten el auxilio en la lectura de documentos para las personas invidentes o deacutebiles visuales una segunda aplicacioacuten es la comunicacioacuten con la computadora por medio del lenguaje natura El buscador de informacioacuten es un auxilio en la buacutesqueda de datos en una base de datos de conocimiento Ya que tambieacuten estaacuten proliferando las bibliotecas virtuales es una ayuda en la localizacioacuten de informacioacuten cientiacutefica y un preaacutembulo para un software de apoyo docente BIBLIOGRAFIacuteA [1] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

30

[2] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps[3] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[4] w3c en espantildeol OWL y Web Semaacutentica httpwwww3cesDivulgacionGuiasbrevesWebSemantica

[5] Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

[6] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[7] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[8] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[9] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[10] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[11] Laboratorios Googlehttplabsgooglecompapershtml

[12] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[13] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

[14] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

[15] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps [16] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[18] Trabajos de Agente en JADE http Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

31

[19] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[20] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[21] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[22] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[23] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[24] Laboratorios Googlehttplabsgooglecompapershtml

[25] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[26] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

  • En este reporte teacutecnico se presenta la descripcioacuten general anaacutelisis y estado actual de de los trabajos terminales TT2006135 TT20060097 y TT20060068 que tienen por titulo ldquoSistema prototipo de deteccioacuten de intrusos en la red utilizando agentes inteligentesrdquo rdquoProcesamiento digital de imaacutegenes para la conversioacuten de texto a vozrdquo y ldquoSistema de buacutesqueda de informacioacuten por conceptos en la webrdquo respectivamente Los prototipos que se obtendraacuten seraacuten un software robusto que se desarrollaraacuten con teacutecnicas de inteligencia artificial como Agentes inteligentes y Redes neuronales
  • Estructura de un sistema neuronal artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
    • Estado Del Arte
      • Estructura de un sistema neuronal artificial
        • Sistemas paralelos distribuidos y adaptativos
          • Modelo estaacutendar de neurona artificial
            • Sigmoidal logariacutetmica
              • Empleo del perceptroacuten para reconocer funciones loacutegicas
              • Algoritmo de aprendizaje del perceptroacuten
                • Objetivo General
                • Estado Del Arte
                • A continuacioacuten se mencionan algunos de ellos
                  • Buscador muacuteltiple Copernic 2001 Pro
                  • Lets Browse
                  • Agentes de Informacioacuten
                    • Marco Conceptual
                      • Clases y Propiedades
                      • El sistema de escritura de datos [type system]
                      • Clases y Recursos como Conjuntos y Elementos
                        • Ontologiacuteas en la Representacioacuten del Conocimiento
                          • LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES
                          • JADE (Java Agent DEvelopment Framework)
                            • Disentildeo
                            • Arquitectura
Page 28: INSTITUTO POLITÉCNICO NACIONALsappi.ipn.mx/cgpi/archivos_anexo/20061387_3286.pdf · La comunicación del hombre con la computadora por medio del lenguaje natural, es la finalidad

28

La caracteriacutestica mas importante del entorno de ejecucioacuten es la interfaz graacutefica que proporciona desde la que podemos controlar y depurar los agentes existentes Todas las herramientas han sido desarrolladas como agentes y siguen sus mismas reglas Disentildeo Arquitectura

Agente usuario

Agente de ontologiacutea

Agente de filtrado

Agente de recuperacioacuten

BD

OntologiacuteaSistema

Motor de buacutesqueda

El sistema esta disentildeado para que un usuario realice alguna buacutesqueda relacionada con alguno de los tres temas propuestos en nuestra base de conocimiento que son Ingenieriacutea de Software Base de Datos y Deportes El sistema esta basado en una arquitectura multiagente la cual se conforma por Agente Usuario Actuacutea de intermediario entre el usuario y el sistema Sus servicios son solicitados por el usuario para resolver las consultas El usuario le suministra una consulta y el sistema le devuelve una lista de documentos que pueden satisfacer sus necesidades Este agente tiene la capacidad de acceder a la base de datos con el objetivo de almacenar yo recuperar resultados Base de Datos Guardaraacute las ultimas buacutesquedas realizadas para su posterior consulta a peticioacuten del usuario Agente de Filtrado Gestiona la recuperacioacuten de documentos y realiza el filtrado de los mismos proporcionados por el Agente de Recuperacioacuten Recibe la peticioacuten del Agente Usuario y a su vez esta es enviada al Agente Ontologiacutea para que este regrese una evaluacioacuten de la consulta y de esta forma conocer si es necesaria una redefinicioacuten de la consulta En caso de ser necesaria se espera recibir el nuevo vector de consulta hasta que se cumpla una de dos opciones el usuario deje de redefinir la consulta o la consulta sea concreta Cuando la consulta sea concreta es enviada de nueva cuenta al Agente Ontologiacutea el cual regresaraacute el Nuevo Vector Expandido Este seraacute enviado al Agente de Recuperacioacuten Cuando el Agente de Recuperacioacuten regrese los urlacutes de los resultados (con sus respectivos vectores de teacuterminos) se realiza una evaluacioacuten de los vectores de cada documento con respecto al vector de buacutesqueda expandida con el objetivo de asignarles una calificacioacuten Gracias a esta calificacioacuten podemos obtener aquellos documentos que mejor cumplan con las expectativas del usuario (Estos documentos son regresados al Agente Usuario) Agente Ontologiacutea Recibe el vector de consulta proporcionado por el Agente de Filtrado La informacioacuten contenida en el vector de consulta es comparada con la existente en nuestra ontologiacutea Una vez verificada la existencia de la informacioacuten del

29

vector consulta dentro de la ontologiacutea este se encarga de devolver la distancia y el umbral al Agente de Filtrado Se espera que este devuelva una peticioacuten para expandir ese mismo vector Puede darse el caso de obtener dos tipos de buacutesquedas una general y otra mucho maacutes definida En cualquiera de los caso obtenemos un nuevo vector de buacutesqueda (con una informacioacuten mejor definida este es el Vector de Buacutesqueda Expandido) que es enviado de regreso al Agente de Filtrado el cual genera una copia y le es enviada al Agente de Recuperacioacuten Ontologiacutea Representa nuestra base de conocimientos Esta compuesta por tres aacutereas de conocimiento las cuales son Ingenieriacutea se Software Bases de Datos y Deportes Para poder representar esta ontologiacutea en un lenguaje entendible para agentes inteligentes se programaraacute bajo los fundamentos de las estructuras RDF contenidas en las especificaciones de XML y siguiendo los estaacutendares de la W3C Agente Recuperacioacuten Realiza la buacutesqueda gracias a la informacioacuten que le es entregada por el Agente de Filtrado (se trata Vector de Buacutesqueda Expandido generado por el Agente de Ontologiacutea) El agente estructura esta informacioacuten y se introduce en un motor de buacutesqueda(diacutegase por ejemplo Google) de tal manera que obtengamos una lista de posibles documentos A cada documento se le asigna un vector de teacuterminos con sus pesos derivados de un anaacutelisis TFIDF para despueacutes regresar las urlacutes con su respectivo vector de teacuterminos al Agente Filtrado RESULTADOS Este proyecto tiene la finalidad de desarrollar el software para un antivirus y un traductor Pero durante los estudios de anaacutelisis de estos dos productos se encontroacute que el software para la buacutesqueda de la informacioacuten tambieacuten puede ser implementada por medio de teacutecnicas de Inteligencia Artificial Para construir el software de aplicacioacuten para estas necesidades se usa la metodologiacutea de cascada Donde los pasos a seguir son el Anaacutelisis Disentildeo Pruebas Implementacioacuten y Mantenimiento Hasta este momento estamos en la etapa de pruebas de algunos moacutedulos de los tres productos IMPACTO El detector de intrusos en una red es de mucha importancia debido a que en la actualidad se han diseminado muchos virus que pueden ser transmitidos a traveacutes de intrusos Hasta la fecha el meacutetodo de proteccioacuten se hace de forma manual La finalidad de este software es automatizar la proteccioacuten El traductor de texto a voz tiene como primera aplicacioacuten el auxilio en la lectura de documentos para las personas invidentes o deacutebiles visuales una segunda aplicacioacuten es la comunicacioacuten con la computadora por medio del lenguaje natura El buscador de informacioacuten es un auxilio en la buacutesqueda de datos en una base de datos de conocimiento Ya que tambieacuten estaacuten proliferando las bibliotecas virtuales es una ayuda en la localizacioacuten de informacioacuten cientiacutefica y un preaacutembulo para un software de apoyo docente BIBLIOGRAFIacuteA [1] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

30

[2] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps[3] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[4] w3c en espantildeol OWL y Web Semaacutentica httpwwww3cesDivulgacionGuiasbrevesWebSemantica

[5] Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

[6] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[7] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[8] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[9] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[10] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[11] Laboratorios Googlehttplabsgooglecompapershtml

[12] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[13] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

[14] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

[15] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps [16] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[18] Trabajos de Agente en JADE http Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

31

[19] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[20] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[21] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[22] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[23] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[24] Laboratorios Googlehttplabsgooglecompapershtml

[25] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[26] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

  • En este reporte teacutecnico se presenta la descripcioacuten general anaacutelisis y estado actual de de los trabajos terminales TT2006135 TT20060097 y TT20060068 que tienen por titulo ldquoSistema prototipo de deteccioacuten de intrusos en la red utilizando agentes inteligentesrdquo rdquoProcesamiento digital de imaacutegenes para la conversioacuten de texto a vozrdquo y ldquoSistema de buacutesqueda de informacioacuten por conceptos en la webrdquo respectivamente Los prototipos que se obtendraacuten seraacuten un software robusto que se desarrollaraacuten con teacutecnicas de inteligencia artificial como Agentes inteligentes y Redes neuronales
  • Estructura de un sistema neuronal artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
    • Estado Del Arte
      • Estructura de un sistema neuronal artificial
        • Sistemas paralelos distribuidos y adaptativos
          • Modelo estaacutendar de neurona artificial
            • Sigmoidal logariacutetmica
              • Empleo del perceptroacuten para reconocer funciones loacutegicas
              • Algoritmo de aprendizaje del perceptroacuten
                • Objetivo General
                • Estado Del Arte
                • A continuacioacuten se mencionan algunos de ellos
                  • Buscador muacuteltiple Copernic 2001 Pro
                  • Lets Browse
                  • Agentes de Informacioacuten
                    • Marco Conceptual
                      • Clases y Propiedades
                      • El sistema de escritura de datos [type system]
                      • Clases y Recursos como Conjuntos y Elementos
                        • Ontologiacuteas en la Representacioacuten del Conocimiento
                          • LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES
                          • JADE (Java Agent DEvelopment Framework)
                            • Disentildeo
                            • Arquitectura
Page 29: INSTITUTO POLITÉCNICO NACIONALsappi.ipn.mx/cgpi/archivos_anexo/20061387_3286.pdf · La comunicación del hombre con la computadora por medio del lenguaje natural, es la finalidad

29

vector consulta dentro de la ontologiacutea este se encarga de devolver la distancia y el umbral al Agente de Filtrado Se espera que este devuelva una peticioacuten para expandir ese mismo vector Puede darse el caso de obtener dos tipos de buacutesquedas una general y otra mucho maacutes definida En cualquiera de los caso obtenemos un nuevo vector de buacutesqueda (con una informacioacuten mejor definida este es el Vector de Buacutesqueda Expandido) que es enviado de regreso al Agente de Filtrado el cual genera una copia y le es enviada al Agente de Recuperacioacuten Ontologiacutea Representa nuestra base de conocimientos Esta compuesta por tres aacutereas de conocimiento las cuales son Ingenieriacutea se Software Bases de Datos y Deportes Para poder representar esta ontologiacutea en un lenguaje entendible para agentes inteligentes se programaraacute bajo los fundamentos de las estructuras RDF contenidas en las especificaciones de XML y siguiendo los estaacutendares de la W3C Agente Recuperacioacuten Realiza la buacutesqueda gracias a la informacioacuten que le es entregada por el Agente de Filtrado (se trata Vector de Buacutesqueda Expandido generado por el Agente de Ontologiacutea) El agente estructura esta informacioacuten y se introduce en un motor de buacutesqueda(diacutegase por ejemplo Google) de tal manera que obtengamos una lista de posibles documentos A cada documento se le asigna un vector de teacuterminos con sus pesos derivados de un anaacutelisis TFIDF para despueacutes regresar las urlacutes con su respectivo vector de teacuterminos al Agente Filtrado RESULTADOS Este proyecto tiene la finalidad de desarrollar el software para un antivirus y un traductor Pero durante los estudios de anaacutelisis de estos dos productos se encontroacute que el software para la buacutesqueda de la informacioacuten tambieacuten puede ser implementada por medio de teacutecnicas de Inteligencia Artificial Para construir el software de aplicacioacuten para estas necesidades se usa la metodologiacutea de cascada Donde los pasos a seguir son el Anaacutelisis Disentildeo Pruebas Implementacioacuten y Mantenimiento Hasta este momento estamos en la etapa de pruebas de algunos moacutedulos de los tres productos IMPACTO El detector de intrusos en una red es de mucha importancia debido a que en la actualidad se han diseminado muchos virus que pueden ser transmitidos a traveacutes de intrusos Hasta la fecha el meacutetodo de proteccioacuten se hace de forma manual La finalidad de este software es automatizar la proteccioacuten El traductor de texto a voz tiene como primera aplicacioacuten el auxilio en la lectura de documentos para las personas invidentes o deacutebiles visuales una segunda aplicacioacuten es la comunicacioacuten con la computadora por medio del lenguaje natura El buscador de informacioacuten es un auxilio en la buacutesqueda de datos en una base de datos de conocimiento Ya que tambieacuten estaacuten proliferando las bibliotecas virtuales es una ayuda en la localizacioacuten de informacioacuten cientiacutefica y un preaacutembulo para un software de apoyo docente BIBLIOGRAFIacuteA [1] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

30

[2] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps[3] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[4] w3c en espantildeol OWL y Web Semaacutentica httpwwww3cesDivulgacionGuiasbrevesWebSemantica

[5] Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

[6] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[7] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[8] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[9] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[10] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[11] Laboratorios Googlehttplabsgooglecompapershtml

[12] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[13] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

[14] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

[15] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps [16] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[18] Trabajos de Agente en JADE http Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

31

[19] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[20] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[21] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[22] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[23] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[24] Laboratorios Googlehttplabsgooglecompapershtml

[25] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[26] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

  • En este reporte teacutecnico se presenta la descripcioacuten general anaacutelisis y estado actual de de los trabajos terminales TT2006135 TT20060097 y TT20060068 que tienen por titulo ldquoSistema prototipo de deteccioacuten de intrusos en la red utilizando agentes inteligentesrdquo rdquoProcesamiento digital de imaacutegenes para la conversioacuten de texto a vozrdquo y ldquoSistema de buacutesqueda de informacioacuten por conceptos en la webrdquo respectivamente Los prototipos que se obtendraacuten seraacuten un software robusto que se desarrollaraacuten con teacutecnicas de inteligencia artificial como Agentes inteligentes y Redes neuronales
  • Estructura de un sistema neuronal artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
    • Estado Del Arte
      • Estructura de un sistema neuronal artificial
        • Sistemas paralelos distribuidos y adaptativos
          • Modelo estaacutendar de neurona artificial
            • Sigmoidal logariacutetmica
              • Empleo del perceptroacuten para reconocer funciones loacutegicas
              • Algoritmo de aprendizaje del perceptroacuten
                • Objetivo General
                • Estado Del Arte
                • A continuacioacuten se mencionan algunos de ellos
                  • Buscador muacuteltiple Copernic 2001 Pro
                  • Lets Browse
                  • Agentes de Informacioacuten
                    • Marco Conceptual
                      • Clases y Propiedades
                      • El sistema de escritura de datos [type system]
                      • Clases y Recursos como Conjuntos y Elementos
                        • Ontologiacuteas en la Representacioacuten del Conocimiento
                          • LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES
                          • JADE (Java Agent DEvelopment Framework)
                            • Disentildeo
                            • Arquitectura
Page 30: INSTITUTO POLITÉCNICO NACIONALsappi.ipn.mx/cgpi/archivos_anexo/20061387_3286.pdf · La comunicación del hombre con la computadora por medio del lenguaje natural, es la finalidad

30

[2] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps[3] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[4] w3c en espantildeol OWL y Web Semaacutentica httpwwww3cesDivulgacionGuiasbrevesWebSemantica

[5] Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

[6] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[7] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[8] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[9] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[10] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[11] Laboratorios Googlehttplabsgooglecompapershtml

[12] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[13] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

[14] Anaacutelisis del buscador muacuteltiple Copernic 2001 Pro

httpwwwubesbibliobid06frang2htm

[15] Agentes de Informacioacuten httpictpueudlapmxpeoplecristinaDOCTOcap2ps [16] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[18] Trabajos de Agente en JADE http Agentes Inteligentes JADE Juan Fco Garamendi BragadoPrograma de Doctorado Informaacutetica Modelizacioacuten Matemaacutetica Universidad Rey Juan Carlos Abril 2004

31

[19] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[20] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[21] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[22] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[23] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[24] Laboratorios Googlehttplabsgooglecompapershtml

[25] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[26] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

  • En este reporte teacutecnico se presenta la descripcioacuten general anaacutelisis y estado actual de de los trabajos terminales TT2006135 TT20060097 y TT20060068 que tienen por titulo ldquoSistema prototipo de deteccioacuten de intrusos en la red utilizando agentes inteligentesrdquo rdquoProcesamiento digital de imaacutegenes para la conversioacuten de texto a vozrdquo y ldquoSistema de buacutesqueda de informacioacuten por conceptos en la webrdquo respectivamente Los prototipos que se obtendraacuten seraacuten un software robusto que se desarrollaraacuten con teacutecnicas de inteligencia artificial como Agentes inteligentes y Redes neuronales
  • Estructura de un sistema neuronal artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
    • Estado Del Arte
      • Estructura de un sistema neuronal artificial
        • Sistemas paralelos distribuidos y adaptativos
          • Modelo estaacutendar de neurona artificial
            • Sigmoidal logariacutetmica
              • Empleo del perceptroacuten para reconocer funciones loacutegicas
              • Algoritmo de aprendizaje del perceptroacuten
                • Objetivo General
                • Estado Del Arte
                • A continuacioacuten se mencionan algunos de ellos
                  • Buscador muacuteltiple Copernic 2001 Pro
                  • Lets Browse
                  • Agentes de Informacioacuten
                    • Marco Conceptual
                      • Clases y Propiedades
                      • El sistema de escritura de datos [type system]
                      • Clases y Recursos como Conjuntos y Elementos
                        • Ontologiacuteas en la Representacioacuten del Conocimiento
                          • LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES
                          • JADE (Java Agent DEvelopment Framework)
                            • Disentildeo
                            • Arquitectura
Page 31: INSTITUTO POLITÉCNICO NACIONALsappi.ipn.mx/cgpi/archivos_anexo/20061387_3286.pdf · La comunicación del hombre con la computadora por medio del lenguaje natural, es la finalidad

31

[19] RDF en Espantildeol httpwwwsidarorgrecurdesditraducesrdfrdfesphtm

[20] RDF en Ingles Schemas RFD amp OWLhttpwwwschemawebinfodefaultaspx

[21] httpswoogleumbceduindexphpoption=com_swoogle_manualampmanual=search_swd httpwwww3orgTR2004REC-webont-req-20040210

[22] Especificacioacuten de HTML versioacuten 4 en espantildeol httphtmlconclasenetw3chtml401-escoverhtml

[23] Etiqueta META httphtmlconclasenetw3chtml401-esappendixnoteshtmlh-B4

[24] Laboratorios Googlehttplabsgooglecompapershtml

[25] Programming Languages for the Java Virtual Machine httpwwwrobert-tolksdorfdevmlanguageshtml

[26] Extensible Markup Language (XML) 10 - El lenguaje extensible de marcas (XML) 10

httpwwwsidarorgrecurdesditraducesxmlxml1indexhtmlsec-intro

  • En este reporte teacutecnico se presenta la descripcioacuten general anaacutelisis y estado actual de de los trabajos terminales TT2006135 TT20060097 y TT20060068 que tienen por titulo ldquoSistema prototipo de deteccioacuten de intrusos en la red utilizando agentes inteligentesrdquo rdquoProcesamiento digital de imaacutegenes para la conversioacuten de texto a vozrdquo y ldquoSistema de buacutesqueda de informacioacuten por conceptos en la webrdquo respectivamente Los prototipos que se obtendraacuten seraacuten un software robusto que se desarrollaraacuten con teacutecnicas de inteligencia artificial como Agentes inteligentes y Redes neuronales
  • Estructura de un sistema neuronal artificialhelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 9
    • Estado Del Arte
      • Estructura de un sistema neuronal artificial
        • Sistemas paralelos distribuidos y adaptativos
          • Modelo estaacutendar de neurona artificial
            • Sigmoidal logariacutetmica
              • Empleo del perceptroacuten para reconocer funciones loacutegicas
              • Algoritmo de aprendizaje del perceptroacuten
                • Objetivo General
                • Estado Del Arte
                • A continuacioacuten se mencionan algunos de ellos
                  • Buscador muacuteltiple Copernic 2001 Pro
                  • Lets Browse
                  • Agentes de Informacioacuten
                    • Marco Conceptual
                      • Clases y Propiedades
                      • El sistema de escritura de datos [type system]
                      • Clases y Recursos como Conjuntos y Elementos
                        • Ontologiacuteas en la Representacioacuten del Conocimiento
                          • LENGUAJES DE COMUNICACIOacuteN ENTRE AGENTES
                          • JADE (Java Agent DEvelopment Framework)
                            • Disentildeo
                            • Arquitectura