Recientes avances en la ciencia de la computación en México
Recientes avances en la ciencia de la computación en México
Recientes avances en la ciencia de la computación en México
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Reci<strong>en</strong>tes</strong> <strong>avances</strong> <strong>en</strong> <strong>la</strong> ci<strong>en</strong>cia <strong>de</strong> <strong>la</strong><br />
<strong>computación</strong> <strong>en</strong> <strong>México</strong>
Research on computing sci<strong>en</strong>ce<br />
Editorial Board<br />
Hernán<strong>de</strong>z Lara, Luis<br />
Torres Frausto, Raquel<br />
Silva Millán, Miguel Ranferi<br />
Aya<strong>la</strong> Agui<strong>la</strong>r, Juan Antonio<br />
Cover Design<br />
Macario Hernán<strong>de</strong>z Cruz<br />
Volume 7
<strong>Reci<strong>en</strong>tes</strong> <strong>avances</strong> <strong>en</strong> <strong>la</strong> ci<strong>en</strong>cia <strong>de</strong><br />
<strong>la</strong> <strong>computación</strong> <strong>en</strong> <strong>México</strong><br />
Con Prólogo <strong>de</strong> Juan Luis Díaz <strong>de</strong> León Santiago<br />
Alexan<strong>de</strong>r Gelbukh<br />
Grigori Sidorov<br />
Wilber A. Olán Cristóbal<br />
J. Angel Vera Félix<br />
(Eds.)<br />
Instituto Politécnico Nacional<br />
C<strong>en</strong>tro <strong>de</strong> Investigación <strong>en</strong> Computación<br />
<strong>México</strong> 2004
ISBN: 970-36-0149-9<br />
Copyright © by Instituto Politécnico Nacional, 2004<br />
Editores<br />
Alexan<strong>de</strong>r Gelbukh, Grigori Sidorov,<br />
Wilbert A. Olán Cristóbal, J. Angel Vera Félix<br />
Instituto Politécnico Nacional (IPN)<br />
C<strong>en</strong>tro <strong>de</strong> Investigación <strong>en</strong> Computación (CIC)<br />
Col. Zacat<strong>en</strong>co, CP. 07738, <strong>México</strong>, D.F., <strong>México</strong>.<br />
E-mail:gelbukh@cic.ipn.mx, sidorov@cic.ipn.mx,<br />
wo<strong>la</strong>n@sagitario.cic.ipn.mx, javera@sagitario.cic.ipn.mx<br />
http://www.gelbukh.com<br />
Published by the Instituto Politécnico Nacional<br />
C<strong>en</strong>tro <strong>de</strong> Investigación <strong>en</strong> Computación<br />
Av. Juan <strong>de</strong> Dios Batíz s/n esq. M. Othón <strong>de</strong> M<strong>en</strong>dizábal<br />
Unidad Profesional "Adolfo López Mateos", Zacat<strong>en</strong>co<br />
07738, <strong>México</strong> D.F., <strong>México</strong><br />
http://www.ipn.mx<br />
http://www.cic.ipn.mx<br />
The editors and publisher of this book ma<strong>de</strong> their best effort in preparing this<br />
book, but make no warranty of any kind, expressed or implied, with regard to<br />
the information contained in this book.<br />
All rights reserved. No part of this publication may be reproduced, stored an<br />
retrieval system, or transmitted, in any form or by any means, including<br />
electronic, mechanical, photocopying, recording, or otherwise, without prior<br />
permission of Instituto Politecnico Nacional, except for personal or c<strong>la</strong>ssroom<br />
use provi<strong>de</strong> that copies bear the full citation notice provi<strong>de</strong> on the first page of<br />
each paper.<br />
Printing: 500<br />
Printed in Mexico
Prólogo<br />
La <strong>computación</strong> juega un papel único <strong>en</strong> el mundo contemporáneo, cambiando<br />
profundam<strong>en</strong>te <strong>la</strong> manera <strong>de</strong> ser <strong>de</strong>l hombre, su manera <strong>de</strong> g<strong>en</strong>erar e intercambiar el<br />
conocimi<strong>en</strong>to, su ambi<strong>en</strong>te <strong>de</strong> trabajo y <strong>de</strong> vida cotidiana, así como su forma <strong>de</strong><br />
convivir con otros seres humanos, creando lo que se l<strong>la</strong>ma <strong>la</strong> sociedad <strong>de</strong> <strong>la</strong><br />
información. En los pocos años <strong>de</strong> su exist<strong>en</strong>cia <strong>la</strong> <strong>computación</strong> ha revolucionado <strong>la</strong>s<br />
áreas más importantes <strong>de</strong> <strong>la</strong> ci<strong>en</strong>cia e ing<strong>en</strong>iería –física, química, biología, medicina,<br />
comunicaciones, ing<strong>en</strong>iería civil... El <strong>en</strong>umerar <strong>la</strong>s diversas áreas <strong>de</strong> aplicación <strong>de</strong> <strong>la</strong><br />
<strong>computación</strong> equivaldría a <strong>en</strong>umerar todas <strong>la</strong>s activida<strong>de</strong>s humanas, todas <strong>la</strong>s ramas<br />
<strong>de</strong> <strong>la</strong> ci<strong>en</strong>cia, ing<strong>en</strong>iería, economía, política, cultura y educación.<br />
En <strong>México</strong>, el papel especial <strong>de</strong> <strong>la</strong> <strong>computación</strong> se <strong>en</strong>ti<strong>en</strong><strong>de</strong> completam<strong>en</strong>te <strong>en</strong><br />
todos los niveles políticos, <strong>de</strong>s<strong>de</strong> el ambicioso programa <strong>de</strong> mo<strong>de</strong>rnización<br />
computacional <strong>de</strong>l país l<strong>la</strong>mado e-<strong>México</strong> hasta el apoyo gubernam<strong>en</strong>tal al <strong>de</strong>sarrollo<br />
e imp<strong>la</strong>ntación <strong>de</strong> nuevo software y <strong>la</strong> educación técnica <strong>en</strong> <strong>la</strong> <strong>computación</strong> y <strong>la</strong>s<br />
áreas afines.<br />
El Instituto Politécnico Nacional está a <strong>la</strong> vanguardia <strong>de</strong> este esfuerzo nacional e<br />
internacional, tanto <strong>en</strong> <strong>la</strong> g<strong>en</strong>eración <strong>de</strong> nuevo conocimi<strong>en</strong>to y nuevas aplicaciones <strong>de</strong><br />
<strong>la</strong> <strong>computación</strong> como <strong>en</strong> <strong>la</strong> preparación <strong>de</strong> los recursos humanos <strong>de</strong> <strong>la</strong> más alta<br />
calidad <strong>en</strong> esta rama <strong>de</strong> ci<strong>en</strong>cia e ing<strong>en</strong>iería y <strong>en</strong> <strong>la</strong> creación y el uso <strong>de</strong> los sistemas<br />
basados <strong>en</strong> <strong>la</strong>s tecnologías computacionales para <strong>la</strong> mo<strong>de</strong>rnización <strong>de</strong> su propio<br />
mo<strong>de</strong>lo educativo.<br />
Esta importante actividad <strong>de</strong> nuestro Instituto se realiza <strong>en</strong> primer lugar a través <strong>de</strong><br />
su mo<strong>de</strong>rno C<strong>en</strong>tro <strong>de</strong> Investigación <strong>en</strong> Computación, con sus amplios <strong>en</strong><strong>la</strong>ces<br />
nacionales e internacionales, con sus numerosos proyectos <strong>de</strong> investigación y<br />
<strong>de</strong>sarrollo a esca<strong>la</strong> nacional e internacional, con sus gran<strong>de</strong>s congresos internacionales<br />
que abarcan todas <strong>la</strong>s áreas más importantes <strong>de</strong> <strong>la</strong> <strong>computación</strong>, con más <strong>de</strong> mil<br />
artículos ci<strong>en</strong>tíficos publicados por sus investigadores y estudiantes <strong>en</strong> los siete años<br />
<strong>de</strong> su exist<strong>en</strong>cia, con varios miembros <strong>de</strong> <strong>la</strong> Aca<strong>de</strong>mia Mexicana <strong>de</strong> Ci<strong>en</strong>cias e<br />
Investigadores Nacionales <strong>de</strong> los más altos niveles <strong>en</strong>tre sus profesores.<br />
Esta obra continúa <strong>la</strong> serie <strong>de</strong> libros sobre <strong>la</strong> <strong>computación</strong> preparados por los<br />
especialistas <strong>de</strong> este C<strong>en</strong>tro. Su profundo dominio <strong>de</strong>l tema ha garantizado <strong>la</strong> más alta<br />
calidad <strong>de</strong> los artículos ci<strong>en</strong>tíficos incluidos <strong>en</strong> este libro, para el máximo provecho<br />
<strong>de</strong>l lector. Me <strong>en</strong>orgullezco <strong>de</strong> los jóv<strong>en</strong>es mexicanos <strong>de</strong> toda <strong>la</strong> República que han<br />
<strong>de</strong>mostrado su creatividad, <strong>de</strong>dicación, capacidad <strong>de</strong> investigación y madurez<br />
evid<strong>en</strong>ciada por los trabajos pres<strong>en</strong>tados <strong>en</strong> este libro. Veo que el futuro <strong>de</strong> <strong>la</strong><br />
<strong>computación</strong> <strong>en</strong> nuestro país está <strong>en</strong> manos fuertes y confiables.<br />
El libro pres<strong>en</strong>ta al lector los <strong>avances</strong> <strong>en</strong> <strong>la</strong>s áreas tan importantes <strong>de</strong> <strong>la</strong><br />
<strong>computación</strong> como el procesami<strong>en</strong>to <strong>de</strong> imág<strong>en</strong>es, sistemas <strong>de</strong> información,<br />
ing<strong>en</strong>iería <strong>de</strong> software, Internet, procesami<strong>en</strong>to <strong>de</strong> l<strong>en</strong>guaje natural y análisis <strong>de</strong><br />
textos, robótica móvil y el hardware <strong>de</strong> <strong>la</strong>s computadoras. El libro será <strong>de</strong> gran<br />
utilidad para los estudiantes y los profesionales <strong>en</strong> <strong>la</strong>s áreas afines a <strong>la</strong> <strong>computación</strong>,<br />
así como para los especialistas <strong>en</strong> otras áreas, los ger<strong>en</strong>tes, empresarios y los<br />
promotores <strong>de</strong> <strong>la</strong> educación que buscan nuevas formas <strong>de</strong> mo<strong>de</strong>rnizar sus activida<strong>de</strong>s<br />
a través <strong>de</strong> <strong>la</strong>s aplicaciones y herrami<strong>en</strong>tas computacionales.
No me queda nada más que felicitar a los editores <strong>de</strong> esta obra por un bu<strong>en</strong> trabajo,<br />
a sus autores por los importantes y palpables <strong>avances</strong> y logros <strong>de</strong> <strong>de</strong>sarrollo e<br />
investigación que se dan a conocer a <strong>la</strong> sociedad <strong>en</strong> este libro, y sobre todo felicitar al<br />
lector por t<strong>en</strong>er <strong>la</strong> oportunidad <strong>de</strong> conocerlos, <strong>de</strong> <strong>en</strong>riquecerse con <strong>la</strong> experi<strong>en</strong>cia y<br />
conocimi<strong>en</strong>to <strong>de</strong> los autores y <strong>de</strong> s<strong>en</strong>tir <strong>la</strong> inspiración, <strong>en</strong>tusiasmo y <strong>la</strong> pasión a <strong>la</strong><br />
ci<strong>en</strong>cia <strong>de</strong>l <strong>México</strong> jov<strong>en</strong>.<br />
Dr. Juan Luis Días <strong>de</strong> León Santiago<br />
Director <strong>de</strong>l C<strong>en</strong>tro <strong>de</strong> Investigación <strong>en</strong> Computación, IPN
Prefacio<br />
Todo libro <strong>de</strong>be pres<strong>en</strong>tar un porqué <strong>de</strong> su exist<strong>en</strong>cia, un objetivo. Si quisiéramos<br />
id<strong>en</strong>tificar el objetivo <strong>de</strong> este texto podríamos recordar que todo esfuerzo humano que<br />
g<strong>en</strong>era nuevos conocimi<strong>en</strong>tos e i<strong>de</strong>as <strong>de</strong> interés sólo vale <strong>la</strong> p<strong>en</strong>a si estos frutos son<br />
pres<strong>en</strong>tados al mundo, acción que conlleva b<strong>en</strong>eficios tanto al público lector como a<br />
los autores que pres<strong>en</strong>tan sus resultados, t<strong>en</strong>i<strong>en</strong>do <strong>en</strong> cu<strong>en</strong>ta que estos b<strong>en</strong>eficios<br />
surg<strong>en</strong> sólo <strong>de</strong>l análisis y discusión intelig<strong>en</strong>tes <strong>de</strong>l conocimi<strong>en</strong>to pres<strong>en</strong>tado. Así,<br />
“<strong>Reci<strong>en</strong>tes</strong> <strong>avances</strong> <strong>en</strong> <strong>la</strong> ci<strong>en</strong>cia <strong>de</strong> <strong>la</strong> <strong>computación</strong> <strong>en</strong> <strong>México</strong>” –un libro <strong>de</strong><br />
investigación– fue diseñado para ser un punto <strong>de</strong> difusión <strong>de</strong>l conocimi<strong>en</strong>to g<strong>en</strong>erado<br />
por nuestros jóv<strong>en</strong>es investigadores mexicanos <strong>en</strong> el campo <strong>de</strong> <strong>la</strong> ci<strong>en</strong>cia <strong>de</strong> <strong>la</strong><br />
<strong>computación</strong>, así como también, este libro cu<strong>en</strong>ta con capítulos <strong>de</strong> algunos<br />
investigadores reconocidos que fueron especialm<strong>en</strong>te invitados.<br />
Cumpli<strong>en</strong>do lo anterior, el libro pres<strong>en</strong>ta al lector un panorama <strong>de</strong> <strong>la</strong>s<br />
investigaciones llevadas a cabo <strong>en</strong> <strong>México</strong> <strong>en</strong> el campo <strong>de</strong> <strong>la</strong> <strong>computación</strong>, t<strong>en</strong>i<strong>en</strong>do<br />
<strong>en</strong> cu<strong>en</strong>ta que este material es solo una pequeña porción <strong>de</strong>l inm<strong>en</strong>so trabajo que<br />
nuestros investigadores realizan día a día.<br />
Los capítulos <strong>de</strong>l libro fueron cuidadosam<strong>en</strong>te seleccionados con <strong>la</strong> ayuda <strong>de</strong> un<br />
comité editorial internacional, cada capítulo fue revisado al m<strong>en</strong>os por tres miembros<br />
<strong>de</strong>l comité editorial, a qui<strong>en</strong>es expresamos nuestro más profundo agra<strong>de</strong>cimi<strong>en</strong>to.<br />
La pres<strong>en</strong>te obra está conformada por 19 capítulos, los cuales fueron c<strong>la</strong>sificados<br />
d<strong>en</strong>tro <strong>de</strong> difer<strong>en</strong>tes áreas <strong>de</strong> investigación, a saber:<br />
• Procesami<strong>en</strong>to <strong>de</strong> imág<strong>en</strong>es,<br />
• Sistemas <strong>de</strong> información y ing<strong>en</strong>iería <strong>de</strong> software,<br />
• Internet,<br />
• Procesami<strong>en</strong>to <strong>de</strong> l<strong>en</strong>guaje natural y análisis <strong>de</strong> textos,<br />
• Robótica móvil,<br />
• Hardware.<br />
Estamos seguros que el lector <strong>en</strong>contrará que el trabajo <strong>de</strong> cada uno <strong>de</strong> los jóv<strong>en</strong>es<br />
investigadores es por <strong>de</strong>más excel<strong>en</strong>te, haci<strong>en</strong>do una muy merecida m<strong>en</strong>ción a sus<br />
reconocidos tutores. Aunando a lo anterior los trabajos <strong>de</strong> los doctores especialm<strong>en</strong>te<br />
invitados Dr. Juan Luis Díaz <strong>de</strong> León Santiago (C<strong>en</strong>tro <strong>de</strong> Investigación <strong>en</strong><br />
Computación, <strong>México</strong>) y Dr. Mateo Valero (Instituto Politécnico <strong>de</strong> Cataluña,<br />
España) nos po<strong>de</strong>mos s<strong>en</strong>tir seguros <strong>de</strong> estar <strong>en</strong>tregando a usted un libro <strong>de</strong> <strong>la</strong> más<br />
alta calidad.<br />
Agra<strong>de</strong>cemos al IPN, CIC-IPN, CONACyT, ACM, y RITOS-2 por el apoyo<br />
brindado para <strong>la</strong>s activida<strong>de</strong>s vincu<strong>la</strong>das a <strong>la</strong> realización <strong>de</strong> este libro.<br />
Alexan<strong>de</strong>r Gelbukh,<br />
Grigori Sidorov,<br />
Wilbert A. Olán Cristóbal,<br />
J. Angel Vera Félix<br />
Mayo, 2004, <strong>México</strong>, D.F.
Cont<strong>en</strong>ido<br />
Procesami<strong>en</strong>to <strong>de</strong> imág<strong>en</strong>es<br />
Web-mapping application to retrieve spatial data by means of spatial<br />
ontologies<br />
Miguel Torres, Juan Luis Díaz <strong>de</strong> León,<br />
Ro<strong>la</strong>ndo Quintero, Marco Mor<strong>en</strong>o<br />
Recuperación y análisis <strong>de</strong> datos espaciales usando tecnología .NET<br />
Miguel F. Mata, Miguel Torres<br />
Sistema c<strong>la</strong>sificador <strong>de</strong> materiales basado <strong>en</strong> el reconocimi<strong>en</strong>to <strong>de</strong> imág<strong>en</strong>es<br />
Luis Topiltzin Domínguez Butrón, Luciano González Rodríguez,<br />
Víctor Hugo García Ortega<br />
1<br />
19<br />
30<br />
Sistemas <strong>de</strong> información e ing<strong>en</strong>iería <strong>de</strong> software<br />
Mobile nested transactions monitor based on multi-ag<strong>en</strong>t systems: workflow<br />
<strong>la</strong>yer<br />
Jorge Martínez, Matías Alvarado<br />
Ambi<strong>en</strong>te ubicuo para el trabajo co<strong>la</strong>borativo <strong>de</strong> edición oportunista<br />
Emilio Gutiérrez Arias, Ro<strong>la</strong>ndo M<strong>en</strong>chaca Mén<strong>de</strong>z<br />
38<br />
48<br />
Internet<br />
Descubrimi<strong>en</strong>to dinámico <strong>de</strong> servicios Web <strong>en</strong> nodos UDDI mediante<br />
USML<br />
Giner Alor Hernán<strong>de</strong>z, César Sandoval Hernán<strong>de</strong>z,<br />
José Oscar Olmedo Aguirre<br />
G<strong>en</strong>eración dinámica <strong>de</strong> GUIs para <strong>la</strong> invocación <strong>de</strong> servicios Web<br />
publicados <strong>en</strong> nodos UDDI<br />
César Sandoval Hernán<strong>de</strong>z, Giner Alor Hernán<strong>de</strong>z,<br />
José Oscar Olmedo Aguirre<br />
VCMG: G<strong>en</strong>erador <strong>de</strong> mapas conceptuales vectoriales<br />
Yuri Vizcarra González, Alberto Pacheco González<br />
56<br />
68<br />
80<br />
L<strong>en</strong>guaje natural y análisis <strong>de</strong> textos<br />
Un sistema <strong>de</strong> extracción <strong>de</strong> información sobre <strong>de</strong>sastres naturales<br />
Alberto Téllez Valero, Manuel Montes-y-Gómez,<br />
Luis Vil<strong>la</strong>señor Pineda<br />
89
Desarrollo <strong>de</strong> herrami<strong>en</strong>tas para lexicógrafo con <strong>de</strong>tección automática <strong>de</strong><br />
re<strong>la</strong>ciones semánticas implícitas<br />
Wilbert A. Olán Cristobal, Alexan<strong>de</strong>r Gelbukh,<br />
Grigori Sidorov<br />
Descripción formal <strong>de</strong> secu<strong>en</strong>cias nominales hispanas<br />
Noé Alejandro Castro Sánchez, José Angel Vera Félix,<br />
Igor A. Bolshakov<br />
99<br />
105<br />
Robótica móvil<br />
Análisis e implem<strong>en</strong>tación <strong>de</strong> algoritmos para <strong>la</strong> solución <strong>de</strong> <strong>la</strong>berintos <strong>de</strong><br />
estructura conocida<br />
Omar Rodríguez, Erik Hernán<strong>de</strong>z<br />
Móvil manipu<strong>la</strong>do por <strong>la</strong> PC<br />
Abigail Flores Cruz, Adriana Martínez Mestas,<br />
Leticia E. Torres Ramírez<br />
117<br />
128<br />
Hardware<br />
A compreh<strong>en</strong>sive <strong>de</strong>scription of kilo-instructions processors<br />
Adrian Cristal, Oliverio J. Santana, Mateo Valero<br />
Evaluación <strong>de</strong> una versión parale<strong>la</strong> para el Co<strong>de</strong>c H.264/AVC<br />
Carlos G<strong>en</strong>is Triana, Abe<strong>la</strong>rdo Rodríguez León<br />
Audiómetro contro<strong>la</strong>do por computadora, implem<strong>en</strong>tación mediante<br />
programación visual con observancia <strong>de</strong> normas internacionales<br />
Ma. Julia Cal<strong>de</strong>rón Sambarino, Sergio Suárez Guerra<br />
Análisis <strong>de</strong> <strong>de</strong>sempeño <strong>de</strong> un filtro para el mejorami<strong>en</strong>to <strong>de</strong> imág<strong>en</strong>es <strong>de</strong><br />
huel<strong>la</strong>s dacti<strong>la</strong>res<br />
Victor Hugo García Ortega, Osvaldo Espinosa Sosa<br />
Control y monitoreo <strong>de</strong> variables físicas vía remota usando <strong>la</strong> p<strong>la</strong>taforma<br />
TINI<br />
Osiris Carreño Bernal, Br<strong>en</strong>da García Rojas,<br />
Kar<strong>en</strong> <strong>de</strong> Jesús González Solís, Pao<strong>la</strong> Noriega Mor<strong>en</strong>o,<br />
Victor Hugo García Ortega<br />
Verificador <strong>de</strong> circuitos lógicos<br />
Reyes Ríos Cabrera, Ricardo Chaparro Sánchez,<br />
Rafael Urretabizkaya Garbos<br />
Índice <strong>de</strong> autores<br />
Comité editorial <strong>de</strong>l libro<br />
144<br />
155<br />
167<br />
176<br />
184<br />
194<br />
203<br />
205
Web-Mapping Application to Retrieve Spatial Data<br />
by means of Spatial Ontologies<br />
Miguel Torres, Juan Luis Díaz <strong>de</strong> León, Ro<strong>la</strong>ndo Quintero, Marco Mor<strong>en</strong>o<br />
Geoprocessing Laboratory,<br />
C<strong>en</strong>tre for Computing Research,<br />
National Polytechnic Institute,<br />
Mexico City, Mexico<br />
{mtorres, jdiaz, quintero, marcomor<strong>en</strong>o}@cic.ipn.mx<br />
http://geo.cic.ipn.mx, http://geopro.cic.ipn.mx<br />
Abstract. Many types of information are geographically refer<strong>en</strong>ced and<br />
interactive maps provi<strong>de</strong> a natural user interface to such data. However, the<br />
process of access and recover spatial data pres<strong>en</strong>ts several problems re<strong>la</strong>ted to<br />
heterog<strong>en</strong>eity and interoperability of the geo-information. In this paper, a<br />
Tourism Onto-Gui<strong>de</strong>-Web Application (TOGWA) is pres<strong>en</strong>ted, which is a<br />
web-mapping system focused on retrieving and repres<strong>en</strong>ting geo-information on<br />
the internet by means of spatial ontologies. Moreover, a Multi-Ag<strong>en</strong>t System is<br />
proposed in or<strong>de</strong>r to <strong>de</strong>al with the process of obtain the tourism geoinformation,<br />
which aids in the information-integration task for the several no<strong>de</strong>s<br />
(geographic sites) that are involved in this application. The ag<strong>en</strong>t system<br />
provi<strong>de</strong>s a mechanism to communicate differ<strong>en</strong>t distributed and heterog<strong>en</strong>eous<br />
Geographical Information Systems and retrieve the data by means of GML<br />
<strong>de</strong>scription. Also, this paper proposes an interoperability approach based on<br />
spatial ontologies matching. The matching is performed by the Multi-Ag<strong>en</strong>t<br />
System in every no<strong>de</strong> consi<strong>de</strong>red in the application. The retrieval mechanism is<br />
based on <strong>en</strong>coding the information in a GML <strong>de</strong>scription to link the spatial data<br />
with the ontologies that have be<strong>en</strong> proposed. TOGWA is a web-mapping<br />
system that is composed by two tiers: Cli<strong>en</strong>t tier and Spatial Data Server tier, it<br />
offers an effici<strong>en</strong>t and user-fri<strong>en</strong>dly interface to the cli<strong>en</strong>ts.<br />
1 Introduction<br />
Nowadays, the use of maps has increased consi<strong>de</strong>rably for local, networked and<br />
mobile information systems that share or communicate geographically refer<strong>en</strong>ced<br />
information. This has become possible rec<strong>en</strong>tly due to the re<strong>la</strong>tive wi<strong>de</strong>spread<br />
avai<strong>la</strong>bility of digital map data and <strong>de</strong>velopm<strong>en</strong>ts in Geographical Information<br />
System (GIS) technology. The application range is wi<strong>de</strong> and inclu<strong>de</strong>s: local<br />
governm<strong>en</strong>t p<strong>la</strong>nning, <strong>en</strong>vironm<strong>en</strong>tal monitoring, market analysis, navigation and<br />
public access to information [1].<br />
Interaction with a digital map is typically based on a cycle of elicitation of user<br />
input via m<strong>en</strong>u and dialog boxes, the selection of map areas or features, and the return<br />
of information, which may in turn induce a modification to the map cont<strong>en</strong>t. The<br />
maps themselves are oft<strong>en</strong> close replicas of traditional paper map cartography.
This approach is usually found in many commercial GISs and is now being<br />
adopted in mapping applications on the Internet.<br />
Developm<strong>en</strong>ts in human computer interaction with regard to information retrieval<br />
and data visualization raise the question of whether or not the conv<strong>en</strong>tional approach<br />
can be improved. Certainly, there is a motivation to investigate new methods, since<br />
the curr<strong>en</strong>t map interface, particu<strong>la</strong>rly on the Internet, oft<strong>en</strong> suffers from poor<br />
legibility of symbols and text, unnecessary user actions and ina<strong>de</strong>quate adaptation to<br />
user interests [1].<br />
Nowadays, the spatial databases are very useful and powerful tools to handle,<br />
disp<strong>la</strong>y, and process the geographical information. These databases usually integrate<br />
GISs, which are <strong>de</strong>signed to store and process spatial data. In or<strong>de</strong>r to solve some<br />
ambiguities in the spatial data processing and interpretation, the geo-information<br />
should have good quality, from the input to the repres<strong>en</strong>tation. The “a<strong>de</strong>quate”<br />
repres<strong>en</strong>tation of spatial data is crucial for improving the <strong>de</strong>cision making process in<br />
differ<strong>en</strong>t <strong>en</strong>vironm<strong>en</strong>ts [2].<br />
In this paper, spatial ontologies based on the spatial semantics are g<strong>en</strong>erated, these<br />
ontologies can be used to repres<strong>en</strong>t geographical objects by means of concepts (“not<br />
words”). Such spatial data conceptualization aims to compress the data and to<br />
facilitate the knowledge discovery into spatial databases (SDB).<br />
Up-to-date GISs do not ext<strong>en</strong>sively explore the spatial data semantics. In that<br />
s<strong>en</strong>se, the <strong>de</strong>velopm<strong>en</strong>t of a solid spatial semantics theory is a great chall<strong>en</strong>ge in the<br />
new tr<strong>en</strong>ds of the Geocomputation field. For this, the spatial analysis can use<br />
alternative methods to repres<strong>en</strong>t spatial data. This data repres<strong>en</strong>tation, together with<br />
the semantic rules - both based on data semantics - can be stored in a knowledge-base<br />
to g<strong>en</strong>erate new concepts that form the spatial ontologies. These concepts are <strong>de</strong>fined<br />
by the properties and the behavior of geographical objects, and explored by human<br />
experi<strong>en</strong>ce. In g<strong>en</strong>eral, we seek to correctly repres<strong>en</strong>t geographical objects for their<br />
subsequ<strong>en</strong>t processing [2, 3], as to retrieve spatial data from differ<strong>en</strong>t SDBs and to<br />
repres<strong>en</strong>t them in the TOGWA, for instance.<br />
In our proposal, the first step to g<strong>en</strong>erate the spatial ontologies is to obtain the<br />
spatial semantics of the geographical objects. By obtaining this <strong>de</strong>finition, we can<br />
g<strong>en</strong>erate spatial ontologies and rely on c<strong>en</strong>tralized ontology databases, which are<br />
stored in re<strong>la</strong>tional database systems. The emerg<strong>en</strong>ce of Ext<strong>en</strong>sible Markup Language<br />
(XML) and Geographic Markup Language (GML) allows the ontology metadata to be<br />
embed<strong>de</strong>d in the <strong>en</strong>co<strong>de</strong>d web docum<strong>en</strong>t, facilitating semantic matching by retrieval<br />
spatial concepts.<br />
We propose a Multi-Ag<strong>en</strong>t System (MAS) to perform the communication betwe<strong>en</strong><br />
the differ<strong>en</strong>t spatial databases. Although the <strong>en</strong>coding ag<strong>en</strong>ts may still refer to<br />
c<strong>en</strong>tralized ontology databases during the <strong>en</strong>coding process, the spatial databases can<br />
also be <strong>en</strong>co<strong>de</strong>d in GML because of its op<strong>en</strong>ness. Like many systems, we propose a<br />
Spatial User Interface Ag<strong>en</strong>t (SUIA) in TOGWA to make use of ontologies to<br />
validate user inputs and to capture the requests for retrieving spatial data by means of<br />
“concepts”. In addition, the SUIA works in a web browser providing an easy-use web<br />
user interface for online geo-information retrieval. SUAI is characterized by the<br />
following features:<br />
• Handle spatial data.
• Retrieve spatial data by means of concepts, consi<strong>de</strong>ring the spatial subject<br />
domain.<br />
• Perform spatial queries according to the g<strong>en</strong>erated spatial ontologies.<br />
• G<strong>en</strong>erate new geo-information making spatial analysis.<br />
In this application, the spatial data are associated with differ<strong>en</strong>t concepts, provi<strong>de</strong>d by<br />
the spatial ontologies. Moreover, an ag<strong>en</strong>t is consi<strong>de</strong>red to make several processes,<br />
which are divi<strong>de</strong>d into differ<strong>en</strong>t tasks. The tasks that we are consi<strong>de</strong>ring are the<br />
following: repres<strong>en</strong>tation of geographical ph<strong>en</strong>om<strong>en</strong>a, capability of communicating<br />
with the spatial data (differ<strong>en</strong>t SDB), access to the spatial ontologies, and retrieval of<br />
the GML <strong>de</strong>finition according to the user query.<br />
The rest of the paper is organized as follows: In Section 2 we <strong>de</strong>scribe the Multi-<br />
Ag<strong>en</strong>t System proposed to perform a number of tasks in the application, and the<br />
spatial ontology that retrieve the spatial data. In Section 3 we pres<strong>en</strong>t the architecture<br />
of the TOGWA web-mapping application. The implem<strong>en</strong>tation of the prototype is<br />
shown in Section 4. Section 5 shows the preliminary results obtained by TOGWA.<br />
Our conclusions are sketched out in Section 6.<br />
2 Multi-ag<strong>en</strong>t system and spatial ontology<br />
TOGWA is composed by two basis compon<strong>en</strong>ts to retrieve spatial data. These<br />
compon<strong>en</strong>ts are the following:<br />
• A Multi-Ag<strong>en</strong>t System (MAS) to perform tasks re<strong>la</strong>ted to communicate<br />
differ<strong>en</strong>t spatial databases by means of GML <strong>de</strong>finition and to <strong>en</strong>co<strong>de</strong> the<br />
spatial data for retrieving in the SUAI.<br />
• Spatial ontologies to solve ambiguities that are pres<strong>en</strong>ted in the spatial data<br />
through concepts (“not words”).<br />
2.1 The multi-ag<strong>en</strong>t system<br />
According to [4], an ag<strong>en</strong>t is a system that tries to fulfill a set of goals in a complex,<br />
dynamic <strong>en</strong>vironm<strong>en</strong>t. It can s<strong>en</strong>se the <strong>en</strong>vironm<strong>en</strong>t through its s<strong>en</strong>sors and act upon<br />
it using its actuators. In this work, we propose a Multi-Ag<strong>en</strong>t System (MAS) that<br />
provi<strong>de</strong>s some services to facilitate the geo-information retrieval mechanism within a<br />
tourism system, which is called TOGWA.<br />
There are two main functions of the ag<strong>en</strong>t in the TOGWA. One is to provi<strong>de</strong> the<br />
user with an intellig<strong>en</strong>t service that communicates differ<strong>en</strong>t spatial databases and<br />
<strong>en</strong>co<strong>de</strong>s the spatial data for retrieving. The other is to check the GML <strong>de</strong>finition and<br />
to link the ontology for knowing whether the concepts fulfill the search criteria.<br />
Several types of ag<strong>en</strong>ts have be<strong>en</strong> proposed, they are organized in four <strong>la</strong>yers<br />
<strong>de</strong>p<strong>en</strong>ding on its functionality. The ag<strong>en</strong>ts are shown in Fig.1.
• Data Layer. It is composed by the ag<strong>en</strong>ts that provi<strong>de</strong> data access services.<br />
These services can be, among others: retrieval, storage, adjustm<strong>en</strong>t to the<br />
communication format.<br />
• Managem<strong>en</strong>t Layer. The ag<strong>en</strong>ts of this <strong>la</strong>yer handle and coordinate other<br />
ag<strong>en</strong>ts into MAS. Also, they provi<strong>de</strong> the capabilities of communication to<br />
other ag<strong>en</strong>ts.<br />
• Application Layer. In this <strong>la</strong>yer the ag<strong>en</strong>ts perform the tasks of the specific<br />
application, such as visualization and functions to the spatial data. Moreover,<br />
these ag<strong>en</strong>ts manage the ontologies (Trip Package and Map) that provi<strong>de</strong> the<br />
nee<strong>de</strong>d data to the interface in or<strong>de</strong>r to give its own services.<br />
• Pres<strong>en</strong>tation Layer. Here, the ag<strong>en</strong>ts provi<strong>de</strong> a user graphic interface to allow<br />
the users to obtain the TOGWA services.<br />
Fig. 1. C<strong>la</strong>ssification of the ag<strong>en</strong>ts used in TOGWA<br />
In Fig. 1 we grouped the <strong>la</strong>yers into two clusters: Core Utility Ag<strong>en</strong>ts and TOGWA<br />
Specific Ag<strong>en</strong>ts. Core Utility is a set of ag<strong>en</strong>ts that can be used not only in TOGWA<br />
but also in any other application. Its tasks are the following:<br />
• Data Locator. It finds the data that better fulfills the <strong>de</strong>scription giv<strong>en</strong> by its<br />
cli<strong>en</strong>ts. The ag<strong>en</strong>t provi<strong>de</strong>s, as a result, the address of the ag<strong>en</strong>t which can<br />
provi<strong>de</strong> the access to the data.<br />
• Data Access. It provi<strong>de</strong>s the mechanisms to access to the data and metadata of<br />
a particu<strong>la</strong>r source. The queries and results are giv<strong>en</strong> in XML.<br />
• Communication Router. This ag<strong>en</strong>t provi<strong>de</strong>s the capabilities to MAS for<br />
communicating with other one, through any suitable way (Internet, others<br />
MAS, Virtual Private Networks, etc.).<br />
• System Managem<strong>en</strong>t. This ag<strong>en</strong>t handles the process within a MAS. It starts<br />
the compute of all other ag<strong>en</strong>ts in the same MAS.<br />
• Directory Facilitator. It maintains a list of all the known ag<strong>en</strong>ts by MAS as<br />
well as the services that each ag<strong>en</strong>t provi<strong>de</strong>s to the <strong>la</strong>yers.
• Spatial Facilitator. This ag<strong>en</strong>t retrieves the spatial data from the SDB.<br />
According to the cli<strong>en</strong>t’s request. The ag<strong>en</strong>t s<strong>en</strong>ds the geographical objects to<br />
make-up a map in the a<strong>de</strong>quate format (GML <strong>de</strong>scription).<br />
The TOGWA Specific Ag<strong>en</strong>ts is a set of ag<strong>en</strong>ts that work to accomplish specific<br />
TOGWA goals so that they can not be used in other applications. The ag<strong>en</strong>ts that<br />
belong to this cluster are the following:<br />
• Resource Managem<strong>en</strong>t. This ag<strong>en</strong>t <strong>de</strong>als with all the resource assignm<strong>en</strong>t<br />
tasks, as searching a hotel and flight and finding trip packages, for instance.<br />
• Ontology managem<strong>en</strong>t. This ag<strong>en</strong>t keeps the information about the Map Geo-<br />
Ontology and uses it to trans<strong>la</strong>te the user’s request into structured queries,<br />
which will be computed into the Ontology Administration Query Module.<br />
These queries allow other ag<strong>en</strong>ts assigning resources to users and finding out<br />
geographical objects to provi<strong>de</strong> maps to the cli<strong>en</strong>ts.<br />
• Ontology matching. This ag<strong>en</strong>t acts wh<strong>en</strong> there are confusions about the<br />
concepts in the cli<strong>en</strong>t’s ontology and the MAS ontology. Th<strong>en</strong> the ag<strong>en</strong>t<br />
attempts to find the closest concept in MAS ontology, according to the concept<br />
giv<strong>en</strong> by the cli<strong>en</strong>t.<br />
• Spatial User Interface Ag<strong>en</strong>t. This ag<strong>en</strong>t trans<strong>la</strong>tes data giv<strong>en</strong> by the MAS into<br />
a r<strong>en</strong><strong>de</strong>red map that the user can un<strong>de</strong>rstand. The ag<strong>en</strong>t is the user interface of<br />
the MAS, but it does not belong to it.<br />
The elem<strong>en</strong>ts that compose the TOGWA-MAS are shown in Fig. 2. We can see that<br />
MAS consists of sev<strong>en</strong> ag<strong>en</strong>ts and an ontology repository.<br />
Fig. 2. Features that compose the TOGWA-MAS<br />
In Fig. 3 the interaction mo<strong>de</strong>l betwe<strong>en</strong> two TOGWA-MAS is shown. Moreover, Fig.<br />
3 shows the steps to accomplish the TOGWA process, which is outlined as follows.<br />
1. The Cli<strong>en</strong>t (Spatial User Interface Ag<strong>en</strong>t) makes a request to TOGWA (for<br />
example, a user in Spain <strong>de</strong>sires to get a road map of the zone of Cancun in<br />
Mexico).<br />
2. The MAS in Spain asks to its Directory Facilitator for the MAS that has such<br />
information.
3. The Directory Facilitator searches in its database the requested information,<br />
and responds to the MAS that the MAS of Mexico has the map.<br />
4. The MAS in Spain asks the MAS in Mexico for the road map of the zone of<br />
Cancun.<br />
5. The MAS in Mexico computes the request and <strong>de</strong>termines if it has such<br />
information.<br />
6. If it does, th<strong>en</strong> the request passes to the Spatial Facilitator.<br />
7. It makes a spatial query to the SDB for retrieving the geographical objects<br />
requested.<br />
8. The Spatial Facilitator returns to the MAS in Mexico the geographical objects<br />
nee<strong>de</strong>d to make-up the requested map.<br />
9. The MAS in Mexico trans<strong>la</strong>tes this information using the ontology to a format<br />
that the MAS in Spain will un<strong>de</strong>rstand.<br />
10. H<strong>en</strong>ce, it s<strong>en</strong>ds the information to the MAS in Spain.<br />
11. Finally, the MAS in Spain s<strong>en</strong>ds the result to the cli<strong>en</strong>t, and it disp<strong>la</strong>ys the<br />
road map of Cancun to the user with a brief attributive <strong>de</strong>scription.<br />
Fig. 3. Interaction mo<strong>de</strong>l betwe<strong>en</strong> two existing TOGWA-MAS<br />
2.2 The spatial ontologies<br />
The most wi<strong>de</strong>ly accepted common conceptualization of the geographical data is<br />
based on the <strong>de</strong>scription of geographical objects and fields [5, 6]. These objects are<br />
not necessarily re<strong>la</strong>ted to a specific geographic ph<strong>en</strong>om<strong>en</strong>on, because human-built<br />
features are typically mo<strong>de</strong>led as objects [7, 8]. The spatial semantics <strong>de</strong>finition is<br />
<strong>de</strong>scribed in [2] and aim to correctly repres<strong>en</strong>t spatial data in an alternative and<br />
universal way to g<strong>en</strong>erate spatial ontologies.
For this purpose, we will consi<strong>de</strong>r a spatial ontology as an explicit, shared and<br />
structured specification of conceptualization, that is, a <strong>de</strong>scription of properties and<br />
re<strong>la</strong>tionships that can exist betwe<strong>en</strong> the geographical objects to form concepts.<br />
Moreover, ontologies can be consi<strong>de</strong>red as “<strong>la</strong>nguages”, which use a specific<br />
vocabu<strong>la</strong>ry to <strong>de</strong>scribe <strong>en</strong>tities, c<strong>la</strong>sses, properties and functions re<strong>la</strong>ted to a certain<br />
view of the geographical world [9, 10].<br />
In that s<strong>en</strong>se, our approach is <strong>de</strong>signed to solve the ambiguities that can exist wh<strong>en</strong><br />
we <strong>de</strong>al with single characteristics of the geographical objects. This can be achieved<br />
because the spatial ontology is <strong>de</strong>fined by concepts (not by words) according to the<br />
geographical objects.<br />
The spatial ontologies can be c<strong>la</strong>ssified in levels according to their <strong>de</strong>p<strong>en</strong>d<strong>en</strong>ce on<br />
a specific task or point of view. These levels are g<strong>en</strong>erated for a specific spatial<br />
ontology (top-ontology) and it can be particu<strong>la</strong>rized to <strong>de</strong>fine a particu<strong>la</strong>r ontology<br />
(down-ontology). There are also differ<strong>en</strong>t levels of information <strong>de</strong>tail: Low-level<br />
ontologies correspond to very <strong>de</strong>tailed information and high-level ontologies<br />
correspond to more g<strong>en</strong>eral information.<br />
In this situation, the g<strong>en</strong>eration of more <strong>de</strong>tailed ontologies should be based on the<br />
high-level ontologies, so that each new ontology level can incorporate the new<br />
knowledge pres<strong>en</strong>ted in the higher level. These new ontologies are more <strong>de</strong>tailed,<br />
because they refine g<strong>en</strong>eral <strong>de</strong>scriptions of the level from which they have be<strong>en</strong><br />
g<strong>en</strong>erated [11].<br />
The levels of ontologies can be used to gui<strong>de</strong> processes for the extraction of more<br />
g<strong>en</strong>eral <strong>de</strong>tailed information. The use of multiple ontologies allows the extraction of<br />
information in differ<strong>en</strong>t stages of c<strong>la</strong>ssification.<br />
The use of explicit spatial ontologies contributes to better correct spatial<br />
repres<strong>en</strong>tation, because every geographical object <strong>de</strong>scription is based on an implicit<br />
ontology. By using that, it is possible to avoid explicit conflicts and confusions<br />
betwe<strong>en</strong> the ontological concepts and the implem<strong>en</strong>tation [12].<br />
On the other hand, spatial ontologies p<strong>la</strong>y an ess<strong>en</strong>tial role in the conceptualization<br />
of spatial databases, allowing the establishm<strong>en</strong>t of correspond<strong>en</strong>ces and interre<strong>la</strong>tions<br />
among the differ<strong>en</strong>t domains of geographical objects and re<strong>la</strong>tions.<br />
For instance, the ontology “Limit” can be repres<strong>en</strong>ted in differ<strong>en</strong>t concepts for<br />
diverse spatial databases. “Limit” in some cases repres<strong>en</strong>ts: “coast boundary”,<br />
separation betwe<strong>en</strong> the “ground” and the “sea”, “contour of value zero”, “boundary”<br />
among two regions (states, countries, etc.), and so on (Fig. 4).<br />
Using this approach, we can g<strong>en</strong>erate specific spatial ontologies after <strong>de</strong>fining the<br />
top-ontology to particu<strong>la</strong>rize the conceptualization in other specific ontologies (downontology).
Fig. 4. Ontology “Limit” that is composed by differ<strong>en</strong>t concepts re<strong>la</strong>ted to “limit” for<br />
subsequ<strong>en</strong>t spatial repres<strong>en</strong>tation<br />
According to our approach, it is obligatory to count with a spatial subject domain. It is<br />
<strong>de</strong>fined as a set of “names” that <strong>de</strong>scribe the primitives of spatial repres<strong>en</strong>tation.<br />
Thus, we can start with a priori knowledge of the geographical objects that appear,<br />
e.g. in the map leg<strong>en</strong>d. For example, “blue” lines are united un<strong>de</strong>r the concept (name)<br />
“river” and “b<strong>la</strong>ck” lines are united un<strong>de</strong>r the concept “fracture”, etc. In reverse, the<br />
differ<strong>en</strong>t concepts are united un<strong>de</strong>r the same <strong>de</strong>scription of the spatial repres<strong>en</strong>tation<br />
that is “line” [2]. The interaction betwe<strong>en</strong> the subject domain and the taxonomy is<br />
used to locate concepts into the spatial subject domain that correspond to a case of<br />
study, and to compute these concepts in or<strong>de</strong>r to g<strong>en</strong>erate spatial ontologies [2, 4].<br />
Fig. 5 shows the <strong>de</strong>finition of spatial subject domain.<br />
Fig. 5. Interactions of the Spatial Subject Domain<br />
To <strong>de</strong>fine the spatial subject domain, it is necessary to e<strong>la</strong>borate a <strong>de</strong>scription of the<br />
spatial thematic to be analyzed, consi<strong>de</strong>ring the main features that compose this<br />
theme, such as the data mo<strong>de</strong>l and the resolution levels of the spatial data.<br />
All characteristics that are consi<strong>de</strong>red in the <strong>de</strong>scription of the spatial subject<br />
domain should repres<strong>en</strong>t re<strong>la</strong>tionships betwe<strong>en</strong> themselves too. Spatial subject<br />
domain has to recognize the differ<strong>en</strong>t semantic levels of a priori knowledge that is<br />
stored in this domain.
The use of ontologies in spatial databases <strong>en</strong>ables knowledge sharing and<br />
information integration. The proposed approach provi<strong>de</strong>s dynamic and flexible<br />
information exchange and allows partial integration of spatial data wh<strong>en</strong><br />
complet<strong>en</strong>ess is impossible.<br />
This can help the next g<strong>en</strong>eration of spatial databases to solve semantic ambiguities<br />
in the avai<strong>la</strong>ble geo-information, because the context of the spatial data can change<br />
according to the case of study [11].<br />
The query functionality to retrieve spatial data by means of spatial ontologies is the<br />
following: 1) the user makes a request by means of TOGWA; 2) the information is<br />
searched in any TOGWA-MAS; 3) wh<strong>en</strong> the data are located; it is <strong>en</strong>co<strong>de</strong>d into the<br />
GML <strong>de</strong>finition; 4) this <strong>de</strong>finition is s<strong>en</strong>t to the Ontology Administration Query<br />
Module to compute the request for obtaining the spatial and attributive data by means<br />
of concepts, which form the ontology; 5) insi<strong>de</strong> TOGWA, a priori knowledge that is<br />
stored in the spatial subject domain interacts with the spatial taxonomy, consi<strong>de</strong>ring in<br />
this case, the “arcs” as primitive of repres<strong>en</strong>tation. Fig. 6 shows the mechanism to<br />
obtain the spatial ontology by means of the Ontology Administration Query Module.<br />
In addition, Fig. 6 shows the query mechanism to <strong>de</strong>scribe the concept “Roads”<br />
into the Map Geo-Ontology. In this case, the ontology is composed by several “subconcepts”,<br />
which are or<strong>de</strong>red in a hierarchical way. Moreover, we see in Fig. 6<br />
differ<strong>en</strong>t levels of the concepts, starting with a top-level (Roads) and finishing with<br />
down-levels (One rail, two rails, etc.). Wh<strong>en</strong> the ontologies pres<strong>en</strong>t more levels of<br />
concepts, it is possible to particu<strong>la</strong>rize these in sub-concepts, while the level is less<br />
(down-level), the concept is more particu<strong>la</strong>r. The ontologies that have be<strong>en</strong> proposed<br />
by TOGWA are <strong>de</strong>scribed in Section 4.<br />
Fig. 6. Interactive process to retrieve geographical objects by means of spatial ontologies
3 Architecture of TOGWA<br />
The Tourism Onto-Gui<strong>de</strong>-Web Application (TOGWA) is a web-mapping system that<br />
is composed by two tiers: Cli<strong>en</strong>t tier and Spatial Data Server tier. These tiers contain<br />
the following compon<strong>en</strong>ts: Spatial User Ag<strong>en</strong>t Interface (SUAI), Ontology<br />
Administration Query Module (OAQM), Spatial Data Server (SDS), Ag<strong>en</strong>t<br />
Administration Module (AAM) and Spatial Database (SDB) [13].<br />
This application pres<strong>en</strong>ts cli<strong>en</strong>t-server architecture. TOGWA is consi<strong>de</strong>red a<br />
distributed system because it is able to retrieve spatial data from differ<strong>en</strong>t GIS sites by<br />
means of GML <strong>de</strong>finition. Fig. 7 <strong>de</strong>picts the g<strong>en</strong>eral architecture of the Web-Mapping<br />
system.<br />
Fig. 7. Architecture of the Tourism Onto-Gui<strong>de</strong>-Web Application<br />
The g<strong>en</strong>eral process to retrieve spatial and attributive data is the following:<br />
Spatial User Ag<strong>en</strong>t Interface (SUAI) receives requests from a user. It assists the<br />
cli<strong>en</strong>t to search, query and manipu<strong>la</strong>te the map in an effici<strong>en</strong>t and user-fri<strong>en</strong>dly way.<br />
SUAI attempts to un<strong>de</strong>rstand the subject domain (geographical context of the user),<br />
and s<strong>en</strong>ds a message to the Spatial Data Server (SDS) to ask more geo-information or<br />
to modify the map to change the cont<strong>en</strong>t and resolution <strong>de</strong>tail. SUAI should keep a<br />
concise profile for each user to record his search of interest. The Ag<strong>en</strong>t<br />
Administration Module (AAM) receives requests from the SUAI and broadcasts the<br />
requests of the users to the Ontology Administration Query Module (OAQM) in or<strong>de</strong>r<br />
to search the concept into the ontologies and to retrieve the geo-information from the<br />
Spatial Database (SDB). If the geo-information associated to the concept could not be<br />
found in the SDB, the OAQM will s<strong>en</strong>d a notification to the AAM to perform a query<br />
in differ<strong>en</strong>t GIS sites linked to TOGWA. This process is ma<strong>de</strong> up by means of the<br />
GML <strong>de</strong>finition, wh<strong>en</strong> the geo-information is found; it is <strong>en</strong>co<strong>de</strong>d in the GML<br />
<strong>de</strong>scription and transferred to the AAM to retrieve the spatial data according to the<br />
spatial ontology. Finally, the spatial data is s<strong>en</strong>t to the SUAI.
4 Implem<strong>en</strong>tation of the prototype<br />
TOGWA prototype has be<strong>en</strong> implem<strong>en</strong>ted in Java to keep the distribution and multip<strong>la</strong>tform<br />
execution [14]. TOGWA consists of sev<strong>en</strong> no<strong>de</strong>s to retrieve spatial and<br />
attributive data. The no<strong>de</strong>s that are consi<strong>de</strong>red to this application are the following:<br />
Mexico, Spain, Costa Rican, Italy, Eng<strong>la</strong>nd, Cuba and Chile. The SUAI is<br />
implem<strong>en</strong>ted as a Java Applet and runs on the cli<strong>en</strong>t si<strong>de</strong> to interact with a web user.<br />
The AAM has be<strong>en</strong> implem<strong>en</strong>ted as a Java servlet using Tomcat 5.0.12. The<br />
visualization on the cli<strong>en</strong>t si<strong>de</strong> is based on Shapefiles, which is proposed by Esri, Inc<br />
[15].<br />
There are several compon<strong>en</strong>ts in the prototype, a web page, an invisible applet, a<br />
servlet and an ontology parser. The data workflow is <strong>de</strong>picted in Fig. 8.<br />
Fig. 8. Data workflow to obtain the spatial data according to the spatial ontology<br />
Wh<strong>en</strong> a user accesses the web page, the JavaScript embed<strong>de</strong>d in the web page will<br />
call a Java applet to s<strong>en</strong>d an http request to the Java servlet, which will invoke the<br />
ontology parser to create an ontology object from the ontology repository. If the<br />
information is not found in the Ontology Repository, the OAQM s<strong>en</strong>ds a GML<br />
<strong>de</strong>finition to locate the data in any no<strong>de</strong>. Wh<strong>en</strong> the information is found, it is received<br />
by the OAQM for being computed. Later, the OAQM s<strong>en</strong>ds the object as a serialized<br />
Java object to the applet.<br />
The ontology object contains the <strong>en</strong>tire ontology. The applet uses the ontology<br />
object to verify if the user has performed a valid search. If valid, the applet will<br />
submit the search to the servlet, which in turn invokes the shapefile g<strong>en</strong>erator to<br />
obtain a shapefile for the cli<strong>en</strong>t to refresh the web page and to retrieve the spatial data.<br />
In this context, a spatial ontology is a part of knowledge, concerning a particu<strong>la</strong>r<br />
spatial subject domain; it <strong>de</strong>scribes a spatial taxonomy of concepts for that subject<br />
domain, which <strong>de</strong>fine the spatial semantic interpretation of the knowledge. Spatial<br />
ontologies in TOGWA <strong>de</strong>fine the spatial semantic re<strong>la</strong>tionships of the geographical<br />
objects. The ontology repository is organized in a tree structure.
We propose two ontologies to obtain the spatial data by means of concepts, in this<br />
case the Map Geo-Ontology and Trip Package Ontology.<br />
These ontologies provi<strong>de</strong> the concepts re<strong>la</strong>ted to the information retrieval to the<br />
user. The retrieval process is performed by constraints, which are <strong>de</strong>fined by the<br />
cli<strong>en</strong>t.<br />
Map Geo-Ontology is focused on retrieving particu<strong>la</strong>r maps of the user interest.<br />
This spatial ontology can g<strong>en</strong>erate four types of maps: Roads, Weather, Urban and<br />
Sightseeing. The spatial ontology is g<strong>en</strong>erated by the interaction process of the spatial<br />
taxonomy and the spatial subject domain.<br />
Trip Package Ontology is proposed to acquire attributive data re<strong>la</strong>ted to the interest<br />
p<strong>la</strong>ces to visit for the users. A user can obtain relevant information according to his<br />
interest and the matching concepts in the <strong>de</strong>finition. The data can be found in any<br />
no<strong>de</strong> consi<strong>de</strong>red into the application.<br />
The interaction and communication process has be<strong>en</strong> <strong>de</strong>scribed in previous section<br />
(Multi-Ag<strong>en</strong>t System). The retrieval of concepts among ontologies is performed<br />
consi<strong>de</strong>ring the re<strong>la</strong>tionships of them by means of MAS. Fig. 9 and Fig. 10 show the<br />
ontologies that we propose to retrieve spatial data by means of concepts.<br />
Fig. 9. Trip Package ontology
Fig. 10. Map spatial ontology<br />
On the other hand, a GML <strong>de</strong>finition is used to obtain the spatial data from differ<strong>en</strong>t<br />
distributed GIS according to the request of the user. MAS s<strong>en</strong>ds this <strong>de</strong>finition to find<br />
the specification re<strong>la</strong>ted to the request. If the data has be<strong>en</strong> found, the GML <strong>de</strong>finition<br />
<strong>en</strong>co<strong>de</strong>s the information, which is s<strong>en</strong>t to the Ontology Repository for matching this<br />
information <strong>en</strong>co<strong>de</strong>d into the GML <strong>de</strong>finition with the ontology structures. Insi<strong>de</strong> the<br />
Ontology Administration Query Module, the information is parsed for re<strong>la</strong>ting it with<br />
the concepts, which integrate the ontologies. We use the re<strong>la</strong>tionships betwe<strong>en</strong><br />
concepts that belong to the ontology to communicate the Map and Trip Package<br />
Ontologies. The use of re<strong>la</strong>tionships of concepts provi<strong>de</strong>s <strong>de</strong>tailed information (spatial<br />
and attributive), because we can obtain concepts in certain directions as breath and<br />
<strong>de</strong>pth first search.<br />
If the information is valid, it is necessary to g<strong>en</strong>erate the shapefile by means of the<br />
Shapefile Creator in or<strong>de</strong>r to s<strong>en</strong>d it to the Spatial User Ag<strong>en</strong>t Interface. A brief<br />
<strong>de</strong>scription of the GML <strong>de</strong>finition is shown in Table 1.<br />
5 Preliminary results by TOGWA<br />
By using TOGWA, we have <strong>de</strong>veloped roads, city, weather and sightseeing maps.<br />
These maps are g<strong>en</strong>erated by means of concepts that belong to the ontologies (Trip<br />
Package and Map). The data have be<strong>en</strong> retrieved by the GML <strong>de</strong>finition according to<br />
the user request. SUAI contains an effici<strong>en</strong>t and user-fri<strong>en</strong>dly interface, which is<br />
composed by some spatial tools. Some results are shown in this section.
Fig. 11 <strong>de</strong>picts the map of roads for Toluca City, Mexico. This map consists of<br />
differ<strong>en</strong>t thematics as Popu<strong>la</strong>tions, Roads, Urban Areas and Internal Administrative<br />
Divisions. The roads pres<strong>en</strong>ted in this map are c<strong>la</strong>ssified by its properties: four rails,<br />
two rails, tracks and urbanized routes. The goal of this map is to gui<strong>de</strong> the users for<br />
knowing their interest p<strong>la</strong>ces in low level of <strong>de</strong>tail (1:200,000).<br />
Table 1. Brief GML <strong>de</strong>scription re<strong>la</strong>ted to TOGWA<br />
<br />
Fig. 11. Map of roads<br />
Fig. 12. City Map
City map is composed by streets, av<strong>en</strong>ues and pres<strong>en</strong>t differ<strong>en</strong>t interest sites. Fig.<br />
12 shows the city map of Lindavista area in Mexico City, within a scale of 1:5,000.<br />
In this map we show the location of differ<strong>en</strong>t sites as Restaurants, Bus Stations and<br />
Hotels in this area. The users can retrieve a city map according to their necessities.<br />
Also, Trip Description Box provi<strong>de</strong>s useful information re<strong>la</strong>ted to the user request.<br />
Fig. 13 shows the Sightseeing map of San Pablito in Quintana Roo, Mexico. This<br />
map <strong>de</strong>scribes g<strong>en</strong>eral aspects of San Pablito, showing the Information Sites Location,<br />
Gas Stations, Camping Zones, Restaurants and Archeological Sites. Moreover, it<br />
provi<strong>de</strong>s the g<strong>en</strong>eral structure of the popu<strong>la</strong>tion. Additionally, this map pres<strong>en</strong>ts the<br />
roads that connect with San Pablito (in red color). The map scale <strong>de</strong>p<strong>en</strong>ds on the size<br />
of the area of interest.<br />
Fig. 13. Sightseeing Map<br />
Fig. 14. Weather Map<br />
Weather map consists of vegetation areas, temperature and precipitation contours.<br />
This map gui<strong>de</strong>s to the users to know the characteristics of the weather in a particu<strong>la</strong>r<br />
p<strong>la</strong>ce, wh<strong>en</strong> the users want to travel according to their criteria of retrieval request. In
addition, Fig. 14 <strong>de</strong>picts attributive information re<strong>la</strong>ted to the map into the Trip<br />
Description Box.<br />
6 Conclusions<br />
In the pres<strong>en</strong>t work, the Tourism Onto-Gui<strong>de</strong>-Web Application (TOGWA) has be<strong>en</strong><br />
proposed. TOGWA is a web-mapping system focused on retrieving geo-information<br />
by means of spatial ontologies, and on repres<strong>en</strong>ting it on the Internet. We use the<br />
spatial semantics to g<strong>en</strong>erate the geo-ontology for repres<strong>en</strong>ting geographical objects<br />
by means of concepts.<br />
TOGWA contains a Multi-Ag<strong>en</strong>t System, which performs the following tasks:<br />
• To communicate differ<strong>en</strong>t spatial databases by means of GML <strong>de</strong>finition.<br />
• To <strong>en</strong>co<strong>de</strong> the spatial data for retrieval in the SUAI.<br />
• To solve ambiguities that can be pres<strong>en</strong>ted in the spatial data by means of<br />
concepts (“not words”).<br />
The spatial subject domain <strong>de</strong>finition is ori<strong>en</strong>ted towards an interaction with spatial<br />
taxonomy to conceptualize the spatial databases. In ess<strong>en</strong>ce, the spatial subject<br />
domain is <strong>de</strong>fined as a set of “names” that <strong>de</strong>scribe the primitives of spatial<br />
repres<strong>en</strong>tation. Thus, we can start with a priori knowledge of the geographical objects<br />
to examine the spatial data, which interact with the spatial taxonomy to g<strong>en</strong>erate<br />
spatial ontologies.<br />
We attempt to show an alternative approach to repres<strong>en</strong>t spatial data on the Internet<br />
consi<strong>de</strong>ring the re<strong>la</strong>tionships that compose the ontologies to retrieve spatial data<br />
according to several search criteria.<br />
In addition, the spatial ontologies catch the semantics of the spatial data to provi<strong>de</strong><br />
relevant information re<strong>la</strong>ted to the concepts. These ontologies can be used to establish<br />
agreem<strong>en</strong>ts on diverse views of the world and consequ<strong>en</strong>tly to carry out the<br />
“meaning” of the geo-information. In many situations, this geo-information is<br />
embed<strong>de</strong>d in the spatial repres<strong>en</strong>tation of geographical ph<strong>en</strong>om<strong>en</strong>a in the humanmind.<br />
The use of ontologies in spatial databases <strong>en</strong>ables knowledge sharing and<br />
information integration. The proposed approach provi<strong>de</strong>s dynamic and flexible<br />
information exchange and allows partial integration of spatial data wh<strong>en</strong><br />
complet<strong>en</strong>ess is impossible in the web.<br />
The communication betwe<strong>en</strong> ontologies is performed by MAS, which seeks the<br />
re<strong>la</strong>tionships of the concepts to match no<strong>de</strong>s in the ontologies. This process is<br />
iterative and the new g<strong>en</strong>erated concepts can be consi<strong>de</strong>red in the spatial subject<br />
domain.<br />
This approach can aid to solve semantic ambiguities betwe<strong>en</strong> the avai<strong>la</strong>ble geoinformation,<br />
because the context of the spatial data can change, according to the case<br />
of study and the repres<strong>en</strong>tation state by means of concepts of the spatial data.
Acknowledgm<strong>en</strong>ts<br />
The authors of this paper wish to thank the C<strong>en</strong>tre for Computing Research (CIC-<br />
IPN), G<strong>en</strong>eral Coordination of Postgraduate Study and Research (CGEPI), National<br />
Polytechnic Institute (IPN) and the Mexican National Council for Sci<strong>en</strong>ce and<br />
Technology (CONACYT) for their support.<br />
Refer<strong>en</strong>ces<br />
1. Li, M., Zhou, S. and Jones, C.B.: Multi-ag<strong>en</strong>t Systems for Web-Based Map Information<br />
Retrieval. In Eg<strong>en</strong>hofer, M.J. and Mark, D.M. (Eds.), GISci<strong>en</strong>ce 2002, Lecture Notes in<br />
Computer Sci<strong>en</strong>ce Vol. 2478 (2002) 161-180<br />
2. Torres, M. and Levachkine, S.: Semantics Definition to Repres<strong>en</strong>t Spatial Data, In:<br />
Levachkine S., Bodanksky E. and Ruas A., (eds.), e-Proceedings of International Workshop<br />
on Semantic Processing of Spatial Data (GEOPRO 2002), Mexico City, Mexico (2002)<br />
3. Eg<strong>en</strong>hofer, M. and Frank, A.U.: LOBSTER: Combining AI and Database Techniques for<br />
GIS. International Journal of Photogrammetric Engineering and Remote S<strong>en</strong>sing, Vol. 56,<br />
No.6 (1997) 919-926<br />
4. Maes, P.: Mo<strong>de</strong>ling Adaptive Autonomous Ag<strong>en</strong>ts. Artificial Life, No. 1 (1994) 135-162<br />
5. Fonseca, F. and Eg<strong>en</strong>hofer, M.: Ontology-Driv<strong>en</strong> Geographic Information Systems,<br />
Proceedings of 7 th ACM Symposium on Advances in Geographic Information Systems,<br />
Kansas City, United States (1999) 14-19<br />
6. Fonseca, F., Eg<strong>en</strong>hofer, M. and Agouris, P.: Using Ontologies for Integrated Geographic<br />
Information Systems. Transactions in GIS, Vol.6, No. 3 (2002) 25-40<br />
7. Eg<strong>en</strong>hofer, M. and Frank, A.: Naive Geography, in Frank A. and Kuhn W., (Eds.) Spatial<br />
Information Theory, A Theoretical Basis for GIS, Proceedings of the International<br />
Confer<strong>en</strong>ce COSIT ’95, Lecture Notes in Computer Sci<strong>en</strong>ce, Vol. 988, Springer-Ver<strong>la</strong>g,<br />
Berlin (1995) 1-15<br />
8. Gooldchild, M.F., Eg<strong>en</strong>hofer, M., Fegeas, R. and Kottman, C. Interoperating Geographic<br />
Information Systems, Editorial: Kluwer Aca<strong>de</strong>mic Publishers (1999)<br />
9. Guarino, N.: Formal Ontology and Information Systems, in Guarino (Ed.), Formal Ontology<br />
in Information Systems, Editorial: IOS Press (1998) 3-15<br />
10. Guarino, N.: Formal Ontology, Conceptual Analysis and Knowledge Repres<strong>en</strong>tation.<br />
International Journal of Human and Computer Studies, 43, Vol. 5, No. 6 (1999) 625-640<br />
11. Guzmán, A. Domínguez, C. and Olivares, J. Reacting to unexpected ev<strong>en</strong>ts and<br />
communication inspite of mixed ontologies, In: C. Coello, A. Albornoz, L. Sucar, O. Cair<br />
and G. Kemper (eds.), Advances in Artificial Intellig<strong>en</strong>ce, Proceedings of Mexican<br />
International Confer<strong>en</strong>ce on Artificial Intellig<strong>en</strong>ce (MICAI 2002), Vol. 2313, Lecture Notes<br />
in Computer Sci<strong>en</strong>ce, Springer-Ver<strong>la</strong>g, Merida, Yucatan, Mexico (2002) 377-386.<br />
12. Levachkine, S. and Guzmán, A.: Re<strong>la</strong>tedness of the elem<strong>en</strong>ts of hierarchies partitioned by<br />
perc<strong>en</strong>tages, Lecture Notes in Computer Sci<strong>en</strong>ce, Vol. 2972, Springer-Ver<strong>la</strong>g, Berlin (2004)<br />
135-155<br />
13. Torres, M., Mor<strong>en</strong>o, M., M<strong>en</strong>chaca, R. and Levachkine, S.: Making Spatial Analysis with a<br />
Distributed Geographical Information System, Proceedings of 21 st IASTED International<br />
Confer<strong>en</strong>ce on Databases and Applications (DBA’ 2003), Innsbruck, Austria (2003) 1245-<br />
1250<br />
14. Zhou, S. and Jones, C.: Design and Implem<strong>en</strong>tation of Multi-Scale Databases, Proceedings<br />
of 7 th International Symposium on Spatial and Temporal Databases (SSTD01), Lecture<br />
Notes in Computer Sci<strong>en</strong>ce, Vol. 2121, Springer-Ver<strong>la</strong>g, Berlin (1995) 365-384<br />
15. http://www.esri.com, Environm<strong>en</strong>tal Systems Research Institute
Recuperación y análisis <strong>de</strong> datos espaciales<br />
usando tecnología .NET<br />
Miguel F. Mata, Miguel Torres<br />
Laboratorio <strong>de</strong> Geoprocesami<strong>en</strong>to<br />
C<strong>en</strong>tro <strong>de</strong> Investigación <strong>en</strong> Computación<br />
Instituto Politécnico Nacional<br />
Av. Juan <strong>de</strong> Dios Bátiz s/n Unidad Profesional “Adolfo López Mateos”<br />
C.P. 07738, <strong>México</strong>, D.F., MÉXICO<br />
migfel@sagitario.cic.ipn.mx, mtorres@cic.ipn.mx<br />
Resum<strong>en</strong>. En este capítulo, se pres<strong>en</strong>ta una aplicación basada <strong>en</strong> Web Mapping<br />
para recuperar y analizar información espacial utilizando tecnología .NET, <strong>en</strong><br />
particu<strong>la</strong>r efectuar análisis espacial <strong>de</strong> buffer <strong>en</strong> <strong>la</strong> web. La aplicación esta<br />
basada <strong>en</strong> un compon<strong>en</strong>te Net el cual opera sobre un servidor Web, se divi<strong>de</strong><br />
básicam<strong>en</strong>te <strong>en</strong> dos módulos los cuales son el modulo <strong>de</strong> análisis Espacial<br />
(MAE) y el Módulo <strong>de</strong> Recuperaciones Espaciales (MRE).Para <strong>de</strong>mostrar <strong>la</strong><br />
utilidad <strong>de</strong> <strong>la</strong> propuesta los análisis y consultas se realizan a partir <strong>de</strong> una<br />
imag<strong>en</strong> JPG que muestra un mapa <strong>de</strong> <strong>la</strong> republica mexicana; a<strong>de</strong>más <strong>de</strong> po<strong>de</strong>r<br />
visualizar los datos <strong>de</strong> forma tabu<strong>la</strong>res trabajo se realizo con base <strong>en</strong> el mo<strong>de</strong>lo<br />
cli<strong>en</strong>te-servidor usando un Navegador Web.<br />
1 Introducción<br />
Hoy <strong>en</strong> día, una <strong>de</strong> <strong>la</strong>s t<strong>en</strong>d<strong>en</strong>cias <strong>de</strong> los Sistemas <strong>de</strong> Información Geográfica (SIG)<br />
esta <strong>en</strong>focada hacia el web. Don<strong>de</strong> el concepto <strong>de</strong> web mapping se ha referido a <strong>la</strong><br />
capacidad <strong>de</strong> ofrecer <strong>la</strong>s funcionalida<strong>de</strong>s básicas <strong>de</strong> navegación <strong>de</strong> un SIG, como son:<br />
Pan, Zoom, Id<strong>en</strong>tify etc. Pero actualm<strong>en</strong>te se ha ext<strong>en</strong>dido para que se proporcion<strong>en</strong><br />
<strong>la</strong>s capacida<strong>de</strong>s <strong>de</strong> análisis espacial mas comunes <strong>de</strong> un SIG, el caso <strong>de</strong> análisis <strong>de</strong><br />
proximidad es uno <strong>de</strong> ellos, y por ello este trabajo fue <strong>de</strong>sarrol<strong>la</strong>do para implem<strong>en</strong>tar<br />
dicho análisis usando Web Mapping, El análisis <strong>de</strong> Buffer es una función disponible<br />
<strong>en</strong> los SIG como Arcview y ArcInfo [1], actualm<strong>en</strong>te, algunos servidores web <strong>de</strong><br />
mapas solo realizan análisis <strong>de</strong> buffer puntual [2] y sobre formatos raster, como es el<br />
caso <strong>de</strong> [3]. Las aplicaciones <strong>de</strong> Web Mapping exist<strong>en</strong>tes no proporcionan<br />
capacida<strong>de</strong>s <strong>de</strong> análisis espacial, ya que están <strong>en</strong>focados a <strong>la</strong> navegación, pres<strong>en</strong>tación<br />
y ejecución <strong>de</strong> consultas tabu<strong>la</strong>res. Es por ello que esa propuesta se <strong>en</strong>foca a imp<strong>la</strong>ntar<br />
el algoritmo <strong>de</strong> buffer lineal para una aplicación <strong>de</strong> Web Mapping y con <strong>la</strong> capacidad<br />
<strong>de</strong> obt<strong>en</strong>er resultados <strong>en</strong> formato raster y vectorial.<br />
En el área <strong>de</strong> <strong>la</strong> Geo<strong>computación</strong>, aplicar análisis <strong>de</strong> buffer o proximidad, es<br />
efectuar un proceso que consiste <strong>de</strong> g<strong>en</strong>erar un polígono, el cual <strong>en</strong>cerrara una<br />
primitiva espacial (punto, línea o polígono) a través <strong>de</strong> un radio <strong>de</strong> distancia<br />
específica o por medio <strong>de</strong>l valor <strong>de</strong> un atributo; a esto se le d<strong>en</strong>omina el área <strong>de</strong><br />
influ<strong>en</strong>cia. Los buffer se g<strong>en</strong>eran <strong>de</strong> acuerdo al tipo <strong>de</strong> primitiva espacial, por lo cual
aplicar un buffer a un dato <strong>de</strong> tipo puntual, resultara <strong>en</strong> un buffer puntual, para el caso<br />
<strong>de</strong> <strong>la</strong> línea <strong>en</strong> un buffer lineal, y finalm<strong>en</strong>te para polígonos <strong>en</strong> un buffer poligonal<br />
[4].<br />
El análisis <strong>de</strong> proximidad <strong>de</strong>p<strong>en</strong><strong>de</strong> <strong>de</strong>l radio o longitud establecida, <strong>de</strong> <strong>la</strong>s<br />
primitivas espaciales y <strong>de</strong>l tipo <strong>de</strong> f<strong>en</strong>óm<strong>en</strong>o natural sobre el que se aplica. El análisis<br />
<strong>de</strong> proximidad, forma parte <strong>de</strong> los principales análisis espaciales que ofrece un SIG,<br />
su funcionalidad se ha <strong>de</strong>sarrol<strong>la</strong>do <strong>en</strong> ambi<strong>en</strong>tes 3D con l<strong>en</strong>guajes <strong>de</strong> programación<br />
tales como: Java y VRML [5] <strong>la</strong> <strong>de</strong>sv<strong>en</strong>taja <strong>de</strong> estos es que no trabajan sobre formatos<br />
propietarios y no realizan buffer. También, el proceso <strong>de</strong> bufferizacion se ha<br />
imp<strong>la</strong>ntado para una herrami<strong>en</strong>ta SIG <strong>de</strong> escritorio [6]. Los SIG como Arcinfo [7]<br />
ofrec<strong>en</strong> opciones <strong>de</strong> configuración para efectuar bufferizacion, atributos que se<br />
<strong>en</strong>cu<strong>en</strong>tran implicados y <strong>la</strong> distancia <strong>de</strong>l buffer [8].<br />
La aplicación <strong>de</strong>l análisis <strong>de</strong> Buffer se basa <strong>en</strong> <strong>la</strong> longitud o radio <strong>de</strong> influ<strong>en</strong>cia, y<br />
una vez aplicado, el resultado consiste <strong>en</strong> una nueva capa <strong>de</strong> datos espaciales, <strong>la</strong> cual<br />
esta conformada por los objetos espaciales, <strong>de</strong> tipo polígono, los cuales cubr<strong>en</strong> o<br />
ro<strong>de</strong>an a <strong>la</strong>s objetos espaciales sobre los cuales se aplico el análisis. En esta nueva<br />
capa, los objetos que se intersectan, se fusionan para g<strong>en</strong>erar un solo objeto <strong>de</strong><br />
superficie continua, lo cual permite hacer un cálculo <strong>de</strong>l área <strong>de</strong> proximidad o buffer<br />
<strong>de</strong> los objetos.<br />
Por otro <strong>la</strong>do, si se consi<strong>de</strong>ra el <strong>en</strong>foque <strong>de</strong>l Web y <strong>la</strong> gran variedad exist<strong>en</strong>te <strong>de</strong><br />
formatos espaciales que se <strong>en</strong>cu<strong>en</strong>tran tanto <strong>en</strong> bases <strong>de</strong> datos ori<strong>en</strong>tados a objetos,<br />
como archivos <strong>de</strong> formato propietario y etc. [9] esto resulta <strong>en</strong> un problema para<br />
recuperar y manejar <strong>la</strong> información , por lo cual se han g<strong>en</strong>erado diversas propuestas<br />
y mo<strong>de</strong>los para po<strong>de</strong>r compartir y recuperar los datos, todo ello a través <strong>de</strong> l<strong>en</strong>guajes<br />
como: XML o GML lo cual facilita el manejo e interoperabilidad <strong>de</strong> los objetos<br />
geográficos <strong>en</strong> Internet [10] aunque no se han <strong>en</strong>focado a los análisis <strong>de</strong> proximidad .<br />
A<strong>de</strong>más, t<strong>en</strong>i<strong>en</strong>do <strong>en</strong> cu<strong>en</strong>ta que <strong>en</strong> el Web es prioridad <strong>la</strong> capacidad y velocidad <strong>de</strong><br />
respuesta se opto por un mo<strong>de</strong>lo bajo el cual <strong>la</strong>s operaciones se realizan tanto <strong>en</strong><br />
formato vectorial como raster, pero los resultados se muestran <strong>en</strong> un formato <strong>de</strong><br />
imag<strong>en</strong> JPEG o GIF, lo cual permite agilizar <strong>la</strong>s respuestas <strong>de</strong>l servidor hacia el<br />
cli<strong>en</strong>te, cabe seña<strong>la</strong>r que el sistema proporciona al cli<strong>en</strong>te <strong>la</strong> opción <strong>de</strong> obt<strong>en</strong>er el<br />
resultado <strong>en</strong> formato vectorial, y ésta es una alternativa <strong>de</strong> solución a <strong>la</strong> limitación <strong>de</strong><br />
aplicar análisis espacial <strong>en</strong> una pagina HTML [11].<br />
El resto <strong>de</strong>l docum<strong>en</strong>to esta organizado <strong>en</strong> <strong>la</strong> sigui<strong>en</strong>te manera. En <strong>la</strong> sección 2 se<br />
pres<strong>en</strong>ta <strong>la</strong> arquitectura <strong>de</strong> <strong>la</strong> aplicación y funcionami<strong>en</strong>to <strong>de</strong> <strong>la</strong> aplicación; <strong>la</strong> sección<br />
3 <strong>de</strong>scribe el proceso <strong>de</strong> proximidad. Se muestran los resultados <strong>en</strong> <strong>la</strong> sección 4 y <strong>la</strong><br />
sección 5 trata sobre <strong>la</strong>s conclusiones <strong>de</strong>l trabajo.<br />
2 Arquitectura <strong>de</strong> <strong>la</strong> aplicación<br />
La arquitectura <strong>de</strong> <strong>la</strong> aplicación se basa <strong>en</strong> el mo<strong>de</strong>lo cli<strong>en</strong>te – servidor, y <strong>en</strong> <strong>la</strong> parte<br />
<strong>de</strong>l servidor resid<strong>en</strong> los sigui<strong>en</strong>tes módulos: Módulo <strong>de</strong> Análisis Espacial (MAE), el<br />
Módulo <strong>de</strong> Recuperaciones Espaciales (MRE) qui<strong>en</strong> recibe peticiones <strong>de</strong>l MAE, el<br />
MRE se <strong>en</strong>carga <strong>de</strong> seleccionar <strong>la</strong> función correspondi<strong>en</strong>te a <strong>la</strong>s peticiones recibidas.
El MRE trabaja con base <strong>en</strong> un compon<strong>en</strong>te cuya función es <strong>de</strong>splegar y convertir<br />
<strong>la</strong>s unida<strong>de</strong>s <strong>de</strong>l mapa a unida<strong>de</strong>s <strong>de</strong> pantal<strong>la</strong>, y efectuar consultas atributivas y<br />
espaciales <strong>de</strong>s<strong>de</strong> una base <strong>de</strong> datos geográfica o un archivo <strong>de</strong> formato especifico,<br />
cabe seña<strong>la</strong>r que estos módulos fueron <strong>de</strong>sarrol<strong>la</strong>dos con tecnología Net.<br />
Cuando el MRE ha recuperado los objetos espaciales requeridos para el análisis,<br />
estos son <strong>en</strong>viados al MAE; y <strong>de</strong> acuerdo a estos resultados, se construye <strong>la</strong> página<br />
HTML, incrustando <strong>la</strong> imag<strong>en</strong> que muestra el resultado <strong>de</strong> <strong>la</strong> petición. El mo<strong>de</strong>lo se<br />
ilustra <strong>en</strong> <strong>la</strong> Fig. 1.<br />
Fig. 1. Arquitectura <strong>de</strong>l Servidor Web <strong>de</strong> Mapas<br />
En <strong>la</strong> Fig. 1 se pue<strong>de</strong> apreciar que el Módulo <strong>de</strong> Recuperaciones Espaciales<br />
(MRE) es <strong>la</strong> parte principal <strong>en</strong> el mo<strong>de</strong>lo. Entre sus funciones esta el proceso para<br />
hacer el análisis espacial requerido por el cli<strong>en</strong>te. Una vez que se ha seleccionado <strong>la</strong><br />
función, se recuperan los datos, construy<strong>en</strong>do <strong>la</strong> consulta espacial necesaria para<br />
acce<strong>de</strong>r a <strong>la</strong> información, geométrica o topológica, que esta <strong>en</strong> alguna fu<strong>en</strong>te <strong>de</strong><br />
datos. La consulta es ejecutada y el MRE, <strong>en</strong>vía los resultados obt<strong>en</strong>idos g<strong>en</strong>erando<br />
<strong>la</strong> imag<strong>en</strong> <strong>de</strong>l mapa y construy<strong>en</strong>do <strong>la</strong> página HTML.<br />
El mo<strong>de</strong>lo para análisis <strong>de</strong> buffer se muestra <strong>en</strong> <strong>la</strong> Fig. 2. El MRE una vez que<br />
selecciona el tipo <strong>de</strong> operación espacial a realizar, hace <strong>la</strong> l<strong>la</strong>mada a <strong>la</strong>s funciones<br />
implicadas para obt<strong>en</strong>er los resultados requeridos y <strong>en</strong>viarlos.
Fig. 2. La operación <strong>de</strong> MROE<br />
En <strong>la</strong> Fig. 2, Se muestra el funcionami<strong>en</strong>to <strong>de</strong>l MRE respecto al análisis <strong>de</strong><br />
proximidad, don<strong>de</strong> lo primero que se realiza es <strong>de</strong>terminar el tipo <strong>de</strong> capa sobre <strong>la</strong><br />
cual se pi<strong>de</strong> efectuar el buffer, el tipo <strong>de</strong> capa se <strong>de</strong>termina a través <strong>de</strong>l tipo <strong>de</strong><br />
primitiva <strong>de</strong> repres<strong>en</strong>tación espacial y una vez que se conoce esto se aplica el proceso<br />
<strong>de</strong> bufferizacion correspondi<strong>en</strong>te. El proceso <strong>de</strong> bufferizacion g<strong>en</strong>era una nueva capa<br />
espacial <strong>en</strong> base a los parámetros <strong>de</strong> influ<strong>en</strong>cia que sean consi<strong>de</strong>rados <strong>en</strong> el análisis.<br />
Este mecanismo se <strong>en</strong>carga <strong>de</strong> g<strong>en</strong>erar <strong>la</strong> nueva capa <strong>de</strong> datos (capa buffer <strong>de</strong> datos),<br />
<strong>en</strong> base al sigui<strong>en</strong>te proceso:<br />
• Se aplica el buffer a cada capa <strong>de</strong> datos seleccionada.<br />
• Se g<strong>en</strong>era una nueva capa <strong>de</strong> datos buffer.<br />
• Se exporta a formato shapefile para que pueda pres<strong>en</strong>tarse como una capa <strong>de</strong><br />
datos nueva <strong>en</strong> el sistema y sea posible procesar<strong>la</strong> <strong>de</strong> manera in<strong>de</strong>p<strong>en</strong>di<strong>en</strong>te.<br />
3 Proceso <strong>de</strong> bufferización<br />
Para efectuar el proceso <strong>de</strong> bufferizacion es necesario conocer el tipo <strong>de</strong> primitiva <strong>de</strong><br />
repres<strong>en</strong>tación: puntos, líneas o polígonos. A continuación se <strong>de</strong>scribe el proceso que<br />
se efectúa para realizar <strong>la</strong> bufferizacion lineal, ya que <strong>la</strong> puntual consiste únicam<strong>en</strong>te<br />
<strong>de</strong> g<strong>en</strong>erar un circulo cuyo radio esta <strong>en</strong> función <strong>de</strong> un atributo o distancia especifica,<br />
si<strong>en</strong>do el proceso muy s<strong>en</strong>cillo, a<strong>de</strong>más <strong>la</strong> bufferizacion lineal es <strong>la</strong> base <strong>de</strong> <strong>la</strong><br />
bufferizacion poligonal.<br />
Para efectuar <strong>la</strong> bufferizacion es necesario trabajar con <strong>la</strong> topología <strong>de</strong> <strong>la</strong>s capas.<br />
Para iniciar, se asignan a cada arco <strong>de</strong> línea (<strong>de</strong>limitado por nodos) el ancho <strong>de</strong> buffer<br />
apropiado, (pue<strong>de</strong> ser fijo o mediante una tab<strong>la</strong> <strong>de</strong> pesos). Dicho ancho <strong>de</strong> buffer lo<br />
d<strong>en</strong>ominaremos radio Buffer b; es necesario que cada arco se procese <strong>de</strong> manera<br />
individual, para hacer un proceso iterativo. Entonces consi<strong>de</strong>rando <strong>la</strong> Fig. 3,<br />
t<strong>en</strong>dremos que cada segm<strong>en</strong>to <strong>de</strong> línea ti<strong>en</strong>e un nodo inicial <strong>de</strong>finido por (E 1 , N1) y<br />
un nodo final <strong>de</strong>finido por (E 2 , N2).
(E 2 , N2)<br />
(E 1 , N1)<br />
Fig. 3. Nodos iníciales <strong>de</strong> un arco <strong>de</strong> línea<br />
En el sigui<strong>en</strong>te paso, utilizaremos <strong>la</strong>s coord<strong>en</strong>adas <strong>de</strong> cada nodo, para calcu<strong>la</strong>r x<br />
y y <strong>en</strong>tre los dos puntos a ser computarizados, esto se muestra <strong>en</strong> <strong>la</strong> Fig. 4.<br />
Fig. 4. Cálculo <strong>de</strong> x y y<br />
En el tercer paso se <strong>de</strong>terminan los puntos finales <strong>de</strong> <strong>la</strong>s líneas buffer, <strong>la</strong>s cuales se<br />
posicionan a los costados <strong>de</strong>l segm<strong>en</strong>to <strong>de</strong> línea original, a una distancia<br />
perp<strong>en</strong>dicu<strong>la</strong>r b. En <strong>la</strong> Fig. 5 se ilustra este proceso; <strong>la</strong>s ecuación 1 se aplica para<br />
<strong>de</strong>terminar los valores correspondi<strong>en</strong>tes.<br />
<br />
E1<br />
± b ∗ S<strong>en</strong>Tan<br />
<br />
−1<br />
∆x<br />
<br />
<br />
∆y<br />
<br />
(1)<br />
Fig. 5. Puntos finales <strong>de</strong> <strong>la</strong>s líneas buffer<br />
Para el caso <strong>en</strong> el que <strong>la</strong> línea sea horizontal o vertical con respecto al eje <strong>de</strong><br />
coord<strong>en</strong>adas <strong>la</strong> formu<strong>la</strong> se simplifica. Es <strong>en</strong>tonces cuando se efectúa el sigui<strong>en</strong>te paso:<br />
examinar el valor <strong>de</strong> <strong>la</strong> tang<strong>en</strong>te al segm<strong>en</strong>to <strong>de</strong> línea, para <strong>de</strong>terminar si los<br />
increm<strong>en</strong>tos al este o al norte son sumados o restados <strong>de</strong>p<strong>en</strong>di<strong>en</strong>do <strong>de</strong> <strong>la</strong> dirección <strong>de</strong><br />
<strong>la</strong> línea., una vez que <strong>la</strong>s dos nuevas líneas parale<strong>la</strong>s <strong>de</strong> buffer, han sido id<strong>en</strong>tificadas,
se repite el proceso al sigui<strong>en</strong>te segm<strong>en</strong>to <strong>de</strong> línea. El quinto paso consiste <strong>en</strong><br />
id<strong>en</strong>tificar <strong>la</strong>s intersecciones <strong>de</strong> <strong>la</strong>s líneas parale<strong>la</strong>s <strong>de</strong> buffer <strong>de</strong> cada segm<strong>en</strong>to y <strong>la</strong>s<br />
nuevas coord<strong>en</strong>adas son asignadas a los vértices comunes.<br />
Estos pasos son repetidos hasta que último segm<strong>en</strong>to <strong>de</strong> línea ha sido procesado. El<br />
sexto paso implica <strong>de</strong>finir <strong>la</strong> terminación <strong>de</strong>l buffer (<strong>en</strong> los puntos <strong>de</strong> inicio y los<br />
puntos finales <strong>de</strong> <strong>la</strong> línea). La Fig. 6 muestra estos puntos.<br />
Fig. 6. Puntos iniciales y finales <strong>de</strong> <strong>la</strong>s líneas <strong>de</strong> buffer<br />
Para finalizar el buffer, se proce<strong>de</strong> a <strong>en</strong>cerrar el punto <strong>de</strong> inicio y el punto final <strong>de</strong><br />
<strong>la</strong> línea con un semicírculo o un buffer <strong>de</strong> radio b, el cual se muestra <strong>en</strong> <strong>la</strong> Fig. 7.<br />
Fig. 7. Buffer <strong>de</strong> radio b<br />
3.1 Buffer para datos tipo punto<br />
D<strong>en</strong>tro <strong>de</strong> <strong>la</strong>s 3 primitivas espaciales exist<strong>en</strong>tes para un Shapefile, aplicar buffer<br />
puntual, es el proceso más s<strong>en</strong>cillo, ya que solo se necesita g<strong>en</strong>erar un polígono<br />
circu<strong>la</strong>r alre<strong>de</strong>dor <strong>de</strong> cada punto con un radio igual al ancho <strong>de</strong>l buffer. Es posible que<br />
existan múltiples puntos <strong>en</strong> <strong>la</strong> capa a <strong>la</strong> que se le aplicará el buffer, por lo que se<br />
<strong>de</strong>b<strong>en</strong> verificar <strong>la</strong>s sobreposiciones que se produzcan. Las secciones que se<br />
sobrepongan <strong>de</strong>berán ser fusionadas, ya que el resultado <strong>de</strong> <strong>la</strong> operación será una capa<br />
<strong>de</strong> polígonos, <strong>la</strong> cual repres<strong>en</strong>ta el área cubierta por los buffer sobrepuestos. Este<br />
proceso implica dos operaciones conocidas como: Intersección y Disolución.<br />
En <strong>la</strong> Fig. 8 se pue<strong>de</strong> apreciar el resultado <strong>de</strong> <strong>la</strong> operación <strong>de</strong> intersección, los<br />
puntos <strong>de</strong> intersección son marcados gráficam<strong>en</strong>te <strong>en</strong> color amarillo, para po<strong>de</strong>r
observar <strong>la</strong> sigui<strong>en</strong>te operación <strong>de</strong> eliminación <strong>de</strong> líneas que no son necesarias <strong>en</strong> el<br />
buffer. La operación <strong>de</strong> intersección ayudará a eliminar <strong>la</strong>s líneas que no serán<br />
necesarias <strong>de</strong>bido a que se cruzan <strong>en</strong>tre sí. La Fig. 9 muestra <strong>la</strong> operación <strong>de</strong><br />
eliminación.<br />
Fig. 8. Operación <strong>de</strong> interseccion<br />
Fig. 9. Operación <strong>de</strong> eliminación a partir <strong>de</strong> <strong>la</strong> intersección<br />
Una vez que se han eliminado <strong>la</strong>s líneas <strong>de</strong> intersección, se aplica <strong>la</strong> operación <strong>de</strong><br />
disolución, <strong>la</strong> cual g<strong>en</strong>era un cuerpo sólido con <strong>la</strong>s líneas que forman el buffer. La<br />
Fig. 10 ilustra el resultado <strong>de</strong> esta operación.<br />
Fig. 10. Operación <strong>de</strong> disolución<br />
El proceso <strong>de</strong> buffer da como resultado una nueva capa <strong>de</strong> datos <strong>de</strong> tipo polígono,<br />
los cuales repres<strong>en</strong>tan <strong>la</strong>s zonas <strong>de</strong> buffer (por distancia fija o por pesos). La tab<strong>la</strong> <strong>de</strong><br />
polígonos resultante t<strong>en</strong>drá id<strong>en</strong>tificadores para cada uno <strong>de</strong> los polígonos g<strong>en</strong>erados<br />
<strong>en</strong> el proceso <strong>de</strong> buffer, y un atributo adicional que indica si el polígono <strong>en</strong> particu<strong>la</strong>r<br />
está d<strong>en</strong>tro o fuera <strong>de</strong> <strong>la</strong> zona <strong>de</strong> influ<strong>en</strong>cia. En <strong>la</strong> Fig. 11 se muestra este proceso,<br />
don<strong>de</strong> 1 indica que el polígono está d<strong>en</strong>tro <strong>de</strong> <strong>la</strong> zona <strong>de</strong> buffer y 0 indica lo contrario.
Fig. 11. Resultado <strong>de</strong>l buffer final<br />
4 Resultados<br />
Haci<strong>en</strong>do una solicitud al servidor Web <strong>de</strong> mapas po<strong>de</strong>mos consultar datos espaciales<br />
<strong>de</strong> acuerdo a los parámetros requeridos. Y utilizar <strong>la</strong> herrami<strong>en</strong>ta <strong>de</strong> buffer para<br />
aplicar bufferizacion <strong>en</strong> <strong>la</strong>s capas <strong>de</strong> datos sobre <strong>la</strong>s cuales trabajemos. Los datos<br />
espaciales <strong>de</strong> <strong>la</strong> Republica Mexicana fueron utilizados para realizar <strong>la</strong>s pruebas<br />
correspondi<strong>en</strong>tes. A continuación se ilustran resultados <strong>de</strong> los análisis efectuados. La<br />
Fig. 12 muestra una capa espacial <strong>de</strong> <strong>México</strong>, don<strong>de</strong> se aprecian <strong>la</strong>s carreteras <strong>de</strong>l<br />
estado <strong>de</strong> Baja California y <strong>de</strong> Sonora.<br />
Fig. 12. Carreteras <strong>en</strong> el estado <strong>de</strong> Baja California y Sonora<br />
Sobre <strong>la</strong> capa <strong>de</strong> datos espaciales pres<strong>en</strong>tada <strong>en</strong> <strong>la</strong> figura 12 se aplica un análisis<br />
<strong>de</strong> buffer para <strong>de</strong>terminar <strong>la</strong>s áreas <strong>de</strong> afectación por ruido, el resultado se aprecia <strong>en</strong><br />
<strong>la</strong> Fig. 13.<br />
Fig. 13. Pob<strong>la</strong>ciones (puntos <strong>en</strong> color rojo) que se verían afectadas por el ruido ante <strong>la</strong> cercanía<br />
<strong>de</strong> una carretera, el área buffer esta <strong>en</strong> color mag<strong>en</strong>ta
En <strong>la</strong> Fig. 13 se pued<strong>en</strong> apreciar <strong>la</strong>s pob<strong>la</strong>ciones que ca<strong>en</strong> d<strong>en</strong>tro <strong>de</strong>l área <strong>de</strong><br />
influ<strong>en</strong>cia <strong>de</strong>l buffer, estas pue<strong>de</strong> ser id<strong>en</strong>tificadas fácilm<strong>en</strong>te con ayuda <strong>de</strong> <strong>la</strong><br />
herrami<strong>en</strong>tas <strong>de</strong> id<strong>en</strong>tificación o consultando <strong>la</strong> tab<strong>la</strong> para saber los datos re<strong>la</strong>tivos a<br />
cada una <strong>de</strong> el<strong>la</strong>s<br />
Fig. 14. Mapa <strong>de</strong>l <strong>la</strong> republica mexicana que muestra el radio <strong>de</strong> afectación (círculos ver<strong>de</strong>s)<br />
pro <strong>la</strong> contaminación <strong>de</strong> refinerías (puntos <strong>en</strong> rojo)<br />
En <strong>la</strong> Fig. 14 se muestra el radio <strong>de</strong> afectación <strong>de</strong> <strong>la</strong>s refinerías situadas <strong>en</strong><br />
Tampico, Sa<strong>la</strong>manca, Tu<strong>la</strong> y Minatitlán <strong>de</strong> <strong>la</strong> Republica Mexicana. Aquí se aplicó el<br />
análisis espacial <strong>de</strong> buffer para conocer el radio <strong>de</strong> influ<strong>en</strong>cia por contaminación <strong>de</strong> <strong>la</strong><br />
refinería.<br />
Fig. 15. Resultado <strong>de</strong>l buffer (sobrepuesto <strong>en</strong> <strong>la</strong> capa original) don<strong>de</strong> se muestran <strong>la</strong>s áreas <strong>de</strong><br />
afectación (polígonos <strong>en</strong> color ver<strong>de</strong>) <strong>de</strong> acuerdo a pesos<br />
Otros resultados están <strong>en</strong>focados a los segm<strong>en</strong>tos <strong>de</strong> línea, los cuales pued<strong>en</strong><br />
repres<strong>en</strong>tar av<strong>en</strong>idas o carreteras. A estos segm<strong>en</strong>tos se les aplican buffers <strong>de</strong> un peso
inicial. Estos atributos han sido calcu<strong>la</strong>dos por <strong>la</strong> pres<strong>en</strong>cia y aus<strong>en</strong>cia <strong>de</strong> flujo <strong>de</strong><br />
tráfico <strong>en</strong> <strong>la</strong>s carreteras. (Por ejemplo el promedio <strong>de</strong>l número <strong>de</strong> autos por minuto).<br />
Cada línea es id<strong>en</strong>tificada por un número o color y <strong>la</strong> tab<strong>la</strong> (conocida como tab<strong>la</strong> <strong>de</strong><br />
pesos) indicara los pesos m<strong>en</strong>cionados, ver Fig. 15.<br />
La Fig. 15 muestra el buffer aplicado a una capa <strong>de</strong> carreteras, don<strong>de</strong> cada<br />
carretera ti<strong>en</strong>e asignado un peso específico, como se observa <strong>la</strong> carretera con un<br />
mayor peso, <strong>en</strong> consecu<strong>en</strong>cia un mayor índice <strong>de</strong> tráfico, implica que el buffer g<strong>en</strong>ere<br />
un polígono <strong>de</strong> radio mayor mi<strong>en</strong>tras que <strong>en</strong> <strong>la</strong>s <strong>de</strong> m<strong>en</strong>or peso el radio es m<strong>en</strong>or, y<br />
<strong>en</strong>tonces también el área <strong>de</strong> afectación es m<strong>en</strong>or.<br />
5 Conclusiones<br />
En el pres<strong>en</strong>te trabajo se ha pres<strong>en</strong>tado una aplicación <strong>en</strong> Web con capacidad <strong>de</strong> hacer<br />
análisis espacial, <strong>en</strong> particu<strong>la</strong>r análisis <strong>de</strong> proximidad y algunos <strong>de</strong> sus casos <strong>de</strong> uso.<br />
Utilizando <strong>la</strong> aplicación es posible analizar datos espaciales <strong>en</strong> formato shapefile o<br />
base <strong>de</strong> datos geográfica y los resultados obt<strong>en</strong>erlos <strong>en</strong> una nueva capa <strong>de</strong> datos, <strong>la</strong><br />
cual pue<strong>de</strong> ser obt<strong>en</strong>ida <strong>en</strong> formato vectorial para posteriores análisis. Es asi, como <strong>la</strong><br />
aplicación pue<strong>de</strong> acce<strong>de</strong>r, manipu<strong>la</strong>r y analizar datos <strong>en</strong> formato vectorial, raster y<br />
<strong>de</strong>s<strong>de</strong> una base <strong>de</strong> datos geográfica. La especificación <strong>de</strong>finida <strong>en</strong> <strong>la</strong> aplicación <strong>de</strong><br />
buffers existe solo <strong>en</strong> herrami<strong>en</strong>tas SIG <strong>de</strong> escritorio y <strong>la</strong>s comerciales, por lo cual<br />
este mo<strong>de</strong>lo ti<strong>en</strong>e como v<strong>en</strong>taja que los datos pued<strong>en</strong> ser consultados y manejados<br />
vía un navegador Web <strong>de</strong> los mas comunes.<br />
La facilidad <strong>de</strong> acce<strong>de</strong>r a shapefiles o bases <strong>de</strong> datos geográficas, nos evita<br />
problemas <strong>de</strong> interoperabilidad, ya que <strong>la</strong> información pue<strong>de</strong> ser convertida a otras<br />
especificaciones para su análisis.<br />
El uso <strong>de</strong> un compon<strong>en</strong>te <strong>de</strong> tecnología Net da una mayor capacidad <strong>de</strong> respuesta<br />
para el usuario, y el navegador no necesita <strong>de</strong> requerimi<strong>en</strong>tos adicionales, y permite<br />
que <strong>la</strong>s operaciones <strong>de</strong> accesos y recuperación <strong>de</strong> datos se realice <strong>de</strong> manera s<strong>en</strong>cil<strong>la</strong>.<br />
Agra<strong>de</strong>cimi<strong>en</strong>tos<br />
Los autores <strong>de</strong> este artículo agra<strong>de</strong>c<strong>en</strong> al Instituto Politécnico Nacional y a <strong>la</strong> C<strong>en</strong>tro<br />
<strong>de</strong> Investigación <strong>en</strong> Computación por el apoyo brindado a este trabajo; así como a los<br />
revisores <strong>de</strong> este trabajo por sus pertin<strong>en</strong>tes com<strong>en</strong>tarios.<br />
Refer<strong>en</strong>cias<br />
1. ArcInfo y Arcview, ESRI, Environm<strong>en</strong>t research institute , http://www.esri.com<br />
2. Mor<strong>en</strong>o M., “La G<strong>en</strong>eralización Automática <strong>de</strong> <strong>la</strong> Información Geográfica<br />
Multiesca<strong>la</strong>”, C<strong>en</strong>tro <strong>de</strong> Investigación <strong>en</strong> Computación, Instituto Politécnico<br />
Nacional, <strong>México</strong>, D.F. (2001) 123-145<br />
3. Kyong-Ho K., Kiwon L. & Jong-Hun L., “3D Geographical Analysis within<br />
JAVA/VRML-based on GIS: Lantern Operation”, Proceedings of International
Confer<strong>en</strong>ce on Geographical Information Systems and Spatial Theory, Or<strong>la</strong>ndo,<br />
Florida, USA (2000) 167-178<br />
4. Torres M., “Herrami<strong>en</strong>ta SIG <strong>de</strong> Escritorio para <strong>la</strong> Recuperación Manejo y Análisis<br />
<strong>de</strong> Datos Espaciales”, C<strong>en</strong>tro <strong>de</strong> Investigación <strong>en</strong> Computación, Instituto Politécnico<br />
Nacional, <strong>México</strong>, D.F., (2001) 45-61<br />
5. ArcInfo <strong>de</strong> ESRI, htpp://www.esri.com<br />
6. Hong Y., “Exploring Spatial Analysis in GIS”, OnWordPress, Thompson Learning,<br />
USA (1997) 89-117<br />
7. Rigaux P., Scholl M. & Voisard A., “Spatial Databases with Application to GIS”,<br />
Morgan Kaufmann Publishers, San Francisco, CA., USA (2001) 76-85<br />
8. Op<strong>en</strong>shaw S. & Op<strong>en</strong>shaw C., “Artificial Intellig<strong>en</strong>ce <strong>en</strong> Geography”, John Wiley &<br />
Sons, New York, USA (1997) 91-123<br />
9. Torres M., Mor<strong>en</strong>o M., M<strong>en</strong>chaca M. & Levachkine S., “Making Spatial Analysis<br />
with a Distributed Geographical Information System”, Proceedings of IASTED<br />
International Confer<strong>en</strong>ce on Databases and Applications, Innsbruck, Austria,<br />
February (2003) 1234-1240
Sistema c<strong>la</strong>sificador <strong>de</strong> materiales<br />
basado <strong>en</strong> el reconocimi<strong>en</strong>to <strong>de</strong> imág<strong>en</strong>es<br />
Luis Topiltzin Domínguez Butrón, Luciano González Rodríguez,<br />
Víctor Hugo García Ortega<br />
Instituto Politécnico Nacional, Escue<strong>la</strong> Superior <strong>de</strong> Cómputo,<br />
Av. Juan <strong>de</strong> Dios Batiz s/n, esq. Miguel Othón <strong>de</strong> M<strong>en</strong>dizábal,<br />
Unidad Profesional “Adolfo López Mateos”, 07738,<br />
<strong>México</strong>, D.F.<br />
topiltzin_jm@yahoo.com.mx, chanogr@yahoo.com.mx<br />
vgarciaortega@yahoo.com.mx<br />
Resum<strong>en</strong>. En el pres<strong>en</strong>te docum<strong>en</strong>to se <strong>de</strong>scribe el <strong>de</strong>sarrollo <strong>de</strong>l SCM<br />
(Sistema C<strong>la</strong>sificador <strong>de</strong> Materiales), basado <strong>en</strong> el procesami<strong>en</strong>to <strong>de</strong> imág<strong>en</strong>es y<br />
análisis espectral, para realizar <strong>la</strong> c<strong>la</strong>sificación <strong>de</strong> un número especificado <strong>de</strong><br />
materiales, contando para ello con una banda transportadora don<strong>de</strong> se t<strong>en</strong>drán<br />
los objetos y se realizará <strong>la</strong> c<strong>la</strong>sificación. Así mismo conti<strong>en</strong>e <strong>la</strong> propuesta <strong>de</strong><br />
solución y el diseño <strong>de</strong> los módulos que compon<strong>en</strong> el sistema.<br />
1 Introducción<br />
Cada vez es más común ver que <strong>la</strong>s empresas que realizan algún tipo <strong>de</strong> proceso<br />
industrial, <strong>de</strong>se<strong>en</strong> automatizar <strong>la</strong> mayoría <strong>de</strong> los procesos, sino es que todos. Si<br />
hab<strong>la</strong>mos <strong>de</strong> procesos que involucr<strong>en</strong> el uso <strong>de</strong> una computadora po<strong>de</strong>mos nombrar<br />
muchísimos, incluy<strong>en</strong>do los que suced<strong>en</strong> <strong>en</strong> <strong>la</strong> misma, esto es, existe un gran campo<br />
<strong>de</strong> aplicación y los procesos <strong>de</strong> c<strong>la</strong>sificación no son <strong>la</strong> excepción. Si ahora hab<strong>la</strong>mos<br />
<strong>de</strong> <strong>la</strong> c<strong>la</strong>sificación <strong>de</strong> materiales, podríamos <strong>en</strong>focarnos a un conjunto <strong>de</strong> objetos <strong>de</strong><br />
características <strong>de</strong> interés para nosotros y aún más, podríamos también nombrar <strong>la</strong>s<br />
difer<strong>en</strong>tes formas que ti<strong>en</strong>e el ser humano para reconocer un objeto, pero aún no<br />
sabemos a ci<strong>en</strong>cia cierta que proceso sigue para distinguir un material <strong>de</strong> otro, es<br />
<strong>de</strong>cir, <strong>la</strong> visión computacional aún se <strong>en</strong>cu<strong>en</strong>tra lejos <strong>de</strong> emu<strong>la</strong>r con precisión el<br />
sistema <strong>de</strong> visión <strong>de</strong>l humano. En <strong>la</strong> actualidad se sigue trabajando sobre algoritmos<br />
exist<strong>en</strong>tes para mejorarlos u optimizarlos y así t<strong>en</strong>er mejores resultados <strong>en</strong> el m<strong>en</strong>or<br />
tiempo posible, así como también <strong>la</strong> combinación <strong>de</strong> herrami<strong>en</strong>tas para evaluar<br />
resultados y mejorar o proponer métodos alternativos. Enfocándonos al<br />
reconocimi<strong>en</strong>to <strong>de</strong> materiales que es el tema medu<strong>la</strong>r, el ser humano toma <strong>en</strong> cu<strong>en</strong>ta<br />
<strong>la</strong> forma <strong>de</strong> los objetos y su textura para asociarles a este un nombre o tipo, <strong>en</strong> este<br />
caso limitaremos el sistema solo a formas cuadradas y c<strong>en</strong>traremos el análisis <strong>de</strong> datos<br />
a <strong>la</strong> textura <strong>de</strong> los objetos. Los materiales que id<strong>en</strong>tificaremos serán 3: Ma<strong>de</strong>ra, Metal<br />
y Plástico. Cada uno con naturaleza distinta como es el color y <strong>la</strong> textura que serán los<br />
patrones a id<strong>en</strong>tificar y así po<strong>de</strong>r difer<strong>en</strong>ciar <strong>en</strong>tre ellos.
2 Descripción g<strong>en</strong>eral <strong>de</strong>l sistema<br />
A gran<strong>de</strong>s rasgos, el diagrama <strong>de</strong>l sistema se pue<strong>de</strong> apreciar <strong>en</strong> <strong>la</strong> figura 1.<br />
<br />
<br />
Web<br />
Cam<br />
Imag<strong>en</strong><br />
<strong>de</strong>l objeto<br />
Sistema<br />
C<strong>la</strong>sificador<br />
<strong>de</strong><br />
Materiales<br />
Señales<br />
<strong>de</strong> control<br />
<strong>de</strong> motores<br />
Banda<br />
Transportadora<br />
Fig. 1. Diagrama <strong>de</strong> contexto <strong>de</strong>l SCM. Utilizará una WebCam para tomar <strong>la</strong> imag<strong>en</strong> <strong>de</strong>l<br />
objeto, <strong>la</strong> cual se procesará y analizará <strong>en</strong> <strong>la</strong> PC, posteriorm<strong>en</strong>te <strong>la</strong> banda transportadora y <strong>la</strong>s<br />
implem<strong>en</strong>taciones necesarias realizarán <strong>la</strong> c<strong>la</strong>sificación<br />
El objetivo <strong>en</strong>tonces <strong>de</strong>l trabajo es: Diseñar un sistema que constará <strong>de</strong> una banda<br />
transportadora que pres<strong>en</strong>tará objetos a una cámara, para que esta tome una<br />
fotografía, <strong>la</strong> <strong>en</strong>víe a una PC, <strong>la</strong> cual <strong>de</strong>be analizar e interpretar <strong>la</strong> imag<strong>en</strong> para<br />
<strong>de</strong>terminar el material mostrado y así po<strong>de</strong>r hacer <strong>la</strong> c<strong>la</strong>sificación <strong>de</strong> objetos para<br />
aplicaciones como <strong>en</strong> una p<strong>la</strong>nta recic<strong>la</strong>dora.<br />
3 Descripción <strong>de</strong>l sistema <strong>de</strong> reconocimi<strong>en</strong>to<br />
A continuación se <strong>de</strong>scrib<strong>en</strong> los módulos que conforman <strong>la</strong> resolución <strong>de</strong>l problema,<br />
así como los resultados obt<strong>en</strong>idos <strong>en</strong> cada uno <strong>de</strong> ellos, que serán utilizados a su vez<br />
por el sigui<strong>en</strong>te modulo.<br />
3.1 Captura <strong>de</strong> <strong>la</strong> imag<strong>en</strong><br />
Para <strong>la</strong> captura <strong>de</strong> <strong>la</strong> imag<strong>en</strong> se utilizó una WebCam Mitzu, con una velocidad <strong>de</strong><br />
captura <strong>de</strong> 30 muestras por segundo, <strong>en</strong>foque manual, arroja una imag<strong>en</strong> digital <strong>de</strong><br />
352x288 píxeles <strong>en</strong> formato bmp (mapa <strong>de</strong> bits) e interfaz USB.<br />
El l<strong>en</strong>te <strong>de</strong> <strong>la</strong> cámara es colocado a 9cm <strong>de</strong> altura sobre <strong>la</strong> banda transportadora<br />
para t<strong>en</strong>er una toma superior <strong>de</strong>l objeto, con iluminación contro<strong>la</strong>da para crear un<br />
ambi<strong>en</strong>te simi<strong>la</strong>r <strong>en</strong> cada toma.
3.2 Cambio a esca<strong>la</strong> <strong>de</strong> grises<br />
Exist<strong>en</strong> razones para afirmar que no se necesita una imag<strong>en</strong> a color para realizar el<br />
procesami<strong>en</strong>to y análisis <strong>de</strong> <strong>la</strong> imag<strong>en</strong>, así pues, <strong>de</strong>bemos cambiar a esca<strong>la</strong> <strong>de</strong> grises <strong>la</strong><br />
imag<strong>en</strong> que arroja <strong>la</strong> cámara, ya que esta es a color.<br />
El proceso <strong>de</strong> cambio a esca<strong>la</strong> <strong>de</strong> grises es simple, se toman los 3 bytes <strong>de</strong> color, se<br />
promedian y se asignan a como nuevos valores <strong>de</strong> esos mismos 3 bytes a cada píxel.<br />
A continuación se muestra una imag<strong>en</strong> a color <strong>en</strong>tregada por <strong>la</strong> cámara y su imag<strong>en</strong><br />
<strong>en</strong> esca<strong>la</strong> <strong>de</strong> grises.<br />
Fig. 2. Imag<strong>en</strong> original a color <strong>en</strong> formato <strong>de</strong> mapa <strong>de</strong> bits y su correspondi<strong>en</strong>te imag<strong>en</strong> <strong>en</strong><br />
esca<strong>la</strong> <strong>de</strong> grises<br />
3.3 Filtrado <strong>de</strong> <strong>la</strong> imag<strong>en</strong><br />
El principal objetivo <strong>de</strong> <strong>la</strong>s técnicas <strong>de</strong> mejora <strong>de</strong> una imag<strong>en</strong> digital es <strong>de</strong> forma que<br />
resulte más a<strong>de</strong>cuada que <strong>la</strong> original para una aplicación específica.<br />
Para efectos <strong>de</strong> este proyecto nos <strong>de</strong>dicaremos al filtrado <strong>en</strong> el dominio espacial ya<br />
que, el tipo <strong>de</strong> ruido pres<strong>en</strong>tado <strong>en</strong> nuestras imág<strong>en</strong>es que t<strong>en</strong>emos como prototipo<br />
nos dimos cu<strong>en</strong>ta <strong>de</strong> que el tipo <strong>de</strong> ruido g<strong>en</strong>erado es el l<strong>la</strong>mado sal y pimi<strong>en</strong>ta este<br />
tipo <strong>de</strong> ruido es fácilm<strong>en</strong>te eliminado por <strong>la</strong>s técnicas <strong>en</strong> el dominio espacial como lo<br />
es por ejemplo el filtro por <strong>la</strong> mediana.<br />
El filtro por <strong>la</strong> mediana es un filtro no lineal, que preserva <strong>la</strong> agu<strong>de</strong>za <strong>de</strong> los<br />
bor<strong>de</strong>s, es <strong>de</strong>cir, reduce más el ruido que el difuminado <strong>de</strong> los bor<strong>de</strong>s, elimina<br />
estrechos <strong>de</strong> picos <strong>de</strong> int<strong>en</strong>sidad ais<strong>la</strong>dos. Po<strong>de</strong>mos ver ahora <strong>la</strong> imag<strong>en</strong> filtrada <strong>en</strong> <strong>la</strong><br />
figura 3:
Fig. 3. Imag<strong>en</strong> filtrada mediante el filtro <strong>de</strong> <strong>la</strong> mediana<br />
3.4 Segm<strong>en</strong>tación<br />
El primer paso <strong>de</strong>l análisis <strong>de</strong> imág<strong>en</strong>es consiste g<strong>en</strong>eralm<strong>en</strong>te segm<strong>en</strong>tar <strong>la</strong> imag<strong>en</strong>.<br />
La segm<strong>en</strong>tación subdivi<strong>de</strong> una imag<strong>en</strong> <strong>en</strong> sus partes constituy<strong>en</strong>tes u objetos. El<br />
nivel al que se lleva a cabo esta subdivisión <strong>de</strong>p<strong>en</strong><strong>de</strong> <strong>de</strong>l problema a resolver. Esto es,<br />
<strong>la</strong> segm<strong>en</strong>tación <strong>de</strong>berá <strong>de</strong>t<strong>en</strong>erse cuando los objetos <strong>de</strong> interés <strong>de</strong> una aplicación<br />
hayan sido ais<strong>la</strong>dos.<br />
El objetivo <strong>de</strong> <strong>la</strong> segm<strong>en</strong>tación por regiones es dividir una imag<strong>en</strong> <strong>en</strong> regiones. Se<br />
ha p<strong>la</strong>nteado el problema <strong>en</strong>contrando límites <strong>en</strong>tre regiones basándose <strong>en</strong><br />
discontinuida<strong>de</strong>s <strong>de</strong> <strong>la</strong> int<strong>en</strong>sidad, <strong>en</strong> <strong>la</strong>s propieda<strong>de</strong>s <strong>de</strong> distribución <strong>de</strong> los píxel, tales<br />
como <strong>la</strong> int<strong>en</strong>sidad o el color. Al tratar <strong>de</strong> segm<strong>en</strong>tar por regiones <strong>de</strong>bemos ocupar<br />
una técnica que es <strong>la</strong> <strong>de</strong> umbralización, que <strong>de</strong>fine un parámetro <strong>de</strong> nivel <strong>de</strong><br />
int<strong>en</strong>sidad <strong>de</strong> gris para po<strong>de</strong>r <strong>de</strong>finir <strong>la</strong> posición <strong>de</strong>l objeto y difer<strong>en</strong>ciarlo <strong>de</strong>l <strong>en</strong>torno.<br />
Esto es, si el nivel <strong>de</strong> gris <strong>de</strong>l píxel está por <strong>de</strong>bajo <strong>de</strong>l umbral quiere <strong>de</strong>cir que<br />
estamos analizando el <strong>en</strong>torno y para el caso <strong>en</strong> el que el nivel <strong>de</strong> gris <strong>de</strong>l píxel esté<br />
por <strong>en</strong>cima <strong>de</strong>l umbral quiere <strong>de</strong>cir que nos <strong>en</strong>contramos posicionados <strong>en</strong> el objeto.<br />
Esto consi<strong>de</strong>rando que t<strong>en</strong>dremos un ambi<strong>en</strong>te contro<strong>la</strong>do <strong>de</strong> iluminación y <strong>de</strong><br />
distancia <strong>de</strong> <strong>la</strong> cámara invariante.<br />
Fig. 4. Distinción <strong>de</strong> <strong>la</strong> imag<strong>en</strong> segm<strong>en</strong>tada<br />
Po<strong>de</strong>mos notar <strong>la</strong> segm<strong>en</strong>tación <strong>en</strong> <strong>la</strong> figura 4:
3.5 FFT<br />
FFT (Fast Fourier Transform o Transformada Rápida <strong>de</strong> Fourier)<br />
La principal v<strong>en</strong>taja <strong>de</strong> utilizar este tipo <strong>de</strong> transformada es el número <strong>de</strong><br />
operaciones, que es consi<strong>de</strong>rablem<strong>en</strong>te m<strong>en</strong>or si los datos <strong>de</strong> <strong>en</strong>trada son mas gran<strong>de</strong>s<br />
y pot<strong>en</strong>cias <strong>de</strong> 2, a<strong>de</strong>más para programar el algoritmo se utilizo el método <strong>de</strong><br />
“Decimation in time”. Otra v<strong>en</strong>taja es que <strong>la</strong> transformada bidim<strong>en</strong>sional pue<strong>de</strong><br />
obt<strong>en</strong>erse <strong>en</strong> dos pasos aplicando sucesivam<strong>en</strong>te <strong>la</strong> transformada unidim<strong>en</strong>sional, esto<br />
lo po<strong>de</strong>mos ver <strong>en</strong> <strong>la</strong>s sigui<strong>en</strong>tes expresiones:<br />
M<br />
<br />
− 1 N −1<br />
1<br />
ux vy<br />
F(<br />
u,<br />
v)<br />
= f ( x,<br />
y) exp−<br />
j2π + <br />
= = (1)<br />
MN x 0 y 0<br />
M N<br />
Así mismo <strong>la</strong> transformada inversa se <strong>de</strong>fine como:<br />
M<br />
<br />
− 1 N −1<br />
ux vy<br />
f ( x,<br />
y)<br />
= F(<br />
u,<br />
v) exp<br />
j2π + <br />
= = <br />
(2)<br />
u 0 v 0<br />
M N<br />
En <strong>la</strong> figura 5 se muestra <strong>la</strong> transformada <strong>de</strong> Fourier <strong>de</strong> <strong>la</strong> imag<strong>en</strong> original <strong>de</strong> <strong>la</strong><br />
figura 1:<br />
Fig. 5. Imag<strong>en</strong> original y su transformada <strong>de</strong> Fourier<br />
3.6 Reconocimi<strong>en</strong>to <strong>de</strong>l material<br />
La extracción <strong>de</strong> los rasgos característicos <strong>de</strong>l espectro <strong>de</strong>rivado <strong>de</strong> <strong>la</strong> FFT se hará por<br />
medio <strong>de</strong> una división <strong>en</strong> regiones <strong>de</strong>l espacio <strong>de</strong> frecu<strong>en</strong>cias, que será <strong>de</strong> forma radial<br />
con 4 círculos y el p<strong>la</strong>no se dividirá <strong>en</strong> 8 regiones <strong>en</strong> lugar <strong>de</strong> cuatro y el c<strong>en</strong>tro se<br />
<strong>de</strong>jará intacto para t<strong>en</strong>er <strong>en</strong>tonces 33 regiones. Las cuales serán compon<strong>en</strong>tes<br />
espectrales <strong>de</strong>spués <strong>de</strong> haber normalizado cada región por medio <strong>de</strong> <strong>la</strong> sumatoria <strong>de</strong><br />
todos los compon<strong>en</strong>tes por región, para t<strong>en</strong>er una i<strong>de</strong>a más c<strong>la</strong>ra <strong>de</strong> lo anterior<br />
observemos <strong>la</strong>s comparaciones <strong>en</strong> <strong>la</strong> figura 6:
(a)<br />
(b)<br />
Fig. 6. Espectro <strong>de</strong> Fourier y regiones a utilizar para su reconocimi<strong>en</strong>to. (a) Plástico, (b)<br />
Ma<strong>de</strong>ra y (c) Metal<br />
(c)<br />
3.7 C<strong>la</strong>sificación <strong>de</strong> materiales<br />
Las re<strong>de</strong>s neuronales son <strong>la</strong> técnica más a<strong>de</strong>cuada para llevar a cabo el<br />
reconocimi<strong>en</strong>to, al m<strong>en</strong>os <strong>en</strong> nuestro caso, ya que no conocemos a ci<strong>en</strong>cia cierta el<br />
comportami<strong>en</strong>to <strong>de</strong> nuestros datos y precisam<strong>en</strong>te <strong>la</strong>s re<strong>de</strong>s neuronales resuelv<strong>en</strong><br />
problemas tanto linealm<strong>en</strong>te separables como no linealm<strong>en</strong>te separables,<br />
implem<strong>en</strong>tación re<strong>la</strong>tivam<strong>en</strong>te s<strong>en</strong>cil<strong>la</strong> y <strong>de</strong> un diseño bastante flexible, así como<br />
tolerancia a fallos. En este trabajo utilizaremos un perceptrón multicapa.<br />
En <strong>la</strong> figura 7 se muestra <strong>la</strong> arquitectura <strong>de</strong> <strong>la</strong> red neuronal a utilizar para hacer el<br />
reconocimi<strong>en</strong>to.
Fig. 7. Arquitectura <strong>de</strong> <strong>la</strong> red neuronal, <strong>en</strong> este caso un Perceptrón multicapa<br />
4 Descripción <strong>de</strong>l sistema <strong>de</strong> c<strong>la</strong>sificación<br />
En este trabajo se utiliza una banda transportadora, <strong>en</strong> esta se pres<strong>en</strong>tan los objetos y<br />
cuando se <strong>de</strong>tecta <strong>la</strong> pres<strong>en</strong>cia <strong>de</strong> alguno, se captura <strong>la</strong> imag<strong>en</strong> por medio <strong>de</strong> <strong>la</strong><br />
cámara, posteriorm<strong>en</strong>te se realiza todo el análisis anteriorm<strong>en</strong>te nombrado y una vez<br />
que se <strong>de</strong>termina el tipo <strong>de</strong> material <strong>de</strong>l que se trata, se realiza <strong>la</strong> c<strong>la</strong>sificación.<br />
La c<strong>la</strong>sificación se realiza con ayuda <strong>de</strong> un servomotor mo<strong>de</strong>lo HS-311 <strong>de</strong> Hitec,<br />
que trabaja <strong>de</strong> 4.8 a 6 V, se manejan para esto tres posiciones, <strong>de</strong>bido a los tres<br />
materiales ya m<strong>en</strong>cionados, estos materiales van al cont<strong>en</strong>edor <strong>de</strong>l tipo <strong>de</strong> material <strong>de</strong>l<br />
que se trate; a su vez <strong>la</strong> banda transportadora cu<strong>en</strong>ta con un motor <strong>de</strong> CD que trabaja a<br />
12V y cu<strong>en</strong>ta con un juego <strong>de</strong> <strong>en</strong>granes reductor <strong>de</strong> velocidad, para un mayor control.<br />
El control se realiza por medio <strong>de</strong>l puerto paralelo <strong>de</strong> <strong>la</strong> PC.<br />
5 Resultados y conclusiones<br />
Exist<strong>en</strong> numerosas técnicas <strong>de</strong> reconocimi<strong>en</strong>to, y podría no ser una novedad <strong>la</strong><br />
realización <strong>de</strong>l trabajo, sin embargo, <strong>la</strong> aplicación a una p<strong>la</strong>nta recic<strong>la</strong>dora don<strong>de</strong> los<br />
materiales a c<strong>la</strong>sificar están ya <strong>de</strong>finidos, tales como metales, cartón, vidrio, etc., es<br />
una bu<strong>en</strong>a propuesta <strong>de</strong>bido a que se podría realizar el sistema que realice <strong>la</strong>
c<strong>la</strong>sificación y simplem<strong>en</strong>te se tom<strong>en</strong> los cont<strong>en</strong>edores <strong>de</strong>p<strong>en</strong>di<strong>en</strong>do <strong>de</strong>l material que<br />
se <strong>de</strong>see realizar el recic<strong>la</strong>do, <strong>de</strong>bido a esto consi<strong>de</strong>ramos pues este trabajo como <strong>la</strong><br />
primera parte <strong>de</strong> un proyecto que podría ser <strong>de</strong> mayor magnitud, importancia y ayuda<br />
para procesos industriales.<br />
Exist<strong>en</strong> así mismo restricciones para este trabajo, po<strong>de</strong>mos m<strong>en</strong>cionar por el<br />
mom<strong>en</strong>to que los materiales que se utilizaran serán <strong>de</strong> dim<strong>en</strong>siones conocidas e<br />
idénticas, <strong>de</strong>berán estar <strong>en</strong> bu<strong>en</strong> estado, esto es no pres<strong>en</strong>tar rayones, cortes, pintura,<br />
etc., estas son algunas <strong>de</strong> <strong>la</strong>s limitaciones <strong>de</strong>l trabajo, pero <strong>de</strong>bemos m<strong>en</strong>cionar que se<br />
buscará dar seguimi<strong>en</strong>to para po<strong>de</strong>r tanto c<strong>la</strong>sificar más materiales, como también<br />
pres<strong>en</strong>tar materiales <strong>de</strong> otras formas<br />
El sistema <strong>de</strong> software t<strong>en</strong>drá una interfaz visual <strong>en</strong> C++ Buil<strong>de</strong>r y a <strong>la</strong> fecha se<br />
<strong>en</strong>cu<strong>en</strong>tra <strong>en</strong> un 80% <strong>de</strong> realización, a su vez el hardware <strong>de</strong>l mismo sistema esta <strong>en</strong><br />
construcción y podríamos consi<strong>de</strong>rar que se <strong>en</strong>cu<strong>en</strong>tra <strong>en</strong> un 70% realizado.<br />
Refer<strong>en</strong>cias<br />
[1] Phillip John Mc Kerrow ”Introdution to robotics” Editorial Addison Wesley, 1993.<br />
[2] Ming-Kuei Hu “Visual Pattern Recognition by Mom<strong>en</strong>ts Invariants” IRE Trans. Inform.<br />
Theory, 1962.<br />
[3] Escalera Hueso, Arturo <strong>de</strong> <strong>la</strong> “Visión por computador: Fundam<strong>en</strong>tos y Métodos” España,<br />
Pearson Educación, 2001<br />
[4] Inigo Madrigal, Rafael “Visión artificial por computador: Fundam<strong>en</strong>tos, sistemas y<br />
aplicaciones <strong>en</strong> <strong>la</strong> industria y robotica” Madrid, Paraninfo, 1986.<br />
[5] González Rafael, Woods Richard “Tratami<strong>en</strong>to Digital <strong>de</strong> Imág<strong>en</strong>es” Addison-Wesley<br />
E.U.A., 1996<br />
[6] Mano, M. Morris “Diseño Digital” Trad. Julio Fournier González. <strong>México</strong>, 1987<br />
[7] “Re<strong>de</strong>s Neuronales Artificiales”, José R. Hilera y Víctor J Martínez. 2000. Alfaomega.<br />
Madrid. España<br />
[8] “Digital Neural Networks”, S. Y. Kung, 1993. PTR Pr<strong>en</strong>tice Hall, Inc.
Mobile Nested Transactions Monitor<br />
based on Multi-Ag<strong>en</strong>t Systems: Workflow Layer<br />
Jorge Martinez 1 , Matias Alvarado 2<br />
1<br />
Artificial Intellig<strong>en</strong>ce Lab., CIC. National Technical University.<br />
J. Batiz esq. O. De M<strong>en</strong>dizabal s/n., Mexico, DF, C.P. 07738<br />
george@correo.cic.ipn.mx<br />
2<br />
PIMAyC, Mexican Petroleum Institute<br />
Eje C<strong>en</strong>tral Lazaro Card<strong>en</strong>as 152. Mexico, D.F., C.P. 07730<br />
matiasa@imp.mx<br />
Abstract. Transaction Processing Monitors featuring Nested Transactions are<br />
in the core mo<strong>de</strong>l for mission-critical applications. In this paper, a workflow<br />
<strong>la</strong>yer for Mobile Nested Transactions is pres<strong>en</strong>ted together with a multi-ag<strong>en</strong>t<br />
system implem<strong>en</strong>tation. The main advantage to introduce is a fault-tolerant<br />
mechanism. This is aimed to <strong>de</strong>al with both the loss of communication –very<br />
usual in mobile <strong>en</strong>vironm<strong>en</strong>ts- and concurr<strong>en</strong>t cli<strong>en</strong>t access.<br />
1 Introduction<br />
The mobile computing paradigm has introduced new issues and chall<strong>en</strong>ges in data<br />
processing. Users are able to access their information with the help of mobile phones,<br />
personal digital assistants and portable computers. However these <strong>de</strong>vices are prone<br />
to power outages, network disconnections and memory overflows. Th<strong>en</strong>, control<br />
mechanisms are required in or<strong>de</strong>r to preserve data and information consist<strong>en</strong>cy.<br />
Transaction Processing is a Distributed Systems branch re<strong>la</strong>ted to the study of data<br />
consist<strong>en</strong>cy. Beyond the traditional f<strong>la</strong>t mo<strong>de</strong>ls –where objects are stored at the same<br />
host, the distributed approach for transaction processing <strong>en</strong>closes the sc<strong>en</strong>ario where<br />
there’s more than one host.<br />
The above-m<strong>en</strong>tioned paradigms are distributed by <strong>de</strong>finition. And so are Multi-<br />
Ag<strong>en</strong>t systems. Consi<strong>de</strong>ring such shared condition, it is proposed in this paper a<br />
Transaction Processing Monitor based on a Multi-Ag<strong>en</strong>t system. It is also the<br />
objective of this work, to take a formal mo<strong>de</strong>l to the ground of a real implem<strong>en</strong>tation.<br />
That is the case of the Logic of Interaction [1, 2], a BDI framework aimed to <strong>de</strong>al<br />
with concurr<strong>en</strong>t actions interaction within a distributed ag<strong>en</strong>ts group.<br />
In the next section, the multi-ag<strong>en</strong>t and mobile computing paradigms are exp<strong>la</strong>ined<br />
un<strong>de</strong>r an integrated scope. Section 3 pres<strong>en</strong>ts a historical evolution of Transaction<br />
Processing <strong>en</strong>ding at the Mobile Nested approach, for which a Monitor is un<strong>de</strong>r<br />
<strong>de</strong>velopm<strong>en</strong>t. Section 4 <strong>de</strong>scribes the workflow <strong>la</strong>yer for the Transaction Processing<br />
Monitor and a control mechanism for transactional behavior in ag<strong>en</strong>ts. Conclusions<br />
and un<strong>de</strong>rgoing work are addressed in Section 5.
2 Multi-ag<strong>en</strong>t framework for mobile computing<br />
Multi-ag<strong>en</strong>t systems have aris<strong>en</strong> as an alternative approach for solving distributed<br />
problems. In fact, these kinds of systems are <strong>de</strong>rived from research efforts in the field<br />
of Distributed Artificial Intellig<strong>en</strong>ce. It was the <strong>de</strong>velopm<strong>en</strong>t of message exchange<br />
mechanisms among smart-like computer systems, which pushed the i<strong>de</strong>a for<br />
mo<strong>de</strong>lling each <strong>en</strong>tity as an ag<strong>en</strong>t.<br />
The basic features in the expected behaviour of an ag<strong>en</strong>t are: autonomy, that<br />
implies that the ag<strong>en</strong>t (to some ext<strong>en</strong>d) keeps control over its internal state and the<br />
way it behaves over an <strong>en</strong>vironm<strong>en</strong>t; social ability, the ag<strong>en</strong>t must be capable of<br />
interact and communicate with other <strong>en</strong>tities during the problem-solving process; and<br />
learning, that is, evolve through its life-cycle and acquire both new knowledge and<br />
abilities. Additional features of ag<strong>en</strong>t and multi-ag<strong>en</strong>t systems inclu<strong>de</strong> those re<strong>la</strong>ted to<br />
reasoning, mobility and persist<strong>en</strong>ce. It is also expected that ag<strong>en</strong>ts perform s<strong>en</strong>sing<br />
operations over their <strong>en</strong>vironm<strong>en</strong>t as well as adaptability to <strong>de</strong>al with unexpected<br />
ev<strong>en</strong>ts. Ag<strong>en</strong>ts are <strong>de</strong>signed to reach their goals un<strong>de</strong>r conditions <strong>de</strong>scribed for their<br />
information (knowledge/beliefs) [21].<br />
Advances in wireless networking and portable information applications have<br />
introduced a new paradigm known as mobile computing. Users are no longer<br />
restricted to working at fixed sites. With mobile <strong>de</strong>vices, such like phones, personal<br />
digital assistants and <strong>la</strong>ptop computers, users can access their information <strong>de</strong>spite of<br />
their geographical location. The multi-ag<strong>en</strong>t approach has be<strong>en</strong> firmly re<strong>la</strong>ted to<br />
<strong>de</strong>aling with problems that are distributed in nature and located at fast evolving<br />
<strong>en</strong>vironm<strong>en</strong>ts. One example for these kinds of problems can be found in the field of<br />
so called mobile computing [21]. A mobile computing <strong>en</strong>vironm<strong>en</strong>t is shown in<br />
Figure 1; it is basically composed of: Fixed Hosts, Mobiles Hosts, Mobile Support<br />
Stations. These <strong>la</strong>tter provi<strong>de</strong> wireless network access to a limited scope range named<br />
Cell.<br />
A Mobile User is that one who gets connected to the fixed network through his/her<br />
mobile host. It would be fairly <strong>de</strong>sirable to maintain a connection alive while the user<br />
is on the road. The problems with a mobile <strong>en</strong>vironm<strong>en</strong>t arise wh<strong>en</strong> the <strong>de</strong>vice loses<br />
its connection by any reason. The most frequ<strong>en</strong>t are low batteries, physical location of<br />
the <strong>de</strong>vice (e.g. the user <strong>en</strong>ters subway station) and links instability. From these<br />
issues, it becomes feasible to implem<strong>en</strong>t multi-ag<strong>en</strong>t systems over mobile groups, that<br />
is, one or more ag<strong>en</strong>ts per <strong>de</strong>vice, which interact in or<strong>de</strong>r to fulfil a set of goals. The<br />
main advantage to achieve is the <strong>de</strong>velopm<strong>en</strong>t of a fault-tolerant mechanism that <strong>de</strong>als<br />
with the lost of communication that may occur betwe<strong>en</strong> two <strong>de</strong>vices in a mobile<br />
<strong>en</strong>vironm<strong>en</strong>t. The un<strong>de</strong>rlying issues of combining these two technologies have be<strong>en</strong><br />
treated in [9] and [15]. This <strong>la</strong>tter also m<strong>en</strong>tions a mobile database approach like the<br />
one introduced <strong>la</strong>ter in the pres<strong>en</strong>t work. Examples of multi-ag<strong>en</strong>t systems over<br />
mobile groups have be<strong>en</strong> implem<strong>en</strong>ted for securing an electronic marketp<strong>la</strong>ce [10]<br />
and as schedulers for travellers [8].
CELL<br />
Fixed Host<br />
CELL<br />
Mobile<br />
Group<br />
Mobile Support<br />
Station<br />
Mobile<br />
Group<br />
Fig. 1. Mobile Computing <strong>en</strong>vironm<strong>en</strong>t featuring two service Cells<br />
3 Mobile nested transactions<br />
The concept of Transaction can found in almost any type of business process<br />
curr<strong>en</strong>tly mo<strong>de</strong>lled by object-ori<strong>en</strong>ted techniques. In [5], it is paid special att<strong>en</strong>tion to<br />
Transaction Processing as a hallmark for the next Cli<strong>en</strong>t/Server technology<br />
g<strong>en</strong>eration.<br />
A <strong>de</strong>finition from [7] m<strong>en</strong>tions that a transaction works as a mechanism for<br />
preserving consist<strong>en</strong>cy in the set of working objects. A common belief about the<br />
origin of transactions, establishes that they come from Database Managem<strong>en</strong>t<br />
Systems theory. They were born from the user requirem<strong>en</strong>t for executing a set of<br />
operations over a database as a unit. The transaction i<strong>de</strong>a was introduced in the theory<br />
of Distributed Systems un<strong>de</strong>r the form of Transactional File Servers [16]. There, the<br />
objective was to provi<strong>de</strong> file access service to concurr<strong>en</strong>t users over a network. File<br />
consist<strong>en</strong>cy required protection against multiple requests for both reading and writing.<br />
In the pres<strong>en</strong>t work, the goal is not only to control database access, but also to<br />
coordinate a mobile group that involves logical units and physical <strong>de</strong>vices.<br />
3.1 ACID properties<br />
Transaction mo<strong>de</strong>ls are <strong>de</strong>eply based on the preservation of four basic properties.<br />
Atomicity stands for “all or none” and implies that the set of operations comprising a<br />
transaction must be executed as a whole. Although consist<strong>en</strong>cy is consi<strong>de</strong>red as a<br />
transaction property, it actually refers to data state from the database; however it is the<br />
responsibility for a transaction to take the database from a consist<strong>en</strong>t state and to<br />
leave it in a simi<strong>la</strong>r one. Iso<strong>la</strong>tion means that a transaction must think of itself as the<br />
only one in execution at a giv<strong>en</strong> mom<strong>en</strong>t. Durability stands for data persist<strong>en</strong>ce; once<br />
a transaction has be<strong>en</strong> committed, changes over database objects cannot be undone<br />
but by the execution of a second transaction.<br />
Safekeeping the ACID properties, is the ultimate task to be achieved in transaction<br />
processing. However, rec<strong>en</strong>t works [11] in the concurr<strong>en</strong>cy control si<strong>de</strong> propose the<br />
re<strong>la</strong>xation of iso<strong>la</strong>tion conditions. The b<strong>en</strong>efit is an improvem<strong>en</strong>t in the number of
concurr<strong>en</strong>t cli<strong>en</strong>ts; they are allowed to access a shared resource without introducing<br />
further conflicts in the read/write operations.<br />
3.2 Concurr<strong>en</strong>cy control and distributed transactions<br />
A cli<strong>en</strong>t is responsible of requesting the execution of operations to a server. The<br />
natural consequ<strong>en</strong>ce of multiple cli<strong>en</strong>ts requests, arises as a concurr<strong>en</strong>cy control issue<br />
over the objects to be used. It <strong>de</strong>p<strong>en</strong>ds on whether a transaction needs to read or write<br />
an object that the server blocks the resource for shared or exclusive access<br />
respectively.<br />
A f<strong>la</strong>t transaction can be thought of a set of atomic operations over a group of<br />
database objects. These operations are organized un<strong>de</strong>r a partial or<strong>de</strong>r [14]. Three<br />
bracket operations mark the context of a transaction: Begin, Commit, Abort. These<br />
<strong>la</strong>tter are invoked at the <strong>en</strong>d in or<strong>de</strong>r to indicate whether the transaction execution<br />
succee<strong>de</strong>d or not.<br />
Every request belonging to a f<strong>la</strong>t transaction is executed over objects from the<br />
same server. In a distributed transaction, there are two or more servers holding the<br />
resources that will be read or modified by a transaction. Thus, there is necessary to<br />
have a Coordinator in charge of managing the success or failure result from the other<br />
participants. This is commonly achieved un<strong>de</strong>r the Two-Phase Commit Protocol<br />
(2PC) [19].<br />
3.3 Nested transactions<br />
The i<strong>de</strong>a of Nested Transactions ext<strong>en</strong>ds the distributed concept by allowing other<br />
transactions (known as childr<strong>en</strong>) to be born un<strong>de</strong>r the context of a par<strong>en</strong>t transaction<br />
[7, 17, 18]. In this way, there will be a tree of no<strong>de</strong>s executing read/write operations<br />
and capable of spawning inner sub-transactions. Avai<strong>la</strong>ble computing resources are<br />
the unique limitation for the tree <strong>de</strong>epness; however, it is no longer required to<br />
complete all the operations in one p<strong>la</strong>ce. Each child could be executed in differ<strong>en</strong>t<br />
locations, that is, nested transactions are distributed. In [12, 13], it has be<strong>en</strong> conclu<strong>de</strong>d<br />
that nested transactions feature special conditions un<strong>de</strong>r which it is not possible to<br />
comply with the four ACID properties. Except for the root no<strong>de</strong>, childr<strong>en</strong> and leaf<br />
no<strong>de</strong>s fail <strong>en</strong>suring Durability. The reason is that any changes over the database are<br />
actually performed until the root no<strong>de</strong> commits or aborts. A transaction tree example<br />
is <strong>de</strong>picted in Figure 2.<br />
Nested Transactions suit in mobile applications involving wireless or cellu<strong>la</strong>r<br />
connections for the following reasons. A compound transaction with nested childr<strong>en</strong>,<br />
offers better performance in concurr<strong>en</strong>cy and fault tolerance. Childr<strong>en</strong> could be<br />
executed in a parallel fashion and each one holds local responsibility for committing<br />
or aborting. However, none of the operations are actually reflected in the database<br />
cont<strong>en</strong>t until the root transaction commits or aborts. Some other Nested Transactions<br />
features inclu<strong>de</strong> the optionally of success for childr<strong>en</strong> no<strong>de</strong>s. According to this, a root<br />
transaction is able to commit ev<strong>en</strong> if some of its branches fail during execution.
T<br />
T 1<br />
T 2<br />
T 4<br />
T 11<br />
T 12<br />
T 3<br />
Fig. 2 Nested transaction. The Root no<strong>de</strong> T spawns four childr<strong>en</strong>. T 1 spawns two more childr<strong>en</strong><br />
resulting in four leaf no<strong>de</strong>s. It can be se<strong>en</strong> that T 12 actually works as sub-transaction for both T 1<br />
and T 2 . T 3 and T 4 work at the same no<strong>de</strong><br />
T<br />
T 1<br />
T 2<br />
T 11<br />
T 12<br />
T 3<br />
Fig. 3. Mobile Nested Transaction<br />
3.4 Mobile nested transactions<br />
In [12] the concept of Mobile Nested Transactions is introduced. These are the result<br />
of combining the concepts of Nested Transactions with Mobile Computing,<br />
particu<strong>la</strong>rly, a group of mobile hosts. There, a mobile <strong>de</strong>vice repres<strong>en</strong>ts each no<strong>de</strong> in<br />
the transaction tree. A noticeable differ<strong>en</strong>ce betwe<strong>en</strong> the g<strong>en</strong>eral mo<strong>de</strong>l and the above<br />
proposal is found in the read/write access. In [17], only leaf no<strong>de</strong>s are able to access<br />
database objects whereas the [14] <strong>de</strong>finition <strong>en</strong>ables intermediate no<strong>de</strong>s to execute<br />
such operations as well. In contrast with the g<strong>en</strong>eral <strong>de</strong>finition from 3.3, the next
emarks are consi<strong>de</strong>red in the Mobile Nested approach: child no<strong>de</strong>s have only one<br />
par<strong>en</strong>t, read/write operations are actually done at the lowest (leaf) level and, each<br />
transaction no<strong>de</strong> is located at one mobile host. This can be se<strong>en</strong> in Figure 3.<br />
4 Mobile nested transactions monitor<br />
4.1 Un<strong>de</strong>rlying formal mo<strong>de</strong>l<br />
Logic of Interaction [1], [2] was introduced as a formal mo<strong>de</strong>l for multi-ag<strong>en</strong>t<br />
systems, aimed to <strong>de</strong>al with the ba<strong>la</strong>nce ag<strong>en</strong>t’s knowledge and actions. The c<strong>en</strong>tral<br />
issue is that individual ag<strong>en</strong>t actions do interact. So, an action repres<strong>en</strong>tation must<br />
make these interactions explicit and need to explicitly mo<strong>de</strong>l differ<strong>en</strong>t processes. The<br />
important aspect is the way in which ag<strong>en</strong>ts perform the actions. In this s<strong>en</strong>se,<br />
provi<strong>de</strong>s a mo<strong>de</strong>l for synchronized, parallel, sequ<strong>en</strong>tial and concurr<strong>en</strong>t actions carried<br />
out by a single ag<strong>en</strong>t and by a group. Modal temporal logic formalism is used for<br />
action repres<strong>en</strong>tation and mo<strong>de</strong>lling.<br />
The key elem<strong>en</strong>ts from the Logic of Interaction are re<strong>la</strong>ted to Beliefs (preconditions),<br />
Goals (post-conditions) and Action execution itself. There has be<strong>en</strong><br />
<strong>de</strong>fined a set of operators for interactions control. These are aimed to help in<br />
differ<strong>en</strong>tiating actions based on their space and time nature. Based on this, ag<strong>en</strong>ts can<br />
perform: sequ<strong>en</strong>tial, parallel, synchronized and concurr<strong>en</strong>t actions. The full<br />
<strong>de</strong>finitions concerning the Logic of Interaction are out of the scope of this paper.<br />
In or<strong>de</strong>r to pave the way that connects a formal mo<strong>de</strong>l with the actual<br />
implem<strong>en</strong>tation, only some elem<strong>en</strong>ts from the logic of interaction have be<strong>en</strong><br />
trans<strong>la</strong>ted to co<strong>de</strong>. The system has be<strong>en</strong> implem<strong>en</strong>ted in an op<strong>en</strong> <strong>en</strong>vironm<strong>en</strong>t using<br />
JADE (Java Ag<strong>en</strong>t DEvelopm<strong>en</strong>t Framework) as the ag<strong>en</strong>t p<strong>la</strong>tform [6]. Ag<strong>en</strong>ts use<br />
ontologies in or<strong>de</strong>r to repres<strong>en</strong>t internally pieces of information [3]. This is used in the<br />
exchanged messages and for inner control and operations.<br />
4.2 Workflow <strong>la</strong>yer<br />
A Transaction Processing Monitor is conceived as the software in charge of managing<br />
simple requests from users that will be scaled over a distributed system [4]. It is also<br />
responsible for safekeeping the ACID properties during concurr<strong>en</strong>t transactions<br />
execution. In a few words the monitor: receives some request, trans<strong>la</strong>tes it into a<br />
system un<strong>de</strong>rstandable <strong>la</strong>nguage, triggers the transaction beginning, controls the<br />
commit or abort operations and finally, reports the result to the user.<br />
According to [5], Transaction Processing Monitors featuring Nested Transactions<br />
as the core mo<strong>de</strong>l for mission-critical applications will better reflect the business<br />
process nature. Three <strong>la</strong>yers <strong>de</strong>fine the gross structure of Transaction Processing<br />
monitor:<br />
Pres<strong>en</strong>tation. It receives instructions from the user and trans<strong>la</strong>tes them into a<br />
system un<strong>de</strong>rstandable <strong>la</strong>nguage. These instructions are s<strong>en</strong>t to the workflow <strong>la</strong>yer.<br />
The result of the transaction is <strong>la</strong>ter pres<strong>en</strong>ted to the user.
Workflow. As the name implies, this <strong>la</strong>yer is responsible for routing, managing and<br />
answering the requests received from the pres<strong>en</strong>tation <strong>la</strong>yer. Instructions are turned to<br />
the third <strong>la</strong>yer and results are s<strong>en</strong>t back to the first <strong>la</strong>yer.<br />
Database. The actual access to database objects is achieved at this level. The<br />
results, either successful or not, are informed to the previous <strong>la</strong>yer. Curr<strong>en</strong>tly, the<br />
implem<strong>en</strong>tation features an embed<strong>de</strong>d database at each <strong>de</strong>vice: Pointbase Micro<br />
Edition [20]. Since the ag<strong>en</strong>ts <strong>de</strong>velopm<strong>en</strong>t framework is Java-based, it was required<br />
a compatible database tool that could run over mobile <strong>de</strong>vices.<br />
At this point, it has be<strong>en</strong> implem<strong>en</strong>ted a basic workflow <strong>la</strong>yer for the Mobile<br />
Nested Transactions Monitor. In particu<strong>la</strong>r, it has be<strong>en</strong> implem<strong>en</strong>ted a Nested Two-<br />
Phase Commit. In this mechanism, a set of participants join the transaction started by<br />
some user at a root no<strong>de</strong>. Desc<strong>en</strong>dant no<strong>de</strong>s may join each participant until a tree is<br />
completed. Once the tree is ready, each leaf informs its par<strong>en</strong>t whether they failed or<br />
succee<strong>de</strong>d in executing their assigned set of operations. Ev<strong>en</strong>tually, all this<br />
information reaches the root no<strong>de</strong>, th<strong>en</strong>:<br />
Phase 1. The root no<strong>de</strong> asks all the successful no<strong>de</strong>s to get ready for commit. Since<br />
intermediate no<strong>de</strong>s may abort locally, only those <strong>de</strong>sc<strong>en</strong>dants that are sons of<br />
successful no<strong>de</strong>s receive the canCommit request s<strong>en</strong>t by the root no<strong>de</strong>.<br />
Phase 2. With the retrieved answers, the root no<strong>de</strong> <strong>de</strong>ci<strong>de</strong>s to commit or abort and<br />
informs the final <strong>de</strong>cision to all of the involved no<strong>de</strong>s in the 2PC.<br />
The above process is shown in Figure 4.<br />
T<br />
T<br />
T<br />
canCommit?<br />
T 2<br />
T 3<br />
T 1<br />
T 2<br />
T 3<br />
T 1<br />
T 2<br />
<br />
abort commit<br />
T 11<br />
T 12 T 11<br />
T 12<br />
COMMIT<br />
T 3<br />
commit<br />
T 1<br />
<br />
<br />
Fig. 4. Two-Phase Commit protocol in a Nested Transaction. Since T 11 and T 12 do not receive a<br />
final commit or abort, they abort by <strong>de</strong>fault after a timeout<br />
4.3 Control mechanism for transactional ag<strong>en</strong>ts behaviour<br />
During transaction processing, ag<strong>en</strong>ts may find that some data objects are already in<br />
use due to concurr<strong>en</strong>t access by other cli<strong>en</strong>ts. In or<strong>de</strong>r to address this sort of ev<strong>en</strong>ts, a<br />
control mechanism has be<strong>en</strong> proposed. This is an embed<strong>de</strong>d behavior in each ag<strong>en</strong>t<br />
taking part in a giv<strong>en</strong> transaction. Ag<strong>en</strong>t’s actions are c<strong>la</strong>ssified into mandatory and
optional, strong and weak; the combination of these traits and the expected behavior<br />
can be found in Table 1.<br />
Table 1. Actions c<strong>la</strong>ssiffication supporting concurr<strong>en</strong>y control in ag<strong>en</strong>ts interaction and nested<br />
transactions processing. The <strong>de</strong>scription column shows what to do in case of action failure<br />
Type Sub-Type Description<br />
Mandatory Strong The transaction is aborted.<br />
Mandatory Weak A new attempt is completed unless the user cancels.<br />
Optional Strong It is ignored for this transaction but another<br />
transaction is scheduled for <strong>la</strong>ter attempts.<br />
Optional Weak No more attempts are done.<br />
The above c<strong>la</strong>ssification helps an ag<strong>en</strong>t-no<strong>de</strong> in the transaction tree in <strong>de</strong>cisionmaking.<br />
This may happ<strong>en</strong> while trying to access a data object that is already locked,<br />
or ev<strong>en</strong> wh<strong>en</strong> communication is lost with one of the ag<strong>en</strong>t’s siblings. This is achieved<br />
by introducing alternative ways for the no<strong>de</strong> to operate with a differ<strong>en</strong>t set of<br />
<strong>de</strong>sc<strong>en</strong>dants from the original one. In this way, an ag<strong>en</strong>t is not fully required to wait<br />
for an object to get unlocked. If the failed operation is not mandatory, a new attempt<br />
can be done, either in the same transaction or by scheduling a future transaction.<br />
There is introduced a notion of action persist<strong>en</strong>ce in the s<strong>en</strong>se that the ag<strong>en</strong>t, will<br />
attempt to complete their assigned set of instructions –wh<strong>en</strong>ever it is possible.<br />
Previous user feedback is required in or<strong>de</strong>r to set the configuration parameters that<br />
will rule the ag<strong>en</strong>t’s behavior for this mechanism.<br />
As host crashes and breaks in communications are expected ev<strong>en</strong>ts in a mobile<br />
<strong>en</strong>vironm<strong>en</strong>t, the proposed mechanism works as a base for logging and recovery<br />
controls. On the other hand, better concurr<strong>en</strong>cy control is achieved through a Lock<br />
Manager [11, 7]. These two mechanisms are part of an un<strong>de</strong>rgoing effort and<br />
curr<strong>en</strong>tly out of the scope of this paper.<br />
5 Conclusions<br />
The multi-ag<strong>en</strong>t systems approach is firmly <strong>de</strong>voted to problems that are distributed<br />
in nature and located at fast evolving <strong>en</strong>vironm<strong>en</strong>ts, such as those found in the so<br />
called mobile computing. Un<strong>de</strong>r such context, users are able to access and process<br />
information with the help of mobile <strong>de</strong>vices. However, these <strong>la</strong>tter are prone to<br />
operation outages that may <strong>en</strong>danger data consist<strong>en</strong>cy.<br />
The Mobile Nested Transaction concept was introduced as an alternative to <strong>de</strong>al<br />
with the ACID safekeeping chall<strong>en</strong>ge in the operation of a set of mobile hosts. There,<br />
sub-transactions are allowed to born insi<strong>de</strong> the context of a par<strong>en</strong>t transaction.<br />
Childr<strong>en</strong> no<strong>de</strong>s failures no longer imply that the root par<strong>en</strong>t has to abort the complete<br />
transaction. A Transaction Processing Monitor is un<strong>de</strong>r <strong>de</strong>velopm<strong>en</strong>t; it is based in a<br />
multi-ag<strong>en</strong>t system. In this paper, it was pres<strong>en</strong>ted the Workflow <strong>la</strong>yer featuring a<br />
Mobile Two-Phase Commit protocol.<br />
The Logic of Interaction is used to rule the ag<strong>en</strong>t’s action coordination. It is<br />
implem<strong>en</strong>ted in an op<strong>en</strong> <strong>en</strong>vironm<strong>en</strong>t (JADE). A control mechanism was introduced
in or<strong>de</strong>r to achieve a transactional-like behaviour in the ag<strong>en</strong>t’s participation within a<br />
Mobile Nested Transaction.<br />
P<strong>en</strong>ding work is heavily re<strong>la</strong>ted to implem<strong>en</strong>t the other two <strong>la</strong>yers from the<br />
monitor: Pres<strong>en</strong>tation and Database access. In this <strong>la</strong>tter, a Lock Manager mechanism<br />
is also consi<strong>de</strong>red. It will help to improve concurr<strong>en</strong>cy control in shared data objects.<br />
Refer<strong>en</strong>ces<br />
1. Alvarado, M., Sheremetov, L.: Modal Structure for Ag<strong>en</strong>ts Interaction Based on Concurr<strong>en</strong>t<br />
Actions. In V. Maik, J. Müller, M. Pchouek (eds.): Multi-Ag<strong>en</strong>t Systems and Applications<br />
III: 3rd International C<strong>en</strong>tral and Eastern European Confer<strong>en</strong>ce on Multi-Ag<strong>en</strong>t Systems.<br />
Lecture Notes in Computer Sci<strong>en</strong>ce, Vol. 2691. Springer-Ver<strong>la</strong>g, Berlin Hei<strong>de</strong>lberg New<br />
York (2003) 29-39<br />
2. Alvarado, M., Sheremetov, L., German, E., Alva, E.: Logic of Interaction for Multiag<strong>en</strong>t<br />
Systems. In: C.A. Coello Coello, A. <strong>de</strong> Albornoz, L.E. Sucar, O.C. Battistutti (eds.): MICAI<br />
2002: Advances in Artificial Intellig<strong>en</strong>ce: Second Mexican International Confer<strong>en</strong>ce on<br />
Artificial Intellig<strong>en</strong>ce. Lecture Notes in Computer Sci<strong>en</strong>ce, Vol. 2313. Springer-Ver<strong>la</strong>g,<br />
Berlin Hei<strong>de</strong>lberg New York (2002) 378-396<br />
3. Bellifemine, F., Poggi, A., Rimassi, G.: JADE: A FIPA-Compliant ag<strong>en</strong>t framework, Proc.<br />
Practical Applications of Intellig<strong>en</strong>t Ag<strong>en</strong>ts and Multi-Ag<strong>en</strong>ts, April (1999), 97-108.<br />
4. Bernstein, P.A., Newcomer, E.: Principles of Transaction Processing. Morgan Kaufmann<br />
Publishers Inc. (1997)<br />
5. Byte Archive at http://www.byte.com/art/9504/sec11/art1.htm<br />
6. Caire, G.: JADE Tutorial: Application-<strong>de</strong>fined cont<strong>en</strong>t <strong>la</strong>nguages and ontologies. TILab<br />
S.p.A. (2002)<br />
7. Coulouris G., Dollimore J. , Kindberg T.: Distributed Systems. Addison Wesley (2002)<br />
8. van Eijk, R.J., Ebb<strong>en</strong>, P.W.G., Bargh, M.S.: Implem<strong>en</strong>tation of a scheduler ag<strong>en</strong>t system for<br />
traveling users. In proc. of Workshop on Ubiquitous Ag<strong>en</strong>ts on embed<strong>de</strong>d, wearable, and<br />
mobile <strong>de</strong>vices. Bologna (2002)<br />
9. Finin, T., Joshi, A., Kagal, L., Ratsimor, O., Avancha, S., Korolev, V., Ch<strong>en</strong>, H., Perich, F.,<br />
Cost., S.: Intellig<strong>en</strong>t Ag<strong>en</strong>ts for Mobile and Embed<strong>de</strong>d Devices. International Journal of<br />
Cooperative Information Systems (2002)<br />
10. Fischer, K., Hutter, D., Klush, M., Stephan, W.: Towards secure mobile multiag<strong>en</strong>t based<br />
electronic marketp<strong>la</strong>ce systems. Electronic Notes in Theoretical Computer Sci<strong>en</strong>ce. Vol. 63.<br />
Elsevier Sci<strong>en</strong>ce (2002)<br />
11. Gama, L.A., Alvarado, M.: Concurr<strong>en</strong>cy control for Read-Only in Mobile Nested<br />
Transactions. In proc. of the 2 nd Workshop on Intellig<strong>en</strong>t Computing in the Petroleum<br />
Industry ICPI (2003)<br />
12. Gama, L.A., Alvarado, M.: Mobile Nested Transactions for Nomadic Teams. In: Alvarado,<br />
M., Sheremetov, L., Cantu, F.: Special Issue on Intellig<strong>en</strong>t Computing for Pretoleum<br />
Industry. Elsevier. (2003)<br />
13. Gama, L.A., Alvarado, M.: Transacciones para Cómputo Móvil: pres<strong>en</strong>te y perspectiva<br />
futura. Revista Digital Universitaria, Vol. 3. No. 4. http://www.revista.unam.mx (2002)<br />
14. Gray, J., Reuter A.: Transaction Processing: Concepts and Techniques. Morgan Kaufmann<br />
Publishers, Inc. (1993)<br />
15. Loke, S.W.: Supporting Intellig<strong>en</strong>t BDI Ag<strong>en</strong>ts on Resource-Limited Mobile Devices -<br />
Issues and Chall<strong>en</strong>ges from a Mobile Database Perspective. In proc. of Workshop on<br />
Ubiquitous Ag<strong>en</strong>ts on embed<strong>de</strong>d, wearable, and mobile <strong>de</strong>vices. Bologna (2002)<br />
16. Mitchell, J.G., Dion J.: A Comparison of two network-based file servers. Comms. ACM,<br />
Vol. 25, No. 4. (1982) 233-45
17. Moss, J. E. B.: Nested Transactions: An Approach to Reliable Distributed Computing. MIT<br />
Press, Cambridge, MA (1985)<br />
18. Nested Trans.at http://www.cs.panam.edu/~m<strong>en</strong>g/Course/CS6334/Note/master/no<strong>de</strong>89.html<br />
19. Özsu, M.T., Valduriez, P.: Principles of Distributed Database Systems. 2nd Ed., Pr<strong>en</strong>tice-<br />
Hall, Inc.(1999) 381-401.<br />
20. Pointbase Micro Developer’s Gui<strong>de</strong> at http://www.pointbase.com/support/docs/pbmicro.pdf<br />
21. Wooldridge, M.: An Introduction to Multi-Ag<strong>en</strong>t Systems. John Wiley & Sons. Eng<strong>la</strong>nd<br />
(2001)<br />
21. Zas<strong>la</strong>vsky, A., Tahir Z: Mobile Computing: Overview and Curr<strong>en</strong>t Status. Australian<br />
Computer Journal. Vol. 30. No. 2 (1998)
Ambi<strong>en</strong>te ubicuo para el trabajo co<strong>la</strong>borativo<br />
<strong>de</strong> edición oportunista<br />
Emilio Gutiérrez Arias, Ro<strong>la</strong>ndo M<strong>en</strong>chaca Mén<strong>de</strong>z<br />
C<strong>en</strong>tro <strong>de</strong> Investigación <strong>en</strong> Computación, Instituto Politécnico Nacional,<br />
<strong>México</strong>, D. F.<br />
egutierrez@sagitario.cic.ipn.mx, rm<strong>en</strong>@cic.ipn.mx<br />
Resum<strong>en</strong>. En el pres<strong>en</strong>te capitulo se pres<strong>en</strong>ta una arquitectura <strong>de</strong> un ambi<strong>en</strong>te<br />
ubicuo para el trabajo co<strong>la</strong>borativo <strong>de</strong> edición <strong>en</strong>tre un grupo <strong>de</strong> revisores y el<br />
propio autor <strong>de</strong>l docum<strong>en</strong>to. De igual forma se int<strong>en</strong>ta explotar el paradigma <strong>de</strong><br />
m<strong>en</strong>sajería instantánea para co<strong>la</strong>boración, don<strong>de</strong> pued<strong>en</strong> estar <strong>en</strong> contacto los<br />
integrantes <strong>de</strong> un equipo <strong>de</strong> trabajo por medio <strong>de</strong> una lista <strong>de</strong> contactos que los<br />
manti<strong>en</strong>e informados <strong>de</strong>l estatus <strong>de</strong> cada participantes y <strong>de</strong> esa manera po<strong>de</strong>r<br />
establecer una co<strong>la</strong>boración oportunista con los miembros activos. Así mismo<br />
se establece que los dispositivos móviles por sus características pued<strong>en</strong> ser una<br />
bu<strong>en</strong>a herrami<strong>en</strong>ta para realizar trabajo <strong>en</strong> grupo. La base <strong>de</strong> <strong>la</strong>s<br />
comunicaciones serán los protocolos JXTA para re<strong>de</strong>s Peer to Peer que pued<strong>en</strong><br />
facilitar <strong>la</strong> interoperabilidad <strong>de</strong> los elem<strong>en</strong>tos <strong>de</strong> nuestra arquitectura.<br />
1 Introducción<br />
1.1 Trabajo co<strong>la</strong>borativo<br />
El Área <strong>de</strong> trabajo Co<strong>la</strong>borativo asistido por Computadora (CSCW) es <strong>la</strong> guía <strong>de</strong><br />
<strong>de</strong>sarrollo <strong>de</strong> los sistemas <strong>de</strong> software multiusuario conocidos como Groupware<br />
[1,2]. Esta tecnología pue<strong>de</strong> ser usada por ejemplo para facilitar <strong>la</strong> comunicación y el<br />
trabajo <strong>en</strong>tre un grupo <strong>de</strong> personas, cooperar <strong>en</strong> el trabajo <strong>en</strong> grupo, coordinar <strong>la</strong>s<br />
activida<strong>de</strong>s <strong>de</strong>l grupo <strong>de</strong> trabajo, resolver problemas <strong>en</strong> conjunto, optimizar <strong>la</strong><br />
compet<strong>en</strong>cia <strong>de</strong> grupo o para facilitar <strong>la</strong>s negociaciones [1].<br />
Por su parte [3] <strong>de</strong>fine a Groupware como: un “Sistema <strong>de</strong> computadora que<br />
apoyan a grupos <strong>de</strong> personas involucradas <strong>en</strong> una tarea <strong>en</strong> común y que proporcionan<br />
una interfaz para el ambi<strong>en</strong>te compartido”.<br />
1.2 Computación ubicua<br />
Mark Weiser a qui<strong>en</strong> se le consi<strong>de</strong>ra el padre <strong>de</strong>l Computo Ubicuo dice: “La<br />
tecnología más trasc<strong>en</strong>d<strong>en</strong>te es aquel<strong>la</strong> que pasa <strong>de</strong>sapercibida” [4]. Es <strong>de</strong>cir, lo<br />
importante es <strong>en</strong>focarse sobre <strong>la</strong> tarea y sobre <strong>la</strong> información no sobre <strong>la</strong> herrami<strong>en</strong>ta.<br />
Aunque con sufici<strong>en</strong>te práctica se pue<strong>de</strong> lograr hacer que varias cosas apar<strong>en</strong>tem<strong>en</strong>te<br />
difíciles <strong>de</strong>saparezcan, pero una bu<strong>en</strong>a herrami<strong>en</strong>ta pue<strong>de</strong> mejorar <strong>la</strong> invisibilidad.
A <strong>la</strong>rgo p<strong>la</strong>zo <strong>la</strong>s PC’s y estaciones <strong>de</strong> trabajo <strong>de</strong>caerá por que el acceso a <strong>la</strong>s<br />
computadoras estará por todas partes: por <strong>la</strong>s pare<strong>de</strong>s, <strong>en</strong> <strong>la</strong>s manos, <strong>en</strong> los ojos, <strong>en</strong><br />
cualquier lugar físico. Esto es a lo que se conoce como “Computación Ubicua” o<br />
“Ubicomp”.<br />
1.3 M<strong>en</strong>sajería instantánea para co<strong>la</strong>boración<br />
Los sistemas <strong>de</strong> M<strong>en</strong>sajería Instantánea están basados <strong>en</strong> una comunicación<br />
sincronizada a través <strong>de</strong>l Internet [5,6], estos pued<strong>en</strong> asistir a <strong>la</strong> comunicación uno a<br />
uno sobre el mismo sistema o comunicación uno a varios don<strong>de</strong> a una persona se le<br />
pue<strong>de</strong> invitar a integrarse a una comunicación, sin embargo, <strong>la</strong> comunicación va a<br />
<strong>de</strong>p<strong>en</strong><strong>de</strong>r <strong>de</strong> <strong>la</strong>s características <strong>de</strong> <strong>la</strong> red. Para <strong>la</strong> comunicación utilizan una interfaz <strong>de</strong><br />
forma <strong>de</strong> v<strong>en</strong>tana y un cuadro <strong>de</strong> diálogo por don<strong>de</strong> los participantes teclean los<br />
m<strong>en</strong>sajes que son <strong>en</strong>viados hacia <strong>la</strong> otra persona, se parece a un sistema <strong>de</strong><br />
comunicación por teléfono que se basa <strong>en</strong> un mo<strong>de</strong>lo <strong>de</strong> l<strong>la</strong>madas <strong>en</strong> forma dinámica<br />
[5], los m<strong>en</strong>sajeros instantáneos soportan lo que se le l<strong>la</strong>ma un grupo chat, don<strong>de</strong> cada<br />
participante pue<strong>de</strong> <strong>en</strong>trar a un salón <strong>de</strong> chat don<strong>de</strong> se pued<strong>en</strong> <strong>en</strong>contrar a varias<br />
personas con qui<strong>en</strong>es <strong>en</strong>tab<strong>la</strong>r una conversación.<br />
Las personas disponibles con <strong>la</strong>s que se pue<strong>de</strong> interactuar se organizan <strong>en</strong> forma<br />
<strong>de</strong> lista, <strong>la</strong> lista pue<strong>de</strong> ser organizada <strong>de</strong>p<strong>en</strong>di<strong>en</strong>do <strong>de</strong>l ámbito o por <strong>la</strong> re<strong>la</strong>ción que<br />
existe, esta pue<strong>de</strong> ser organizada por ejemplo: Por amigos, compañeros <strong>de</strong> trabajo ó<br />
familiares con los que <strong>en</strong> dado mom<strong>en</strong>to se pue<strong>de</strong> establecer una interacción, esto es<br />
posible, por que <strong>en</strong> <strong>la</strong> lista se <strong>de</strong>spliega el estado <strong>de</strong> <strong>la</strong>s personas que <strong>la</strong> integran. Los<br />
sistemas más popu<strong>la</strong>res son por ejemplo AOL [7], Yahoo mess<strong>en</strong>ger [8], MSN<br />
mess<strong>en</strong>ger [9], ICQ [10] y Jabber [11]. Aunque exist<strong>en</strong> varios <strong>en</strong> el mercado que no<br />
son tan popu<strong>la</strong>res. Es preciso m<strong>en</strong>cionar que estos sistemas a<strong>de</strong>más <strong>de</strong> servir como un<br />
medio para <strong>en</strong>viar m<strong>en</strong>sajes instantáneos a <strong>la</strong>s personas disponibles, también es<br />
posible <strong>en</strong>viar m<strong>en</strong>sajes <strong>en</strong> forma <strong>de</strong> correo electrónico a <strong>la</strong>s personas que no se<br />
<strong>en</strong>cu<strong>en</strong>tran <strong>en</strong> ese mom<strong>en</strong>to <strong>en</strong> línea, con esto se busca que <strong>de</strong> cualquier forma se<br />
pueda estar <strong>en</strong> contacto <strong>en</strong> cualquier mom<strong>en</strong>to.<br />
1.4 Re<strong>de</strong>s “Peer To Peer”<br />
También reci<strong>en</strong>tem<strong>en</strong>te, se ha profundizado <strong>en</strong> el estudio <strong>de</strong> los sistemas distribuidos<br />
d<strong>en</strong>ominados <strong>de</strong> igual-a-igual (P2P) cuya principal característica es que están<br />
compuestos por elem<strong>en</strong>tos <strong>de</strong> software con funcionalidad equival<strong>en</strong>te y que no<br />
requier<strong>en</strong> <strong>de</strong> ningún tipo control c<strong>en</strong>tralizado. Estas propieda<strong>de</strong>s dotan a los sistemas<br />
<strong>de</strong> igual-a-igual con características como <strong>la</strong> esca<strong>la</strong>bilidad [12], flexibilidad, tolerancia<br />
a fal<strong>la</strong>s [13], simplicidad <strong>en</strong> <strong>la</strong> administración, que pued<strong>en</strong> ser sumam<strong>en</strong>te útiles <strong>en</strong> el<br />
diseño <strong>de</strong> una infraestructura para el <strong>de</strong>sarrollo <strong>de</strong> sistemas <strong>de</strong> cómputo ubicuo.<br />
El resto <strong>de</strong>l articulo esta dividido <strong>de</strong> <strong>la</strong> sigui<strong>en</strong>te forma: <strong>de</strong>spués <strong>de</strong> haber dado <strong>la</strong><br />
introducción <strong>de</strong> los paradigmas y tecnologías <strong>en</strong> <strong>la</strong> sección 2 pres<strong>en</strong>tamos un estado<br />
<strong>de</strong>l arte <strong>de</strong> los sistemas parecidos al nuestro, <strong>de</strong>spués <strong>en</strong> <strong>la</strong> sección 3 se pasará a <strong>la</strong><br />
<strong>de</strong>scripción <strong>de</strong>l prototipo ECO y por último <strong>en</strong> <strong>la</strong> sección 4 terminaremos con algunas<br />
conclusiones.
2 Sistemas <strong>de</strong> trabajo co<strong>la</strong>borativo <strong>de</strong> edición<br />
En <strong>la</strong> actualidad exist<strong>en</strong> varios sistemas que contemp<strong>la</strong>n algunas <strong>de</strong> <strong>la</strong>s características<br />
<strong>de</strong> nuestro sistema ECO (Edición Co<strong>la</strong>borativa Oportunista) <strong>de</strong> los cuales a<br />
continuación se <strong>de</strong>scrib<strong>en</strong> sus características mas importantes.<br />
El sistema COARSY es un sistema <strong>de</strong> edición y revisión co<strong>la</strong>borativo [14]. Este<br />
sistema ti<strong>en</strong>e una arquitectura Cli<strong>en</strong>te-Servidor. El cli<strong>en</strong>te es <strong>la</strong> aplicación que el<br />
usuario usa para revisar y modificar un docum<strong>en</strong>to. Cada cli<strong>en</strong>te trabaja<br />
in<strong>de</strong>p<strong>en</strong>di<strong>en</strong>te <strong>de</strong> los <strong>de</strong>más y no hay forma <strong>de</strong> comunicarse con los <strong>de</strong>más cli<strong>en</strong>tes.<br />
Este sistema usa dos servidores: un servidor <strong>de</strong> base <strong>de</strong> datos y un servidor <strong>de</strong><br />
aplicación. El servidor <strong>de</strong> datos introduce y extrae información <strong>de</strong> <strong>la</strong> base <strong>de</strong> datos. El<br />
servidor <strong>de</strong> aplicación es usado para comunicarse con el servidor <strong>de</strong> <strong>la</strong> base <strong>de</strong> datos y<br />
así obt<strong>en</strong>er o proporcionar <strong>la</strong> información requerida y g<strong>en</strong>erada por el cli<strong>en</strong>te. El<br />
servidor <strong>de</strong> aplicación recibe m<strong>en</strong>sajes <strong>de</strong>l cli<strong>en</strong>te y <strong>de</strong>termina si <strong>la</strong> información es<br />
para algún docum<strong>en</strong>to o es información para <strong>la</strong> base <strong>de</strong> datos.<br />
Entonces una vez d<strong>en</strong>tro <strong>de</strong>l sistema cada participante pue<strong>de</strong> revisar o editar algún<br />
docum<strong>en</strong>to. El docum<strong>en</strong>to y <strong>la</strong>s contribuciones son <strong>de</strong>splegados <strong>en</strong> una interfaz, esta<br />
interfaz se divi<strong>de</strong> <strong>de</strong> tal forma que <strong>en</strong> una v<strong>en</strong>tana se <strong>de</strong>spliegue el docum<strong>en</strong>to original<br />
y <strong>en</strong> <strong>la</strong> otra <strong>la</strong>s contribuciones hechas, a su vez esta será visualizada por cada<br />
participante. Se esta p<strong>en</strong>sando <strong>en</strong> <strong>de</strong>sarrol<strong>la</strong>r un cli<strong>en</strong>te COARSY sobre dispositivos<br />
móviles.<br />
Otro proyecto es el editor PREP “trabajo <strong>en</strong> preparación” [15] ti<strong>en</strong>e tres<br />
consi<strong>de</strong>raciones importantes (1) Asist<strong>en</strong>cia <strong>en</strong> <strong>la</strong> interacción social <strong>en</strong>tre autores y los<br />
com<strong>en</strong>tarios, (2) Asist<strong>en</strong>cia a aspectos cognoscitivos <strong>de</strong> los autores y com<strong>en</strong>tarios<br />
externos y (3) Asist<strong>en</strong>cia a prácticam<strong>en</strong>te ambos tipo <strong>de</strong> interacción.<br />
La i<strong>de</strong>a <strong>de</strong>l proyecto es <strong>de</strong>sarrol<strong>la</strong>r un editor <strong>en</strong> un <strong>en</strong>torno multiusuario para asistir<br />
a una gran variedad <strong>de</strong> trabajo co<strong>la</strong>borativo, y <strong>en</strong> particu<strong>la</strong>r, <strong>en</strong>tre autores y <strong>la</strong><br />
comunicación <strong>de</strong> estos. No se <strong>en</strong>foca <strong>en</strong> una interacción <strong>en</strong>tre participantes <strong>en</strong> un<br />
mismo tiempo (es asíncrono). Mas bi<strong>en</strong> <strong>la</strong> preocupación esta <strong>en</strong> mejorar <strong>la</strong><br />
participación co<strong>la</strong>borativa sobre una red <strong>de</strong> trabajo.<br />
El editor PREP aborda <strong>la</strong>s i<strong>de</strong>as <strong>de</strong> trabajo co<strong>la</strong>borativo <strong>en</strong>fatizando <strong>la</strong><br />
comunicación, p<strong>la</strong>neación y anotaciones organizadas. El <strong>en</strong>foque c<strong>en</strong>tral <strong>de</strong>l editor<br />
PREP es proporcionar una útil repres<strong>en</strong>tación visual <strong>de</strong> <strong>la</strong> información. Este editor<br />
int<strong>en</strong>ta resolver <strong>la</strong>s necesida<strong>de</strong>s <strong>de</strong> una herrami<strong>en</strong>ta <strong>de</strong> dibujo durante el proceso <strong>de</strong><br />
p<strong>la</strong>neación cuando los conceptos están empezado hacer formu<strong>la</strong>dos.<br />
Para facilitar <strong>la</strong> inteligibilidad mutua, el editor PREP proporciona conv<strong>en</strong>ciones <strong>de</strong>l<br />
espacio <strong>de</strong> trabajo para <strong>la</strong>s comunicaciones.<br />
En un sistema CSCW los sistemas son usados por múltiples grupos tras<strong>la</strong>pados<br />
esto increm<strong>en</strong>ta <strong>la</strong> cantidad <strong>de</strong> información y <strong>la</strong>s modificaciones <strong>de</strong> <strong>la</strong> información<br />
son muy constantes. Por lo tanto se necesitan mecanismos para filtrar <strong>la</strong> información<br />
y pres<strong>en</strong>tar <strong>la</strong> información minimizada <strong>de</strong> los datos compartidos así como actualizada.<br />
Un sistema <strong>de</strong> m<strong>en</strong>sajería instantánea para el trabajo <strong>de</strong> revisión <strong>de</strong> docum<strong>en</strong>tos <strong>en</strong><br />
forma co<strong>la</strong>borativa es AIDA [16] este sistema esta p<strong>en</strong>sado <strong>en</strong> dispositivos móviles<br />
mas específicam<strong>en</strong>te para PDA’s (Asist<strong>en</strong>te Personal Digital) don<strong>de</strong> se conoce <strong>de</strong> <strong>la</strong><br />
pres<strong>en</strong>cia y el estatus <strong>de</strong> los usuarios.<br />
AIDA ti<strong>en</strong>e una interfaz que <strong>de</strong>spliega el nombre <strong>de</strong> <strong>la</strong> persona así como su estatus.<br />
En esta interfaz se pres<strong>en</strong>ta un cuadro <strong>de</strong> diálogo que es por don<strong>de</strong> se pued<strong>en</strong> teclear
los m<strong>en</strong>sajes que serán <strong>en</strong>viados a <strong>la</strong>s <strong>de</strong>más personas. AIDA implem<strong>en</strong>ta el API<br />
DOC2U [17] <strong>en</strong> don<strong>de</strong> se exti<strong>en</strong><strong>de</strong> el concepto <strong>de</strong> asimilitud <strong>de</strong> pres<strong>en</strong>cia asociada al<br />
usuario, esta también es una aplicación <strong>de</strong> m<strong>en</strong>sajería instantánea don<strong>de</strong> se compart<strong>en</strong><br />
recursos, ya que esta p<strong>en</strong>sada para asistir <strong>en</strong> <strong>la</strong> coordinación <strong>de</strong> <strong>la</strong>s activida<strong>de</strong>s <strong>de</strong><br />
edición co<strong>la</strong>borativa introduci<strong>en</strong>do el concepto <strong>de</strong> pres<strong>en</strong>cia <strong>de</strong> docum<strong>en</strong>tos. AIDA<br />
usa un servidor web como un repositorio <strong>de</strong> docum<strong>en</strong>tos y el servidor <strong>de</strong> m<strong>en</strong>sajería<br />
instantánea Jabber para conocer <strong>la</strong> pres<strong>en</strong>cia <strong>de</strong> los participantes así como <strong>la</strong> pres<strong>en</strong>cia<br />
<strong>de</strong> docum<strong>en</strong>tos compartidos <strong>en</strong> el repositorio web.<br />
De ahí que AIDA gracias al <strong>en</strong>foque <strong>de</strong> m<strong>en</strong>sajería instantánea, ofrece nuevas<br />
oportunida<strong>de</strong>s <strong>de</strong> co<strong>la</strong>boración por medio <strong>de</strong> <strong>en</strong>cu<strong>en</strong>tros casuales o improvisados <strong>en</strong><br />
una comunidad <strong>de</strong> autores y revisores <strong>de</strong> docum<strong>en</strong>tos.<br />
3 Arquitectura <strong>de</strong>l prototipo ECO<br />
Como ya se m<strong>en</strong>ciono anteriorm<strong>en</strong>te este prototipo esta p<strong>en</strong>sado para el trabajo <strong>de</strong><br />
revisión <strong>de</strong> un docum<strong>en</strong>to <strong>en</strong>tre los revisores y el autor <strong>de</strong>l docum<strong>en</strong>to, los cuales<br />
forman un grupo <strong>de</strong> trabajo. Como estas personas necesitan estar <strong>en</strong> constante<br />
comunicación se implem<strong>en</strong>ta un cli<strong>en</strong>te Jabber, el cual es un protocolo que nos<br />
proporciona el conocimi<strong>en</strong>to <strong>de</strong> pres<strong>en</strong>cia por parte <strong>de</strong> los co<strong>la</strong>boradores, <strong>de</strong> ahí que<br />
podamos saber cuando algui<strong>en</strong> esta <strong>en</strong> línea o cuando no, cuando algui<strong>en</strong> esta <strong>en</strong> línea<br />
(disponible) esto se vuelve una oportunidad para <strong>en</strong>tab<strong>la</strong>r una comunicación o<br />
co<strong>la</strong>boración con ese integrante.<br />
Gracias al <strong>en</strong>foque Peer to Peer po<strong>de</strong>mos formar una infraestructura <strong>de</strong> red virtual<br />
don<strong>de</strong> los elem<strong>en</strong>tos principales van hacer los peer que repres<strong>en</strong>tan al autor y a los<br />
revisores, los peers que repres<strong>en</strong>tan el docum<strong>en</strong>to y el repositorio, los peers Re<strong>la</strong>y<br />
que servirán para <strong>en</strong>tab<strong>la</strong>r <strong>la</strong> comunicación con lo <strong>de</strong>más peers y por ultimo los peers<br />
R<strong>en</strong><strong>de</strong>zvous para <strong>en</strong>contrar los docum<strong>en</strong>tos y los participantes.<br />
La arquitectura que se pres<strong>en</strong>ta <strong>en</strong> <strong>la</strong> figura 1.<br />
Fig. 1. Se pres<strong>en</strong>ta <strong>la</strong> arquitectura <strong>de</strong>l sistema ECO <strong>en</strong> un diagrama don<strong>de</strong> se <strong>en</strong>umeran los<br />
estados
• En este diagrama <strong>en</strong> el primer paso el Autor publica el anuncio a un<br />
R<strong>en</strong><strong>de</strong>zvous para buscar qui<strong>en</strong> implem<strong>en</strong>ta un servicio <strong>de</strong> almac<strong>en</strong>ami<strong>en</strong>to<br />
<strong>de</strong> docum<strong>en</strong>tos.<br />
• En el segundo paso el Peer R<strong>en</strong><strong>de</strong>zvous se <strong>en</strong>carga <strong>de</strong> buscar el peer qui<strong>en</strong><br />
implem<strong>en</strong>ta el repositorio para pasarle <strong>la</strong> solicitud <strong>de</strong>l Peer Usr Aut.<br />
• En el Tercer paso una vez que el Peer-Rep conoce el anuncio <strong>de</strong>l Usr Aut le<br />
regresa su anuncio indicando que ya vio <strong>la</strong> solicitud y se establece una<br />
re<strong>la</strong>ción <strong>en</strong>tre Repositorio ↔ Usr Aut.<br />
• En el Cuarto paso <strong>en</strong>tonces el Usr-Aut le pasa el docum<strong>en</strong>to al repositorio<br />
para que este lo almac<strong>en</strong>e y lo administre. Al pasar docum<strong>en</strong>to este conti<strong>en</strong>e<br />
información para <strong>la</strong> administración <strong>de</strong>l mismo como permisos y<br />
disponibilidad.<br />
• Como se pue<strong>de</strong> ver <strong>en</strong> <strong>la</strong> Figura 1. El Peer que implem<strong>en</strong>ta el repositorio<br />
conti<strong>en</strong>e una tab<strong>la</strong> <strong>de</strong> administración con tres columnas, <strong>en</strong> <strong>la</strong> primer<br />
columna conti<strong>en</strong>e el propietario <strong>de</strong>l docum<strong>en</strong>to, <strong>en</strong> <strong>la</strong> segunda los elem<strong>en</strong>tos<br />
re<strong>la</strong>cionados con el docum<strong>en</strong>to y <strong>en</strong> <strong>la</strong> tercera los permisos que se ti<strong>en</strong>e hacia<br />
el docum<strong>en</strong>to.<br />
• En un quinto paso los peers buscan al docum<strong>en</strong>to preguntando a su Peer<br />
R<strong>en</strong><strong>de</strong>zvous, este los contacta con el Peer que implem<strong>en</strong>ta el repositorio y se<br />
establece una interacción <strong>en</strong>tre revisores y el docum<strong>en</strong>to.<br />
ECO pres<strong>en</strong>ta una interfaz <strong>en</strong> forma <strong>de</strong> m<strong>en</strong>sajería instantánea que indica el estatus <strong>de</strong><br />
los elem<strong>en</strong>tos que están involucrados <strong>en</strong> <strong>la</strong> edición <strong>de</strong>l docum<strong>en</strong>to. Así como el<br />
estatus <strong>de</strong> otros contactos proporcionado por <strong>la</strong>s características <strong>de</strong> Jabber sin que<br />
t<strong>en</strong>gan que ver con el docum<strong>en</strong>to. La figura 2 muestra <strong>la</strong> interfaz <strong>en</strong> una estación <strong>de</strong><br />
trabajo y <strong>en</strong> un dispositivo móvil <strong>en</strong> este caso una PDA, El llevar el sistema hasta una<br />
PDA hace que los participantes puedan interactuar con el sistema<br />
in<strong>de</strong>p<strong>en</strong>di<strong>en</strong>tem<strong>en</strong>te <strong>de</strong>l lugar físico haci<strong>en</strong>do mas flexible <strong>la</strong> co<strong>la</strong>boración.<br />
Fig. 2. Interfaz <strong>de</strong> usuario que muestra el estatus <strong>de</strong> los participantes con re<strong>la</strong>ción al docum<strong>en</strong>to
La parte inferior muestra el estatus <strong>de</strong> otros contactos, pero que no ti<strong>en</strong><strong>en</strong> nada que<br />
ver con el docum<strong>en</strong>to, solo sirve para ilustrar que ECO pue<strong>de</strong> a parte <strong>de</strong> pres<strong>en</strong>tar una<br />
interfaz <strong>de</strong> co<strong>la</strong>boración pue<strong>de</strong> hacer el papel <strong>de</strong> cualquier m<strong>en</strong>sajero instantáneo<br />
comercial. Para el proceso <strong>de</strong> revisión y edición se ti<strong>en</strong><strong>en</strong> que establecer permisos y<br />
priorida<strong>de</strong>s para los usuarios como se m<strong>en</strong>ciono <strong>en</strong> <strong>la</strong> arquitectura, <strong>de</strong> tal forma que<br />
pueda haber un control <strong>de</strong>l docum<strong>en</strong>to, el autor <strong>de</strong>l docum<strong>en</strong>to es el responsable <strong>de</strong><br />
establecer estos permisos, él <strong>de</strong>ci<strong>de</strong> a qui<strong>en</strong>es les da mas prioridad para el caso <strong>en</strong> que<br />
dos revisores quisieran hacer modificaciones al mismo tiempo. El sistema ECO esta<br />
p<strong>en</strong>sado para que todos puedan leer el docum<strong>en</strong>to una vez que esta disponible, pero<br />
para el proceso <strong>de</strong> escritura hay qui<strong>en</strong> va a t<strong>en</strong>er mas prioridad. La figura 3 muestra <strong>la</strong><br />
pantal<strong>la</strong> <strong>de</strong>l autor <strong>en</strong> don<strong>de</strong> él pue<strong>de</strong> establecer <strong>la</strong>s priorida<strong>de</strong>s <strong>de</strong> los participantes y <strong>la</strong><br />
pantal<strong>la</strong> <strong>de</strong> un revisor con un permiso asignado.<br />
Fig. 3. La interfaz <strong>de</strong> <strong>la</strong> izquierda es <strong>de</strong>l autor que muestra <strong>la</strong> forma <strong>de</strong> po<strong>de</strong>r asignar permisos<br />
sobre el docum<strong>en</strong>to y <strong>la</strong> interfaz <strong>de</strong> <strong>la</strong> <strong>de</strong>recha muestra que el revisor Ro<strong>la</strong>ndo ti<strong>en</strong>e asignado el<br />
proceso <strong>de</strong> revisor absoluto lo cual indica que él es el único que pue<strong>de</strong> hacer modificaciones<br />
sobre el docum<strong>en</strong>to y nadie mas ti<strong>en</strong>e ese permiso<br />
Fig. 4. Interfaz que pres<strong>en</strong>ta <strong>la</strong> solicitud <strong>de</strong> co<strong>la</strong>boración <strong>de</strong> un usuario que acaba <strong>de</strong> conectarse
Entonces los revisores que inici<strong>en</strong> una sección podrán ver qui<strong>en</strong>es se <strong>en</strong>cu<strong>en</strong>tran <strong>en</strong><br />
esos mom<strong>en</strong>tos editando el docum<strong>en</strong>to y pued<strong>en</strong> <strong>en</strong>contrar una oportunidad para<br />
editar co<strong>la</strong>borativam<strong>en</strong>te el docum<strong>en</strong>to (ver figura 4), por lo tanto pue<strong>de</strong> solicitar<br />
participar <strong>en</strong> el proceso <strong>de</strong> revisión co<strong>la</strong>borativa. O gracias a <strong>la</strong> interfaz que también<br />
pres<strong>en</strong>ta una v<strong>en</strong>tana <strong>de</strong> conversación escrita el autor pue<strong>de</strong> unir a los revisores <strong>en</strong><br />
una revisión múltiple.<br />
Con respecto al docum<strong>en</strong>to, éste se <strong>en</strong>cu<strong>en</strong>tra almac<strong>en</strong>ado <strong>en</strong> el repositorio que es<br />
don<strong>de</strong> el autor lo almac<strong>en</strong>ó para así ponerlo a disposición <strong>de</strong> los revisores, cabe<br />
m<strong>en</strong>cionar que pued<strong>en</strong> haber uno o varios repositorios, <strong>en</strong> si a los revisores no les<br />
interesa don<strong>de</strong> se <strong>en</strong>cu<strong>en</strong>tra almac<strong>en</strong>ado a ellos les vasta con saber que existe y que<br />
esta disponible para ellos. Entonces el autor es el <strong>en</strong>cargado <strong>de</strong> <strong>de</strong>finir qui<strong>en</strong>es serán<br />
<strong>la</strong>s personas que t<strong>en</strong>drán acceso a ese docum<strong>en</strong>to.<br />
4 Conclusiones<br />
Como se pue<strong>de</strong> ver <strong>en</strong> este trabajo se introduc<strong>en</strong> varios conceptos y tecnologías que<br />
fundam<strong>en</strong>tan su participación. Entonces se forma ECO un sistema el cual facilita el<br />
trabajo <strong>de</strong> revisión <strong>de</strong> docum<strong>en</strong>tos <strong>en</strong> un grupo <strong>de</strong> trabajo <strong>de</strong> revisores y autores, <strong>la</strong><br />
principal aportación <strong>en</strong> este sistema es <strong>la</strong> introducción <strong>de</strong> los protocolos JXTA para<br />
formar una Red Peer to Peer para trabajo co<strong>la</strong>borativo. Por que <strong>en</strong> el mom<strong>en</strong>to <strong>en</strong> que<br />
se forma una red virtual se le asignan a cada uno <strong>de</strong> los elem<strong>en</strong>tos <strong>de</strong> <strong>la</strong> red su rol y<br />
se hace una distribución <strong>de</strong>l trabajo sin caer <strong>en</strong> <strong>la</strong> <strong>computación</strong> c<strong>en</strong>tralizada como los<br />
<strong>de</strong>más sistemas que ti<strong>en</strong><strong>en</strong> los mismos objetivos. De ahí que formemos nuestro<br />
ambi<strong>en</strong>te ubicuo por que nunca se sabe exactam<strong>en</strong>te don<strong>de</strong> se <strong>en</strong>cu<strong>en</strong>tra el docum<strong>en</strong>to<br />
y no es <strong>de</strong> gran importancia saberlo, lo importante es conocer que existe un<br />
docum<strong>en</strong>to y que po<strong>de</strong>mos <strong>en</strong>trar al docum<strong>en</strong>to <strong>en</strong> cualquier lugar <strong>en</strong> que nos<br />
<strong>en</strong>contremos y <strong>en</strong> cualquier tiempo, <strong>de</strong>s<strong>de</strong> una estación <strong>de</strong> trabajo estática o <strong>de</strong>s<strong>de</strong> un<br />
dispositivo móvil.<br />
Refer<strong>en</strong>cias<br />
[1] Baecker, R.M.(1993). Reading in Groupware and Computer Supported Cooperative<br />
Work. Morgan Kaufmann Publisher, San Mateo. CA, pp 873.<br />
[2] Grudin, J. (1994). “Computer-Supported Cooperative Work: History and Focus”. IEEE<br />
Computer, 27(5), pp 19-26.<br />
[3] van Leeuw<strong>en</strong>, J. (ed.): Computer Sci<strong>en</strong>ce Today. Rec<strong>en</strong>t Tr<strong>en</strong>ds and Developm<strong>en</strong>ts.<br />
Lecture Notes in Computer Sci<strong>en</strong>ce, Vol. 1000. Springer-Ver<strong>la</strong>g, Berlin Hei<strong>de</strong>lberg New<br />
York (1995)<br />
[4] Mark Weiser. "The world is not a <strong>de</strong>sktop". Interactions; January 1994; pp. 7-8.<br />
[5] Grinter, R. & Pal<strong>en</strong>, L. (2002). Instant Messaging in Te<strong>en</strong> Life, Proc. CSCW `02,New<br />
Orleans, LA.<br />
[6] Nardi, B., Whittaker, S. and E. Bradner. "Interaction and Outeraction: Instant Messaging<br />
in Action." Proceedings of CSCW 2000. (2000), ACM Press, 79-88.<br />
[7] AOL Mess<strong>en</strong>ger http://www.aim.com/<br />
[8] Yahoo mess<strong>en</strong>ger http://mess<strong>en</strong>ger.yahoo.com/
[9] MSN mess<strong>en</strong>ger http://mess<strong>en</strong>ger.msn.com/<br />
[10] ICQ mess<strong>en</strong>ger http://web.icq.com/<br />
[11] Jabber http://www.jabber.org/<br />
[12] Ba<strong>la</strong> Ba<strong>la</strong>krishnan, H. et al. Looking Up Data in P2P Systems. Communications of the<br />
ACM, Vol. 46, No. 2, February 2003.<br />
[13] Kubiato Kubiatowics, J. Extracting Guarantees from Chaos. Communications of the<br />
ACM, Vol. 46, No. 2, February 2003.<br />
[14] Fave<strong>la</strong>, J., & Ruiz, D. (2001). Col<strong>la</strong>borative Authoring and Reviewing over the Internet.<br />
WebNet Journal: Internet Technologies, Applications & Issues 3(3), 26-34.<br />
[15] Neuwirth, C., Kaufer, D., Chandhok, R. And Morris, J. (1990). Issues in the <strong>de</strong>sign of<br />
computer support for co-authoring and comm<strong>en</strong>ting. Proceedings of the third confer<strong>en</strong>ce<br />
on CSCW'90. Baltimore, MD : ACM Press, pp. 183-195.<br />
[16] Fave<strong>la</strong>, J., C. Navarro, M. Rodriguez, “Ext<strong>en</strong>ding Instant Messaging to Support<br />
Spontaneous Interactions in Ad-hoc Networks,” in Proceedings of ACM 2002 Confer<strong>en</strong>ce<br />
on Computer Supported Cooperative Work (CSCW ’02), New Orleans, Louisiana, 2002.<br />
[17] Moran, L., Fave<strong>la</strong>, J., Martinez, A., Decouchant, D.: Docum<strong>en</strong>t Pres<strong>en</strong>ce Notification<br />
Services for Col<strong>la</strong>borative Writing. Proc. of CRIWG'01 (2001) 125-133
Descubrimi<strong>en</strong>to dinámico <strong>de</strong> servicios Web<br />
<strong>en</strong> nodos UDDI mediante USML<br />
Giner Alor Hernán<strong>de</strong>z , César Sandoval Hernán<strong>de</strong>z, José Oscar Olmedo Aguirre<br />
C<strong>en</strong>tro <strong>de</strong> Investigación y <strong>de</strong> Estudios Avanzados <strong>de</strong>l IPN.<br />
Departam<strong>en</strong>to <strong>de</strong> Ing<strong>en</strong>iería Eléctrica. Sección <strong>de</strong> Computación,<br />
Av. Instituto Politécnico Nacional 2508, Col San Pedro Zacat<strong>en</strong>co. 07360,<br />
<strong>México</strong>, D. F.<br />
{gineralor, csandoval}@computacion.cs.cinvestav.mx,<br />
oolmedo@<strong>de</strong>lta.cs.cinvestav.mx<br />
Resum<strong>en</strong>. Para <strong>la</strong> publicación <strong>de</strong> servicios Web, organizaciones, consorcios y<br />
gran<strong>de</strong>s empresas han <strong>de</strong>sarrol<strong>la</strong>do el Universal Description, Discovery and<br />
Integration (UDDI), un servicio <strong>de</strong> búsqueda y recuperación <strong>de</strong> información<br />
sobre servicios Web. Desafortunadam<strong>en</strong>te, <strong>la</strong>s consultas actuales <strong>en</strong> nodos<br />
UDDI se <strong>en</strong>focan <strong>en</strong> un solo criterio <strong>de</strong> búsqueda como el nombre <strong>de</strong> negocio,<br />
situación comercial, categorías comerciales o tipos <strong>de</strong> servicio. Para resolver<br />
esta problemática, <strong>en</strong> este trabajo se <strong>de</strong>sarrolló un portal <strong>de</strong> servicios Web que<br />
permite el <strong>de</strong>scubrimi<strong>en</strong>to dinámico <strong>de</strong> servicios Web mediante <strong>la</strong> utilización <strong>de</strong><br />
UDDI Search Markup Language (USML), un l<strong>en</strong>guaje basado <strong>en</strong> XML<br />
<strong>de</strong>sarrol<strong>la</strong>do por IBM, que permite realizar consultas <strong>en</strong> diversos nodos UDDI<br />
utilizando múltiples criterios <strong>de</strong> búsqueda. A<strong>de</strong>más, se <strong>de</strong>scrib<strong>en</strong> <strong>la</strong>s<br />
características principales <strong>de</strong>l l<strong>en</strong>guaje USML para <strong>la</strong> creación <strong>de</strong> consultas <strong>en</strong><br />
diversos nodos UDDI. Finalm<strong>en</strong>te, se propone un caso <strong>de</strong> estudio <strong>en</strong> comercio<br />
electrónico don<strong>de</strong> se <strong>de</strong>scribe <strong>la</strong> funcionalidad <strong>de</strong>l portal <strong>de</strong>sarrol<strong>la</strong>do <strong>en</strong> <strong>la</strong><br />
búsqueda y localización <strong>de</strong> servicio Web.<br />
1 Introducción<br />
El <strong>de</strong>scubrimi<strong>en</strong>to dinámico <strong>de</strong> los servicios Web se basa principalm<strong>en</strong>te <strong>en</strong> <strong>en</strong>contrar<br />
los servicios que ofrec<strong>en</strong> <strong>la</strong>s organizaciones u empresas para satisfacer ciertas<br />
necesida<strong>de</strong>s <strong>en</strong> base a un criterio <strong>de</strong> búsqueda dado por el usuario. Para esto, es<br />
necesario utilizar un registro distribuido, conocido como Universal Description,<br />
Discovery and Integration (UDDI) [1], <strong>en</strong> don<strong>de</strong> se <strong>en</strong>cu<strong>en</strong>tran publicadas <strong>la</strong>s<br />
<strong>de</strong>scripciones <strong>de</strong> los servicios Web. En un nodo UDDI solo se pued<strong>en</strong> localizar<br />
negocios cuyas id<strong>en</strong>tida<strong>de</strong>s son muy conocidas, con el fin <strong>de</strong> que los usuarios puedan<br />
averiguar qué servicios Web se están ofreci<strong>en</strong>do y cómo integrarse con ellos.<br />
A<strong>de</strong>más, <strong>la</strong>s consultas actuales <strong>en</strong> nodos UDDI se <strong>en</strong>focan <strong>en</strong> un solo criterio <strong>de</strong><br />
búsqueda como el nombre <strong>de</strong> negocio, situación comercial, categorías comerciales,<br />
tipo <strong>de</strong> servicio e id<strong>en</strong>tificador comercial. Mas aun, estos tipos <strong>de</strong> consultas son muy<br />
imprácticas cuando <strong>la</strong> pob<strong>la</strong>ción <strong>de</strong> servicios Web publicados <strong>en</strong> un nodo UDDI es<br />
muy gran<strong>de</strong> <strong>de</strong>bido a que el resultado <strong>de</strong> una consulta podría <strong>de</strong>volver miles <strong>de</strong><br />
negocios que satisfac<strong>en</strong> un criterio particu<strong>la</strong>r, por lo cual lo hace inmanejable.<br />
Entonces, aquí surg<strong>en</strong> dos gran<strong>de</strong>s problemáticas <strong>de</strong> localización <strong>de</strong> servicios Web <strong>en</strong>
nodos UDDI: 1) búsqueda eficaz <strong>de</strong> los servicios Web apropiados, 2) búsqueda exacta<br />
<strong>de</strong> los servicios Web.<br />
Para resolver estas dos problemáticas, IBM <strong>de</strong>sarrolló UDDI Search Markup<br />
Language (USML), un l<strong>en</strong>guaje basado <strong>en</strong> XML que permite realizar consultas <strong>en</strong><br />
nodos UDDI utilizando múltiples criterios <strong>de</strong> búsqueda. Sin embargo, <strong>la</strong>s<br />
características provistas por el l<strong>en</strong>guaje USML todavía no se <strong>en</strong>cu<strong>en</strong>tran<br />
implem<strong>en</strong>tadas <strong>en</strong> ningún nodo UDDI. Como una solución a lo anterior, hemos<br />
<strong>de</strong>sarrol<strong>la</strong>do un portal <strong>de</strong> servicios Web que permite el <strong>de</strong>scubrimi<strong>en</strong>to dinámico <strong>de</strong><br />
servicios Web publicados <strong>en</strong> nodos UDDI mediante el l<strong>en</strong>guaje USML. Así también,<br />
proponemos un caso <strong>de</strong> estudio situado <strong>en</strong> el contexto <strong>de</strong>l comercio electrónico B2B,<br />
don<strong>de</strong> se ejemplifica <strong>la</strong> funcionalidad <strong>de</strong>l portal <strong>de</strong> servicios Web <strong>de</strong>sarrol<strong>la</strong>do.<br />
A<strong>de</strong>más, realizamos un análisis comparativo <strong>de</strong>l portal con los diversos nodos UDDI,<br />
con el fin <strong>de</strong> mostrar <strong>la</strong>s v<strong>en</strong>tajas y <strong>de</strong>sv<strong>en</strong>tajas <strong>de</strong>l uso <strong>de</strong> USML. El caso <strong>de</strong> estudio<br />
y <strong>la</strong> funcionalidad <strong>de</strong>l portal <strong>de</strong> servicios Web <strong>de</strong>sarrol<strong>la</strong>do se <strong>de</strong>scribe <strong>en</strong> <strong>la</strong> sección<br />
4. El análisis comparativo se <strong>de</strong>scribe <strong>en</strong> <strong>la</strong> sección 5.<br />
2 UDDI Search Markup Language<br />
UDDI Search Markup Language (USML) es un l<strong>en</strong>guaje basado <strong>en</strong> XML que<br />
permite realizar <strong>la</strong> búsqueda y localización <strong>de</strong> servicios Web con múltiples criterios<br />
<strong>en</strong> diversos nodos UDDI. Según <strong>la</strong> especificación <strong>de</strong> UDDI [1], hay tres tipos <strong>de</strong><br />
datos principales que pued<strong>en</strong> consultarse <strong>en</strong> un nodo UDDI: Negocio, Servicio, y<br />
Tipo <strong>de</strong> Servicio (tMo<strong>de</strong>l, Technology Mo<strong>de</strong>l). Un tMo<strong>de</strong>l <strong>de</strong>fine los tipos <strong>de</strong><br />
servicios que utiliza el servicio Web, al tiempo que incluye <strong>la</strong>s <strong>de</strong>finiciones <strong>de</strong><br />
operación, <strong>la</strong> estructura y protocolos <strong>de</strong> los m<strong>en</strong>sajes, y protocolos <strong>de</strong> seguridad <strong>de</strong><br />
dichos servicios. Parti<strong>en</strong>do <strong>de</strong> un tMo<strong>de</strong>l concreto, se pue<strong>de</strong> saber qué operaciones <strong>de</strong><br />
servicio Web realiza <strong>la</strong> <strong>en</strong>tidad que implem<strong>en</strong>ta dicho tMo<strong>de</strong>l y cómo obt<strong>en</strong>er acceso<br />
a el<strong>la</strong>s. A<strong>de</strong>más, <strong>en</strong> un tMo<strong>de</strong>l se especifica información como: nombre <strong>de</strong>l tMo<strong>de</strong>l,<br />
nombre <strong>de</strong> <strong>la</strong> organización que publicó el tMo<strong>de</strong>l, una lista <strong>de</strong> categorías que<br />
<strong>de</strong>scrib<strong>en</strong> el tipo <strong>de</strong> servicio. En USML, estos tres tipos <strong>de</strong> datos pued<strong>en</strong> consultarse<br />
<strong>de</strong> forma conjunta o in<strong>de</strong>p<strong>en</strong>di<strong>en</strong>te. El esquema g<strong>en</strong>eral <strong>de</strong> un docum<strong>en</strong>to USML se<br />
muestra <strong>en</strong> <strong>la</strong> figura 1.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Fig. 1. Esquema g<strong>en</strong>eral <strong>de</strong> un docum<strong>en</strong>to <strong>en</strong> USML
Don<strong>de</strong>:<br />
• Query: especifica <strong>la</strong>s condiciones <strong>de</strong> búsqueda. Combina <strong>la</strong> búsqueda <strong>de</strong> <strong>la</strong><br />
pa<strong>la</strong>bra c<strong>la</strong>ve, <strong>la</strong> búsqueda basada <strong>en</strong> los id<strong>en</strong>tificadores, y <strong>la</strong> búsqueda<br />
basada <strong>en</strong> <strong>la</strong>s categorías.<br />
• Source: es el nodo UDDI don<strong>de</strong> se realiza <strong>la</strong> búsqueda. Pue<strong>de</strong> ser un nodo<br />
público o privado.<br />
• SourceURL: es el URL <strong>de</strong>l nodo UDDI don<strong>de</strong> se realiza <strong>la</strong> búsqueda.<br />
• BusinessName: es el nombre <strong>de</strong>l negocio a buscar.<br />
• Id<strong>en</strong>tifier: es el nombre <strong>de</strong>l id<strong>en</strong>tificador y su valor asociado. Se aceptan dos<br />
tipos <strong>de</strong> id<strong>en</strong>tificadores: Data Universal Numbering System (D-U-N-S) [2] y<br />
Thomas Register [3].<br />
• Category: es el nombre <strong>de</strong> <strong>la</strong> categoría y su valor asociado. Actualm<strong>en</strong>te, se<br />
aceptan cinco tipos <strong>de</strong> categorías: North American Industry C<strong>la</strong>ssification<br />
System (NAICS) [4], United Nations Standard Products and Services Co<strong>de</strong><br />
(UNSPSC) [5], GEO [6], UDDITYPE, y Standard Industrial C<strong>la</strong>ssification<br />
(SIC) [7].<br />
• ServiceName: es el nombre <strong>de</strong>l servicio. Se usa cuando <strong>la</strong> búsqueda es por el<br />
nombre <strong>de</strong> servicio.<br />
• ServiceTypeName: es el nombre <strong>de</strong>l tipo <strong>de</strong> servicio (tMo<strong>de</strong>l). Se usa cuando<br />
<strong>la</strong> búsqueda es por el tipo <strong>de</strong> servicio.<br />
• DiscoveryURL: es el URL para el <strong>de</strong>scubrimi<strong>en</strong>to.<br />
• FindBy: especifica el tipo <strong>de</strong> datos a buscar (Negocio, Servicio o Tipo <strong>de</strong><br />
Servicio).<br />
• AggOperator: especifica el tipo <strong>de</strong> operador lógico a utilizar <strong>en</strong> <strong>la</strong> búsqueda.<br />
Se soportan dos tipos <strong>de</strong> operadores lógicos: AND y OR. Si se utiliza el<br />
operador OR, <strong>la</strong> información especificada <strong>en</strong> <strong>la</strong> etiqueta FindBy <strong>de</strong> cada<br />
búsqueda es <strong>de</strong>vuelta. En caso <strong>de</strong> utilizar el operador AND, solo información<br />
re<strong>la</strong>cionada al tipo <strong>de</strong> datos especificado <strong>en</strong> <strong>la</strong> etiqueta RequestTypeName<br />
será <strong>de</strong>vuelta. Más <strong>de</strong> 3 búsquedas (una búsqueda para cada uno <strong>de</strong> los tipos<br />
<strong>de</strong> datos) no se permite.<br />
• RequestTypeName: especifica el tipo <strong>de</strong> datos que se <strong>de</strong>sean como resultado<br />
<strong>en</strong> <strong>la</strong> consulta (Negocio, Servicio o Tipo <strong>de</strong> Servicio).<br />
Un ejemplo <strong>de</strong> una solicitud <strong>de</strong> consulta <strong>en</strong> un nodo UDDI <strong>en</strong> USML se muestra <strong>en</strong><br />
<strong>la</strong> figura 2.<br />
En el docum<strong>en</strong>to USML <strong>de</strong> <strong>la</strong> figura 2, se realiza una solicitud a una consulta <strong>en</strong><br />
don<strong>de</strong> se establec<strong>en</strong> tres criterios <strong>de</strong> búsqueda utilizando el operador AND. En esta<br />
solicitud, los tres criterios <strong>de</strong> búsqueda correspond<strong>en</strong> a los tres tipos <strong>de</strong> datos<br />
principales <strong>en</strong> un nodo UDDI:<br />
1. Negocios (situado <strong>en</strong> <strong>la</strong> etiqueta BusinessName cuyo cont<strong>en</strong>ido es “IBM”);<br />
2. Tipos <strong>de</strong> servicios (situado <strong>en</strong> <strong>la</strong> etiqueta ServiceTypeName y cuyo cont<strong>en</strong>ido<br />
es “UDDI”);<br />
3. Servicios comerciales (situado <strong>en</strong> <strong>la</strong> etiqueta ServiceName y cuyo cont<strong>en</strong>ido<br />
es “UDDI”).
<br />
<br />
<br />
Public UDDI<br />
<br />
http://www-3.ibm.com/services/uddi/v2beta/inquiryapi<br />
<br />
IBM<br />
Business<br />
<br />
<br />
Public UDDI<br />
<br />
http://www-3.ibm.com/services/uddi/v2beta/inquiryapi<br />
<br />
UDDI<br />
ServiceType<br />
<br />
<br />
Public UDDI<br />
<br />
http://www-3.ibm.com/services/uddi/v2beta/inquiryapi<br />
<br />
IBM<br />
UDDI<br />
Service<br />
<br />
AND<br />
Business<br />
<br />
Fig. 2 Estructura <strong>de</strong> una solicitud <strong>de</strong> consulta <strong>en</strong> USML<br />
Así, utilizando USML para realizar consultas a diversos nodos UDDI, po<strong>de</strong>mos<br />
establecer múltiples criterios <strong>de</strong> búsqueda como son: negocios, servicios y tipos <strong>de</strong><br />
servicio. En este caso, <strong>en</strong> el docum<strong>en</strong>to <strong>de</strong> <strong>la</strong> Fig. 2, se especifica el nodo UDDI y el<br />
URL asociado (situados <strong>en</strong> <strong>la</strong>s etiquetas Source y SourceURL, respectivam<strong>en</strong>te), <strong>en</strong><br />
don<strong>de</strong> se <strong>de</strong>sea realizar <strong>la</strong> consulta. En caso <strong>de</strong> que el URL no se especifique, un URL<br />
pre<strong>de</strong>finido, asociado con el nombre <strong>de</strong>l nodo UDDI se toma <strong>de</strong>l archivo <strong>de</strong><br />
configuración <strong>en</strong> don<strong>de</strong> se ti<strong>en</strong><strong>en</strong> los nombres <strong>de</strong> los nodos UDDI con sus respectivos<br />
URLs.Este archivo <strong>de</strong> configuración permite almac<strong>en</strong>ar un gran número <strong>de</strong> URLs<br />
asociados con diversos nodos UDDI. A este archivo, pued<strong>en</strong> agregarse nuevos nodos<br />
sin <strong>la</strong> necesidad <strong>de</strong> modificar algún código o docum<strong>en</strong>to USML. Un ejemplo <strong>de</strong>l<br />
archivo <strong>de</strong> configuración se muestra <strong>en</strong> <strong>la</strong> figura 3.<br />
En <strong>la</strong> sigui<strong>en</strong>te sección se <strong>de</strong>scribe <strong>la</strong> manera <strong>en</strong> <strong>la</strong> cual se realiza <strong>la</strong> búsqueda y<br />
localización <strong>de</strong> los servicios Web utilizando los operadores lógicos soportados por<br />
USML.
<br />
<br />
<br />
Microsoft UDDI<br />
http://uddi.microsoft.com/inquire <br />
<br />
<br />
Private UDDI<br />
http://127.0.0.1/servlet/uddi <br />
<br />
<br />
IBM Public UDDI<br />
<br />
http://www-w3.ibm.com/services/uddi/testregistry/inquiryapi<br />
<br />
<br />
<br />
Fig. 3 Ejemplo <strong>de</strong>l archivo <strong>de</strong> configuración<br />
3 Búsqueda y localización <strong>de</strong> servicios Web mediante operadores<br />
lógicos<br />
Con <strong>la</strong> ayuda <strong>de</strong> USML se pued<strong>en</strong> combinar difer<strong>en</strong>tes criterios <strong>de</strong> búsqueda <strong>en</strong> una<br />
consulta y así conseguir eficacia y exactitud al realizar una so<strong>la</strong> búsqueda. Esto se<br />
<strong>de</strong>be a que <strong>en</strong> USML se pued<strong>en</strong> utilizar dos tipos <strong>de</strong> operadores lógicos <strong>en</strong> <strong>la</strong>s<br />
consultas: AND y OR. Estos operadores están situados <strong>en</strong> <strong>la</strong> etiqueta AggOperator.<br />
En el caso <strong>de</strong>l operador OR, consi<strong>de</strong>re que se quiere realizar una consulta a un<br />
nodo UDDI buscando un negocio cuyo nombre cont<strong>en</strong>ga <strong>la</strong> cad<strong>en</strong>a “IBM” o un<br />
negocio cuyo nombre <strong>de</strong> servicio cont<strong>en</strong>ga <strong>la</strong> cad<strong>en</strong>a “Web”. En esta solicitud,<br />
po<strong>de</strong>mos especificar 2 consultas separadas: una para el negocio o una para el servicio.<br />
El docum<strong>en</strong>to USML <strong>de</strong> esta solicitud utilizando el operador OR, se muestra <strong>en</strong> <strong>la</strong><br />
figura. 4.<br />
En el caso <strong>de</strong> utilizar un operador AND, suponga que se <strong>de</strong>sea realizar una<br />
consulta a un nodo UDDI buscando tipos <strong>de</strong> servicio cuyos nombres comi<strong>en</strong>c<strong>en</strong> con<br />
<strong>la</strong> cad<strong>en</strong>a “Web” y estos tipos <strong>de</strong> servicio pert<strong>en</strong>ezcan a negocios cuyos nombres<br />
comi<strong>en</strong>c<strong>en</strong> con <strong>la</strong> cad<strong>en</strong>a “White”. En esta solicitud, po<strong>de</strong>mos especificar dos<br />
consultas: una para el tipo <strong>de</strong> servicio y una para el negocio. El docum<strong>en</strong>to USML <strong>de</strong><br />
esta solicitud utilizando el operador AND, se muestra <strong>en</strong> <strong>la</strong> Fig. 5.
<br />
<br />
Private UDDI<br />
<br />
http://www-3.ibm.com/services/uddi/v2beta/inquiryapi<br />
<br />
IBM<br />
Business<br />
<br />
<br />
Private UDDI<br />
<br />
http://www-3.ibm.com/services/uddi/v2beta/inquiryapi<br />
<br />
IBM<br />
Web<br />
Service<br />
<br />
OR<br />
Business<br />
<br />
Fig. 4. Ejemplo <strong>de</strong> una solicitud <strong>de</strong> búsqueda <strong>en</strong> USML utilizando el operador OR<br />
<br />
<br />
<br />
Private UDDI<br />
<br />
http://www-3.ibm.com/services/uddi/v2beta/inquiryapi<br />
<br />
White<br />
Business<br />
<br />
<br />
Private UDDI<br />
<br />
http://www-3.ibm.com/services/uddi/v2beta/inquiryapi<br />
<br />
IBM<br />
Web<br />
ServiceType<br />
<br />
AND<br />
Business<br />
<br />
Fig. 5 Ejemplo <strong>de</strong> una solicitud <strong>de</strong> búsqueda <strong>en</strong> USML utilizando el operador AND<br />
Cuando se utiliza el operador lógico AND, es necesario ll<strong>en</strong>ar con algún valor <strong>la</strong><br />
etiqueta RequestTypeName <strong>en</strong> don<strong>de</strong> se especifica qué tipo <strong>de</strong> dato se quiere como<br />
resultado <strong>de</strong> <strong>la</strong> consulta.<br />
Para esto, se pued<strong>en</strong> realizar 9 posibles combinaciones <strong>de</strong> consultas utilizando el<br />
operador AND:
1. BusinessServiceType: El operador AND con los tres tipos <strong>de</strong> datos (negocio,<br />
servicio y tipo <strong>de</strong> servicio), el resultado <strong>de</strong> <strong>la</strong> búsqueda <strong>de</strong>vuelve un negocio.<br />
2. ServiceBusinessType: El operador AND con los tres tipos <strong>de</strong> datos (negocio,<br />
servicio y tipo <strong>de</strong> servicio), el resultado <strong>de</strong> <strong>la</strong> búsqueda <strong>de</strong>vuelve un servicio.<br />
3. TypeBusinessService: El operador AND con los tres tipos <strong>de</strong> datos (negocio,<br />
servicio y tipo <strong>de</strong> servicio), el resultado <strong>de</strong> <strong>la</strong> búsqueda <strong>de</strong>vuelve un tipo <strong>de</strong><br />
servicio.<br />
4. BusinessService: El operador AND con dos tipos <strong>de</strong> datos (negocio y<br />
servicio), el resultado <strong>de</strong> <strong>la</strong> búsqueda <strong>de</strong>vuelve un negocio.<br />
5. ServiceBusiness: El operador AND con dos tipos <strong>de</strong> datos (negocio y<br />
servicio), el resultado <strong>de</strong> <strong>la</strong> búsqueda <strong>de</strong>vuelve un servicio.<br />
6. BusinessType: El operador AND con dos tipos <strong>de</strong> datos (negocio y tipo <strong>de</strong><br />
servicio), el resultado <strong>de</strong> <strong>la</strong> búsqueda <strong>de</strong>vuelve un negocio.<br />
7. TypeBusiness: El operador AND con dos tipos <strong>de</strong> datos (tipo <strong>de</strong> servicio y<br />
negocio), el resultado <strong>de</strong> <strong>la</strong> búsqueda <strong>de</strong>vuelve un tipo <strong>de</strong> servicio.<br />
8. ServiceType: El operador AND con dos tipos <strong>de</strong> datos (servicio y tipo <strong>de</strong><br />
servicio), el resultado <strong>de</strong> <strong>la</strong> búsqueda <strong>de</strong>vuelve un servicio.<br />
9. TypeService: El operador AND con dos tipos <strong>de</strong> datos (tipo <strong>de</strong> servicio y<br />
servicio), el resultado <strong>de</strong> <strong>la</strong> búsqueda <strong>de</strong>vuelve un tipo <strong>de</strong> servicio.<br />
A continuación, se propone un caso <strong>de</strong> estudio <strong>en</strong> don<strong>de</strong> se <strong>de</strong>scribe y ejemplifica<br />
<strong>la</strong> funcionalidad <strong>de</strong> un portal <strong>de</strong> servicios Web <strong>en</strong> <strong>la</strong> búsqueda <strong>de</strong> servicios Web <strong>en</strong><br />
nodos UDDI mediante USML.<br />
4 Caso <strong>de</strong> estudio<br />
El caso <strong>de</strong> estudio <strong>de</strong>scribe como el portal facilita el <strong>de</strong>scubrimi<strong>en</strong>to dinámico <strong>de</strong> los<br />
servicios Web que ofrec<strong>en</strong> <strong>la</strong>s empresas registradas <strong>en</strong> nodos UDDI. A continuación<br />
se <strong>de</strong>scribe el sigui<strong>en</strong>te esc<strong>en</strong>ario:<br />
1. Suponga que una compañía A <strong>de</strong>sea comprar compon<strong>en</strong>tes electrónicos, sin<br />
embargo, <strong>de</strong>sconoce qui<strong>en</strong>es podrían ser sus pot<strong>en</strong>ciales proveedores.<br />
2. Suponga que una serie <strong>de</strong> proveedores <strong>de</strong> compon<strong>en</strong>tes electrónicos, han<br />
registrado sus servicios Web <strong>de</strong> manera dispersa <strong>en</strong> difer<strong>en</strong>tes nodos UDDI.<br />
En éste esc<strong>en</strong>ario, ¿cómo pue<strong>de</strong> <strong>la</strong> compañía A buscar y <strong>en</strong>contrar los servicios<br />
Web <strong>de</strong> todos los pot<strong>en</strong>ciales proveedores dado que éstos, han registrado sus servicios<br />
<strong>en</strong> forma dispersa <strong>en</strong> difer<strong>en</strong>tes nodos UDDI?<br />
Para esto, se <strong>de</strong>sarrolló un portal <strong>de</strong> servicios Web. En este portal <strong>de</strong> Internet, se<br />
abarcan <strong>la</strong>s principales tecnologías <strong>de</strong> servicios Web, como son WSDL [8], SOAP<br />
[9], UDDI [1], WSIL [10], BPEL4WS [11] y USML. Este portal <strong>de</strong> Internet fue<br />
construido con base <strong>en</strong> los trabajos [12], [13] y [14].<br />
Para contestar <strong>la</strong> pregunta <strong>de</strong>scrita <strong>en</strong> el esc<strong>en</strong>ario, es necesario que <strong>la</strong> compañía A<br />
utilice el portal <strong>de</strong> servicios Web. D<strong>en</strong>tro <strong>de</strong>l portal, hay una opción <strong>en</strong> el m<strong>en</strong>ú<br />
principal l<strong>la</strong>mada USML. En esta opción, <strong>la</strong> compañía A pue<strong>de</strong> realizar <strong>la</strong> búsqueda y
localización <strong>de</strong> los servicios Web <strong>de</strong> los pot<strong>en</strong>ciales proveedores mediante algunos<br />
criterios <strong>de</strong> búsqueda como son: nombre <strong>de</strong>l negocio, nombre <strong>de</strong>l servicio y tipo <strong>de</strong><br />
servicio. Para ello, el portal ofrece 2 modalida<strong>de</strong>s <strong>de</strong> consulta: 1) consulta <strong>en</strong> todos los<br />
nodos UDDI, y 2) consulta <strong>en</strong> nodo particu<strong>la</strong>r.<br />
En <strong>la</strong> primera modalidad, <strong>la</strong> compañía A no necesita saber cuáles son los nodos<br />
UDDI y cuáles son los URLs <strong>de</strong> dichos nodos. En este s<strong>en</strong>tido, <strong>la</strong> compañía A <strong>de</strong>lega<br />
al portal <strong>la</strong> tarea <strong>de</strong> buscar los servicios Web <strong>de</strong> los proveedores <strong>en</strong> los difer<strong>en</strong>tes<br />
nodos UDDI. Para ello, el portal primero realiza una búsqueda <strong>de</strong> los nodos UDDI<br />
exist<strong>en</strong>tes <strong>en</strong> el archivo <strong>de</strong> configuración <strong>de</strong>scrito <strong>en</strong> <strong>la</strong> sección 2. Cabe recordar, que<br />
<strong>en</strong> dicho archivo se <strong>en</strong>cu<strong>en</strong>tran registrados los nombres y URLs <strong>de</strong> los diversos nodos<br />
UDDI <strong>en</strong> los que se pued<strong>en</strong> llevar a cabo <strong>la</strong>s consultas. Una vez recuperados los<br />
nombres <strong>de</strong> los nodos UDDI y sus respectivos URLs, y una vez establecidos los<br />
criterios <strong>de</strong> búsqueda <strong>de</strong> <strong>la</strong> compañía A, el portal construye un docum<strong>en</strong>to USML<br />
para cada nodo UDDI <strong>en</strong> don<strong>de</strong> se va a realizar una consulta. Después, el portal<br />
empaqueta <strong>en</strong> SOAP cada docum<strong>en</strong>to USML. El protocolo SOAP permite el<br />
intercambio libre y estructurado <strong>de</strong> m<strong>en</strong>sajes a través <strong>de</strong> Internet, <strong>de</strong>fini<strong>en</strong>do un<br />
mecanismo estándar <strong>de</strong> comunicación e intercambio <strong>de</strong> datos <strong>en</strong>tre aplicaciones<br />
[9,15]. Una vez construidos los docum<strong>en</strong>tos USML empaquetados bajo SOAP, se<br />
<strong>en</strong>vían los docum<strong>en</strong>tos a los difer<strong>en</strong>tes nodos UDDI por medio <strong>de</strong> Java Web Service<br />
Developer Pack (Java WSDP) que permite construir, probar y <strong>de</strong>splegar servicios y<br />
aplicaciones Web. Cabe seña<strong>la</strong>r, que el <strong>en</strong>vío <strong>de</strong> los docum<strong>en</strong>tos USML a los diversos<br />
nodos UDDI, se realiza <strong>en</strong> forma parale<strong>la</strong>, para esto, el portal crea un thread o hilo <strong>de</strong><br />
ejecución por cada consulta <strong>en</strong> un nodo UDDI. Ya realizadas <strong>la</strong>s consultas, es <strong>de</strong>cir,<br />
<strong>en</strong>viados los docum<strong>en</strong>tos USML, el portal obti<strong>en</strong>e <strong>la</strong>s respuestas <strong>de</strong> <strong>la</strong>s consultas <strong>de</strong><br />
cada nodo UDDI. El portal analiza estas respuestas y extrae <strong>la</strong> información que le es<br />
útil y construye un nuevo docum<strong>en</strong>to USML, el cual será <strong>la</strong> respuesta a <strong>la</strong> solicitud<br />
hecha por <strong>la</strong> compañía A. Una vez creada <strong>la</strong> respuesta, el portal <strong>de</strong>spliega los<br />
resultados <strong>en</strong> una interfaz gráfica, y le asocia un hipervínculo a cada negocio, servicio<br />
o tipo <strong>de</strong> servicio <strong>en</strong>contrado. Todo esto, con el fin <strong>de</strong> obt<strong>en</strong>er información adicional<br />
<strong>en</strong> el nodo UDDI <strong>en</strong> don<strong>de</strong> se <strong>en</strong>cu<strong>en</strong>tra registrado el negocio, servicio o tipo <strong>de</strong><br />
servicio. Aquí, <strong>la</strong> compañía A ya conoce los servicios Web que ofrec<strong>en</strong> los<br />
pot<strong>en</strong>ciales proveedores registrados <strong>en</strong> los difer<strong>en</strong>tes nodos UDDI.<br />
En lo que respecta a <strong>la</strong> segunda modalidad, ésta se pue<strong>de</strong> ver como un caso<br />
particu<strong>la</strong>r <strong>de</strong> <strong>la</strong> primera. En esta modalidad, <strong>la</strong> compañía A <strong>de</strong>be conocer los<br />
diversos nodos UDDI exist<strong>en</strong>tes. Para esto, el portal realiza una búsqueda <strong>en</strong> el<br />
archivo <strong>de</strong> configuración con el fin <strong>de</strong> obt<strong>en</strong>er nombres y URLs <strong>de</strong> los diversos nodos<br />
UDDI exist<strong>en</strong>tes
Fig. 6. Interfaz gráfica <strong>de</strong> <strong>la</strong> selección <strong>de</strong>l nodo UDDI <strong>en</strong> don<strong>de</strong> se pret<strong>en</strong><strong>de</strong> realizar <strong>la</strong><br />
búsqueda<br />
Fig. 7. Interfaz gráfica <strong>de</strong> <strong>la</strong> selección <strong>de</strong>l tipo <strong>de</strong> búsqueda <strong>en</strong> USML<br />
Una vez recuperados los nombres y URLs <strong>de</strong> los nodos UDDI, el portal <strong>de</strong>spliega<br />
los resultados <strong>en</strong> una interfaz gráfica, para que <strong>la</strong> compañía A seleccione el nodo
UDDI don<strong>de</strong> <strong>de</strong>sea realizar <strong>la</strong> consulta. Una interfaz gráfica <strong>de</strong> <strong>la</strong> selección <strong>de</strong>l nodo<br />
UDDI se muestra <strong>en</strong> <strong>la</strong> figura 6.<br />
Una vez seleccionado el nodo UDDI, <strong>la</strong> compañía A <strong>de</strong>be establecer los criterios<br />
<strong>de</strong> búsqueda mediante una interfaz gráfica. Al establecer un criterio <strong>de</strong> búsqueda, el<br />
portal <strong>de</strong>spliega información pertin<strong>en</strong>te a ese criterio, es <strong>de</strong>cir, si <strong>la</strong> compañía A<br />
selecciona el criterio <strong>de</strong> búsqueda por negocio, se <strong>de</strong>spliega información como:<br />
nombre <strong>de</strong>l negocio a buscar, id<strong>en</strong>tificador <strong>de</strong>l nombre <strong>de</strong> negocio a buscar, categoría<br />
<strong>de</strong>l nombre <strong>de</strong> negocio a buscar, <strong>en</strong>tre otros. La información que el portal <strong>de</strong>spliega<br />
varía <strong>de</strong> acuerdo al criterio <strong>de</strong> búsqueda que se está seleccionando. Una interfaz<br />
gráfica <strong>de</strong>l establecimi<strong>en</strong>to <strong>de</strong> los criterios <strong>de</strong> búsqueda se observa <strong>en</strong> <strong>la</strong> figura 7.<br />
Fig. 8. Interfaz gráfica que muestra los resultados <strong>de</strong> una consulta <strong>en</strong> USML<br />
Después <strong>de</strong> ser establecidos los criterios <strong>de</strong> búsqueda, el portal muestra una<br />
interfaz gráfica don<strong>de</strong> <strong>la</strong> compañía A <strong>de</strong>be seleccionar el operador lógico a utilizar <strong>en</strong><br />
<strong>la</strong> consulta (OR o AND). Posteriorm<strong>en</strong>te <strong>de</strong> establecerse el operador lógico, para esto,<br />
el portal construye el docum<strong>en</strong>to USML que correspon<strong>de</strong> a <strong>la</strong> solicitud <strong>de</strong> consulta <strong>de</strong><br />
<strong>la</strong> compañía A y lo muestra <strong>en</strong> otra interfaz gráfica. Posteriorm<strong>en</strong>te, el portal<br />
empaqueta <strong>en</strong> SOAP el docum<strong>en</strong>to USML y lo <strong>en</strong>vía al nodo UDDI por medio <strong>de</strong><br />
Java WSDP. Finalm<strong>en</strong>te, el portal recibe <strong>la</strong> respuesta y <strong>de</strong>spliega el resultado <strong>en</strong> una<br />
interfaz gráfica. Dicha interfaz se muestra <strong>en</strong> <strong>la</strong> figura 8. De igual forma que <strong>en</strong> <strong>la</strong><br />
primera modalidad, el portal asocia un hipervínculo a cada negocio, servicio o tipo <strong>de</strong><br />
servicio <strong>en</strong>contrado. Todo esto, con el fin <strong>de</strong> obt<strong>en</strong>er información adicional <strong>en</strong> el nodo<br />
UDDI <strong>en</strong> don<strong>de</strong> se <strong>en</strong>cu<strong>en</strong>tra registrado el negocio, servicio o tipo <strong>de</strong> servicio.<br />
En <strong>la</strong> búsqueda y localización <strong>de</strong> servicios Web, el portal es <strong>de</strong> gran ayuda a <strong>la</strong><br />
compañía A, ya que <strong>la</strong> compañía A <strong>de</strong>sconoce el nombre, <strong>la</strong> ubicación geográfica y
electrónica, los servicios y los tipos <strong>de</strong> servicios que ofrec<strong>en</strong> los pot<strong>en</strong>ciales<br />
proveedores.Para llevar a cabo un proceso <strong>de</strong> integración <strong>de</strong> <strong>la</strong> compañía A con los<br />
pot<strong>en</strong>ciales proveedores, es necesario llevar a cabo <strong>la</strong> invocación <strong>de</strong> los servicios Web<br />
ofrecidos por los proveedores. El portal <strong>de</strong> servicios Web, ofrece ésta capacidad<br />
adicional que también no esta pres<strong>en</strong>te <strong>en</strong> ningún nodo UDDI. La manera <strong>en</strong> que el<br />
portal lleva a cabo <strong>la</strong> invocación <strong>de</strong> servicios Web es mediante el análisis <strong>de</strong><br />
docum<strong>en</strong>tos WSDL [8]. Para ello, el portal g<strong>en</strong>era <strong>de</strong> forma dinámica interfaces<br />
gráficas para llevar a cabo el consumo <strong>de</strong>l servicio Web. Sin embargo, esto esta fuera<br />
<strong>de</strong>l alcance <strong>de</strong>l artículo. Una <strong>de</strong>scripción más <strong>de</strong>tal<strong>la</strong>da <strong>de</strong> esto, se pue<strong>de</strong> <strong>en</strong>contrar <strong>en</strong><br />
[16].<br />
A continuación, se <strong>de</strong>scribe un análisis comparativo realizado <strong>de</strong>l portal, con los<br />
diversos nodos UDDI mostrando v<strong>en</strong>tajas y <strong>de</strong>sv<strong>en</strong>tajas <strong>en</strong> el uso <strong>de</strong> USML.<br />
5 Análisis comparativo <strong>de</strong>l portal con nodos UDDI<br />
El análisis comparativo <strong>de</strong>scribe <strong>la</strong>s v<strong>en</strong>tajas y <strong>de</strong>sv<strong>en</strong>tajas <strong>en</strong>contradas <strong>de</strong>l portal con<br />
los diversos nodos UDDI exist<strong>en</strong>tes. Este análisis fue realizado <strong>en</strong> comparación con<br />
los nodos UDDI [17], [18], [19], [20], [21].<br />
Los resultados <strong>de</strong> este análisis se pres<strong>en</strong>tan <strong>en</strong> <strong>la</strong> figura 9<br />
Portal <strong>de</strong> [ 17 ] [ 18 ] [ 19 ] [ 20 ] [ 21 ]<br />
Servicios<br />
Web<br />
Búsqueda por negocio <br />
Búsqueda por servicio <br />
Búsqueda por tMo<strong>de</strong>l <br />
Búsqueda por<br />
id<strong>en</strong>tificadores NAICS,<br />
SIC, UNSPSC<br />
Uso <strong>de</strong> USML<br />
¿Permite invocar servicios<br />
Web?<br />
<br />
<br />
<br />
Fig. 9. Resultado <strong>de</strong>l análisis <strong>de</strong>l portal <strong>de</strong> servicios Web <strong>en</strong> comparación con los principales<br />
nodos UDDI<br />
Como se pue<strong>de</strong> observar, el portal <strong>de</strong> servicios Web pres<strong>en</strong>ta v<strong>en</strong>tajas<br />
significativas <strong>en</strong> comparación con los principales nodos UDDI. A difer<strong>en</strong>cia <strong>de</strong> los<br />
nodos UDDI, el portal se <strong>en</strong>foca principalm<strong>en</strong>te a <strong>la</strong> búsqueda eficaz y exacta <strong>de</strong> los<br />
servicios Web, así también, como su respectiva invocación. Mi<strong>en</strong>tras que pasa a<br />
segunda importancia, <strong>la</strong> búsqueda <strong>de</strong> servicios mediante el uso <strong>de</strong> id<strong>en</strong>tificadores y<br />
tMo<strong>de</strong>l <strong>de</strong> manera singu<strong>la</strong>r, el cual, este tipo <strong>de</strong> consulta es provisto por los nodos<br />
UDDI.
6 Conclusiones<br />
USML nos ayuda <strong>en</strong> gran medida a conjuntar varios criterios para <strong>la</strong> búsqueda y<br />
localización <strong>de</strong> servicios Web publicados <strong>en</strong> diversos nodos UDDI. Esto lo hace a<br />
través <strong>de</strong>l uso <strong>de</strong> operadores lógicos como son AND y OR. A<strong>de</strong>más, <strong>en</strong> USML<br />
po<strong>de</strong>mos especificar el tipo <strong>de</strong> datos que se <strong>de</strong>sea obt<strong>en</strong>er como resultado <strong>de</strong> una<br />
consulta dada. Todas estas características, son muy importantes ya que los sistemas <strong>de</strong><br />
información que lo utilic<strong>en</strong>, como el portal <strong>de</strong> servicios Web <strong>de</strong>sarrol<strong>la</strong>do, obt<strong>en</strong>drán<br />
exactitud y eficacia <strong>en</strong> <strong>la</strong>s consultas a diversos nodos UDDI.<br />
Refer<strong>en</strong>cias<br />
1. UDDI, UDDI Version 3.0, Published Specification, July 19, 2002.<br />
2. Data Universal Numbering System, D-U-N-S Homepage, http://www.dnb.com/.<br />
3. Thomas Register, Thomas Register Homepage, http://www.thomasregister.com/<br />
4. North American Industry C<strong>la</strong>ssification System, NAICS Homepage,<br />
http://www.naics.com/.<br />
5. United Nations Standard Products and Services Co<strong>de</strong>, UNSPSC Homepage,<br />
http://www.unspsc.org/.<br />
6. International Organization for Standardization (ISO) - Language co<strong>de</strong>s, ISO Homepage,<br />
http://www.iso.ch/<br />
7. Standard Industrial C<strong>la</strong>ssification, SIC Homepage,<br />
http://www.sec.gov/info/edgar/sicco<strong>de</strong>s.htm<br />
8. Web Services Description Language Specification, WSDL Home,<br />
http://www.w3.org/TR/wsdl12<br />
9. Simple Object Access Protocol Specification, SOAP Home,<br />
http://www.w3.org/TR/SOAP/<br />
10. Web Services Inspection Language (WS-Inspection) 1.0. November 2001. From<br />
International Business Machines Corporation (IBM).<br />
11. Business Process Execution Language for Web Services. BPEL4WS 1.1 Specification.<br />
IBM May 5 2003.<br />
12. Giner Alor Hernán<strong>de</strong>z, José Oscar Olmedo Aguirre, “Automatización <strong>de</strong> <strong>la</strong> Cad<strong>en</strong>a <strong>de</strong><br />
Suministro usando UDDI”, Proceedings CNCIIC-ANIEI 2003.<br />
13. Giner Alor Hernán<strong>de</strong>z, José Oscar Olmedo Aguirre, “Sistema <strong>de</strong> Intermediación para el<br />
Comercio Electrónico B2B basado <strong>en</strong> Servicios Web”, Proceedings CIC 2003.<br />
14. Giner Alor Hernán<strong>de</strong>z, José Oscar Olmedo Aguirre, “Automatización <strong>de</strong> <strong>la</strong> Cad<strong>en</strong>a <strong>de</strong><br />
Suministro <strong>en</strong> Comercio Electrónico B2B”, Proceedings CIE 2003.<br />
15. Francisco Curbera, Matthew Duftler, Rania Kha<strong>la</strong>f, William Nagy, Nirmal Mukhi and<br />
Sanjiva Weerawarana, “Unraveling the Web Services Web An Introduction to SOAP,<br />
WSDL, and UDDI”. IEEE Internet Computing. April 2002. Pages. 86-93<br />
16. César Sandoval Hernán<strong>de</strong>z, Giner Alor Hernán<strong>de</strong>z, José Oscar Olmedo Aguirre.<br />
“G<strong>en</strong>eración Dinámica <strong>de</strong> GUIs para <strong>la</strong> Invocación <strong>de</strong> Servicios Web publicados <strong>en</strong><br />
nodos UDDI”. Proceedings CORE-2004. Por publicarse.<br />
17. IBM UDDI Business Production Registry, https://uddi.ibm.com/ubr/registry.html<br />
18. IBM UDDI Business Test Registry, https://uddi.ibm.com/testregistry/registry.html<br />
19. Microsoft UDDI Business Test Registry, http://test.uddi.microsoft.com/<br />
20. Microsoft UDDI Business Production Registry, http://uddi.microsoft.com/<br />
21. SAP UDDI Business Registry, http://uddi.sap.com/
G<strong>en</strong>eración dinámica <strong>de</strong> GUIs<br />
para <strong>la</strong> invocación <strong>de</strong> servicios Web<br />
publicados <strong>en</strong> nodos UDDI<br />
César Sandoval Hernán<strong>de</strong>z, Giner Alor Hernán<strong>de</strong>z,<br />
José Oscar Olmedo Aguirre<br />
C<strong>en</strong>tro <strong>de</strong> Investigación y <strong>de</strong> Estudios Avanzados <strong>de</strong>l IPN,<br />
Departam<strong>en</strong>to <strong>de</strong> Ing<strong>en</strong>iería Eléctrica. Sección <strong>de</strong> Computación,<br />
Av. Instituto Politécnico Nacional 2508, Col San Pedro Zacat<strong>en</strong>co, 07360,<br />
<strong>México</strong>, D. F.<br />
{csandoval, gineralor}@computacion.cs.cinvestav.mx,<br />
oolmedo@<strong>de</strong>lta.cs.cinvestav.mx<br />
Resum<strong>en</strong>. Actualm<strong>en</strong>te, <strong>la</strong> forma como se conduc<strong>en</strong> <strong>la</strong>s transacciones<br />
comerciales está sufri<strong>en</strong>do cambios significativos. Los mercados están usando<br />
el Internet como una forma eficaz <strong>de</strong> conducir prácticas comerciales. Esto ha<br />
provocado el surgimi<strong>en</strong>to <strong>de</strong> un nuevo paradigma computacional l<strong>la</strong>mado<br />
servicios Web el cual ti<strong>en</strong>e como principal aplicación el comercio electrónico.<br />
Los servicios Web hac<strong>en</strong> amplio uso <strong>de</strong> UDDI el cual es básicam<strong>en</strong>te un<br />
servicio públicam<strong>en</strong>te disponible <strong>en</strong> el que se pue<strong>de</strong> publicar y recuperar<br />
información sobre negocios. Sin embargo, actualm<strong>en</strong>te no exist<strong>en</strong> herrami<strong>en</strong>tas<br />
públicam<strong>en</strong>te disponibles que permitan ubicar, analizar e invocar servicios Web<br />
que se <strong>en</strong>cu<strong>en</strong>tran <strong>en</strong> los difer<strong>en</strong>tes nodos UDDI a partir <strong>de</strong>l nombre <strong>de</strong>l<br />
negocio o <strong>de</strong>l servicio. El pres<strong>en</strong>te trabajo ofrece una interfaz <strong>de</strong> usuario que<br />
resuelve esta situación permiti<strong>en</strong>do no sólo hacer búsquedas por pa<strong>la</strong>bras c<strong>la</strong>ve<br />
sobre los negocios y servicios que se <strong>en</strong>cu<strong>en</strong>tran <strong>en</strong> repositorios UDDI, sino<br />
que también permite analizar <strong>la</strong> información sobre los negocios que se<br />
<strong>en</strong>cu<strong>en</strong>tra <strong>en</strong> los nodos UDDI y ejecutar los correspondi<strong>en</strong>tes servicios.<br />
1 Introducción<br />
El uso <strong>de</strong> los servicios Web <strong>en</strong> el World Wi<strong>de</strong> Web se expan<strong>de</strong> rápidam<strong>en</strong>te <strong>de</strong>bido a<br />
<strong>la</strong> creci<strong>en</strong>te necesidad <strong>de</strong> comunicación <strong>en</strong>tre aplicaciones y <strong>de</strong> interoperabilidad.<br />
Estos servicios prove<strong>en</strong> es<strong>en</strong>cialm<strong>en</strong>te un medio estándar <strong>de</strong> comunicación <strong>en</strong>tre<br />
difer<strong>en</strong>tes aplicaciones <strong>de</strong> software. Los protocolos <strong>de</strong> comunicación que los servicios<br />
Web utilizan están basados <strong>en</strong> el eXt<strong>en</strong>sible Markup Language (XML) [1] el cual,<br />
como su nombre lo indica, es un l<strong>en</strong>guaje <strong>de</strong> marcado ext<strong>en</strong>sible que permite <strong>de</strong>scribir<br />
cualquier tipo <strong>de</strong> información. En los servicios Web se hace uso <strong>de</strong> l<strong>en</strong>guajes<br />
<strong>de</strong>rivados <strong>de</strong> XML que ayudan a <strong>de</strong>scribir <strong>la</strong>s operaciones que se van a ejecutar o <strong>la</strong><br />
información a intercambiar con otro servicio. El mayor logro <strong>de</strong> los servicios Web es<br />
que han permitido a <strong>la</strong>s aplicaciones comunicarse <strong>en</strong>tre el<strong>la</strong>s <strong>de</strong> una manera<br />
in<strong>de</strong>p<strong>en</strong>di<strong>en</strong>te <strong>de</strong>l l<strong>en</strong>guaje <strong>de</strong> programación y <strong>de</strong> <strong>la</strong> p<strong>la</strong>taforma, es <strong>de</strong>cir, produc<strong>en</strong><br />
una mayor interoperabilidad. Los servicios Web también <strong>de</strong>fin<strong>en</strong> una interfaz <strong>de</strong>
software basada <strong>en</strong> dialectos <strong>de</strong> XML que <strong>de</strong>scribe una colección <strong>de</strong> operaciones que<br />
pued<strong>en</strong> ser accedidas remotam<strong>en</strong>te.<br />
Existe una gran cantidad <strong>de</strong> tecnología re<strong>la</strong>cionada con los servicios Web d<strong>en</strong>tro <strong>de</strong><br />
<strong>la</strong> que <strong>de</strong>staca el directorio Universal Description, Discovery and Integration (UDDI)<br />
[2] y el Simple Object Access Protocol (SOAP) [3]. La primera <strong>de</strong>fine un registro y<br />
protocolos asociados para <strong>la</strong> búsqueda y localización <strong>de</strong> servicios Web. Mi<strong>en</strong>tras que<br />
<strong>la</strong> segunda permite codificar docum<strong>en</strong>tos XML para que puedan ser transmitidos <strong>en</strong> <strong>la</strong><br />
red usando protocolos <strong>de</strong> transporte como HTTP.<br />
En el pres<strong>en</strong>te trabajo se <strong>de</strong>scribe <strong>la</strong> funcionalidad <strong>de</strong> una interfaz <strong>de</strong> usuario<br />
ori<strong>en</strong>tada a <strong>la</strong> Web construida <strong>de</strong> forma dinámica para visualizar información<br />
re<strong>la</strong>cionada con los servicios Web ofrecidos por diversos negocios que se <strong>en</strong>cu<strong>en</strong>tran<br />
publicados <strong>en</strong> nodos UDDI. El principal interés para construir dicha interfaz es t<strong>en</strong>er<br />
una herrami<strong>en</strong>ta que sea fácil <strong>de</strong> usar y que a<strong>de</strong>más ayu<strong>de</strong> <strong>en</strong> <strong>la</strong> invocación <strong>de</strong><br />
cualquier tipo <strong>de</strong> servicio Web. En <strong>la</strong> primera parte <strong>de</strong> este docum<strong>en</strong>to se muestra <strong>la</strong><br />
interfaz que permite realizar búsquedas <strong>de</strong> servicios Web <strong>en</strong> nodos UDDI dados<br />
algunos criterios <strong>de</strong> búsqueda. En <strong>la</strong> segunda parte se <strong>de</strong>scrib<strong>en</strong> los procedimi<strong>en</strong>tos<br />
usados para <strong>la</strong> inspección <strong>de</strong> los servicios Web. Y finalm<strong>en</strong>te se pres<strong>en</strong>ta <strong>la</strong> forma <strong>en</strong><br />
que se realiza <strong>la</strong> invocación dinámica <strong>de</strong> los servicios Web a través <strong>de</strong> m<strong>en</strong>sajes<br />
SOAP.<br />
2 Búsqueda <strong>de</strong> servicios Web <strong>en</strong> nodos UDDI<br />
Los servicios Web son un conjunto <strong>de</strong> tecnologías <strong>de</strong> comunicación que proporcionan<br />
interfaces a través <strong>de</strong> <strong>la</strong>s cuales se pue<strong>de</strong> t<strong>en</strong>er acceso a servicios públicam<strong>en</strong>te<br />
disponibles. Estos servicios Web pued<strong>en</strong> ser publicados y consultados <strong>en</strong> nodos UDDI<br />
como los que provee IBM [4], Microsoft [5], SAP [6], <strong>en</strong>tre otros. UDDI provee dos<br />
tipos <strong>de</strong> servicio: publicación y consulta. El primero <strong>de</strong>fine operaciones que permit<strong>en</strong><br />
el registro, modificación y eliminación <strong>de</strong> negocios y servicios. Algunos ejemplos <strong>de</strong><br />
esto son save_business, save_service, <strong>de</strong>lete_business, <strong>de</strong>lete_service, por m<strong>en</strong>cionar<br />
algunos. Mi<strong>en</strong>tras que el servicio <strong>de</strong> consulta <strong>de</strong>fine operaciones que permit<strong>en</strong> realizar<br />
búsquedas sobre negocios y servicios <strong>en</strong> un nodo UDDI como find_business,<br />
find_service, find_tMo<strong>de</strong>l, get_businessDetail, get_serviceDetail, <strong>en</strong>tre otros. Los<br />
negocios interesados <strong>en</strong> el registro <strong>de</strong> sus servicios Web <strong>en</strong> algún nodo UDDI <strong>de</strong>b<strong>en</strong><br />
usar el servicio <strong>de</strong> publicación. La información <strong>de</strong>l negocio y sus servicios se<br />
almac<strong>en</strong>a <strong>en</strong> una <strong>en</strong>tidad l<strong>la</strong>mada BusinessEntity. Esta <strong>en</strong>tidad es un docum<strong>en</strong>to XML<br />
que según <strong>la</strong> especificación <strong>de</strong> UDDI es <strong>la</strong> más importante d<strong>en</strong>tro <strong>de</strong> su estructura. En<br />
<strong>la</strong> Fig. 1 se muestra <strong>la</strong> <strong>en</strong>tidad BusinessEntity y sus elem<strong>en</strong>tos.<br />
Al igual que un directorio telefónico el elem<strong>en</strong>to BusinessEntity divi<strong>de</strong> <strong>la</strong><br />
información <strong>en</strong> tres categorías: páginas b<strong>la</strong>ncas, páginas amaril<strong>la</strong>s y páginas ver<strong>de</strong>s.<br />
Como se pue<strong>de</strong> ver <strong>en</strong> <strong>la</strong> Fig. 1, <strong>la</strong>s páginas b<strong>la</strong>ncas conti<strong>en</strong><strong>en</strong> información <strong>de</strong><br />
contacto como nombre, teléfono, dirección o e-mail. Mi<strong>en</strong>tras que <strong>la</strong>s páginas<br />
amaril<strong>la</strong>s prove<strong>en</strong> información re<strong>la</strong>cionada con <strong>la</strong> categoría <strong>de</strong>l negocio basada <strong>en</strong><br />
ontologías como <strong>la</strong>s establecidas por el North American Industry C<strong>la</strong>ssification<br />
System (NAICS) [7] o el United Nations Standard Products and Services Co<strong>de</strong><br />
(UN/SPSC) [8], por m<strong>en</strong>cionar algunos. Finalm<strong>en</strong>te <strong>la</strong>s páginas ver<strong>de</strong>s ofrec<strong>en</strong>
información <strong>de</strong> los servicios <strong>en</strong> <strong>la</strong> cual se especifica como otros negocios pued<strong>en</strong><br />
integrarse.<br />
BusinessEntity<br />
businessKey<br />
name<br />
URL<br />
<strong>de</strong>scription<br />
contacts<br />
businessServices<br />
id<strong>en</strong>tifierBag<br />
categoryBag<br />
Contact<br />
Phone<br />
Address<br />
Email<br />
White pages<br />
businessService<br />
serviceKey<br />
tMo<strong>de</strong>lKey<br />
Name<br />
Description<br />
BindingTemp<strong>la</strong>tes<br />
Gre<strong>en</strong> pages<br />
keyedRefer<strong>en</strong>ce<br />
tMo<strong>de</strong>lKey<br />
keyName<br />
keyValue<br />
Yellow pages<br />
keyedRefer<strong>en</strong>ce<br />
tMo<strong>de</strong>lKey<br />
keyName<br />
keyValue<br />
Yellow Pages<br />
Fig. 1. Información necesaria para el registro <strong>de</strong> un negocio <strong>en</strong> un nodo UDDI<br />
El portal que se <strong>de</strong>sarrolló hace uso <strong>de</strong> UDDI4J (implem<strong>en</strong>tación <strong>de</strong> UDDI <strong>en</strong><br />
Java) [9] para obt<strong>en</strong>er los servicios Web cont<strong>en</strong>idos <strong>en</strong> algún repositorio UDDI que<br />
cump<strong>la</strong>n con ciertas características. En particu<strong>la</strong>r, <strong>la</strong>s características son el nombre <strong>de</strong>l<br />
negocio y servicio, aunque es posible hacer consultas más e<strong>la</strong>boradas como se explica<br />
<strong>en</strong> [10].<br />
D<strong>en</strong>tro <strong>de</strong>l portal existe una opción l<strong>la</strong>mada UDDI que permite <strong>la</strong> búsqueda y<br />
localización <strong>de</strong> servicios Web publicados <strong>en</strong> nodos UDDI. Para realizar <strong>la</strong> búsqueda<br />
el portal ofrece dos criterios los cuales son: por servicio o por negocio tal como se<br />
muestra <strong>en</strong> <strong>la</strong> Fig. 2. Supongamos que se <strong>de</strong>sea buscar uno o más servicios Web cuyo<br />
nombre <strong>de</strong> negocio cont<strong>en</strong>ga <strong>la</strong> pa<strong>la</strong>bra Amazon <strong>en</strong> algún nodo UDDI <strong>de</strong> Microsoft.<br />
Entonces el usuario introduce estos criterios <strong>en</strong> <strong>la</strong> interfaz <strong>de</strong> <strong>la</strong> Fig. 2.<br />
Una vez establecidos los criterios, el portal utiliza <strong>la</strong>s operaciones find_business o<br />
find_service (según sea el caso) <strong>de</strong>l servicio <strong>de</strong> consulta <strong>de</strong> UDDI. Entonces construye<br />
un docum<strong>en</strong>to XML y lo empaqueta <strong>en</strong> SOAP. A continuación <strong>en</strong>vía el m<strong>en</strong>saje al<br />
nodo UDDI. El portal <strong>de</strong>spliega una lista <strong>de</strong> negocios y sus correspondi<strong>en</strong>tes servicios<br />
que cumpl<strong>en</strong> con los criterios <strong>de</strong> búsqueda. Aquí el usuario pue<strong>de</strong> elegir alguno <strong>de</strong> los<br />
negocios o servicio para obt<strong>en</strong>er información adicional que resulte <strong>de</strong> su interés. Al
seleccionar un servicio el portal utiliza <strong>la</strong> operación get_serviceDetail mediante <strong>la</strong><br />
cual se pue<strong>de</strong> obt<strong>en</strong>er información como el nombre <strong>de</strong>l negocio, su <strong>de</strong>scripción, los<br />
servicios, los puntos <strong>de</strong> acceso y <strong>la</strong> ubicación <strong>de</strong>l docum<strong>en</strong>to escrito <strong>en</strong> el Web<br />
Services Description Language (WSDL) [11] el cual está re<strong>la</strong>cionado con <strong>la</strong>s páginas<br />
ver<strong>de</strong>s. Esta información se muestra <strong>en</strong> <strong>la</strong> Fig. 3.<br />
Fig. 2. Interfaz gráfica <strong>de</strong> usuario mediante <strong>la</strong> cual se pued<strong>en</strong> hacer consultas a nodos UDDI<br />
dado el nombre <strong>de</strong> negocio o servicio<br />
En particu<strong>la</strong>r, el docum<strong>en</strong>to WSDL es <strong>de</strong> gran importancia porque provee<br />
información sufici<strong>en</strong>te para realizar posteriorm<strong>en</strong>te <strong>la</strong> invocación <strong>de</strong> los servicios<br />
ofrecidos por <strong>la</strong> organización. La posibilidad <strong>de</strong> invocar un servicio Web no es<br />
provista <strong>en</strong> ningún nodo UDDI. Como solución el portal permite efectuar <strong>la</strong><br />
invocación mediante <strong>la</strong> g<strong>en</strong>eración dinámica <strong>de</strong> interfaces gráficas <strong>de</strong> usuario (GUIs)<br />
.<br />
Fig. 3. Información <strong>de</strong>splegada cuando se selecciona un negocio <strong>en</strong> específico. Se pue<strong>de</strong> ver<br />
tanto el WSDL como proce<strong>de</strong>r a su invocación
A continuación se <strong>de</strong>scrib<strong>en</strong> los procedimi<strong>en</strong>tos aplicados para llevar a cabo <strong>la</strong><br />
inspección <strong>de</strong> los servicios Web.<br />
3 Inspección <strong>de</strong> los servicios Web<br />
Un docum<strong>en</strong>to WSDL repres<strong>en</strong>ta una serie <strong>de</strong> s<strong>en</strong>t<strong>en</strong>cias XML que constituy<strong>en</strong> <strong>la</strong><br />
<strong>de</strong>finición para <strong>la</strong>s interfaces <strong>de</strong> cada servicio lo que ayuda a obt<strong>en</strong>er una <strong>de</strong>scripción<br />
precisa acerca <strong>de</strong> los servicios que se ofrec<strong>en</strong>. Una vez ubicado el docum<strong>en</strong>to WSDL<br />
correspondi<strong>en</strong>te a un servicio Web el portal proce<strong>de</strong> a su análisis. Para realizar el<br />
análisis el portal usa el Web Services Invocation Framework (WSIF).<br />
El WSIF es una API <strong>en</strong> Java para <strong>la</strong> invocación <strong>de</strong> los servicios Web, no<br />
importando dón<strong>de</strong> y cómo los servicios se prove<strong>en</strong> [12]. WSIF conti<strong>en</strong>e algunas<br />
utilerías con <strong>la</strong>s cuales se pued<strong>en</strong> obt<strong>en</strong>er objetos <strong>de</strong>l Web Services Description<br />
Language for Java (WSDL4J). El WSDL4J es una API <strong>en</strong> Java <strong>de</strong> WSDL que<br />
permite mapear <strong>la</strong> información <strong>en</strong>contrada <strong>en</strong> docum<strong>en</strong>tos WSDL a objetos Java que<br />
pued<strong>en</strong> manipu<strong>la</strong>rse [13].<br />
En <strong>la</strong> Fig. 4 se <strong>de</strong>scrib<strong>en</strong> los pasos seguidos por el portal para obt<strong>en</strong>er objetos Java<br />
repres<strong>en</strong>tativos <strong>de</strong>l docum<strong>en</strong>to WSDL. La información <strong>en</strong> un docum<strong>en</strong>to WSDL que<br />
se requiere para llevar a cabo <strong>la</strong> invocación <strong>de</strong> un servicio Web se <strong>en</strong>cu<strong>en</strong>tra <strong>en</strong> los<br />
elem<strong>en</strong>tos Service, PortTypes y Bindings.<br />
El elem<strong>en</strong>to Service conti<strong>en</strong>e información para acce<strong>de</strong>r al servicio Web, <strong>la</strong> cual<br />
está cont<strong>en</strong>ida <strong>en</strong> el atributo AccessPoint. El elem<strong>en</strong>to PortType <strong>de</strong>fine un conjunto <strong>de</strong><br />
operaciones provistas por el servicio. El elem<strong>en</strong>to Binding <strong>de</strong>fine los protocolos<br />
asociados a <strong>la</strong>s operaciones <strong>de</strong>scritas <strong>en</strong> el elem<strong>en</strong>to PortType. El portal analiza el<br />
docum<strong>en</strong>to WSDL y extrae los elem<strong>en</strong>tos antes m<strong>en</strong>cionados. Para mostrar el<br />
resultado, el portal g<strong>en</strong>era una GUI y <strong>de</strong>spliega los elem<strong>en</strong>tos PortTypes <strong>en</strong>contrados.<br />
El usuario pue<strong>de</strong> <strong>en</strong>tonces seleccionar el PortType que le sea <strong>de</strong> interés.<br />
Para el caso <strong>de</strong> Amazon, sólo se ti<strong>en</strong>e un elem<strong>en</strong>to PortType como se pue<strong>de</strong> ver <strong>en</strong><br />
<strong>la</strong> Fig. 5. Cabe m<strong>en</strong>cionar aquí que <strong>en</strong> g<strong>en</strong>eral se pued<strong>en</strong> <strong>en</strong>contrar uno o más<br />
elem<strong>en</strong>tos PortType que sirv<strong>en</strong> para hacer diversos tipos <strong>de</strong> petición como HTTP o<br />
SOAP. El portal únicam<strong>en</strong>te pue<strong>de</strong> <strong>en</strong>viar m<strong>en</strong>sajes a través <strong>de</strong> SOAP.<br />
Al seleccionar un PortType, el portal internam<strong>en</strong>te recupera un <strong>en</strong><strong>la</strong>ce <strong>en</strong>tre el<br />
servicio y <strong>la</strong>s operaciones. A través <strong>de</strong>l WSDL4J se obti<strong>en</strong><strong>en</strong> <strong>la</strong>s operaciones<br />
asociadas a dicho <strong>en</strong><strong>la</strong>ce <strong>la</strong>s cuales son pres<strong>en</strong>tadas <strong>en</strong> una nueva GUI como se<br />
muestra <strong>en</strong> <strong>la</strong> Fig. 6. El usuario pue<strong>de</strong> <strong>en</strong>tonces seleccionar alguna <strong>de</strong> <strong>la</strong>s operaciones.<br />
Supongamos que quiere hacer una búsqueda <strong>en</strong> el servicio Web <strong>de</strong> Amazon <strong>de</strong> su<br />
pelícu<strong>la</strong> favorita “Matrix”, pue<strong>de</strong> <strong>en</strong>tonces escoger <strong>la</strong> operación<br />
KeywordSearchRequest que se <strong>en</strong>cu<strong>en</strong>tra d<strong>en</strong>tro <strong>de</strong>l conjunto <strong>de</strong> operaciones<br />
disponibles por Amazon. Una vez seleccionada <strong>la</strong> operación, el portal obti<strong>en</strong>e el<br />
conjunto <strong>de</strong> parámetros asociados con esa operación los cuales son pres<strong>en</strong>tados <strong>en</strong> <strong>la</strong><br />
GUI <strong>de</strong> <strong>la</strong> Fig. 7. Los parámetros pued<strong>en</strong> ser <strong>de</strong> tipo primitivo (string, float, boolean,<br />
etc.) o <strong>de</strong> tipo complejo (conti<strong>en</strong>e a tipos primitivos). El usuario <strong>de</strong>be <strong>en</strong>tonces ll<strong>en</strong>ar<br />
los campos con los datos g<strong>en</strong>erales <strong>de</strong> <strong>la</strong> pelícu<strong>la</strong> y <strong>en</strong>viarlos al servidor Web.
1 Solicita ubicación <strong>de</strong>l WSDL<br />
(UDDI4J)<br />
Reposito<br />
rio UDDI<br />
2 Regresa <strong>la</strong> ubicación <strong>de</strong>l WSDL<br />
Portal<br />
3 Obti<strong>en</strong>e el docum<strong>en</strong>to WSDL y lo mapea<br />
a objetos Java (WSIF)<br />
4 Invoca el servicio Web (a<br />
través <strong>de</strong> WSIF o m<strong>en</strong>sajes<br />
SOAP)<br />
Docum<strong>en</strong>t<br />
o WSDL<br />
expuesto <strong>en</strong><br />
Internet<br />
Servicio<br />
Web cli<strong>en</strong>te<br />
Fig. 4. Esquema g<strong>en</strong>eral que muestra los pasos efectuados por el portal para obt<strong>en</strong>er objetos<br />
repres<strong>en</strong>tativos <strong>de</strong>l docum<strong>en</strong>to WSDL<br />
Fig. 5. Desplegado <strong>de</strong> los puertos disponibles <strong>en</strong> el servicio Web <strong>de</strong> Amazon
Fig. 6. Operaciones disponibles <strong>en</strong> el puerto<br />
En <strong>la</strong> sigui<strong>en</strong>te sección se pres<strong>en</strong>ta <strong>la</strong> forma <strong>en</strong> que se lleva a cabo <strong>la</strong> preparación<br />
<strong>de</strong> <strong>la</strong> invocación al servicio Web.<br />
Fig. 7. Parámetros <strong>de</strong> <strong>la</strong> operación seleccionada que <strong>de</strong>b<strong>en</strong> ser ll<strong>en</strong>ados por el usuario
4 Invocación <strong>de</strong> los servicios Web<br />
A partir <strong>de</strong> este mom<strong>en</strong>to el usuario no necesita ingresar ninguna información<br />
adicional. Sin embargo, a pesar <strong>de</strong> que <strong>en</strong> este punto se cu<strong>en</strong>ta con gran parte <strong>de</strong> <strong>la</strong><br />
información necesaria para hacer <strong>la</strong> solicitud al servicio Web aún faltan datos<br />
importantes que el sistema se <strong>en</strong>cargará <strong>de</strong> <strong>de</strong>terminar automáticam<strong>en</strong>te. Se ha dicho<br />
que <strong>la</strong> invocación <strong>de</strong> un servicio Web se hace a través <strong>de</strong>l <strong>en</strong>vío <strong>de</strong> m<strong>en</strong>sajes SOAP.<br />
Un m<strong>en</strong>saje SOAP ti<strong>en</strong>e <strong>la</strong> estructura mostrada <strong>en</strong> el esquema <strong>de</strong> <strong>la</strong> Fig. 8.<br />
Un m<strong>en</strong>saje SOAP consiste <strong>de</strong> una cabecera y un cuerpo. En <strong>la</strong> cabecera se pue<strong>de</strong><br />
agregar información específica <strong>de</strong> <strong>la</strong> aplicación como el nombre <strong>de</strong> espacios,<br />
aut<strong>en</strong>ticación, <strong>en</strong>tre otros. Mi<strong>en</strong>tras que <strong>en</strong> el cuerpo se agrega el m<strong>en</strong>saje que se<br />
<strong>de</strong>sea <strong>en</strong>viar. En el caso <strong>de</strong>l portal, se <strong>en</strong>vían los valores <strong>de</strong> los parámetros asociados<br />
con <strong>la</strong> petición. El portal necesita primeram<strong>en</strong>te <strong>de</strong>terminar el tipo <strong>de</strong> codificación que<br />
se <strong>de</strong>be hacer <strong>en</strong> el m<strong>en</strong>saje SOAP. Exist<strong>en</strong> dos formas <strong>de</strong> codificar un m<strong>en</strong>saje<br />
SOAP <strong>la</strong>s cuales son <strong>en</strong>co<strong>de</strong>d o literal. En una codificación <strong>en</strong>co<strong>de</strong>d se <strong>de</strong>be agregar<br />
un espacio <strong>de</strong> nombres al m<strong>en</strong>saje SOAP. En caso contrario éste no <strong>de</strong>be ser<br />
agregado.<br />
A<strong>de</strong>más se <strong>de</strong>be <strong>de</strong>terminar si el estilo <strong>de</strong> <strong>la</strong> invocación es docum<strong>en</strong>t o rpc. En el<br />
primer caso se requiere <strong>de</strong>terminar un SoapAction el cual es un espacio <strong>de</strong> nombres<br />
para agregarlo a <strong>la</strong> cabecera <strong>de</strong> <strong>la</strong> petición SOAP. Mi<strong>en</strong>tras que <strong>en</strong> el segundo caso no<br />
es necesario agregarlo.<br />
Finalm<strong>en</strong>te, se está <strong>en</strong> condiciones <strong>de</strong> <strong>en</strong>viar <strong>la</strong> solicitud al servicio Web. Para<br />
realizar dicha solicitud se ha recurrido al mo<strong>de</strong>lo tradicional <strong>de</strong> <strong>en</strong>viar m<strong>en</strong>sajes a<br />
través <strong>de</strong> <strong>la</strong>s APIs <strong>de</strong> SOAP <strong>de</strong>bido a que WSIF no permite el <strong>en</strong>vío <strong>de</strong> m<strong>en</strong>sajes <strong>de</strong><br />
una manera eficaz <strong>en</strong> el caso <strong>de</strong> los tipos complejos para hacer <strong>la</strong> invocación. La<br />
forma que ti<strong>en</strong>e dicha petición es <strong>de</strong> un docum<strong>en</strong>to XML. Se <strong>en</strong>vía <strong>en</strong>tonces <strong>la</strong><br />
petición y se espera a que el servidor responda, es <strong>de</strong>cir, <strong>la</strong> petición que se realiza es<br />
síncrona.<br />
El proveedor <strong>de</strong>l servicio Web pue<strong>de</strong> respon<strong>de</strong>r <strong>de</strong> muy difer<strong>en</strong>tes maneras. Pue<strong>de</strong><br />
<strong>en</strong>viar <strong>en</strong> respuesta uno o más valores <strong>de</strong> tipo primitivo, tipos complejos o incluso<br />
arreglos <strong>de</strong> tipos complejos. La respuesta que se obtuvo <strong>de</strong>l servicio Web pue<strong>de</strong> ser<br />
vista <strong>en</strong> dos pres<strong>en</strong>taciones: texto p<strong>la</strong>no (docum<strong>en</strong>to XML) o con formato. La primera<br />
se muestra <strong>en</strong> <strong>la</strong> Fig. 9, sin embargo, pue<strong>de</strong> no ser sufici<strong>en</strong>tem<strong>en</strong>te legible para el<br />
usuario. Sin embargo el portal ofrece <strong>la</strong> capacidad <strong>de</strong> dar formato a <strong>la</strong> respuesta <strong>de</strong> tal<br />
forma que resulte más c<strong>la</strong>ro.<br />
En <strong>la</strong> Fig. 10 se pue<strong>de</strong> ver <strong>la</strong> respuesta <strong>de</strong>l servicio Web con un formato <strong>en</strong> tab<strong>la</strong>s.<br />
Para conseguir esta pres<strong>en</strong>tación, se tuvo que analizar primeram<strong>en</strong>te <strong>la</strong> respuesta <strong>en</strong><br />
XML y g<strong>en</strong>erar dinámicam<strong>en</strong>te un docum<strong>en</strong>to escrito <strong>en</strong> el eXt<strong>en</strong>sible Stylesheet<br />
Language (XSL) a partir <strong>de</strong>l cual se le da un formato <strong>en</strong> tab<strong>la</strong>s.<br />
Un docum<strong>en</strong>to XSL es una hoja <strong>de</strong> estilos escrita <strong>en</strong> XML para dar un formato a un<br />
docum<strong>en</strong>to XML. Este formato pue<strong>de</strong> ser texto p<strong>la</strong>no, html, pdf, <strong>en</strong>tre otros.<br />
Se ha podido <strong>en</strong>tonces constatar que el portal es <strong>de</strong> gran ayuda para <strong>la</strong> búsqueda,<br />
localización e invocación <strong>de</strong> los servicios Web publicados <strong>en</strong> nodos UDDI. A<strong>de</strong>más,<br />
el portal ofrece <strong>la</strong> g<strong>en</strong>eración dinámica <strong>de</strong> GUIs para po<strong>de</strong>r llevar a cabo <strong>la</strong><br />
invocación <strong>de</strong> un servicio Web. Finalm<strong>en</strong>te, el portal muestra <strong>la</strong> respuesta <strong>de</strong> un<br />
servicio Web <strong>de</strong> una forma c<strong>la</strong>ra mediante el uso <strong>de</strong> hojas <strong>de</strong> estilo <strong>de</strong> XSL.
SOAP <strong>en</strong>velope<br />
Hea<strong>de</strong>r<br />
<br />
Body<br />
<br />
<br />
<br />
<br />
28<br />
<br />
<br />
3<br />
<br />
<br />
Fig. 8. Estructura <strong>de</strong> un m<strong>en</strong>saje SOAP<br />
Fig. 9. Respuesta <strong>de</strong>l servidor Web al que se le hizo <strong>la</strong> petición sin formato
Fig. 10. Respuesta <strong>de</strong>l servidor Web al que se le hizo <strong>la</strong> petición con formato.<br />
5 Trabajos re<strong>la</strong>cionados<br />
En el mercado exist<strong>en</strong> diversos programas que permit<strong>en</strong> analizar docum<strong>en</strong>tos WSDL<br />
y <strong>la</strong> correspondi<strong>en</strong>te ejecución <strong>de</strong> los servicios disponibles. Uno <strong>de</strong> los más conocidos<br />
es StrikeIron [14] el cual es una herrami<strong>en</strong>ta muy útil y fácil <strong>de</strong> usar <strong>de</strong>bido a que<br />
pres<strong>en</strong>ta los servicios <strong>en</strong> estructura <strong>de</strong> árbol. StrikeIron ha sido <strong>de</strong>sarrol<strong>la</strong>do para<br />
<strong>en</strong>contrar e invocar cualquier tipo <strong>de</strong> servicios Web a partir <strong>de</strong>l WSDL. Permite el<br />
manejo <strong>de</strong> tipos <strong>de</strong> datos simples y complejos. Sin embargo, requiere <strong>de</strong> una lic<strong>en</strong>cia<br />
para su uso y el usuario <strong>de</strong>be conocer con exactitud <strong>la</strong> ubicación <strong>de</strong>l docum<strong>en</strong>to<br />
WSDL. Esto pue<strong>de</strong> resultar inconv<strong>en</strong>i<strong>en</strong>te si no se conoce dicha dirección y lo único<br />
que se sabe es el nombre <strong>de</strong>l negocio o servicio.<br />
Otro sistema que también realiza un análisis <strong>de</strong>l docum<strong>en</strong>to WSDL es el Mindreef<br />
SOAPscope [15] el cual se <strong>en</strong>cu<strong>en</strong>tra parcialm<strong>en</strong>te disponible para su ejecución <strong>en</strong><br />
Internet. Ha sido <strong>de</strong>sarrol<strong>la</strong>da por Mindreef y XMethods para analizar e invocar los<br />
servicios Web <strong>de</strong> XMethods con SOAPscope a partir <strong>de</strong>l docum<strong>en</strong>to WSDL. Aunque<br />
<strong>la</strong> versión públicam<strong>en</strong>te disponible <strong>en</strong> Internet so<strong>la</strong>m<strong>en</strong>te ejecuta servicios que se<br />
<strong>en</strong>cu<strong>en</strong>tran <strong>en</strong> XMethods [16] el cual es un repositorio <strong>de</strong> UDDI. Si se <strong>de</strong>sea ejecutar<br />
otros servicios se <strong>de</strong>be obt<strong>en</strong>er también una lic<strong>en</strong>cia.<br />
En el pres<strong>en</strong>te trabajo se ha propuesto un sistema que realiza <strong>en</strong> es<strong>en</strong>cia <strong>la</strong>s mismas<br />
activida<strong>de</strong>s que StrikeIron y Mindreef SOAPscope; es <strong>de</strong>cir, permite <strong>la</strong> invocación <strong>de</strong><br />
cualquier tipo <strong>de</strong> servicio Web. Sin embargo, a difer<strong>en</strong>cia <strong>de</strong> estos dos programas, el<br />
portal ofrece <strong>la</strong> posibilidad al usuario <strong>de</strong> hacer búsquedas por nombre <strong>de</strong> negocio o<br />
servicio <strong>en</strong> difer<strong>en</strong>tes nodos UDDI evitando que el usuario necesite conocer <strong>la</strong><br />
ubicación <strong>de</strong>l archivo WSDL como <strong>en</strong> el caso <strong>de</strong> los programas antes m<strong>en</strong>cionados.<br />
Aunque si el usuario conoce <strong>la</strong> ubicación <strong>de</strong>l docum<strong>en</strong>to WSDL también pue<strong>de</strong><br />
ingresarlo y hacer <strong>la</strong> invocación directam<strong>en</strong>te.<br />
Por otro <strong>la</strong>do, es necesario precisar que el portal aún ti<strong>en</strong>e que cubrir un aspecto<br />
que tanto StrikeIron como Mindreef SOAPscope sí cubr<strong>en</strong>, el cual es el manejo <strong>de</strong><br />
tipos complejos d<strong>en</strong>tro <strong>de</strong> otros tipos complejos. En <strong>la</strong> versión actual <strong>de</strong>l portal, sólo<br />
se trabajan con tipos primitivos y tipos complejos <strong>de</strong> un solo nivel.
6 Conclusiones<br />
En el pres<strong>en</strong>te trabajo se ha logrado <strong>la</strong> construcción <strong>de</strong> una interfaz <strong>de</strong> usuario a través<br />
<strong>de</strong> <strong>la</strong> cual se pued<strong>en</strong> hacer consultas a un conjunto <strong>de</strong> nodos UDDI pre<strong>de</strong>terminados<br />
para obt<strong>en</strong>er una lista <strong>de</strong> servicios Web que coincidan con ciertos criterios <strong>de</strong><br />
búsqueda, específicam<strong>en</strong>te pa<strong>la</strong>bras c<strong>la</strong>ve <strong>de</strong>l nombre <strong>de</strong>l negocio o <strong>de</strong>l servicio. Se<br />
pue<strong>de</strong> <strong>en</strong>tonces obt<strong>en</strong>er información <strong>de</strong>tal<strong>la</strong>da <strong>de</strong>l negocio incluy<strong>en</strong>do <strong>la</strong> <strong>de</strong>scripción<br />
<strong>de</strong>l negocio, su nombre, <strong>la</strong> ubicación <strong>de</strong>l docum<strong>en</strong>to WSDL, <strong>en</strong>tre otras.<br />
El uso <strong>de</strong> un conjunto <strong>de</strong> tecnologías re<strong>la</strong>cionadas con los servicios Web (UDDI y<br />
SOAP), así como <strong>de</strong> herrami<strong>en</strong>tas que permit<strong>en</strong> su explotación (WSIF, UDDI4J, o<br />
WSDL4J) ha permitido <strong>la</strong> construcción <strong>de</strong> dicha interfaz mediante <strong>la</strong> cual se pued<strong>en</strong><br />
hacer consultas básicas a nodos UDDI sobre los servicios Web que ahí resid<strong>en</strong>. Aún<br />
más, se han podido hacer invocaciones <strong>de</strong> estos servicios dados los parámetros<br />
introducidos por el usuario. En síntesis se pue<strong>de</strong> <strong>de</strong>cir que el usuario dispone <strong>de</strong> una<br />
herrami<strong>en</strong>ta ori<strong>en</strong>tada a <strong>la</strong> Web que, dado un nombre <strong>de</strong> negocio o servicio, pue<strong>de</strong><br />
hacer peticiones al servicio Web correspondi<strong>en</strong>te sin disponer <strong>de</strong> mayor información<br />
que <strong>la</strong> que quiere consultar <strong>en</strong> dicho servicio Web.<br />
Sin embargo, a pesar <strong>de</strong> que se ha logrado construir un portal capaz <strong>de</strong> analizar e<br />
invocar dinámicam<strong>en</strong>te una gran cantidad <strong>de</strong> servicios Web, aún queda trabajo por<br />
realizar. En primer lugar, <strong>la</strong> invocación <strong>de</strong> los servicios Web podría ser mejorada al<br />
p<strong>la</strong>ntear una forma efici<strong>en</strong>te <strong>de</strong> <strong>en</strong>viar peticiones <strong>de</strong> datos híbridos, es <strong>de</strong>cir,<br />
complejos y primitivos a <strong>la</strong> vez y <strong>de</strong> tipo complejo pero anidados. Esto permitiría<br />
hacer más g<strong>en</strong>eral <strong>la</strong> aplicación. Por otra parte, también se podrían hacer búsquedas<br />
más complejas sirviéndose <strong>de</strong>l UDDI Search Markup Language (USML), lo que<br />
permitiría por ejemplo, hacer consultas no sólo <strong>en</strong> un nodo UDDI a <strong>la</strong> vez sino <strong>en</strong><br />
varios. Lo anterior serviría para obt<strong>en</strong>er resultados más precisos acerca <strong>de</strong> lo que se<br />
está buscando.<br />
Refer<strong>en</strong>cias<br />
1. F. Yergeau et al., Ext<strong>en</strong>sible Markup Language (XML) 1.1, W3C Recomm<strong>en</strong>dation,<br />
World Wi<strong>de</strong> Web Consortium , February 2004, http://www.w3.org/XML/<br />
2. T. Bellwood et al., Universal Description, Discovery and Integration (UDDI) 3.0,<br />
Published Specification, Organization for the Advancem<strong>en</strong>t of Structured Information<br />
Systems (OASIS), July 2002, http://www.uddi.org/specification.html.<br />
3. D. Box et al., Simple Object Access Protocol (SOAP) 1.1, W3C Note 08, World Wi<strong>de</strong><br />
Web Consortium, May 2000, http://www.w3.org/TR/SOAP/<br />
4. IBM UDDI Business Test Registry, https://uddi.ibm.com/testregistry/registry.html.<br />
5. Microsoft UDDI Business Registry No<strong>de</strong>, http://uddi.microsoft.com/<strong>de</strong>fault.aspx.<br />
6. SAP Repository, http://www.sap.com.<br />
7. North American Industry C<strong>la</strong>ssification System (NAICS), http://www.naics.com/.<br />
8. United Nations Standard Products and Services Co<strong>de</strong> (UNSPSC), http://www.unspsc.org/.<br />
9. Universal Discovery, Description and Integration for Java (UDDI4J),<br />
10. http://www-124.ibm.com/<strong>de</strong>veloperworks/oss/uddi4j/.<br />
11. G. Alor, C. Sandoval y O. Olmedo. “Descubrimi<strong>en</strong>to dinámico <strong>de</strong> servicios Web <strong>en</strong> nodos<br />
UDDI mediante USML.” Por publicar.
12. Web Services Description Language Specification (WSDL),<br />
http://www.w3.org/TR/wsdl12.<br />
13. Web Service Invocation Framework (WSIF), http://ws.apache.org/wsif/.<br />
14. Web Services Description Language for Java (WSDL4J),<br />
http://www-124.ibm.com/<strong>de</strong>veloperworks/projects/wsdl4j/.<br />
15. StrikeIron Inc., Web Services Business Objects, http://www.strikeiron.com/.<br />
16. Mindreef Web Service Diagnostics, Mindreef SOAPscope, http://www.mindreef.com.<br />
17. XMethods, http://www.xmethods.net.
VCMG: G<strong>en</strong>erador <strong>de</strong> mapas conceptuales vectoriales<br />
Yuri Vizcarra González, Alberto Pacheco González<br />
Departam<strong>en</strong>to <strong>de</strong> Estudios <strong>de</strong> Posgrado,<br />
Instituto Tecnológico <strong>de</strong> Chihuahua<br />
<strong>México</strong><br />
apacheco@itchihuahua.edu.mx,<br />
yavizcar@hotmail.com<br />
Resum<strong>en</strong>. Se <strong>de</strong>scribe una herrami<strong>en</strong>ta <strong>de</strong>sarrol<strong>la</strong>da <strong>en</strong> PHP para g<strong>en</strong>erar<br />
dinámicam<strong>en</strong>te imág<strong>en</strong>es vectoriales <strong>de</strong> mapas conceptuales hipermedia a partir<br />
<strong>de</strong> pres<strong>en</strong>taciones Web <strong>de</strong> ExpoVision.<br />
1 Introducción<br />
1.1 Pres<strong>en</strong>taciones Web<br />
La herrami<strong>en</strong>ta VCMG forma parte <strong>de</strong> una p<strong>la</strong>taforma para asistir a <strong>la</strong> g<strong>en</strong>eración <strong>de</strong><br />
pres<strong>en</strong>taciones ultraligeras por Internet (Web Browser based) d<strong>en</strong>ominada<br />
ExpoVision.<br />
1.2 Mapas conceptuales (MC)<br />
MC <strong>en</strong> una técnica <strong>de</strong>sarrol<strong>la</strong>da <strong>en</strong> el <strong>de</strong>partam<strong>en</strong>to <strong>de</strong> Educación <strong>de</strong> <strong>la</strong> Universidad<br />
<strong>de</strong> Cornell <strong>en</strong> los 70’s.<br />
Los MC constituy<strong>en</strong> una respuesta a <strong>la</strong> teoría <strong>de</strong>l apr<strong>en</strong>dizaje significativo como<br />
parte <strong>de</strong>l programa d<strong>en</strong>ominado “Apr<strong>en</strong><strong>de</strong>r a Apr<strong>en</strong><strong>de</strong>r”. Asimismo, el término<br />
“apr<strong>en</strong>dizaje significativo” <strong>de</strong> David Ausubel involucra asimi<strong>la</strong>r conceptos nuevos<br />
mediante su inclusión <strong>en</strong> estructuras cognitivas ya exist<strong>en</strong>tes.<br />
Se han convertido <strong>en</strong> un elem<strong>en</strong>to muy importante <strong>en</strong> los p<strong>la</strong>nes <strong>de</strong><br />
perfeccionami<strong>en</strong>to <strong>de</strong> los sistemas <strong>de</strong> <strong>en</strong>señanza y han ext<strong>en</strong>dido su uso a otras esferas<br />
<strong>de</strong> <strong>la</strong> actividad humana <strong>en</strong> <strong>la</strong>s que <strong>la</strong> gestión <strong>de</strong>l conocimi<strong>en</strong>to ocupa un lugar<br />
prepon<strong>de</strong>rante.<br />
Un ejemplo <strong>de</strong> ello, es su uso <strong>en</strong> educación a distancia o educación semipres<strong>en</strong>cial,<br />
don<strong>de</strong> es fundam<strong>en</strong>tal el estudio in<strong>de</strong>p<strong>en</strong>di<strong>en</strong>te y el autoapr<strong>en</strong>dizaje por<br />
parte <strong>de</strong> los estudiantes.<br />
Los MC repres<strong>en</strong>tan, simultáneam<strong>en</strong>te, una estrategia <strong>de</strong> apr<strong>en</strong>dizaje, un método<br />
para captar lo más significativo <strong>de</strong> un tema y un recurso esquemático para<br />
repres<strong>en</strong>tar un conjunto <strong>de</strong> significados conceptuales, incluidos <strong>en</strong> una estructura <strong>de</strong><br />
proposiciones.
1.3 SVG (Sca<strong>la</strong>ble Vector Graphics)<br />
SVG es una repres<strong>en</strong>tación basada <strong>en</strong> XML[3] <strong>de</strong> objetos geométricos vectoriales <strong>en</strong><br />
2D que pued<strong>en</strong> ser <strong>de</strong>splegados y manipu<strong>la</strong>dos mediante funciones propias SVG o<br />
scripts como Javascript/ECMAScript, PHP [2], etc. a<strong>de</strong>más <strong>de</strong> poseer <strong>la</strong>s<br />
características <strong>de</strong> ser efici<strong>en</strong>tes, versátiles, portables, ligeros e interactivos <strong>en</strong> <strong>la</strong> Web.<br />
Es consi<strong>de</strong>rado un estándar abierto [4]-[6] amparado por el Consorcio Web (W3C)<br />
[7] a<strong>de</strong>más <strong>de</strong> ser el resultado <strong>de</strong>l esfuerzo <strong>de</strong> compañías tales como: Adobe, HP,<br />
IBM, Microsoft, Netscape, SUN Microsystems y Microsoft Visio [15].<br />
Fue propuesta como estándar gráfico 2D para <strong>la</strong> Web <strong>en</strong> Septiembre <strong>de</strong> 2001 [4],<br />
sucediéndole <strong>la</strong> especificación versión 1.1 <strong>en</strong> Noviembre <strong>de</strong> 2002 [5]. Actualm<strong>en</strong>te se<br />
<strong>en</strong>cu<strong>en</strong>tra <strong>en</strong> <strong>de</strong>sarrollo el draft <strong>de</strong> <strong>la</strong> especificación 1.2 [6].<br />
SVG posee <strong>la</strong>s sigui<strong>en</strong>tes cualida<strong>de</strong>s:<br />
• Código fu<strong>en</strong>te compacto y portable.<br />
• Código fu<strong>en</strong>te editable <strong>en</strong> cualquier editor <strong>de</strong> texto (i.e. notepad).<br />
• Provee esca<strong>la</strong>mi<strong>en</strong>to <strong>de</strong> imag<strong>en</strong> con mucha mayor resolución que archivos GIF.<br />
• Permite ampliaciones-reducciones <strong>de</strong> imág<strong>en</strong>es (zooming) sin pérdida <strong>de</strong><br />
resolución.<br />
• Permite <strong>la</strong> g<strong>en</strong>eración <strong>de</strong> imág<strong>en</strong>es complejas mediante el uso <strong>de</strong><br />
transformaciones tales como esca<strong>la</strong>mi<strong>en</strong>tos y rotaciones.<br />
• Es capaz <strong>de</strong> crear y manejar elem<strong>en</strong>tos gráficos basados <strong>en</strong> líneas, curvas,<br />
imág<strong>en</strong>es y textos.<br />
• Permite agrupar, animar, filtrar, recortar (clipping), <strong>en</strong>mascarar (masking), y<br />
tras<strong>la</strong>dar elem<strong>en</strong>tos.<br />
• Pue<strong>de</strong> ser g<strong>en</strong>erado mediante servlets <strong>de</strong> Java, PHP y JSP.<br />
• Basado <strong>en</strong> texto estructurado con sintáxis XML, soporta hiper<strong>en</strong><strong>la</strong>ces <strong>de</strong> XLink<br />
[12], hojas <strong>de</strong> estilos CSS [13] y código embebido <strong>de</strong> JavaScript [1].<br />
• Soporta compactación GZIP, zooming y panning sin necesidad <strong>de</strong> recargar<br />
imág<strong>en</strong>es.<br />
• Más compacto, rápido <strong>de</strong> transferir y versátil para transformar y manipu<strong>la</strong>r<br />
objetos que usando imág<strong>en</strong>es <strong>de</strong> bitmaps.<br />
• Su in<strong>de</strong>p<strong>en</strong>d<strong>en</strong>cia <strong>de</strong>l dispositivo permite adaptar imag<strong>en</strong> a <strong>la</strong>s capacida<strong>de</strong>s <strong>de</strong>l<br />
mismo, tales como resolución, tamaño, colores, etc. <strong>en</strong> computadoras personales,<br />
dispositivos móviles e impresoras.<br />
• Hay diversidad <strong>de</strong> proveedores y supera ciertas <strong>de</strong>fici<strong>en</strong>cias <strong>de</strong> tecnologías<br />
previas como SGML [8], DrawML, HTML, VML y F<strong>la</strong>sh <strong>en</strong>tre otros.<br />
• Permite crear dinámicam<strong>en</strong>te imág<strong>en</strong>es y manipu<strong>la</strong>r<strong>la</strong>s vía JavaScript.<br />
• Gran versatilidad al interoperar con otros estándares W3C tales como CSS, DOM<br />
[17], SMIL y JavaScript.<br />
• Gratuito, solo es necesario Adobe SVG viewer [16].<br />
• Requiere conocimi<strong>en</strong>tos básicos <strong>de</strong> geometría y trigonometría.
2 Desarrollo<br />
2.1 Funcionami<strong>en</strong>to<br />
La herrami<strong>en</strong>ta VCMG g<strong>en</strong>era mapas conceptuales a partir <strong>de</strong> pres<strong>en</strong>taciones Web <strong>de</strong><br />
ExpoVision. Los pasos que se sigu<strong>en</strong> para <strong>la</strong> g<strong>en</strong>eración dinámica Server-based <strong>de</strong> los<br />
mapas conceptuales, como imág<strong>en</strong>es vectoriales SVG, son los sigui<strong>en</strong>tes:<br />
1. Cuando un usuario consulta una pres<strong>en</strong>tación Web d<strong>en</strong>tro <strong>de</strong>l servidor <strong>de</strong><br />
ExpoVision, aparece un hiper<strong>en</strong><strong>la</strong>ce d<strong>en</strong>tro <strong>de</strong> <strong>la</strong> tab<strong>la</strong> <strong>de</strong> cont<strong>en</strong>ido <strong>de</strong> <strong>la</strong> pres<strong>en</strong>tación<br />
que invoca a VCMG para g<strong>en</strong>erar un mapa conceptual. Por ejemplo, t<strong>en</strong>emos <strong>la</strong><br />
sigui<strong>en</strong>te línea:<br />
<br />
2. VCMG (Script <strong>de</strong> PHP) verifica <strong>la</strong> exist<strong>en</strong>cia <strong>de</strong> un archivo auxiliar (z-file), que<br />
conti<strong>en</strong>e un resum<strong>en</strong> <strong>de</strong> <strong>la</strong> pres<strong>en</strong>tación, g<strong>en</strong>erado <strong>en</strong> una consulta anterior, si no<br />
existe lo g<strong>en</strong>era (paso 3). Si existe, verifica si <strong>la</strong> fecha <strong>de</strong> <strong>la</strong> pres<strong>en</strong>tación es más<br />
reci<strong>en</strong>te que <strong>de</strong>l archivo z-file auxiliar, si está actualizado pasa al paso 4.<br />
3. G<strong>en</strong>era archivo auxiliar z-file. Se consulta el docum<strong>en</strong>to <strong>de</strong> <strong>la</strong> pres<strong>en</strong>tación y se<br />
extra<strong>en</strong> los elem<strong>en</strong>tos <strong>de</strong> texto necesarios para e<strong>la</strong>borar posteriorm<strong>en</strong>te un mapa<br />
conceptual. Para obt<strong>en</strong>er dichos elem<strong>en</strong>tos se proce<strong>de</strong> a: limpiar el docum<strong>en</strong>to <strong>de</strong> tags<br />
<strong>de</strong> HTML, espacios innecesarios, símbolos especiales y comandos <strong>de</strong>l intérprete <strong>de</strong>l<br />
g<strong>en</strong>erador <strong>de</strong> pres<strong>en</strong>taciones Web <strong>de</strong> ExpoVision; <strong>de</strong>rivar nombre corto <strong>de</strong> <strong>la</strong><br />
pres<strong>en</strong>tación (concepto c<strong>en</strong>tral); obt<strong>en</strong>er títulos cortos <strong>de</strong> cada lámina (conceptos<br />
subordinados); g<strong>en</strong>erar resum<strong>en</strong> <strong>de</strong> láminas por temas (concat<strong>en</strong>ar y compactar<br />
cont<strong>en</strong>idos <strong>de</strong> láminas bajo un mismo título, a<strong>de</strong>más <strong>de</strong> seña<strong>la</strong>r tab<strong>la</strong>s, listados y<br />
figuras); <strong>de</strong>rivar <strong>la</strong>s re<strong>la</strong>ciones <strong>en</strong>tre los conceptos. Cabe m<strong>en</strong>cionar que para realizar<br />
el análisis sintáctico anterior se utilizan int<strong>en</strong>sivam<strong>en</strong>te expresiones regu<strong>la</strong>res <strong>de</strong> PHP.<br />
Por último, se graba <strong>en</strong> el servidor el archivo <strong>de</strong> texto auxiliar z-file que resume <strong>la</strong><br />
pres<strong>en</strong>tación.<br />
4. G<strong>en</strong>eración dinámica <strong>de</strong> <strong>la</strong> imag<strong>en</strong> SVG: se usa una p<strong>la</strong>ntil<strong>la</strong> SVG como esqueleto<br />
<strong>de</strong> un mapa conceptual, dicha p<strong>la</strong>ntil<strong>la</strong> está embebida <strong>en</strong> un script <strong>de</strong> PHP. Se<br />
consulta el archivo auxiliar z-file, se analiza y construye un arreglo asociativo para<br />
repres<strong>en</strong>tar los nodos y <strong>en</strong><strong>la</strong>ces <strong>de</strong>l mapa conceptual. Conforme se procesa el archivo<br />
z-file se registra e in<strong>de</strong>xa cada elem<strong>en</strong>to <strong>de</strong> texto, e.g. coord<strong>en</strong>adas para cada<br />
elem<strong>en</strong>to gráfico, texto para cada nodo, re<strong>la</strong>ción, hiper<strong>en</strong><strong>la</strong>ces y cuadros pop-up <strong>de</strong><br />
texto. De acuerdo con el número <strong>de</strong> nodos resultante se proce<strong>de</strong> a ubicar <strong>la</strong><br />
información <strong>en</strong> los elem<strong>en</strong>tos gráficos SVG correspondi<strong>en</strong>tes.<br />
Finalm<strong>en</strong>te, aparece una nueva v<strong>en</strong>tana <strong>en</strong> el navegador Web <strong>de</strong>l usuario con una<br />
imag<strong>en</strong> que visualiza el mapa conceptual correspondi<strong>en</strong>te para <strong>la</strong> pres<strong>en</strong>tación Web<br />
consultada.<br />
5. El usuario pue<strong>de</strong> interactuar con <strong>la</strong> imag<strong>en</strong> SVG <strong>de</strong>l MC <strong>de</strong> distintas formas: al<br />
ubicar el cursor <strong>de</strong>l ratón sobre un nodo, aparece un cuadro pop-up semi-opaco con un
esum<strong>en</strong> <strong>de</strong> <strong>la</strong>s láminas asociadas a dicho concepto. Si el usuario se <strong>de</strong>sp<strong>la</strong>za a otro<br />
lugar (fuera <strong>de</strong>l nodo actual), el cuadro <strong>de</strong> texto <strong>de</strong>saparece gradualm<strong>en</strong>te. En cambio,<br />
si el usuario da click sobre el nodo, <strong>la</strong> v<strong>en</strong>tana <strong>de</strong>l navegador que conti<strong>en</strong>e <strong>la</strong><br />
pres<strong>en</strong>tación Web <strong>de</strong>spliega <strong>la</strong> lámina correspondi<strong>en</strong>te para dicho concepto-nodo. Por<br />
otra parte, si selecciona un <strong>en</strong><strong>la</strong>ce nodo-a-nodo aparece un texto para <strong>de</strong>scribir <strong>la</strong><br />
re<strong>la</strong>ción que existe <strong>en</strong>tre un concepto y otro. Opcionalm<strong>en</strong>te, el usuario pue<strong>de</strong><br />
ampliar/reducir <strong>la</strong> imag<strong>en</strong>, grabar<strong>la</strong> o imprimir<strong>la</strong>.<br />
2.2 Compon<strong>en</strong>tes <strong>de</strong> <strong>la</strong> aplicación<br />
A continuación se <strong>de</strong>scribe <strong>de</strong> manera visual cada uno <strong>de</strong> los principales compon<strong>en</strong>tes<br />
<strong>de</strong>l gráfico SVG para un caso específico <strong>de</strong> un mapa conceptual que consta <strong>de</strong> cuatro<br />
nodos únicam<strong>en</strong>te. Cada uno <strong>de</strong> sus elem<strong>en</strong>tos será explicado brevem<strong>en</strong>te <strong>de</strong> manera<br />
alfabética.<br />
Fig. 1. Mapa Conceptual <strong>de</strong> Salida <strong>en</strong> Navegador Web<br />
2.2.1 Gráfico vectorial (SVG) <strong>de</strong> salida<br />
La figura 1 muestra <strong>la</strong> imag<strong>en</strong> completa g<strong>en</strong>erada tal y como aparece <strong>en</strong> el navegador<br />
Web <strong>de</strong>l cli<strong>en</strong>te.<br />
2.2.2 Tema principal<br />
Ubicado <strong>en</strong> el c<strong>en</strong>tro <strong>de</strong>l gráfico, <strong>la</strong> figura 2 muestra <strong>la</strong> porción grafica don<strong>de</strong> aparece<br />
el nodo c<strong>en</strong>tral (1) y arriba <strong>de</strong>l nodo (2) se muestra el cuadro pop-up con <strong>la</strong>
información sobre el tema y los autores mostrada a partir <strong>de</strong> un ev<strong>en</strong>to “mouseover”<br />
(pose <strong>de</strong>l cursor sobre el tema c<strong>en</strong>tral).<br />
Implem<strong>en</strong>tado mediante <strong>la</strong> etiqueta:<br />
dicho texto se <strong>de</strong>svanecerá durante el tiempo que esté visible el recuadro <strong>de</strong><br />
información adicional <strong>en</strong> pantal<strong>la</strong>, esto con el fin <strong>de</strong> proveer mayor legibilidad.<br />
Implem<strong>en</strong>tado mediante:<br />
” dur=”1s”<br />
fill=”freeze” />.<br />
Fig. 3. Conceptos <strong>de</strong>l tema e información adicional <strong>de</strong>l concepto<br />
Fig. 4. Ocultami<strong>en</strong>to <strong>de</strong> pa<strong>la</strong>bras <strong>en</strong><strong>la</strong>ce<br />
2.2.5 Re<strong>la</strong>ciones nodo-a-nodo<br />
Define brevem<strong>en</strong>te <strong>la</strong> re<strong>la</strong>ción <strong>de</strong>l concepto con respecto al tema principal mediante <strong>la</strong><br />
dirección <strong>de</strong> su flecha.<br />
Es posible conocer <strong>la</strong> re<strong>la</strong>ción mediante <strong>la</strong> id<strong>en</strong>tificación <strong>de</strong> pa<strong>la</strong>bras reservadas <strong>en</strong><br />
el texto <strong>de</strong> <strong>en</strong>trada mediante análisis sintáctico implem<strong>en</strong>tado mediante expresiones<br />
regu<strong>la</strong>res <strong>en</strong> PHP como se muestra:
If ( preg_match("/^%pg (\S+) (\S+)<br />
([^:]+):(.+)$/S",$x,$t)) {<br />
$t[2]=="to"?"#ArrowLeft":"#ArrowRight";<br />
A<strong>de</strong>más posee una manera muy particu<strong>la</strong>r <strong>de</strong> difer<strong>en</strong>ciar su re<strong>la</strong>ción mediante<br />
difer<strong>en</strong>ciación por color como se muestra <strong>en</strong> <strong>la</strong> figura 5, implem<strong>en</strong>tada mediante uso<br />
<strong>de</strong> hojas <strong>de</strong> estilo CSS.<br />
<br />
<br />
<br />
<br />
<br />
<br />
Fig. 5. Difer<strong>en</strong>ciación <strong>de</strong> color <strong>en</strong> <strong>en</strong><strong>la</strong>ces<br />
2.2.6 Pa<strong>la</strong>bras <strong>en</strong><strong>la</strong>ce<br />
Son <strong>la</strong>s pa<strong>la</strong>bras que sirv<strong>en</strong> para unir los conceptos y seña<strong>la</strong>r el tipo <strong>de</strong> re<strong>la</strong>ción<br />
exist<strong>en</strong>te <strong>en</strong>tre ambos [13].<br />
Estas pa<strong>la</strong>bras son obt<strong>en</strong>idas mediante análisis sintáctico <strong>de</strong>l texto <strong>de</strong> <strong>en</strong>trada.<br />
Implem<strong>en</strong>tado mediante:<br />
if( preg_match("/^%pg (\S+) (\S+)<br />
([^:]+):(.+)$/S",$x,$t)) {<br />
$ID[$nId."Short"] = $t[3];<br />
Las pa<strong>la</strong>bras son implem<strong>en</strong>tadas <strong>en</strong> el mapa conceptual mediante breves<br />
<strong>de</strong>scripciones <strong>de</strong> texto alineadas sobre el “<strong>en</strong><strong>la</strong>ce nodo-a-nodo”, si<strong>en</strong>do estos<br />
perman<strong>en</strong>tem<strong>en</strong>te mostrados.
2.2.7 Información adicional <strong>de</strong> <strong>la</strong> pa<strong>la</strong>bra <strong>en</strong><strong>la</strong>ce<br />
Son obt<strong>en</strong>idos también mediante análisis sintáctico e implem<strong>en</strong>tadas <strong>en</strong> el mapa<br />
conceptual mediante <strong>de</strong>scripciones mas <strong>de</strong>tal<strong>la</strong>s <strong>de</strong> <strong>la</strong> pa<strong>la</strong>bra <strong>en</strong><strong>la</strong>ce.<br />
Implem<strong>en</strong>tado mediante:<br />
if( preg_match("/^%pg (\S+) (\S+)<br />
([^:]+):(.+)$/S",$x,$t)) $ID[$nId."Long"] = $t[4];<br />
Son mostrados únicam<strong>en</strong>te si el usuario realiza un ev<strong>en</strong>to <strong>de</strong> ratón “Mouse down”<br />
sobre el “hyperArrow” y <strong>de</strong>svanecidos cuando el botón <strong>de</strong>l mouse es soltado<br />
(mouseup) como se indica a continuación <strong>en</strong> el sigui<strong>en</strong>te código SVG.<br />
<br />
<br />
<br />
<br />
http://www.php.net<br />
3. XML: Homepage Oficial <strong>de</strong> XML. (2003)<br />
http://www.w3.org/XML<br />
4. W3C Recomm<strong>en</strong>dation : SVG 1.0 Specification. (Sep. 2001)<br />
http://www.w3.org/TR/SVG<br />
5. W3C Recomm<strong>en</strong>dation : SVG 1.1 Specification . (Jan.2003)<br />
http://www.w3.org/TR/SVG11<br />
6. W3C Working Draft : SVG 1.2 Specification. (Apr. 2003)<br />
http://www.w3.org/TR/SVG12<br />
7. W3C : Sitio Oficial <strong>de</strong> World Wi<strong>de</strong> Web Consortium. (2003)<br />
http://www.w3.org<br />
8. W3C : Overview of SGML Resources. (2003)<br />
http://www.w3.org/MarkUp/SGML/<br />
9. Pontificia Universidad Javeriana : Mapas conceptuales <strong>de</strong> Notoria (1997)<br />
http://v<strong>en</strong>us.javeriana.edu.co/qualitas/mayo97.htm<br />
10. Febles J., EstradaV.: Aplicaciones <strong>de</strong> <strong>la</strong> Intelig<strong>en</strong>cia Artificial. Primera Edición, Parte III,<br />
Mapas Conceptuales. Pág. 400. Ed. Univ. <strong>de</strong> Guada<strong>la</strong>jara, <strong>México</strong> (2002)<br />
11. Cuevas A.: Propuesta <strong>de</strong> Aplicación <strong>de</strong> los Mapas Conceptuales <strong>en</strong> un mo<strong>de</strong>lo Pedagógico<br />
Semipres<strong>en</strong>cial. Instituto Superior Politécnico “José Antonio Echeverría” Cuba.<br />
12. W3C : “XML Linking Language (XLink). (2003)<br />
http://www.w3.org/XML/Linking<br />
13. W3C : CSS Level 2 Specification (CSS2). ( May 1998)<br />
http://www.w3.org/TR/REC-CSS2.<br />
14. Pacheco A. : Servidor <strong>de</strong> ExpoVision (2004)<br />
http://pantera.itch.edu.mx/apacheco/expo<br />
15. Campesato O. : Fundam<strong>en</strong>tals of SVG Programming: Concepts to Source Co<strong>de</strong>. Ch.R.<br />
Media, (2004)<br />
16. Adobe : SVG Viewer. (2001)<br />
http://www.adobe.com.<br />
17. Le Hors A. et al.(2000) “Docum<strong>en</strong>t Object Mo<strong>de</strong>l (DOM) Level 2 Core Specification,”<br />
(2000).<br />
http://www.w3.org/TR/DOM-Level-2-Core
Un sistema <strong>de</strong> extracción <strong>de</strong> información<br />
sobre <strong>de</strong>sastres naturales<br />
Alberto Téllez Valero 1 , Manuel Montes-y-Gómez 1,2 , Luis Vil<strong>la</strong>señor Pineda 1<br />
1 Laboratorio <strong>de</strong> Tecnologías <strong>de</strong>l L<strong>en</strong>guaje<br />
Instituto Nacional <strong>de</strong> Astrofísica, Óptica y Electrónica, <strong>México</strong><br />
2 Departam<strong>en</strong>to <strong>de</strong> Sistemas Informáticos y Computación<br />
Universidad Politécnica <strong>de</strong> Val<strong>en</strong>cia, España<br />
{albertotellezv, mmontesg, vil<strong>la</strong>s<strong>en</strong>}@inaoep.mx<br />
Resum<strong>en</strong>. Hoy día el acceso a vastas cantida<strong>de</strong>s <strong>de</strong> información dificulta su<br />
exploración y análisis <strong>de</strong> forma manual. Una manera <strong>de</strong> confrontar el problema<br />
es con extracción <strong>de</strong> información, don<strong>de</strong> <strong>la</strong> tarea es filtrar y estructurar <strong>de</strong><br />
manera automática textos <strong>en</strong> l<strong>en</strong>guaje natural. En este trabajo se <strong>de</strong>scribe el<br />
sistema Topo, un sistema <strong>de</strong> extracción <strong>de</strong> información que toma como dominio<br />
<strong>de</strong> estudio noticias que reportan <strong>de</strong>sastres naturales <strong>en</strong> español. Se pres<strong>en</strong>ta <strong>la</strong><br />
arquitectura <strong>de</strong>l sistema y los resultados alcanzados actualm<strong>en</strong>te tanto <strong>en</strong> el<br />
filtrado <strong>de</strong> textos relevantes al dominio, así como <strong>en</strong> <strong>la</strong> id<strong>en</strong>tificación y<br />
extracción <strong>de</strong> <strong>en</strong>tida<strong>de</strong>s <strong>de</strong> información. A<strong>de</strong>más, se muestran <strong>la</strong>s conclusiones<br />
y el trabajo <strong>en</strong> proceso.<br />
1 Introducción<br />
El crecimi<strong>en</strong>to explosivo <strong>de</strong> docum<strong>en</strong>tos <strong>en</strong> l<strong>en</strong>guaje natural disponibles <strong>en</strong><br />
computadoras conectadas a <strong>la</strong> red alre<strong>de</strong>dor <strong>de</strong>l mundo dificulta su exploración y<br />
análisis. Por tal motivo, se hace necesario po<strong>de</strong>r filtrar y estructurar información<br />
relevante al dominio <strong>de</strong> interés para contestar a muchas preguntas acerca <strong>de</strong>l mismo.<br />
Una forma <strong>de</strong> lograr esto último <strong>de</strong> manera automática es con extracción <strong>de</strong><br />
información (EI). La extracción <strong>de</strong> información es <strong>la</strong> tarea <strong>de</strong> localizar piezas<br />
específicas <strong>de</strong> datos <strong>de</strong>s<strong>de</strong> docum<strong>en</strong>tos <strong>en</strong> l<strong>en</strong>guaje natural [1], <strong>la</strong> información<br />
extraída es <strong>en</strong>tonces almac<strong>en</strong>ada <strong>en</strong> una base <strong>de</strong> datos que pue<strong>de</strong> ser examinada<br />
usando l<strong>en</strong>guajes <strong>de</strong> consultas estándar para facilitar su análisis.<br />
En este artículo pres<strong>en</strong>tamos un sistema que realiza <strong>la</strong> tarea <strong>de</strong> extracción <strong>de</strong><br />
información para el dominio <strong>de</strong> noticias que tratan sobre <strong>de</strong>sastres naturales. El<br />
objetivo principal <strong>de</strong> nuestro sistema, al que hemos d<strong>en</strong>ominado Topo, es mostrar el<br />
uso <strong>de</strong> técnicas <strong>de</strong> c<strong>la</strong>sificación automática <strong>de</strong> textos <strong>en</strong> <strong>la</strong> tarea <strong>de</strong> extracción <strong>de</strong><br />
información. A<strong>de</strong>más, se pret<strong>en</strong><strong>de</strong> mostrar que para <strong>la</strong> extracción <strong>de</strong> ciertas <strong>en</strong>tida<strong>de</strong>s<br />
<strong>de</strong> información es sufici<strong>en</strong>te con emplear un análisis a nivel <strong>de</strong> pa<strong>la</strong>bras, sin t<strong>en</strong>er que<br />
lidiar con el hasta hoy incompleto análisis lingüístico, especialm<strong>en</strong>te para el idioma<br />
español. Esto último implica el po<strong>de</strong>r extraer información sin tratar <strong>de</strong> compr<strong>en</strong><strong>de</strong>r el<br />
cont<strong>en</strong>ido <strong>de</strong>l texto, que es una postura contraria a lo que g<strong>en</strong>eralm<strong>en</strong>te se pi<strong>en</strong>sa.
El resto <strong>de</strong>l docum<strong>en</strong>to se <strong>en</strong>cu<strong>en</strong>tra organizado <strong>de</strong> <strong>la</strong> sigui<strong>en</strong>te manera. En <strong>la</strong><br />
sección 2 <strong>de</strong>scribimos brevem<strong>en</strong>te el trabajo re<strong>la</strong>cionado. En <strong>la</strong> sección 3 se pres<strong>en</strong>ta<br />
el dominio <strong>de</strong> trabajo y <strong>la</strong> p<strong>la</strong>ntil<strong>la</strong> <strong>de</strong> extracción a ll<strong>en</strong>ar. La sección 4 exhibe <strong>la</strong><br />
arquitectura <strong>de</strong>l sistema. Los resultados preliminares se muestran <strong>en</strong> <strong>la</strong> sección 5.<br />
Finalm<strong>en</strong>te, <strong>en</strong> <strong>la</strong> sección 6 se pres<strong>en</strong>tan <strong>la</strong>s conclusiones y se <strong>de</strong>scribe el trabajo <strong>en</strong><br />
proceso.<br />
2 Trabajo Re<strong>la</strong>cionado<br />
Un auge importante <strong>en</strong> el <strong>de</strong>sarrollo <strong>de</strong> sistemas <strong>de</strong> extracción <strong>de</strong> información se dio<br />
gracias a <strong>la</strong> interv<strong>en</strong>ción <strong>de</strong> <strong>la</strong> Ag<strong>en</strong>cia <strong>de</strong> Def<strong>en</strong>sa <strong>de</strong> los Estados Unidos (DARPA,<br />
por sus sig<strong>la</strong>s), qui<strong>en</strong> fom<strong>en</strong>tó <strong>la</strong>s Confer<strong>en</strong>cias <strong>de</strong> Ent<strong>en</strong>dimi<strong>en</strong>to <strong>de</strong> M<strong>en</strong>sajes (MUC,<br />
por sus sig<strong>la</strong>s <strong>en</strong> inglés), <strong>la</strong>s cuales proporcionaron más <strong>de</strong> una década <strong>de</strong> experi<strong>en</strong>cia<br />
<strong>en</strong> <strong>la</strong> <strong>de</strong>finición, diseño y evaluación <strong>de</strong> este tipo <strong>de</strong> sistemas [2]. Entre otras cosas,<br />
los resultados <strong>de</strong>l MUC <strong>de</strong>mostraron que <strong>la</strong> extracción <strong>de</strong> información es una tarea<br />
difícil hasta para <strong>la</strong>s personas, don<strong>de</strong> se reportó que los humanos po<strong>de</strong>mos alcanzar<br />
un grado <strong>de</strong> exactitud <strong>en</strong>tre el 60 y 80% <strong>en</strong> esta <strong>la</strong>bor [1].<br />
G<strong>en</strong>eralm<strong>en</strong>te, <strong>la</strong> mayoría <strong>de</strong> sistemas <strong>de</strong> extracción <strong>de</strong> información se basan <strong>en</strong><br />
arquitecturas como <strong>la</strong> propuesta por Grishman [3]. En esta arquitectura se ti<strong>en</strong>e una<br />
estructura modu<strong>la</strong>r, don<strong>de</strong> <strong>la</strong> salida <strong>de</strong> un módulo sirve como <strong>en</strong>trada <strong>de</strong>l módulo<br />
sigui<strong>en</strong>te. Una característica importante <strong>de</strong> <strong>la</strong> misma es el amplio uso <strong>de</strong> recursos<br />
lingüísticos para <strong>la</strong>s tareas <strong>de</strong> análisis léxico, análisis sintáctico parcial y resolución <strong>de</strong><br />
correfer<strong>en</strong>cia. Esto se <strong>de</strong>be principalm<strong>en</strong>te a que se ti<strong>en</strong>e <strong>la</strong> hipótesis que para lograr<br />
extraer información <strong>de</strong> un texto se <strong>de</strong>be <strong>en</strong>t<strong>en</strong><strong>de</strong>r <strong>en</strong> el mayor grado posible el mismo.<br />
En contraste a <strong>la</strong> arquitectura <strong>de</strong> Grishman, Kushmerick et al [4] propon<strong>en</strong> una<br />
arquitectura novedosa, don<strong>de</strong> <strong>la</strong> hipótesis no es <strong>en</strong>t<strong>en</strong><strong>de</strong>r el texto, si no más bi<strong>en</strong><br />
<strong>en</strong>contrar <strong>la</strong>s combinaciones <strong>de</strong> pa<strong>la</strong>bras (expresiones) que se utilizan para reportar <strong>la</strong><br />
información que nos interesa extraer. La v<strong>en</strong>taja <strong>de</strong> esta arquitectura es que no se<br />
ti<strong>en</strong>e que lidiar con un profundo análisis lingüístico, <strong>en</strong> su lugar se utilizan técnicas <strong>de</strong><br />
c<strong>la</strong>sificación automática <strong>de</strong> textos para <strong>en</strong>contrar <strong>la</strong>s expresiones buscadas. Esta<br />
arquitectura fue pres<strong>en</strong>tada <strong>en</strong> el sistema l<strong>la</strong>mado “Cambio <strong>de</strong> Dirección” (CoA, por<br />
sus sig<strong>la</strong>s <strong>en</strong> inglés), el cual ti<strong>en</strong>e como objetivo filtrar correos electrónicos que<br />
reportan un cambio <strong>de</strong> dirección <strong>de</strong> e-mail por parte <strong>de</strong>l remit<strong>en</strong>te, y posteriorm<strong>en</strong>te<br />
actualizar <strong>la</strong> ag<strong>en</strong>da <strong>de</strong>l <strong>de</strong>stinatario con <strong>la</strong> información incluida <strong>en</strong> los mismos. Sin<br />
embargo, extraer direcciones <strong>de</strong> e-mail no refleja completam<strong>en</strong>te los alcances <strong>de</strong> <strong>la</strong><br />
arquitectura, por tal motivo nosotros pret<strong>en</strong><strong>de</strong>mos llevar a una tarea más compleja<br />
este trabajo, con el propósito <strong>de</strong> tratar <strong>de</strong> <strong>de</strong>terminar sus límites.<br />
Con respecto a extraer información <strong>de</strong> noticias que reportan <strong>de</strong>sastres naturales,<br />
actualm<strong>en</strong>te no t<strong>en</strong>emos anteced<strong>en</strong>tes <strong>de</strong> <strong>la</strong> exist<strong>en</strong>cia <strong>de</strong> sistemas <strong>de</strong> extracción <strong>de</strong><br />
información <strong>en</strong>focados al dominio, sólo sabemos que existe una asociación que<br />
realiza esta tarea <strong>de</strong> forma manual (consultar refer<strong>en</strong>cia [5]).
3 Dominio<br />
La información a ser extraída se <strong>de</strong>fine por medio <strong>de</strong> <strong>la</strong> p<strong>la</strong>ntil<strong>la</strong> <strong>de</strong> extracción, <strong>la</strong> cual<br />
se forma por una serie <strong>de</strong> atributos que <strong>la</strong> caracteriza. Los atributos pued<strong>en</strong> ser<br />
opcionales u obligatorios ya que <strong>la</strong> información pue<strong>de</strong> o no estar pres<strong>en</strong>te <strong>en</strong> los<br />
docum<strong>en</strong>tos. Su construcción se realiza <strong>de</strong> antemano y <strong>de</strong>p<strong>en</strong>d<strong>en</strong> <strong>de</strong>l dominio <strong>de</strong><br />
trabajo, también l<strong>la</strong>mado esc<strong>en</strong>ario, y <strong>de</strong> <strong>la</strong> información que se <strong>de</strong>sea obt<strong>en</strong>er.<br />
En nuestro caso, el esc<strong>en</strong>ario <strong>en</strong> el que se <strong>de</strong>cidió trabajar es el <strong>de</strong> noticias <strong>en</strong><br />
español que reportan <strong>de</strong>sastres naturales. La razón <strong>de</strong> su elección es que es un<br />
dominio rico <strong>en</strong> información para ser extraída. No obstante, <strong>la</strong> principal motivación<br />
para esta elección fue nuestra convicción respecto a que <strong>la</strong> disponibilidad <strong>de</strong> un<br />
inv<strong>en</strong>tario con dicha información, <strong>en</strong> combinación con un conjunto <strong>de</strong> herrami<strong>en</strong>tas<br />
para su a<strong>de</strong>cuado análisis, permitirá adquirir un mejor conocimi<strong>en</strong>to sobre los<br />
f<strong>en</strong>óm<strong>en</strong>os naturales <strong>de</strong>sastrosos, y con ello apr<strong>en</strong><strong>de</strong>r a prev<strong>en</strong>ir y minimizar sus<br />
efectos.<br />
Debido a que son muchos los tipos <strong>de</strong> <strong>de</strong>sastres naturales que se pres<strong>en</strong>tan,<br />
actualm<strong>en</strong>te sólo nos <strong>en</strong>focamos <strong>en</strong> seis <strong>de</strong> los más frecu<strong>en</strong>tes <strong>en</strong> <strong>México</strong> (ver tab<strong>la</strong><br />
1). Las <strong>de</strong>finiciones incluidas <strong>en</strong> <strong>la</strong> tab<strong>la</strong> 1 correspond<strong>en</strong> con <strong>la</strong>s establecidas <strong>en</strong> <strong>la</strong><br />
Guía Metodológica <strong>de</strong> DesInv<strong>en</strong>tar publicada <strong>en</strong> el 2003 [5], esta guía fue e<strong>la</strong>borada<br />
por <strong>la</strong> Red <strong>de</strong> Estudios Sociales <strong>en</strong> Prev<strong>en</strong>ción <strong>de</strong> Desastres <strong>en</strong> América Latina (LA<br />
RED). Entre otras cosas, DesInv<strong>en</strong>tar pres<strong>en</strong>ta una metodología <strong>de</strong> registro <strong>de</strong><br />
información sobre características y efectos <strong>de</strong> diversos tipos <strong>de</strong> ev<strong>en</strong>tos. Por tal<br />
motivo, los datos a extraer <strong>en</strong> el pres<strong>en</strong>te proyecto, también correspond<strong>en</strong> con los<br />
establecidos por LA RED <strong>en</strong> su Ficha <strong>de</strong> Información <strong>de</strong> Desastres. La p<strong>la</strong>ntil<strong>la</strong> <strong>de</strong><br />
extracción se muestra <strong>en</strong> <strong>la</strong> tab<strong>la</strong> 2.<br />
Tab<strong>la</strong> 1. Dominio <strong>de</strong> estudio<br />
Desastre<br />
Definición<br />
He<strong>la</strong>da Disminución <strong>de</strong> <strong>la</strong> temperatura hasta el punto <strong>de</strong> conge<strong>la</strong>ción con<br />
efectos nocivos <strong>en</strong> <strong>la</strong> pob<strong>la</strong>ción, cultivos, bi<strong>en</strong>es y servicios<br />
Huracán Anomalía atmosférica viol<strong>en</strong>ta que gira a modo <strong>de</strong> torbellino<br />
caracterizado por fuertes vi<strong>en</strong>tos, acompañados por lluvia<br />
Forestal Inc<strong>en</strong>dio. Incluye todos los inc<strong>en</strong>dios <strong>en</strong> campo abierto <strong>en</strong> áreas<br />
rurales, sobre bosques nativos, bosques cultivados y pra<strong>de</strong>ras<br />
Inundación Subida <strong>de</strong> aguas que supera <strong>la</strong> sección <strong>de</strong>l cauce <strong>de</strong> los ríos o que se<br />
re<strong>la</strong>ciona con el taponami<strong>en</strong>to <strong>de</strong> alcantaril<strong>la</strong>s<br />
Sequía Temporada anormalm<strong>en</strong>te seca, sin lluvias, o con déficit <strong>de</strong> lluvias.<br />
En g<strong>en</strong>eral se trata <strong>de</strong> períodos prolongados<br />
Sismo Todo movimi<strong>en</strong>to <strong>de</strong> <strong>la</strong> corteza terrestre que haya causado algún tipo<br />
<strong>de</strong> daño o efecto adverso sobre comunida<strong>de</strong>s o bi<strong>en</strong>es
Tab<strong>la</strong> 2. P<strong>la</strong>ntil<strong>la</strong> <strong>de</strong> extracción<br />
Re<strong>la</strong>cionados con el <strong>de</strong>sastre<br />
Fecha Fecha <strong>de</strong> ocurr<strong>en</strong>cia <strong>de</strong>l <strong>de</strong>sastre<br />
Lugar Nombre <strong>de</strong>l lugar o lugares don<strong>de</strong> ocurrió el f<strong>en</strong>óm<strong>en</strong>o<br />
Magnitud Valores <strong>de</strong> magnitud internacionalm<strong>en</strong>te usados para sismo y<br />
huracán, para otros tipos <strong>de</strong> ev<strong>en</strong>tos variables cuantificadas<br />
Re<strong>la</strong>cionados con <strong>la</strong>s personas<br />
Muertos Número <strong>de</strong> personas fallecidas por causas directas<br />
Heridos/<br />
Enfermos<br />
Número <strong>de</strong> personas que resultan afectadas <strong>en</strong> su salud o integridad<br />
física, sin ser víctimas mortales, por causa directa <strong>de</strong>l <strong>de</strong>sastre<br />
Desaparecidos Número <strong>de</strong> personas cuyo para<strong>de</strong>ro a partir <strong>de</strong>l <strong>de</strong>sastre es<br />
<strong>de</strong>sconocido<br />
Damnificados Número <strong>de</strong> personas que han sufrido grave daño directam<strong>en</strong>te<br />
asociados al ev<strong>en</strong>to <strong>en</strong> sus bi<strong>en</strong>es o servicios<br />
Afectados Número <strong>de</strong> personas que sufr<strong>en</strong> efectos secundarios asociados a un<br />
<strong>de</strong>sastre<br />
Re<strong>la</strong>cionados con <strong>la</strong>s vivi<strong>en</strong>das<br />
Destruidas Número <strong>de</strong> vivi<strong>en</strong>das arrasadas, sepultadas, co<strong>la</strong>psadas o<br />
<strong>de</strong>terioradas <strong>de</strong> tal manera que no son habitables<br />
Afectadas Número <strong>de</strong> vivi<strong>en</strong>das con daños m<strong>en</strong>ores, no estructurales o<br />
arquitectónicos, que pued<strong>en</strong> seguir si<strong>en</strong>do habitadas<br />
Re<strong>la</strong>cionados con <strong>la</strong> infraestructura<br />
Vías<br />
Longitud <strong>de</strong> re<strong>de</strong>s viales <strong>de</strong>struidas o inhabilitadas <strong>en</strong> metros<br />
Hectáreas Número <strong>de</strong> áreas <strong>de</strong> cultivo, pastizales o bosques <strong>de</strong>struidas o<br />
afectadas<br />
Ganado Número <strong>de</strong> unida<strong>de</strong>s perdidas (bovinos, porcinos, caprinos,<br />
avíco<strong>la</strong>s)<br />
C<strong>en</strong>tros<br />
educativos<br />
Número <strong>de</strong> guar<strong>de</strong>rías, colegios, universida<strong>de</strong>s, c<strong>en</strong>tros <strong>de</strong><br />
capacitación, etc. <strong>de</strong>struidas o afectadas directa o indirectam<strong>en</strong>te por<br />
el <strong>de</strong>sastre<br />
C<strong>en</strong>tros Número <strong>de</strong> c<strong>en</strong>tros <strong>de</strong> salud, clínicas, hospitales <strong>de</strong>struidos o<br />
<strong>de</strong> salud<br />
Perdida<br />
económica<br />
afectados directa o indirectam<strong>en</strong>te por el <strong>de</strong>sastre<br />
Monto <strong>de</strong> <strong>la</strong>s pérdidas directas causadas por el <strong>de</strong>sastre<br />
4 Arquitectura<br />
Básicam<strong>en</strong>te, para realizar extracción <strong>de</strong> información bajo <strong>la</strong> arquitectura pres<strong>en</strong>tada<br />
por Kushmerick et al [4], se requiere <strong>en</strong> primer lugar filtrar los textos relevantes al<br />
dominio <strong>de</strong> estudio, posteriorm<strong>en</strong>te <strong>de</strong>tectar <strong>la</strong>s <strong>en</strong>tida<strong>de</strong>s con posibilidad <strong>de</strong> ser<br />
extraídas, y finalm<strong>en</strong>te discriminar <strong>en</strong>tre <strong>la</strong>s <strong>en</strong>tida<strong>de</strong>s id<strong>en</strong>tificadas <strong>la</strong>s que<br />
proporcionan información útil para ll<strong>en</strong>ar <strong>la</strong> base <strong>de</strong> datos. El resultado final es una<br />
base <strong>de</strong> datos constituida por <strong>la</strong> colección <strong>de</strong> p<strong>la</strong>ntil<strong>la</strong>s g<strong>en</strong>eradas a partir <strong>de</strong> los textos<br />
filtrados.
En <strong>la</strong> figura 1 se muestra <strong>la</strong> interfaz <strong>de</strong>l sistema Topo, <strong>en</strong> esta figura se pres<strong>en</strong>ta el<br />
ejemplo <strong>de</strong> una noticia que reporta un “sismo”, y con <strong>la</strong> certeza <strong>de</strong> que es un texto<br />
relevante al dominio, el sistema se ocupa <strong>de</strong> id<strong>en</strong>tificar <strong>la</strong>s <strong>en</strong>tida<strong>de</strong>s con posibilidad<br />
<strong>de</strong> ser extraídas (<strong>la</strong>s frases sombreadas <strong>en</strong> el cuadro <strong>de</strong> texto Noticia). Para<br />
posteriorm<strong>en</strong>te, discriminar <strong>en</strong>tre estas <strong>en</strong>tida<strong>de</strong>s aquel<strong>la</strong>s que son útiles para ll<strong>en</strong>ar <strong>la</strong><br />
p<strong>la</strong>ntil<strong>la</strong> <strong>de</strong> extracción. Para efectuar esto último, a cada una <strong>de</strong> <strong>la</strong>s <strong>en</strong>tida<strong>de</strong>s se les<br />
calcu<strong>la</strong> <strong>la</strong> probabilidad <strong>de</strong> que form<strong>en</strong> parte o no <strong>en</strong> los registros <strong>de</strong> <strong>la</strong> p<strong>la</strong>ntil<strong>la</strong><br />
(cuadro <strong>de</strong> texto Distribución), y se toman como resultado <strong>la</strong>s que ti<strong>en</strong><strong>en</strong> una mayor<br />
probabilidad. De <strong>la</strong> información extraída <strong>en</strong> el ejemplo (panel P<strong>la</strong>ntil<strong>la</strong>), po<strong>de</strong>mos<br />
concluir que se reporta un sismo <strong>de</strong> 7.6 grados que tuvo lugar <strong>en</strong> Colima, <strong>México</strong>,<br />
<strong>de</strong>jando un saldo <strong>de</strong> 28 muertos, 300 heridos o <strong>en</strong>fermos y 10 mil vivi<strong>en</strong>das afectadas.<br />
Lo anterior refleja <strong>la</strong> utilidad <strong>de</strong> este tipo <strong>de</strong> sistemas.<br />
Fig. 1. Interfaz <strong>de</strong>l sistema<br />
El diseño arquitectónico <strong>de</strong>l sistema Topo se muestra <strong>en</strong> <strong>la</strong> figura 2, este diseño<br />
consiste <strong>de</strong> un mo<strong>de</strong>lo estructural compuesto por tres compon<strong>en</strong>tes <strong>de</strong> programa.<br />
Don<strong>de</strong>, <strong>la</strong> salida <strong>de</strong>l primer compon<strong>en</strong>te es un condicionante para <strong>la</strong> ejecución <strong>de</strong> los<br />
dos sigui<strong>en</strong>tes, y <strong>la</strong> salida <strong>de</strong>l segundo compon<strong>en</strong>te sirve como <strong>en</strong>trada <strong>de</strong>l último.<br />
A<strong>de</strong>más, cabe resaltar que el trabajo <strong>de</strong> extracción recae principalm<strong>en</strong>te <strong>en</strong> un análisis<br />
a nivel <strong>de</strong> pa<strong>la</strong>bras y el uso <strong>de</strong> c<strong>la</strong>sificadores <strong>de</strong> textos. Estas características<br />
proporcionan flexibilidad al sistema para ser adaptado a nuevos dominios. En <strong>la</strong>s<br />
subsecciones sigui<strong>en</strong>tes se explica más a <strong>de</strong>talle cada uno <strong>de</strong> los compon<strong>en</strong>tes <strong>de</strong> <strong>la</strong><br />
arquitectura.
Corpus <strong>de</strong><br />
noticias<br />
Extracción<br />
<strong>de</strong> Contextos<br />
Expresiones<br />
con <strong>la</strong>s <strong>en</strong>tida<strong>de</strong>s<br />
Preproceso<br />
In<strong>de</strong>xado<br />
C<strong>la</strong>sificació<br />
n<br />
Textos<br />
relevantes al<br />
dominio<br />
Vector<br />
numérico<br />
Id<strong>en</strong>tificació<br />
n <strong>de</strong> Cantida<strong>de</strong>s<br />
Id<strong>en</strong>tificació<br />
n <strong>de</strong> Fechas<br />
Id<strong>en</strong>tificació<br />
n <strong>de</strong> Nombres<br />
Análisis con<br />
expresiones<br />
regu<strong>la</strong>res<br />
Preproceso<br />
In<strong>de</strong>xado<br />
Vector<br />
nominal<br />
C<strong>la</strong>sificació<br />
n<br />
P<strong>la</strong>ntil<strong>la</strong>s <strong>de</strong><br />
Extracción<br />
Informaci<br />
ón relevante a<br />
<strong>la</strong> p<strong>la</strong>ntil<strong>la</strong><br />
(a) Filtrado <strong>de</strong> Textos<br />
(b) Id<strong>en</strong>tificación <strong>de</strong> Entida<strong>de</strong>s<br />
Fig. 2. Arquitectura <strong>de</strong>l Sistema<br />
(c) Extracción <strong>de</strong> Información<br />
4.1 Filtrado <strong>de</strong> texto<br />
El objetivo <strong>de</strong> este compon<strong>en</strong>te es filtrar aquellos docum<strong>en</strong>tos que son relevantes al<br />
dominio <strong>de</strong> trabajo. Una forma efectiva <strong>de</strong> realizar esta tarea es utilizando técnicas <strong>de</strong><br />
c<strong>la</strong>sificación automática <strong>de</strong> textos (CT). Don<strong>de</strong> <strong>la</strong> c<strong>la</strong>sificación <strong>de</strong> textos se <strong>de</strong>fine<br />
como <strong>la</strong> tarea <strong>de</strong> ubicar correctam<strong>en</strong>te y <strong>de</strong> manera automática textos <strong>en</strong> l<strong>en</strong>guaje<br />
natural que conti<strong>en</strong><strong>en</strong> información no estructurada <strong>en</strong> un conjunto <strong>de</strong> categorías<br />
pre<strong>de</strong>finidas [6]. Para <strong>la</strong> construcción <strong>de</strong>l c<strong>la</strong>sificador se utilizaron técnicas <strong>de</strong><br />
apr<strong>en</strong>dizaje automático (para más <strong>de</strong>talle ver refer<strong>en</strong>cia [7]). G<strong>en</strong>eralm<strong>en</strong>te, el<br />
proceso <strong>de</strong> c<strong>la</strong>sificar un texto consiste <strong>en</strong>:<br />
1. Realizar <strong>la</strong> extracción <strong>de</strong> características para transformar el texto <strong>de</strong> su formato<br />
inicial a una repres<strong>en</strong>tación a<strong>de</strong>cuada para <strong>la</strong> tarea <strong>de</strong> c<strong>la</strong>sificación.<br />
2. Aplicar el método <strong>de</strong> c<strong>la</strong>sificación.<br />
En nuestro caso, el mo<strong>de</strong>lo utilizado para <strong>la</strong> repres<strong>en</strong>tación fue el vectorial junto<br />
con un in<strong>de</strong>xado booleano [6]. En otras pa<strong>la</strong>bras, el docum<strong>en</strong>to está repres<strong>en</strong>tado por<br />
un vector <strong>de</strong> 0’s y 1’s que indican <strong>la</strong> pres<strong>en</strong>cia o aus<strong>en</strong>cia <strong>de</strong> ciertas pa<strong>la</strong>bras <strong>en</strong> el<br />
mismo. Para mejorar el in<strong>de</strong>xado se aplicó un preproceso al texto don<strong>de</strong> se eliminaron<br />
símbolos <strong>de</strong> puntuación (comas, puntos, etc.). Con respecto al método <strong>de</strong><br />
c<strong>la</strong>sificación, el que se está utilizando actualm<strong>en</strong>te es el simple <strong>de</strong> Bayes (ver sección
4.3 para más <strong>de</strong>talle), el cual fue <strong>en</strong>tr<strong>en</strong>ado con un corpus <strong>de</strong> 471 noticias, <strong>de</strong> <strong>la</strong>s<br />
cuales el 48% es relevante y el 52% restante es irrelevante 1 .<br />
Una v<strong>en</strong>taja <strong>de</strong> utilizar un c<strong>la</strong>sificador <strong>de</strong> textos es que el compon<strong>en</strong>te pue<strong>de</strong> ser<br />
fácilm<strong>en</strong>te adaptado a un nuevo dominio. Para esto, sólo es necesario contar con un<br />
conjunto <strong>de</strong> docum<strong>en</strong>tos previam<strong>en</strong>te c<strong>la</strong>sificados <strong>de</strong>l dominio <strong>de</strong> interés, esto para<br />
<strong>en</strong>tr<strong>en</strong>ar nuevam<strong>en</strong>te el método <strong>de</strong> c<strong>la</strong>sificación.<br />
4.2 Id<strong>en</strong>tificación <strong>de</strong> <strong>en</strong>tida<strong>de</strong>s<br />
Este compon<strong>en</strong>te se <strong>en</strong>carga <strong>de</strong> <strong>de</strong>tectar aquel<strong>la</strong>s partes <strong>de</strong>l texto con posibilidad <strong>de</strong><br />
ser incluidas <strong>en</strong> <strong>la</strong> p<strong>la</strong>ntil<strong>la</strong> <strong>de</strong> extracción. En este caso, <strong>la</strong>s <strong>en</strong>tida<strong>de</strong>s probables son:<br />
Nombres que puedan reflejar el lugar <strong>de</strong>l ev<strong>en</strong>to; Fechas que puedan reportar <strong>la</strong><br />
ocurr<strong>en</strong>cia <strong>de</strong>l mismo, y Cantida<strong>de</strong>s re<strong>la</strong>cionadas con <strong>la</strong> magnitud <strong>de</strong>l ev<strong>en</strong>to o con<br />
efectos sobre personas, vivi<strong>en</strong>das o infraestructura.<br />
Para id<strong>en</strong>tificar <strong>la</strong>s <strong>en</strong>tida<strong>de</strong>s se utiliza un análisis con expresiones regu<strong>la</strong>res a<br />
partir <strong>de</strong> los compon<strong>en</strong>tes léxicos <strong>de</strong> <strong>la</strong> gramática sigui<strong>en</strong>te:<br />
Ent_nombre nombre | nombre con_nombre <strong>en</strong>t_nombre<br />
<strong>en</strong>t_fecha mes | mes con_fecha número | número con_fecha<br />
<strong>en</strong>t_fecha<br />
<strong>en</strong>t_cantidad número(. número)? | número(. número)? <strong>en</strong>t_cantidad<br />
Don<strong>de</strong> los terminales g<strong>en</strong>eran conjuntos <strong>de</strong> cad<strong>en</strong>as dados por <strong>la</strong>s sigui<strong>en</strong>tes<br />
<strong>de</strong>finiciones regu<strong>la</strong>res:<br />
nombre [A-Z][A-Za-z]*<br />
con_nombre (<strong>de</strong> | <strong>la</strong> | ... | se)*<br />
mes <strong>en</strong>ero | ... | diciembre<br />
con_fecha <strong>de</strong> | - | ... | <br />
número [0-9]+<br />
A<strong>de</strong>más, a <strong>la</strong>s <strong>de</strong>finiciones regu<strong>la</strong>res nombre y número se les agrego,<br />
respectivam<strong>en</strong>te, un diccionario <strong>de</strong> expresiones que repres<strong>en</strong>tan excepciones a <strong>la</strong><br />
<strong>de</strong>finición. Por ejemplo, <strong>la</strong>s pa<strong>la</strong>bras al principio <strong>de</strong> una oración que inician con letra<br />
mayúscu<strong>la</strong> y que no son nombres propios. (El sismo ...), y los números reportados con<br />
letras, o una combinación <strong>de</strong> letras y números (... <strong>de</strong>jó mil 500 muertos).<br />
Este tipo <strong>de</strong> análisis nos ha resultado <strong>en</strong> una baja precisión para id<strong>en</strong>tificar<br />
nombres, pero <strong>en</strong> una alta cobertura para todos los casos. La completa cobertura es<br />
importante para no <strong>de</strong>jar fuera <strong>de</strong>l proceso <strong>de</strong> extracción <strong>en</strong>tida<strong>de</strong>s con alguna<br />
probabilidad <strong>de</strong> formar parte <strong>en</strong> <strong>la</strong> p<strong>la</strong>ntil<strong>la</strong>. Finalm<strong>en</strong>te, <strong>de</strong>spués <strong>de</strong> id<strong>en</strong>tificar <strong>la</strong>s<br />
1<br />
Por textos relevantes <strong>en</strong>t<strong>en</strong><strong>de</strong>mos todos aquellos que conti<strong>en</strong><strong>en</strong> información a ser extraída,<br />
mi<strong>en</strong>tras que los irrelevantes son los que conti<strong>en</strong><strong>en</strong> pa<strong>la</strong>bras o frases usadas comúnm<strong>en</strong>te <strong>en</strong><br />
<strong>la</strong> <strong>de</strong>scripción <strong>de</strong> un f<strong>en</strong>óm<strong>en</strong>o natural, pero que <strong>en</strong> estos casos se usan <strong>en</strong> contextos muy<br />
difer<strong>en</strong>tes. Por ejemplo, <strong>la</strong> frase “ojo <strong>de</strong>l huracán” <strong>en</strong> el contexto <strong>de</strong> “el presid<strong>en</strong>te está <strong>en</strong> el<br />
ojo <strong>de</strong>l huracán”.
<strong>en</strong>tida<strong>de</strong>s, este compon<strong>en</strong>te se <strong>en</strong>carga <strong>de</strong> extraer los contextos <strong>de</strong> cada <strong>en</strong>tidad, don<strong>de</strong><br />
el contexto <strong>de</strong> <strong>la</strong> <strong>en</strong>tidad es <strong>la</strong> expresión don<strong>de</strong> se <strong>en</strong>cu<strong>en</strong>tra <strong>la</strong> misma.<br />
También, cabe m<strong>en</strong>cionar que el tipo <strong>de</strong> <strong>en</strong>tida<strong>de</strong>s id<strong>en</strong>tificadas actualm<strong>en</strong>te<br />
pued<strong>en</strong> ser útiles para <strong>de</strong>tectar información <strong>en</strong> otros dominios, y no exclusivam<strong>en</strong>te<br />
<strong>de</strong>l esc<strong>en</strong>ario actual, por lo que este compon<strong>en</strong>te es completam<strong>en</strong>te adaptable a tareas<br />
<strong>de</strong> extracción simi<strong>la</strong>res.<br />
4.3 Extracción <strong>de</strong> información<br />
Para filtrar <strong>en</strong>tre <strong>la</strong>s <strong>en</strong>tida<strong>de</strong>s id<strong>en</strong>tificadas aquel<strong>la</strong>s que son útiles a <strong>la</strong> p<strong>la</strong>ntil<strong>la</strong>,<br />
tomamos a <strong>la</strong> tarea <strong>de</strong> extracción <strong>de</strong> información como una tarea <strong>de</strong> c<strong>la</strong>sificación <strong>de</strong><br />
textos, con <strong>la</strong> variante <strong>de</strong> que lo que estamos c<strong>la</strong>sificando es el contexto <strong>de</strong> <strong>la</strong>s<br />
<strong>en</strong>tida<strong>de</strong>s id<strong>en</strong>tificadas <strong>en</strong> lugar <strong>de</strong> los textos completos. Esta c<strong>la</strong>sificación es <strong>la</strong> que<br />
nos permite conocer <strong>la</strong> probabilidad <strong>de</strong> que <strong>la</strong> <strong>en</strong>tidad forme parte <strong>en</strong> alguno <strong>de</strong> los<br />
registros <strong>de</strong> <strong>la</strong> p<strong>la</strong>ntil<strong>la</strong>, o bi<strong>en</strong> que no sea tomada <strong>en</strong> cu<strong>en</strong>ta.<br />
Para hacer <strong>la</strong> c<strong>la</strong>sificación <strong>de</strong> un contexto, <strong>la</strong> parte <strong>de</strong> extracción <strong>de</strong> características<br />
es simi<strong>la</strong>r a <strong>la</strong> explicada <strong>en</strong> <strong>la</strong> tarea <strong>de</strong> filtrar un texto (sección 4.1), con <strong>la</strong> única<br />
difer<strong>en</strong>cia que <strong>en</strong> el in<strong>de</strong>xado el vector resultante ti<strong>en</strong>e como <strong>en</strong>tradas atributos<br />
nominales (pa<strong>la</strong>bras <strong>de</strong>l contexto) y no atributos numéricos (pon<strong>de</strong>rado Booleano).<br />
Finalm<strong>en</strong>te, para discriminar los contextos se usan tres c<strong>la</strong>sificadores <strong>de</strong> textos, los<br />
cuales fueron <strong>en</strong>tr<strong>en</strong>ados con una colección <strong>de</strong> 2,364 expresiones formadas <strong>de</strong> seis<br />
pa<strong>la</strong>bras, <strong>la</strong>s cuales fueron obt<strong>en</strong>idas <strong>de</strong> 90 docum<strong>en</strong>tos que tratan sobre inc<strong>en</strong>dio<br />
forestal y sismo. En <strong>la</strong>s expresiones el 26% repres<strong>en</strong>tan información útil para <strong>la</strong><br />
p<strong>la</strong>ntil<strong>la</strong>, y el 74% restante son <strong>en</strong>tida<strong>de</strong>s id<strong>en</strong>tificadas pero que no <strong>de</strong>b<strong>en</strong> ser<br />
extraídas.<br />
El uso <strong>de</strong> tres c<strong>la</strong>sificadores se <strong>de</strong>be a que se especializó cada uno <strong>de</strong> ellos <strong>en</strong> el<br />
contexto <strong>de</strong> nombres, fechas y cantida<strong>de</strong>s respectivam<strong>en</strong>te. Los algoritmos utilizados<br />
hasta el mom<strong>en</strong>to son el simple <strong>de</strong> Bayes para <strong>la</strong>s fechas y vecinos más cercanos para<br />
los otros dos casos.<br />
El método simple <strong>de</strong> Bayes es <strong>de</strong>l tipo probabilístico y es construido utilizando el<br />
conjunto <strong>de</strong> <strong>en</strong>tr<strong>en</strong>ami<strong>en</strong>to para estimar <strong>la</strong> probabilidad <strong>de</strong> cada c<strong>la</strong>se dadas <strong>la</strong>s<br />
características <strong>de</strong> los textos. Para evaluar dicha probabilidad se utiliza una<br />
simplificación <strong>de</strong>l teorema <strong>de</strong> Bayes:<br />
M<br />
(1)<br />
P( c | d)<br />
= P(<br />
c ) P(<br />
d | c )<br />
j<br />
j<br />
∏<br />
i=<br />
1<br />
Don<strong>de</strong> M es el número <strong>de</strong> términos <strong>en</strong> el mo<strong>de</strong>lo vectorial <strong>de</strong>l texto d i y 1 j k,<br />
don<strong>de</strong> k es el número <strong>de</strong> c<strong>la</strong>ses posibles. Las probabilida<strong>de</strong>s P(c j ) y P(d i | c j ) se<br />
calcu<strong>la</strong>n <strong>de</strong> <strong>la</strong> sigui<strong>en</strong>te manera:<br />
P(<br />
c<br />
j<br />
) =<br />
N<br />
N<br />
j<br />
P(<br />
d | c ) = 1 + N<br />
i<br />
j<br />
i<br />
j<br />
ij<br />
M +<br />
Aquí N es el número <strong>de</strong> docum<strong>en</strong>tos <strong>en</strong> el conjunto <strong>de</strong> <strong>en</strong>tr<strong>en</strong>ami<strong>en</strong>to, N j es el<br />
número <strong>de</strong> docum<strong>en</strong>tos <strong>en</strong> el conjunto <strong>de</strong> <strong>en</strong>tr<strong>en</strong>ami<strong>en</strong>to con c<strong>la</strong>se c j , y N ij es el<br />
número <strong>de</strong> veces que <strong>la</strong> pa<strong>la</strong>bra i ocurre d<strong>en</strong>tro <strong>de</strong> los textos con c<strong>la</strong>se c j <strong>en</strong> el<br />
conjunto <strong>de</strong> <strong>en</strong>tr<strong>en</strong>ami<strong>en</strong>to.<br />
M<br />
<br />
k=<br />
1<br />
N<br />
kj<br />
(2)
Con respecto al método <strong>de</strong> vecinos más cercanos, este es un método <strong>de</strong> apr<strong>en</strong>dizaje<br />
basado <strong>en</strong> instancias que consiste <strong>en</strong> almac<strong>en</strong>ar los datos <strong>de</strong> <strong>en</strong>tr<strong>en</strong>ami<strong>en</strong>to para que<br />
dado un nuevo texto, se busque <strong>en</strong> los datos almac<strong>en</strong>ados un caso simi<strong>la</strong>r y se<br />
c<strong>la</strong>sifique <strong>en</strong> base a <strong>la</strong> c<strong>la</strong>se <strong>de</strong> ese ejemplo simi<strong>la</strong>r. Se usa una función <strong>de</strong> distancia<br />
para <strong>de</strong>terminar cual miembro <strong>de</strong>l conjunto <strong>de</strong> <strong>en</strong>tr<strong>en</strong>ami<strong>en</strong>to es el más cercano al<br />
nuevo caso. La función <strong>de</strong> distancia más usada es <strong>la</strong> distancia Euclidiana [6].<br />
Un aspecto importante a resaltar es que el uso <strong>de</strong> c<strong>la</strong>sificadores <strong>de</strong> textos permite<br />
adaptar el compon<strong>en</strong>te a nuevos dominios. Para <strong>en</strong>tr<strong>en</strong>ar nuevam<strong>en</strong>te los<br />
c<strong>la</strong>sificadores es necesario contar con una colección <strong>de</strong> contextos <strong>de</strong> <strong>la</strong>s <strong>en</strong>tida<strong>de</strong>s<br />
nombradas para el nuevo esc<strong>en</strong>ario, y a<strong>de</strong>más indicar cuales <strong>de</strong> <strong>la</strong>s expresiones<br />
repres<strong>en</strong>tan información útil a <strong>la</strong> p<strong>la</strong>ntil<strong>la</strong> y que registro les correspon<strong>de</strong>.<br />
5 Resultados preliminares<br />
Para el proceso <strong>de</strong> evaluación utilizamos <strong>la</strong>s medidas <strong>de</strong> precisión y cobertura, don<strong>de</strong><br />
el objetivo es valorar <strong>la</strong> respuesta <strong>de</strong>l sistema basándose <strong>en</strong> <strong>la</strong>s <strong>de</strong>cisiones <strong>de</strong>l experto.<br />
En <strong>la</strong> evaluación <strong>de</strong>l filtrado <strong>de</strong> textos y <strong>la</strong> extracción <strong>de</strong> información se utilizó el<br />
método <strong>de</strong> validación cruzada con 10 pliegues (10FCV, por sus sig<strong>la</strong>s <strong>en</strong> inglés) [8].<br />
Los resultados alcanzados hasta el mom<strong>en</strong>to se muestran <strong>en</strong> <strong>la</strong> tab<strong>la</strong> 3. Cabe<br />
m<strong>en</strong>cionar que los c<strong>la</strong>sificadores incluidos <strong>en</strong> el compon<strong>en</strong>te <strong>de</strong> extracción <strong>de</strong><br />
información actualm<strong>en</strong>te han sido <strong>en</strong>tr<strong>en</strong>ados con contextos <strong>de</strong> tamaño seis (tres<br />
pa<strong>la</strong>bras a <strong>la</strong> izquierda y tres pa<strong>la</strong>bras a <strong>la</strong> <strong>de</strong>recha para cada <strong>en</strong>tidad), y aún no<br />
estamos seguros que este tamaño sea el mejor para todos los casos, por tal motivo los<br />
resultados se consi<strong>de</strong>ran preliminares.<br />
Tab<strong>la</strong> 3. Resultados Preliminares<br />
Compon<strong>en</strong>te Cobertura Precisión<br />
Filtrado <strong>de</strong> textos 96% 96%<br />
Id<strong>en</strong>tificación <strong>de</strong> <strong>en</strong>tida<strong>de</strong>s 99% 88%<br />
Extracción <strong>de</strong> información 71% 72%<br />
6 Conclusiones<br />
En base a los resultados preliminares po<strong>de</strong>mos concluir que es posible hacer<br />
extracción <strong>de</strong> información <strong>de</strong> <strong>en</strong>tida<strong>de</strong>s que están <strong>de</strong> forma explícita <strong>en</strong> los textos<br />
utilizando únicam<strong>en</strong>te un análisis a nivel léxico junto con métodos <strong>de</strong> c<strong>la</strong>sificación <strong>de</strong><br />
textos. Esta conclusión es importante porque se muestra que para tareas como <strong>la</strong><br />
pres<strong>en</strong>tada <strong>en</strong> este trabajo, no es necesario t<strong>en</strong>er un amplio <strong>en</strong>t<strong>en</strong>dimi<strong>en</strong>to <strong>de</strong>l l<strong>en</strong>guaje<br />
para lograr extraer información, que es lo que g<strong>en</strong>eralm<strong>en</strong>te se int<strong>en</strong>ta. A<strong>de</strong>más, esto<br />
fue probado para un dominio más complejo que el pres<strong>en</strong>tado por Kushmerick et al<br />
[4].<br />
Hasta el mom<strong>en</strong>to, el principal problema que hemos afrontado es extraer el nombre<br />
<strong>de</strong>l lugar don<strong>de</strong> ocurrió el ev<strong>en</strong>to. Sin embargo, como se m<strong>en</strong>cionó anteriorm<strong>en</strong>te, los<br />
resultados que pres<strong>en</strong>tamos son preliminares y creemos que po<strong>de</strong>mos mejorar los<br />
mismos <strong>de</strong> <strong>la</strong> sigui<strong>en</strong>te manera:
1. Experim<strong>en</strong>tando con el tamaño <strong>de</strong> los contextos, para <strong>en</strong>contrar el tamaño<br />
a<strong>de</strong>cuado para discriminar <strong>en</strong>tre <strong>la</strong>s <strong>en</strong>tida<strong>de</strong>s id<strong>en</strong>tificadas.<br />
2. Probar algoritmos <strong>de</strong> c<strong>la</strong>sificación, para <strong>en</strong>contrar los que mejor se adapt<strong>en</strong> a <strong>la</strong><br />
tarea. Para esto hacemos uso <strong>de</strong>l software WEKA [8].<br />
Actualm<strong>en</strong>te, continuamos preparando <strong>la</strong> colección <strong>de</strong> contextos para ampliar el<br />
compon<strong>en</strong>te <strong>de</strong> extracción <strong>de</strong> información a los <strong>de</strong>más ev<strong>en</strong>tos naturales propuestos<br />
<strong>en</strong> el dominio <strong>de</strong> trabajo (ver tab<strong>la</strong> 1). Como trabajo a futuro pret<strong>en</strong><strong>de</strong>mos incorporar<br />
a <strong>la</strong>s etapas <strong>de</strong> preproceso nuevas características, por ejemplo: obt<strong>en</strong>er <strong>la</strong>s partes <strong>de</strong> <strong>la</strong><br />
oración. Int<strong>en</strong>tando con esto mejorar los resultados <strong>en</strong> <strong>la</strong> tarea <strong>de</strong> c<strong>la</strong>sificación, y por<br />
consigui<strong>en</strong>te <strong>en</strong> <strong>la</strong> extracción.<br />
Finalm<strong>en</strong>te, cabe m<strong>en</strong>cionar que el pres<strong>en</strong>te trabajo forma parte <strong>de</strong>l proyecto <strong>de</strong><br />
investigación Recolección, Extracción, Búsqueda y Análisis <strong>de</strong> Información a partir<br />
<strong>de</strong> Textos <strong>en</strong> Español, el cual <strong>en</strong>tre sus metas ti<strong>en</strong>e el usar <strong>la</strong> base <strong>de</strong> datos sobre<br />
<strong>de</strong>sastres <strong>en</strong> estudios exploratorios y prev<strong>en</strong>tivos posteriores.<br />
Agra<strong>de</strong>cimi<strong>en</strong>tos<br />
El pres<strong>en</strong>te trabajo fue parcialm<strong>en</strong>te financiado por el CONACYT (Proyecto<br />
U39957-Y). Asimismo, el primer autor agra<strong>de</strong>ce al CONACYT por el apoyo otorgado<br />
a través <strong>de</strong> <strong>la</strong> Beca para Estudios <strong>de</strong> Maestría # 171610. Por su parte, el segundo autor<br />
agra<strong>de</strong>ce a <strong>la</strong> Secretaría <strong>de</strong> Estado <strong>de</strong> Educación y Universida<strong>de</strong>s, España.<br />
Refer<strong>en</strong>cias<br />
1. Appelt, D., Israel, D.: Introduction to Information Extraction Technology. A Tutorial<br />
Prepared for IJCAI-99 (1999)<br />
2. Chinchor, N.: MUC-7 Test Scores Introduction. In Proceedings of the 7th Message<br />
Un<strong>de</strong>rstanding Confer<strong>en</strong>ce. Morgan Kaufmann (1997)<br />
3. Grishman, R.: Information Extraction: Techniques and Chall<strong>en</strong>ges. Lecture Notes in<br />
Artificial Intellig<strong>en</strong>ce 1299 (1997)<br />
4. Kushmerick, N., Johnston, E., McGuinness, S.: Information extraction by text c<strong>la</strong>ssification.<br />
Workshop on Adaptive Text Extraction and Mining, Seattle (2001)<br />
5. LA RED: Guía Metodológica <strong>de</strong> DesInv<strong>en</strong>tar. OSSO/ITDG, Lima (2003)<br />
6. Aas, K., Eikvil, L.: Text Categorisation: a Survey. Technical Report, Norwegian Computing<br />
C<strong>en</strong>ter (1999)<br />
7. Téllez, A., Montes, M., Fu<strong>en</strong>tes, O., Vil<strong>la</strong>señor, L.: C<strong>la</strong>sificación Automática <strong>de</strong> Textos <strong>de</strong><br />
Desastres Naturales <strong>en</strong> <strong>México</strong>. Congreso Internacional <strong>en</strong> Investigaciones <strong>de</strong> Ci<strong>en</strong>cias<br />
Computacionales, <strong>México</strong> (2003)<br />
8. Witt<strong>en</strong>, I., Frank, E.: Data Minning: Practical Machine Learning Tools and Techniques with<br />
Java Implem<strong>en</strong>tations. Morgan Kaufmann, Sydney (2000)
Desarrollo <strong>de</strong> herrami<strong>en</strong>ta para lexicógrafo<br />
con <strong>de</strong>tección automática<br />
<strong>de</strong> re<strong>la</strong>ciones semánticas implícitas<br />
Wilbert A. Olán Cristobal, Alexan<strong>de</strong>r Gelbukh, Grigori Sidorov<br />
Laboratorio <strong>de</strong> l<strong>en</strong>guaje natural,<br />
C<strong>en</strong>tro <strong>de</strong> Investigación <strong>en</strong> Computación,<br />
Instituto Politécnico Nacional,<br />
Av. Juan <strong>de</strong> Dios Batiz s/n, esq. M<strong>en</strong>dizabal, Zacat<strong>en</strong>co, 07738,<br />
<strong>México</strong>, D. F.<br />
wo<strong>la</strong>n@correo.cic.ipn.mx, {gelbukh,sidorov}@cic.ipn.mx<br />
Resum<strong>en</strong>. Uno <strong>de</strong> los problemas más importantes <strong>en</strong> lexicografía es <strong>la</strong><br />
exist<strong>en</strong>cia <strong>de</strong> círculos viciosos <strong>en</strong> <strong>de</strong>finiciones <strong>en</strong> los diccionarios. Se pres<strong>en</strong>ta<br />
una herrami<strong>en</strong>ta que ayuda a <strong>en</strong>contrar los ciclos m<strong>en</strong>cionados, escoger algunas<br />
pa<strong>la</strong>bras como primitivas o miembros <strong>de</strong>l vocabu<strong>la</strong>rio <strong>de</strong>finidor y analizar el<br />
impacto <strong>de</strong> esta selección a los círculos viciosos, es <strong>de</strong>cir, <strong>en</strong>contrar <strong>la</strong>s<br />
re<strong>la</strong>ciones semánticas implícitas y <strong>de</strong>purar<strong>la</strong>s.<br />
1 Introducción<br />
A partir <strong>de</strong> los sistemas <strong>de</strong> diccionarios explicativos exist<strong>en</strong>tes actualm<strong>en</strong>te, existe<br />
una parte <strong>de</strong> ellos <strong>la</strong> cual no ti<strong>en</strong>e alguna solución práctica. Referimos a un problema<br />
<strong>en</strong> los diccionarios explicativos que es <strong>la</strong> pres<strong>en</strong>cia <strong>de</strong> los círculos viciosos <strong>en</strong><br />
<strong>de</strong>finiciones. Por ejemplo,<br />
Gallina: hembra <strong>de</strong> gallo<br />
Gallo: macho <strong>de</strong> gallina<br />
Este es un problema <strong>en</strong> los sistemas <strong>de</strong> <strong>de</strong>finiciones ya que lo anterior equivale a<br />
<strong>de</strong>cir que gallina es hembra <strong>de</strong> macho <strong>de</strong> gallina, y esto no ayuda a <strong>en</strong>t<strong>en</strong><strong>de</strong>r lo que es<br />
una gallina sin saberlo <strong>de</strong> antemano.<br />
Este es el círculo vicioso <strong>de</strong> longitud 1, hay círculos más <strong>la</strong>rgos. Sin embargo, el<br />
verda<strong>de</strong>ro problema es que no se pue<strong>de</strong> evitar los círculos <strong>de</strong> este tipo porque todo<br />
conjunto <strong>de</strong> pa<strong>la</strong>bras se <strong>de</strong>fine a través <strong>de</strong> mismo conjunto. Exist<strong>en</strong> dos posibles<br />
soluciones<br />
• Tolerar los círculos y so<strong>la</strong>m<strong>en</strong>te tratar <strong>de</strong> obt<strong>en</strong>er los círculos <strong>de</strong> mayor longitud,<br />
lo que da <strong>la</strong> v<strong>en</strong>taja para un lector humano, porque se aum<strong>en</strong>ta <strong>la</strong> probabilidad <strong>de</strong><br />
conocer alguna <strong>de</strong> <strong>la</strong>s pa<strong>la</strong>bras <strong>en</strong> el círculo, y<br />
• Dec<strong>la</strong>rar algunas pa<strong>la</strong>bras como <strong>la</strong>s pa<strong>la</strong>bras “primitivas” y no dar <strong>de</strong>finiciones<br />
algunas para el<strong>la</strong>s. Es el <strong>en</strong>foque más aceptable para <strong>la</strong>s computadoras.
La i<strong>de</strong>a <strong>de</strong> exist<strong>en</strong>cia <strong>de</strong> <strong>la</strong>s primitivas semánticas es bastante <strong>de</strong>sarrol<strong>la</strong>da <strong>en</strong><br />
lingüística, por ejemplo (Wierzbicka 1980, 1990, 1996) y (Apresjan, 1994). Sin<br />
embargo, no existe alguna solución práctica ni teoría comúnm<strong>en</strong>te aceptada por los<br />
ci<strong>en</strong>tíficos.<br />
Vamos a l<strong>la</strong>mar <strong>la</strong> re<strong>la</strong>ción <strong>en</strong>tre <strong>la</strong>s pa<strong>la</strong>bras cuando una es parte <strong>de</strong> <strong>de</strong>finición <strong>de</strong><br />
<strong>la</strong> otra y se <strong>de</strong>c<strong>la</strong>ra como <strong>la</strong> pa<strong>la</strong>bra “primitiva” <strong>la</strong> re<strong>la</strong>ción semántica implícita; es<br />
semántica porque se trata <strong>de</strong> <strong>de</strong>finir el s<strong>en</strong>tido, y es implícita porque ya está pres<strong>en</strong>te<br />
<strong>en</strong> <strong>la</strong> <strong>de</strong>finición don<strong>de</strong> <strong>la</strong> puso manualm<strong>en</strong>te un lexicógrafo.<br />
En este capítulo pres<strong>en</strong>tamos el prototipo <strong>de</strong> un sistema para el análisis semántico<br />
<strong>de</strong> los diccionarios explicativos. El sistema es una herrami<strong>en</strong>ta que es útil para el<br />
lexicógrafo (<strong>la</strong> persona que hace un diccionario manualm<strong>en</strong>te). El sistema permite<br />
<strong>de</strong>tectar automáticam<strong>en</strong>te los círculos <strong>en</strong> <strong>de</strong>finiciones, tomar manualm<strong>en</strong>te <strong>la</strong>s<br />
<strong>de</strong>cisiones acerca <strong>de</strong> los círculos, y evaluar <strong>la</strong>s consecu<strong>en</strong>cias <strong>de</strong> una u otra solución<br />
posible; es <strong>de</strong>cir, <strong>en</strong>contrar <strong>la</strong>s re<strong>la</strong>ciones semánticas implícitas y <strong>de</strong>purar<strong>la</strong>s.<br />
2 Re<strong>la</strong>ciones semánticas implícitas<br />
Mostraremos brevem<strong>en</strong>te <strong>la</strong>s características <strong>de</strong> <strong>la</strong>s dos principales teorías que tratan<br />
<strong>la</strong>s re<strong>la</strong>ciones semánticas implícitas <strong>en</strong>tre pa<strong>la</strong>bras (o <strong>de</strong> <strong>la</strong>s primitivas semánticas) —<br />
puntos <strong>de</strong> vista <strong>de</strong> A. Wierzbicka y Yu. Apresjan.<br />
2.1 El metal<strong>en</strong>guaje semántico natural <strong>de</strong> A. Wierzbicka<br />
Des<strong>de</strong> su aparición a mediados <strong>de</strong> <strong>la</strong> década <strong>de</strong> los 60’s, se han mant<strong>en</strong>ido los<br />
postu<strong>la</strong>dos y objetivos básicos <strong>de</strong> <strong>la</strong> teoría <strong>de</strong>l Metal<strong>en</strong>guaje Semántico Natural<br />
(MSN). De forma breve, éstos se pued<strong>en</strong> resumir <strong>en</strong> <strong>la</strong> búsqueda <strong>de</strong> <strong>la</strong>s primitivas<br />
semánticas universales; el rechazo a los marcadores artificiales y a los sistemas<br />
lógicos <strong>de</strong> repres<strong>en</strong>tación <strong>de</strong> que <strong>la</strong> l<strong>en</strong>gua natural es el único sistema eficaz para <strong>la</strong><br />
repres<strong>en</strong>tación <strong>de</strong>l significado.<br />
Esta teoría ha sufrido un proceso <strong>de</strong> evolución que principalm<strong>en</strong>te ha sufrido<br />
cambios <strong>en</strong> los sigui<strong>en</strong>tes puntos:<br />
1. El numero <strong>de</strong> primitivas semánticas, aquel<strong>la</strong>s que no se pued<strong>en</strong> <strong>de</strong>finir <strong>en</strong><br />
términos más simples y que sirv<strong>en</strong> como un lexicón completo para el análisis<br />
semántico, se ha increm<strong>en</strong>tado. De los 14 que se establecieron <strong>de</strong>s<strong>de</strong> un principio<br />
basándose <strong>en</strong> métodos <strong>de</strong> prueba y error a unos 60 actualm<strong>en</strong>te.<br />
2. Al increm<strong>en</strong>tarse <strong>la</strong> investigación sobre l<strong>en</strong>guas no europeas, <strong>la</strong> búsqueda <strong>de</strong><br />
primitivas se id<strong>en</strong>tifico con <strong>la</strong> búsqueda <strong>de</strong> los universales. Léxicos sería <strong>la</strong><br />
repres<strong>en</strong>tación simbólica <strong>de</strong> <strong>la</strong>s primitivas conceptuales universales; los distintos<br />
grupos <strong>de</strong> primitivas que se han reconocido <strong>en</strong> <strong>la</strong>s distintas l<strong>en</strong>guas son<br />
manifestaciones específicas <strong>en</strong> una l<strong>en</strong>gua <strong>de</strong> un conjunto universal <strong>de</strong> conceptos<br />
humanos es<strong>en</strong>ciales. Según A. Wierzbicka, estos conceptos constituy<strong>en</strong> <strong>la</strong> base<br />
<strong>de</strong> los términos <strong>de</strong> comparación que subyace a <strong>la</strong> comunicación ínter lingüística,<br />
ya que para comparar <strong>la</strong>s l<strong>en</strong>guas se necesita una medida común que no pue<strong>de</strong> ser<br />
específica <strong>de</strong> ninguna l<strong>en</strong>gua.
3. La búsqueda <strong>de</strong> primitivas semánticas se combina con <strong>la</strong> búsqueda <strong>de</strong> patrones<br />
sintácticos universales, que serían combinaciones <strong>de</strong> primitivos <strong>de</strong> exist<strong>en</strong>cia<br />
universal. Aunque <strong>la</strong> mayor parte <strong>de</strong> los <strong>en</strong>unciados <strong>de</strong> una l<strong>en</strong>gua no se pue<strong>de</strong><br />
traducir a otra sin alguna variación <strong>de</strong> significado, <strong>la</strong> teoría <strong>de</strong>l MSN postu<strong>la</strong> que<br />
los primitivos sí ti<strong>en</strong><strong>en</strong> correspond<strong>en</strong>cia <strong>en</strong> todas <strong>la</strong>s l<strong>en</strong>guas. Estas frases están<br />
formu<strong>la</strong>das <strong>en</strong> repres<strong>en</strong>taciones locales <strong>de</strong> <strong>la</strong>s primitivas semánticas universales<br />
según <strong>la</strong>s reg<strong>la</strong>s sintácticas universales, es <strong>de</strong>cir, <strong>la</strong>s reg<strong>la</strong>s que regu<strong>la</strong>n <strong>la</strong><br />
combinación <strong>de</strong> primitivos. A estas frases se le d<strong>en</strong>omina S<strong>en</strong>t<strong>en</strong>cias Canónicas y<br />
se utilizan tanto para validar <strong>en</strong> MSN como para <strong>en</strong>contrar posibles fallos.<br />
El resultado <strong>de</strong> <strong>la</strong> búsqueda <strong>de</strong> primitivas universales es <strong>la</strong> construcción <strong>de</strong> un<br />
metal<strong>en</strong>guaje semántico Natural. Un ejemplo <strong>de</strong> <strong>la</strong>s primitivas son <strong>la</strong>s pa<strong>la</strong>bras yo,<br />
querer, bu<strong>en</strong>o, etc.<br />
2.2 Las primitivas lingüísticas <strong>de</strong> Yu. Apresjan<br />
Los métodos tradicionales para <strong>la</strong> construcción <strong>de</strong> un diccionario semántico consist<strong>en</strong><br />
<strong>en</strong> <strong>de</strong>finir pa<strong>la</strong>bras a través <strong>de</strong> otras.<br />
Int<strong>en</strong>taremos <strong>de</strong>mostrar que <strong>la</strong>s primitivas semánticas no son <strong>en</strong> realidad<br />
extremadam<strong>en</strong>te simples y, g<strong>en</strong>eralm<strong>en</strong>te hab<strong>la</strong>ndo, no pose<strong>en</strong> <strong>la</strong> propiedad <strong>de</strong><br />
universalidad <strong>en</strong> sus significados, (Apresjan, 2000).<br />
De hecho aun pa<strong>la</strong>bras simples <strong>de</strong> l<strong>en</strong>guaje natural, a<strong>de</strong>más <strong>de</strong> un seguro núcleo<br />
prototípico, conti<strong>en</strong>e alguna partícu<strong>la</strong> <strong>de</strong> significado que distingu<strong>en</strong> una pa<strong>la</strong>bra<br />
flexible <strong>de</strong> sus sinónimos cercanos. Es precisam<strong>en</strong>te esta partícu<strong>la</strong> que es <strong>en</strong> muchos<br />
casos específica <strong>de</strong>l l<strong>en</strong>guaje. Se pres<strong>en</strong>ta el análisis <strong>de</strong> un ejemplo <strong>de</strong> <strong>la</strong> primitiva<br />
semántica propuesta por A. Wierzbicka —el verbo to want (querer).<br />
El verbo <strong>en</strong> inglés to want usado por A. Wierzbicka como una primitiva semántica<br />
indudablem<strong>en</strong>te comparte una compon<strong>en</strong>te semántica g<strong>en</strong>eral con el verbo to wish. El<br />
significado <strong>de</strong> los dos verbos ti<strong>en</strong>e cierta difer<strong>en</strong>cia: want, a<strong>de</strong>más <strong>de</strong> su propio <strong>de</strong>seo,<br />
expresa <strong>la</strong> i<strong>de</strong>a <strong>de</strong> necesidad, <strong>de</strong>fici<strong>en</strong>cia, aus<strong>en</strong>cia, mi<strong>en</strong>tras wish expresa <strong>la</strong> i<strong>de</strong>a <strong>de</strong><br />
abstracción <strong>de</strong> <strong>de</strong>seos. No es un accid<strong>en</strong>te que wish sea usado <strong>en</strong> construcciones<br />
condicionales <strong>de</strong>l tipo “I wish he were here” [“Deseo que él esté aquí”]. Sin<br />
embargo, el incuestionable compon<strong>en</strong>te semántico simple que forman los puntos <strong>de</strong><br />
intersección <strong>de</strong> los dos significados no pue<strong>de</strong> ser verbalizado por una pa<strong>la</strong>bra o alguna<br />
otra unidad significativa <strong>de</strong>l l<strong>en</strong>guaje inglés.<br />
De este modo ambos verbos son semánticam<strong>en</strong>te complejos: el significado <strong>de</strong> cada<br />
uno <strong>de</strong> ellos consiste <strong>de</strong> una parte simple (lo que por conv<strong>en</strong>i<strong>en</strong>cia nosotros<br />
<strong>en</strong>t<strong>en</strong><strong>de</strong>mos el s<strong>en</strong>tido propio <strong>de</strong> “to want”) y un número <strong>de</strong> acumu<strong>la</strong>ciones<br />
especificas. Sin embargo, <strong>de</strong>s<strong>de</strong> <strong>en</strong>tonces este compon<strong>en</strong>te g<strong>en</strong>eral no pudo ser<br />
verbalizado por alguna pa<strong>la</strong>bra simple o alguna otra unidad significativa, y, por lo<br />
tanto, ninguno <strong>de</strong> estos verbos se pue<strong>de</strong> consi<strong>de</strong>rarse como <strong>la</strong> pa<strong>la</strong>bra primitiva. Y<br />
todavía no m<strong>en</strong>cionamos <strong>la</strong>s pa<strong>la</strong>bras con el s<strong>en</strong>tido parecido como, por ejemplo,<br />
<strong>de</strong>sire (<strong>de</strong>sear), feel like (t<strong>en</strong>er ganas <strong>de</strong>) y otros. Desire (<strong>de</strong>sear) int<strong>en</strong>sifica <strong>la</strong> noción<br />
<strong>de</strong> una voluntad activa que se expresa por el verbo to want (querer), mi<strong>en</strong>tras feel like<br />
(t<strong>en</strong>er ganas <strong>de</strong>), por otra parte, lo <strong>de</strong>bilita.
Así se pue<strong>de</strong> establecer que to want (querer) no es <strong>la</strong> pa<strong>la</strong>bra semánticam<strong>en</strong>te<br />
simple. A<strong>de</strong>más, <strong>la</strong>s acumu<strong>la</strong>ciones semánticas <strong>la</strong>s cuales complican el s<strong>en</strong>tido <strong>de</strong><br />
propio to want son específicas <strong>en</strong> el idioma inglés.<br />
Se propone <strong>la</strong> sigui<strong>en</strong>te <strong>de</strong>finición <strong>de</strong> <strong>la</strong>s pa<strong>la</strong>bras primitivas: La pa<strong>la</strong>bra se<br />
consi<strong>de</strong>ra como una primitiva si el l<strong>en</strong>guaje dado no ti<strong>en</strong>e ningún conjunto <strong>de</strong> <strong>la</strong>s<br />
pa<strong>la</strong>bras vía <strong>la</strong>s cuales pue<strong>de</strong> ser explicada. Es <strong>de</strong>cir, <strong>en</strong> este caso tanto to want, como<br />
to wish son <strong>la</strong>s pa<strong>la</strong>bras primitivas, y existe una cantidad significativa <strong>de</strong> <strong>la</strong>s pa<strong>la</strong>bras<br />
primitivas evaluada <strong>en</strong> más <strong>de</strong> 5000 elem<strong>en</strong>tos, porque solo <strong>la</strong>s pa<strong>la</strong>bras que pued<strong>en</strong><br />
ser <strong>de</strong>finidas <strong>de</strong> modo c<strong>la</strong>ro se consi<strong>de</strong>ran no primitivas.<br />
2.3 Vocabu<strong>la</strong>rio <strong>de</strong>finidor<br />
Antes que nada, se repres<strong>en</strong>ta el diccionario explicativo como un grafo dirigido —<br />
cada pa<strong>la</strong>bra que ti<strong>en</strong>e <strong>de</strong>finición es un vértice, y <strong>la</strong>s pa<strong>la</strong>bras que se <strong>en</strong>cu<strong>en</strong>tra <strong>en</strong> <strong>la</strong><br />
<strong>de</strong>finición están conectadas con el<strong>la</strong>. En su turno, <strong>la</strong> pa<strong>la</strong>bra pue<strong>de</strong> formar<br />
<strong>de</strong>finiciones <strong>de</strong> otras pa<strong>la</strong>bras.<br />
Esta i<strong>de</strong>a <strong>de</strong> repres<strong>en</strong>tar el diccionario como un grafo es con <strong>la</strong> finalidad <strong>de</strong> verlo<br />
como una red semántica, y no es nueva, es una i<strong>de</strong>a <strong>de</strong>sarrol<strong>la</strong>da por autores como<br />
Ev<strong>en</strong>s (1988) y Fellbaum (1990). Kozima y Furugori (1993) también analizan una red<br />
semántica, <strong>en</strong> este caso para saber que pa<strong>la</strong>bras “se activan” empezando <strong>de</strong> alguna<br />
pa<strong>la</strong>bra <strong>de</strong>terminada.<br />
Obviam<strong>en</strong>te, el diccionario no conti<strong>en</strong>e <strong>en</strong> sus <strong>de</strong>finiciones <strong>la</strong>s pa<strong>la</strong>bras que no son<br />
<strong>de</strong>finidas <strong>en</strong> el mismo diccionario.<br />
En este grafo se pue<strong>de</strong> elegir algunas pa<strong>la</strong>bras como <strong>la</strong>s primitivas semánticas. Las<br />
primitivas semánticas son <strong>la</strong>s pa<strong>la</strong>bras <strong>la</strong>s cuales pert<strong>en</strong>ec<strong>en</strong> a conjunto <strong>de</strong> vértices y<br />
se marcan <strong>de</strong> tal modo que existe una ruta <strong>en</strong> el grafo <strong>de</strong> cualquier longitud para<br />
<strong>de</strong>finir <strong>la</strong>s <strong>de</strong>más pa<strong>la</strong>bras.<br />
A difer<strong>en</strong>cia con (Gelbukh and Sidorov, 2002) vamos a distinguir <strong>la</strong>s primitivas<br />
semánticas y el vocabu<strong>la</strong>rio <strong>de</strong>finidor.<br />
El vocabu<strong>la</strong>rio <strong>de</strong>finidor ese <strong>de</strong>fine <strong>de</strong> <strong>la</strong> misma forma con <strong>la</strong> única difer<strong>en</strong>cia que<br />
<strong>la</strong> ruta <strong>de</strong>be t<strong>en</strong>er longitud uno. Es <strong>de</strong>cir, vocabu<strong>la</strong>rio <strong>de</strong>finidor es mucho más<br />
interesante que <strong>la</strong>s puras primitivas semánticas. De hecho, vocabu<strong>la</strong>rio <strong>de</strong>finidor es un<br />
conjunto <strong>de</strong> <strong>la</strong>s primitivas con cierta propiedad adicional.<br />
Exist<strong>en</strong> algunos diccionarios para inglés don<strong>de</strong> el vocabu<strong>la</strong>rio <strong>de</strong>finidor se forma<br />
manualm<strong>en</strong>te, por ejemplo, los <strong>de</strong> Oxford o <strong>de</strong> Collins. El número total <strong>de</strong> los<br />
elem<strong>en</strong>tos <strong>de</strong> vocabu<strong>la</strong>rio <strong>de</strong>finidor es alre<strong>de</strong>dor <strong>de</strong> 2000-3000 pa<strong>la</strong>bras. El número <strong>de</strong><br />
primitivas muy parecido se reporta <strong>en</strong> (Gelbukh and Sidorov, 2002), (Rivera, 2003)<br />
para <strong>la</strong> <strong>de</strong>tección automática <strong>de</strong> <strong>la</strong>s primitivas semánticas –alre<strong>de</strong>dor <strong>de</strong> 2000 pa<strong>la</strong>bras<br />
primitivas.<br />
3 Características <strong>de</strong> <strong>la</strong> herrami<strong>en</strong>ta<br />
En base <strong>de</strong>l algoritmo <strong>de</strong>scrito <strong>en</strong> (Gelbukh and Sidorov, 2002), (Rivera, 2003), se<br />
<strong>de</strong>sarrolló <strong>la</strong> herrami<strong>en</strong>ta <strong>de</strong> ayuda a un lexicógrafo a <strong>la</strong> investigación <strong>de</strong> <strong>la</strong>s<br />
estructuras <strong>de</strong>l diccionario con el fin <strong>de</strong> <strong>de</strong>tectar y corregir los círculos viciosos cortos
a través <strong>de</strong> búsqueda automática <strong>de</strong> <strong>la</strong>s primitivas semánticas y <strong>de</strong>l vocabu<strong>la</strong>rio<br />
<strong>de</strong>finidor.<br />
La herrami<strong>en</strong>ta proporciona <strong>la</strong> sigui<strong>en</strong>te información:<br />
• Muestra un visor <strong>de</strong>l Diccionario (<strong>en</strong> nuestro caso usamos el diccionario <strong>de</strong>l<br />
español <strong>de</strong>l grupo Anaya) <strong>de</strong> manera electrónica, don<strong>de</strong> muestra <strong>en</strong>tre otras cosas<br />
<strong>la</strong> pa<strong>la</strong>bra <strong>de</strong>l diccionario, su <strong>de</strong>finición, <strong>la</strong> <strong>de</strong>finición normalizada con <strong>la</strong>s partes<br />
<strong>de</strong> oración <strong>de</strong> todas <strong>la</strong>s pa<strong>la</strong>bras y, como una opción, también con s<strong>en</strong>tidos <strong>de</strong> <strong>la</strong>s<br />
pa<strong>la</strong>bras marcados. Nótese que el diccionario fue preprocesado usando <strong>la</strong><br />
herrami<strong>en</strong>ta <strong>de</strong> análisis morfológico automático (Gelbukh and Sidorov, 2003).<br />
• En este mismo visor nos muestra <strong>de</strong> <strong>la</strong>s pa<strong>la</strong>bras exist<strong>en</strong>tes <strong>en</strong> <strong>la</strong> base <strong>de</strong> datos, el<br />
número <strong>de</strong> homónimos y <strong>de</strong> significados que ti<strong>en</strong><strong>en</strong> y cual es <strong>la</strong> parte <strong>de</strong> oración<br />
que g<strong>en</strong>eralm<strong>en</strong>te juega.<br />
• En este mismo apartado cu<strong>en</strong>ta con los servicios <strong>de</strong> búsqueda, ya sea <strong>de</strong> manera<br />
común insertando <strong>la</strong> pa<strong>la</strong>bra a buscar <strong>en</strong> un cuadro <strong>de</strong> texto o bi<strong>en</strong> búsquedas<br />
avanzadas <strong>en</strong> formato SQL, don<strong>de</strong> se pue<strong>de</strong> dar los criterios <strong>de</strong> <strong>la</strong> búsqueda<br />
como, por ejemplo, parte <strong>de</strong> oración, etc.<br />
• La funcionalidad <strong>de</strong> este modulo consiste <strong>en</strong> po<strong>de</strong>r añadir más pa<strong>la</strong>bras con su<br />
significado o corregir <strong>la</strong> <strong>de</strong>finición exist<strong>en</strong>te. En base <strong>de</strong>l analizador morfológico<br />
<strong>de</strong> manera automática se transforman <strong>la</strong>s pa<strong>la</strong>bras <strong>en</strong> <strong>de</strong>finición <strong>en</strong> <strong>la</strong> forma<br />
normalizada. Existe <strong>la</strong> posibilidad <strong>de</strong> corregir manualm<strong>en</strong>te los resultados <strong>de</strong><br />
análisis automático.<br />
• Para cada pa<strong>la</strong>bra se muestra <strong>la</strong> información si es <strong>la</strong> pa<strong>la</strong>bra primitiva o <strong>la</strong> pa<strong>la</strong>bra<br />
<strong>de</strong> vocabu<strong>la</strong>rio <strong>de</strong>finidor. Se pue<strong>de</strong> agregar o quitar <strong>la</strong> pa<strong>la</strong>bra seleccionada <strong>en</strong> <strong>la</strong><br />
lista <strong>de</strong> <strong>de</strong>finidores y observar <strong>la</strong> estadística <strong>de</strong> los círculos viciosos para todo el<br />
diccionario y para <strong>la</strong> pa<strong>la</strong>bra seleccionada. El algoritmo que se aplica es el<br />
algoritmo pres<strong>en</strong>tado <strong>en</strong> (Gelbukh and Sidorov, 2002), (Rivera, 2003).<br />
Ejemplos <strong>de</strong> los ciclos pres<strong>en</strong>tados:<br />
1) acción -> impacto -> impresión -> cuerpo -><br />
objeto -> ejercicio -> acción<br />
2) acción -> obra -> acción<br />
3) aceite -> baca<strong>la</strong>o -> aceite<br />
etc.<br />
4 Conclusiones<br />
Se pres<strong>en</strong>tó el sistema que da <strong>la</strong> flexibilidad a un lexicógrafo <strong>de</strong> po<strong>de</strong>r el mismo<br />
manualm<strong>en</strong>te establecer a algunas pa<strong>la</strong>bras candidatas como primitivas semánticas<br />
puras o miembros <strong>de</strong>l vocabu<strong>la</strong>rio <strong>de</strong>finidor, esto con un análisis y criterios válidos<br />
para po<strong>de</strong>r consi<strong>de</strong>rar<strong>la</strong> como tal. El sistema permite agregar <strong>la</strong>s pa<strong>la</strong>bras con sus<br />
<strong>de</strong>finiciones al diccionario explicativo y corregir <strong>la</strong>s <strong>de</strong>finiciones exist<strong>en</strong>tes con<br />
análisis automático <strong>de</strong> los círculos viciosos. Sin embargo, <strong>la</strong>s <strong>de</strong>cisiones finales se<br />
toman por el lexicógrafo <strong>en</strong> base <strong>de</strong> <strong>la</strong> información proporcionada por el sistema.
Refer<strong>en</strong>cias<br />
1. Apresjan, J. (2000) Semantic Lexicography, Oxford University Press. New York. 286 pp..<br />
2. García Quesada, M. (2001). Estudios <strong>de</strong> lingüística Españo<strong>la</strong>. Universidad <strong>de</strong> Granada.<br />
Volum<strong>en</strong> 14 (2001) http://elies.rediris.es/elies14/in<strong>de</strong>x.html.<br />
3. Gelbukh, Alexan<strong>de</strong>r and Grigori Sidorov. (2003) Approach to construction of automatic<br />
morphological analysis systems for inflective <strong>la</strong>nguages with little effort. In:<br />
Computational Linguistics and Intellig<strong>en</strong>t Text Processing. Proc. CICLing-2003, 4 th<br />
International Confer<strong>en</strong>ce on Intellig<strong>en</strong>t Text Processing and Computational Linguistics,<br />
February 15–22, 2003, Mexico City. Lecture Notes in Computer Sci<strong>en</strong>ce N 2588,<br />
Springer-Ver<strong>la</strong>g, pp. 215–220.<br />
4. Gelbukh, Alexan<strong>de</strong>r and Grigori Sidorov. (2002) Automatic Selection of Defining<br />
Vocabu<strong>la</strong>ry in an Exp<strong>la</strong>natory Dictionary. Proc. CICLing-2002, Confer<strong>en</strong>ce on Intellig<strong>en</strong>t<br />
Text Processing and Computational Linguistics, February 16–23, 2001, Mexico City.<br />
Lecture Notes in Computer Sci<strong>en</strong>ce N 2276, Springer-Ver<strong>la</strong>g, pp. 300–303.<br />
5. Ev<strong>en</strong>s, M. N. (ed.), (1988). Re<strong>la</strong>tional mo<strong>de</strong>ls of lexicon: Repres<strong>en</strong>ting knowledge in<br />
semantic network. Cambridge: Cambridge University Press.<br />
6. Kozima, H. and Furugori, T. (1993). Simi<strong>la</strong>rity betwe<strong>en</strong> words computed by spreading<br />
activation on an English dictionary. Proc. 6th conf. of the European chapter of ACL, pp.<br />
232–239.<br />
7. Rivera, G. (2003) Selección automática <strong>de</strong> primitivas semánticas para un diccionario<br />
explicativo <strong>de</strong>l idioma español, Tesis <strong>de</strong> Maestría (director A. Gelbukh, co-director G.<br />
Sidorov), CIC, IPN, <strong>México</strong> D.F.<br />
8. Wierzbicka, A. (1980), Lingua M<strong>en</strong>talis: The semantics of natural <strong>la</strong>nguage. New York:<br />
Aca<strong>de</strong>mic Press.<br />
9. Wierzbicka, A. (1990), Prototypes save: on the uses and abuses of the notion of<br />
"prototypes” in linguistics and re<strong>la</strong>ted fields, in S. L. Tsohatzidis (ed.), Meanings and<br />
Prototypes: Studies in Linguistic Categorization. London: Routledge & Kegan Paul.<br />
10. Wierzbicka, A. (1996), Semantics: Primes and Universals. Oxford: Oxford University<br />
Press.
Descripción formal<br />
<strong>de</strong> secu<strong>en</strong>cias nominales hispanas<br />
Noé Alejandro Castro Sánchez, José Angel Vera Félix, Igor A. Bolshakov<br />
C<strong>en</strong>tro <strong>de</strong> Investigación <strong>en</strong> Computación,<br />
Instituto Politécnico Nacional<br />
<strong>México</strong>, D. F.<br />
{ncastro, javera}@sagitario.cic.ipn.mx<br />
igor@cic.ipn.mx<br />
Resum<strong>en</strong>. A <strong>la</strong>s secu<strong>en</strong>cias <strong>de</strong> nombres y apellidos que forman nombres<br />
oficiales para habitantes <strong>de</strong> los países hispanohab<strong>la</strong>ntes, <strong>la</strong>s d<strong>en</strong>ominamos<br />
Secu<strong>en</strong>cias Nominales (SN) Hispanas. Se propone <strong>la</strong> <strong>de</strong>scripción <strong>de</strong> <strong>la</strong>s SN <strong>en</strong><br />
forma libre y con una gramática g<strong>en</strong>erativa. Esta gramática permite <strong>de</strong>sarrol<strong>la</strong>r<br />
un algoritmo y un programa <strong>de</strong> análisis <strong>de</strong> <strong>la</strong>s SN <strong>en</strong> textos electrónicos. Se<br />
<strong>de</strong>muestra que el programa distingue <strong>la</strong> estructura <strong>de</strong> <strong>la</strong>s SN <strong>de</strong> manera<br />
comparable a como lo realizaría un ser humano.<br />
1 Introducción<br />
A <strong>la</strong>s secu<strong>en</strong>cias <strong>de</strong> nombres y apellidos que forman nombres oficiales para habitantes<br />
<strong>de</strong> los países hispanohab<strong>la</strong>ntes, <strong>la</strong>s d<strong>en</strong>ominamos Secu<strong>en</strong>cias Nominales (SN)<br />
Hispanas.<br />
Es bi<strong>en</strong> conocido que <strong>la</strong>s SN Hispanas son unas <strong>de</strong> <strong>la</strong>s más complejas <strong>en</strong>tre los<br />
l<strong>en</strong>guajes europeos. Se llegan a <strong>en</strong>contrar SN con tres nombres seguidas por los<br />
apellidos paterno y materno. Es <strong>de</strong>cir, es posible <strong>en</strong>contrar SN con cinco o más<br />
pa<strong>la</strong>bras separadas; e.g., Juan Luis Díaz <strong>de</strong> León Santiago.<br />
La estructura <strong>de</strong> <strong>la</strong>s SN es c<strong>la</strong>ra para cada hispanohab<strong>la</strong>nte, por lo que pue<strong>de</strong> ser<br />
estrictam<strong>en</strong>te formalizada. Las aplicaciones <strong>de</strong> <strong>la</strong> formalización incluy<strong>en</strong> al m<strong>en</strong>os:<br />
• Reconocer los nombres humanos <strong>en</strong> textos electrónicos arbitrarios, que es un<br />
problema bi<strong>en</strong> conocido para varios l<strong>en</strong>guajes <strong>en</strong> lingüística computacional [1-4],<br />
[6-10];<br />
• Extraer <strong>de</strong> los títulos <strong>de</strong> trabajos ci<strong>en</strong>tíficos los apellidos <strong>de</strong> autores hispanos,<br />
solucionando el problema <strong>de</strong> atribuir trabajos únicam<strong>en</strong>te a autores hispanos<br />
específicos, para <strong>de</strong>spués recuperarlos correctam<strong>en</strong>te <strong>de</strong> bases <strong>de</strong> datos e Internet,<br />
e.g., id<strong>en</strong>tificar artículos <strong>de</strong> un <strong>de</strong>terminado autor hispano, aún sin importar <strong>la</strong>s<br />
posibles variantes con <strong>la</strong> que pue<strong>de</strong> aparecer su nombre, i.e., Gregorio Pastor<br />
Aldama, ó Pastor Aldama Gregorio, ó G. Pastor A., etc.; v<strong>en</strong>taja que, por ejemplo,<br />
un motor <strong>de</strong> búsqueda no proporciona.<br />
• Automatizar el control <strong>de</strong> los nombres <strong>de</strong> ciudadanos realizado por los organismos<br />
oficiales para id<strong>en</strong>tificar personas <strong>de</strong> manera única y no ambigua.
El objetivo <strong>de</strong> esta investigación es proponer una gramática g<strong>en</strong>erativa que estudie<br />
todos y cada uno <strong>de</strong> los elem<strong>en</strong>tos que participan <strong>en</strong> <strong>la</strong> estructuración <strong>de</strong> nombres<br />
hispanos más comunes y que establezca <strong>la</strong>s reg<strong>la</strong>s necesarias y sufici<strong>en</strong>tes que guí<strong>en</strong><br />
<strong>la</strong> construcción <strong>de</strong> SN. De igual forma se consi<strong>de</strong>ra el <strong>de</strong>sarrollo <strong>de</strong> un algoritmo<br />
capaz <strong>de</strong> <strong>de</strong>tectar, <strong>en</strong> textos electrónicos, SN, <strong>de</strong>scomponi<strong>en</strong>do su estructura <strong>en</strong> sus<br />
elem<strong>en</strong>tos constituy<strong>en</strong>tes.<br />
2 Descripción libre <strong>de</strong> <strong>la</strong>s secu<strong>en</strong>cias nominales<br />
Para analizar y compr<strong>en</strong><strong>de</strong>r <strong>la</strong> estructura <strong>de</strong> una SN hispana, es necesario id<strong>en</strong>tificar<br />
todo elem<strong>en</strong>to que <strong>la</strong> constituye.<br />
Consi<strong>de</strong>ramos como una Secu<strong>en</strong>cia Nominal Completa aquel<strong>la</strong> que se <strong>en</strong>cu<strong>en</strong>tra<br />
constituida por una Secu<strong>en</strong>cia <strong>de</strong> Nombres y una Secu<strong>en</strong>cia <strong>de</strong> Apellidos.<br />
2.1 Secu<strong>en</strong>cia <strong>de</strong> nombres<br />
La Secu<strong>en</strong>cia <strong>de</strong> Nombres consiste <strong>de</strong> uno o varios elem<strong>en</strong>tos. Tradicionalm<strong>en</strong>te solía<br />
constituirse por una <strong>la</strong>rga serie <strong>de</strong> nombres. Actualm<strong>en</strong>te, por razones prácticas, se<br />
limita su número y es más usual <strong>en</strong>contrar casos <strong>de</strong> nombres únicos, e.g., Juan, Ana,<br />
Pedro, María, etc. Dado que es muy raro <strong>en</strong>contrar casos con más <strong>de</strong> tres elem<strong>en</strong>tos,<br />
para efectos <strong>de</strong> nuestra gramática consi<strong>de</strong>raremos como incorrecta aquel<strong>la</strong> secu<strong>en</strong>cia<br />
que rebase este número.<br />
D<strong>en</strong>ominamos Nombres Solos a los nombres antes m<strong>en</strong>cionados. Los agrupamos<br />
como Nombres Solos Masculinos (Noé, Ángel, Raúl, etc) y Nombres Solos<br />
Fem<strong>en</strong>inos (Josefina, Carlota, Alina, etc.).<br />
Estructuras más complejas se forman al re<strong>la</strong>cionar dos Nombres Solos a través <strong>de</strong><br />
una preposición articu<strong>la</strong>da, formación que d<strong>en</strong>ominamos Nombre Compuesto.<br />
Estrictam<strong>en</strong>te hab<strong>la</strong>ndo, esta estructura <strong>la</strong> concebimos como <strong>la</strong> unión <strong>de</strong> un Nombre<br />
Solo y un Complem<strong>en</strong>to Deado, el cual está conformado por <strong>la</strong> preposición (<strong>de</strong>) y un<br />
artículo (no obligatorio), concat<strong>en</strong>ados al segundo Nombre Solo. Ejemplos <strong>de</strong><br />
Complem<strong>en</strong>tos Deado son <strong>de</strong> <strong>la</strong> Luz, <strong>de</strong>l Refugio, <strong>de</strong>l Carm<strong>en</strong>, <strong>de</strong> Jesús, etc. Los<br />
Nombres Compuestos son <strong>de</strong>l tipo: María <strong>de</strong>l Refugio, José <strong>de</strong> Jesús, Antonio <strong>de</strong> <strong>la</strong><br />
Caridad, etc., t<strong>en</strong>i<strong>en</strong>do <strong>la</strong> flexibilidad <strong>de</strong> combinar cualquier Nombre solo,<br />
in<strong>de</strong>p<strong>en</strong>di<strong>en</strong>tem<strong>en</strong>te <strong>de</strong> su sexo, con cualquier Complem<strong>en</strong>to Deado.<br />
Finalm<strong>en</strong>te, id<strong>en</strong>tificamos estructuras que repres<strong>en</strong>tan concat<strong>en</strong>aciones <strong>de</strong> dos<br />
Nombres Solos <strong>de</strong> sexo opuesto. Este tipo <strong>de</strong> agrupaciones pres<strong>en</strong>ta restricciones<br />
formativas motivadas seguram<strong>en</strong>te por una estética <strong>de</strong> tipo fonético, es <strong>de</strong>cir, no es<br />
compatible cualquier combinación arbitraria; <strong>de</strong> tal forma, <strong>en</strong>contramos un número <strong>de</strong><br />
combinaciones muy limitado: José María, María José, José Trinidad, etc., pero no<br />
son aceptadas tup<strong>la</strong>s <strong>de</strong> tipo Antonio Laura, Alejandro Fabio<strong>la</strong>, Gabrie<strong>la</strong> Humberto,<br />
etc. Este tipo <strong>de</strong> re<strong>la</strong>ciones <strong>la</strong>s d<strong>en</strong>ominamos Nombres Combinados, y <strong>en</strong> términos<br />
estrictos constituy<strong>en</strong> dos Nombres Solos.
2.2 Secu<strong>en</strong>cia <strong>de</strong> apellidos<br />
Un apellido hispano se conforma por dos secciones <strong>de</strong> elem<strong>en</strong>tos, conocidos como<br />
Apellido Paterno y Apellido Materno respectivam<strong>en</strong>te. Esta difer<strong>en</strong>cia pres<strong>en</strong>tada<br />
obe<strong>de</strong>ce únicam<strong>en</strong>te a un ord<strong>en</strong> preestablecido para seña<strong>la</strong>r qué apellido <strong>de</strong> una<br />
persona correspon<strong>de</strong> al padre y cuál a <strong>la</strong> madre.<br />
Aunque <strong>en</strong> un principio el sistema pue<strong>de</strong> parecer confuso para algui<strong>en</strong> no<br />
habituado a él, ofrece muchas v<strong>en</strong>tajas. Esta disposición <strong>de</strong> los apellidos ha dado<br />
orig<strong>en</strong> a <strong>la</strong> isonomía o isonimia, que no es más que el estudio <strong>de</strong> <strong>la</strong> frecu<strong>en</strong>cia y<br />
distribución <strong>de</strong> apellidos <strong>en</strong> pob<strong>la</strong>ciones humanas, mediante el cual pued<strong>en</strong><br />
establecerse re<strong>la</strong>ciones <strong>de</strong> par<strong>en</strong>tesco y orig<strong>en</strong>. De esta forma, los métodos isonímicos<br />
que analizan <strong>la</strong> composición <strong>de</strong> apellidos <strong>en</strong> una pob<strong>la</strong>ción, proporcionan una válida<br />
información <strong>de</strong> <strong>la</strong> estructura g<strong>en</strong>ética <strong>de</strong> <strong>la</strong> misma, y constituy<strong>en</strong> un instrum<strong>en</strong>to<br />
habitual <strong>en</strong> estudios <strong>de</strong> dinámica evolutiva <strong>de</strong> pob<strong>la</strong>ciones humanas.<br />
Las secu<strong>en</strong>cias <strong>de</strong> apellidos más s<strong>en</strong>cil<strong>la</strong>s y usuales son <strong>la</strong>s compuestas por un solo<br />
elem<strong>en</strong>to, e.g., Martínez, Castro, Rodríguez, etc. A estas secu<strong>en</strong>cias <strong>la</strong>s d<strong>en</strong>ominamos<br />
Apellidos Solos.<br />
Un conjunto que po<strong>de</strong>mos seña<strong>la</strong>r como ext<strong>en</strong>sión <strong>de</strong>l anterior, es el que contemp<strong>la</strong><br />
Apellidos Solos antecedidos por <strong>la</strong> preposición De, acompañada o no por algún<br />
artículo. A difer<strong>en</strong>cia <strong>de</strong> formaciones recíprocas vistas anteriorm<strong>en</strong>te, los Apellidos<br />
Deado, no son consi<strong>de</strong>rados como complem<strong>en</strong>tos, i.e., no requier<strong>en</strong> concat<strong>en</strong>arse a<br />
otro elem<strong>en</strong>to para <strong>de</strong>terminarse como apellidos. Como ejemplos po<strong>de</strong>mos<br />
m<strong>en</strong>cionar: De León, Del Valle, De <strong>la</strong> Barrera, De los Cobos, etc.<br />
Una práctica dada por uso social y <strong>en</strong> <strong>de</strong>terminados ambi<strong>en</strong>tes, permite a una mujer<br />
casada utilizar <strong>la</strong> fórmu<strong>la</strong> “De + ”; por ejemplo., t<strong>en</strong>i<strong>en</strong>do <strong>la</strong>s<br />
secu<strong>en</strong>cias Alicia Juárez Mor<strong>en</strong>o y Rigoberto Almodóvar Hernán<strong>de</strong>z, <strong>la</strong> esposa, <strong>en</strong><br />
actos sociales, pue<strong>de</strong> utilizar <strong>la</strong> formación Alicia Juárez De Almodóvar; y <strong>en</strong> caso <strong>de</strong><br />
<strong>en</strong>viudar, pue<strong>de</strong> aparecer <strong>en</strong> una nota social <strong>de</strong> pr<strong>en</strong>sa como Alicia Juárez Viuda <strong>de</strong><br />
Almodóvar. Sin embargo, estas fórmu<strong>la</strong>s no se usan con frecu<strong>en</strong>cia, y sobre todo, no<br />
pued<strong>en</strong> aparecer nunca <strong>en</strong> un docum<strong>en</strong>to oficial o legal, c<strong>en</strong>so, acta <strong>de</strong> Registro Civil,<br />
etc.<br />
Una formación más es <strong>la</strong> que alberga pa<strong>la</strong>bras unidas <strong>en</strong>tre sí por <strong>la</strong> preposición <strong>de</strong>.<br />
Una <strong>de</strong> estas pa<strong>la</strong>bras pue<strong>de</strong> existir como una <strong>de</strong> <strong>la</strong>s variantes <strong>de</strong> Apellidos ya<br />
m<strong>en</strong>cionados, pero no ambas. A esta formación <strong>la</strong> d<strong>en</strong>ominamos Apellidos Deado<br />
Inseparables. Como ejemplo po<strong>de</strong>mos m<strong>en</strong>cionar Montes <strong>de</strong> Oca, don<strong>de</strong><br />
<strong>en</strong>contramos Montes como Apellido, pero no <strong>de</strong> Oca.<br />
Formaciones caprichosas <strong>en</strong>contramos <strong>en</strong> apellidos muy poco conocidos, y <strong>de</strong> los<br />
cuales no mucho po<strong>de</strong>mos m<strong>en</strong>cionar. Los elem<strong>en</strong>tos peculiares <strong>de</strong> este conjunto<br />
pued<strong>en</strong> ser La Rubia, La Chica, La Moneda, etc., Catalogamos este tipo <strong>de</strong> estructuras<br />
como Apellidos Articu<strong>la</strong>dos.<br />
En algunos <strong>de</strong> nuestros conjuntos existe <strong>la</strong> intersección <strong>de</strong> elem<strong>en</strong>tos. Por ejemplo,<br />
es común utilizar, como Apellidos Solos, Nombres Solos (Jorge, Santiago, Santos,<br />
Félix, Camilo, Miguel, etc.), y Complem<strong>en</strong>tos Deado (De Miguel, De <strong>la</strong> Cruz, De los<br />
Santos, etc.). No nos parezca raro <strong>en</strong> algún mom<strong>en</strong>to tratar <strong>de</strong> precisar, <strong>de</strong> <strong>la</strong><br />
secu<strong>en</strong>cia Jorge Miguel Félix, qué elem<strong>en</strong>tos conforman el nombre, cuáles el apellido<br />
y <strong>en</strong> qué ord<strong>en</strong> se <strong>en</strong>cu<strong>en</strong>tran escritos (¿cómo <strong>de</strong>bemos nombrar a esta persona?
¿como Jorge o como Félix?). En nuestro mo<strong>de</strong>lo, a este conjunto <strong>de</strong> casos, lo<br />
d<strong>en</strong>ominamos Apellidos exist<strong>en</strong>tes como Nombres.<br />
Las Secu<strong>en</strong>cias <strong>de</strong> Apellidos pued<strong>en</strong> ser alteradas ajustándose a cánones regionales<br />
y/o temporales, o por simple arbitrariedad. De esta manera distinguimos Apellidos<br />
cuya estructura escapa <strong>de</strong> los mo<strong>de</strong>los antes m<strong>en</strong>cionados: Ponce <strong>de</strong> León, González-<br />
Hermosillo, Molina y Vedia, Barrera-y-Fu<strong>en</strong>tes, De Zárate y Urbina, etc. Pero si<br />
<strong>de</strong>scomponemos estas estructuras <strong>en</strong> sus elem<strong>en</strong>tos atómicos, notamos que a éstos los<br />
hemos ya <strong>de</strong>scrito anteriorm<strong>en</strong>te. Para conservar <strong>la</strong> formación completa <strong>de</strong>l apellido<br />
introducimos una nueva agrupación, que d<strong>en</strong>ominamos Apellidos Compuestos. Estos<br />
se forman combinando dos segm<strong>en</strong>tos, constituidos cada uno por un elem<strong>en</strong>to <strong>de</strong> los<br />
conjuntos ya m<strong>en</strong>cionados <strong>en</strong> esta sección, unidos por simple concat<strong>en</strong>ación, por<br />
alguna conjunción, guiones o ambos.<br />
Los casos <strong>en</strong> los cuales nuestra <strong>de</strong>scripción no funciona son bastante raros, y<br />
haremos m<strong>en</strong>ción <strong>de</strong> ellos <strong>en</strong> <strong>la</strong> conclusión.<br />
3 Gramática g<strong>en</strong>erativa<br />
Antes <strong>de</strong> iniciar con <strong>la</strong> <strong>de</strong>scripción <strong>de</strong> nuestra gramática, es necesario anticipar<br />
algunas consi<strong>de</strong>raciones.<br />
1. Estos símbolos son terminales:<br />
a) Los nombres propios (pa<strong>la</strong>bras escritas <strong>en</strong> letra cursiva).<br />
b) El símbolo <strong>de</strong> puntuación – (guión).<br />
c) El conjuntivo y.<br />
d) Las preposiciones articu<strong>la</strong>das De, De <strong>la</strong>, De <strong>la</strong>s, Del y De los.<br />
2. Las d<strong>en</strong>ominaciones <strong>de</strong>finidas más a<strong>de</strong><strong>la</strong>nte, <strong>en</strong> el apartado 3.1.<br />
3. A m<strong>en</strong>os que se diga otra cosa, el <strong>la</strong>do izquierdo <strong>de</strong> <strong>la</strong> primera producción es el<br />
símbolo inicial.<br />
3.1 D<strong>en</strong>ominaciones utilizadas<br />
Es necesario incorporar términos más compactos, a fin <strong>de</strong> t<strong>en</strong>er refer<strong>en</strong>cias rápidas y<br />
prepararnos <strong>en</strong> <strong>la</strong> sintaxis <strong>de</strong> nuestra gramática. En <strong>la</strong> tab<strong>la</strong> 1 introducimos <strong>la</strong>s<br />
expresiones m<strong>en</strong>cionadas. En <strong>la</strong>s columnas impares indicamos <strong>la</strong>s d<strong>en</strong>ominaciones a<br />
los conceptos tratados y <strong>en</strong> <strong>la</strong>s columnas pares hacemos m<strong>en</strong>ción <strong>de</strong> su significado<br />
correspondi<strong>en</strong>te:<br />
Tab<strong>la</strong> 1. Expresiones usadas <strong>en</strong> <strong>la</strong> gramática<br />
SecNml Secu<strong>en</strong>cia Nominal ApPat Apellido Paterno<br />
ApMat<br />
Apellido Materno<br />
SecNom Secu<strong>en</strong>cia <strong>de</strong> Nombres ApSolo Apellido Solo<br />
SecAp Secu<strong>en</strong>cia <strong>de</strong> Apellidos ApDeado Apellido Deado
ApDeadoInsprble Apellido Deado<br />
Inseparable<br />
NomSolo Nombre Solo ApArtdo Apellido Articu<strong>la</strong>do<br />
Ncmsto Nombre Compuesto ApExsteNom Apellido exist<strong>en</strong>te<br />
como Nombre<br />
NCmb Nombre Combinado ApCmsto Apellido Compuesto<br />
CplmtoDeado Complem<strong>en</strong>to Deado Sgmto(j) Segm<strong>en</strong>to j-ésimo<br />
3.2 Reg<strong>la</strong>s estructurales<br />
En <strong>la</strong> tab<strong>la</strong> 2 mostramos <strong>la</strong>s reg<strong>la</strong>s <strong>de</strong> <strong>la</strong> gramática que permite <strong>de</strong>finir si una<br />
secu<strong>en</strong>cia <strong>de</strong> pa<strong>la</strong>bras correspon<strong>de</strong> a una SN. Las reg<strong>la</strong>s constan <strong>en</strong> su mayoría <strong>de</strong><br />
símbolos no terminales.<br />
Tab<strong>la</strong> 2. Reg<strong>la</strong>s <strong>de</strong> <strong>la</strong> gramática<br />
1 SecNml SecNom(Sex) | SecAp | SecNom(Sex) SecAp<br />
2 SecNom(Sex) NomSolo(1, Sex) |<br />
NomSolo(1, Sex) NomSolo(2, Sex) |<br />
NomSolo(1, Sex) NomSolo(2, Sex) NomSolo(3, Sex) |<br />
NCmsto(1, Sex) | NomSolo(1, Sex) NCmsto(2, Sex) |<br />
NomSolo(1, Sex) NCmsto(2, Sex -1 ) |<br />
NCmb(Sex) | NomSolo(1, Sex) NCmb(Sex)<br />
3 NCmsto(j,Sex) NomSolo(j, Sex) CplmtoDeado<br />
4 SecAp Ap(pat) | Ap(pat) Ap(mat)<br />
5 Ap(Prgtor) ApSolo | ApDeado | ApDeadoInsprble | ApArtdo |<br />
ApExsteNom | ApCmsto<br />
6 ApCmsto Sgmto(1) Sgmto(2) | Sgmto(1) y Sgmto(2) |<br />
Sgmto(1)–Sgmto(2) | Sgmto(1)–y–Sgmto(2)<br />
7 Sgmto(j) ApSolo | ApDeado | ApExsteNom | De ApExsteNom |<br />
De <strong>la</strong> ExsteNom | Del ExsteNom | De los ExsteNom<br />
Nota 1. j es variable con valores 1 o 2.<br />
Nota2. Los elem<strong>en</strong>tos NomSolo(1, Sex), NomSolo(2, Sex) y NomSolo(3, Sex)<br />
concat<strong>en</strong>ados <strong>en</strong>tre sí son difer<strong>en</strong>tes, es <strong>de</strong>cir, NomSolo(1, Sex) ≠ NomSolo(2, Sex),<br />
NomSolo(2, Sex) ≠ NomSolo(3, Sex) y NomSolo(1, Sex) ≠ NomSolo(3, Sex)<br />
Nota 3. Sex es variable <strong>de</strong> Sexo, con valores mas (masculino) o fem (fem<strong>en</strong>ino). En<br />
cada reg<strong>la</strong> el valor <strong>de</strong> Sex, que pue<strong>de</strong> <strong>en</strong>contrarse varias veces, es el mismo. Sex -1 es<br />
complem<strong>en</strong>to (valor opuesto) <strong>de</strong> Sex.
Nota 4. Prgtor es variable <strong>de</strong> Prog<strong>en</strong>itor, con valores pat (paterno) o mat (materno).<br />
Nota 5 En <strong>la</strong> reg<strong>la</strong> 2 NomSolo(1, Sex) NCmsto(2, Sex -1 ), el primer elem<strong>en</strong>to <strong>de</strong>l<br />
Nombre Compuesto (vea reg<strong>la</strong> 3) guarda re<strong>la</strong>ción con NomSolo(1, Sex). Al estar<br />
éstos concat<strong>en</strong>ados, si<strong>en</strong>do <strong>de</strong> sexo opuesto, se exige que form<strong>en</strong> un Nombre<br />
Combinado válido (vea ejemplo <strong>en</strong> sección 3.4).<br />
3.3 Instancias a los símbolos no terminales<br />
Definimos como instancia a un símbolo no terminal a aquellos símbolos básicos con<br />
los que se forman <strong>la</strong>s SN, conocidos también como terminales –o bi<strong>en</strong>, según los<br />
l<strong>en</strong>guajes <strong>de</strong> programación, compon<strong>en</strong>tes léxicos.<br />
Tab<strong>la</strong> 3. Símbolos terminales y posibles valores<br />
NomSolo(i, mas) Hugo | Gregorio | Rodolfo | Humberto |...<br />
NomSolo(i, fem) Rigoberta | Dolores | Antonieta | Andrea | ...<br />
CplmtoDeado <strong>de</strong> <strong>la</strong> Luz | <strong>de</strong>l Carm<strong>en</strong> | <strong>de</strong>l Refugio | <strong>de</strong> Jesús | …<br />
NCmb(mas) José María | José Trinidad | …<br />
NCmb(fem) María José | María Jesús | …<br />
ApSolo Sánchez | Miranda | Vélez | Landa | ...<br />
ApDeado De <strong>la</strong> Barca | De León | De <strong>la</strong> O | De los Cobos | …<br />
ApDeadoInsprble Montes <strong>de</strong> Oca | Cabeza <strong>de</strong> Vaca | …<br />
ApArtdo La Rubia| La Chica | La Moneda | …<br />
ApExsteNom Jorge | Santiago | Félix | Camilo | Alonso | ...<br />
La variable i <strong>de</strong> <strong>la</strong> fórmu<strong>la</strong> NomSolo(i, Sex) ti<strong>en</strong>e valores 1, 2 ó 3.<br />
3.4 Árboles <strong>de</strong> análisis sintáctico<br />
Un árbol <strong>de</strong> análisis sintáctico se pue<strong>de</strong> consi<strong>de</strong>rar como una repres<strong>en</strong>tación gráfica<br />
<strong>de</strong> una secu<strong>en</strong>cia <strong>de</strong> sustituciones que no muestra <strong>la</strong> elección re<strong>la</strong>tiva al ord<strong>en</strong> <strong>de</strong><br />
sustitución.<br />
Mostramos algunos árboles <strong>de</strong> análisis sintáctico, <strong>de</strong>rivados <strong>de</strong> <strong>la</strong>s sigui<strong>en</strong>tes SN.<br />
• Se <strong>de</strong>riva <strong>de</strong> Enriqueta Molina Linares:<br />
CadNml<br />
SecNom( fem)<br />
SecAp<br />
NomSolo(1, fem) Ap(pat) Ap(mat)<br />
Enriqueta Molina Linares
• El árbol a <strong>de</strong>rivar <strong>de</strong> José María <strong>de</strong>l Refugio Contreras Del Valle es:<br />
CadNml<br />
SecNom(mas)<br />
SecAp<br />
NomSolo(1, mas) NCmsto(2, fem)<br />
Ap(pat) Ap(mat)<br />
NomSolo(2, fem) CplmtoDeado ApSolo ApDeado<br />
José María <strong>de</strong>l Refugio Contreras Del Valle<br />
Dada una Secu<strong>en</strong>cia <strong>de</strong> Nombres formada por un Nombre Solo <strong>de</strong> sexo masculino<br />
y un Nombre Compuesto <strong>de</strong> sexo fem<strong>en</strong>ino, los Nombres Solos (ver último nivel)<br />
<strong>de</strong>b<strong>en</strong> consi<strong>de</strong>rarse como un Nombre Combinado, <strong>de</strong> lo contrario nuestro mo<strong>de</strong>lo<br />
aceptaría Secu<strong>en</strong>cias <strong>de</strong> Nombres extrañas (erróneas) <strong>de</strong>l tipo Roberto Fabio<strong>la</strong>,<br />
Gerardo Patricia, etc.<br />
Como integrantes <strong>de</strong> los L<strong>en</strong>guajes Naturales, los Sistemas <strong>de</strong> Nombres no pued<strong>en</strong><br />
prescindir <strong>de</strong> ambigüeda<strong>de</strong>s. Específicam<strong>en</strong>te, éstas reca<strong>en</strong> <strong>en</strong> <strong>la</strong> <strong>de</strong>terminación <strong>de</strong> <strong>la</strong><br />
estructura <strong>de</strong> una SN, que pue<strong>de</strong> consi<strong>de</strong>rarse <strong>en</strong> más <strong>de</strong> una forma distinta.<br />
Mostremos <strong>la</strong> sigui<strong>en</strong>te SN y los dos árboles sintácticos que pued<strong>en</strong> construirse a<br />
partir <strong>de</strong> el<strong>la</strong>.<br />
Sea <strong>la</strong> secu<strong>en</strong>cia Reinaldo Ponce <strong>de</strong> León y los sigui<strong>en</strong>tes dos casos:<br />
Caso 1: Es posible <strong>de</strong>terminar <strong>la</strong> Secu<strong>en</strong>cia <strong>de</strong> Apellidos como un único Apellido.<br />
CadNml<br />
SecNom(mas)<br />
SecAp<br />
Ap(pat)<br />
ApCmsto<br />
Sgmto(1)<br />
Sgmto(2)<br />
NomSolo(1, mas) ApSolo ApSolo<br />
Reinaldo Ponce <strong>de</strong> León
Caso 2: Es posible <strong>de</strong>terminar <strong>la</strong> Secu<strong>en</strong>cia <strong>de</strong> Apellidos como dos Apellidos.<br />
CadNml<br />
SecNom(mas)<br />
SecAp<br />
Ap(pat)<br />
Ap(mat)<br />
NomSolo(1, mas)<br />
ApSolo ApDeado<br />
Ernesto Ponce <strong>de</strong> León<br />
4 Analizador gramatical<br />
Al construir <strong>la</strong> gramática que guiará el análisis, se <strong>de</strong>be construir también el<br />
analizador gramatical que <strong>de</strong>terminará si se están cumpli<strong>en</strong>do o no <strong>la</strong>s reg<strong>la</strong>s que<br />
hemos e<strong>la</strong>borado.<br />
El tipo <strong>de</strong> analizador que diseñamos es <strong>de</strong> tipo Asc<strong>en</strong>d<strong>en</strong>te, dado que ti<strong>en</strong>e como<br />
objetivo construir el axioma <strong>de</strong> <strong>la</strong> gramática a partir <strong>de</strong> los elem<strong>en</strong>tos <strong>de</strong> léxico que<br />
recibe; es <strong>de</strong>cir, es a partir <strong>de</strong> los elem<strong>en</strong>tos más simples que espera conformar el<br />
nivel más alto <strong>en</strong> <strong>la</strong> gramática: el axioma.<br />
4.1 D<strong>en</strong>ominaciones utilizadas <strong>en</strong> el programa<br />
Es necesario <strong>de</strong>terminar y precisar algunas expresiones que se utilizan como formato<br />
<strong>de</strong>l programa <strong>en</strong> el resultado <strong>de</strong>l análisis. Éstas se han tratado <strong>de</strong> ajustar lo más<br />
posible a <strong>la</strong> gramática que hemos formalizado. En <strong>la</strong> tab<strong>la</strong> 4 listamos <strong>la</strong>s<br />
d<strong>en</strong>ominaciones utilizadas por el programa y <strong>la</strong>s <strong>de</strong>finidas <strong>en</strong> nuestra gramática.<br />
Tab<strong>la</strong> 4. Correspond<strong>en</strong>cia <strong>en</strong>tre d<strong>en</strong>ominaciones <strong>de</strong> programa y gramática<br />
Gramática<br />
SecNom(mas)<br />
SecNom(fem)<br />
NomSolo(i, mas)<br />
NomSolo(i, fem)<br />
Ap(Prgtor)<br />
Programa<br />
(SecNom,M)<br />
(SecNom,F)<br />
(nomi,M)<br />
(nomi,F)<br />
(ap,Prgtor)<br />
La forma <strong>en</strong> que el programa estructura una SN, es por medio <strong>de</strong> etiquetas que<br />
coloca al final <strong>de</strong> cada elem<strong>en</strong>to <strong>en</strong>contrado. Las etiquetas quedan <strong>de</strong>finidas <strong>en</strong> <strong>la</strong><br />
tab<strong>la</strong> 5:
Tab<strong>la</strong> 5. Etiquetas <strong>de</strong> estructuración <strong>de</strong> SN<br />
Etiqueta<br />
(SecTot, x, y)<br />
(SecNom, x)<br />
(SecNom, x, z)<br />
Significado<br />
Etiqueta colocada al final <strong>de</strong> una SN.<br />
Variante 1. Etiqueta colocada al final <strong>de</strong> <strong>la</strong> Secu<strong>en</strong>cia <strong>de</strong><br />
Nombres<br />
Variante 2. Etiqueta colocada al final <strong>de</strong> <strong>la</strong> Secu<strong>en</strong>cia <strong>de</strong><br />
Nombres<br />
El valor y significado <strong>de</strong> cada variable usada <strong>en</strong> <strong>la</strong>s etiquetas se dan <strong>en</strong> <strong>la</strong> tab<strong>la</strong> 6:<br />
Tab<strong>la</strong> 6. Variables para <strong>la</strong>s etiquetas <strong>de</strong> estructuración <strong>de</strong> SN<br />
Variable<br />
Significado<br />
SecTot Secu<strong>en</strong>cia Total.<br />
SecNom Secu<strong>en</strong>cia <strong>de</strong> Nombres.<br />
x Sexo <strong>de</strong> <strong>la</strong> SecNom. Toma el valor M o F.<br />
y, z Consi<strong>de</strong>raciones finales que se hac<strong>en</strong> al final <strong>de</strong> cada etiqueta,<br />
proporcionando información más específica <strong>de</strong>l análisis.<br />
La variable y, pres<strong>en</strong>te sólo <strong>en</strong> <strong>la</strong> etiqueta colocada al final <strong>de</strong> una SN, pue<strong>de</strong> llegar<br />
a tomar los valores especificados <strong>en</strong> <strong>la</strong> tab<strong>la</strong> 7:<br />
Valor<br />
Cmpl<br />
InCmpl<br />
inddo<br />
Tab<strong>la</strong> 7. Valores válidos para <strong>la</strong> variable y<br />
Significado<br />
[Secu<strong>en</strong>cia] Completa. Valor que indica que <strong>la</strong> SN analizada cu<strong>en</strong>ta con<br />
todos los compon<strong>en</strong>tes necesarios.<br />
[Secu<strong>en</strong>cia] Incompleta. En <strong>la</strong> SN, hace falta ya sea <strong>la</strong> Secu<strong>en</strong>cia <strong>de</strong><br />
Nombres o <strong>la</strong> Secu<strong>en</strong>cia <strong>de</strong> Apellidos.<br />
In<strong>de</strong>terminado. En <strong>la</strong> secu<strong>en</strong>cia analizada, los elem<strong>en</strong>tos pres<strong>en</strong>tes sí se<br />
reconoc<strong>en</strong> como nombres pero no forman una estructura coher<strong>en</strong>te.<br />
En <strong>la</strong> tab<strong>la</strong> 8 se especifican los valores válidos para z:<br />
Valor<br />
inddo<br />
sexoCntrio<br />
rep<br />
Larg<br />
Tab<strong>la</strong> 8. Valores válidos para <strong>la</strong> variable z<br />
Significado<br />
In<strong>de</strong>terminado. Seña<strong>la</strong> que <strong>en</strong> <strong>la</strong> secu<strong>en</strong>cia analizada, los elem<strong>en</strong>tos<br />
pres<strong>en</strong>tes sí se reconoc<strong>en</strong> como nombres pero no forman una<br />
estructura coher<strong>en</strong>te.<br />
Sexo Contrario. Indica que se ha <strong>en</strong>contrado un par <strong>de</strong> Nombres <strong>de</strong><br />
sexo opuesto pero éstos no se <strong>en</strong>cu<strong>en</strong>tran <strong>de</strong>finidos d<strong>en</strong>tro <strong>de</strong>l grupo<br />
<strong>de</strong> Nombres Combinados.<br />
Repetidos. Valor que indica que <strong>en</strong> <strong>la</strong> Secu<strong>en</strong>cia <strong>de</strong> Nombres se han<br />
<strong>de</strong>tectado nombres repetidos.<br />
Larga. La Secu<strong>en</strong>cia <strong>de</strong> Nombres es muy ext<strong>en</strong>sa (más <strong>de</strong> tres<br />
elem<strong>en</strong>tos).
4.2 Descripción <strong>de</strong>l programa<br />
En nuestro trabajo, para <strong>la</strong> id<strong>en</strong>tificación <strong>de</strong> <strong>la</strong>s SN, se emplearon diccionarios (bases<br />
<strong>de</strong> datos) <strong>de</strong> nombres y <strong>de</strong> apellidos. El sistema es totalm<strong>en</strong>te <strong>de</strong>p<strong>en</strong>di<strong>en</strong>te <strong>de</strong> estas<br />
bases, aún cuando se utiliza una pequeña heurística para <strong>de</strong>terminar Nombres<br />
Combinados, Apellidos Compuestos, etc. A gran<strong>de</strong>s rasgos, el proceso seguido <strong>en</strong> el<br />
análisis es el sigui<strong>en</strong>te:<br />
En primera instancia, el sistema realiza un parseo por el texto electrónico,<br />
<strong>de</strong>terminando si cada pa<strong>la</strong>bra <strong>en</strong>contrada pert<strong>en</strong>ece o no a <strong>la</strong> base <strong>de</strong> datos; cuando se<br />
ha terminado <strong>de</strong> extraer una <strong>de</strong>terminada secu<strong>en</strong>cia, se aplica a ésta un segundo<br />
proceso <strong>de</strong> análisis más específico (proceso <strong>de</strong> etiquetación), que consiste <strong>en</strong> asignar a<br />
cada elem<strong>en</strong>to su d<strong>en</strong>ominación correspondi<strong>en</strong>te a <strong>la</strong> gramática e<strong>la</strong>borada, según el<br />
lugar que ocupe d<strong>en</strong>tro <strong>de</strong> <strong>la</strong> SN extraída.<br />
Listamos a continuación una serie <strong>de</strong> ejemplos tomados <strong>de</strong>l programa para mostrar<br />
los resultados arrojados:<br />
Secu<strong>en</strong>cia texto: Angélica María <strong>de</strong> <strong>la</strong> Luz Hernán<strong>de</strong>z De Alba<br />
Resultado <strong>de</strong>l programa:<br />
[ [[[Angélica(nom1,F)][María <strong>de</strong> <strong>la</strong> Luz(nom2,F)]](SecNom,F)]<br />
[Hernán<strong>de</strong>z(ap,pat)][De Alba(ap,mat)] ](SecTot,F,Cmpl)<br />
Secu<strong>en</strong>cia <strong>en</strong> texto: Angélica María <strong>de</strong> <strong>la</strong> Lour<strong>de</strong>s Hernán<strong>de</strong>z De Alba<br />
Resultado <strong>de</strong>l programa:<br />
[ [[[Angélica(nom1,F)][María <strong>de</strong> <strong>la</strong> Lour<strong>de</strong>s(nom2,F,inddo)]](SecNom,F)]<br />
[Hernán<strong>de</strong>z(ap,pat)][De Alba(ap,mat)] ](SecTot,F,Cmpl)<br />
Secu<strong>en</strong>cia <strong>en</strong> texto: María Angélica Lor<strong>en</strong>a Patricia De Alba<br />
Resultado <strong>de</strong>l programa:<br />
[ [[[María(nom1,F)] [Angélica(nom2,F)] [Lor<strong>en</strong>a(nom3,F)] [Patricia(nom4,F)]]<br />
(SecNom,F,<strong>la</strong>rg)][De Alba(ap,pat)] ] (SecTot,F,Cmpl)<br />
Secu<strong>en</strong>cia <strong>en</strong> texto: María Angélica<br />
Resultado <strong>de</strong>l programa:<br />
[ [[[María(nom1,F)][Angélica(nom2,F)]](SecNom,F)] ](SecTot,F,Incmpl)<br />
Secu<strong>en</strong>cia <strong>en</strong> texto: De Alba<br />
Resultado <strong>de</strong>l programa:<br />
[ [De Alba(ap,pat)] ](SecTot,inddo,Incmpl)<br />
5 Conclusiones<br />
Son muchos los factores que dificultan el <strong>de</strong>sarrollo <strong>de</strong> un mo<strong>de</strong>lo que sea capaz <strong>de</strong><br />
id<strong>en</strong>tificar y reconocer Secu<strong>en</strong>cias Nominales Hispanas d<strong>en</strong>tro <strong>de</strong> textos electrónicos.<br />
Hemos visto como <strong>la</strong> ambigüedad inher<strong>en</strong>te a sistemas re<strong>la</strong>cionados con el<br />
L<strong>en</strong>guaje Natural dificultan el proceso <strong>de</strong> mo<strong>de</strong><strong>la</strong>ción. No todo lo pres<strong>en</strong>tado <strong>en</strong> este<br />
capítulo es concluy<strong>en</strong>te, nuestro ámbito <strong>de</strong> análisis ha t<strong>en</strong>ido que verse restringido por
<strong>la</strong>s variaciones tan ext<strong>en</strong>sas que exist<strong>en</strong> <strong>en</strong> <strong>la</strong> formación <strong>de</strong> SN Hispanas. Un ejemplo<br />
c<strong>la</strong>ro <strong>de</strong> esto se constata <strong>en</strong> Secu<strong>en</strong>cias <strong>de</strong> Apellidos. Una práctica habitual hace<br />
tiempo era <strong>la</strong> concat<strong>en</strong>ación <strong>de</strong> más <strong>de</strong> dos apellidos para constituir uno solo, e.g.,<br />
Sánchez <strong>de</strong> Anda y Martínez Salgado, Martí y Zayas-Bazán, Bancés y Fernán<strong>de</strong>z-<br />
Criado, etc. Obviam<strong>en</strong>te, el tratar <strong>de</strong> abarcar todos estos casos (y más) resultaría <strong>en</strong><br />
un <strong>en</strong>tre marañado <strong>de</strong> reg<strong>la</strong>s, <strong>en</strong> una complejidad realm<strong>en</strong>te <strong>en</strong>orme.<br />
Notamos que es imposible aplicar análisis morfológico [5], porque los apellidos no<br />
se <strong>en</strong>cu<strong>en</strong>tran normalm<strong>en</strong>te <strong>en</strong> <strong>la</strong>s bases <strong>de</strong> datos <strong>de</strong> los sistemas <strong>de</strong> este tipo (por lo<br />
tanto usamos <strong>la</strong>s mayúscu<strong>la</strong>s para <strong>de</strong>tectar pres<strong>en</strong>cia <strong>de</strong> los apellidos cuando uno <strong>de</strong><br />
éstos no se haya <strong>en</strong> nuestra base <strong>de</strong> datos).<br />
Estos son sólo algunas características que pued<strong>en</strong> dificultar alcanzar el objetivo<br />
que se p<strong>la</strong>nteó <strong>en</strong> este trabajo. La más c<strong>la</strong>ra conclusión <strong>de</strong> esto es que un sistema <strong>de</strong><br />
c<strong>la</strong>sificación <strong>de</strong> nombres no pue<strong>de</strong> ser automatizado <strong>en</strong> su totalidad, siempre será<br />
necesaria <strong>la</strong> interv<strong>en</strong>ción <strong>de</strong>l usuario.<br />
Agra<strong>de</strong>cimi<strong>en</strong>tos<br />
Este trabajo fue realizado con el apoyo parcial <strong>de</strong> CONACyT y PIFI. Deseamos<br />
agra<strong>de</strong>cer, asimismo, al Dr. Grigori Sidorov por sus valiosos com<strong>en</strong>tarios y<br />
contribuciones.<br />
Refer<strong>en</strong>cias<br />
1. Ch<strong>en</strong>, H. H., S. J. Huang, Y. W. Ding, S. C. Tsai. (1998). Proper Name Trans<strong>la</strong>tion in<br />
Cross-Language Information Retrieval. Proceedings of the 17 th International Confer<strong>en</strong>ce on<br />
Computational Linguistics. pp 232 – 236. http://acl.ldc.up<strong>en</strong>n.edu/P/P98/P98-1036.pdf<br />
2. Chinchor, N. (1997). MUC-7 Named Entity Task Definition. Proceedings of the 7 th Message<br />
Un<strong>de</strong>rstanding Confer<strong>en</strong>ce.<br />
http://www.itl.nist.gov/iaui/894.02/re<strong>la</strong>ted_projects/muc/proceedings/ne_task.html<br />
3. Galicia-Haro, S. N., A. Gelbukh, I. A. Bolshakov. Recognition of Named Entities in Spanish<br />
Texts. Proceedings of International Confer<strong>en</strong>ce MICAI’2004, Mexico City, Mexico. Lecture<br />
Notes in Artificial Intellig<strong>en</strong>ce, ISSN 0302-9843, Springer, 2004 (accepted).<br />
4. Galicia-Haro, S. N., A. Gelbukh, I. A. Bolshakov. Web-based Sources for an Annotated<br />
Corpus Building and Composite Proper Name Id<strong>en</strong>tification. Proceedings of International<br />
Confer<strong>en</strong>ce AWIC04, Cancun, Mexico. Lecture Notes in Computer Sci<strong>en</strong>ce, ISSN 0302-<br />
9843, Springer, 2004 (accepted).<br />
5. Alexan<strong>de</strong>r Gelbukh and Grigori Sidorov. Approach to construction of automatic<br />
morphological analysis systems for inflective <strong>la</strong>nguages with little effort. In: Computational<br />
Linguistics and Intellig<strong>en</strong>t Text Processing. Proc. CICLing-2003, 4th International<br />
Confer<strong>en</strong>ce on Intellig<strong>en</strong>t Text Processing and Computational Linguistics, February 15–22,<br />
2003, Mexico City. LNCS, N 2588, Springer-Ver<strong>la</strong>g, pp. 215–220.<br />
6. Huang, F., A. Waibel. An Adaptive Approach to Named Entity Extraction for Meeting<br />
Applications .http://www.is.cs.cmu.edu/papers/speech/HLT2002/hlt2002_fei.pdf<br />
7. Mani, I., R. McMillian, S. Luperfoy, E. Lusher, S. Laskowiski. (1993). Id<strong>en</strong>tifying Unknown<br />
Proper Names in Newswire Text. Proceedings of the Workshop on Acquisition of Lexical<br />
Knowledge from Text. pp 44 – 54. http://acl.ldc.up<strong>en</strong>n.edu/W/W93/W93-0105.pdf
8. Petasis, G., S. Petridis, G. Paliouras, V. Karkaletsis, S. J. Perantonis, C. D. Spyropoulos.<br />
(2000). Symbolic and Neural Learning for Named-Entity Recognition. Proceedings of the<br />
Symposium on Computational Intellig<strong>en</strong>ce and Learning. pp. 58-66.<br />
http://iit.<strong>de</strong>mokritos.gr/~paliourg/papers/COIL2000.pdf<br />
9. Thompson, P., C. C. Dozier. (1997). Name Searching and Information Retrieval.<br />
Proceedings of 2 nd Confer<strong>en</strong>ce on Empirical Methods in Natural Language Processing.<br />
Provid<strong>en</strong>ce, Rho<strong>de</strong> Is<strong>la</strong>nd. pp. 134-140.<br />
http://acl.eldoc.ub.rug.nl/mirror/W/W97/W97-0315.pdf<br />
10.Wachol<strong>de</strong>r, N., Y. Ravin, M. Choi. (1997). Disambiguation of Proper Names in Text.<br />
Proceedings of the 5th Confer<strong>en</strong>ce on Applied Natural Language Processing. pp. 202 – 208<br />
http://www.research.ibm.com/tal<strong>en</strong>t/docum<strong>en</strong>ts/anlp97.pdf
Análisis e implem<strong>en</strong>tación <strong>de</strong> algoritmos<br />
para <strong>la</strong> solución <strong>de</strong> <strong>la</strong>berintos <strong>de</strong> estructura conocida<br />
Omar Rodríguez, Erik Hernán<strong>de</strong>z<br />
Facultad <strong>de</strong> Informática, Universidad Autónoma <strong>de</strong> Querétaro,<br />
<strong>México</strong><br />
Resum<strong>en</strong>. El pres<strong>en</strong>te capítulo explica el análisis e implem<strong>en</strong>tación <strong>de</strong><br />
algoritmos para lograr que un robot móvil sea capaz <strong>de</strong> navegar <strong>de</strong> forma<br />
autónoma d<strong>en</strong>tro <strong>de</strong> un <strong>la</strong>berinto, <strong>de</strong> 3.6x3.6 metros, conocido con anterioridad<br />
y que consta <strong>de</strong> pare<strong>de</strong>s <strong>de</strong> 25 cm <strong>de</strong> altura con ángulos rectos y calles <strong>de</strong> 40 cm<br />
<strong>de</strong> ancho. La principal dificultad, radica <strong>en</strong> que no se conoce con anterioridad <strong>la</strong><br />
posición y ori<strong>en</strong>tación inicial <strong>de</strong>l robot. En el capítulo se analizan varios<br />
algoritmos clásicos aplicables a <strong>la</strong> solución <strong>de</strong> <strong>la</strong>berintos y se escoge uno para<br />
<strong>de</strong>sarrol<strong>la</strong>rlo completam<strong>en</strong>te sobre un robot específico con un microcontro<strong>la</strong>dor<br />
PIC16F877.<br />
1 Introducción<br />
Los concursos <strong>de</strong> robótica van cobrando cada vez mayor fuerza, no solo a nivel<br />
académico, sino a nivel empresarial, puesto que repres<strong>en</strong>tan una base muy importante<br />
para <strong>la</strong> creación <strong>de</strong> proyectos aplicables directam<strong>en</strong>te <strong>en</strong> los procesos <strong>de</strong> <strong>de</strong>sarrollo e<br />
investigación <strong>de</strong> <strong>la</strong> industria.<br />
Entre los objetivos particu<strong>la</strong>res que se persigu<strong>en</strong>, están analizar los problemas <strong>de</strong><br />
codificación <strong>de</strong>l algoritmo <strong>en</strong> un microcontro<strong>la</strong>dor específico, programar <strong>la</strong>s etapas <strong>de</strong><br />
adquisición <strong>de</strong> datos y control <strong>de</strong> motores <strong>en</strong> el microcontro<strong>la</strong>dor.<br />
La categoría consiste <strong>en</strong> <strong>la</strong> navegación autónoma a través <strong>de</strong> un <strong>la</strong>berinto <strong>de</strong><br />
3.6x3.6 metros <strong>de</strong>s<strong>de</strong> un punto <strong>de</strong> partida no conocido hasta <strong>en</strong>contrar <strong>la</strong> salida. El<br />
<strong>la</strong>berinto estará constituido por pare<strong>de</strong>s <strong>de</strong> 25 cm <strong>de</strong> altura, diseñadas <strong>en</strong> ángulos<br />
rectos y con calles <strong>de</strong> 40 cm <strong>de</strong> anchura. Todas <strong>la</strong>s medidas son aproximadas, el robot<br />
<strong>de</strong>berá ser capaz <strong>de</strong> soportar una incertidumbre <strong>de</strong> medida <strong>de</strong>l 10%.<br />
2 Desarrollo<br />
2.1 Descripción <strong>de</strong>l robot<br />
Por <strong>la</strong>s características <strong>de</strong> <strong>la</strong> categoría, es necesario que el robot t<strong>en</strong>ga <strong>la</strong> posibilidad <strong>de</strong><br />
girar sobre su propio eje, y realice giros y paros con rapi<strong>de</strong>z. Las dim<strong>en</strong>siones<br />
máximas <strong>de</strong>l robot están limitadas a 20 cm <strong>de</strong> ancho, 30 cm <strong>de</strong> <strong>la</strong>rgo y 25 cm <strong>de</strong> alto,<br />
sin restricción <strong>de</strong> peso.<br />
Por los requerimi<strong>en</strong>tos <strong>de</strong> movilidad m<strong>en</strong>cionados anteriorm<strong>en</strong>te, se colocaron dos<br />
servomotores <strong>en</strong> el eje transversal, lo que permite realizar movimi<strong>en</strong>tos contro<strong>la</strong>dos,
como se pue<strong>de</strong> ver <strong>en</strong> <strong>la</strong> figura 1, sin per<strong>de</strong>r <strong>en</strong> mom<strong>en</strong>to alguno <strong>la</strong> posición actual.<br />
Para equilibrar el robot este se apoya <strong>en</strong> una tercera rueda que gira librem<strong>en</strong>te sin<br />
repres<strong>en</strong>tar fricción significativa al sistema, obt<strong>en</strong>i<strong>en</strong>do un robot que es capaz <strong>de</strong><br />
alcanzar altas velocida<strong>de</strong>s y máxima maniobrabilidad.<br />
La interacción con el medio se realiza mediante s<strong>en</strong>sores infrarrojos, que <strong>de</strong>tectan<br />
<strong>la</strong> exist<strong>en</strong>cia o no <strong>de</strong> pare<strong>de</strong>s cercanas, estos s<strong>en</strong>sores trabajan con modu<strong>la</strong>ción<br />
estándar <strong>de</strong> 40 KHz. En cuanto a los servomotores, estos ya incluy<strong>en</strong> sus respectivas<br />
etapas <strong>de</strong> amplificación <strong>de</strong> pot<strong>en</strong>cia y se les <strong>en</strong>vía <strong>la</strong> dirección y velocidad <strong>de</strong> giro a<br />
través <strong>de</strong> un pulso cuadrado <strong>de</strong> ancho proporcional a <strong>la</strong> velocidad <strong>de</strong>seada. La<br />
posición <strong>de</strong> cada una <strong>de</strong> <strong>la</strong>s l<strong>la</strong>ntas <strong>de</strong>l robot se mi<strong>de</strong> con dos s<strong>en</strong>sores infrarrojos<br />
ubicados <strong>en</strong> cada una <strong>de</strong> el<strong>la</strong>s, <strong>de</strong> tal forma que proporcionan el numero <strong>de</strong> vueltas<br />
que se realiza, por lo que se pued<strong>en</strong> dar <strong>la</strong>s vueltas <strong>de</strong> 90º, 180º o 360º con toda<br />
precisión, a su vez esto sirve para conocer cuanto ha avanzado el robot.<br />
Como p<strong>la</strong>taforma <strong>de</strong> programación y control el sistema cu<strong>en</strong>ta con un<br />
microcontro<strong>la</strong>dor PIC16F877 [1], que a<strong>de</strong>más <strong>de</strong> contro<strong>la</strong>r s<strong>en</strong>sores y motores, <strong>de</strong>be<br />
cont<strong>en</strong>er el programa principal, almac<strong>en</strong>ar <strong>la</strong> estructura <strong>de</strong>l <strong>la</strong>berinto <strong>en</strong> memoria y<br />
<strong>de</strong>sarrol<strong>la</strong>r todas <strong>la</strong>s estrategias <strong>de</strong> control y tareas complem<strong>en</strong>tarias que se requier<strong>en</strong><br />
para el funcionami<strong>en</strong>to <strong>de</strong>l robot. Para soportar todo esto, se escogió este<br />
microcontro<strong>la</strong>dor ya que posee una arquitectura RISC <strong>de</strong> alto r<strong>en</strong>dimi<strong>en</strong>to que cu<strong>en</strong>ta<br />
con 368 bytes <strong>de</strong> memoria RAM, 256 bytes <strong>de</strong> EEPROM para datos y 8192<br />
localida<strong>de</strong>s <strong>de</strong> memoria FLASH <strong>de</strong> 14 bits por localidad para almac<strong>en</strong>ami<strong>en</strong>to <strong>de</strong>l<br />
programa y datos perman<strong>en</strong>tes, a<strong>de</strong>más cu<strong>en</strong>ta con periféricos tales como un ADC <strong>de</strong><br />
10 bits con multiplexor <strong>de</strong> 8 canales, 2 salidas PWM, 3 contadores-temporizadores,<br />
comunicación SPI, I 2 C, USART, 33 pines <strong>de</strong> <strong>en</strong>trada y salida digital <strong>de</strong> uso g<strong>en</strong>eral y<br />
13 canales <strong>de</strong> interrupción. Todos los programas se <strong>de</strong>sarrol<strong>la</strong>n <strong>en</strong> l<strong>en</strong>guaje C<br />
utilizando el compi<strong>la</strong>dor PICC <strong>de</strong> CCS, el cual ti<strong>en</strong>e como principal limitación, sobre<br />
todo para esta tarea, que no pued<strong>en</strong> manejarse apuntadores a <strong>la</strong> memoria FLASH.<br />
Fig. 1. Imag<strong>en</strong> <strong>de</strong>l robot
2.2 Descripción y análisis <strong>de</strong> algoritmos<br />
2.2.1 Algoritmos <strong>de</strong> <strong>la</strong> mano <strong>de</strong>recha y <strong>de</strong> <strong>la</strong> mano izquierda<br />
Los primeros algoritmos que t<strong>en</strong>emos que discutir por su popu<strong>la</strong>ridad y s<strong>en</strong>cillez, son<br />
los algoritmos <strong>de</strong> <strong>la</strong> mano <strong>de</strong>recha y <strong>de</strong> <strong>la</strong> mano izquierda, estos algoritmos se basan<br />
<strong>en</strong> seguir una pared <strong>de</strong>l <strong>la</strong>berinto (izquierda o <strong>de</strong>recha según el caso) y resultan<br />
efectivos <strong>en</strong> casi todos los casos, se conozca o no el <strong>la</strong>berinto. Sus principales<br />
<strong>de</strong>sv<strong>en</strong>tajas, radican <strong>en</strong> que no resuelv<strong>en</strong> <strong>la</strong>berintos no conectados (con is<strong>la</strong>s internas)<br />
si no se empieza <strong>de</strong>s<strong>de</strong> una <strong>de</strong> <strong>la</strong>s pare<strong>de</strong>s exteriores <strong>de</strong>l <strong>la</strong>berinto y por otro <strong>la</strong>do <strong>la</strong><br />
trayectoria que sigu<strong>en</strong> para <strong>en</strong>contrar <strong>la</strong> salida dista mucho <strong>de</strong> ser <strong>la</strong> óptima, ya que<br />
recorre todas <strong>la</strong>s opciones hasta <strong>en</strong>contrar <strong>la</strong> salida.<br />
Dados que el problema que se p<strong>la</strong>ntea consiste <strong>en</strong> un <strong>la</strong>berinto no conectado y el<br />
punto <strong>de</strong> inicio es <strong>de</strong>sconocido, estos algoritmos no pued<strong>en</strong> ser aplicados, Aunque<br />
modificaciones <strong>de</strong> este algoritmo, como <strong>la</strong> p<strong>la</strong>nteada por Lucas <strong>en</strong> 1882 [2] que<br />
consiste <strong>en</strong> ir pintando una línea por <strong>la</strong>s trayectorias recorridas logran resolver<br />
satisfactoriam<strong>en</strong>te aún este tipo <strong>de</strong> <strong>la</strong>berintos, si utilizamos este tipo <strong>de</strong> algoritmos<br />
per<strong>de</strong>ríamos <strong>la</strong> v<strong>en</strong>taja que se ti<strong>en</strong>e por conocer <strong>la</strong> estructura <strong>de</strong>l <strong>la</strong>berinto con<br />
anterioridad.<br />
2.2.2 Algoritmo <strong>de</strong> recorrido recursivo<br />
Este algoritmo se basa <strong>en</strong> el recorrido <strong>de</strong> un camino, regresando fallo cuando<br />
<strong>en</strong>contramos una pared, y éxito si <strong>en</strong>contramos una salida, <strong>en</strong> cualquier otro caso,<br />
int<strong>en</strong>tamos recorrer <strong>de</strong> manera recursiva <strong>en</strong> cualquiera <strong>de</strong> <strong>la</strong>s 4 direcciones posibles,<br />
cuando int<strong>en</strong>tamos una nueva dirección trazamos una línea, y borramos una línea<br />
cuando <strong>en</strong>contramos fallo. Este método <strong>en</strong>contrará siempre una salida, si es que<br />
existe, pero <strong>en</strong> <strong>la</strong> mayoría <strong>de</strong> los casos, no será el camino mas corto, y requiere<br />
recorrer una gran parte <strong>de</strong>l <strong>la</strong>berinto para salir <strong>de</strong> él. El hecho <strong>de</strong> que <strong>la</strong> compet<strong>en</strong>cia<br />
sea por tiempo, y <strong>la</strong> arquitectura que estamos manejando, impi<strong>de</strong> manejar <strong>la</strong><br />
recursividad <strong>de</strong> manera s<strong>en</strong>cil<strong>la</strong>, a<strong>de</strong>más <strong>de</strong>l hecho que <strong>de</strong> <strong>la</strong>s 2 posibles salidas<br />
exist<strong>en</strong>tes <strong>en</strong> el <strong>la</strong>berinto, solo una <strong>de</strong> el<strong>la</strong>s es válida y no existe manera <strong>de</strong> <strong>de</strong>scartar<br />
<strong>la</strong> otra utilizando este algoritmo.<br />
2.2.3 Algoritmo <strong>de</strong> Tremaux [3]<br />
Esta es <strong>la</strong> versión <strong>de</strong>l algoritmo anterior pero <strong>de</strong> manera tal que pueda ser ejecutada<br />
por un humano. Se recorre progresivam<strong>en</strong>te el grafo <strong>de</strong>l <strong>la</strong>berinto. Este asegura que<br />
todos los vértices d<strong>en</strong>tro <strong>de</strong> cierta distancia sean visitados. Es fácil alcanzar los<br />
vértices a una distancia 1, y regresar al punto <strong>de</strong> partida. Cada camino <strong>de</strong> estos es<br />
marcado para llegar <strong>de</strong> X0 a X1, como el camino <strong>de</strong> <strong>en</strong>trada. Para llegar a un vértice a<br />
una distancia 2, <strong>de</strong>s<strong>de</strong> el orig<strong>en</strong>, se selecciona el camino anterior y se vuelve a marcar.<br />
Cuando todos los caminos posibles <strong>de</strong> X1 son visitados, se marca el camino como<br />
cerrado, y se toma el sigui<strong>en</strong>te camino <strong>de</strong>s<strong>de</strong> el orig<strong>en</strong>, hasta que no qued<strong>en</strong> caminos<br />
disponibles <strong>de</strong>s<strong>de</strong> el orig<strong>en</strong>.<br />
2.2.4 Algoritmo <strong>de</strong> Tarry [3]<br />
Este método publicado por Tarry <strong>en</strong> 1895, crea un camino cíclico <strong>en</strong> el <strong>la</strong>berinto,<br />
pasando por cada cruce una y solo una vez <strong>en</strong> cada dirección. Iniciando <strong>en</strong> una
posición A, selecciona un camino cualquiera y lo marca <strong>de</strong> manera especial, cuando<br />
llega al sigui<strong>en</strong>te cruce, pue<strong>de</strong> haber sido visitado o no, y lo marca acor<strong>de</strong> con ello. El<br />
algoritmo termina <strong>en</strong> el lugar <strong>de</strong> inicio, habi<strong>en</strong>do recorrido cada cruce, por lo m<strong>en</strong>os<br />
una vez <strong>en</strong> cada dirección.<br />
Una mejora a los dos algoritmos anteriores fue propuesta por Fra<strong>en</strong>kel [4], [5], <strong>la</strong><br />
cual asegura que cada cruce será transitado, a lo más, una vez <strong>en</strong> cada dirección.<br />
Estos tres algoritmos anteriores, fueron <strong>de</strong>scartados porque, al igual que los <strong>de</strong><br />
mano izquierda y <strong>de</strong>recha, supon<strong>en</strong> que el <strong>la</strong>berinto no se conoce previam<strong>en</strong>te, por lo<br />
que requier<strong>en</strong> recorrer una gran parte <strong>de</strong>l <strong>la</strong>berinto para <strong>en</strong>contrar <strong>la</strong> salida.<br />
2.2.5 Algoritmo <strong>de</strong> Pledge<br />
Otro algoritmo <strong>de</strong> muy s<strong>en</strong>cil<strong>la</strong> implem<strong>en</strong>tación, es el <strong>de</strong> Pledge [6] que consiste <strong>en</strong><br />
mant<strong>en</strong>er <strong>la</strong> dirección <strong>en</strong> que se esta apuntando <strong>en</strong> cada mom<strong>en</strong>to, a pesar <strong>de</strong> su<br />
simplicidad, al igual que los algoritmos <strong>de</strong> <strong>la</strong> mano izquierda y <strong>de</strong>recha, no es<br />
aplicable a todo tipo <strong>de</strong> <strong>la</strong>berintos, puesto que <strong>en</strong> ciertos casos, como los <strong>en</strong>contrados<br />
<strong>en</strong> esta categoría, el robot queda cic<strong>la</strong>do <strong>en</strong> un solo camino.<br />
2.2.6 Algoritmo <strong>de</strong> Lee<br />
El algoritmo p<strong>la</strong>nteado por Lee [7], consta <strong>de</strong> dos partes, primero <strong>la</strong> creación <strong>de</strong>l<br />
mapa <strong>de</strong>l <strong>la</strong>berinto <strong>en</strong> memoria, por medio <strong>de</strong> recorridos sucesivos. Durante estos<br />
recorridos, se anotan <strong>la</strong>s pare<strong>de</strong>s que ti<strong>en</strong>e cada celda conforme el robot <strong>la</strong>s visita.,<br />
así, si <strong>la</strong> celda solo tuviera pared al norte, se le asigna un 8, pero si a<strong>de</strong>más ti<strong>en</strong>e<br />
también pared al este, se le asigna un 10, 8 <strong>de</strong> <strong>la</strong> pared norte y 2 <strong>de</strong> <strong>la</strong> pared este. Esta<br />
parte, permite ver que requeriremos una cantidad <strong>de</strong> memoria, <strong>de</strong> tamaño sufici<strong>en</strong>te<br />
para, por lo m<strong>en</strong>os, almac<strong>en</strong>ar un arreglo con <strong>la</strong> información <strong>de</strong> cada celda <strong>de</strong>l<br />
<strong>la</strong>berinto.<br />
Una vez que se ti<strong>en</strong>e un mapa <strong>de</strong>l <strong>la</strong>berinto, se asignan un número a cada celda, <strong>de</strong><br />
<strong>la</strong> sigui<strong>en</strong>te manera:<br />
Iniciamos colocando un 0 <strong>en</strong> cada una <strong>de</strong> <strong>la</strong>s celdas <strong>de</strong>l <strong>la</strong>berinto que se consi<strong>de</strong>r<strong>en</strong><br />
como meta. Deberemos recorrer el <strong>la</strong>berinto columna por columna <strong>en</strong> repetidas<br />
ocasiones. Para cada celda <strong>en</strong> <strong>la</strong> que esté el robot, se busca <strong>en</strong> nuestro mapa si dicha<br />
celda aún no está numerada y si <strong>la</strong>s celdas a <strong>la</strong>s que puedo llegar a partir <strong>de</strong> <strong>la</strong> actual<br />
ya se <strong>en</strong>cu<strong>en</strong>tran numeradas, si no es así, <strong>en</strong> esta visita no haremos nada. En caso <strong>de</strong><br />
que por lo m<strong>en</strong>os alguna <strong>de</strong> <strong>la</strong>s celdas vecinas ya se <strong>en</strong>cu<strong>en</strong>tre numerada, y <strong>la</strong> actual<br />
no, suponi<strong>en</strong>do que el número <strong>de</strong> Lee más pequeño <strong>de</strong> <strong>la</strong>s celdas vecinas sea n, a <strong>la</strong><br />
celda actual le asignamos n+1.<br />
Este proceso se repite hasta que ya no pueda realizar cambios <strong>en</strong> el mapa, lo que<br />
supondrá que ya todas <strong>la</strong>s celdas se <strong>en</strong>cu<strong>en</strong>tran numeradas.<br />
Lo anterior supone que ya se ti<strong>en</strong>e <strong>en</strong> memoria el mapa <strong>de</strong>l <strong>la</strong>berinto. De no ser así,<br />
se pue<strong>de</strong> modificar <strong>la</strong> g<strong>en</strong>eración <strong>de</strong> números, suponi<strong>en</strong>do que el <strong>la</strong>berinto solo ti<strong>en</strong>e<br />
pare<strong>de</strong>s <strong>en</strong> los extremos y calcu<strong>la</strong>ndo los números. Al cambiar <strong>de</strong> una celda a <strong>la</strong><br />
sigui<strong>en</strong>te, verificamos si <strong>en</strong> realidad no exist<strong>en</strong> más pare<strong>de</strong>s, <strong>en</strong> caso contrario,<br />
actualizamos el mapa y recalcu<strong>la</strong>mos los números.<br />
Una vez g<strong>en</strong>erados los números es fácil <strong>en</strong>contrar el camino d<strong>en</strong>tro <strong>de</strong>l <strong>la</strong>berinto, y<br />
a<strong>de</strong>más se asegura que será siempre el camino más corto, puesto que estando <strong>en</strong>
cualquier celda <strong>de</strong>l <strong>la</strong>berinto basta con moverse a <strong>la</strong> celda vecina que cont<strong>en</strong>ga un<br />
número m<strong>en</strong>or.<br />
Fig. 2. Estructura <strong>de</strong>l <strong>la</strong>berinto, con valores <strong>de</strong> distancia a <strong>la</strong> salida<br />
Este algoritmo fue escogido como base para <strong>la</strong> solución <strong>de</strong> nuestro problema,<br />
porque a<strong>de</strong>más <strong>de</strong> resolver todo tipo <strong>de</strong> <strong>la</strong>berintos y garantizar <strong>la</strong> ruta óptima, p<strong>la</strong>ntea<br />
<strong>la</strong> solución <strong>de</strong>l problema <strong>en</strong> dos etapas, primero conocer el <strong>la</strong>berinto y <strong>de</strong>spués<br />
recorrerlo, esta característica lo hace muy fácil <strong>de</strong> a<strong>de</strong>cuar a nuestras necesida<strong>de</strong>s, ya<br />
que conocemos <strong>de</strong> antemano el <strong>la</strong>berinto y po<strong>de</strong>mos realizar el análisis y <strong>la</strong><br />
numeración <strong>de</strong>l mismo con ante<strong>la</strong>ción.<br />
2.3 Desarrollo e implem<strong>en</strong>tación <strong>de</strong>l algoritmo<br />
Debido a <strong>la</strong>s características <strong>de</strong>l problema y a <strong>la</strong> p<strong>la</strong>taforma sobre <strong>la</strong> que se va a<br />
programar, se escogió <strong>de</strong>sarrol<strong>la</strong>r un algoritmo <strong>de</strong> bajos requerimi<strong>en</strong>tos basado<br />
principalm<strong>en</strong>te <strong>en</strong> el algoritmo <strong>de</strong> Lee, pero aprovechando el conocimi<strong>en</strong>to previo <strong>de</strong>l<br />
<strong>la</strong>berinto, por lo que el proceso <strong>de</strong> asignación <strong>de</strong> números se pue<strong>de</strong> realizar incluso<br />
antes <strong>de</strong> programar el robot. Esto junto con el <strong>de</strong>sarrollo <strong>de</strong> un método que nos<br />
permite id<strong>en</strong>tificar <strong>en</strong> el m<strong>en</strong>or número <strong>de</strong> movimi<strong>en</strong>tos posibles (g<strong>en</strong>eralm<strong>en</strong>te <strong>en</strong>tre<br />
3 y 6 movimi<strong>en</strong>tos), <strong>la</strong> ubicación y ori<strong>en</strong>tación actual <strong>de</strong>l robot, proporciona <strong>la</strong><br />
información sufici<strong>en</strong>te para <strong>de</strong>spués seguir <strong>la</strong> segunda parte <strong>de</strong>l algoritmo <strong>de</strong> Lee<br />
hasta llegar a <strong>la</strong> salida, lo cual se realiza por <strong>la</strong> ruta óptima.<br />
Primeram<strong>en</strong>te estudiamos el <strong>la</strong>berinto <strong>de</strong> prueba <strong>de</strong> <strong>la</strong> figura 2 y numeramos cada<br />
casil<strong>la</strong> con <strong>la</strong> distancia <strong>en</strong> casil<strong>la</strong>s que se requiere recorrer para llegar <strong>de</strong>s<strong>de</strong> ahí a <strong>la</strong><br />
salida. Por lo que para salir <strong>de</strong> él, sólo es necesario moverse siempre hacia una casil<strong>la</strong><br />
<strong>de</strong> m<strong>en</strong>or valor.
Para almac<strong>en</strong>ar el conocimi<strong>en</strong>to previo que se ti<strong>en</strong>e <strong>de</strong>l <strong>la</strong>berinto, se utilizan 4<br />
arreglos <strong>de</strong> 9x9 <strong>en</strong> memoria f<strong>la</strong>sh, cada uno <strong>de</strong> estos arreglos guarda toda <strong>la</strong><br />
información <strong>de</strong>l <strong>la</strong>berinto visto <strong>de</strong>s<strong>de</strong> una <strong>de</strong> <strong>la</strong>s direcciones posibles (norte, sur, este<br />
y oeste) <strong>en</strong> cada localidad <strong>de</strong>l arreglo (14 bits), se almac<strong>en</strong>a el número <strong>de</strong> casil<strong>la</strong> <strong>en</strong><br />
los 6 bits más significativos y <strong>la</strong>s pare<strong>de</strong>s que ti<strong>en</strong>e esa casil<strong>la</strong> <strong>en</strong> los 4 bits m<strong>en</strong>os<br />
significativos, quedando como se ilustra <strong>en</strong> <strong>la</strong> figura 3.<br />
Fig. 3. Forma <strong>en</strong> que se almac<strong>en</strong>a <strong>la</strong> información <strong>de</strong> cada casil<strong>la</strong><br />
A<strong>de</strong>más <strong>de</strong> t<strong>en</strong>er los cuatro arreglos <strong>de</strong> 9x9 que almac<strong>en</strong>an el <strong>la</strong>berinto visto con<br />
difer<strong>en</strong>tes ori<strong>en</strong>taciones, se ti<strong>en</strong>e un arreglo más <strong>de</strong> 9x9 que va g<strong>en</strong>erando el <strong>la</strong>berinto<br />
según se mueve el robot, dicho arreglo se almac<strong>en</strong>a <strong>en</strong> RAM. Un ejemplo <strong>de</strong> cómo se<br />
almac<strong>en</strong>a este <strong>la</strong>berinto visto <strong>de</strong>s<strong>de</strong> <strong>la</strong> ori<strong>en</strong>tación <strong>de</strong> <strong>la</strong> figura 2, se muestra <strong>en</strong> <strong>la</strong><br />
figura 4, <strong>en</strong> esta, el primer número sigue indicando los 6 bits superiores que<br />
correspond<strong>en</strong> a <strong>la</strong> distancia a <strong>la</strong> salida y el segundo número id<strong>en</strong>tifica <strong>la</strong>s pare<strong>de</strong>s <strong>de</strong><br />
cada casil<strong>la</strong>.<br />
Fig. 4. Volcado <strong>de</strong> memoria <strong>de</strong> una ori<strong>en</strong>tación <strong>de</strong>l <strong>la</strong>berinto, los números están <strong>en</strong> hexa<strong>de</strong>cimal<br />
Cuando el recorrido empieza, el robot id<strong>en</strong>tifica <strong>la</strong>s pare<strong>de</strong>s que ti<strong>en</strong>e a su<br />
alre<strong>de</strong>dor y obti<strong>en</strong>e un número <strong>de</strong> id<strong>en</strong>tificación <strong>de</strong> <strong>la</strong> casil<strong>la</strong> <strong>en</strong> cuestión, este número<br />
lo va comparando, uno por uno, con <strong>la</strong> información <strong>de</strong> <strong>la</strong>s pare<strong>de</strong>s <strong>de</strong> cada una <strong>de</strong> <strong>la</strong>s<br />
localida<strong>de</strong>s <strong>de</strong>l primer arreglo y supone que se <strong>en</strong>cu<strong>en</strong>tra <strong>en</strong> <strong>la</strong> primer casil<strong>la</strong><br />
compatible <strong>de</strong>l primer arreglo. Después <strong>de</strong> esto se mueve a <strong>la</strong> sigui<strong>en</strong>te casil<strong>la</strong> <strong>en</strong>
dirección a <strong>la</strong> salida, si ésta también es compatible con <strong>la</strong> posición <strong>en</strong> <strong>la</strong> que supone<br />
que está, continua <strong>de</strong> <strong>la</strong> misma forma, si no es compatible, <strong>de</strong>scarta <strong>la</strong> posición<br />
original supuesta y busca <strong>la</strong> sigui<strong>en</strong>te que sea compatible. Este procedimi<strong>en</strong>to se sigue<br />
hasta que <strong>la</strong> <strong>de</strong>terminación <strong>de</strong> <strong>la</strong> posición real <strong>de</strong>l robot sea inequívoca. D<strong>en</strong>tro <strong>de</strong> este<br />
proceso, si el primer arreglo es agotado sin <strong>en</strong>contrar <strong>la</strong>s casil<strong>la</strong>s que correspondan,<br />
significa que <strong>la</strong> ori<strong>en</strong>tación inicial <strong>de</strong>l robot no era <strong>la</strong> supuesta y se sigue buscando <strong>en</strong><br />
los sigui<strong>en</strong>tes arreglos.<br />
2.4 Principales problemas <strong>de</strong> codificación<br />
Como ya se había m<strong>en</strong>cionado, uno <strong>de</strong> los principales problemas que se ti<strong>en</strong><strong>en</strong> es que<br />
el compi<strong>la</strong>dor usado no maneja apuntadores a <strong>la</strong> memoria <strong>de</strong> programa (FLASH), por<br />
lo que para po<strong>de</strong>r manejar los arreglos que almac<strong>en</strong>an <strong>la</strong> información <strong>de</strong>l <strong>la</strong>berinto<br />
hubo que programar funciones para lectura <strong>de</strong> <strong>la</strong> memoria FLASH, estas funciones se<br />
<strong>de</strong>sarrol<strong>la</strong>ron <strong>de</strong> forma tal que ingresan como parámetro <strong>la</strong>s coord<strong>en</strong>adas <strong>de</strong> <strong>la</strong> casil<strong>la</strong><br />
que se quiere leer y regresan el valor <strong>de</strong> <strong>la</strong> misma, una función lee <strong>la</strong> parte baja que<br />
conti<strong>en</strong>e <strong>la</strong> información <strong>de</strong> <strong>la</strong>s pare<strong>de</strong>s y otra lee el valor <strong>de</strong> distancia a <strong>la</strong> salida.<br />
Otro problema importante es que a<strong>de</strong>más <strong>de</strong> estar ejecutando el algoritmo <strong>de</strong>scrito,<br />
el microcontro<strong>la</strong>dor <strong>de</strong>be estar tomando <strong>la</strong>s lecturas perman<strong>en</strong>tes <strong>de</strong> los s<strong>en</strong>sores <strong>de</strong><br />
pres<strong>en</strong>cia, lecturas <strong>de</strong> <strong>la</strong>s posiciones <strong>de</strong> los motores y mandando <strong>de</strong> forma continua <strong>la</strong>s<br />
señales <strong>de</strong> control a los motores. Para po<strong>de</strong>r hacer todo esto al mismo tiempo, se<br />
utilizó un esquema <strong>de</strong> programación ori<strong>en</strong>tada a ev<strong>en</strong>tos, aprovechando muchos <strong>de</strong><br />
los múltiples canales <strong>de</strong> interrupción <strong>de</strong>l PIC16F877.<br />
Para el control <strong>de</strong> los motores se ti<strong>en</strong>e que <strong>en</strong>viar una señal cuadrada <strong>de</strong> 40 ms <strong>de</strong><br />
periodo <strong>en</strong> don<strong>de</strong> el tiempo <strong>en</strong> alto es proporcional a <strong>la</strong> velocidad <strong>de</strong>l motor, si el<br />
tiempo <strong>en</strong> alto es <strong>de</strong> 1.5 ms el motor permanecerá <strong>en</strong> reposo, mi<strong>en</strong>tras que se moverá<br />
a <strong>la</strong> <strong>de</strong>recha con tiempos <strong>de</strong> <strong>en</strong>c<strong>en</strong>dido mayores y a <strong>la</strong> izquierda con tiempos m<strong>en</strong>ores,<br />
<strong>la</strong> velocidad <strong>de</strong>l motor será igual a <strong>la</strong> difer<strong>en</strong>cia <strong>en</strong>tre el tiempo <strong>de</strong> <strong>en</strong>c<strong>en</strong>dido y 1.5<br />
ms.<br />
Para g<strong>en</strong>erar dos señales <strong>de</strong> este tipo para los dos motores, se utilizó el timer 1, con<br />
el se hace el calculo <strong>de</strong>l tiempo <strong>de</strong>seado se configura y posteriorm<strong>en</strong>te el timer<br />
g<strong>en</strong>erará una interrupción cuando el tiempo haya concluido.<br />
Los s<strong>en</strong>sores ópticos (GP2D02 [8]), requirieron ser colocados <strong>de</strong> manera particu<strong>la</strong>r,<br />
puesto que, como se pue<strong>de</strong> apreciar <strong>en</strong> <strong>la</strong> figura 5, <strong>la</strong> distancia mínima confiable <strong>de</strong><br />
medición es <strong>de</strong> 8 cm, por ello fueron montados <strong>en</strong> el c<strong>en</strong>tro <strong>de</strong>l robot, por <strong>de</strong>bajo <strong>de</strong> <strong>la</strong><br />
p<strong>la</strong>ca <strong>de</strong> circuitos, asegurando <strong>de</strong> esta manera que sea el mismo cuerpo <strong>de</strong>l robot el<br />
que garantice esa distancia mínima <strong>en</strong>tre el s<strong>en</strong>sor y <strong>la</strong>s pare<strong>de</strong>s.<br />
Los s<strong>en</strong>sores se le<strong>en</strong> a través <strong>de</strong> una interfaz serie síncrona, g<strong>en</strong>erando un tr<strong>en</strong> <strong>de</strong><br />
pulsos como el <strong>de</strong> <strong>la</strong> figura 6.<br />
El inicio <strong>de</strong>l ciclo <strong>de</strong> lectura <strong>de</strong>l s<strong>en</strong>sor, inicia al cambiar <strong>la</strong> señal <strong>de</strong> Vin <strong>de</strong>l s<strong>en</strong>sor<br />
<strong>de</strong> alto a bajo, y se activa el canal <strong>de</strong> interrupción externa. Una vez que el s<strong>en</strong>sor haya<br />
realizado <strong>la</strong> medición y esté listo para <strong>en</strong>viar el dato, <strong>la</strong> señal <strong>de</strong> datos cambia <strong>de</strong><br />
estado, activando <strong>la</strong> interrupción externa <strong>de</strong>l microcontro<strong>la</strong>dor. Durante esta<br />
interrupción, se habilita <strong>la</strong> comunicación serie y se habilita <strong>la</strong> interrupción <strong>de</strong> <strong>la</strong><br />
misma. Al activarse esta interrupción, el dato ya se <strong>en</strong>cu<strong>en</strong>tra disponible <strong>en</strong> el buffer<br />
<strong>de</strong> datos, leemos el dato y habilitamos <strong>la</strong> interrupción <strong>de</strong>l timer 2, ajustamos el
periodo <strong>de</strong>l mismo al mínimo <strong>de</strong> 1.5 ms necesarios para que el s<strong>en</strong>sor este listo para<br />
realizar una nueva medición. Una vez que se activa <strong>la</strong> interrupción <strong>de</strong>l timer 2,<br />
po<strong>de</strong>mos iniciar nuevam<strong>en</strong>te el ciclo, <strong>en</strong>viando <strong>la</strong> señal <strong>de</strong> inicio <strong>de</strong> medición,<br />
<strong>de</strong>sactivando <strong>la</strong> interrupción <strong>de</strong>l timer 2 y activando <strong>la</strong> interrupción externa.<br />
Fig. 5. Gráfica <strong>de</strong> medición <strong>de</strong>l s<strong>en</strong>sor infrarrojo, el eje vertical repres<strong>en</strong>ta el número digital<br />
que retorna el s<strong>en</strong>sor<br />
Fig. 6. Gráfica <strong>de</strong> tiempos <strong>de</strong>l s<strong>en</strong>sor infrarrojo.<br />
Realizar difer<strong>en</strong>tes tareas d<strong>en</strong>tro <strong>de</strong> un mismo microcontro<strong>la</strong>dor g<strong>en</strong>era ciertos<br />
problemas <strong>en</strong> el mom<strong>en</strong>to <strong>en</strong> que estas se ti<strong>en</strong><strong>en</strong> que realizar al mismo tiempo, esto es,<br />
si se <strong>de</strong>seara recorrer una distancia para posicionarse <strong>en</strong> <strong>la</strong> casil<strong>la</strong> sigui<strong>en</strong>te, esto se<br />
podría realizar mediante una rutina que llevará cierto tiempo <strong>en</strong> producirse y con <strong>la</strong><br />
cual se realizara <strong>la</strong> tarea; si <strong>en</strong> el tiempo <strong>en</strong> que se <strong>en</strong>cu<strong>en</strong>tra trabajando <strong>la</strong> rutina<br />
ti<strong>en</strong><strong>en</strong> que realizarse otras tareas para leer los s<strong>en</strong>sores, medir distancia recorrida, etc.,<br />
esta información se per<strong>de</strong>ría <strong>de</strong>bido a que para ser realizados se ti<strong>en</strong>e que haber<br />
terminado <strong>la</strong> rutina <strong>en</strong> curso, <strong>en</strong> cambio con los ev<strong>en</strong>tos no importa que ocurrieran
varios ev<strong>en</strong>tos d<strong>en</strong>tro <strong>de</strong> <strong>la</strong> realización <strong>de</strong> <strong>la</strong> tarea porque <strong>en</strong> el mom<strong>en</strong>to que estos se<br />
produc<strong>en</strong> el microcontro<strong>la</strong>dor los realiza y regresa a terminar <strong>la</strong> tarea <strong>en</strong> curso.<br />
3 Resultados<br />
Las pruebas realizadas, nos permitieron observar que <strong>en</strong> <strong>la</strong> mayoría <strong>de</strong> los casos el<br />
robot logra id<strong>en</strong>tificar su posición <strong>en</strong> alre<strong>de</strong>dor <strong>de</strong> 5 o 6 movimi<strong>en</strong>tos, aunque <strong>en</strong><br />
g<strong>en</strong>eral podríamos <strong>de</strong>cir que esto <strong>de</strong>p<strong>en</strong><strong>de</strong> <strong>en</strong> gran medida <strong>de</strong> cual sea su ori<strong>en</strong>tación<br />
original, ya que cuando se ori<strong>en</strong>ta inicialm<strong>en</strong>te al norte <strong>de</strong>termina su posición <strong>en</strong> 2 o 3<br />
movimi<strong>en</strong>tos y cuando su ori<strong>en</strong>tación es al oeste llegan a ser hasta 7 u 8 movimi<strong>en</strong>tos.<br />
Cabe <strong>de</strong>stacar que <strong>la</strong> mayor parte <strong>de</strong> <strong>la</strong>s dificulta<strong>de</strong>s que se tuvieron <strong>en</strong> le<br />
implem<strong>en</strong>tación <strong>de</strong>l algoritmo, no se dieron <strong>en</strong> cuanto al manejo <strong>de</strong> <strong>la</strong>s <strong>de</strong>cisiones,<br />
sino <strong>en</strong> <strong>la</strong> etapa <strong>de</strong> control, don<strong>de</strong> el manejo y calibración <strong>de</strong> s<strong>en</strong>sores, <strong>la</strong> medición <strong>de</strong><br />
distancias, tolerancia <strong>de</strong> incertidumbres etc. requirieron un trabajo <strong>de</strong> puesta a punto<br />
muy consi<strong>de</strong>rable.<br />
4 Conclusiones<br />
Consi<strong>de</strong>ramos que <strong>la</strong> estrategia <strong>de</strong> programar todas <strong>la</strong>s etapas <strong>de</strong> control <strong>de</strong>l robot a<br />
través <strong>de</strong> ev<strong>en</strong>tos, fue uno <strong>de</strong> los gran<strong>de</strong>s aciertos <strong>en</strong> este trabajo, logrando separar<br />
este problema, <strong>de</strong>l algoritmo modificado <strong>de</strong> Lee que se p<strong>la</strong>nteó para <strong>la</strong> elección <strong>de</strong> <strong>la</strong><br />
ruta. ya que <strong>de</strong> lo contrario habría resultado casi imposible contro<strong>la</strong>r cada una <strong>de</strong> <strong>la</strong>s<br />
partes a<strong>de</strong>más <strong>de</strong> hacer<strong>la</strong>s interactuar con el resto.<br />
Otra posible solución que se pudo haber seguido es <strong>la</strong> utilización <strong>de</strong> dos<br />
microcontro<strong>la</strong>dores para dividir <strong>la</strong>s tareas, uno <strong>de</strong> ellos programado para contro<strong>la</strong>r<br />
únicam<strong>en</strong>te el movimi<strong>en</strong>to <strong>de</strong> los motores para no afectar con otras cosas <strong>la</strong> efici<strong>en</strong>cia<br />
<strong>de</strong> un recorrido exacto y el otro con <strong>la</strong> lectura <strong>de</strong> los s<strong>en</strong>sores y <strong>la</strong> ejecución <strong>de</strong>l<br />
algoritmo.<br />
En cuanto al algoritmo utilizado para <strong>la</strong> elección <strong>de</strong> <strong>la</strong> ruta a seguir, podríamos<br />
concluir que es óptimo, dadas <strong>la</strong>s condiciones y <strong>la</strong> información con que cu<strong>en</strong>ta el<br />
robot. Sin embargo, si pudiésemos dotar al robot <strong>de</strong> mas información, se podrían<br />
p<strong>la</strong>ntear nuevos algoritmos que reduzcan drásticam<strong>en</strong>te <strong>la</strong> distancia <strong>en</strong>tre el mejor y<br />
peor caso, a<strong>de</strong>más <strong>de</strong> reducir también el número <strong>de</strong> movimi<strong>en</strong>tos necesarios para<br />
id<strong>en</strong>tificar <strong>la</strong> posición <strong>de</strong>l robot, logrando que esta id<strong>en</strong>tificación sea casi inmediata.<br />
En este s<strong>en</strong>tido, <strong>la</strong> información más relevante y accesible seria <strong>la</strong> ori<strong>en</strong>tación <strong>de</strong>l<br />
robot, para lo cual lo t<strong>en</strong>dríamos que incorporarle una brúju<strong>la</strong> electrónica; a<strong>de</strong>más<br />
sería útil conocer, no solo <strong>la</strong> exist<strong>en</strong>cia o no <strong>de</strong> cada pared, sino también <strong>la</strong> distancia<br />
<strong>en</strong> casil<strong>la</strong>s que existe <strong>en</strong> cada s<strong>en</strong>tido hasta <strong>la</strong> sigui<strong>en</strong>te pared.<br />
Cabe m<strong>en</strong>cionar, que aunque para el <strong>la</strong>berinto p<strong>la</strong>nteado <strong>en</strong> este trabajo, el<br />
algoritmo pres<strong>en</strong>ta un alto grado <strong>de</strong> efici<strong>en</strong>cia, si no se modificase y se utilizara <strong>en</strong> un<br />
<strong>la</strong>berinto <strong>de</strong> mayores dim<strong>en</strong>siones, se reduciría consi<strong>de</strong>rablem<strong>en</strong>te <strong>la</strong> efici<strong>en</strong>cia <strong>de</strong>l<br />
peor <strong>de</strong> los casos, por lo que se p<strong>la</strong>ntea como trabajo a futuro <strong>la</strong> incorporación al robot<br />
<strong>de</strong> los medios necesarios para recabar los datos <strong>de</strong> ori<strong>en</strong>tación y distancia a <strong>la</strong> pared
mas cercana <strong>en</strong> cada dirección, lo que nos llevará también a <strong>la</strong>s respectivas<br />
modificaciones <strong>de</strong>l algoritmo.<br />
Refer<strong>en</strong>cias<br />
[1] Microchip_Technology, PIC16F87X Data Sheet: Microchip Technology Inc., 2001.<br />
[2] E. Lucas, Recréations mathématiques, vol. 1, 1882.<br />
[3] O. Ore, “Theory of Graphs,” American Math. Soc. Colloquium Publications, vol. XXXVII,<br />
1962.<br />
[4] A. S. Fra<strong>en</strong>kel, “Economic traversal of <strong>la</strong>byrinths,” in Mathematics Magazine, vol. 43, 1970,<br />
pp. 125-130.<br />
[5] A. S. Fra<strong>en</strong>kel, “Economic traversal of <strong>la</strong>byrinths,” in Mathematics Magazine, vol. 44, 1971,<br />
pp. 12.<br />
[6] A. d. H. Abelson, Turtle Geometry: The Computer as a Medium for Exploring Mathematics:<br />
MIT Press, 1980.<br />
[7] C. Y. Lee, “An algorithm for path connections and its applications,” IRE transactions on<br />
electronic computers, vol. 10, pp. 346-365, 1961.<br />
[8] SHARP_CORPORATION, Databook 1999/2000, 2000.
Móvil manipu<strong>la</strong>do por <strong>la</strong> PC<br />
Abigail Flores Cruz, Adriana Martínez Mestas, Leticia E. Torres Ramírez<br />
Escue<strong>la</strong> Superior <strong>de</strong> Cómputo<br />
Av. Juan <strong>de</strong> Dios Batiz s/n, Esq. Miguel Othón <strong>de</strong> M<strong>en</strong>dizabal<br />
Unidad Profesional “Adolfo López Mateos”<br />
Instituto Politécnico Nacional<br />
C.P. 07738, <strong>México</strong>, D.F.<br />
abuguis@hotmail.com , adamar@terra.com.mx,<br />
eloburbu@yahoo.com.mx<br />
Resum<strong>en</strong>. El capítulo <strong>de</strong>scribe un sistema capaz <strong>de</strong> dirigir un móvil hacia un<br />
objetivo <strong>de</strong>terminado por <strong>la</strong> adquisición y procesami<strong>en</strong>to <strong>de</strong> una imag<strong>en</strong> digital<br />
tomada <strong>de</strong> un esc<strong>en</strong>ario <strong>de</strong>finido. El procesami<strong>en</strong>to <strong>de</strong> <strong>la</strong> imag<strong>en</strong> <strong>de</strong>terminará <strong>la</strong><br />
ubicación <strong>de</strong> un objeto seleccionado por el usuario g<strong>en</strong>erando así <strong>la</strong> trayectoria<br />
a seguir por el móvil.<br />
1 Introducción<br />
La robótica se <strong>de</strong>fine como el conjunto <strong>de</strong> conocimi<strong>en</strong>tos teóricos y prácticos que<br />
permit<strong>en</strong> concebir, realizar y automatizar sistemas basados <strong>en</strong> estructuras mecánicas,<br />
dotados <strong>de</strong> un <strong>de</strong>terminado grado <strong>de</strong> "intelig<strong>en</strong>cia" y <strong>de</strong>stinados a <strong>la</strong> producción<br />
industrial o al sustitución <strong>de</strong>l hombre <strong>en</strong> diversas tareas. Un sistema robótico pue<strong>de</strong><br />
<strong>de</strong>scribirse, como "Aquel que es capaz <strong>de</strong> recibir información, <strong>de</strong> compr<strong>en</strong><strong>de</strong>r su<br />
<strong>en</strong>torno a través <strong>de</strong>l empleo <strong>de</strong> mo<strong>de</strong>los, <strong>de</strong> formu<strong>la</strong>r y <strong>de</strong> ejecutar p<strong>la</strong>nes, y <strong>de</strong><br />
contro<strong>la</strong>r o supervisar su operación.<br />
Los dispositivos y mecanismos que pued<strong>en</strong> agruparse bajo <strong>la</strong> d<strong>en</strong>ominación<br />
g<strong>en</strong>érica <strong>de</strong>l robot, tal como se ha indicado, son muy diversos y es por tanto difícil<br />
establecer una c<strong>la</strong>sificación coher<strong>en</strong>te <strong>de</strong> los mismos que resista un análisis crítico y<br />
riguroso. La subdivisión <strong>de</strong> los robots, con base <strong>en</strong> su arquitectura, se hace <strong>en</strong> los<br />
sigui<strong>en</strong>tes grupos: Poliarticu<strong>la</strong>dos, Móviles, Androi<strong>de</strong>s, Zoomórficos e Híbridos.<br />
Móvil, <strong>en</strong> nuestro caso, es el grupo <strong>de</strong> interés por lo que su <strong>de</strong>finición se pres<strong>en</strong>ta a<br />
continuación.<br />
Móviles: Son robots con gran capacidad <strong>de</strong> <strong>de</strong>sp<strong>la</strong>zami<strong>en</strong>to, basados <strong>en</strong> carros o<br />
p<strong>la</strong>taformas y dotados <strong>de</strong> un sistema locomotor <strong>de</strong> tipo rodante. Sigu<strong>en</strong> su camino por<br />
telemando o guiándose por <strong>la</strong> información recibida <strong>de</strong> su <strong>en</strong>torno.<br />
2 Descripción g<strong>en</strong>eral <strong>de</strong>l sistema<br />
El sistema completo se pue<strong>de</strong> apreciar <strong>en</strong> <strong>la</strong> figura 1.
Se propone que a partir <strong>de</strong> <strong>la</strong> adquisición <strong>de</strong> una imag<strong>en</strong> digital, se dirija el curso<br />
que <strong>de</strong>berá seguir para llegar al objetivo, d<strong>en</strong>tro <strong>de</strong> un esc<strong>en</strong>ario <strong>de</strong>finido, un móvil.<br />
Una vez adquirida <strong>la</strong> imag<strong>en</strong> digital, ésta se almac<strong>en</strong>a <strong>en</strong> <strong>la</strong> PC. La imag<strong>en</strong> digital<br />
se procesa con el fin <strong>de</strong> reconocer el objeto hacia el cual el usuario <strong>de</strong>sea dirigir al<br />
móvil.<br />
Una vez que se ha reconocido el objeto se g<strong>en</strong>era <strong>la</strong> trayectoria que <strong>de</strong>berá seguir<br />
el móvil para llegar al objetivo.<br />
Dicha trayectoria estará cont<strong>en</strong>ida <strong>en</strong> una trama que será <strong>en</strong>viada al móvil por medio<br />
<strong>de</strong> un módulo <strong>de</strong> radiofrecu<strong>en</strong>cia (transmisor) cuya matrícu<strong>la</strong> es TXM-315-LC<br />
fabricado por LINX Technologies [1]. Dicho módulo estará conectado con el puerto<br />
serie <strong>de</strong> <strong>la</strong> PC.<br />
Adquisición <strong>de</strong><br />
<strong>la</strong> imag<strong>en</strong><br />
Procesami<strong>en</strong>to<br />
<strong>de</strong> <strong>la</strong> imag<strong>en</strong><br />
Obt<strong>en</strong>ción <strong>de</strong><br />
trayectoria<br />
Accionar móvil<br />
Fig. 1. Descripción g<strong>en</strong>eral <strong>de</strong>l sistema<br />
En el móvil <strong>la</strong> trama será recibida por el módulo (receptor) RXM-315-LC-S<br />
fabricado también por LINX Technologies [1], el cual estará conectado a <strong>la</strong> UART<br />
<strong>de</strong>l microprocesador con matrícu<strong>la</strong> 90S8535 <strong>de</strong> <strong>la</strong> empresa ATMEL, con el fin <strong>de</strong> que<br />
<strong>en</strong> éste se procese dicha trama para obt<strong>en</strong>er <strong>la</strong> información que accionará los motores<br />
<strong>de</strong>l móvil y <strong>la</strong> trayectoria que <strong>de</strong>berá seguir para llegar al objetivo.<br />
3 Descripción <strong>de</strong>l sistema <strong>de</strong> reconocimi<strong>en</strong>to<br />
El sistema <strong>de</strong> reconocimi<strong>en</strong>to que se propone se muestra <strong>en</strong> <strong>la</strong> figura 2.
Adquisición <strong>de</strong> <strong>la</strong><br />
imag<strong>en</strong><br />
Mejorami<strong>en</strong>to <strong>de</strong><br />
<strong>la</strong> imag<strong>en</strong><br />
Segm<strong>en</strong>tación<br />
Extracción <strong>de</strong><br />
parámetros<br />
Reconocimi<strong>en</strong>to<br />
<strong>de</strong> patrones<br />
Fig. 2. Diagrama a bloques <strong>de</strong>l sistema <strong>de</strong> reconocimi<strong>en</strong>to<br />
3.1 Adquisición <strong>de</strong> <strong>la</strong> imag<strong>en</strong><br />
La imag<strong>en</strong> se está adquiri<strong>en</strong>do con una webcam cuyas características se pres<strong>en</strong>tan a<br />
continuación: Marca: LOGITECH, S<strong>en</strong>sor: CMOS; Enfoque manual; Resolución: 320<br />
x 240; Velocidad: 30 fps; Puerto: USB; Software: Microsoft NetMeeting.<br />
La imag<strong>en</strong> 1 fue capturada con esta webcam.<br />
Imag<strong>en</strong> 1. Imag<strong>en</strong> <strong>de</strong> un esc<strong>en</strong>ario <strong>de</strong>finido<br />
3.2 Mejorami<strong>en</strong>to <strong>de</strong> <strong>la</strong> imag<strong>en</strong><br />
A partir <strong>de</strong> <strong>la</strong> imag<strong>en</strong> 1 adquirida obt<strong>en</strong>emos <strong>la</strong> imag<strong>en</strong> 2 a esca<strong>la</strong> <strong>de</strong> grises.
Imag<strong>en</strong> 2. Imag<strong>en</strong> a esca<strong>la</strong> <strong>de</strong> grises<br />
Posteriorm<strong>en</strong>te, aplicamos el filtro <strong>de</strong> <strong>la</strong> mediana con el fin <strong>de</strong> eliminar ruido,<br />
como el que se ve <strong>en</strong> <strong>la</strong> imag<strong>en</strong> 1.<br />
Filtrado <strong>de</strong> <strong>la</strong> mediana: <strong>la</strong> mediana m <strong>de</strong> un conjunto <strong>de</strong> valores es tal que <strong>la</strong><br />
mitad <strong>de</strong> los valores <strong>de</strong>l conjunto quedan por <strong>de</strong>bajo <strong>de</strong> m y <strong>la</strong> otra mitad por <strong>en</strong>cima<br />
[2].<br />
Fig. 3. Filtrado especial por <strong>la</strong> mediana<br />
El filtrado <strong>de</strong> un píxel se lleva a cabo <strong>de</strong> <strong>la</strong> sigui<strong>en</strong>te forma: primero se <strong>de</strong>b<strong>en</strong><br />
extraer los valores <strong>de</strong>l píxel y <strong>de</strong> su <strong>en</strong>trono, <strong>de</strong>terminar <strong>la</strong> mediana y asignar este<br />
valor al píxel. Si hay un valor más pequeño que otro <strong>en</strong> el c<strong>en</strong>tro <strong>de</strong> un <strong>en</strong>trono n*n<br />
<strong>en</strong>tonces se agrupan los valores <strong>de</strong> tal forma que <strong>en</strong> el c<strong>en</strong>tro que<strong>de</strong> el mayor. Y así<br />
hay más parecidos <strong>de</strong> int<strong>en</strong>sida<strong>de</strong>s <strong>en</strong>tre vecinos.<br />
La imag<strong>en</strong> que se obti<strong>en</strong>e con este filtro es <strong>la</strong> que se observa a continuación<br />
(imag<strong>en</strong> 3).
Imag<strong>en</strong> 3. Imag<strong>en</strong> <strong>de</strong>spués <strong>de</strong> aplicar <strong>la</strong> mediana<br />
3.3 Segm<strong>en</strong>tación<br />
El segm<strong>en</strong>tado <strong>de</strong> <strong>la</strong> imag<strong>en</strong> 4 se realiza con el método <strong>de</strong> umbralización.<br />
Imag<strong>en</strong> 4. Figura umbralizada<br />
Una imag<strong>en</strong> umbralizada [2] g(x, y) se <strong>de</strong>fine como:
A <strong>la</strong> anterior asignación <strong>de</strong> pixeles se le conoce como binarización. El umbral T se<br />
obti<strong>en</strong>e a partir <strong>de</strong>l histograma <strong>de</strong> <strong>la</strong> imag<strong>en</strong>.<br />
3.4 Extracción <strong>de</strong> parámetros<br />
A partir <strong>de</strong> <strong>la</strong> imag<strong>en</strong> umbralizada se etiquetan los objetos con el fin <strong>de</strong> difer<strong>en</strong>ciar<br />
cubos <strong>de</strong> círculos.<br />
3.4.1 Etiquetado <strong>de</strong> compon<strong>en</strong>tes 8 conexas [2]<br />
El barrido <strong>de</strong> una imag<strong>en</strong> pixel a pixel, <strong>de</strong> izquierda a <strong>de</strong>recha y <strong>de</strong> arriba a abajo. Sea<br />
p el pixel <strong>en</strong> cada paso <strong>de</strong> proceso <strong>de</strong>l barrido y sean q, r, s y t, los vecinos a <strong>la</strong><br />
izquierda, el superior izquierdo, el superior y el superior <strong>de</strong>recho, respectivam<strong>en</strong>te,<br />
(figura 4). La naturaleza <strong>de</strong> <strong>la</strong> secu<strong>en</strong>cia <strong>de</strong> barrido asegura que cuando se llega a p,<br />
los puntos q, r, s y t ya han sido hal<strong>la</strong>dos (y etiquetados si fueron unos).<br />
Fig. 4. Distribución <strong>de</strong> los pixeles <strong>en</strong> el recorrido <strong>de</strong>l etiquetado<br />
Con los conceptos anteriorm<strong>en</strong>te establecidos considérese el procedimi<strong>en</strong>to<br />
sigui<strong>en</strong>te: si el valor <strong>de</strong> p es cero, simplem<strong>en</strong>te se continúa hasta <strong>la</strong> sigui<strong>en</strong>te posición<br />
<strong>de</strong> barrido. Si el valor <strong>de</strong> p es uno, se examinan q, r, s y t, si todos son cero, se asigna<br />
una nueva etiqueta a p. Si uno o más vecinos son uno y ti<strong>en</strong><strong>en</strong> <strong>la</strong> misma etiqueta, se<br />
asigna esta etiqueta a p. Si más <strong>de</strong> un vecino son uno con etiquetas distintas, se asigna<br />
alguna <strong>de</strong> estas etiquetas a p y una nota <strong>de</strong> que estas etiquetas son equival<strong>en</strong>tes. Al<br />
término <strong>de</strong>l barrido todos los pixeles que t<strong>en</strong>ían uno, han sido etiquetados. Lo único<br />
que resta es asignar una misma etiqueta a cada conjunto <strong>de</strong> etiquetas que hayan sido<br />
anotadas como equival<strong>en</strong>tes.
3.4.2 Prueba<br />
Para difer<strong>en</strong>ciar <strong>la</strong>s distintas etiquetas se le asigna un color difer<strong>en</strong>te a cada una <strong>de</strong><br />
el<strong>la</strong>s, como se muestra <strong>en</strong> <strong>la</strong> sigui<strong>en</strong>te imag<strong>en</strong>.<br />
Imag<strong>en</strong> 5. Imag<strong>en</strong> Etiquetada<br />
El proceso <strong>de</strong> extracción <strong>de</strong> parámetros partirá <strong>de</strong> <strong>la</strong>s etiquetas que se obtuvieron.<br />
Exist<strong>en</strong> dos tipos <strong>de</strong> <strong>de</strong>scriptores, por contorno y por región [2]. Los <strong>de</strong>scriptores<br />
por contorno se obti<strong>en</strong><strong>en</strong> exclusivam<strong>en</strong>te a partir <strong>de</strong> los pixeles que conforman el<br />
contorno <strong>de</strong> los objetos. A difer<strong>en</strong>cia <strong>de</strong> estos, los <strong>de</strong>scriptores por región utilizan a<br />
todo el conjunto <strong>de</strong> pixeles que conforman a un objeto, ejemplo <strong>de</strong> estos <strong>de</strong>scriptores<br />
son los mom<strong>en</strong>tos <strong>de</strong> Hu y los <strong>de</strong> Flusser Suk que se <strong>de</strong>tal<strong>la</strong>n a continuación.<br />
m<br />
<br />
p q<br />
pq<br />
= x y f(x, y)<br />
x y<br />
para p, q = 0, 1, 2, …<br />
Los mom<strong>en</strong>tos c<strong>en</strong>trales se pued<strong>en</strong> expresar como:<br />
don<strong>de</strong>:<br />
<br />
p q<br />
m<br />
pq<br />
= (x − x) (y − y) f(x, y)<br />
x<br />
y<br />
m<br />
m<br />
00<br />
(1)<br />
(2)<br />
10<br />
x =<br />
(3)<br />
m<br />
m<br />
01<br />
y =<br />
(4)<br />
00
Los mom<strong>en</strong>tos c<strong>en</strong>trales normalizados, repres<strong>en</strong>tados por η pq , se <strong>de</strong>fin<strong>en</strong> como:<br />
<br />
pq p + q<br />
n<br />
pq<br />
= , g = +1 , p + q ="2,3, . . .<br />
g 2<br />
00<br />
{ }{ }<br />
(5)<br />
De los mom<strong>en</strong>tos segundo y tercero se pue<strong>de</strong> <strong>de</strong>rivar un conjunto <strong>de</strong> siete<br />
mom<strong>en</strong>tos invariantes o mom<strong>en</strong>tos <strong>de</strong> Hu:<br />
= n<br />
n<br />
1 20 02<br />
2<br />
2 20 02 11<br />
+ (6)<br />
= (n − n ) + 4n<br />
(7)<br />
= (n − 3n ) + (3n − n )<br />
(8)<br />
2 2<br />
3 30 12 21 03<br />
= (n + n ) + (n + n )<br />
(9)<br />
2 2<br />
4 30 12 21 03<br />
2 2<br />
<br />
5<br />
= (n30 − n<br />
12<br />
)(n30 + n<br />
12<br />
) <br />
(n30 + n<br />
12<br />
) − 3(n 21<br />
+ n<br />
03<br />
) <br />
<br />
2 2<br />
+ (3n21 − n<br />
03<br />
)(n21 + n<br />
03<br />
) <br />
3(n 30<br />
+ n<br />
12<br />
) − (n21 + n<br />
03<br />
) <br />
<br />
2 2<br />
<br />
6<br />
= (n20 − n<br />
02<br />
) <br />
(n30 + n<br />
12<br />
) − (n21 + n<br />
03<br />
) <br />
<br />
+ 4n (n + n )(n + n )<br />
11<br />
30 12 21 03<br />
2 2<br />
<br />
7<br />
= (3n21<br />
− n<br />
30<br />
)(n30 + n<br />
12<br />
) <br />
(n30 + n<br />
12<br />
) − 3(n 21<br />
+ n<br />
03<br />
) <br />
<br />
2 2<br />
+ (3n12<br />
− n<br />
30<br />
)(n21 + n<br />
03<br />
) <br />
3(n 30<br />
+ n<br />
12<br />
) − (n21 + n<br />
03<br />
) <br />
<br />
Este conjunto <strong>de</strong> mom<strong>en</strong>tos es invariante a tras<strong>la</strong>ciones, rotaciones y cambios <strong>de</strong><br />
esca<strong>la</strong>.<br />
(10)<br />
(11)<br />
(12)<br />
3.4.3 Mom<strong>en</strong>tos <strong>de</strong> Flusser y Suk<br />
Se consi<strong>de</strong>ra una repres<strong>en</strong>tación regional, y se utilizan como rasgos <strong>de</strong> interés para <strong>la</strong><br />
<strong>de</strong>scripción <strong>de</strong> cada una <strong>de</strong> estas regiones los 6 primeros mom<strong>en</strong>tos invariantes afines<br />
<strong>de</strong> Flusser y Suk.<br />
3.5. Reconocimi<strong>en</strong>to <strong>de</strong> patrones<br />
Los mom<strong>en</strong>tos <strong>de</strong> Hu nos <strong>de</strong>scrib<strong>en</strong> <strong>la</strong>s características <strong>de</strong>l objeto por lo que estos<br />
serán utilizados para <strong>la</strong> <strong>en</strong>trada <strong>de</strong> <strong>la</strong> red neuronal.<br />
Las re<strong>de</strong>s neuronales resuelv<strong>en</strong> tanto problemas <strong>de</strong> c<strong>la</strong>ses linealm<strong>en</strong>te separables<br />
como problemas <strong>de</strong> c<strong>la</strong>ses no linealm<strong>en</strong>te separables.
Utilización <strong>de</strong> una multitud <strong>de</strong> elem<strong>en</strong>tos <strong>de</strong> cálculo no lineales y elem<strong>en</strong>tales<br />
(d<strong>en</strong>ominados neuronas), organizadas como re<strong>de</strong>s que se asemejan a <strong>la</strong> forma <strong>en</strong> que<br />
se pi<strong>en</strong>sa que están interconectadas <strong>la</strong>s neuronas <strong>en</strong> el cerebro. Usaremos estas re<strong>de</strong>s<br />
como vehículos para el <strong>de</strong>sarrollo <strong>de</strong> los coefici<strong>en</strong>tes <strong>de</strong> <strong>la</strong>s funciones <strong>de</strong> <strong>de</strong>cisión<br />
mediante <strong>la</strong> pres<strong>en</strong>tación sucesiva <strong>de</strong> conjunto <strong>de</strong> patrones <strong>de</strong> <strong>en</strong>tr<strong>en</strong>ami<strong>en</strong>to.<br />
Los mo<strong>de</strong>los <strong>de</strong> re<strong>de</strong>s neuronales se muestran a continuación:<br />
3.5.1 Mo<strong>de</strong>lo <strong>de</strong> re<strong>de</strong>s neuronales<br />
El perceptrón simple apr<strong>en</strong><strong>de</strong> una función <strong>de</strong> <strong>de</strong>cisión lineal que dicotomiza dos<br />
conjuntos <strong>de</strong> <strong>en</strong>tr<strong>en</strong>ami<strong>en</strong>to linealm<strong>en</strong>te separables.<br />
El perceptrón multicapa resuelve problemas linealm<strong>en</strong>te y no linealm<strong>en</strong>te<br />
separables<br />
Algoritmo <strong>de</strong> Entr<strong>en</strong>ami<strong>en</strong>to, BackPropagation<br />
La red <strong>de</strong> retropropagación adapta sus pesos, para adquirir un <strong>en</strong>tr<strong>en</strong>ami<strong>en</strong>to a<br />
partir <strong>de</strong> un conjunto <strong>de</strong> pares <strong>de</strong> patrones <strong>en</strong>trada/salida. Después que <strong>la</strong> red ha<br />
apr<strong>en</strong>dido ha esta se le pue<strong>de</strong> aplicar un conjunto <strong>de</strong> patrones <strong>de</strong> prueba, para ver<br />
como esta g<strong>en</strong>eraliza a patrones no proporcionados.<br />
El flujo <strong>de</strong> información fluye <strong>de</strong> <strong>la</strong> capa <strong>de</strong> <strong>en</strong>trada a <strong>la</strong> <strong>de</strong> salida a través <strong>de</strong> <strong>la</strong> capa<br />
oculta, esto se esquematiza <strong>en</strong> <strong>la</strong> figura 6.<br />
Cada unidad <strong>de</strong> procesami<strong>en</strong>to <strong>en</strong> <strong>la</strong> capa se conecta a todas <strong>la</strong>s <strong>de</strong> <strong>la</strong> sigui<strong>en</strong>te<br />
capa. El nivel <strong>de</strong> activación <strong>en</strong> <strong>la</strong> capa <strong>de</strong> salida <strong>de</strong>termina <strong>la</strong> salida <strong>de</strong> <strong>la</strong> red.<br />
Capa <strong>de</strong> salida<br />
(n)= e + (V (n))<br />
(13)<br />
j j j<br />
Capa oculta<br />
Fig. 5. Diagrama <strong>de</strong> una red neuronal<br />
Fig. 6. Flujo <strong>de</strong> información a través <strong>de</strong> <strong>la</strong> capa oculta
Actualizar los pesos<br />
(n)= (V (n)) (n)w (n)<br />
(14)<br />
j j k jk<br />
k<br />
w (n + 1)= w (n) + n (n)y (n)<br />
(15)<br />
ij ij j j<br />
4 Descripción <strong>de</strong>l sistema <strong>de</strong> navegación<br />
La navegación es <strong>la</strong> metodología que permite guiar el curso <strong>de</strong> un robot móvil a través<br />
<strong>de</strong> un <strong>en</strong>torno con obstáculos. Exist<strong>en</strong> diversos esquemas, pero todos ellos pose<strong>en</strong> <strong>en</strong><br />
común el afán por llevar el vehículo a su <strong>de</strong>stino <strong>de</strong> forma segura.<br />
Las tareas involucradas <strong>en</strong> <strong>la</strong> navegación <strong>de</strong> un robot móvil son:<br />
• Percepción <strong>de</strong>l <strong>en</strong>torno a través <strong>de</strong> sus s<strong>en</strong>sores, <strong>de</strong> modo que le permita crear<br />
una abstracción <strong>de</strong>l mundo.<br />
• P<strong>la</strong>nificación <strong>de</strong> una trayectoria libre <strong>de</strong> obstáculos, para alcanzar el punto<br />
<strong>de</strong>stino seleccionado.<br />
• G<strong>en</strong>eración <strong>de</strong>l camino.- Define una función continua que interpo<strong>la</strong> <strong>la</strong> secu<strong>en</strong>cia<br />
<strong>de</strong> objetos construida por el p<strong>la</strong>nificador. Posteriorm<strong>en</strong>te proce<strong>de</strong> al a<br />
discretización <strong>de</strong> <strong>la</strong> misma a fin <strong>de</strong> g<strong>en</strong>erar el camino.<br />
• Seguimi<strong>en</strong>to <strong>de</strong>l camino.- Efectúa el <strong>de</strong>sp<strong>la</strong>zami<strong>en</strong>to <strong>de</strong>l vehículo, según el<br />
camino g<strong>en</strong>erado mediante el a<strong>de</strong>cuado control <strong>de</strong> los actuadores <strong>de</strong>l vehículo.<br />
La p<strong>la</strong>nificación <strong>de</strong> tareas y movimi<strong>en</strong>tos <strong>de</strong> un robot admite una c<strong>la</strong>sificación<br />
según el nivel <strong>de</strong> abstracción al que se realice el trabajo. Se consi<strong>de</strong>ra un modulo al<br />
que se le <strong>de</strong>be dar un objetivo y una situación inicial y que <strong>en</strong> función <strong>de</strong> ellos<br />
<strong>de</strong>vuelve un p<strong>la</strong>n <strong>de</strong> acción (Torras, 1989). El módulo <strong>de</strong>be poseer (o ser capaz <strong>de</strong><br />
obt<strong>en</strong>er), por ejemplo, una <strong>de</strong>scripción <strong>de</strong>l <strong>en</strong>torno, <strong>la</strong>s acciones posibles, estrategias<br />
pre<strong>de</strong>finidas, restricciones especificas, <strong>en</strong>tre otra información.<br />
El <strong>en</strong>foque más g<strong>en</strong>eralizado <strong>de</strong> funcionami<strong>en</strong>to es mediante el fraccionami<strong>en</strong>to <strong>de</strong><br />
<strong>la</strong> tarea <strong>en</strong> un número finito <strong>de</strong> estados difer<strong>en</strong>tes y hacer un p<strong>la</strong>n consist<strong>en</strong>te <strong>en</strong> una<br />
secu<strong>en</strong>cia <strong>de</strong> estados que lleve <strong>de</strong>l inicial al <strong>de</strong>seado acompañada <strong>de</strong> los operadores<br />
para realizar <strong>la</strong>s transiciones <strong>de</strong> un estado a otro. La forma más usual <strong>de</strong><br />
repres<strong>en</strong>tación <strong>de</strong>l problema consiste <strong>en</strong> el uso <strong>de</strong> grafos <strong>de</strong> estados, <strong>en</strong> los que los<br />
nodos repres<strong>en</strong>tan los estados <strong>de</strong> <strong>la</strong> tarea y los arcos <strong>la</strong>s distintas transiciones posibles,<br />
pue<strong>de</strong> que con algún índice <strong>de</strong> coste <strong>de</strong> <strong>la</strong> transición asociado a los mismos. De esta<br />
manera, el problema <strong>de</strong> p<strong>la</strong>nificación se convierte <strong>en</strong> el problema <strong>de</strong> búsquedas <strong>de</strong><br />
caminos <strong>en</strong> grafos, don<strong>de</strong> se pued<strong>en</strong> aplicar diversas estrategias.<br />
D<strong>en</strong>tro <strong>de</strong>l ámbito <strong>de</strong> <strong>la</strong> robótica, una vez resuelto el problema <strong>de</strong> <strong>la</strong>s distintas fases<br />
o estado <strong>de</strong> <strong>la</strong> tarea se <strong>de</strong>be pasar a <strong>la</strong> p<strong>la</strong>nificación <strong>de</strong> <strong>la</strong>s trayectorias <strong>de</strong>l robot que<br />
pued<strong>en</strong> ser <strong>en</strong> el espacio libre evitando colisiones o <strong>en</strong> contacto cuando este sea<br />
inevitable.<br />
La p<strong>la</strong>nificación <strong>de</strong> movimi<strong>en</strong>tos libres <strong>de</strong> colisión es un campo que ha t<strong>en</strong>ido un<br />
gran <strong>de</strong>sarrollo, <strong>en</strong> particu<strong>la</strong>r <strong>de</strong>bido a los d<strong>en</strong>ominados robots móviles, que, <strong>en</strong> <strong>la</strong><br />
mayoría <strong>de</strong> los casos, <strong>de</strong> forma natural reduc<strong>en</strong> el problema a tres grados <strong>de</strong> libertad,
haciéndolo accesible a aplicaciones reales. La herrami<strong>en</strong>ta más popu<strong>la</strong>r <strong>en</strong> este campo<br />
es el Espacio <strong>de</strong> Configuraciones, es <strong>de</strong>cir el espacio <strong>de</strong>terminado por el conjunto <strong>de</strong><br />
variables necesarias para <strong>de</strong>terminar unívocam<strong>en</strong>te <strong>la</strong> posición <strong>de</strong> los objetos móviles<br />
involucrados <strong>en</strong> <strong>la</strong> tarea. El Espacio <strong>de</strong> Configuraciones pue<strong>de</strong> repres<strong>en</strong>tar <strong>de</strong> manera<br />
muy directa <strong>la</strong>s posiciones accesibles e inaccesibles <strong>de</strong>l robot, y por tanto realizar un<br />
p<strong>la</strong>n <strong>de</strong> movimi<strong>en</strong>tos se reduce a <strong>en</strong>contrar un camino continuo <strong>en</strong> dicho espacio<br />
cuyos puntos sean todos accesibles. Para ello exist<strong>en</strong> difer<strong>en</strong>tes métodos, como por<br />
ejemplo, los basados <strong>en</strong>: grafos <strong>de</strong> visibilidad, diagramas <strong>de</strong> Voronoi, particiones <strong>de</strong>l<br />
espacio libre y búsqueda <strong>de</strong> caminos <strong>en</strong>tre cada par <strong>de</strong> subconjuntos vecinos, y<br />
funciones pot<strong>en</strong>ciales. La figura 7 muestra el diagrama a bloques <strong>de</strong> <strong>la</strong> navegación<br />
implem<strong>en</strong>tada <strong>en</strong> este proyecto:<br />
Fig. 7. P<strong>la</strong>nificador <strong>de</strong> <strong>la</strong> ruta<br />
Mediante lo explicado anteriorm<strong>en</strong>te se <strong>de</strong>scompone <strong>la</strong> imag<strong>en</strong> <strong>en</strong> celdas (figura 8)<br />
para minimizar los datos con los que se va a obt<strong>en</strong>er <strong>la</strong> ruta óptima.<br />
Estas celdas pued<strong>en</strong> pert<strong>en</strong>ecer alguno <strong>de</strong> los sigui<strong>en</strong>tes espacios:<br />
•Espacio <strong>de</strong> configuración prohibido<br />
Cforb(R,S)<br />
•Espacio <strong>de</strong> configuración libre<br />
Cfree(R,S)<br />
•Espacio <strong>de</strong> configuración <strong>de</strong>l obstáculo<br />
C-obstáculo
Fig. 8. Descomposición <strong>de</strong> <strong>la</strong> imag<strong>en</strong> <strong>en</strong> celdas<br />
Para <strong>la</strong> obt<strong>en</strong>ción <strong>de</strong> <strong>la</strong> ruta optima se usara un método heurística el cual consiste<br />
<strong>en</strong> verificar los vecinos cercanos y lejanos con el fin <strong>de</strong> <strong>en</strong>contrar al que se <strong>en</strong>cu<strong>en</strong>tre<br />
mas cerca <strong>de</strong> <strong>la</strong> posición final .<br />
5 Descripción <strong>de</strong>l sistema <strong>de</strong> comunicación<br />
Una vez que se ti<strong>en</strong>e <strong>la</strong> trayectoria se forma <strong>la</strong> trama que saldrá por el puerto serie<br />
(UART- Universal Asynchronous Receiver Transmitter) <strong>de</strong> <strong>la</strong> PC [4].<br />
5.1 Transmisión <strong>de</strong> <strong>la</strong> trama<br />
5.1.1 Características <strong>de</strong>l MAX232<br />
El circuito integrado MAX232 cambia los niveles TTL a los <strong>de</strong>l estándar RS-232<br />
cuando se hace una transmisión, y cambia los niveles RS-232 a TTL cuando se ti<strong>en</strong>e<br />
una recepción. El circuito típico se muestra <strong>en</strong> <strong>la</strong> figura 9:<br />
Fig. 9. Circuito básico <strong>de</strong> conexión <strong>de</strong>l MAX232
5.1.2 Características <strong>de</strong>l transmisor TXM-315-LC<br />
Es i<strong>de</strong>al para aplicaciones don<strong>de</strong> se utilice control remoto, seguridad, id<strong>en</strong>tificación y<br />
transfer<strong>en</strong>cia <strong>de</strong> datos periódica, no utiliza compon<strong>en</strong>tes RF a excepción <strong>de</strong> una<br />
ant<strong>en</strong>a que es necesaria para su uso.<br />
Otras características <strong>de</strong> este transmisor son:<br />
• Bajo costo.<br />
• Muy bajo consumo <strong>de</strong> <strong>en</strong>ergía.<br />
• Basado <strong>en</strong> arquitectura SAW.<br />
• Transfiere información a 5Kbps.<br />
• El rango <strong>de</strong> voltaje es <strong>de</strong> 2.7-5.2VDC.<br />
• Pres<strong>en</strong>ta armónicos pequeños.<br />
5.2 Recepción <strong>de</strong> trama<br />
El sigui<strong>en</strong>te módulo estará sobre el chasis <strong>de</strong>l móvil.<br />
5.2.1 Caracterìsticas <strong>de</strong>l receptor RXM-315-LC<br />
Algunas <strong>de</strong> <strong>la</strong>s características <strong>de</strong>l receptor RXM-315-LC son:<br />
• Es efici<strong>en</strong>te, <strong>de</strong> bajo costo.<br />
• Consume poca <strong>en</strong>ergía.<br />
• Basado <strong>en</strong> arquitectura SAW.<br />
• Notable s<strong>en</strong>sibilidad.<br />
• Soporta transfer<strong>en</strong>cias <strong>de</strong> 5Kbps.<br />
• Cu<strong>en</strong>ta con interfaz serial.<br />
• Recibe información a una distancia máxima <strong>de</strong> 90 metros.<br />
5.2.2 Modo <strong>de</strong> operación<br />
El tipo <strong>de</strong> modu<strong>la</strong>ción se pres<strong>en</strong>ta con un ‘0’ lógico cuando no se pres<strong>en</strong>ta un<br />
m<strong>en</strong>saje, ‘1’ lógico cuando hay m<strong>en</strong>saje.<br />
Este método <strong>de</strong> modu<strong>la</strong>ción aporta numerosos b<strong>en</strong>eficios, dos <strong>de</strong> los más<br />
importantes son:<br />
• Eficacia contemp<strong>la</strong>ndo el costo <strong>de</strong>bido al diseño.<br />
• La salida se produce con mucha pot<strong>en</strong>cia.<br />
La SAW provee <strong>de</strong> una precisión muy alta <strong>de</strong> <strong>la</strong> frecu<strong>en</strong>cia original con excel<strong>en</strong>te<br />
inmunidad al ruido, permite increm<strong>en</strong>tar <strong>la</strong> s<strong>en</strong>sibilidad y reduce <strong>la</strong> interfer<strong>en</strong>cia por<br />
bandas cercanas.<br />
La calidad <strong>de</strong> los compon<strong>en</strong>tes y arquitectura utilizada <strong>en</strong> <strong>la</strong> serie LC es inusual <strong>en</strong><br />
un producto <strong>de</strong> bajo costo y esto hace que sean capaces <strong>de</strong> igua<strong>la</strong>r <strong>la</strong> salida <strong>de</strong> algunos<br />
compon<strong>en</strong>tes más caros.
5.2.3 Características <strong>de</strong>l microprocesador ATM90S8535 [3]<br />
En este micro se va a <strong>de</strong>codificar <strong>la</strong> trama.<br />
• Arquitectura RISC.<br />
• 8 bits.<br />
• 32 registros <strong>de</strong> propósito g<strong>en</strong>eral <strong>de</strong> 8bits.<br />
• 118 instrucciones.<br />
• Memoria <strong>de</strong> programa no volátil y datos.<br />
• F<strong>la</strong>sh <strong>de</strong> 8Kbytes.<br />
• 512 bytes <strong>de</strong> EEPROM.<br />
• 512 bytes <strong>de</strong> memoria SRAM interna.<br />
Por parte <strong>de</strong> los periféricos, sus características son:<br />
• 8 canales, convertidos AD <strong>de</strong> 10 bits.<br />
• UART programables.<br />
• 2 Timer/Counter <strong>de</strong> 8 bits con preesca<strong>la</strong> y modo <strong>de</strong> comparación separado.<br />
• 1 Timer/Counter <strong>de</strong> 16 bits con preesca<strong>la</strong> y modo <strong>de</strong> comparación separado y<br />
<strong>de</strong> 8,9 ó 10 bits para PWM (Modu<strong>la</strong>ción por ancho <strong>de</strong> pulso).<br />
• Watchdog programable con osci<strong>la</strong>dor interno.<br />
• Comparador analógico.<br />
Características Especiales <strong>de</strong>l Microprocesador:<br />
• Circuito <strong>de</strong> reset.<br />
• Reloj <strong>de</strong> tiempo real con osci<strong>la</strong>dor separado y modo contador.<br />
• Fu<strong>en</strong>tes <strong>de</strong> interrupción internas y externas.<br />
• Tres modos <strong>de</strong> dormido, power save, power down e Idle.<br />
• Interfaz serial.<br />
• Consumo <strong>de</strong> corri<strong>en</strong>te a 4MHz, 3V y 20°C.<br />
• I/O y paquetes.<br />
• 32 líneas programables <strong>de</strong> I/O.<br />
• Voltaje <strong>de</strong> operación.<br />
• Vcc 4.0 - 6V.<br />
• Grado <strong>de</strong> velocidad.<br />
• 0 - 8 MHz.<br />
5.2.4 Características <strong>de</strong>l integrado L293D<br />
El control <strong>de</strong> los motores se llevará a cabo mediante este circuito, cuya característica<br />
principal es que cu<strong>en</strong>ta con un pu<strong>en</strong>te H, lo que elimina hardware al no requerir <strong>de</strong><br />
una etapa <strong>de</strong> pot<strong>en</strong>cia externa.
Fig. 10. Configuración <strong>de</strong>l CNY70<br />
5.2.5 Características <strong>de</strong>l s<strong>en</strong>sor CNY70<br />
El s<strong>en</strong>sor, a través <strong>de</strong> un <strong>en</strong>co<strong>de</strong>r como el <strong>de</strong> <strong>la</strong> figura 10, permitirá conocer <strong>la</strong><br />
distancia específica que recorrió el móvil, esto gracias a un disco con “n” zonas<br />
difer<strong>en</strong>ciadas <strong>de</strong> este tipo acop<strong>la</strong>das a cada rueda. Esto proporciona una resolución <strong>de</strong><br />
“n” pulsos por vuelta, permiti<strong>en</strong>do t<strong>en</strong>er una refer<strong>en</strong>cia <strong>de</strong>l movimi<strong>en</strong>to <strong>de</strong> cada<br />
motor.<br />
6 Móvil<br />
El espacio <strong>de</strong> configuración es el principal elem<strong>en</strong>to que se consi<strong>de</strong>ra <strong>en</strong> el análisis <strong>de</strong><br />
un problema. En él se <strong>de</strong>scrib<strong>en</strong> todas <strong>la</strong>s posibles configuraciones <strong>de</strong>l <strong>en</strong>torno y es el<br />
espacio n-dim<strong>en</strong>sional don<strong>de</strong> se ubica cada grado <strong>de</strong> libertad <strong>de</strong>l robot móvil.<br />
El espacio <strong>de</strong> configuraciones sirve para saber si existe una ruta que pueda utilizar<br />
el móvil para <strong>de</strong>sp<strong>la</strong>zarse <strong>de</strong> un punto a otro.<br />
Por lo anterior, se <strong>de</strong>cidió que el arreglo <strong>de</strong> ruedas a utilizar sea un arreglo <strong>de</strong><br />
ruedas <strong>de</strong> triciclo, es <strong>de</strong>cir, el móvil cu<strong>en</strong>ta con dos ruedas fijas con el mismo eje, que<br />
dan tracción y una rueda in<strong>de</strong>p<strong>en</strong>di<strong>en</strong>te para <strong>la</strong> dirección. En <strong>la</strong>s figuras 11 y 12 se<br />
pue<strong>de</strong> ver el diagrama <strong>de</strong> esta disposición y el diseño físico <strong>de</strong>l móvil.<br />
Fig. 11. Arreglo <strong>de</strong> ruedas triciclo
Fig. 12. Diseño físico <strong>de</strong>l móvil<br />
La restricción cinemática con <strong>la</strong> que cu<strong>en</strong>ta es holonómico. Los grados <strong>de</strong> libertad<br />
están <strong>de</strong>sacop<strong>la</strong>dos, es <strong>de</strong>cir se cu<strong>en</strong>ta con un arreglo <strong>de</strong> ruedas difer<strong>en</strong>cial o sincrono.<br />
Debido a esta situación es posible <strong>de</strong>sacop<strong>la</strong>r <strong>la</strong> posición <strong>de</strong> ori<strong>en</strong>tación, ya que el<br />
móvil ti<strong>en</strong>e <strong>la</strong> capacidad <strong>de</strong> girar sobre su propio eje.<br />
La forma <strong>de</strong>l robot móvil ti<strong>en</strong>e un fuerte impacto <strong>en</strong> su facilidad <strong>de</strong> navegación, <strong>en</strong><br />
particu<strong>la</strong>r si el esc<strong>en</strong>ario que se va a recorrer cu<strong>en</strong>ta con obstáculos y pasillos<br />
angostos. La forma <strong>de</strong>l móvil es cuadrada. La navegación <strong>de</strong>p<strong>en</strong><strong>de</strong> <strong>de</strong> <strong>la</strong> ori<strong>en</strong>tación<br />
<strong>de</strong>l robot, aum<strong>en</strong>tando así el espacio <strong>de</strong> configuraciones a 3D.<br />
7 Conclusiones<br />
Exist<strong>en</strong> numerosas técnicas para el procesami<strong>en</strong>to <strong>de</strong> imág<strong>en</strong>es <strong>en</strong> este trabajo se<br />
utilizan algunas <strong>de</strong> el<strong>la</strong>s para el reconocimi<strong>en</strong>to <strong>de</strong> objetos, y también se buscaron<br />
aquel<strong>la</strong>s que no complicaran tanto el proceso <strong>de</strong> búsqueda <strong>de</strong> <strong>la</strong> ruta óptima que el<br />
móvil <strong>de</strong>berá seguir para llegar al objetivo. Actualm<strong>en</strong>te se están realizando pruebas<br />
<strong>de</strong>l sistema <strong>de</strong> reconocimi<strong>en</strong>to y g<strong>en</strong>erador <strong>de</strong> trayectorias <strong>en</strong> cada una <strong>de</strong> <strong>la</strong>s etapas<br />
que lo conforman.<br />
El sistema <strong>de</strong> hardware que se pres<strong>en</strong>ta pret<strong>en</strong><strong>de</strong> realizar <strong>la</strong> comunicación por<br />
radiofrecu<strong>en</strong>cia y el control <strong>de</strong>l móvil <strong>en</strong> los módulos <strong>de</strong> transmisión y recepción<br />
respectivam<strong>en</strong>te. Este sistema se <strong>en</strong>cu<strong>en</strong>tra <strong>en</strong> su etapa <strong>de</strong> construcción t<strong>en</strong>i<strong>en</strong>do el<br />
diseño <strong>de</strong>l mismo <strong>en</strong> un 100%.<br />
Al móvil se le están haci<strong>en</strong>do pequeños ajustes. De esta manera se pret<strong>en</strong><strong>de</strong> t<strong>en</strong>er<br />
un sistema completo, con un software <strong>de</strong> reconocimi<strong>en</strong>to y g<strong>en</strong>erador <strong>de</strong> trayectorias<br />
<strong>en</strong> conjunción con un hardware específico para <strong>la</strong> aplicación.<br />
Refer<strong>en</strong>cias<br />
[1]: http://linxtechnologies.com<br />
[2]: R. C. González and E. C. Woods, “Digital Image Processing”, Ed. Addison Wesley, 1992.<br />
[2]: R. C. Gonzalez y R. E. Woods, Tratami<strong>en</strong>to digital <strong>de</strong> imág<strong>en</strong>es, 1996<br />
[3]: www.atmel.com<br />
[4]: Norma RS232
Evaluación <strong>de</strong> una versión parale<strong>la</strong><br />
para el Co<strong>de</strong>c H.264/AVC<br />
Carlos G<strong>en</strong>is Triana, Abe<strong>la</strong>rdo Rodríguez León<br />
Departam<strong>en</strong>to <strong>de</strong> Sistemas y Computación, Instituto Tecnológico <strong>de</strong> Veracruz,<br />
Calzada Miguel Ángel <strong>de</strong> Quevedo 2779, Veracruz, <strong>México</strong><br />
carlosg<strong>en</strong>is@yahoo.com.mx, arleon@itver.edu.mx<br />
Resum<strong>en</strong>. En este capítulo se pres<strong>en</strong>ta una evaluación <strong>de</strong>l codificador <strong>de</strong> vi<strong>de</strong>o<br />
basado <strong>en</strong> el estándar H.264/AVC propuesta por JVT contra una versión<br />
parale<strong>la</strong> implem<strong>en</strong>tada por GAP <strong>de</strong> DISCA-UPV. El primero realiza <strong>la</strong> tarea <strong>de</strong><br />
manera secu<strong>en</strong>cial mi<strong>en</strong>tras tanto el segundo segm<strong>en</strong>ta y distribuye<br />
parale<strong>la</strong>m<strong>en</strong>te una secu<strong>en</strong>cia <strong>de</strong> vi<strong>de</strong>o (GOPs) <strong>en</strong>tre los nodos <strong>de</strong> un cluster.<br />
Para <strong>la</strong> distribución <strong>de</strong> <strong>la</strong> carga utilizaron el estándar MPI, <strong>de</strong>sarrol<strong>la</strong>da por el<br />
grupo Forum <strong>de</strong> MPI. Se observó un patrón <strong>de</strong> codificación no equival<strong>en</strong>te<br />
<strong>en</strong>tre ambas versiones y una codificación no cíclica <strong>en</strong> <strong>la</strong> versión parale<strong>la</strong>, con<br />
lo cual el número <strong>de</strong> frames es una limitante para realizar pruebas <strong>de</strong><br />
codificación con mayor número <strong>de</strong> GOPs. Las pruebas realizadas y analizadas<br />
<strong>en</strong> este capítulo, son el punto <strong>de</strong> partida que <strong>de</strong>terminará el rumbo que seguirá<br />
<strong>la</strong> pres<strong>en</strong>te investigación a corto p<strong>la</strong>zo. En dicha investigación se buscará<br />
implem<strong>en</strong>tar y evaluar un algoritmo paralelo con ba<strong>la</strong>nceo <strong>de</strong> carga para <strong>la</strong><br />
compresión <strong>de</strong> secu<strong>en</strong>cias <strong>de</strong> vi<strong>de</strong>o, usando el codificador H.264, buscando<br />
tiempo real <strong>en</strong> <strong>la</strong> codificación, así como <strong>de</strong>terminar el tipo <strong>de</strong> vi<strong>de</strong>o más<br />
a<strong>de</strong>cuado para esta versión.<br />
1 Introducción<br />
Exist<strong>en</strong> muchas aplicaciones para <strong>la</strong> transmisión <strong>de</strong> imag<strong>en</strong> digital <strong>en</strong> movimi<strong>en</strong>to<br />
tales como <strong>la</strong> vi<strong>de</strong>oconfer<strong>en</strong>cia, el control y monitorización <strong>de</strong> sistemas robotizados,<br />
<strong>la</strong> telemedicina, los canales <strong>de</strong> difusión <strong>en</strong> Internet o los sistemas <strong>de</strong> vi<strong>de</strong>o por<br />
<strong>de</strong>manda. Sin embargo, <strong>la</strong> transmisión <strong>de</strong> imag<strong>en</strong> digital <strong>en</strong> movimi<strong>en</strong>to se <strong>en</strong>cu<strong>en</strong>tra<br />
con el problema <strong>de</strong> que requiere el almac<strong>en</strong>ami<strong>en</strong>to y procesami<strong>en</strong>to <strong>de</strong> datos<br />
multimedia. Debido a <strong>la</strong> naturaleza <strong>de</strong> estos datos, se necesita un ancho <strong>de</strong> banda<br />
excesivo y que hoy <strong>en</strong> día no está disponible para <strong>la</strong> mayoría <strong>de</strong> los usuarios. Por<br />
ejemplo, para transmitir vi<strong>de</strong>o crudo (sin codificar) <strong>en</strong> una resolución <strong>de</strong> 176x144,<br />
utilizando 24 bits <strong>de</strong> profundidad y una tasa <strong>de</strong> 10 frames/seg, se necesitaría un ancho<br />
<strong>de</strong> banda <strong>de</strong> casi 6 Mbps. A<strong>de</strong>más <strong>de</strong>l problema <strong>de</strong>l ancho <strong>de</strong> banda también existe el<br />
inconv<strong>en</strong>i<strong>en</strong>te <strong>de</strong>l espacio utilizado para almac<strong>en</strong>ar dicho vi<strong>de</strong>o. Así, un segundo <strong>de</strong><br />
un vi<strong>de</strong>o <strong>de</strong> color con el estándar NTSC requiere casi 23 MBytes y un vi<strong>de</strong>o <strong>de</strong> 90<br />
minutos, <strong>en</strong> este mismo formato, requeriría aproximadam<strong>en</strong>te 120 GBytes. Por lo<br />
tanto, se ti<strong>en</strong>e que reducir <strong>la</strong> cantidad <strong>de</strong> información que g<strong>en</strong>eran <strong>la</strong>s imág<strong>en</strong>es <strong>en</strong><br />
movimi<strong>en</strong>to a través <strong>de</strong>l uso <strong>de</strong> técnicas <strong>de</strong> compresión <strong>de</strong> datos respetando, <strong>en</strong> <strong>la</strong><br />
medida <strong>de</strong> lo posible, su calidad.
Para comprimir <strong>la</strong>s imág<strong>en</strong>es digitales lo que se hace es eliminar <strong>la</strong> información<br />
redundante. Para ello, los sistemas <strong>de</strong> compresión se aprovechan <strong>de</strong> los tres tipos <strong>de</strong><br />
redundancia exist<strong>en</strong>tes <strong>en</strong> los vi<strong>de</strong>os digitales:<br />
• Espacial. Normalm<strong>en</strong>te, los valores <strong>en</strong>tre píxeles vecinos <strong>en</strong> una imag<strong>en</strong> son<br />
simi<strong>la</strong>res.<br />
• Espectral. En imág<strong>en</strong>es compuestas por más <strong>de</strong> una banda espectral, los valores<br />
espectrales <strong>de</strong> un mismo píxel están fuertem<strong>en</strong>te corre<strong>la</strong>cionados.<br />
• Temporal. Frames consecutivos <strong>en</strong> una secu<strong>en</strong>cia <strong>de</strong> vi<strong>de</strong>o pres<strong>en</strong>tan<br />
frecu<strong>en</strong>tem<strong>en</strong>te pocos cambios.<br />
La redundancia espacial y <strong>la</strong> redundancia espectral se tratan a nivel <strong>de</strong> imág<strong>en</strong>es,<br />
ya que explotan <strong>la</strong> redundancia implícita <strong>en</strong> <strong>la</strong>s imág<strong>en</strong>es, mi<strong>en</strong>tras que <strong>la</strong> redundancia<br />
temporal es explotada por técnicas (como predicción y comp<strong>en</strong>sación <strong>de</strong> movimi<strong>en</strong>to)<br />
que sólo codifican <strong>la</strong>s difer<strong>en</strong>cias <strong>en</strong>tre frames adyac<strong>en</strong>tes pert<strong>en</strong>eci<strong>en</strong>tes a una<br />
secu<strong>en</strong>cia <strong>de</strong> vi<strong>de</strong>o.<br />
En los últimos años se han propuesto y se han <strong>de</strong>sarrol<strong>la</strong>do una variedad <strong>de</strong><br />
estándares <strong>de</strong> compresión <strong>de</strong> vi<strong>de</strong>o e imag<strong>en</strong> (H.26X, MPEG-X, JPEG200,...). Sin<br />
embargo, no todos los estándares proporcionan <strong>la</strong>s mismas características. Unos<br />
codificadores obti<strong>en</strong><strong>en</strong> mayor calidad <strong>de</strong> imag<strong>en</strong>, a costa, sobre todo, <strong>de</strong> un mayor<br />
tiempo <strong>de</strong> procesami<strong>en</strong>to, por lo que se ha t<strong>en</strong>ido que buscar un equilibrio <strong>en</strong>tre el<br />
tiempo <strong>de</strong> procesami<strong>en</strong>to (tiempo <strong>de</strong> codificación) y <strong>la</strong> calidad que se obti<strong>en</strong>e <strong>de</strong> <strong>la</strong>s<br />
imág<strong>en</strong>es <strong>de</strong>codificadas. Por tanto, si se aum<strong>en</strong>tara <strong>la</strong> velocidad <strong>de</strong> procesami<strong>en</strong>to se<br />
podrían utilizar codificadores que ofrec<strong>en</strong> una calidad mayor <strong>de</strong> <strong>la</strong>s imág<strong>en</strong>es y <strong>de</strong> <strong>la</strong>s<br />
secu<strong>en</strong>cias <strong>de</strong> vi<strong>de</strong>o. Para conseguir una capacidad <strong>de</strong> procesami<strong>en</strong>to muy alta se<br />
ti<strong>en</strong><strong>en</strong> varias alternativas:<br />
• Sistemas fuertem<strong>en</strong>te acop<strong>la</strong>dos. Como el proceso <strong>de</strong> codificación suele requerir<br />
mucho po<strong>de</strong>r <strong>de</strong> cómputo g<strong>en</strong>eralm<strong>en</strong>te se logra, usando computadoras <strong>de</strong> altas<br />
prestaciones que ayud<strong>en</strong> con sus sistemas multiprocesadores integrados <strong>en</strong> un solo<br />
gabinete, llevar a cabo este proceso con tiempos <strong>de</strong> retardo aceptables. El<br />
inconv<strong>en</strong>i<strong>en</strong>te es que son equipos muy costosos.<br />
• Tarjeta codificadora. Desafortunadam<strong>en</strong>te son pocas <strong>la</strong>s tarjetas codificadoras que<br />
pued<strong>en</strong> dar un bu<strong>en</strong> r<strong>en</strong>dimi<strong>en</strong>to <strong>en</strong> tiempo real (codificación m<strong>en</strong>or o igual a <strong>la</strong><br />
duración <strong>de</strong> <strong>la</strong> secu<strong>en</strong>cia <strong>de</strong> vi<strong>de</strong>o). Las que lo logran lo hac<strong>en</strong> con estándares<br />
como MPEG1 o MPEG2 como <strong>la</strong> Broadway <strong>de</strong> DataTras<strong>la</strong>tion. Exist<strong>en</strong> tarjetas<br />
que codifican también <strong>en</strong> MPEG4 aunque no lo hac<strong>en</strong> <strong>en</strong> tiempo real y con<br />
configuración limitada.<br />
• Sistemas débilm<strong>en</strong>te acop<strong>la</strong>dos. Una alternativa que no requerirá usar costosos<br />
equipos es usar cluster <strong>de</strong> computadoras personales conectadas por una red, <strong>la</strong>s<br />
cuales se han hecho muy popu<strong>la</strong>res ya que ofrec<strong>en</strong> muy bu<strong>en</strong>as prestaciones a un<br />
precio más económico y con mayor esca<strong>la</strong>bilidad que los sistemas fuertem<strong>en</strong>te<br />
acop<strong>la</strong>dos. Para lograr esto hay que implem<strong>en</strong>tar los algoritmos <strong>de</strong> compresión<br />
usando técnicas <strong>de</strong> programación parale<strong>la</strong>.<br />
En este trabajo <strong>de</strong> investigación se pres<strong>en</strong>ta una evaluación <strong>de</strong>l codificador <strong>de</strong><br />
vi<strong>de</strong>o basado <strong>en</strong> el estándar H.264/AVC propuesta por el Joint Vi<strong>de</strong>o Team (JVT)
contra una versión parale<strong>la</strong> implem<strong>en</strong>tada por el Grupo <strong>de</strong> Arquitecturas Parale<strong>la</strong>s<br />
(GAP) <strong>de</strong>l Departam<strong>en</strong>to <strong>de</strong> Informática, Sistemas <strong>de</strong> Cómputo y Automática <strong>de</strong> <strong>la</strong><br />
Universidad Politécnica <strong>de</strong> Val<strong>en</strong>cia (DISCA-UPV) [1]. Cabe seña<strong>la</strong>r que <strong>la</strong><br />
paralelización <strong>de</strong> <strong>la</strong> carga <strong>la</strong> hicieron utilizando <strong>la</strong> técnica estándar <strong>de</strong> programación<br />
parale<strong>la</strong> para el paso <strong>de</strong> m<strong>en</strong>sajes (MPI), <strong>de</strong>sarrol<strong>la</strong>da por el grupo Forum <strong>de</strong> MPI<br />
En el punto 1 se hace una introducción a <strong>la</strong> codificación <strong>de</strong> vi<strong>de</strong>o. En los puntos 2<br />
y 3 se hac<strong>en</strong> <strong>de</strong>scripciones g<strong>en</strong>erales <strong>de</strong> los estándares MPI y H.264/AVC,<br />
respectivam<strong>en</strong>te. En el punto 4 se <strong>en</strong>uncian <strong>la</strong>s características <strong>de</strong> <strong>la</strong> versión parale<strong>la</strong>.<br />
En el punto 5 se muestran algunos resultados obt<strong>en</strong>idos <strong>de</strong> <strong>la</strong> evaluación <strong>de</strong>l<br />
codificador secu<strong>en</strong>cial contra el paralelo y finalm<strong>en</strong>te <strong>en</strong> el punto 6 se hace m<strong>en</strong>ción<br />
sobre el trabajo futuro que se ti<strong>en</strong>e contemp<strong>la</strong>do realizar tomando como punto <strong>de</strong><br />
refer<strong>en</strong>cia <strong>la</strong>s pruebas citadas <strong>en</strong> este docum<strong>en</strong>to.<br />
2 MPI<br />
MPI fue <strong>de</strong>sarrol<strong>la</strong>do por el Forum MPI, que es un grupo abierto <strong>en</strong> repres<strong>en</strong>tación <strong>de</strong><br />
una amplia sección <strong>de</strong> <strong>la</strong> industria y <strong>de</strong> intereses académicos. MPI es un conjunto <strong>de</strong><br />
funciones (API) que permite a los programadores escribir aplicaciones parale<strong>la</strong>s.<br />
Estas aplicaciones están formadas por una serie <strong>de</strong> procesos que intercambian<br />
m<strong>en</strong>sajes (operaciones cooperativas) a través <strong>de</strong> MPI para llevar a cabo un trabajo<br />
común. Esta librería <strong>de</strong> paso <strong>de</strong> m<strong>en</strong>sajes está especificada para C, C++ y Fortran.<br />
MPI se pue<strong>de</strong> utilizar tanto <strong>en</strong> sistemas fuertem<strong>en</strong>te o débilm<strong>en</strong>te acop<strong>la</strong>dos. Sin<br />
embargo, hoy <strong>en</strong> día, se suele utilizar fundam<strong>en</strong>talm<strong>en</strong>te con cluster <strong>de</strong> computadores,<br />
ya que permit<strong>en</strong> obt<strong>en</strong>er una gran pot<strong>en</strong>cia <strong>de</strong> <strong>computación</strong> a un bajo costo. Debido a<br />
<strong>la</strong> gran variabilidad <strong>de</strong> <strong>en</strong>tornos don<strong>de</strong> se utiliza MPI, se pue<strong>de</strong> <strong>de</strong>ducir que el<br />
estándar es portable e in<strong>de</strong>p<strong>en</strong>di<strong>en</strong>te <strong>de</strong> <strong>la</strong> p<strong>la</strong>taforma <strong>en</strong> <strong>la</strong> que se ejecuta.<br />
La especificación está dividida <strong>en</strong> dos partes: MPI-1 (versión 1.2) y MPI-2<br />
(versión 2.0). En un principio fue diseñada para permitir el <strong>de</strong>sarrollo <strong>de</strong> librerías<br />
parale<strong>la</strong>s, pero actualm<strong>en</strong>te también proporciona un acceso paralelo al hardware tanto<br />
a usuarios finales, como a <strong>de</strong>sarrol<strong>la</strong>dores <strong>de</strong> librerías y <strong>de</strong> aplicaciones.<br />
MPI utiliza el paso <strong>de</strong> m<strong>en</strong>sajes porque es un paradigma <strong>de</strong> programación<br />
fácilm<strong>en</strong>te <strong>en</strong>t<strong>en</strong>dible, efici<strong>en</strong>te y que emplean múltiples aplicaciones. A<strong>de</strong>más es<br />
i<strong>de</strong>al para <strong>de</strong>sarrol<strong>la</strong>r programas paralelos que sean portables o para aum<strong>en</strong>tar <strong>la</strong><br />
productividad <strong>de</strong> un sistema secu<strong>en</strong>cial. A<strong>de</strong>más <strong>la</strong>s características <strong>de</strong> MPI le hac<strong>en</strong><br />
ser un sistema muy completo: modu<strong>la</strong>r (i<strong>de</strong>al para <strong>la</strong>s librerías), portable, dispone <strong>de</strong><br />
comunicaciones seguras, permite crear subgrupos y exist<strong>en</strong> herrami<strong>en</strong>tas para medir<br />
el r<strong>en</strong>dimi<strong>en</strong>to que ofrece.<br />
3 H.264<br />
H.264 es uno <strong>de</strong> los estándares <strong>de</strong> codificación <strong>de</strong> vi<strong>de</strong>o más nuevos <strong>de</strong>sarrol<strong>la</strong>do por<br />
el VCEG (Vi<strong>de</strong>o Coding Experts Group) y por el MPEG (Moving Picture Experts<br />
Group). El VCEG es un grupo que pert<strong>en</strong>ece a <strong>la</strong> ITU-T (International<br />
Communications Union), mi<strong>en</strong>tras que el MPEG pert<strong>en</strong>ece a <strong>la</strong> ISO/IEC
(International Standarization Organization/International Electrotechnical<br />
Commission).<br />
El objetivo principal por el cual surgió el estándar H.264 fue el <strong>de</strong> aum<strong>en</strong>tar <strong>la</strong> tasa<br />
<strong>de</strong> compresión <strong>de</strong> vi<strong>de</strong>o. Antes <strong>de</strong> salir este estándar, existían otros codificadores <strong>de</strong><br />
vi<strong>de</strong>o como el MPEG-2. Este codificador se utilizaba básicam<strong>en</strong>te para <strong>la</strong> transmisión<br />
<strong>de</strong> señales <strong>de</strong> alta <strong>de</strong>finición (HD) y <strong>de</strong> <strong>de</strong>finición estándar (SD) sobre satélite o cable<br />
y para el almac<strong>en</strong>ami<strong>en</strong>to <strong>de</strong> señales <strong>de</strong> SD <strong>en</strong> DVDs. Pero, <strong>de</strong>bido al crecimi<strong>en</strong>to <strong>de</strong><br />
<strong>la</strong> popu<strong>la</strong>ridad <strong>de</strong> <strong>la</strong> televisión <strong>de</strong> alta <strong>de</strong>finición, se hace necesario utilizar técnicas <strong>de</strong><br />
codificación más efici<strong>en</strong>tes que MPEG-2. A<strong>de</strong>más, exist<strong>en</strong> otros medios <strong>de</strong><br />
transmisión (xDSL, UMTS) que ofrec<strong>en</strong> tasas <strong>de</strong> transfer<strong>en</strong>cia mucho m<strong>en</strong>ores que<br />
los canales broadcast y, por lo tanto, necesitan <strong>de</strong> una mayor tasa <strong>de</strong> compresión.<br />
En 1998 el VCEG publicó un proyecto (H.26L) que t<strong>en</strong>ía el propósito <strong>de</strong> dob<strong>la</strong>r <strong>la</strong><br />
efici<strong>en</strong>cia <strong>de</strong> <strong>la</strong> codificación que obt<strong>en</strong>ían los estándares <strong>de</strong> codificación que había <strong>en</strong><br />
ese mom<strong>en</strong>to. En octubre <strong>de</strong> 1999 salió <strong>la</strong> primera versión <strong>de</strong> este proyecto. En<br />
diciembre <strong>de</strong>l 2001, el VCEG y el MPEG se unieron y formaron el JVT (Joint Vi<strong>de</strong>o<br />
Team) con el objetivo <strong>de</strong> <strong>de</strong>sarrol<strong>la</strong>r un estándar <strong>de</strong> codificación <strong>de</strong> vi<strong>de</strong>o nuevo.<br />
Fruto <strong>de</strong> esta unión, <strong>en</strong> marzo <strong>de</strong>l 2003, se publicó el H.264 /AVC.<br />
Fig. 1. Evolución <strong>de</strong> <strong>la</strong>s recom<strong>en</strong>daciones ITU-T y estándares MPEG<br />
En <strong>la</strong> figura 1 se muestra <strong>la</strong> evolución <strong>de</strong> <strong>la</strong>s recom<strong>en</strong>daciones propuestas por <strong>la</strong><br />
ITU-T y <strong>de</strong> los estándares <strong>de</strong> <strong>la</strong> ISO/IEC. Las recom<strong>en</strong>daciones <strong>de</strong> <strong>la</strong> ITU-T<br />
(d<strong>en</strong>otadas como H.26x) fueron diseñadas principalm<strong>en</strong>te para aplicaciones <strong>de</strong> vi<strong>de</strong>o<br />
<strong>en</strong> tiempo real. Mi<strong>en</strong>tras que los estándares <strong>de</strong> <strong>la</strong> ISO/IEC (d<strong>en</strong>otados como MPEG-x)<br />
están más <strong>en</strong>focados a cubrir <strong>la</strong>s necesida<strong>de</strong>s <strong>de</strong> almac<strong>en</strong>ami<strong>en</strong>to <strong>de</strong> vi<strong>de</strong>o (DVD),<br />
multidifusión <strong>de</strong> vi<strong>de</strong>o (Cable, DSL, TV por satélite) y streaming <strong>de</strong> vi<strong>de</strong>o (vi<strong>de</strong>o <strong>en</strong><br />
Internet o sobre re<strong>de</strong>s inalámbricas). La mayor parte <strong>de</strong> los estándares y<br />
recom<strong>en</strong>daciones han sido <strong>de</strong>sarrol<strong>la</strong>dos por estos dos comités <strong>de</strong> forma<br />
in<strong>de</strong>p<strong>en</strong>di<strong>en</strong>te, exceptuando los estándares H.262/MPEG-2 y H264 que fueron<br />
<strong>de</strong>sarrol<strong>la</strong>dos conjuntam<strong>en</strong>te.<br />
Algunas <strong>de</strong> <strong>la</strong>s v<strong>en</strong>tajas que pres<strong>en</strong>ta el estándar H.264 fr<strong>en</strong>te a los estándares<br />
anteriores son:<br />
• Ahorro <strong>de</strong> tasa <strong>de</strong> bits superior al 50%. Comparado con el H.263+ o con el<br />
MPEG-4, el estándar H.264 permite reducir <strong>la</strong> tasa <strong>de</strong> bits más <strong>de</strong> un 50%.
• Ví<strong>de</strong>o <strong>de</strong> alta calidad. Ofrece vi<strong>de</strong>o <strong>de</strong> bu<strong>en</strong>a calidad tanto con tasas <strong>de</strong> bits altas<br />
como bajas.<br />
• Tolerancia a fallos. El H.264 ofrece herrami<strong>en</strong>tas para trabajar correctam<strong>en</strong>te<br />
cuando se pierd<strong>en</strong> paquetes <strong>en</strong> <strong>la</strong> red o se produc<strong>en</strong> errores a nivel <strong>de</strong> bits <strong>en</strong> re<strong>de</strong>s<br />
inalámbricas.<br />
• Entorno <strong>de</strong> red amigable. Debido a <strong>la</strong> capa NAL, se pued<strong>en</strong> transportar flujos <strong>de</strong><br />
bits <strong>de</strong> forma s<strong>en</strong>cil<strong>la</strong>.<br />
4 Versión parale<strong>la</strong> <strong>de</strong>l H.264<br />
En este apartado se hace una <strong>de</strong>scripción <strong>de</strong> una implem<strong>en</strong>tación parale<strong>la</strong> <strong>de</strong>sarrol<strong>la</strong>da<br />
por el GAP. El objetivo <strong>de</strong> esta versión fue conseguir un codificador <strong>de</strong> vi<strong>de</strong>o con<br />
mayor r<strong>en</strong>dimi<strong>en</strong>to que el propuesto por el JVT, mediante el reparto <strong>de</strong> <strong>la</strong> carga <strong>de</strong><br />
trabajo <strong>en</strong>tre varios procesadores. Estos últimos cooperarán <strong>en</strong> <strong>la</strong> codificación<br />
consigui<strong>en</strong>do así una significativa reducción <strong>de</strong>l tiempo <strong>de</strong> ejecución que permitirá <strong>la</strong><br />
codificación <strong>de</strong> vi<strong>de</strong>o <strong>en</strong> tiempo real. Eligieron este estándar porque hasta el mom<strong>en</strong>to<br />
es <strong>la</strong> última versión propuesta por el JVT; a<strong>de</strong>más proporciona vi<strong>de</strong>o codificado <strong>de</strong><br />
alta calidad y el costo computacional <strong>de</strong> este codificador es bastante alto.<br />
Como ya se sabe, los flujos <strong>de</strong> vi<strong>de</strong>o están formados por una secu<strong>en</strong>cia <strong>de</strong> cuadros<br />
o frames linealm<strong>en</strong>te distribuidos <strong>en</strong> el tiempo. La cantidad <strong>de</strong> trabajo que conlleva <strong>la</strong><br />
codificación <strong>de</strong> cada cuadro es variable y <strong>en</strong> <strong>la</strong> mayor parte <strong>de</strong> los casos impre<strong>de</strong>cible.<br />
Dada <strong>la</strong> naturaleza <strong>de</strong>l procesami<strong>en</strong>to paralelo, y más concretam<strong>en</strong>te el<br />
procesami<strong>en</strong>to paralelo mediante paso <strong>de</strong> m<strong>en</strong>sajes, los mayores b<strong>en</strong>eficios se<br />
obti<strong>en</strong><strong>en</strong> ba<strong>la</strong>nceando lo máximo posible <strong>la</strong> carga <strong>de</strong> cómputo <strong>en</strong>tre los distintos<br />
procesadores. Int<strong>en</strong>tando conseguir un reparto lo más equitativo posible. Y, al mismo<br />
tiempo, int<strong>en</strong>tar reducir <strong>la</strong>s comunicaciones necesarias <strong>en</strong>tre ellos. Esta característica,<br />
aunque <strong>de</strong>seable, no es siempre posible. Como límite adicional al aum<strong>en</strong>to <strong>de</strong> <strong>la</strong>s<br />
prestaciones, <strong>la</strong> parte paralelizable <strong>de</strong> un algoritmo casi nunca supone el 100% <strong>de</strong><br />
éste, lo que limita el speed-up, o reducción <strong>de</strong>l tiempo <strong>de</strong> ejecución posible.<br />
Adicionalm<strong>en</strong>te, <strong>la</strong>s comunicaciones <strong>en</strong>tre procesadores conllevan siempre una<br />
sobrecarga muchas veces consi<strong>de</strong>rable.<br />
4.1 Segm<strong>en</strong>tación <strong>de</strong> <strong>la</strong> carga basada <strong>en</strong> GOPs<br />
El reparto <strong>de</strong> <strong>la</strong> carga es <strong>la</strong> distribución <strong>de</strong> <strong>la</strong> secu<strong>en</strong>cia <strong>de</strong> frames <strong>en</strong>tre los distintos<br />
procesadores. Para que cada procesador pueda llevar a cabo su tarea <strong>de</strong> <strong>la</strong> forma más<br />
in<strong>de</strong>p<strong>en</strong>di<strong>en</strong>te posible, no <strong>de</strong>bería existir inter<strong>de</strong>p<strong>en</strong>d<strong>en</strong>cia <strong>en</strong>tre <strong>la</strong> codificación <strong>de</strong> una<br />
imag<strong>en</strong> y otra, o bi<strong>en</strong>, <strong>de</strong>bería <strong>de</strong> ser mínima. Evid<strong>en</strong>tem<strong>en</strong>te, esta premisa no se<br />
cumple, ya que el estándar <strong>de</strong> codificación <strong>de</strong> vi<strong>de</strong>o trata <strong>de</strong> aprovechar <strong>la</strong><br />
redundancia temporal exist<strong>en</strong>te <strong>en</strong> <strong>la</strong> secu<strong>en</strong>cia. Con ello consigue mayor efici<strong>en</strong>cia<br />
<strong>en</strong> <strong>la</strong> codificación. Por esta razón, <strong>en</strong> una primera implem<strong>en</strong>tación parale<strong>la</strong>, <strong>de</strong>finieron<br />
como <strong>la</strong> unidad mínima <strong>de</strong> carga a repartir <strong>en</strong>tre los procesadores <strong>la</strong> secu<strong>en</strong>cia <strong>de</strong><br />
imág<strong>en</strong>es que constituy<strong>en</strong> un GOP (Group of pictures) <strong>en</strong> lugar <strong>de</strong> un único frame.<br />
Cada uno <strong>de</strong> los GOPS a codificar se pue<strong>de</strong> tratar <strong>de</strong> forma in<strong>de</strong>p<strong>en</strong>di<strong>en</strong>te, es <strong>de</strong>cir, no
existe ninguna inter<strong>de</strong>p<strong>en</strong>d<strong>en</strong>cia <strong>en</strong>tre un GOP y otro a <strong>la</strong> hora <strong>de</strong> su codificación.<br />
Esto se <strong>de</strong>be principalm<strong>en</strong>te a que cada GOP comi<strong>en</strong>za con un cuadro <strong>de</strong> tipo I. Este<br />
tipo <strong>de</strong> frame se codifica <strong>de</strong> forma in<strong>de</strong>p<strong>en</strong>di<strong>en</strong>te. El resto <strong>de</strong> cuadros se codificará<br />
con información recogida a partir <strong>de</strong>l cuadro I o bi<strong>en</strong> <strong>de</strong> alguno <strong>de</strong>rivado <strong>de</strong> éste. Por<br />
tanto el GOP es una unidad in<strong>de</strong>p<strong>en</strong>di<strong>en</strong>te, <strong>en</strong> cuanto a <strong>la</strong> codificación concierne.<br />
Ya que <strong>en</strong> principio el costo computacional <strong>de</strong> <strong>la</strong> codificación <strong>de</strong> los cuadros que<br />
compon<strong>en</strong> un GOP es variable e impre<strong>de</strong>cible, no se pue<strong>de</strong> hacer ninguna distinción<br />
<strong>en</strong>tre un GOP y otro. Lo que dificulta <strong>la</strong> posibilidad <strong>de</strong> hacer un reparto equitativo <strong>de</strong>l<br />
trabajo. Es por esto que simplificaron <strong>en</strong> este algoritmo, asumi<strong>en</strong>do que <strong>la</strong> tarea ti<strong>en</strong>e<br />
un costo idéntico <strong>de</strong> cómputo para cada GOP. Bajo esta premisa utilizaron el<br />
sigui<strong>en</strong>te esquema <strong>de</strong> reparto: <strong>la</strong> secu<strong>en</strong>cia <strong>de</strong> vi<strong>de</strong>o se divi<strong>de</strong> <strong>en</strong> GOPs, cada uno <strong>de</strong><br />
los cuales cont<strong>en</strong>drá una secu<strong>en</strong>cia <strong>de</strong> cuadros. A priori esta secu<strong>en</strong>cia pue<strong>de</strong> ser<br />
arbitraria con tal <strong>de</strong> que se cump<strong>la</strong> <strong>la</strong> premisa <strong>de</strong> que el primer cuadro a codificar sea<br />
siempre un cuadro <strong>de</strong> tipo I. Por tanto <strong>la</strong> secu<strong>en</strong>cia <strong>de</strong> vi<strong>de</strong>o estará formada por un<br />
número <strong>de</strong>terminado <strong>de</strong> GOPs.<br />
Los procesadores serán etiquetados con un índice que se moverá <strong>en</strong> el conjunto <strong>de</strong><br />
los <strong>en</strong>teros <strong>en</strong>tre el 0 hasta el número <strong>de</strong> procesadores disponibles m<strong>en</strong>os 1. Se divi<strong>de</strong><br />
aritméticam<strong>en</strong>te el número <strong>de</strong> GOPs <strong>en</strong>tre el número <strong>de</strong> procesadores, y se asigna a<br />
cada procesador el número <strong>de</strong> GOPs consecutivos resultante <strong>de</strong> manera secu<strong>en</strong>cial. El<br />
número <strong>de</strong> GOPs restante (n) <strong>de</strong> <strong>la</strong> división <strong>en</strong>tera <strong>en</strong>tre los procesadores se asignarán<br />
a los n primeros procesadores, a razón <strong>de</strong> un GOP por procesador.<br />
Esta división <strong>de</strong> <strong>la</strong> carga es <strong>de</strong> grano grueso, es <strong>de</strong>cir, <strong>la</strong> unidad mínima <strong>de</strong> carga<br />
que correspon<strong>de</strong> a cada procesador es consi<strong>de</strong>rablem<strong>en</strong>te gran<strong>de</strong>. Este tipo <strong>de</strong><br />
paralelización ti<strong>en</strong>e ciertos inconv<strong>en</strong>i<strong>en</strong>tes y también algunas v<strong>en</strong>tajas. La principal<br />
v<strong>en</strong>taja <strong>de</strong> este tipo <strong>de</strong> reparto es que minimiza <strong>la</strong> frecu<strong>en</strong>cia con <strong>la</strong> que hay que<br />
realizar comunicaciones <strong>en</strong>tre los distintos procesos. Y por tanto <strong>la</strong> sobrecarga que<br />
introduc<strong>en</strong> <strong>la</strong>s comunicaciones es m<strong>en</strong>or.<br />
En este caso, cada procesador realiza todo su trabajo asignado sin intercambiar<br />
información. Únicam<strong>en</strong>te <strong>en</strong> una última fase <strong>de</strong> recomposición <strong>de</strong> <strong>la</strong>s difer<strong>en</strong>tes partes<br />
<strong>de</strong>l vi<strong>de</strong>o codificándose intercambiarán información. El gran inconv<strong>en</strong>i<strong>en</strong>te es que, si<br />
los datos <strong>de</strong> <strong>en</strong>trada se g<strong>en</strong>eran <strong>de</strong> forma secu<strong>en</strong>cial <strong>en</strong> tiempo <strong>de</strong> codificación, es<br />
posible que los procesadores t<strong>en</strong>gan que esperar un tiempo consi<strong>de</strong>rable a <strong>la</strong><br />
recepción <strong>de</strong> los mismos. Esta técnica pue<strong>de</strong> servir para acelerar <strong>la</strong> codificación <strong>de</strong><br />
secu<strong>en</strong>cias <strong>de</strong> vi<strong>de</strong>o previam<strong>en</strong>te almac<strong>en</strong>adas. Sin embargo, carece <strong>de</strong> utilidad para<br />
secu<strong>en</strong>cias <strong>de</strong> vi<strong>de</strong>o g<strong>en</strong>eradas <strong>en</strong> tiempo real, como <strong>en</strong> una vi<strong>de</strong>oconfer<strong>en</strong>cia.<br />
5 Resultados obt<strong>en</strong>idos<br />
La versión parale<strong>la</strong> anteriorm<strong>en</strong>te citada ha sido sometida a pruebas <strong>de</strong> evaluación a<br />
fin es establecer un punto <strong>de</strong> refer<strong>en</strong>cia para una futura implem<strong>en</strong>tación mejorada <strong>de</strong><br />
dicho co<strong>de</strong>c.<br />
El banco <strong>de</strong> pruebas consiste <strong>en</strong> un cluster Al<strong>de</strong>baran.upv.es, el SGI Altix 3000 <strong>de</strong><br />
<strong>la</strong> UPV (Universidad Politécnica <strong>de</strong> Val<strong>en</strong>cia). Este es un sistema <strong>de</strong> 48 procesadores<br />
Itanium II con memoria distribuida NUMA, con conexión directa a <strong>la</strong> SAN (red <strong>de</strong><br />
almac<strong>en</strong>ami<strong>en</strong>to) <strong>de</strong>l CPD (c<strong>en</strong>tro <strong>de</strong> proceso <strong>de</strong> datos <strong>de</strong> <strong>la</strong> UPV) y sistema operativo
Linux RedHat. La carga <strong>de</strong> <strong>en</strong>trada consiste <strong>en</strong> 6 secu<strong>en</strong>cias <strong>de</strong> vi<strong>de</strong>o <strong>de</strong> dominio<br />
público <strong>en</strong> formato YUV 4.2.0. Sus características se <strong>en</strong>uncian <strong>en</strong> <strong>la</strong> tab<strong>la</strong> 1.<br />
Tab<strong>la</strong> 1. Atributos <strong>de</strong> <strong>la</strong>s secu<strong>en</strong>cias <strong>de</strong> vi<strong>de</strong>o empleadas para <strong>la</strong> evaluación<br />
Secu<strong>en</strong>cia (Sec) Formato Frames Tamaño Fondo<br />
Fig.<br />
C<strong>en</strong>tral<br />
Objs.<br />
Mov<br />
qcif<br />
300<br />
1. foreman (176x144)<br />
11,404,800 1 1 1<br />
qcif<br />
1007<br />
2. stud<strong>en</strong>ts (176x144)<br />
38,282,112 0 1 2<br />
cif<br />
300<br />
3. foreman (352x288)<br />
45,619,200 1 1 1<br />
cif<br />
1007<br />
4. stud<strong>en</strong>ts (352x288)<br />
153,128,448 0 1 2<br />
5. martin 720x480 240 124,416,000 1 1 1<br />
6. ayersroc 720x480 240 124,416,000 1 2 3<br />
El patrón <strong>de</strong> codificación utilizado para todas <strong>la</strong>s pruebas secu<strong>en</strong>ciales se muestra<br />
<strong>en</strong> <strong>la</strong> tab<strong>la</strong> 2; por otro <strong>la</strong>do, el patrón <strong>de</strong> codificación utilizada para <strong>la</strong>s pruebas<br />
parale<strong>la</strong>s se proporciona <strong>en</strong> <strong>la</strong> tab<strong>la</strong> 3.<br />
Tab<strong>la</strong> 2. Patrón <strong>de</strong> codificación secu<strong>en</strong>cial: P0 – Codifica 31 Frames<br />
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15<br />
I B B P B B P B B P B B P B B I<br />
0 1 2 3 4 5<br />
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30<br />
B B P B B P B B P B B P B B I<br />
6 7 8 9 10<br />
El patrón <strong>de</strong> codificación secu<strong>en</strong>cial es exactam<strong>en</strong>te <strong>la</strong> secu<strong>en</strong>cia <strong>de</strong> compresión<br />
<strong>de</strong>seada; sin embargo, <strong>en</strong> <strong>la</strong> versión implem<strong>en</strong>tada por GAP se ti<strong>en</strong>e esa limitante, ya<br />
que no es posible obt<strong>en</strong>er el mismo patrón que el co<strong>de</strong>c secu<strong>en</strong>cial. El último Frame<br />
<strong>de</strong>l GOP 0 <strong>de</strong>berían ser tipo I (Frame 15) y ser codificado como primer Frame <strong>de</strong>l<br />
GOP 1. El resto <strong>de</strong> los Frames <strong>de</strong>l GOP 1 <strong>de</strong>bería seguir <strong>la</strong> misma secu<strong>en</strong>cia que el<br />
GOP 0 <strong>de</strong> tal forma que se t<strong>en</strong>ga 15 frames por cada GOP. Lo anterior se observa <strong>en</strong><br />
<strong>la</strong>s tab<strong>la</strong>s 3 y 4.<br />
Cabe m<strong>en</strong>cionar que <strong>la</strong> obt<strong>en</strong>ción <strong>de</strong> dicho patrón es importante por dos razones:<br />
para t<strong>en</strong>er resultados equival<strong>en</strong>tes (comparables) se requiere el mismo patrón <strong>de</strong><br />
codificación tanto <strong>en</strong> el co<strong>de</strong>c secu<strong>en</strong>cial como <strong>en</strong> el paralelo y a<strong>de</strong>más este patrón es<br />
el idóneo para obt<strong>en</strong>er <strong>la</strong> compresión <strong>de</strong> vi<strong>de</strong>o mant<strong>en</strong>i<strong>en</strong>do un equilibrio <strong>en</strong>tre tiempo<br />
y calidad.
Tab<strong>la</strong> 3. Patrón <strong>de</strong> codificación paralelo<br />
P0 – Codifica GOP 0 (16 Frames)<br />
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15<br />
I B B P B B P B B P B B P B B P<br />
0 1 2 3 4 5<br />
P1 – Codifica GOP 1 (16 Frames)<br />
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31<br />
I B B P B B P B B P B B P B B P<br />
6 7 8 9 10 11<br />
Tab<strong>la</strong> 4. Patrón <strong>de</strong> codificación paralelo <strong>de</strong>seado<br />
P0 – Codifica GOP 0 (15 Frames)<br />
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14<br />
I B B P B B P B B P B B P B B<br />
0 1 2 3 4<br />
P1 – Codifica GOP 1 (15 Frames)<br />
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29<br />
I B B P B B P B B P B B P B B<br />
6 7 8 9 10<br />
Para evaluar el aprovechami<strong>en</strong>to <strong>de</strong>l algoritmo se ha obt<strong>en</strong>ido el tiempo <strong>de</strong><br />
ejecución secu<strong>en</strong>cial (T s ) y paralelo (T p ). Los tiempos tomados compr<strong>en</strong>d<strong>en</strong>: carga<br />
inicial <strong>de</strong>l proceso, lectura <strong>de</strong> disco, codificación, escritura <strong>de</strong> disco y <strong>la</strong>s<br />
comunicaciones.<br />
Tab<strong>la</strong> 5. Tiempos <strong>de</strong> codificación secu<strong>en</strong>cial y paralelo <strong>en</strong> segundos<br />
Sec. Ts Tp-2P Tp-4P TP-6P Tp-8P Tp-10P Tp-12P Tp-14P<br />
1 306.12 147.45 84.37 63.25 42.27 42.35 42.03 21.08<br />
2 306.94 148.05 83.94 63.01 41.95 41.99 41.80 21.05<br />
3 1258.00 598.60 341.70 257.33 171.59 171.39 172.03 85.78<br />
4 1218.12 591.63 336.17 254.74 168.84 169.43 168.22 85.06<br />
5 4216.10 2060.01 1196.77 895.68 605.17 600.16 595.81 300.15<br />
6 4268.58 2087.13 1196.08 896.81 99.18 599.30 592.46 297.24<br />
La tab<strong>la</strong> 5 muestra los resultados experim<strong>en</strong>tales obt<strong>en</strong>idos bajo <strong>la</strong>s condiciones<br />
anteriorm<strong>en</strong>te <strong>de</strong>scritas. Cabe seña<strong>la</strong>r que se codificaron 226 Frames para el co<strong>de</strong>c<br />
secu<strong>en</strong>cial y 14 Gops para el co<strong>de</strong>c paralelo, don<strong>de</strong> cada GOP conti<strong>en</strong>e 16 Frames,<br />
por lo que se codificaron 224 Frames (No. <strong>de</strong> frames = Fr). La difer<strong>en</strong>cia <strong>de</strong>l número
<strong>de</strong> Frames ti<strong>en</strong>e que ver con <strong>la</strong> limitante <strong>en</strong> el patrón <strong>de</strong> codificación antes citada <strong>de</strong>l<br />
algoritmo paralelo. Dicha versión ti<strong>en</strong>e otra limitante, se tuvieron que establecer <strong>la</strong>s<br />
pruebas con 14 GOPs, <strong>de</strong>bido a que no se hace una codificación cíclica con lo cual el<br />
número GOPs <strong>de</strong>p<strong>en</strong><strong>de</strong> <strong>de</strong>l tamaño <strong>de</strong> <strong>la</strong> secu<strong>en</strong>cia. En cuanto a los tiempos obt<strong>en</strong>idos<br />
y mostrados <strong>en</strong> <strong>la</strong> tab<strong>la</strong> 5 cabe subrayar que conforme se ti<strong>en</strong>e mayor número <strong>de</strong><br />
procesadores es m<strong>en</strong>or el tiempo <strong>de</strong> codificación; sin embargo, esto no siempre se<br />
cumple <strong>en</strong>tre 8 , 10, y 12 procesadores. Esto se <strong>de</strong>be a <strong>la</strong> forma <strong>en</strong> que se realizó <strong>la</strong><br />
distribución <strong>de</strong> <strong>la</strong> carga para esta versión parale<strong>la</strong>.<br />
En <strong>la</strong>s figuras 2 y 3, se muestra <strong>la</strong> distribución <strong>de</strong> GOPs para 8 y 10 procesadores<br />
respectivam<strong>en</strong>te, <strong>la</strong>s cuales ilustran el ba<strong>la</strong>nce <strong>de</strong> <strong>la</strong> carga. Se pue<strong>de</strong> observar que con<br />
10 procesadores se ti<strong>en</strong><strong>en</strong> más tiempos muertos que con 8. Si se hiciera el reparto <strong>de</strong><br />
GOPs para 12 se harían evid<strong>en</strong>tes aun más tiempos ociosos <strong>de</strong> los procesadores.<br />
Debido a este esquema <strong>de</strong> paralelización, se pue<strong>de</strong> <strong>de</strong>ducir que el tiempo <strong>de</strong><br />
codificación no siempre se <strong>de</strong>crem<strong>en</strong>ta a pesar <strong>de</strong> ir increm<strong>en</strong>tando el número <strong>de</strong><br />
procesadores, ya que <strong>la</strong> distribución <strong>de</strong> GOPs esta pre<strong>de</strong>terminada <strong>de</strong>s<strong>de</strong> el inicio, con<br />
lo cual no se aprovechan los procesadores que vayan si<strong>en</strong>do liberados; retrasando así<br />
el tiempo <strong>de</strong> codificación final. Por esa misma razón el tiempo <strong>de</strong> codificación para 14<br />
procesadores <strong>de</strong>crem<strong>en</strong>ta consi<strong>de</strong>rablem<strong>en</strong>te, <strong>de</strong>bido a que se ti<strong>en</strong>e el mismo número<br />
GOPs con lo cual no se ti<strong>en</strong>e ningún tiempo muerto. Cabe seña<strong>la</strong>r que el tiempo <strong>de</strong><br />
codificación que se toma es el <strong>de</strong>l último procesador que termina el trabajo.<br />
GOPS 1 3 5 7 9 11<br />
0 2 4 6 8 10 12 13<br />
P 1 2 3 4 5 6 7 8<br />
Fig. 2: Distribución <strong>de</strong> 14 GOPs <strong>en</strong> 8 procesadores<br />
GOPS 1 3 5 7<br />
0 2 4 6 8 9 10 11 12 13<br />
P 1 2 3 4 5 6 7 8 9 10<br />
Fig. 3: Distribución <strong>de</strong> 14 GOPs <strong>en</strong> 10 procesadores<br />
Tab<strong>la</strong> 6. FrameRate con 14 Gops calcu<strong>la</strong>do con <strong>la</strong> sigui<strong>en</strong>te fórmu<strong>la</strong>: Fr = Nf / Tp<br />
Secu<strong>en</strong>cia 2P 4P 4P 8P 10P 12P 14P<br />
foreman_qcif 1.52 2.66 3.54 5.30 5.29 5.33 10.63<br />
stud<strong>en</strong>ts_qcif 1.51 2.67 3.55 5.34 5.34 5.36 10.64<br />
foreman_cif 0.37 0.66 0.87 1.31 1.31 1.30 2.61<br />
stud<strong>en</strong>ts_cif 0.38 0.67 0.88 1.33 1.32 1.33 2.63<br />
martin_720x480 0.11 0.19 0.25 0.37 0.37 0.38 0.75<br />
ayersroc_720x480 0.11 0.19 0.25 0.37 0.37 0.38 0.75<br />
Como se pue<strong>de</strong> observar <strong>en</strong> <strong>la</strong> tab<strong>la</strong> 6, cada vez que se increm<strong>en</strong>ta el número <strong>de</strong><br />
procesadores el FramaRate increm<strong>en</strong>ta más o m<strong>en</strong>os <strong>en</strong> <strong>la</strong> misma proporción, no así
cuando se ti<strong>en</strong><strong>en</strong> 8, 10 y 12 procesadores. Esto es por lo mismo que se m<strong>en</strong>cionaba<br />
con respecto a los tiempos.<br />
El FrameRate natural o tiempo real <strong>de</strong> una secu<strong>en</strong>cia <strong>de</strong> vi<strong>de</strong>o es <strong>de</strong> 30 fps. Se<br />
pue<strong>de</strong> observar <strong>en</strong> <strong>la</strong> figura 4 que con 14 procesadores se esta muy lejos <strong>de</strong> po<strong>de</strong>r<br />
alcanzar ese número <strong>de</strong> frames codificados por segundo y que conforme se ti<strong>en</strong>e<br />
mayor resolución más lejos se está <strong>de</strong> t<strong>en</strong>er tiempo real. Dicho tiempo para codificar<br />
14 GOPs es <strong>de</strong> 7 segundos, lo cual quiere <strong>de</strong>cir que para comprimir 14 GOPs <strong>de</strong> <strong>la</strong><br />
secu<strong>en</strong>cia foreman <strong>en</strong> su formato cif se necesitan 37.5 procesadores y para<br />
ayersroc_720x480 se requier<strong>en</strong> 130.6 procesadores.<br />
FrameRate con 14 Gops<br />
12.00<br />
ftps<br />
10.00<br />
8.00<br />
6.00<br />
4.00<br />
2.00<br />
foreman_qcif<br />
stud<strong>en</strong>ts_qcif<br />
foreman_cif<br />
stud<strong>en</strong>ts_cif<br />
martin_720x480<br />
ayersroc_720x480<br />
0.00<br />
2P 4P 6P 8P 10P 12P 14P<br />
Núm. <strong>de</strong> Procesadores<br />
Fig. 4: FrameRate con 14 Gops<br />
En <strong>la</strong> tab<strong>la</strong> 7 se muestra el SpeedUp (aceleración) <strong>de</strong> cada una <strong>de</strong> <strong>la</strong>s secu<strong>en</strong>cias<br />
para los números <strong>de</strong> procesadores empleados. Al igual que <strong>en</strong> los tiempos <strong>de</strong><br />
codificación mostrados <strong>en</strong> <strong>la</strong> tab<strong>la</strong> 5 y su FrameRate expuesto <strong>en</strong> <strong>la</strong> tab<strong>la</strong> 6, con los<br />
procesadores 8, 10 y 12, el SpeedUp <strong>en</strong> ocasiones, <strong>en</strong> vez <strong>de</strong> aum<strong>en</strong>tar, disminuye.<br />
Esto se <strong>de</strong>be a <strong>la</strong> misma causa, los tiempos muertos <strong>de</strong> los procesadores es mayor para<br />
12 que para 10 y <strong>de</strong> éste que para 8.<br />
Tab<strong>la</strong> 7. SpeedUp con 14 Gops calcu<strong>la</strong>do con <strong>la</strong> sigui<strong>en</strong>te fórmu<strong>la</strong>: Sp = Ts / Tp<br />
Secu<strong>en</strong>cia Ts 2P 4P 6P 8P 10P 12P 14P<br />
foreman_qcif 306.12 2.08 3.63 4.84 7.24 7.23 7.28 14.52<br />
stud<strong>en</strong>ts_qcif 306.94 2.07 3.66 4.87 7.32 7.31 7.34 14.58<br />
foreman_cif 1258.00 2.10 3.68 4.89 7.33 7.34 7.31 14.66<br />
stud<strong>en</strong>ts_cif 1218.12 2.06 3.62 4.78 7.21 7.19 7.24 14.32<br />
martin_720x480 4216.10 2.05 3.52 4.71 6.97 7.02 7.08 14.05<br />
ayersroc_720x480 4268.58 2.05 3.57 4.76 7.12 7.12 7.20 14.36
En <strong>la</strong> figura 5 se pue<strong>de</strong> observar que el mejor SpeedUp se ti<strong>en</strong>e para 14 procesadores.<br />
Esto es porque al t<strong>en</strong>er el mismo número <strong>de</strong> procesadores que el número <strong>de</strong> Gops a<br />
codificar, no exist<strong>en</strong> tiempos ociosos para ninguno <strong>de</strong> lo procesadores <strong>en</strong> ningún<br />
mom<strong>en</strong>to.<br />
SpeepUp con 14 Gops<br />
SpeedUp<br />
16.00<br />
14.00<br />
12.00<br />
10.00<br />
8.00<br />
6.00<br />
4.00<br />
2.00<br />
0.00<br />
2P 4P 6P 8P 10P 12P 14P<br />
Núm. <strong>de</strong> Procesadores<br />
foreman_qcif<br />
stud<strong>en</strong>ts_qcif<br />
foreman_cif<br />
stud<strong>en</strong>ts_cif<br />
martin_720x480<br />
ayersroc_720x48<br />
0<br />
Fig. 5. SpeedUp con 14 Gops<br />
6 Trabajo futuro<br />
Como ya se había m<strong>en</strong>cionado anteriorm<strong>en</strong>te, <strong>la</strong>s pruebas mostradas <strong>en</strong> este capítulo<br />
establec<strong>en</strong> <strong>la</strong> base <strong>de</strong> una investigación con <strong>la</strong> finalidad <strong>de</strong> realizar una versión<br />
parale<strong>la</strong> que permita mejorar lo hecho. El objetivo es implem<strong>en</strong>tar y evaluar un<br />
algoritmo paralelo con ba<strong>la</strong>nceo <strong>de</strong> carga para <strong>la</strong> compresión <strong>de</strong> secu<strong>en</strong>cias <strong>de</strong> vi<strong>de</strong>o<br />
utilizando el codificador H.264, buscando reducir los tiempos <strong>de</strong> codificación bajo el<br />
patrón idóneo ya antes referido. A<strong>de</strong>más se busca po<strong>de</strong>r establecer una codificación<br />
cíclica a fin <strong>de</strong> que el número <strong>de</strong> frames no sea una limitante para realizar pruebas <strong>de</strong><br />
codificación con mayor número <strong>de</strong> GOPs. También se espera <strong>de</strong>terminar el tipo <strong>de</strong><br />
vi<strong>de</strong>o más a<strong>de</strong>cuado para el co<strong>de</strong>c a implem<strong>en</strong>tar.<br />
El ba<strong>la</strong>nceo <strong>de</strong> <strong>la</strong> carga será por <strong>de</strong>manda, simi<strong>la</strong>r al p<strong>la</strong>nteado <strong>en</strong> el co<strong>de</strong>c A3-<br />
frontera [4]. Su esquema <strong>de</strong> distribución consiste <strong>en</strong> que el proceso 0 (maestro) es el<br />
<strong>en</strong>cargado <strong>de</strong> distribuir los id<strong>en</strong>tificadores <strong>de</strong> Gops a los procesadores conforme van<br />
<strong>de</strong>socupándose. El proceso maestro sabe que se ha <strong>de</strong>socupado un procesador porque<br />
cada uno <strong>de</strong> los procesos codificadores le informa que ha terminado su tarea.
Refer<strong>en</strong>cias<br />
1. Cuesta, S. B., Gonzáles, I. F.: Paralelización <strong>de</strong>l estándar <strong>de</strong> codificación <strong>de</strong> vi<strong>de</strong>o H264.<br />
2. Effelsberg, W., Steinmetz, R.: Vi<strong>de</strong>o Compression Techniques (hei<strong>de</strong>lberg: dpunkt.ver<strong>la</strong>g).<br />
1998<br />
3. Hernán<strong>de</strong>z, S. J.: Análisis Comparativo <strong>de</strong> los Mo<strong>de</strong>los <strong>de</strong> Programación Distribuida,<br />
Utilizando Cluster <strong>de</strong> Estaciones <strong>de</strong> Trabajo. Tesis <strong>de</strong> Maestría, Universidad Mexicana<br />
P<strong>la</strong>ntel Veracruz. Agosto <strong>de</strong>1 2001<br />
4. Rodríguez, L. A.: Diseño e implem<strong>en</strong>tación <strong>de</strong> algoritmos paralelos para <strong>la</strong> compresión <strong>de</strong><br />
secu<strong>en</strong>cias <strong>de</strong> vi<strong>de</strong>o MPEG4. Reporte Técnico. Universidad Politécnica <strong>de</strong> Val<strong>en</strong>cia.<br />
Noviembre <strong>de</strong>l 2002.
Audiómetro contro<strong>la</strong>do por computadora,<br />
implem<strong>en</strong>tación mediante programación visual<br />
con observancia <strong>de</strong> normas internacionales<br />
Ma. Julia Cal<strong>de</strong>rón Sambarino 1 , Sergio Suárez Guerra 1, 2<br />
1<br />
C<strong>en</strong>tro <strong>de</strong> Investigación <strong>en</strong> Computación,<br />
Instituto Politécnico Nacional,<br />
<strong>México</strong>, D. F.<br />
2 ICIMAF, Cuba.<br />
msambarino@sagitario.cic.ipn.mx, ssuarez@cic.ipn.mx<br />
Resum<strong>en</strong>. El exam<strong>en</strong> audiométrico es una evaluación que nos permite conocer<br />
<strong>la</strong> capacidad <strong>de</strong> un individuo para escuchar difer<strong>en</strong>tes sonidos y así <strong>de</strong>terminar<br />
su umbral auditivo. Un audiómetro es el equipo que permite llevar a cabo un<br />
exam<strong>en</strong> audiométrico. Se pres<strong>en</strong>tan los resultados <strong>de</strong>l proyecto que incluye el<br />
<strong>de</strong>sarrollo <strong>de</strong> un audiómetro <strong>de</strong> conducción aérea contro<strong>la</strong>do por computadora<br />
que realiza un exam<strong>en</strong> audiométrico mediante una prueba <strong>de</strong> tonos puros<br />
(Audiometría Tonal Liminar) g<strong>en</strong>erando resultados gráficos (audiogramas)<br />
sobre <strong>la</strong> base <strong>de</strong> normas internacionales para audiómetros. El audiómetro<br />
permite <strong>la</strong> g<strong>en</strong>eración <strong>de</strong> pruebas audiométricas adicionales <strong>de</strong> acuerdo a <strong>la</strong>s<br />
necesida<strong>de</strong>s <strong>de</strong>l especialista para facilitar el diagnóstico, así como también el<br />
almac<strong>en</strong>ami<strong>en</strong>to <strong>de</strong> <strong>la</strong>s audiometrías realizadas junto al historial sust<strong>en</strong>tado <strong>en</strong><br />
<strong>la</strong> Norma Oficial Mexicana <strong>de</strong>l Expedi<strong>en</strong>te clínico y garantizando <strong>la</strong><br />
confid<strong>en</strong>cialidad <strong>de</strong>l mismo <strong>en</strong>tre los especialistas usuarios <strong>de</strong>l sistema. La<br />
implem<strong>en</strong>tación <strong>de</strong>l audiómetro compr<strong>en</strong><strong>de</strong> <strong>la</strong> calibración re<strong>la</strong>tiva <strong>de</strong> los<br />
dispositivos requeridos para <strong>la</strong>s evaluaciones audiométricas.<br />
1 Anteced<strong>en</strong>tes<br />
La audición constituye <strong>la</strong> vía habitual para adquirir el l<strong>en</strong>guaje, el cual nos permite <strong>la</strong><br />
comunicación a distancia y a través <strong>de</strong>l tiempo, a<strong>de</strong>más es el responsable <strong>de</strong>l<br />
<strong>de</strong>sarrollo <strong>de</strong> <strong>la</strong> sociedad y <strong>de</strong> <strong>la</strong> conservación <strong>de</strong> <strong>la</strong> cultura.<br />
La sor<strong>de</strong>ra es un grave impedim<strong>en</strong>to cuyos efectos trasci<strong>en</strong>d<strong>en</strong> <strong>la</strong> posibilidad <strong>de</strong><br />
comunicación a través <strong>de</strong>l hab<strong>la</strong>, repercuti<strong>en</strong>do <strong>en</strong> <strong>la</strong> armonía familiar, el <strong>de</strong>sempeño<br />
académico, el retraso <strong>en</strong> el l<strong>en</strong>guaje y <strong>la</strong>s expectativas <strong>la</strong>borales y profesionales <strong>de</strong> <strong>la</strong>s<br />
personas afectadas.<br />
Des<strong>de</strong> <strong>la</strong> hipoacusia leve hasta <strong>la</strong> sor<strong>de</strong>ra profunda, son <strong>en</strong>tida<strong>de</strong>s tratables, y los<br />
resultados <strong>de</strong>l tratami<strong>en</strong>to <strong>en</strong> término <strong>de</strong> incorporación <strong>de</strong> los niños afectados,<br />
<strong>de</strong>p<strong>en</strong>d<strong>en</strong> <strong>de</strong> lo precoz y fiable que resulte el diagnóstico. Se consi<strong>de</strong>ra una audición<br />
normal cuando los límites <strong>de</strong>l sonido son captados <strong>en</strong>tre los 0 y 20 <strong>de</strong>cibeles.
1.1 Introducción<br />
La Audiometría es un conjunto <strong>de</strong> pruebas para medir <strong>la</strong> audición. D<strong>en</strong>tro <strong>de</strong> este<br />
conjunto <strong>de</strong> pruebas, vamos a referirnos a <strong>la</strong> más frecu<strong>en</strong>te cuya d<strong>en</strong>ominación<br />
médica es Audiometría Tonal Liminar, porque <strong>en</strong> el<strong>la</strong> se emplean tonos puros y se<br />
busca el umbral <strong>de</strong> audición o mínima int<strong>en</strong>sidad <strong>de</strong> sonido capaz <strong>de</strong> ser percibida. La<br />
audiometría se realiza mediante <strong>la</strong> utilización <strong>de</strong> un aparato electrónico d<strong>en</strong>ominado<br />
audiómetro. Dicho aparato se compone <strong>de</strong> un g<strong>en</strong>erador <strong>de</strong> estímulos que son<br />
transmitidos al individuo a través <strong>de</strong> unos auricu<strong>la</strong>res aplicados estrecham<strong>en</strong>te al oído.<br />
Exist<strong>en</strong> varios tipos <strong>de</strong> audiometrías, pero <strong>la</strong> más usada <strong>en</strong> el Sector Salud es <strong>la</strong><br />
audiometría tonal o <strong>de</strong> tonos puros, <strong>la</strong> cual consiste <strong>en</strong> <strong>la</strong> estimu<strong>la</strong>ción auditiva por<br />
medio <strong>de</strong> <strong>la</strong> vía aérea y <strong>de</strong> <strong>la</strong> vía ósea. La transmisión sonora por <strong>la</strong> vía aérea se<br />
realiza a través <strong>de</strong>l aire colocando unos auricu<strong>la</strong>res <strong>en</strong> el pabellón <strong>de</strong> <strong>la</strong> oreja, y <strong>la</strong><br />
estimu<strong>la</strong>ción sonora por <strong>la</strong> vía ósea se realiza colocando un vibrador <strong>en</strong> <strong>la</strong> apófisis<br />
mastoi<strong>de</strong>s. Las frecu<strong>en</strong>cias exploradas por medio <strong>de</strong> esta técnica son <strong>la</strong>s <strong>de</strong> 250, 500,<br />
1000, 2000, 4000 y 8000 Hz y <strong>la</strong> int<strong>en</strong>sidad <strong>de</strong>l estímulo varía <strong>de</strong>s<strong>de</strong> 10 a 110<br />
Dbs[CIFT97]. Las frecu<strong>en</strong>cias medias, es <strong>de</strong>cir, <strong>la</strong>s compr<strong>en</strong>didas <strong>en</strong>tre 500 y 2000<br />
Hz, son <strong>la</strong>s más importantes para <strong>la</strong> audición <strong>de</strong> <strong>la</strong>s pa<strong>la</strong>bras ya que <strong>en</strong> dicho rango se<br />
sitúan <strong>la</strong> mayoría <strong>de</strong> los fonemas que compon<strong>en</strong> <strong>la</strong> voz humana.<br />
Para <strong>la</strong> realización <strong>de</strong> una audiometría tonal pura es necesario seguir <strong>la</strong>s guías<br />
propuestas por los estándares internacionales sobre <strong>la</strong>s frecu<strong>en</strong>cias <strong>de</strong> inicio, así como<br />
<strong>la</strong> int<strong>en</strong>sidad increm<strong>en</strong>tal. El ruido <strong>de</strong>be transmitirse a través <strong>de</strong>l conducto auditivo, a<br />
través <strong>de</strong>l oído y <strong>de</strong>l oído interno, más conocido como caracol, hasta llegar al nervio<br />
auditivo y al cerebro. En el caso <strong>de</strong> <strong>la</strong> estimu<strong>la</strong>ción por vía ósea se prescin<strong>de</strong> tanto <strong>de</strong>l<br />
oído externo como <strong>de</strong>l medio, produciéndose una estimu<strong>la</strong>ción directa <strong>de</strong>l oído<br />
interno a través <strong>de</strong> los huesos <strong>de</strong>l cráneo.<br />
La audiometría se repres<strong>en</strong>ta <strong>en</strong> una gráfica l<strong>la</strong>mada audiograma <strong>la</strong> cual se <strong>de</strong>fine<br />
por un eje <strong>de</strong> ord<strong>en</strong>adas dividido <strong>en</strong> intervalos <strong>de</strong> 10 dBs. y un eje <strong>de</strong> abscisas don<strong>de</strong><br />
se sitúan los difer<strong>en</strong>tes tonos que utilizamos para estimu<strong>la</strong>r, <strong>de</strong>s<strong>de</strong> los más graves (125<br />
y 500 Hz) hasta los más agudos (4000 y 8000 Hz).<br />
La simbología a emplear <strong>en</strong> el audiograma se <strong>de</strong>fine <strong>en</strong> los estándares ISO 389-2 y<br />
<strong>en</strong> el IEC 60645-1. El cero audiométrico (0 dBs.) <strong>de</strong>l audiograma vi<strong>en</strong>e <strong>de</strong>terminado<br />
por una normativa internacional y se correspon<strong>de</strong> con <strong>la</strong> int<strong>en</strong>sidad media mínima <strong>en</strong><br />
cada una <strong>de</strong> <strong>la</strong>s frecu<strong>en</strong>cias a <strong>la</strong> cuál pob<strong>la</strong>ciones <strong>de</strong> personas sin anteced<strong>en</strong>tes <strong>de</strong><br />
daño audiológico comi<strong>en</strong>zan a percibir un estímulo tonal <strong>de</strong>terminado.<br />
2 Propuesta y consi<strong>de</strong>raciones<br />
El sistema consiste <strong>en</strong> un equipo formado por una computadora, con <strong>en</strong>tradas y<br />
salidas estándar: audífonos para <strong>la</strong> emisión <strong>de</strong> sonidos, impresora para <strong>la</strong> graficación<br />
<strong>de</strong> resultados, y un sistema <strong>de</strong> software diseñado para llevar a cabo estas emisiones.<br />
La aplicación <strong>de</strong>sarrol<strong>la</strong>da realiza una Evaluación Audiométrica Tonal Liminar por<br />
conducción aérea. Esta prueba se consi<strong>de</strong>ra <strong>la</strong> evaluación básica necesaria <strong>en</strong> los<br />
estudios audiométricos y se incluye <strong>en</strong> los sistemas <strong>de</strong> diagnóstico audiométrico<br />
comerciales.
Una consi<strong>de</strong>ración indisp<strong>en</strong>sable es <strong>la</strong> integración <strong>de</strong> bases <strong>de</strong> datos para el<br />
almac<strong>en</strong>ami<strong>en</strong>to <strong>de</strong>l perfil <strong>de</strong>l paci<strong>en</strong>te y su expedi<strong>en</strong>te clínico, <strong>de</strong> los resultados<br />
obt<strong>en</strong>idos <strong>en</strong> cada una <strong>de</strong> <strong>la</strong>s pruebas audiométricas que realice, <strong>la</strong> configuración <strong>de</strong><br />
<strong>la</strong>s pruebas audiométricas g<strong>en</strong>eradas así como los expedi<strong>en</strong>tes <strong>la</strong>borales <strong>de</strong> los<br />
usuarios <strong>de</strong>l sistema (especialistas).<br />
La sigui<strong>en</strong>te consi<strong>de</strong>ración se refiere a los costos. Los equipos biomédicos<br />
conv<strong>en</strong>cionales conllevan altos costos no solo <strong>de</strong> adquisición, sino <strong>de</strong> mant<strong>en</strong>imi<strong>en</strong>to,<br />
accesorios y garantías, mismos que se increm<strong>en</strong>tan por ser tecnologías <strong>de</strong><br />
importación, por lo que el Audiómetro <strong>de</strong>sarrol<strong>la</strong>do ti<strong>en</strong>e como premisa ser una<br />
solución <strong>de</strong> bajo costo proporcionando resultados confiables que permitan un<br />
diagnóstico certero.<br />
Registro<br />
Paci<strong>en</strong>te<br />
Gráfica<br />
Resultados<br />
Fig. 1. Esquema g<strong>en</strong>eral <strong>de</strong>l sistema <strong>de</strong>sarrol<strong>la</strong>do<br />
La interfaz intuitiva se consi<strong>de</strong>ra un b<strong>en</strong>eficio adicional <strong>de</strong>l sistema, ya que resulta<br />
innegable el aspecto interdisciplinario que se refleja <strong>en</strong> el uso <strong>de</strong>l producto final por<br />
parte <strong>de</strong> especialistas médicos (audiólogos) que requier<strong>en</strong> s<strong>en</strong>cillez <strong>en</strong> el uso <strong>de</strong> <strong>la</strong>s<br />
herrami<strong>en</strong>tas computacionales.<br />
3 Metodología <strong>de</strong> <strong>de</strong>sarrollo<br />
Para el análisis y <strong>de</strong>sarrollo <strong>de</strong>l Sistema <strong>de</strong> Evaluación Audiométrico se consi<strong>de</strong>ró el<br />
marco teórico integrado por cinco aspectos fundam<strong>en</strong>tales:
3.1 Ing<strong>en</strong>iería <strong>de</strong> software: Paradigma ori<strong>en</strong>tado a objetos<br />
Como parte <strong>de</strong>l <strong>de</strong>sarrollo interno <strong>de</strong>l sistema y materia fundam<strong>en</strong>tal <strong>de</strong> <strong>la</strong> ing<strong>en</strong>iería<br />
<strong>de</strong> software, <strong>de</strong>be existir una metodología <strong>de</strong> <strong>de</strong>sarrollo, <strong>en</strong> este caso, empleamos el<br />
Paradigma Ori<strong>en</strong>tado a Objetos don<strong>de</strong> el ciclo <strong>de</strong> vida o <strong>de</strong>sarrollo <strong>de</strong>l proceso<br />
ori<strong>en</strong>tado a objetos se mueve a través <strong>de</strong> una espiral evolutiva que comi<strong>en</strong>za con <strong>la</strong><br />
comunicación <strong>de</strong>l usuario, <strong>la</strong> <strong>de</strong>finición <strong>de</strong>l dominio <strong>de</strong>l problema y <strong>la</strong> id<strong>en</strong>tificación<br />
<strong>de</strong> <strong>la</strong>s c<strong>la</strong>ses básicas <strong>de</strong>l problema [BOHB85].<br />
3.2 Persist<strong>en</strong>cia <strong>de</strong> <strong>la</strong> información: Uso <strong>de</strong> bases <strong>de</strong> datos<br />
Las aplicaciones <strong>de</strong> bases <strong>de</strong> datos permit<strong>en</strong> a los usuarios interactuar con<br />
información almac<strong>en</strong>ada. Las bases <strong>de</strong> datos prove<strong>en</strong> <strong>la</strong> estructura para esta<br />
información y permite compartir<strong>la</strong>s <strong>en</strong>tre varias aplicaciones.<br />
A partir <strong>de</strong> esto se trabajó <strong>en</strong> un diseño <strong>de</strong> bases <strong>de</strong> datos que involucra a tres<br />
actores principales: usuarios (doctores que llevan a cabo una evaluación<br />
audiométrica), paci<strong>en</strong>tes (sujetos con expedi<strong>en</strong>te clínico y posibles candidatos para<br />
evaluaciones auditivas) y <strong>la</strong> evaluación audiométrica <strong>en</strong> sí misma, ya que una <strong>de</strong> <strong>la</strong>s<br />
principales v<strong>en</strong>tajas <strong>de</strong>l sistema propuesto, es que cada uno <strong>de</strong> los usuarios pue<strong>de</strong><br />
configurar pruebas audiométricas particu<strong>la</strong>res a cada paci<strong>en</strong>te o caso <strong>de</strong> estudio, y no<br />
conformarse con <strong>la</strong> prueba estándar indicada por <strong>la</strong>s Normas Internacionales e<br />
incluida como prueba base o única, <strong>en</strong> los equipos comerciales <strong>de</strong> evaluación<br />
audiométrica.<br />
3.3 Pautas <strong>de</strong> <strong>de</strong>sarrollo: Observancia <strong>de</strong> <strong>la</strong>s normas<br />
Los estándares son docum<strong>en</strong>tos o acuerdos que conti<strong>en</strong><strong>en</strong> especificaciones técnicas o<br />
criterios precisos para usarse como reg<strong>la</strong>s, pautas o <strong>de</strong>finiciones para asegurar que los<br />
materiales, productos, procesos y servicios son los a<strong>de</strong>cuados a nuestros propósitos<br />
[ISO02]. La Organización Internacional para <strong>la</strong> Estandarización ISO es un organismo<br />
internacional con aceptación <strong>en</strong> 140 países <strong>en</strong>tre ellos <strong>México</strong>, que ti<strong>en</strong>e como<br />
propósito promover el <strong>de</strong>sarrollo <strong>de</strong> estándares <strong>en</strong> el ámbito ci<strong>en</strong>tífico, tecnológico y<br />
económico.<br />
Los estándares nos brindan una garantía <strong>de</strong> funcionalidad <strong>en</strong> los productos o<br />
servicios sobre los cuales se apliqu<strong>en</strong>. Los <strong>de</strong>sarrollos médicos y tecnológicos que se<br />
guí<strong>en</strong> por los estándares indicados por <strong>la</strong> ISO podrán participar <strong>en</strong> un ámbito<br />
internacional y permit<strong>en</strong> <strong>la</strong> interacción con <strong>de</strong>sarrollos previos exist<strong>en</strong>tes. Nuestro<br />
trabajo se ajusta a estándares internacionales, tanto <strong>de</strong> <strong>la</strong> ISO como <strong>de</strong> <strong>la</strong> IEC y <strong>la</strong><br />
ANSI, así como <strong>en</strong> Normas Oficiales Mexicanas, com<strong>en</strong>tadas <strong>en</strong> <strong>la</strong> sigui<strong>en</strong>te tab<strong>la</strong>:<br />
Tab<strong>la</strong> 4. Descripción <strong>de</strong> estándares consi<strong>de</strong>rados <strong>en</strong> <strong>la</strong> investigación<br />
Organismo Norma/ Descripción<br />
Estándar<br />
ISO 389-1 Refer<strong>en</strong>cia cero para calibración <strong>de</strong> equipo audiométrico:<br />
Niveles <strong>de</strong> refer<strong>en</strong>cia equival<strong>en</strong>tes <strong>de</strong> presión acústica
para tonos puros para audífonos supra-aurales<br />
ISO 389-2 Refer<strong>en</strong>cia cero para calibración <strong>de</strong> equipo audiométrico:<br />
Niveles <strong>de</strong> refer<strong>en</strong>cia equival<strong>en</strong>tes <strong>de</strong> presión acústica para<br />
tonos puros para audífonos insertados<br />
ISO 389-3 Refer<strong>en</strong>cia cero para calibración <strong>de</strong> equipo audiométrico:<br />
Niveles <strong>de</strong> refer<strong>en</strong>cia equival<strong>en</strong>tes <strong>de</strong> nivel <strong>de</strong> fuerza para<br />
tonos puros y para vibradores óseos.<br />
ISO 389-4 Refer<strong>en</strong>cia cero para calibración <strong>de</strong> equipo audiométrico:<br />
Niveles <strong>de</strong> refer<strong>en</strong>cia para ruido <strong>en</strong>mascarado <strong>en</strong> banda<br />
ancha.<br />
IEC 60645-1 Equipo audiológico: Audiómetros <strong>de</strong> tonos puros<br />
IEC 60645-4 Audiómetros: Equipos para <strong>la</strong> audiometría ext<strong>en</strong>dida al<br />
dominio <strong>de</strong> <strong>la</strong> alta frecu<strong>en</strong>cia<br />
ANSI S3.6-1996 Especificaciones para audiómetros<br />
DGN NOM-168-<br />
SSA1-1998<br />
Del expedi<strong>en</strong>te clínico<br />
3.4 Paradigma <strong>de</strong> <strong>de</strong>tección simple<br />
La situación <strong>en</strong> los paradigmas <strong>de</strong> <strong>de</strong>tección es simple: una señal es pres<strong>en</strong>tada al<br />
sujeto y éste <strong>de</strong>be <strong>de</strong>cir si <strong>la</strong> <strong>de</strong>tecta o no. Este es el esquema básico que sigu<strong>en</strong> los<br />
distintos procedimi<strong>en</strong>tos audiométricos para <strong>la</strong> <strong>de</strong>terminación <strong>de</strong>l umbral <strong>de</strong> audición<br />
<strong>de</strong>l sujeto.<br />
Des<strong>de</strong> una perspectiva metodológica es c<strong>la</strong>ro que <strong>la</strong>s respuestas dadas por el sujeto<br />
no sólo <strong>de</strong>p<strong>en</strong>d<strong>en</strong> <strong>de</strong> su s<strong>en</strong>sibilidad, sino también <strong>de</strong> un conjunto amplio <strong>de</strong> variables<br />
no s<strong>en</strong>soriales tales como <strong>la</strong> motivación, los intereses o lo que los sujetos esperan<br />
ganar o per<strong>de</strong>r <strong>en</strong> función <strong>de</strong> su respuesta.<br />
Respuesta<br />
Estímulo<br />
Sí<br />
No<br />
Sí<br />
Acierto<br />
Falsa A<strong>la</strong>rma<br />
No<br />
Omisión<br />
Rechazo<br />
correcto<br />
Fig. 2. Resultados posibles tras realizar un experim<strong>en</strong>to <strong>de</strong> <strong>de</strong>tección <strong>de</strong> señales sigui<strong>en</strong>do el<br />
procedimi<strong>en</strong>to <strong>de</strong> <strong>de</strong>tección simple: si / no<br />
En el procedimi<strong>en</strong>to sí/no el sujeto se <strong>en</strong>fr<strong>en</strong>ta a dos situaciones posibles: <strong>la</strong><br />
captación (escucha) <strong>de</strong> <strong>la</strong> señal o <strong>la</strong> no-pres<strong>en</strong>tación <strong>de</strong> <strong>la</strong> señal (sil<strong>en</strong>cio). Durante el<br />
experim<strong>en</strong>to el sujeto ha <strong>de</strong> <strong>de</strong>cidir, <strong>en</strong> cada <strong>en</strong>sayo, cuál <strong>de</strong> <strong>la</strong>s dos situaciones le fue<br />
pres<strong>en</strong>tada. Sin embargo, <strong>la</strong> int<strong>en</strong>sidad <strong>de</strong> <strong>la</strong> señal es un factor modificable, por lo<br />
tanto, <strong>en</strong> caso <strong>de</strong> una respuesta no-pres<strong>en</strong>tación, se <strong>de</strong>be increm<strong>en</strong>tar <strong>la</strong> int<strong>en</strong>sidad <strong>de</strong><br />
<strong>la</strong> señal hasta lograr un resultado <strong>de</strong> captación <strong>de</strong> <strong>la</strong> señal.
En ambos casos, se <strong>de</strong>be registrar <strong>la</strong> int<strong>en</strong>sidad con <strong>la</strong> cual <strong>la</strong> señal fue captada o<br />
no. Por lo tanto, el procedimi<strong>en</strong>to sí/no g<strong>en</strong>era cuatro c<strong>la</strong>ses <strong>de</strong> respuestas difer<strong>en</strong>tes<br />
que se recog<strong>en</strong> <strong>en</strong> <strong>la</strong> sigui<strong>en</strong>te figura.<br />
3.5 Calibración re<strong>la</strong>tiva: Mant<strong>en</strong>i<strong>en</strong>do <strong>la</strong> solución s<strong>en</strong>cil<strong>la</strong><br />
Las calibraciones requier<strong>en</strong> <strong>de</strong> dispositivos especializados para ello: oidos artificiales<br />
con micrófonos calibrados, ambos con un alto costo, por lo que para <strong>la</strong> puesta a punto<br />
<strong>de</strong> los auricu<strong>la</strong>res se optó por una calibración re<strong>la</strong>tiva, efici<strong>en</strong>te pero con un costo<br />
consi<strong>de</strong>rablem<strong>en</strong>te m<strong>en</strong>or.<br />
La calibración re<strong>la</strong>tiva consiste <strong>en</strong> calibrar los audífonos a partir <strong>de</strong> <strong>la</strong> mínima<br />
audición captada por el usuario para cada una <strong>de</strong> <strong>la</strong>s frecu<strong>en</strong>cias. Se selecciona un<br />
usuario <strong>de</strong> audición normal y se le pres<strong>en</strong>ta cada una <strong>de</strong> <strong>la</strong>s frecu<strong>en</strong>cias, primero <strong>en</strong> el<br />
oído izquierdo, <strong>de</strong>spués el oído <strong>de</strong>recho; el usuario ajusta el volum<strong>en</strong> a su mínima<br />
int<strong>en</strong>sidad audible y los resultados son almac<strong>en</strong>ados <strong>en</strong> un archivo <strong>de</strong> texto,<br />
re<strong>la</strong>cionados <strong>en</strong> una base <strong>de</strong> datos.<br />
Esta calibración re<strong>la</strong>tiva permite que el sistema funcione con distintos dispositivos<br />
emisores, es <strong>de</strong>cir, los auricu<strong>la</strong>res pued<strong>en</strong> ser sustituidos y únicam<strong>en</strong>te requerirá<br />
repetir el proceso <strong>de</strong> calibración, siempre y cuando <strong>la</strong> persona que lo lleve a cabo<br />
cu<strong>en</strong>te con una tab<strong>la</strong> <strong>de</strong> calibración previa almac<strong>en</strong>ada.<br />
Si el sistema es insta<strong>la</strong>do <strong>en</strong> otro equipo <strong>de</strong> cómputo, aún usando los mismos<br />
auricu<strong>la</strong>res, será necesario almac<strong>en</strong>ar una nueva calibración, ya que <strong>la</strong> tarjeta <strong>de</strong><br />
sonido <strong>en</strong>cargada <strong>de</strong> <strong>la</strong> emisión <strong>de</strong> <strong>la</strong> señal varía <strong>de</strong> una computadora a otra, aún<br />
cuando <strong>la</strong>s características, como procesador y marca sean simi<strong>la</strong>res.<br />
Fig. 3. Pantal<strong>la</strong> <strong>de</strong> validación <strong>de</strong> usuario y acceso al sistema<br />
Cuando se realiza una evaluación audiométrica, se re<strong>la</strong>ciona <strong>en</strong> <strong>la</strong> base <strong>de</strong> datos<br />
con <strong>la</strong> calibración pert<strong>en</strong>eci<strong>en</strong>te a los dispositivos que se emplean para dicha<br />
evaluación, lo cual permite a futuro conocer y re<strong>la</strong>cionar el nivel auditivo con <strong>la</strong><br />
calibración almac<strong>en</strong>ada, aún cuando los dispositivos hayan cambiado.
4 Sistema <strong>de</strong> evaluación audiométrica: Nuestra propuesta<br />
La primera pantal<strong>la</strong> correspon<strong>de</strong> a <strong>la</strong> validación que <strong>de</strong>b<strong>en</strong> realizar los usuarios <strong>de</strong>l<br />
sistema para su reconocimi<strong>en</strong>to y acceso. Esto garantiza que los expedi<strong>en</strong>tes <strong>de</strong> los<br />
paci<strong>en</strong>tes sólo serán conocidos y manipu<strong>la</strong>dos por el especialista que los g<strong>en</strong>eró.<br />
Una vez que se ha validado al usuario, se pres<strong>en</strong>ta <strong>la</strong> pantal<strong>la</strong> principal don<strong>de</strong><br />
po<strong>de</strong>mos dar <strong>de</strong> alta nuevos usuarios y paci<strong>en</strong>tes, así como configurar evaluaciones<br />
audiométricas, realizar calibraciones, o llevar a cabo una evaluación audiométrica con<br />
un paci<strong>en</strong>te ya registrado.<br />
El sigui<strong>en</strong>te paso es el registro <strong>de</strong>l paci<strong>en</strong>te, si el sujeto ya se <strong>en</strong>cu<strong>en</strong>tra dado <strong>de</strong><br />
alta, es posible acce<strong>de</strong>r directam<strong>en</strong>te a su expedi<strong>en</strong>te para revisar su historial <strong>de</strong><br />
evaluaciones y modificar datos re<strong>la</strong>tivos al diagnóstico o patología, o bi<strong>en</strong> proce<strong>de</strong>r a<br />
una evaluación audiométrica. Un sujeto o paci<strong>en</strong>te pue<strong>de</strong> t<strong>en</strong>er tantas evaluaciones<br />
como el usuario consi<strong>de</strong>re necesario. Por ello el módulo <strong>de</strong> configuración <strong>de</strong><br />
evaluaciones resulta no sólo necesario, sino una característica particu<strong>la</strong>r <strong>de</strong> <strong>la</strong><br />
aplicación propuesta. En el módulo <strong>de</strong> configuración <strong>de</strong> <strong>la</strong> evaluación, el usuario<br />
pue<strong>de</strong> crear nuevas evaluaciones audiométricas <strong>de</strong>cidi<strong>en</strong>do <strong>en</strong>tre <strong>la</strong>s 12 frecu<strong>en</strong>cias<br />
manipu<strong>la</strong>das por el sistema y ajustándolo al perfil <strong>de</strong> un sujeto <strong>en</strong> particu<strong>la</strong>r.<br />
Fig. 4. G<strong>en</strong>eración <strong>de</strong> una evaluación audiométrica estándar<br />
Los resultados pued<strong>en</strong> observarse <strong>en</strong> el audiograma, que pres<strong>en</strong>ta a<strong>de</strong>más <strong>de</strong> <strong>la</strong>s<br />
gráficas estándar, <strong>la</strong> opción <strong>de</strong> graficar <strong>la</strong> calibración re<strong>la</strong>tiva asociada y sus rangos <strong>de</strong><br />
aceptación normal.<br />
Para el usuario <strong>de</strong>l sistema, es posible dar <strong>de</strong> alta a paci<strong>en</strong>tes o bi<strong>en</strong>, a nuevos<br />
usuarios, y atribuirle a cada uno <strong>de</strong> ellos, un estado: Activo, Susp<strong>en</strong>dido, Baja. Esto<br />
surge por <strong>la</strong>s características observadas <strong>en</strong> <strong>la</strong>s clínicas y c<strong>en</strong>tros <strong>de</strong> salud, don<strong>de</strong> los<br />
doctores pued<strong>en</strong> comisionarse a otros c<strong>en</strong>tros o concluir su período <strong>de</strong> servicio,<br />
mi<strong>en</strong>tras que los usuarios permanec<strong>en</strong>. De aquí surge otra necesidad, <strong>la</strong> transfer<strong>en</strong>cia<br />
<strong>de</strong> paci<strong>en</strong>tes <strong>de</strong> un doctor a otro para continuar el seguimi<strong>en</strong>to o distribuir <strong>la</strong> carga <strong>de</strong>
trabajo. La transfer<strong>en</strong>cia <strong>de</strong> paci<strong>en</strong>tes se ofrece como parte <strong>de</strong> <strong>la</strong>s herrami<strong>en</strong>tas útiles<br />
al especialista.<br />
Fig. 5. Audiograma estándar con líneas guía <strong>de</strong> calibración y rango <strong>de</strong> audición normal<br />
Fig. 6. Pantal<strong>la</strong> <strong>de</strong> transfer<strong>en</strong>cia <strong>de</strong> paci<strong>en</strong>tes <strong>en</strong>tre usuarios <strong>de</strong>l sistema<br />
5 Conclusiones<br />
El trabajo realizado, así como los simi<strong>la</strong>res que se han <strong>de</strong>sarrol<strong>la</strong>do <strong>en</strong> <strong>México</strong>,<br />
manifiestan <strong>la</strong> creci<strong>en</strong>te necesidad <strong>de</strong> dotar <strong>de</strong> nuevas posibilida<strong>de</strong>s el mercado actual<br />
<strong>de</strong> equipos biomédicos, particu<strong>la</strong>rm<strong>en</strong>te Audiométricos <strong>en</strong> su mayoría con tecnología<br />
importada, <strong>de</strong> soluciones confiables y <strong>de</strong> bajo costo.
El tema <strong>de</strong> diagnóstico audiométrico es amplio y este trabajo alcanza a satisfacer<br />
únicam<strong>en</strong>te uno <strong>de</strong> sus requisitos, tal vez el básico, <strong>la</strong> audiometría tonal liminar por<br />
conducción aérea. Se muestra un <strong>la</strong>rgo camino a futuro respecto a <strong>la</strong>s evaluaciones<br />
audiométricas basadas <strong>en</strong> computadora: pruebas objetivas, timpanometría,<br />
audiometría por conducción ósea, <strong>en</strong>tre otros.<br />
El análisis y <strong>de</strong>sarrollo <strong>de</strong> dichas pruebas basándonos <strong>en</strong> normas aceptadas<br />
internacionalm<strong>en</strong>te brindaría al país opciones <strong>de</strong> mejorar <strong>la</strong> calidad <strong>de</strong> vida <strong>de</strong> los<br />
sectores marginados y lo colocaría como <strong>de</strong>sarrol<strong>la</strong>dor <strong>de</strong> tecnología biomédica,<br />
trabajo asignado comúnm<strong>en</strong>te a los países más <strong>de</strong>sarrol<strong>la</strong>dos.<br />
Refer<strong>en</strong>cias<br />
1. [BOHB85]. Bohem, B. The Basic Principles of Software Engineering, Publishers Inc. 1985.<br />
2. [CIFT97]. Cifu<strong>en</strong>tes T. En Med Mar: La pérdida auditiva. Su exploración a través <strong>de</strong> <strong>la</strong>s<br />
pruebas funcionales liminares. Medicina Marítima. 1997<br />
3. [IEC60645-1]. IEC. Electroacoustics- Audiological equipm<strong>en</strong>t Part 1. IEC 2001<br />
4. [IEC60645-4].IEC. Electroacoustics- Audiological equipm<strong>en</strong>t Part 4. IEC 1998<br />
5. [IEC02]. IEC. Mission and Objectives. http://www.iec.ch. 2002<br />
6. [ISO389-1]. ISO. Acoustics- Refer<strong>en</strong>ce zero for the calibration of audiometric equipm<strong>en</strong>t.<br />
Part 1 ISO 1998<br />
7. [ISO389-3]. ISO. Acoustics- Refer<strong>en</strong>ce zero for the calibration of autiometric equipm<strong>en</strong>t<br />
Part 3. ISO 1994<br />
8. [ISO389-4]. ISO. Acoustics- Refer<strong>en</strong>ce zero for the calibration of autiometric equipm<strong>en</strong>t<br />
Part 4. ISO 199<br />
9. [ISO02]. ISO. ¿What are standars? Http://www.iso.ch/iso. 2002<br />
10. [OTORE99]. Otorrino, El. Audiometría. http://www.elotorrino.com. 1999
Análisis <strong>de</strong> <strong>de</strong>sempeño <strong>de</strong> un filtro<br />
para el mejorami<strong>en</strong>to <strong>de</strong> imág<strong>en</strong>es<br />
<strong>de</strong> huel<strong>la</strong>s dacti<strong>la</strong>res<br />
Victor Hugo García Ortega, Osvaldo Espinosa Sosa<br />
C<strong>en</strong>tro <strong>de</strong> Investigación <strong>en</strong> Computación, IPN,<br />
Av. Juan <strong>de</strong> Dios Batíz, esq. M. Otón <strong>de</strong> M<strong>en</strong>dizábal, 07738<br />
<strong>México</strong>, D.F<br />
v.garciaortega@lycos.com<br />
Resum<strong>en</strong>. Este trabajo pres<strong>en</strong>ta los resultados <strong>de</strong> un algoritmo basado <strong>en</strong> <strong>la</strong><br />
Transformada <strong>de</strong> Fourier para el filtrado y mejorami<strong>en</strong>to <strong>de</strong> imág<strong>en</strong>es <strong>de</strong><br />
huel<strong>la</strong>s dacti<strong>la</strong>res, dicho algoritmo es parte <strong>de</strong> un sistema AFAS (Automatic<br />
Fingerprint Auth<strong>en</strong>tification System), el cual esta basado <strong>en</strong> <strong>la</strong> <strong>de</strong>tección <strong>de</strong><br />
minucias <strong>en</strong> huel<strong>la</strong>s dacti<strong>la</strong>res para el control <strong>de</strong> acceso a recintos. Este<br />
algoritmo fue probado <strong>en</strong> imág<strong>en</strong>es <strong>de</strong> bu<strong>en</strong>a y ma<strong>la</strong> calidad obt<strong>en</strong>i<strong>en</strong>do<br />
resultados muy satisfactorios. El algoritmo esta sust<strong>en</strong>tado <strong>en</strong> los trabajos<br />
conocidos, sin embargo, pres<strong>en</strong>ta variantes con respecto a éste, a<strong>de</strong>más, fue<br />
probado <strong>en</strong> una computadora personal P<strong>en</strong>tium III y un Procesador Digital <strong>de</strong><br />
Señales (DSP) a fin <strong>de</strong> po<strong>de</strong>r medir y comparar el tiempo <strong>de</strong> ejecución <strong>de</strong>l<br />
algoritmo <strong>en</strong> este procesador <strong>de</strong> arquitectura específica para <strong>la</strong> ejecución <strong>de</strong><br />
algoritmos como el que aquí se p<strong>la</strong>ntea<br />
1 Introducción<br />
Básicam<strong>en</strong>te los sistemas biométricos [12] basados <strong>en</strong> huel<strong>la</strong>s dacti<strong>la</strong>res son <strong>de</strong> dos<br />
tipos [8]:<br />
• Automatic Fingerprint Auth<strong>en</strong>tification System (AFAS).<br />
• Automatic Fingerprint Id<strong>en</strong>tification System (AFIS).<br />
En un AFAS <strong>la</strong> <strong>en</strong>trada es <strong>la</strong> id<strong>en</strong>tidad <strong>de</strong> <strong>la</strong> persona y <strong>la</strong> imag<strong>en</strong> <strong>de</strong> <strong>la</strong> huel<strong>la</strong><br />
dacti<strong>la</strong>r <strong>de</strong> esa persona; y <strong>la</strong> salida es una respuesta <strong>de</strong> SI ó NO, indicando si <strong>la</strong><br />
imag<strong>en</strong> <strong>de</strong> <strong>en</strong>trada pert<strong>en</strong>ece a <strong>la</strong> persona cuya id<strong>en</strong>tidad es proporcionada.<br />
En un AFIS <strong>la</strong> <strong>en</strong>trada es solo <strong>la</strong> imag<strong>en</strong> <strong>de</strong> <strong>la</strong> huel<strong>la</strong> dacti<strong>la</strong>r y <strong>la</strong> salida es una lista<br />
<strong>de</strong> id<strong>en</strong>tida<strong>de</strong>s <strong>de</strong> personas que pued<strong>en</strong> t<strong>en</strong>er <strong>la</strong> huel<strong>la</strong> dada, a<strong>de</strong>más <strong>de</strong> una<br />
puntuación <strong>de</strong> cada id<strong>en</strong>tidad indicando el grado <strong>de</strong> similitud <strong>en</strong>tre ésta y <strong>la</strong> huel<strong>la</strong><br />
dada.<br />
Ambos sistemas utilizan los <strong>de</strong>talles formados <strong>en</strong> <strong>la</strong>s huel<strong>la</strong>s dacti<strong>la</strong>res. Estos<br />
<strong>de</strong>talles l<strong>la</strong>mados “ridges” son <strong>de</strong>finidos como un segm<strong>en</strong>to <strong>de</strong> curva simple. La<br />
combinación <strong>de</strong> varios ridges forman un patrón <strong>de</strong> huel<strong>la</strong> dacti<strong>la</strong>r. Las pequeñas<br />
características formadas por el cruce y terminación <strong>de</strong> ridges son l<strong>la</strong>madas minucias.
La finalidad <strong>de</strong>l filtro propuesto es el po<strong>de</strong>r eliminar todo el ruido posible <strong>de</strong> <strong>la</strong><br />
imag<strong>en</strong> a fin <strong>de</strong> po<strong>de</strong>r extraer <strong>la</strong>s minucias <strong>de</strong> <strong>la</strong> imag<strong>en</strong> [5,6, 2].<br />
Cabe m<strong>en</strong>cionar que para <strong>la</strong> adquisición <strong>de</strong> <strong>la</strong> imag<strong>en</strong> se uso el 5 th S<strong>en</strong>se Parallel<br />
Evaluation Kit, el cuál es el Kit <strong>de</strong> <strong>de</strong>sarrollo <strong>de</strong>l s<strong>en</strong>sor <strong>de</strong> huel<strong>la</strong> dacti<strong>la</strong>r FPS110.<br />
Dicho s<strong>en</strong>sor es fabricado por <strong>la</strong> compañía Veridicom. El s<strong>en</strong>sor es <strong>de</strong>l tipo<br />
capacitivo, el cuál cu<strong>en</strong>ta con una resolución <strong>de</strong> 500 dpi y con un tamaño <strong>de</strong> arreglo<br />
<strong>de</strong> píxeles <strong>de</strong> 300x300 [4].<br />
Exist<strong>en</strong> muchas técnicas específicas para realizar un mejorami<strong>en</strong>to <strong>de</strong> huel<strong>la</strong>s<br />
dacti<strong>la</strong>res. Las técnicas <strong>de</strong>scritas <strong>en</strong> [13] y [11] son <strong>de</strong> <strong>la</strong>s más efectivas, pero estas<br />
técnicas están diseñadas para usarse <strong>en</strong> los sistemas <strong>de</strong>l tipo AFIS (como <strong>en</strong> sistemas<br />
policíacos <strong>de</strong>l FBI); y por lo tanto requier<strong>en</strong> <strong>de</strong>masiado tiempo <strong>de</strong> procesami<strong>en</strong>to <strong>en</strong><br />
comparación con sistemas mas pequeños como son los sistemas <strong>de</strong>l tipo AFAS.<br />
El principio básico <strong>de</strong> operación <strong>en</strong> estos métodos es dividir a <strong>la</strong> imag<strong>en</strong> <strong>en</strong><br />
bloques, creando un filtro específico para cada bloque basado <strong>en</strong> <strong>la</strong> dirección<br />
promedio <strong>de</strong>l bloque (imag<strong>en</strong> direccional) [5, 6, 9] y <strong>en</strong>tonces filtrar cada bloque. En<br />
[13] este proceso se hace <strong>en</strong> el dominio <strong>de</strong>l tiempo y <strong>en</strong> [11] se hace <strong>en</strong> el dominio <strong>de</strong><br />
<strong>la</strong> frecu<strong>en</strong>cia.<br />
Por lo tanto, se requiere un sistema el cual cree un filtro adaptado a <strong>la</strong> dirección<br />
exacta <strong>de</strong>l bloque. La información direccional <strong>de</strong> un bloque específico <strong>de</strong> <strong>la</strong> imag<strong>en</strong><br />
esta cont<strong>en</strong>ido <strong>en</strong> <strong>la</strong> magnitud <strong>de</strong> <strong>la</strong> Tranformada <strong>de</strong> Fourier <strong>de</strong>l bloque, por lo que sí<br />
se consi<strong>de</strong>ra un bloque el cual cont<strong>en</strong>ga dos o tres ridges aproximadam<strong>en</strong>te paralelos<br />
y se toma su Transformada <strong>de</strong> Fourier, <strong>en</strong>tonces se supone que <strong>la</strong>s frecu<strong>en</strong>cias<br />
dominantes <strong>de</strong> ese bloque correspond<strong>en</strong> a los ridges <strong>en</strong> el bloque.<br />
2 Algoritmo<br />
Es posible mejorar un bloque específico por sus frecu<strong>en</strong>cias dominantes<br />
multiplicando <strong>la</strong> Transformada <strong>de</strong> Fourier <strong>de</strong>l bloque por su magnitud un cierto<br />
número <strong>de</strong> veces, <strong>en</strong>tonces cuando se calcu<strong>la</strong> <strong>la</strong> Transformada Inversa <strong>de</strong> Fourier se<br />
observa que el bloque ha sido mejorado.<br />
Si multiplicamos por el cuadrado o el cubo <strong>de</strong> <strong>la</strong> magnitud <strong>de</strong> <strong>la</strong> transformada <strong>de</strong><br />
Fourier se obt<strong>en</strong>drían mejores resultados, sin embargo <strong>la</strong>s regiones don<strong>de</strong> se localizan<br />
<strong>la</strong>s minucias suel<strong>en</strong> ser alteradas, por lo que <strong>en</strong> vez <strong>de</strong> multiplicar por factores <strong>en</strong>teros<br />
a <strong>la</strong> magnitud <strong>de</strong> <strong>la</strong> transformada <strong>de</strong> Fourier se <strong>de</strong>be utilizar una fracción[7].<br />
Para el cálculo <strong>de</strong> <strong>la</strong> transformada <strong>de</strong> Fourier se implem<strong>en</strong>tó el algoritmo <strong>de</strong> <strong>la</strong><br />
transformada rápida <strong>de</strong> Fourier (FFT– Fast Fourier Transform) <strong>de</strong>scomposición <strong>en</strong><br />
tiempo (Decimation in Time) <strong>en</strong> <strong>la</strong> PC y <strong>en</strong> frecu<strong>en</strong>cia (Decimation in Frequ<strong>en</strong>cy) <strong>en</strong><br />
el DSP, ambos base 2 (radix 2).<br />
El algoritmo propuesto consiste básicam<strong>en</strong>te <strong>en</strong> realizar dos filtrados a <strong>la</strong> imag<strong>en</strong><br />
(ver figura 1), don<strong>de</strong> el segundo filtrado solo se hace a <strong>la</strong>s regiones que lo necesit<strong>en</strong><br />
(<strong>la</strong>s mas ruidosas). En este trabajo se llegó a <strong>la</strong> conclusión <strong>de</strong> que este filtro basado <strong>en</strong><br />
<strong>la</strong> Transformada <strong>de</strong> Fourier trabaja mucho mejor sobre <strong>la</strong> imag<strong>en</strong> binaria que sobre <strong>la</strong><br />
imag<strong>en</strong> <strong>en</strong> niveles <strong>de</strong> gris como se <strong>de</strong>scribe <strong>en</strong> [7]. Por esta razón primero se binariza<br />
<strong>la</strong> imag<strong>en</strong> con un umbral dinámico y <strong>de</strong>spués se filtra. Después <strong>de</strong> realizar el primer<br />
filtrado, <strong>en</strong> algunas ocasiones suel<strong>en</strong> haber regiones todavía con <strong>de</strong>masiado ruido, por
lo que un segundo filtrado es necesario a fin <strong>de</strong> po<strong>de</strong>r eliminar dicho ruido. El umbral<br />
compuesto <strong>de</strong>termina <strong>la</strong>s regiones ruidosas que necesitan el segundo filtrado, <strong>la</strong>s<br />
cuales se les aplica el filtro nuevam<strong>en</strong>te.<br />
Filtro Gaussiano<br />
Umbral Dinámico<br />
Filtro FFT<br />
Umbral Compuesto<br />
Filtro FFT <strong>en</strong> regiones<br />
necesarias<br />
Fig. 1. Algoritm<br />
2.1 Filtro Gaussiano<br />
Este filtro es un filtro pasabajas, cuyo efecto es el <strong>de</strong> realizar un suavizado <strong>en</strong> <strong>la</strong><br />
imag<strong>en</strong>, <strong>en</strong> el cuál el núcleo es una Gaussiana 2-D, <strong>de</strong> media cero y <strong>de</strong>sviación<br />
estándar σ, <strong>de</strong> <strong>la</strong> forma:<br />
G(<br />
x,<br />
y)<br />
= e<br />
2<br />
−(<br />
x<br />
2<br />
2<br />
+ y )/ 2σ<br />
(1)<br />
La transformada <strong>de</strong> Fourier <strong>de</strong> <strong>la</strong> Gaussiana es todavía Gaussiana y prácticam<strong>en</strong>te<br />
no posee lóbulos <strong>la</strong>terales, por lo que su respuesta <strong>en</strong> frecu<strong>en</strong>cia es muy bu<strong>en</strong>a.<br />
2.2 Umbral dinámico<br />
Para po<strong>de</strong>r separar c<strong>la</strong>ram<strong>en</strong>te <strong>la</strong>s regiones que pert<strong>en</strong>ec<strong>en</strong> al fondo <strong>de</strong> <strong>la</strong> imag<strong>en</strong>, <strong>de</strong><br />
los ridges, se requiere aplicar alguna técnica <strong>de</strong> segm<strong>en</strong>tación, esto se hace<br />
binarizando <strong>la</strong> imag<strong>en</strong> a través <strong>de</strong> un proceso <strong>de</strong> umbralización [10].<br />
Exist<strong>en</strong> difer<strong>en</strong>tes tipos <strong>de</strong> umbrales, global, local y dinámico [10], este último<br />
consiste <strong>en</strong> dividir <strong>la</strong> imag<strong>en</strong> <strong>en</strong> bloques B KL <strong>de</strong> 15x15 píxeles, <strong>de</strong> los cuales se<br />
obti<strong>en</strong>e su media µ<br />
KL<br />
. Entonces <strong>la</strong> media µ<br />
KL<br />
<strong>de</strong> un bloque B KL , esta <strong>de</strong>finida por:
KL<br />
<br />
<br />
<br />
( L+<br />
1)( B−1)<br />
( K + 1)( A−1)<br />
µ (2)<br />
= <br />
j=<br />
LB<br />
i=<br />
KA<br />
I(<br />
i,<br />
j)<br />
/( AB)<br />
<br />
Don<strong>de</strong> A, B es el tamaño <strong>de</strong>l bloque y K, L es el número <strong>de</strong> bloques obt<strong>en</strong>idos <strong>de</strong><br />
<strong>la</strong> imag<strong>en</strong>. Entonces µ<br />
KL<br />
es el umbral <strong>de</strong>l bloque B KL , <strong>de</strong> tal forma que cada bloque<br />
t<strong>en</strong>drá un umbral difer<strong>en</strong>te. Este método funciona muy bi<strong>en</strong> sobre imág<strong>en</strong>es <strong>de</strong> ma<strong>la</strong><br />
calidad, a difer<strong>en</strong>cia <strong>de</strong>l umbral global que funciona bi<strong>en</strong> <strong>en</strong> imág<strong>en</strong>es <strong>de</strong> bu<strong>en</strong>a<br />
calidad [1].<br />
2.3 Filtro FFT<br />
Para mejorar a <strong>la</strong> imag<strong>en</strong> a través <strong>de</strong> <strong>la</strong> magnitud <strong>de</strong> su transformada <strong>de</strong> Fourier, ésta<br />
es dividida <strong>en</strong> bloques <strong>de</strong> 32x32 píxeles, a los cuales su transformada <strong>de</strong> Fourier<br />
F(u,v) es calcu<strong>la</strong>da <strong>de</strong> acuerdo a:<br />
M<br />
<br />
− 1N−1<br />
1<br />
ux<br />
vy<br />
F(<br />
u,<br />
v)<br />
= f ( x,<br />
y)exp<br />
− j2π + <br />
= = <br />
(3)<br />
MN x 0 y 0<br />
M N<br />
La imag<strong>en</strong> mejorada g(x,y) <strong>en</strong> cada bloque es obt<strong>en</strong>ida por:<br />
( x,<br />
y)<br />
=<br />
F<br />
−1<br />
<br />
F<br />
( u,<br />
v)<br />
x<br />
<br />
F(<br />
u,<br />
v)<br />
g (4)<br />
Don<strong>de</strong> F(u,v) es <strong>la</strong> transformada <strong>de</strong> Fourier <strong>de</strong>l bloque y k es <strong>la</strong> fracción por <strong>la</strong> cual<br />
se multiplica a <strong>la</strong> magnitud <strong>de</strong> <strong>la</strong> transformada <strong>de</strong> Fourier, y F -1 es <strong>la</strong> transformada<br />
Inversa <strong>de</strong> Fourier obt<strong>en</strong>ida <strong>de</strong> acuerdo a:<br />
M<br />
<br />
− 1 N −1<br />
ux vy<br />
f ( x,<br />
y)<br />
= F(<br />
u,<br />
v)exp<br />
j2π + <br />
= = <br />
(5)<br />
u 0 v 0<br />
M N<br />
k<br />
<br />
<br />
<br />
2.4 Umbral compuesto<br />
Puesto que <strong>la</strong> umbralización global funciona bi<strong>en</strong> <strong>en</strong> una imag<strong>en</strong> <strong>de</strong> bu<strong>en</strong>a calidad, y<br />
el umbral dinámico <strong>en</strong> imág<strong>en</strong>es <strong>de</strong> ma<strong>la</strong> calidad, <strong>en</strong> este trabajo se combinaron<br />
ambos métodos para obt<strong>en</strong>er un algoritmo al cual se le d<strong>en</strong>ominó umbralización<br />
compuesta. Este algoritmo se muestra <strong>en</strong> <strong>la</strong> figura 2. y se utiliza <strong>de</strong>spués <strong>de</strong> realizar el<br />
primer filtrado basado <strong>en</strong> <strong>la</strong> FFT, <strong>en</strong> don<strong>de</strong> a veces, se ti<strong>en</strong><strong>en</strong> todavía regiones <strong>de</strong> ma<strong>la</strong><br />
calidad. La <strong>de</strong>terminación <strong>de</strong> estas regiones <strong>de</strong> ma<strong>la</strong> calidad se hace usando el método<br />
<strong>de</strong> segm<strong>en</strong>tación por varianza [14], <strong>en</strong> este método <strong>la</strong> imag<strong>en</strong> se divi<strong>de</strong> <strong>en</strong> bloques<br />
B KL <strong>de</strong> 15x15 píxeles <strong>de</strong> los cuales se extrae su varianza v dada por:<br />
KL
KL<br />
<br />
<br />
<br />
( L+<br />
1)( B−1)<br />
( K + 1)( A−1)<br />
2<br />
= <br />
[ I(<br />
i,<br />
j)<br />
− µ<br />
KL<br />
] /( AB)<br />
ν (6)<br />
j=<br />
LB<br />
i=<br />
KA<br />
Don<strong>de</strong> A, B, K, L ti<strong>en</strong><strong>en</strong> el mismo significado que <strong>en</strong> <strong>la</strong> ecuación 2. La varianza<br />
obt<strong>en</strong>ida <strong>de</strong> los niveles <strong>de</strong> gris correspondi<strong>en</strong>tes al fondo y/o a regiones uniformes es<br />
muy pequeña (cero <strong>en</strong> regiones perfectam<strong>en</strong>te uniformes), y <strong>la</strong> varianza obt<strong>en</strong>ida <strong>en</strong><br />
regiones don<strong>de</strong> se <strong>en</strong>cu<strong>en</strong>tra <strong>la</strong> imag<strong>en</strong> <strong>de</strong> <strong>la</strong> huel<strong>la</strong> dacti<strong>la</strong>r <strong>en</strong> bu<strong>en</strong>as condiciones es<br />
alta, con este método los bloques <strong>de</strong> ma<strong>la</strong> calidad se marcan para que posteriorm<strong>en</strong>te<br />
estos sean nuevam<strong>en</strong>te filtrados.<br />
<br />
Segm<strong>en</strong>tación por Varianza<br />
Bloque <strong>de</strong><br />
Ma<strong>la</strong> Calidad<br />
Marcar Bloque<br />
Umbral Global<br />
Umbral Dinámico<br />
NO<br />
Fin <strong>de</strong><br />
Imag<strong>en</strong><br />
SI<br />
FIN<br />
Fig. 2. Algoritmo propuesto d<strong>en</strong>ominado umbralización compuesta<br />
3 P<strong>la</strong>taformas usadas para <strong>la</strong> ejecución <strong>de</strong>l algoritmo<br />
3.1 Computadora personal<br />
Este algoritmo se programó <strong>en</strong> una computadora personal (PC) <strong>en</strong> l<strong>en</strong>guaje “C”<br />
usando el ambi<strong>en</strong>te <strong>de</strong> programación visual Buil<strong>de</strong>r C++ versión 5.0 y <strong>en</strong> Mat<strong>la</strong>b<br />
versión 5.0. Los requerimi<strong>en</strong>tos <strong>de</strong> <strong>la</strong> PC don<strong>de</strong> se hicieron <strong>la</strong>s pruebas es el<br />
sigui<strong>en</strong>te:<br />
• Computadora personal P<strong>en</strong>tium III a 550Mhz,<br />
• 128Mb <strong>de</strong> memoria RAM.
3.2 DSP<br />
El DSP usado pert<strong>en</strong>ece a <strong>la</strong> famlia TMS320C3x, <strong>de</strong> Texas Instrum<strong>en</strong>ts. La<br />
arquitectura <strong>de</strong> <strong>la</strong> familia ‘C3x’ ti<strong>en</strong>e un alto <strong>de</strong>sempeño <strong>de</strong>bido a su amplio y preciso<br />
rango dinámico <strong>de</strong> unida<strong>de</strong>s <strong>de</strong> punto flotante, gran capacidad <strong>de</strong> memoria, alto grado<br />
<strong>de</strong> paralelismo(al t<strong>en</strong>er una arquitectura Harvard) y el contro<strong>la</strong>dor <strong>de</strong> DMA[3].<br />
Específicam<strong>en</strong>te se uso el DSP TMS320C31-50, el cuál realiza el procesami<strong>en</strong>to<br />
<strong>de</strong> <strong>la</strong> imag<strong>en</strong>. Este DSP es un procesador con 32 bits <strong>en</strong> el bus <strong>de</strong> datos y 24 bits <strong>en</strong> el<br />
bus <strong>de</strong> direcciones, así mismo trabaja con una frecu<strong>en</strong>cia <strong>de</strong> reloj <strong>de</strong> 25 MHz, al<br />
dividir internam<strong>en</strong>te su frecu<strong>en</strong>cia <strong>de</strong> osci<strong>la</strong>dor <strong>de</strong> 50 MHz <strong>en</strong> un factor <strong>de</strong> dos. Por lo<br />
tanto su ciclo <strong>de</strong> instrucción es 40ns y realiza 275 Millones <strong>de</strong> operaciones <strong>de</strong> punto<br />
fijo por segundo (MOPS), 50 Millones <strong>de</strong> operaciones <strong>de</strong> punto flotante por segundo<br />
(MFLOPS), 25 Millones <strong>de</strong> instrucciones por segundo (MIPS).<br />
A<strong>de</strong>más estos procesadores ti<strong>en</strong><strong>en</strong> un modo <strong>de</strong> direccionami<strong>en</strong>to especializado <strong>en</strong><br />
realizar el proceso conocido como reversión <strong>de</strong> bits para el cálculo <strong>de</strong>l algoritmo <strong>de</strong> <strong>la</strong><br />
FFT. Con esto <strong>la</strong> ejecución <strong>de</strong> dicho algoritmo es muy rápida.<br />
4 Resultados y conclusiones<br />
Experim<strong>en</strong>talm<strong>en</strong>te se <strong>en</strong>contró que un valor <strong>de</strong> k=1.1 <strong>en</strong> el filtro fue el óptimo para<br />
el mejorami<strong>en</strong>to <strong>en</strong> imág<strong>en</strong>es <strong>de</strong> bu<strong>en</strong>a calidad, y para imág<strong>en</strong>es <strong>de</strong> ma<strong>la</strong> calidad<br />
k=1.3 pres<strong>en</strong>ta mejores resultados [5, 6, 2]. Este método pres<strong>en</strong>ta un problema <strong>en</strong> los<br />
bor<strong>de</strong>s <strong>de</strong> cada bloque por lo se necesito un tras<strong>la</strong>pe <strong>de</strong> 26 píxeles <strong>en</strong>tre cada bloque<br />
para eliminar este efecto [5, 6].<br />
El filtro basado <strong>en</strong> <strong>la</strong> FFT se probó con 5 imág<strong>en</strong>es <strong>de</strong> difer<strong>en</strong>tes personas, <strong>la</strong>s<br />
cuales ti<strong>en</strong><strong>en</strong> difer<strong>en</strong>tes tamaños y difer<strong>en</strong>tes tipos <strong>de</strong> calidad. Los resultados <strong>de</strong>l<br />
algoritmo <strong>en</strong> 4 <strong>de</strong> esas imág<strong>en</strong>es se muestran <strong>en</strong> <strong>la</strong> figura 3.<br />
De los resultados mostrados se pue<strong>de</strong> concluir que <strong>la</strong> efici<strong>en</strong>cia <strong>de</strong> <strong>la</strong> metodología<br />
propuesta para el filtrado y mejora <strong>de</strong> imág<strong>en</strong>es <strong>de</strong> huel<strong>la</strong>s dacti<strong>la</strong>res es gran<strong>de</strong>. Se<br />
pue<strong>de</strong> observar que para <strong>la</strong>s imág<strong>en</strong>es <strong>de</strong> ma<strong>la</strong> calidad los resultados <strong>de</strong> <strong>la</strong><br />
metodología propuesta son muy bu<strong>en</strong>os, <strong>en</strong> cambio con <strong>la</strong>s imág<strong>en</strong>es <strong>de</strong> bu<strong>en</strong>a calidad<br />
los resultados son muy simi<strong>la</strong>res a los <strong>de</strong>scritos <strong>en</strong> [7].<br />
Con estos resultados el porc<strong>en</strong>taje <strong>de</strong> efici<strong>en</strong>cia obt<strong>en</strong>ido <strong>en</strong> el AFAS es muy<br />
gran<strong>de</strong> [2, 1].<br />
Los resultados <strong>de</strong> los difer<strong>en</strong>tes tiempos <strong>de</strong> ejecución <strong>de</strong> este algoritmo para <strong>la</strong>s 5<br />
personas <strong>en</strong> los difer<strong>en</strong>tes l<strong>en</strong>guajes <strong>de</strong> programación y p<strong>la</strong>taformas, se muestran <strong>en</strong> <strong>la</strong><br />
tab<strong>la</strong> 1.<br />
Cabe m<strong>en</strong>cionar que para realizar <strong>la</strong> implem<strong>en</strong>tación <strong>de</strong>l filtro <strong>en</strong> el <strong>en</strong>samb<strong>la</strong>dor<br />
<strong>de</strong>l DSP se implem<strong>en</strong>taron <strong>la</strong>s funciones <strong>de</strong> logaritmo natural y expon<strong>en</strong>cial <strong>en</strong> el<br />
DSP, para esto se utilizó el código <strong>de</strong> <strong>la</strong>s funciones que proporciona Texas<br />
Instrum<strong>en</strong>ts [3].<br />
En cuanto a los tiempos <strong>de</strong> ejecución <strong>de</strong>l algoritmo <strong>en</strong> <strong>la</strong> PC se ti<strong>en</strong>e <strong>la</strong> ejecución<br />
más rápida al programarse el algoritmo <strong>en</strong> l<strong>en</strong>guaje “C”, <strong>en</strong> esta misma p<strong>la</strong>taforma al<br />
programarse el algoritmo sobre Mat<strong>la</strong>b los tiempos se increm<strong>en</strong>tan<br />
consi<strong>de</strong>rablem<strong>en</strong>te.
Imag<strong>en</strong> Original – Usuario 1<br />
Filtro Aplicado sobre Niveles<br />
<strong>de</strong> Gris<br />
Filtro con <strong>la</strong> Metodología<br />
Propuesta<br />
Imag<strong>en</strong> Original – Usuario 2<br />
Filtro Aplicado sobre Niveles<br />
<strong>de</strong> Gris<br />
Filtro con <strong>la</strong> Metodología<br />
Propuesta<br />
Imag<strong>en</strong> Original – Usuario 3<br />
Filtro Aplicado sobre Niveles<br />
<strong>de</strong> Gris<br />
Filtro con <strong>la</strong> Metodología<br />
Propuesta<br />
Imag<strong>en</strong> Original – Usuario 5<br />
Filtro Aplicado sobre Niveles<br />
<strong>de</strong> Gris<br />
Fig. 3. Imág<strong>en</strong>es <strong>de</strong> prueba<br />
Filtro con <strong>la</strong> Metodología<br />
Propuesta
Tab<strong>la</strong> 1. Tiempos <strong>de</strong> ejecución <strong>de</strong>l filtro basado <strong>en</strong> <strong>la</strong> FFT<br />
Imag<strong>en</strong><br />
Algoritmo <strong>en</strong><br />
Algoritmo <strong>en</strong> el DSP<br />
Algoritmo <strong>en</strong><br />
“C”<br />
Mat<strong>la</strong>b<br />
Usuario1 10 seg. 42 seg. 54 seg.<br />
Usuario2 4 seg. 14 seg. 26 seg.<br />
Usuario3 10 seg. 39 seg. 51 seg.<br />
Usuario4 5 seg. 21 seg. 33 seg.<br />
Usuario5 7 seg. 31 seg. 38 seg.<br />
En el DSP los tiempos son mayores que <strong>en</strong> <strong>la</strong> PC, a pesar <strong>de</strong> <strong>la</strong> arquitectura <strong>de</strong> este<br />
procesador, lo posibles factores que ocasionan esto, son sin duda primeram<strong>en</strong>te <strong>la</strong><br />
velocidad <strong>de</strong> 25Mhz <strong>de</strong>l DSP contra 550 Mhz <strong>de</strong> <strong>la</strong> PC y el uso <strong>de</strong> métodos numéricos<br />
para el cálculo y evaluación <strong>de</strong>l logaritmo natural y <strong>la</strong> expon<strong>en</strong>cial <strong>en</strong> el <strong>en</strong>samb<strong>la</strong>dor<br />
<strong>de</strong>l DSP, <strong>en</strong> <strong>la</strong> PC se hace uso <strong>de</strong>l coprocesador matemático para el cálculo <strong>de</strong> estas<br />
funciones.<br />
Refer<strong>en</strong>cias<br />
[1] V. H. Garcia, “Tesis <strong>de</strong> Maestría: Sistema <strong>de</strong> Reconocimi<strong>en</strong>to <strong>de</strong> Huel<strong>la</strong>s Dacti<strong>la</strong>res para el<br />
Control <strong>de</strong> Acceso a Recintos”, CIC-IPN, <strong>México</strong> D.F., 2004.<br />
[2] V. H. Garcia, O. Espinosa, “Estrategias para <strong>la</strong> Aut<strong>en</strong>tificación <strong>de</strong> Huel<strong>la</strong>s Dacti<strong>la</strong>res”,<br />
Congreso Internacional ANIEI, Zacatecas, Zacatecas, 2003.<br />
[3] Texas Instrum<strong>en</strong>ts, TMS320C3X User’s Gui<strong>de</strong>. 2003.<br />
[4] Veridicom, FPS110 Data Sheet. 2003<br />
[5] V. H. Garcia, O. Espinosa, “Sistema <strong>de</strong> Reconocimi<strong>en</strong>to <strong>de</strong> Huel<strong>la</strong>s Dacti<strong>la</strong>res para el<br />
Control <strong>de</strong> Acceso a Recintos”, Congreso Internacional CIC-INDI, <strong>México</strong> DF, 2001.<br />
[6] V. H. Garcia, “Sistema <strong>de</strong> Reconocimi<strong>en</strong>to <strong>de</strong> Huel<strong>la</strong>s Dacti<strong>la</strong>res para el Control <strong>de</strong> Acceso<br />
a Recintos Basado <strong>en</strong> el DSP TMS320C31”, Congreso Internacional ELECTRO-2001,<br />
Chihuahua, Chihuahua, 2001<br />
[7] A.J. Willis and L. Myers, “A cost-effective fingerprint recognition system for use with lowquality<br />
prints and damaged fingertips”, Pattern Recognition, vol. 34, No 2, pp. 255-270,<br />
February 2001.<br />
[8] L. C. Jain, U. Halici, I. Hayashi, S. B. Lee, Intellig<strong>en</strong>t biometric techniques in fingerprint<br />
and face recognition, 1999.<br />
[9] Mardia, K.V., Baczkowski, A. J., F<strong>en</strong>g, ”Statistical methods for automatic interpretation of<br />
digitally scanned finger prints”, Pattern Recognition Letters. pp 1197-1203,1997.<br />
[10] R. González, R. Woods, Digital Image Processing, 1996.<br />
[11] Sherlock, B.G., Monro, D.M., and Mil<strong>la</strong>rd, K., “Fingerprint Enhancem<strong>en</strong>t by Directional<br />
Fourier Filtering”, IEEE Proceedings Vision, Image and Signal Processing, Vol. 141, No 2.<br />
pp 87-94. 1994.
[12] B. Miller, “Vital signs of id<strong>en</strong>tity”, IEEE Spectrum, 31(2), pp. 22-30, 1994.<br />
[13] O’ Gorman, L. And Nickerson, J.V., “An approach to fingerprint filter <strong>de</strong>sign”, Pattern<br />
Recognition, Vol. 22, No. 1, pp 29-38. 1989.<br />
[14] B.M. Mehtre and B. Chatterjee, “Segm<strong>en</strong>tation of fingerprint images A composite<br />
method”, Pattern Recognition, vol. 22, pp. 381-385, 1989.
Control y monitoreo <strong>de</strong> variables físicas vía remota<br />
usando <strong>la</strong> p<strong>la</strong>taforma TINI<br />
Osiris Carreño Bernal 1 , Br<strong>en</strong>da García Rojas 1 , Kar<strong>en</strong> <strong>de</strong> Jesús González Solis 1 ,<br />
Pao<strong>la</strong> Noriega Mor<strong>en</strong>o 1 , Victor Hugo García Ortega 2<br />
1 Escue<strong>la</strong> Superior <strong>de</strong> Cómputo<br />
Instituto Politécnico Nacional<br />
Av. Juan <strong>de</strong> Dios Batíz, s/n, esq. M. Othón <strong>de</strong> M<strong>en</strong>dizábal<br />
Col. Nueva Industrial Vallejo, 07738,<br />
<strong>México</strong>, D. F.<br />
2 C<strong>en</strong>tro <strong>de</strong> Investigación <strong>en</strong> Computación<br />
Instituto Politécnico Nacional<br />
Av. Juan <strong>de</strong> Dios Batíz, s/n, esq. M. Othón <strong>de</strong> M<strong>en</strong>dizábal<br />
Col. Nueva Industrial Vallejo, 07738,<br />
Unidad Profesional “Adolfo López Mateoz”<br />
<strong>México</strong>, D. F.<br />
{osiris_bernal, brestarhi, chuchita_gs_,<br />
noriega_pao<strong>la</strong>}@hotmail.com, vgarcia@cic.edu.mx<br />
Resum<strong>en</strong>. Este trabajo pres<strong>en</strong>ta el <strong>de</strong>sarrollo <strong>de</strong> un sistema <strong>de</strong> control y<br />
monitoreo <strong>de</strong> variables físicas tales como: iluminación y temperatura <strong>de</strong> una<br />
habitación vía remota mediante <strong>la</strong> p<strong>la</strong>taforma TINI –Tiny InterNet Interface<br />
(Pequeña Interfaz <strong>de</strong> Red)– <strong>de</strong>sarrol<strong>la</strong>da por Dal<strong>la</strong>s Semiconductor.<br />
1 Introducción<br />
Sabemos que hasta ahora se ha llevado a cabo el control y monitoreo <strong>de</strong> difer<strong>en</strong>tes<br />
variables a través <strong>de</strong> una PC, ocasionando que el sistema sea costoso y complejo.<br />
Dichos sistemas permit<strong>en</strong> el acceso a recursos <strong>de</strong> cómputo externo utilizando una<br />
arquitectura Cli<strong>en</strong>te-Servidor, <strong>de</strong> forma que el proceso <strong>de</strong> simu<strong>la</strong>ción es contro<strong>la</strong>da<br />
por medio <strong>de</strong> Internet <strong>de</strong>s<strong>de</strong> una computadora cli<strong>en</strong>te. Como sistemas <strong>de</strong>sarrol<strong>la</strong>dos<br />
con esta arquitectura se ti<strong>en</strong><strong>en</strong> [1] y [2].<br />
El sistema que estamos <strong>de</strong>sarrol<strong>la</strong>ndo utiliza <strong>la</strong> arquitectura Cli<strong>en</strong>te-Servidor. Del<br />
<strong>la</strong>do <strong>de</strong>l servidor se está manejando <strong>la</strong> p<strong>la</strong>taforma TINI –Tiny InterNet Interface<br />
(Pequeña Interfaz <strong>de</strong> Red)– y <strong>de</strong>l <strong>la</strong>do <strong>de</strong>l cli<strong>en</strong>te se ti<strong>en</strong>e una PC (Personal<br />
Computer). TINI es una p<strong>la</strong>taforma que pue<strong>de</strong> ser usada para tareas como monitoreo<br />
y control <strong>de</strong> un dispositivo local o todo un sistema, pero <strong>en</strong> <strong>la</strong> mayoría <strong>de</strong> sus<br />
aplicaciones se utiliza por su capacidad <strong>de</strong> red.<br />
Provee diseños <strong>de</strong> sistemas y <strong>de</strong>sarrollos <strong>de</strong> software <strong>de</strong> manera flexible y <strong>de</strong> bajo<br />
costo para diseñar una amplia variedad <strong>de</strong> hardware que permita ser conectado<br />
directam<strong>en</strong>te <strong>en</strong> PC’s. La p<strong>la</strong>taforma es una combinación <strong>de</strong> un pequeño pero<br />
po<strong>de</strong>roso conjunto <strong>de</strong> chips y un ambi<strong>en</strong>te programable <strong>en</strong> JAVA. El conjunto <strong>de</strong><br />
chips provee procesami<strong>en</strong>to, control y <strong>la</strong> capacidad <strong>de</strong> trabajo <strong>en</strong> red. Las
características fundam<strong>en</strong>tales <strong>de</strong>l hardware son expuestas al <strong>de</strong>sarrol<strong>la</strong>dor <strong>de</strong>l<br />
software a través <strong>de</strong> un conjunto <strong>de</strong> interfaces programables <strong>en</strong> aplicaciones JAVA.<br />
RTOS<br />
I/O<br />
TCP/IP<br />
Pi<strong>la</strong><br />
Microcontro<strong>la</strong>dor<br />
DS80C390<br />
Memoria<br />
Máquina<br />
Virtual Java<br />
Serial<br />
CAN<br />
1 –<br />
Wire<br />
Parale<br />
lo<br />
Contro<strong>la</strong>dor<br />
ethernet<br />
Reloj<br />
Aplicación<br />
pc<br />
pc<br />
pc<br />
Fig. 1. Diagrama <strong>de</strong> <strong>la</strong> p<strong>la</strong>taforma TINI<br />
2 Descripción g<strong>en</strong>eral <strong>de</strong>l sistema<br />
El sistema completo se pue<strong>de</strong> apreciar <strong>en</strong> <strong>la</strong> figura 2.<br />
TINI a través <strong>de</strong> <strong>la</strong> combinación <strong>de</strong> <strong>la</strong> amplia capacidad <strong>de</strong> I/O (puertos), una red<br />
basada <strong>en</strong> el protocolo TCP/IP y un ambi<strong>en</strong>te <strong>de</strong> programación ori<strong>en</strong>tada a objetos,<br />
forman una p<strong>la</strong>taforma para crear aplicaciones que provean no solo control local, sino<br />
también remoto. La capacidad <strong>de</strong> red <strong>de</strong> TINI se exti<strong>en</strong><strong>de</strong> a <strong>la</strong> conectividad <strong>de</strong><br />
cualquier dispositivo permiti<strong>en</strong>do <strong>la</strong> interacción con sistemas remotos y usuarios a<br />
través <strong>de</strong> una red <strong>de</strong> aplicaciones estándar como los Web browsers [3] y [4].<br />
El sistema que se <strong>en</strong>cu<strong>en</strong>tra <strong>en</strong> <strong>de</strong>sarrollo pret<strong>en</strong><strong>de</strong> contro<strong>la</strong>r y monitorear<br />
iluminación y temperatura <strong>de</strong> una habitación vía remota. Dicho sistema se basa <strong>en</strong> <strong>la</strong><br />
arquitectura Cli<strong>en</strong>te / Servidor que esta si<strong>en</strong>do programada <strong>en</strong> l<strong>en</strong>guaje Java, el cli<strong>en</strong>te<br />
interactuará con el servidor proporcionando y adquiri<strong>en</strong>do información acerca <strong>de</strong>l<br />
estado <strong>de</strong> <strong>la</strong>s variables <strong>de</strong> iluminación y temperatura d<strong>en</strong>tro <strong>de</strong> <strong>la</strong> habitación. El
acceso al sistema será mediante una aplicación in<strong>de</strong>p<strong>en</strong>di<strong>en</strong>te <strong>de</strong>sarrol<strong>la</strong>da <strong>en</strong> Java<br />
mediante Internet y el procesami<strong>en</strong>to <strong>de</strong> <strong>la</strong> información <strong>la</strong> llevará a cabo el servidor.<br />
CLIENTE<br />
PC<br />
INTERNET<br />
1-wire<br />
ACTUADORES<br />
SERVIDOR<br />
TINI<br />
Puerto<br />
Paralelo<br />
ADQUISICIÓN<br />
DE DATOS<br />
SENSORES<br />
Fig. 2. Descripción G<strong>en</strong>eral <strong>de</strong>l Sistema<br />
De los bloques mostrados <strong>en</strong> <strong>la</strong> figura 2. Describiremos el bloque <strong>de</strong> Adquisición<br />
<strong>de</strong> Datos. Este bloque se <strong>en</strong>carga <strong>de</strong> obt<strong>en</strong>er los datos <strong>de</strong> temperatura a través <strong>de</strong>l<br />
bloque <strong>de</strong> S<strong>en</strong>sores. El s<strong>en</strong>sor utilizado para <strong>la</strong> adquisición <strong>de</strong> temperatura es el<br />
LM35, el cual proporciona 10 mV/ºC, salida lineal y rangos <strong>de</strong> temperatura <strong>de</strong> -40 a<br />
100ºC [5].<br />
2.1 Electrónica <strong>de</strong>l sistema<br />
La tarjeta <strong>de</strong> adquisición consta <strong>de</strong> los compon<strong>en</strong>tes pres<strong>en</strong>tes <strong>en</strong> <strong>la</strong> figura 3.<br />
Convertidor Analógico – Digital (ADC0804) con una resolución <strong>de</strong> 8bits y tiempo<br />
<strong>de</strong> conversión <strong>de</strong> 100 µseg[5]. Multiplexor (ADG509), Buffer (74LS541) y<br />
Amplificador Operacional (LF351).<br />
Los actuadores que se utilizan se catalogan conforme a <strong>la</strong>s variables monitoreadas /<br />
contro<strong>la</strong>das:<br />
Variables<br />
Temperatura Ambi<strong>en</strong>te<br />
Luz<br />
Actuador<br />
Aire acondicionado<br />
Foco
Fig. 3. Diagrama a bloques <strong>de</strong>l Sistema <strong>de</strong> Control<br />
El Aire acondicionado es empleado para aum<strong>en</strong>tar / disminuir <strong>la</strong> temperatura<br />
d<strong>en</strong>tro <strong>de</strong> <strong>la</strong> habitación, el cual consume 1500 Watts y 127 V.<br />
Otro actuador empleado <strong>en</strong> este sistema es un foco, el <strong>en</strong>c<strong>en</strong>dido / apagado <strong>de</strong><br />
dicho actuador será manipu<strong>la</strong>do mediante control ON/OFF.<br />
3 Contro<strong>la</strong>dor difuso<br />
Un control difuso se refiere primordialm<strong>en</strong>te al control <strong>de</strong> procesos a través <strong>de</strong><br />
<strong>de</strong>scripciones lingüísticas difusas. Es una <strong>de</strong> <strong>la</strong>s técnicas empleadas para materializar<br />
sistemas <strong>de</strong> control, con contro<strong>la</strong>dores que toman <strong>de</strong>cisiones simi<strong>la</strong>res al<br />
razonami<strong>en</strong>to humano. Pue<strong>de</strong> ser diseñado <strong>de</strong> manera que imite el proceso <strong>de</strong>ductivo<br />
humano.<br />
Usuario<br />
Interfaz<br />
Contro<strong>la</strong>dor<br />
Lógico<br />
Difuso<br />
Entradas<br />
Fuzificación<br />
Infer<strong>en</strong>cia<br />
Difusa<br />
Defuzificación<br />
Salida<br />
Fig. 4. Contro<strong>la</strong>dor Difuso<br />
Un conjunto difuso conti<strong>en</strong>e elem<strong>en</strong>tos, los cuales varían su grado <strong>de</strong> pert<strong>en</strong><strong>en</strong>cia<br />
<strong>en</strong> el conjunto. D<strong>en</strong>tro <strong>de</strong> <strong>la</strong> Lógica Difusa un conjunto es una c<strong>la</strong>se <strong>de</strong> objeto con un<br />
continuo <strong>de</strong> grados <strong>de</strong> membresía, tal que es caracterizado por una función <strong>de</strong><br />
membresía.<br />
Los conjuntos difusos <strong>de</strong>scrib<strong>en</strong> conceptos vagos (corredor rápido, tiempo cali<strong>en</strong>te,<br />
días <strong>de</strong> <strong>la</strong> semana). Un conjunto difuso admite <strong>la</strong> posibilidad <strong>de</strong> pert<strong>en</strong><strong>en</strong>cia parcial <strong>en</strong><br />
él (viernes es más o m<strong>en</strong>os un día <strong>de</strong>l fin <strong>de</strong> semana).
Funciones <strong>de</strong> Membresía. Es una medida <strong>de</strong> <strong>la</strong> pert<strong>en</strong><strong>en</strong>cia graduada <strong>de</strong> un<br />
elem<strong>en</strong>to <strong>en</strong> un conjunto difuso. Una función <strong>de</strong> membresía asigna a cada objeto un<br />
intervalo <strong>de</strong> grado <strong>de</strong> membresía <strong>en</strong>tre cero y uno. Las funciones <strong>de</strong> membresía <strong>de</strong>b<strong>en</strong><br />
<strong>de</strong>finirse a partir <strong>de</strong> <strong>la</strong> experi<strong>en</strong>cia o <strong>la</strong> intuición o simplem<strong>en</strong>te utilizando el s<strong>en</strong>tido<br />
común.<br />
El grado <strong>de</strong> pert<strong>en</strong><strong>en</strong>cia <strong>de</strong> un objeto a un conjunto difuso es d<strong>en</strong>otado por un valor<br />
<strong>de</strong> pert<strong>en</strong><strong>en</strong>cia <strong>en</strong>tre 0 y 1.<br />
Reg<strong>la</strong> Difusa. Una reg<strong>la</strong> difusa es una condición que expresa <strong>la</strong> <strong>de</strong>p<strong>en</strong>d<strong>en</strong>cia <strong>en</strong>tre<br />
<strong>la</strong>s variables. Estas ti<strong>en</strong><strong>en</strong> <strong>la</strong> sigui<strong>en</strong>te forma:<br />
If th<strong>en</strong> <br />
La condición esta compuesta <strong>de</strong> anteced<strong>en</strong>tes, don<strong>de</strong> un anteced<strong>en</strong>te es <strong>de</strong> <strong>la</strong> forma<br />
“x esta <strong>en</strong> A”, don<strong>de</strong> x es un elem<strong>en</strong>to <strong>en</strong> el espacio X y A es un conjunto difuso. Una<br />
condición pue<strong>de</strong> t<strong>en</strong>er uno o más anteced<strong>en</strong>tes:<br />
If < and > th<strong>en</strong><br />
<br />
Simi<strong>la</strong>rm<strong>en</strong>te, <strong>la</strong> consecu<strong>en</strong>cia esta compuesta <strong>de</strong> consecu<strong>en</strong>tes, don<strong>de</strong> un<br />
consecu<strong>en</strong>te es <strong>de</strong> <strong>la</strong> forma “y esta <strong>en</strong> B”, don<strong>de</strong> y es un elem<strong>en</strong>to <strong>en</strong> el espacio Y, y B<br />
es un conjunto difuso. Una consecu<strong>en</strong>cia pue<strong>de</strong> t<strong>en</strong>er un o más consecu<strong>en</strong>tes:<br />
If th<strong>en</strong> < and<br />
><br />
Proceso <strong>de</strong> Infer<strong>en</strong>cia. El proceso <strong>de</strong> infer<strong>en</strong>cia es un mecanismo interno que<br />
produce un valor <strong>de</strong> salida clásico (no difuso) <strong>de</strong> un conjunto <strong>de</strong> reg<strong>la</strong>s difusas.<br />
Fig. 5. Variables <strong>de</strong> <strong>en</strong>trada y salida utilizando Mat<strong>la</strong>b<br />
El proceso <strong>de</strong> infer<strong>en</strong>cia difusa involucra tres pasos: Fuzificación, evaluación <strong>de</strong><br />
reg<strong>la</strong>s o infer<strong>en</strong>cia difusa y <strong>de</strong>fuzificación.
La variable <strong>de</strong> <strong>en</strong>trada Temperatura que es <strong>la</strong> temperatura que actualm<strong>en</strong>te esta<br />
midi<strong>en</strong>do el sistema, consta <strong>de</strong> los sigui<strong>en</strong>tes conjuntos difusos: Frío, Temp<strong>la</strong>do,<br />
Ambi<strong>en</strong>te, Tibio y Cali<strong>en</strong>te.<br />
Fig. 6. Conjuntos difusos <strong>de</strong> <strong>la</strong> variable <strong>de</strong> <strong>en</strong>trada Temperatura<br />
Fig. 7. Conjuntos difusos <strong>de</strong> <strong>la</strong> variable <strong>de</strong> <strong>en</strong>trada Error<br />
Fuzificación. Proceso <strong>de</strong> convertir los valores <strong>de</strong> <strong>en</strong>trada a grados <strong>de</strong> pert<strong>en</strong><strong>en</strong>cia<br />
<strong>de</strong> uno o varios conjuntos difusos. Cada grado <strong>de</strong> pert<strong>en</strong><strong>en</strong>cia es asociado con una<br />
función <strong>de</strong> membresía particu<strong>la</strong>r.
Para nuestro sistema t<strong>en</strong>emos dos variables <strong>de</strong> <strong>en</strong>trada (Temperatura y Error) y una<br />
variable <strong>de</strong> salida (V<strong>en</strong>ti<strong>la</strong>dor).<br />
La otra variable <strong>de</strong> <strong>en</strong>trada que es el Error (Error = temperatura <strong>de</strong>seada (setpoint)<br />
– temperatura actual). Consta <strong>de</strong> los sigui<strong>en</strong>tes conjuntos difusos: NG (negativo<br />
gran<strong>de</strong>), NM (negativo mediano), NP (negativo pequeño), PP (positivo pequeño), PM<br />
(positivo mediano) y PG (positivo gran<strong>de</strong>).<br />
Y como salida <strong>de</strong> nuestro contro<strong>la</strong>dor difuso t<strong>en</strong>emos <strong>la</strong> variable V<strong>en</strong>ti<strong>la</strong>dor que<br />
conti<strong>en</strong>e los sigui<strong>en</strong>tes conjuntos difusos: vfrío, vcali<strong>en</strong>te y vmuycali<strong>en</strong>te.<br />
Fig. 8. Conjuntos difusos <strong>de</strong> <strong>la</strong> variable <strong>de</strong> salida V<strong>en</strong>ti<strong>la</strong>dor<br />
Evaluación <strong>de</strong> reg<strong>la</strong>s (Infer<strong>en</strong>cia difusa). Determina que tan bi<strong>en</strong> <strong>la</strong>s condiciones <strong>de</strong><br />
cada reg<strong>la</strong> son satisfechas. Durante ciertos estados, <strong>la</strong> condición <strong>de</strong> algunas reg<strong>la</strong>s son<br />
más satisfactorias que otras, <strong>de</strong> este modo, haci<strong>en</strong>do <strong>la</strong>s reg<strong>la</strong>s más aplicables que<br />
otras. En esta etapa se <strong>de</strong>be <strong>de</strong> establecer una serie <strong>de</strong> reg<strong>la</strong>s <strong>de</strong> <strong>la</strong> forma SI –<br />
ENTONCES para indicar <strong>la</strong> acción a realizar <strong>en</strong> función <strong>de</strong>l conjunto al que pert<strong>en</strong>ece<br />
<strong>la</strong> <strong>en</strong>trada al sistema.<br />
Una unidad <strong>de</strong> infer<strong>en</strong>cia difusa consiste <strong>en</strong> un conjunto <strong>de</strong> variables <strong>de</strong> <strong>en</strong>trada, un<br />
conjunto <strong>de</strong> variables <strong>de</strong> salida y un mecanismo para <strong>la</strong> ejecución <strong>de</strong> un conjunto <strong>de</strong><br />
reg<strong>la</strong>s difusas.<br />
De <strong>la</strong> tab<strong>la</strong> 1 po<strong>de</strong>mos observar el comportami<strong>en</strong>to que ti<strong>en</strong>e <strong>la</strong> variable <strong>de</strong> salida<br />
v<strong>en</strong>ti<strong>la</strong>dor con respecto a <strong>la</strong>s variables <strong>de</strong> <strong>en</strong>trada Temperatura y Error.<br />
Analizando <strong>la</strong> tab<strong>la</strong> po<strong>de</strong>mos <strong>de</strong>ducir <strong>la</strong> reg<strong>la</strong>s difusas que va a t<strong>en</strong>er el contro<strong>la</strong>dor<br />
difuso, por ejemplo, si t<strong>en</strong>emos que <strong>la</strong> temperatura es temp<strong>la</strong>da y el error es negativo<br />
gran<strong>de</strong> <strong>en</strong>tonces el v<strong>en</strong>ti<strong>la</strong>dor t<strong>en</strong>drá que estar <strong>en</strong>c<strong>en</strong>dido <strong>en</strong> frío. A continuación se<br />
muestra <strong>la</strong> reg<strong>la</strong> difusa: if (Temperatura is Temp<strong>la</strong>do) and (Error is NG) th<strong>en</strong><br />
(V<strong>en</strong>ti<strong>la</strong>dor is frío).
Temperatura<br />
Error<br />
Tab<strong>la</strong> 1. Comportami<strong>en</strong>to <strong>de</strong> <strong>la</strong> variable <strong>de</strong> salida V<strong>en</strong>ti<strong>la</strong>dor.<br />
Frío Temp<strong>la</strong>do Ambi<strong>en</strong>te Tibio Cali<strong>en</strong>te<br />
NG apagado vfrio vfrio vfrio vfrio<br />
NM apagado vfrio vfrio vfrio vfrio<br />
NP apagado vfrio vfrio vfrio vfrio<br />
PP vcali<strong>en</strong>te vcali<strong>en</strong>te vcali<strong>en</strong>te vcali<strong>en</strong>te apagado<br />
PM vmuycali<strong>en</strong>te vcali<strong>en</strong>te vcali<strong>en</strong>te vcali<strong>en</strong>te apagado<br />
PG vmuycali<strong>en</strong>te vmuycali<strong>en</strong>te vcali<strong>en</strong>te vcali<strong>en</strong>te apagado<br />
En <strong>la</strong> Figura 9 se muestran <strong>la</strong>s reg<strong>la</strong>s difusas.<br />
Fig. 9. Reg<strong>la</strong>s difusas<br />
Defuzificación. La <strong>de</strong>fuzificación <strong>de</strong> <strong>la</strong>s salidas consiste <strong>en</strong> obt<strong>en</strong>er un valor<br />
numérico para cada una <strong>de</strong> <strong>la</strong>s salidas <strong>de</strong>l sistema a partir <strong>de</strong> los conjuntos difusos a<br />
los que pert<strong>en</strong>ec<strong>en</strong>.<br />
4 Desarrollo <strong>de</strong>l sistema<br />
La interfaz <strong>de</strong>l sistema está si<strong>en</strong>do <strong>de</strong>sarrol<strong>la</strong>da <strong>en</strong> l<strong>en</strong>guaje <strong>de</strong> programación Java, <strong>la</strong><br />
comunicación se llevará a cabo vía remota <strong>en</strong>tre el cli<strong>en</strong>te y el servidor. Del <strong>la</strong>do <strong>de</strong>l<br />
cli<strong>en</strong>te se ti<strong>en</strong>e una aplicación in<strong>de</strong>p<strong>en</strong>di<strong>en</strong>te.
Mo<strong>de</strong><strong>la</strong>do.- Diagrama G<strong>en</strong>eral <strong>de</strong> Casos <strong>de</strong> Usos<br />
TT486<br />
Validar <strong>en</strong>trada <strong>de</strong> Usuario<br />
Usuario<br />
Contro<strong>la</strong>r<br />
Internet<br />
Monitorear<br />
<br />
Diagrama <strong>de</strong> Casos <strong>de</strong> Uso <strong>de</strong> “Monitorear”<br />
<br />
Usuario<br />
Consultar Datos<br />
Internet<br />
Imprimir Informe<br />
<br />
Diagrama <strong>de</strong> Casos <strong>de</strong> Uso <strong>de</strong> “Contro<strong>la</strong>r”<br />
<br />
<br />
Recibir dato <strong>de</strong> Temperatura<br />
Modificar Estado <strong>de</strong>l V<strong>en</strong>ti<strong>la</strong>dor<br />
V<strong>en</strong>ti<strong>la</strong>dor<br />
Usuario<br />
Modificar dato<br />
Recibir dato <strong>de</strong> Iluminación<br />
Modificar Estado <strong>de</strong>l Foco<br />
Foco<br />
En <strong>la</strong> figura 10 se pue<strong>de</strong> observar <strong>la</strong> salida <strong>de</strong>l contro<strong>la</strong>dor difuso, empleando el<br />
método <strong>de</strong> <strong>de</strong>fuzificación c<strong>en</strong>troi<strong>de</strong> o c<strong>en</strong>tro <strong>de</strong> gravedad.
Fig. 10. Defuzificación.<br />
5 Resultados y conclusiones<br />
Al termino <strong>de</strong>l trabajo terminal se obt<strong>en</strong>drá un prototipo <strong>de</strong> un sistema, por el cual, se<br />
monitorearán y contro<strong>la</strong>rán algunas variables físicas, <strong>en</strong> este caso, iluminación y<br />
temperatura vía remota, es <strong>de</strong>cir, un usuario mediante una computadora que t<strong>en</strong>ga<br />
conexión a Internet podrá acce<strong>de</strong>r al sistema mediante una aplicación in<strong>de</strong>p<strong>en</strong>di<strong>en</strong>te,<br />
ésta cont<strong>en</strong>drá un m<strong>en</strong>ú con <strong>la</strong>s opciones <strong>de</strong> consultar y modificar <strong>la</strong> iluminación o<br />
temperatura <strong>de</strong> una habitación. Si el usuario elige <strong>la</strong> opción <strong>de</strong> consultar, el sistema<br />
<strong>en</strong>viará un reporte g<strong>en</strong>eral acerca <strong>de</strong>l estado <strong>de</strong> <strong>la</strong> iluminación o temperatura <strong>de</strong> <strong>la</strong>s<br />
habitaciones <strong>de</strong>l lugar.<br />
Ahora bi<strong>en</strong>, si elige modificar se mostrará un subm<strong>en</strong>ú con <strong>la</strong>s opciones <strong>de</strong><br />
temperatura o iluminación. Por medio <strong>de</strong> este subm<strong>en</strong>ú se podrán <strong>en</strong>c<strong>en</strong><strong>de</strong>r o apagar<br />
<strong>la</strong>s luces <strong>de</strong> cualquier habitación o modificar <strong>la</strong> temperatura a <strong>la</strong> comodidad <strong>de</strong>l<br />
usuario.<br />
Refer<strong>en</strong>cias<br />
[1] Tesis: “Implem<strong>en</strong>tación <strong>de</strong> un sistema <strong>de</strong> infer<strong>en</strong>cia adaptable neuro – difuso para el control<br />
intelig<strong>en</strong>te <strong>de</strong> un sistema <strong>de</strong> riego por goteo <strong>de</strong> un inverna<strong>de</strong>ro a través <strong>de</strong> una red”. Con re<br />
conocimi<strong>en</strong>to <strong>de</strong> vali<strong>de</strong>z oficial según acuerdo número 933068.<br />
[2] Sistema <strong>de</strong> Control Vía WEB "Home Automatization". Consiste <strong>en</strong> el diseño <strong>de</strong> un sistema<br />
<strong>de</strong> control <strong>de</strong> seguridad vía Web utilizando <strong>la</strong> tecnología Linux mediante una PC.<br />
[3] http://www.ibutton.com/TINI/<br />
[4] http://www.maxim-ic.com<br />
[5] http://www.national.com
Verificador <strong>de</strong> circuitos lógicos<br />
Reyes Ríos Cabrera 1 , Ricardo Chaparro Sánchez 2 , Rafael Urretabizkaya Garbus 2<br />
1<br />
CIATEQ A.C. C<strong>en</strong>tro <strong>de</strong> Tecnología Avanzada,<br />
Manantiales 23ª, Fracc. Ind. B.Q., 76246, Querétaro,<br />
<strong>México</strong><br />
2 Facultad <strong>de</strong> Informática, Universidad Autónoma <strong>de</strong> Querétaro<br />
Cerro <strong>de</strong> <strong>la</strong>s Campanas, 76010, Querétaro,<br />
<strong>México</strong><br />
rchapa@uaq.mx, reyes.rios@ieee.org<br />
Resum<strong>en</strong>. El artículo pres<strong>en</strong>ta un verificador <strong>de</strong> circuitos lógicos, con<br />
capacidad para probar circuitos digitales <strong>de</strong> <strong>la</strong>s familias estándar TTL y CMOS.<br />
Con este verificador se resuelve el problema <strong>de</strong> diagnóstico <strong>de</strong> circuitos<br />
dañados que existe <strong>en</strong> los <strong>la</strong>boratorios <strong>de</strong> electrónica <strong>de</strong> <strong>la</strong>s escue<strong>la</strong>s, así como<br />
también <strong>en</strong> instituciones <strong>de</strong> investigación, constituy<strong>en</strong>do con una propuesta que<br />
aporta b<strong>en</strong>eficios como bajo costo, fácil mant<strong>en</strong>imi<strong>en</strong>to, manejo y esca<strong>la</strong>ble.<br />
Consta <strong>de</strong> dos partes un dispositivo electrónico y un software. Es <strong>de</strong> fácil<br />
manejo y cu<strong>en</strong>ta con elem<strong>en</strong>tos como consulta <strong>de</strong> diagramas y temas <strong>de</strong> ayuda,<br />
a<strong>de</strong>más <strong>de</strong> ser expandible.<br />
1 Introducción<br />
En los <strong>la</strong>boratorios <strong>de</strong> pruebas con el uso y el paso <strong>de</strong>l tiempo, los circuitos lógicos<br />
sufr<strong>en</strong> <strong>de</strong>terioros o daños totales afectando directam<strong>en</strong>te el funcionami<strong>en</strong>to <strong>de</strong><br />
prácticas y proyectos realizados. Por ello, es <strong>de</strong> gran importancia conocer el estado <strong>de</strong><br />
los circuitos antes <strong>de</strong> usarse o <strong>en</strong> el proceso <strong>de</strong> uso para <strong>de</strong>tectar los errores que<br />
provocan, y con esto asegurar un funcionami<strong>en</strong>to correcto <strong>de</strong> lo que se esté haci<strong>en</strong>do.<br />
Se han <strong>de</strong>sarrol<strong>la</strong>do muchos instrum<strong>en</strong>tos y equipos que verifican los circuitos<br />
lógicos, sin embargo ti<strong>en</strong><strong>en</strong> algunas <strong>de</strong>sv<strong>en</strong>tajas importantes como el <strong>de</strong>sarrol<strong>la</strong>do por<br />
D. M Brewer [1], don<strong>de</strong> utiliza dos microprocesadores Zilog y varios periféricos,<br />
elevando su complejidad tanto <strong>de</strong> construcción como <strong>de</strong> programación, g<strong>en</strong>erando<br />
que el mant<strong>en</strong>imi<strong>en</strong>to sea complejo y que sólo algui<strong>en</strong> especializado pueda repararlo.<br />
La propuesta pres<strong>en</strong>tada resuelve el problema <strong>de</strong> forma s<strong>en</strong>cil<strong>la</strong>, ya que el programa<br />
resi<strong>de</strong> <strong>en</strong> una PC. Al hacer todos los procesos se ejecut<strong>en</strong> <strong>en</strong> <strong>la</strong> computadora, <strong>la</strong><br />
complejidad <strong>de</strong> <strong>la</strong> programación y <strong>de</strong>l diseño electrónico se reduce<br />
consi<strong>de</strong>rablem<strong>en</strong>te, aportando v<strong>en</strong>tajas como gran cantidad <strong>de</strong> memoria, velocidad <strong>de</strong><br />
procesami<strong>en</strong>to y un ambi<strong>en</strong>te gráfico amigable.<br />
Algunas <strong>de</strong> <strong>la</strong>s características que pres<strong>en</strong>ta éste verificador son:<br />
• Es seguro, dado que cu<strong>en</strong>ta con protecciones <strong>en</strong> el hardware que garantizan que no<br />
se daña el verificador por errores <strong>en</strong> el manejo o <strong>de</strong>scuidos <strong>de</strong>l usuario.
• Es flexible y esca<strong>la</strong>ble, que pue<strong>de</strong> adaptarse fácilm<strong>en</strong>te para probar gran cantidad<br />
<strong>de</strong> familias lógicas. Ti<strong>en</strong>e un manejo s<strong>en</strong>cillo, ti<strong>en</strong>e una interfaz <strong>de</strong> software para<br />
el usuario que cu<strong>en</strong>ta con difer<strong>en</strong>tes elem<strong>en</strong>tos amigables y s<strong>en</strong>cillos.<br />
2 Desarrollo<br />
El sistema consta <strong>de</strong> un dispositivo electrónico que se conecta a <strong>la</strong> computadora y un<br />
software que lo contro<strong>la</strong>, <strong>en</strong> esta sección se <strong>de</strong>scrib<strong>en</strong> ambas.<br />
En <strong>la</strong> figura 1, se muestra un diagrama g<strong>en</strong>eral <strong>de</strong>l sistema.<br />
Fig. 1. Verificador <strong>de</strong> circuitos lógicos<br />
El <strong>de</strong>sarrollo se <strong>de</strong>scribe a partir <strong>de</strong> un p<strong>la</strong>nteami<strong>en</strong>to g<strong>en</strong>eral <strong>de</strong> funcionami<strong>en</strong>to.<br />
La i<strong>de</strong>a se basa <strong>en</strong> tras<strong>la</strong>dar <strong>la</strong> complejidad <strong>de</strong> programación y electrónica a <strong>la</strong><br />
computadora t<strong>en</strong>i<strong>en</strong>do así mejores herrami<strong>en</strong>tas y más b<strong>en</strong>eficios; reduci<strong>en</strong>do <strong>la</strong><br />
complejidad y costo, tanto <strong>de</strong> <strong>de</strong>sarrollo, como <strong>de</strong> mant<strong>en</strong>imi<strong>en</strong>to <strong>de</strong>l verificador,<br />
haci<strong>en</strong>do más fácil llevar a cabo versiones futuras, <strong>de</strong>bido a que se tras<strong>la</strong>da el<br />
problema a exclusiva programación <strong>en</strong> <strong>la</strong> PC, lo que hace posible un fácil<br />
crecimi<strong>en</strong>to.<br />
2.1 Dispositivo electrónico<br />
El dispositivo se <strong>de</strong>scribe a partir <strong>de</strong>l hardware, <strong>de</strong> <strong>la</strong>s tareas y <strong>la</strong> comunicación con <strong>la</strong><br />
PC.<br />
2.1.1 Hardware. Se le consi<strong>de</strong>ra una interfaz intelig<strong>en</strong>te y está formada por dos<br />
microcontro<strong>la</strong>dores (M1 y M2), los cuales, por medio <strong>de</strong> comunicación serial, se<br />
configuran y contro<strong>la</strong>n por completo <strong>de</strong>s<strong>de</strong> una PC. La interfaz intelig<strong>en</strong>te ti<strong>en</strong>e <strong>la</strong><br />
característica <strong>de</strong> po<strong>de</strong>rse configurar como se <strong>de</strong>see ya sean <strong>en</strong>tradas o salidas digitales<br />
<strong>en</strong> cada una <strong>de</strong> sus terminales a<strong>de</strong>más <strong>de</strong> escribirse y leerse <strong>de</strong> <strong>la</strong> misma forma sin<br />
restricciones, t<strong>en</strong>i<strong>en</strong>do <strong>la</strong> función <strong>de</strong> un puerto configurable.<br />
Una vez hecho el análisis <strong>de</strong> los circuitos digitales se consi<strong>de</strong>raron los sigui<strong>en</strong>tes<br />
requerimi<strong>en</strong>tos:<br />
• Voltajes <strong>de</strong> 0V y 5V para marcar el cero y uno lógico respectivam<strong>en</strong>te.<br />
• 30 líneas Configurables como <strong>en</strong>tradas o salidas digitales in<strong>de</strong>p<strong>en</strong>di<strong>en</strong>tes.
• Puerto <strong>de</strong> comunicación.<br />
A partir <strong>de</strong> los cuales se <strong>de</strong>cidió usar el microcontro<strong>la</strong>dor PIC16F877 <strong>de</strong> <strong>la</strong> marca<br />
Microchip [2], ya que cumple con <strong>la</strong>s características.<br />
El diagrama g<strong>en</strong>eral <strong>de</strong>l sistema, figura 2, cu<strong>en</strong>ta con dos microcontro<strong>la</strong>dores<br />
comunicados con una PC por medio <strong>de</strong> un bus serial (USART), un arreglo <strong>de</strong> buffers<br />
y una base <strong>de</strong> fuerza <strong>de</strong> inserción nu<strong>la</strong>.<br />
PC<br />
M1<br />
P<br />
U<br />
E<br />
R<br />
T<br />
O<br />
S<br />
B<br />
U<br />
F<br />
F<br />
E<br />
R<br />
S<br />
dato<br />
Base <strong>de</strong><br />
fuerza <strong>de</strong><br />
inserción<br />
nu<strong>la</strong><br />
M2<br />
Comunicación serial<br />
Fig. 2. Bloques <strong>de</strong>l sistema<br />
El arreglo <strong>de</strong> buffers configurables como <strong>en</strong>tradas o salidas, se colocan don<strong>de</strong> los<br />
circuitos requier<strong>en</strong> <strong>en</strong>ergía, <strong>de</strong> modo que el circuito <strong>de</strong> prueba se <strong>en</strong>cu<strong>en</strong>tre siempre<br />
<strong>en</strong>ergizado por alguno <strong>de</strong> ellos, esto porque los microcontro<strong>la</strong>dores no proporcionan<br />
<strong>la</strong> sufici<strong>en</strong>te corri<strong>en</strong>te para alim<strong>en</strong>tar los circuitos.<br />
Cada uno <strong>de</strong> los buffers conectados funcionan <strong>de</strong> <strong>la</strong> sigui<strong>en</strong>te forma, figura 3.<br />
C=0 salida<br />
C=1 <strong>en</strong>trada<br />
Fig. 3. Arreglo <strong>de</strong> Buffers<br />
2.1.2 Tareas. M1 se <strong>en</strong>carga <strong>de</strong> <strong>la</strong>s lecturas y escrituras <strong>en</strong> <strong>la</strong> base <strong>de</strong> prueba, M2<br />
configura los buffers para <strong>de</strong>terminar <strong>la</strong> función ya sea salida o <strong>en</strong>trada, figura 3, con<br />
respecto a M1.<br />
De <strong>la</strong>s 33 líneas <strong>de</strong> E/S digitales, que suman los puertos <strong>de</strong> M1; 2 se usan para <strong>la</strong><br />
comunicación serial, 30 se distribuy<strong>en</strong> 15 y 15 <strong>en</strong> <strong>la</strong> base <strong>de</strong> fuerza <strong>de</strong> inserción nu<strong>la</strong> y<br />
una más para un led indicador.<br />
Los puertos <strong>de</strong> M1 se ord<strong>en</strong>an A, B, E, C, D, figura 4. Los puertos <strong>de</strong> M2 no se<br />
usan <strong>en</strong> su totalidad, sólo se usa el puerto B y D, que es con los que se configuran los<br />
buffers, y el resto es para esca<strong>la</strong>mi<strong>en</strong>to <strong>de</strong>l dispositivo.
Fig. 4. Base <strong>de</strong> prueba.<br />
2.1.3 Comunicación y operaciones básicas. La computadora hace <strong>la</strong> petición <strong>de</strong> lo<br />
que necesita, <strong>en</strong>vía un 0 para hacer una petición <strong>de</strong> lectura y un 1 para <strong>la</strong> escritura a <strong>la</strong><br />
interfaz intelig<strong>en</strong>te. Al escribir M1 recibe dos bytes, el primero indica <strong>la</strong> dirección y<br />
el segundo el dato, figura 5a. Al leer se recibe un byte, que indica <strong>la</strong> dirección <strong>de</strong> <strong>la</strong><br />
cual el M1 <strong>de</strong>be leer y regresar a <strong>la</strong> computadora el valor que se <strong>en</strong>cu<strong>en</strong>tre <strong>en</strong> esa<br />
dirección, figura 5b.<br />
Fig. 5. Gráfica <strong>de</strong> <strong>la</strong>s operaciones (sin protocolo).<br />
La comunicación se llevo a cabo por medio <strong>de</strong>l puerto USART <strong>de</strong> <strong>la</strong> interfaz<br />
intelig<strong>en</strong>te, configurada a una frecu<strong>en</strong>cia <strong>de</strong> 19200 bps, usando <strong>la</strong> norma RS232.<br />
Utiliza un protocolo <strong>de</strong> tres o cuatro bytes según <strong>la</strong> función, utilizando como byte <strong>de</strong><br />
inicio, el código ASCII <strong>de</strong> <strong>la</strong> diagonal, los bytes <strong>de</strong> datos y como fin <strong>de</strong> trama el<br />
código <strong>de</strong> <strong>la</strong> diagonal invertida, figura 6.<br />
Fig. 6. Protocolo <strong>de</strong> comunicación<br />
El protocolo es el mismo para los dos microcontro<strong>la</strong>dores M1 y M2, lo que hace <strong>la</strong><br />
difer<strong>en</strong>cia es un bit <strong>de</strong> paridad <strong>en</strong>viado, <strong>de</strong> esta forma se <strong>de</strong>fine cual microcontro<strong>la</strong>dor<br />
es el que ti<strong>en</strong>e que hacer <strong>la</strong> operación, 0 para el M1 y 1 para el M2 (marca y espacio<br />
respectivam<strong>en</strong>te).<br />
2.1.4 Seguridad. El hardware está protegido contra cortos circuitos <strong>en</strong>tre el circuito<br />
<strong>de</strong> prueba y <strong>la</strong> interfaz intelig<strong>en</strong>te por medio <strong>de</strong> resist<strong>en</strong>cias <strong>de</strong> 470Ω que manti<strong>en</strong><strong>en</strong> a<br />
los microcontro<strong>la</strong>dores con una impedancia constante, aun si los voltajes no<br />
coincid<strong>en</strong>.
El verificador es el sigui<strong>en</strong>te, figura 7<br />
Fig. 7. Verificador <strong>de</strong> Circuitos lógicos.<br />
2.2 Descripción <strong>de</strong>l software<br />
El software diseñado fue escrito <strong>en</strong> el l<strong>en</strong>guaje C++ Buil<strong>de</strong>r, [3] y [4], éste cu<strong>en</strong>ta con<br />
varias opciones, figura 8.<br />
Hojas <strong>de</strong> Datos<br />
SISTEMA<br />
Ayuda<br />
Configuración<br />
Agregar librería<br />
Verificación<br />
Fig. 8. Cont<strong>en</strong>ido <strong>de</strong> <strong>la</strong> Interfaz <strong>de</strong> Software<br />
La primera opción nos muestra <strong>la</strong>s hojas <strong>de</strong> datos <strong>de</strong> los circuitos <strong>de</strong> <strong>la</strong> familia<br />
TTL, <strong>en</strong> formato PDF, así como otros diagramas <strong>de</strong> uso común [5] y [6].<br />
La parte <strong>de</strong> ayuda seña<strong>la</strong> todos los procedimi<strong>en</strong>tos importantes <strong>en</strong> el sistema así<br />
como <strong>la</strong> interpretación <strong>de</strong> resultados y los pasos para llevar a cabo <strong>la</strong> reparación <strong>de</strong>l<br />
verificador.<br />
La sección <strong>de</strong> configuración nos permite fijar <strong>la</strong> frecu<strong>en</strong>cia <strong>de</strong> trabajo y el puerto<br />
<strong>de</strong> comunicación con el dispositivo verificador (puertos COM1 ó COM2).<br />
2.2.1 Agregar librerías. Las librerías <strong>de</strong> los circuitos <strong>de</strong> prueba son archivos que usa<br />
el sistema cuando lleva a cabo <strong>la</strong> verificación <strong>de</strong>l funcionami<strong>en</strong>to. Maneja una librería<br />
por circuito, y esta conti<strong>en</strong>e valores y características particu<strong>la</strong>res.<br />
Las librerías están guardadas <strong>de</strong> acuerdo a <strong>la</strong>s operaciones que los circuitos<br />
necesitan <strong>de</strong> <strong>en</strong>trada y lo que se espera <strong>de</strong> respuesta, distribuidas <strong>en</strong> forma <strong>de</strong><br />
vectores, don<strong>de</strong> si el circuito cu<strong>en</strong>ta con 14 pines será un vector <strong>de</strong> 14 posiciones. En<br />
cada vector se <strong>en</strong>cu<strong>en</strong>tran los valores lógicos que <strong>de</strong>terminan todas combinaciones<br />
necesarias para su funcionami<strong>en</strong>to.
Tab<strong>la</strong> 5. Cont<strong>en</strong>ido <strong>de</strong> <strong>la</strong>s librerías<br />
Ejemplo para el circuito SN74LS14, figura 9.<br />
Fig. 9. Interfaz para agregar tab<strong>la</strong>s lógicas<br />
El software necesita como <strong>en</strong>trada el nombre <strong>de</strong>l circuito y los datos m<strong>en</strong>cionados,<br />
tab<strong>la</strong> 1. Cuando se ingresa <strong>la</strong> tab<strong>la</strong> lógica, un cero indica que es <strong>en</strong>trada <strong>en</strong> el circuito<br />
<strong>de</strong> prueba y un uno que es salida. Los microcontro<strong>la</strong>dores no cu<strong>en</strong>tan con datos, son<br />
únicam<strong>en</strong>te una interfaz intelig<strong>en</strong>te que sirve <strong>de</strong> intermediario <strong>en</strong>tre el circuito <strong>de</strong><br />
prueba y <strong>la</strong> computadora.<br />
Fig. 10. Bloques <strong>de</strong> <strong>la</strong> verificación <strong>de</strong> un circuito<br />
2.2.2 Verificación <strong>de</strong> funcionami<strong>en</strong>to. El primer paso es configurar M2, don<strong>de</strong> se<br />
<strong>de</strong>fine el funcionami<strong>en</strong>to <strong>de</strong> los buffers (<strong>en</strong>trada o salida con respecto a M1), figura<br />
10, obt<strong>en</strong>i<strong>en</strong>do los valores <strong>de</strong> <strong>la</strong> librería <strong>de</strong>l circuito que se esté probando.<br />
Después se configura M1, <strong>de</strong>terminando <strong>la</strong>s terminales como <strong>en</strong>tradas o salidas<br />
para que coincidan con el circuito <strong>de</strong> prueba y <strong>en</strong> base a ello hacer <strong>la</strong> verificación.
Una vez hecha <strong>la</strong> configuración comi<strong>en</strong>za un ciclo terminando hasta que <strong>la</strong> tab<strong>la</strong><br />
lógica <strong>de</strong>l circuito es aplicada a éste <strong>en</strong> su totalidad. El procedimi<strong>en</strong>to <strong>de</strong> aplicación<br />
<strong>de</strong> <strong>la</strong> tab<strong>la</strong> lógica se basa <strong>en</strong> <strong>la</strong>s operaciones <strong>de</strong>finidas <strong>de</strong> lectura y escritura, tomando<br />
<strong>la</strong> tab<strong>la</strong> lógica por bloques y distribuyéndo<strong>la</strong> <strong>en</strong> <strong>la</strong> base <strong>de</strong> fuerza <strong>de</strong> inserción nu<strong>la</strong> por<br />
medio <strong>de</strong> M1, escribi<strong>en</strong>do cada vector, ley<strong>en</strong>do <strong>la</strong>s respuestas <strong>de</strong>l circuito y<br />
comparando con resultados esperados. Finalm<strong>en</strong>te muestra los resultados <strong>en</strong> <strong>la</strong><br />
interfaz <strong>de</strong>l software.<br />
2.2.3 Opciones <strong>de</strong> prueba. Son dos una activa y pasiva; La primera consiste <strong>en</strong> una<br />
verificación constante e in<strong>de</strong>finida, finaliza cuando el usuario lo <strong>de</strong>cida. La pasiva es<br />
sólo una escritura y lectura <strong>de</strong> <strong>la</strong> aplicación <strong>de</strong> <strong>la</strong> tab<strong>la</strong> lógica usándose una so<strong>la</strong> vez,<br />
<strong>de</strong>terminando así el estado <strong>de</strong>l circuito.<br />
2.3 Análisis <strong>de</strong> resultados<br />
El verificador g<strong>en</strong>eral <strong>de</strong> circuitos lógicos <strong>de</strong>sarrol<strong>la</strong>do logró obt<strong>en</strong>er <strong>de</strong> 100 pruebas<br />
activas realizadas a difer<strong>en</strong>tes circuitos, 100 aciertos, a<strong>de</strong>más <strong>de</strong> otras 100 pasivas<br />
don<strong>de</strong> se obtuvieron resultados satisfactorios.<br />
En el peor <strong>de</strong> los casos (don<strong>de</strong> <strong>la</strong> tab<strong>la</strong> es muy gran<strong>de</strong>) se obti<strong>en</strong>e un tiempo <strong>de</strong><br />
prueba <strong>de</strong> 15 segundos, mi<strong>en</strong>tras que el tiempo promedio es <strong>de</strong> 3 segundos por<br />
compuerta.<br />
Fig. 11. Interfaz para <strong>la</strong> <strong>de</strong> verificación.<br />
Actualm<strong>en</strong>te se está trabajando <strong>en</strong> una tercera etapa, don<strong>de</strong> el proyecto, podrá<br />
id<strong>en</strong>tificar los dispositivos automáticam<strong>en</strong>te; también se modificará para llevar a cabo<br />
<strong>la</strong> prueba y programación <strong>de</strong> memorias y arreglos lógicos, ya que t<strong>en</strong>i<strong>en</strong>do <strong>la</strong>s bases<br />
actuales, sólo basta agregar librerías <strong>en</strong> el formato establecido para llevar a cabo <strong>la</strong><br />
programación o verificación que se <strong>de</strong>see.
3 Conclusiones<br />
Se ha <strong>de</strong>sarrol<strong>la</strong>do un sistema verificador <strong>de</strong> circuitos lógicos, que resuelve el mismo<br />
problema que otros mo<strong>de</strong>los comerciales [7], pero a un costo mucho m<strong>en</strong>or, a<strong>de</strong>más<br />
<strong>de</strong> que para su mant<strong>en</strong>imi<strong>en</strong>to no se requier<strong>en</strong> conocimi<strong>en</strong>tos avanzados.<br />
Refer<strong>en</strong>cias<br />
1. PC BASED TESTER FOR TTL & CMOS LOGIC DEVICES Writt<strong>en</strong> & Designed by D.<br />
M. Brewer 1996. http://freespace.virgin.net/darr<strong>en</strong>.brewer/project.htm<br />
2. Microchip Data Sheet PIC16F87X, 28/40-Pin 8-Bit CMOS FLASH microntroles.<br />
3. Chirs H. Pappas, William H. Murray III “Manual <strong>de</strong> Bor<strong>la</strong>nd C++ 4.0”, McGraw-Hill,<br />
1997.<br />
4. Francisco Charte, “Programación con C++ Buil<strong>de</strong>r 5”, Anaya Multimedia<br />
5. Data Sheet Book 2 - J. P. M. Steeman, 1988, Elektuur B.V., Beek L, Nether<strong>la</strong>nds,<br />
reproduksi dan distribusi Indonesia: 1989, PT. Elex Media Komputindo, Jakarta<br />
Indonesia.<br />
6. Texas Instrum<strong>en</strong>ts, “Logic Selection Gui<strong>de</strong> and Databook CD-ROM”, Advanced System<br />
Logic Products, January 1997.<br />
7. Jameco Electronics, “Linear IC Tester”, Octubre – January 2001-2002, Belmont California<br />
U.S.A.
Índice <strong>de</strong> autores<br />
Alor Hernán<strong>de</strong>z, Giner 56, 68<br />
Alvarado, Matías 38<br />
Bolshakov, Igor A. 105<br />
Cal<strong>de</strong>rón Sambarino, Ma. Julia 167<br />
Carreño Bernal, Osiris 184<br />
Castro Sánchez, Noé Alejandro 105<br />
Chaparro Sánchez, Ricardo 194<br />
Cristal, Adrian 144<br />
Díaz <strong>de</strong> León, Juan Luis 1<br />
Domínguez Butrón, Luis Topiltzin 30<br />
Espinosa Sosa, Osvaldo 176<br />
Flores Cruz, Abigail 128<br />
García Ortega, Victor Hugo 30, 176, 184<br />
García Rojas, Br<strong>en</strong>da 184<br />
Gelbukh, Alexan<strong>de</strong>r 99<br />
G<strong>en</strong>is Triana, Carlos 155<br />
González Rodríguez, Luciano 30<br />
González Solís, Kar<strong>en</strong> <strong>de</strong> Jesús 184<br />
Gutiérrez Arias, Emilio 48<br />
Hernán<strong>de</strong>z, Eric 117<br />
Martínez Mestas, Adriana 128<br />
Martínez, Jorge 38<br />
Mata, Miguel F. 19<br />
M<strong>en</strong>chaca Mén<strong>de</strong>z, Ro<strong>la</strong>ndo 48<br />
Montes-y-Gómez, Manuel 89<br />
Mor<strong>en</strong>o, Marco 1<br />
Noriega Mor<strong>en</strong>o, Pao<strong>la</strong> 184<br />
Olán Cristóbal, Wilbert A. 99<br />
Olmedo Aguirre, José Oscar 56, 68<br />
Pacheco González, Alberto 80<br />
Quintero, Ro<strong>la</strong>ndo 1<br />
Ríos Cabrera, Reyes 194<br />
Rodríguez León, Abe<strong>la</strong>rdo 155<br />
Rodríguez, Omar 117<br />
Sandoval Hernán<strong>de</strong>z, César 56, 68<br />
Santana, Oliverio J. 144<br />
Sidorov, Grigori 99<br />
Suárez Guerra, Sergio 167<br />
Téllez Valero, Alberto 89<br />
Torres Ramírez, Leticia E. 128<br />
Torres, Miguel 1, 19<br />
Urretabizkaya Garbos, Rafael 194<br />
Valero, Mateo 144<br />
Vera Félix, José Ángel 105<br />
Vil<strong>la</strong>señor Pineda, Luis 89<br />
Vizcarra González, Yuri 80
Comité editorial <strong>de</strong>l libro<br />
Dra. Sofía Natalia Galicia Haro (CIC-IPN, UNAM, <strong>México</strong>)<br />
Dra. Elizabeth Pérez Cortés (UNAM, <strong>México</strong>)<br />
Dr. Adolfo Guzmán Ar<strong>en</strong>as (CIC-IPN, <strong>México</strong>)<br />
Dr. Alexan<strong>de</strong>r Gelbukh (CIC-IPN, <strong>México</strong>)<br />
Dr. Grigori Sidorov (CIC-IPN, <strong>México</strong>)<br />
Dr. Carlos A. Coello Coello (CINVESTAV, <strong>México</strong>)<br />
Dr. Cuauhtémoc Lemus O<strong>la</strong>l<strong>de</strong> (CIMAT, <strong>México</strong>)<br />
Dr. Andrei Tchernykh (CICESE, USA)<br />
Dr. Sergio Rajsbaum (UNAM, <strong>México</strong>)<br />
Dr. Mario Piattini (UCLM, España)<br />
Dr. José Miguel Alonso (EHU, España)<br />
Dr. Manuel Montes y Gómez (INAOE, <strong>México</strong>)<br />
Dr. António Rito Silva (UTL, Portugal)<br />
Dr. Luis Alberto Pineda Cortés (UNAM, <strong>México</strong>)<br />
Dr. Dominique Decouchant (IMAG, France)<br />
Dr. Aurelio López López (INAOE, <strong>México</strong>)<br />
Dr. Macario Polo Usao<strong>la</strong> (UCLM, España)<br />
Dr. Manuel Palomar (UA, España)<br />
Dr. Arturo Trujillo (Canon Research C<strong>en</strong>tre, Ing<strong>la</strong>terra)<br />
Dr. Anselmo Peñas Padil<strong>la</strong> (UNED, España)<br />
Dr. Erick Cantú Paz (CASC, USA)<br />
Dr. Michel Adiba (IMAG, Francia)<br />
Dr. Leo Joskowicz (HUJI, Israel)<br />
Dr. Carlos Martin Vi<strong>de</strong> (URV, España)<br />
Dr. Paolo Rosso (UPV, España)<br />
Dr. Vic<strong>en</strong>te Pelechano (UPV, España)<br />
Dr. Ralf Steinberger (Joint Research C<strong>en</strong>tre, Italia)<br />
Dr. Oscar Pastor López (UPV, España)<br />
Dr. Daniel Panario (Carleton University, Canada)<br />
Dr. Carlos Gonzalez Ochoa (Purdue University, USA)<br />
MC. Jorge Arnulfo Quiane Ruiz (IMAG, Francia)<br />
MC. Julia Sambarino (CIC-IPN, <strong>México</strong>)<br />
MC. Manuel Mejia Lavalle (IIE, <strong>México</strong>)
<strong>Reci<strong>en</strong>tes</strong> <strong>avances</strong> <strong>en</strong> <strong>la</strong> ci<strong>en</strong>cia <strong>de</strong> <strong>la</strong> <strong>computación</strong> <strong>en</strong> <strong>México</strong><br />
Impreso <strong>en</strong> los Talleres Gráficos<br />
<strong>de</strong> <strong>la</strong> Dirección <strong>de</strong> Publicaciones <strong>de</strong>l<br />
Instituto Politécnico Nacional<br />
Tresguerras 27, C<strong>en</strong>tro Histórico, <strong>México</strong>, DF.<br />
Mayo 2004. Edición: 500 ejemp<strong>la</strong>res.