SlideShare uma empresa Scribd logo
1 de 70
Baixar para ler offline
cenidet
V O L . 1 3V E R A N O 2 0 0 6
Editorial
Estimados Colegas,
La Computer Society, con aproximadamente
100,000 miembros, fue fundada en 1946. Es la
organización líder para los profesionales de las
ciencias computacionales, y la más grande de las
sociedades organizadas por el IEEE.
La Computer Society, fomenta la
comunicación internacional, cooperación y el
intercambio de información. Esta dedicada a la
promoción de la teoría, practica y la aplicación de
la computación en la tecnología del procesamiento
de la información. El Looking Forward es la revista
estudiantil escrita por estudiantes y para
estudiantes de la Computer Society.
Después de una gran esfuerzo, por fin
presentamos la edición número 13 de la revista
electrónica Looking Forward.
Antes de continuar queremos agradecer
la ayuda prestada por los miembros del Capítulo
Estudiantil de Computación del CENIDET, quienes
están muy honrados ser elegidos para producir
esta edición.
Los artículos contenidos en esta revista
abarcan diversos temas, todos relacionados con
los proyectos de tesis de Maestría y Doctorado
que se están desarrollando en el Departamento
de Computación. Particularmente, en la líneas de
investigación como: Ingeniería de Software,
Sistemas Distribuidos e Inteligencia Artificial.
Agradecemos la cooperación de la M.C
Andrea Magadán Salazar por coordinar a todos
los miembros del mismo.
No puedo concluir la editorial sin hacer
un reconocimiento al Prof. Ken Christensen que
con su apoyo y confianza, ha sido posible que el
Capítulo Estudiantil del CENIDET estuviera a
cargo de la presente edición.
Esperamos que en un futuro esta revista
pueda ser agregada al IEEExplore como parte de
la literatura de la Computer Society.
Larga vida al Looking Forward
Jonathan Villanueva Tavira
Jonathan.villanueva@ieee.org
Editor
Director
Ken Christensen,
Associate Profesor,
Department of Computer Science
and Engineering ,
University of South Florida
Editor en Jefe
M.C Andrea Magadán Salazar
Vicepresidenta del Capítulo de
Computación Sección Morelos.
Editores
Jonathan Villanueva Tavira
Rocio Vargas Arroyo
Jorge A. Saldaña García
Colaboradores
Edgar Colorado Soto
Erika M. Nieto Ariza
Francisco Cervantes Álvarez
Hilda Solano Lira
Jorge A. Saldaña García
Juan C. Olivares Rojas
Luis E. Morán López
Maricela C. Bravo Contreras
Michelle Arandine Barrón Vivanco
Osslan O. Vergara Villegas
Rafael I. Ponce Medellín
Rocío Vargas Arroyo
Salvador Cervantes Álvarez
Vianey G. Cruz Sánchez
Miembros del Capítulo Estudiantil de Computación Cenidet
El Centro ofrece la posibilidad de
realizar trabajos de investigación en
convenio con otras instituciones como el
Instituto de Investigaciones Eléctricas y el
Centro de Investigación en Energía; además
existen convenios con importantes
universidades e institutos del extranjero.
CENIDET cuenta con los departa-
mentos de Electrónica , Mecánica ,
Mecatrónica y Ciencias Computacionales
sede del Capitulo Estudiantil de
Computación del IEEE.
El Centro Nacional de Investigación y
Desarrollo Tecnológico, CENIDET, está
ubicado en Cuernavaca, Morelos, ciudad que
se ha convertido en sede de numerosas
instituciones científicas, dedicadas a la
investigación y a la docencia, lo que ha
permitido un intercambio fructífero entre
éstas.
Cuernavaca se beneficia de su
cercanía a la ciudad de México, ya que los
profesores investigadores y los estudiantes
pueden desplazarse fácilmente para participar
o asistir a eventos, intercambiar información,
consultar bibliotecas, recibir asesorías y, en
general, para relacionarse con todas las
actividades que propicien y amplíen el
conocimiento y la creatividad. El Centro,
naturalmente, participa de esta valiosa sinergia.
El CENIDET ofrece sus programas de
posgrado, para egresados de licenciaturas
afines que estén interesados en prepararse
para la investigación aplicada y el desarrollo
tecnológico.
Bienvenidos a CENIDET
Departam ento de Ciencias
Com putacionales
21.
Sumario
1. Editorial.
2. Bienvenidos a CENIDET.
Clasificación de páginas Web :
un análisis semántico.7.
Procesamiento Digital de
Imágenes en el dominio Wavelet.13.
Evaluación de herramientas para
procesos de negocio en tres
niveles de abstracción.
27.
Lenguaje de scrips
para segmentar
Imágenes.
GAP: Una Herramienta para Solucionar el
Problema de la Visualización de Contenidos
Web en Dispositivos Pocket PC.
Recuperación de Información de Páginas
Web mediante una Ontología que es
poblada usando Clasificación Automática
de Textos .
17. 31.
Sumario
Metodología para la generación
de modelos 3D.41.
Los Sistemas Híbridos
Neuro-Simbólicos.35.
Detección de puntos de fuga usando
el teorema de Thales.45.
Segmentación del color para
caracterizar el andar humano.55.
Un Traductor Basado en una
Ontología para Comunicar
Agentes de Negociación en
la Internet.
49.
59.
Descripción de Dos Modelos Estadísticos
Aplicados a la Extracción de Rasgos Faciales:
Modelo de Proyecciones Integrales y Modelo
de Forma Activa.
63. Autores.
Clasificación de páginas Web: un análisis semántico
Rocío Vargas Arroyo, Azucena Montes Rendón
Centro Nacional de Investigación y Desarrollo Tecnológico
{rvargas04c,amr}@cenidet.edu.mx
Abstract
En este artículo se presenta un análisis semántico
para la clasificación de páginas Web. Un conjunto de
páginas Web es categorizado mediante la
desambiguación del significado del término utilizado
para la búsqueda. El conjunto mencionado es
resultado de una consulta simple a un buscador.
El proceso de desambiguación comienza con el
aislamiento de algunos párrafos sobresalientes; los
marcadores lingüísticos son utilizados para realizar
esta tarea. El término buscado es localizado dentro de
los párrafos seleccionados y el Método de Exploración
Contextual aplicado para identificar un conjunto de
palabras que conlleven al descubrimiento de
relaciones dentro de una Ontología. Finalmente, las
relaciones descubiertas son utilizadas para asignar la
página Web a una categoría.
1. Introducción
El procesamiento del Lenguaje Natural es una tarea
desafiante de la Inteligencia Artificial, porque tratar
con el lenguaje humano no es una tarea sencilla. Con
el inmensurable crecimiento de la Web, el problema de
obtener la información apropiada y deseada también ha
crecido. Varios grupos de investigación han obtenido
resultados significativos y ligeramente buenos, pero no
lo suficientemente efectivos para resolver las
necesidades generales. Los resultados obtenidos son
sensibles al problema de la ambigüedad, esta
sensibilidad es causada principalmente por las técnicas
utilizadas. La mayoría de los proyectos desarrollados
[1-9] se basan en métodos estadísticos e ignoran las
técnicas lingüísticas.
En este trabajo, nuestra principal intención es la
creación de una herramienta capaz de clasificar un
conjunto de páginas HTML escritas en español.
Marcadores lingüísticos, Ontologías y el Método de
Exploración contextual [10] fueron integrados para
completar la tarea.
2. Marcadores lingüísticos
Con la finalidad de enfatizar ciertas ideas
contenidas en un texto, el autor hace uso de los
marcadores del discurso. Estos marcadores son
unidades lingüísticas que definen el orden del discurso.
Martín Zorraquino y Portolés [11] definen estos
marcadores como:
“Unidades lingüísticas invariables que no ejercen
una función sintáctica en el marco de la predicación
oracional – son pues, elementos marginales – y poseen
un cometido coincidente en el discurso: el de guiar, de
acuerdo con sus propiedades morfosintácticas,
semánticas y pragmáticas, las inferencias que se
realizan en la comunicación” [11].
Prada [12] extrajo, del análisis extensivo de estos
marcadores hecho por Martín Zorraquino y Portolés
[11], cinco categorías (ver tabla 1).
Tabla1. Marcadores del discurso
Categoría Subcategoría
Comentadores
Ordenadores
Marcadores
estructuradores de la
información Disgresores
Aditivos
Consecutivos
Marcadores
conectivos
Contraargumentativos
Explicativos
De rectificación
De distanciamiento
Reformuladores
Recapitulativos
De refuerzo argumentativoOperadores
argumentativos De concreción
De modalidad epistémica
De modalidad deóntica
Enfocadotes de la
alteridad
Marcadores
conversacionales
Metadiscursivos
Cada tipo de marcador tiene un uso especial en el
discurso en español, pero para este proyecto, la
7
atención se centra en los marcadores reformuladores
recapitulativos porque con ellos se presenta una
recapitulación o conclusión de lo que se expresó con
anterioridad. Estos marcadores concentran una visión
general de la intención del texto y permiten al lector
conocer el pensamiento final del autor.
Ejemplos de estos marcadores son: En suma, en
conclusión, en definitiva, en fin, al fin y al cabo,
resumiendo, finalmente, entre otros.
3. Método de Exploración Contextual
El Método de Exploración Contextual (MEC) [10]
fue desarrollado por el equipo de LaLIC de la
universidad Paris-Sorbonne y dirigido por Jean Pierre
Desclés. Este método proporciona un marco para la
identificación de información semántica en un texto
además de un conjunto de mecanismos que ayudan en
la resolución de indeterminaciones semánticas o de
casos ambiguos. También asume que todos los textos
incluyen unidades lingüísticas que ayudan en la tarea
de la construcción del sentido.
El método requiere de la descripción de índices e
indicadores. Los indicadores son unidades lingüísticas
asociadas a un conjunto de reglas de exploración
contextual. Cuando un indicador es localizado dentro
de un texto una regla es disparada; el contexto del
indicador es explorado con el objetivo de identificar
palabras o índices que lleven en dirección al
significado real del indicador. Indicadores, índices y
reglas integran la base de conocimiento lingüístico.
4. Interacción con la ontología
En este proyecto se utiliza una versión en español
de EuroWordNet[13]. EuroWordNet es una ontología
léxico-semántica de varios lenguajes, entre ellos
español, holandés, italiano, francés, alemán y checo.
Mantiene el modelo de WordNet pero integra algunas
mejoras, tal como una mejor expresividad de la base de
conocimiento, agrega nuevas definiciones de
relaciones y relaciones transcategoriales.
La versión utilizada en este proyecto fue
transformada en una base de datos y accedida mediante
peticiones SQL. El resultado de las peticiones
conlleva a la construcción de las reglas de exploración
contextual.
Figura 1. Resultado gráfico de una petición a la
ontología. Término buscado capa.
5. Analizador semántico
El proceso inicia con una petición a un bien
conocido y ampliamente utilizado buscador Web. Se
utiliza un término simple (los términos simples son
mas sensibles al problema de la ambigüedad) al
realizar la búsqueda y un conjunto de hipervínculos es
devuelto. Este conjunto es filtrado para obtener
únicamente las páginas HTML escritas en español.
Una vez que los hipervínculos son extraídos, cada
página es cargada y su contenido es analizado para
obtener los segmentos de texto más sobresalientes; esta
selección de texto es hecha mediante la localización de
algunos marcadores lingüísticos dentro del texto. El
término buscado es localizado dentro de los párrafos
seleccionados. El contexto a la derecha y a la
izquierda del termino son evaluados con la finalidad de
localizar índices que guíen hacia el descubrimiento de
de relaciones dentro de la ontología. Las relaciones
extraídas permiten, mas adelante, la asociación de la
página Web a una categoría.
El proceso completo es representado gráficamente
en la figura 2.
8
Figura 2. Esquema de clasificación de páginas HTML.
5.1. Petición al buscador Web y extracción de
hipervínculos
El proceso de clasificación inicia con la petición a
un buscador Web. El término de búsqueda es un
término simple, es decir, una sola palabra. El buscador
Web devuelve un conjunto de hipervínculos enlazados
a páginas donde el término de búsqueda está presente.
Los hipervínculos extraídos y sus páginas asociadas
son analizados posteriormente.
Se analizaron varias cadenas de petición con el
objetivo de simplificar la petición al buscador Web. El
idioma y el formato son especificados. Ejemplo:
http://www.google.com.mx/search?num=<number of
resulting links>&as_epq=<search term>&lr=
<language> &as_filetype=html
Se extraen dos conjuntos de hipervínculos, el primer
conjunto corresponde al vinculo directo a la página
Web, en tanto que el segundo corresponde a la versión
en caché de la misma página. Ver figura 3.
Figura 3. Interfaz sencilla para la extracción de
hipervínculos.
5.2. Localización de marcadores lingüísticos y
selección de párrafos
Cada página Web es cargada, el contenido de su
cuerpo e información representativa como los
metadatos son extraídos. Ver figura 4.
Figura 4. Interfaz simple para la extracción del
contenido de la página Web.
Algunos marcadores lingüísticos, en su mayoría
recapitulativos, son localizados dentro del cuerpo de la
página. Los párrafos donde estos marcadores están
presentes son seleccionados para un análisis más
extensivo. Considere el siguiente segmento de texto y
el término buscado “capa”:
“…El segundo sistema permite una elección mas
amplia del copulador y del revelador, pero implica
mayores dificultades en el tratamiento. El revelador
que tiene el copulador debe actuar en la capa
correcta, y esto se logra controlando la velocidad de
difusión o aplicando exposiciones controladas. El
método de la difusión controlada es anticuado. El
método de exposición selectiva utiliza una película de
varias capas que tiene la siguiente construcción: sobre
la base se aplica la emulsión sensible al rojo y encima
una emulsión sensible al verde; sobre esta, una capa
de gelatina que contiene un colorante filtro amarillo, y
finalmente sobre la capa filtro se aplica una capa de
emulsión sensible al azul…”[14]
De este segmento de texto se extrae un párrafo
representativo:
“El método de exposición selectiva utiliza una película
de varias capas que tiene la siguiente construcción:
sobre la base se aplica la emulsión sensible al rojo y
encima una emulsión sensible al verde; sobre esta, una
capa de gelatina que contiene un colorante filtro
amarillo, y finalmente sobre la capa filtro se aplica
una capa de emulsión sensible al azul”.
9
5.3. Localización del término buscado y
exploración del contexto
Una vez que se seleccionaron los párrafos, el
termino de búsqueda es localizado dentro de cada
párrafo y tanto su contexto izquierdo como derecho
son explorados en busca de términos clave que guíen
al descubrimiento de relaciones dentro de una
ontología.
Se aplica el Método de Exploración Contextual [10]
y tanto indicadores como índices y reglas se definen.
El conjunto de indicadores se compone por el
término de búsqueda, y por los sinónimos de éste. El
conjunto de índices es poblado según una consulta a la
ontología, y las reglas son creadas dinámicamente.
Ejemplo:
Indicadores = {capa, mano, baño}
Índices = {pintura, emulsión, impermeabilizante,
esmalte, barniz, …}
Regla:
Si En el contexto del conjunto I1 aparece
cualquier índice perteneciente al conjunto I2
Entonces
Asignar el significado “Cubrimiento
aplicado a una superficie” al termino
buscado en la oración seleccionada
Fin si
“El método de exposición selectiva utiliza una película
de varias capas que tiene la siguiente construcción:
sobre la base se aplica la emulsión sensible al rojo y
encima una emulsión sensible al verde; sobre esta,
una capa de gelatina que contiene un colorante filtro
amarillo, y finalmente sobre la capa filtro se aplica
una capa de emulsión sensible al azul” .
5.4. Extracción de relaciones y categorización
final
Para la categorización final, se debe definir un
conjunto de categorías. Un primer enfoque para dar
solución a esta tarea es mediante la extracción de un
grupo de relaciones donde el término de búsqueda y el
sentido dado estén involucrados. Ejemplo:
Figura 5. Relaciones de homonimia del término de
búsqueda capa.
Todos los nodos presentados en la figura 5 son
homónimos del termino capa, cada nodo tiene un
significado distinto. El nodo 0 significa “Acción y
efecto de cubrir la superficie de un cuerpo con un
material” en tanto que el nodo 3 significa
“Cubrimiento aplicado a una superficie”. Estas
relaciones fueron encontradas en la ontología, pero no
son suficientes para la creación de una categoría; por
lo tanto, las relaciones de un segundo nivel deben ser
descubiertas.
Figura 6. Relaciones de Segundo nivel para el término
de búsqueda capa.
En la figura 6, se muestran las relaciones de
hiponimia (para los nodos 0 y 3) del término capa. Es
en este nivel donde aparecen términos índices y esto
nos permite la creación de categorías para la
clasificación.
Por lo tanto, un primer conjunto de nombres de
categorías podría ser conformado por las relaciones de
primer nivel y su significado. Es aquí donde se
presenta un gran problema, los datos de la ontología no
están completos, algunos de los significados no están
incluidos en ella.
10
6. Conclusiones
La manera más sencilla de obtener información de
la Web es mediante buscadores Web y directorios; sin
embargo, los resultados obtenidos no siempre son
suficientemente buenos debido a que las técnicas de
búsqueda no se preocupan por el contenido semántico
de las páginas Web. Por lo tanto, se hace necesaria la
implementación de una herramienta capaz de realizar
una clasificación apropiada de páginas Web, según el
significado real de la petición.
Con una herramienta como ésta, el proceso
realizado por el usuario será mejorado ya que los
documentos fuera de su interés serán discriminados y
como consecuencia, el número de páginas a visitar y el
tiempo invertido en explorar las no relevantes será
disminuido.
Por otra parte, la introducción de técnicas
lingüísticas en los métodos de clasificación pudiera
mejorar la manera en que los Web Spiders indexan la
información.
11. Referencias
[1] A. Gulli and P. Ferragina, “The anatomy of a hierarchical
clustering engine for web-page, news and book snippets”,
Fourth IEEE International Conference on Data Mining,
ICDM’04, Brighton, UK, 2004.
[2] A. Gulli, “SnakeT”, http:// www.snaket.com, Pisa
University, Italy.
[3] Vivísimo, Inc., “How the Vivísimo clustering engine
works, http://www.vivisimo.com , 2003.
[4] Vivísimo, Inc.,”Clusty”, http://www.clusty.com , 2005.
[5] A. Téllez-Valero, M. Montes-y-Gómez and L.
Villaseñor-Pineda, “Aplicando la clasificación de texto en la
extracción de información”, Encuentro Internacional de
Ciencias de la Computación, ENC, Colima, México,
September 2004.
[6] J. M. Gómez, E. Puertas, G. Carrero, M. de Buenaga,
“Categorización de texto sensible al coste para filtrado en
Internet”, Procesamiento del Lenguaje Natural, SEPLN,
Magazine nº 31, September 2003.
[7] L. Golub, Automated subject classification of textual Web
pages, for browsing, Thesis for the degree of Licenciate in
Philosophy, Lund University, Switzerland, August 2005.
[8] F. Sebastiani, “Machine learning in automated text
categorization”, ACM computing surveys, 2002.
[9] F. Sebastiani, “Text categorization”, in Zanasi A., Text
Mining and its Applications, WIT Press, Southampton, UK,
2005.
[10] J. P. Desclés, E. Cartier, A. Jackiewicz and J. L. Minel,
“Textual Processing and Contextual Exploration Method”,
Context 97, Rio de Janeiro, February 1997.
[11] Martín Zorraquino, Mª Antonia y José Portolés Lázaro.
Los marcadores del discurso. Bosque y Demonte. Vol. 3.
4051-4213.
[12] J. Prada, G. Moncecchi, “Reconocimiento eficiente de
marcadores del discurso en español”, VIII Simposio
Internacional de Comunicación Social, Santiago de Cuba,
Cuba, January 2003.
[13] Amsterdam University, “EuroWordNet: Building a
multilingual database with wordnets for several European
languages”, March 2006,
http://www.illc.uva.nl/EuroWordNet/
[14] “Fotografía / Fotografía en colores”, March 2006,
http://www.punksunidos.com.ar/punksunidas/fotografia/foto
grafia6.html
11
13
Procesamiento Digital de Imágenes en el Dominio Wavelet
Osslan Osiris Vergara Villegas y Raúl Pinto Elías
Centro Nacional de Investigación y DesarrolloTecnológico (cenidet)
Cuernavaca Morelos México.
{osslan, rpinto}@cenidet.edu.mx
Abstract
El presente artículo da una explicación del
procesamiento digital de imágenes en el dominio
wavelet. Primero, una imagen es transformada con
una Transformada Wavelet Discreta (TWD) después,
se aplican operaciones matemáticas para destacar
algunas características presentes en la imagen. La
transformación puede ayudar a revelar algunas
características que en el dominio original no son
claras o son difíciles de detectar. En el dominio
wavelet se obtiene la detección de bordes y
direccionalidad, suavizado o emborronamiento,
cambios en la escala, supresión de ruido, compresión
y finalmente la extracción de características.
1. Introducción
La transformada wavelet fue usada geofísica a
principios de 1980 para el análisis de señales sísmicas
[1]. Una transformada wavelet descompone una señal f
en sus componentes a diferentes escalas o bandas de
frecuencia. La transformación se realiza con un
proceso de convolución en f usando la wavelet madre
(ψ) de forma trasladada y dilatada. Según la selección
de ψ la función de transformación permite por
ejemplo, extraer discontinuidades o bordes de f,
realizar tareas de reconocimiento de patrones o
almacenar una versión compresa de f.
Las wavelets son señales locales en el tiempo y
generalmente tienen forma irregular. Una señal puede
ser dividida en varias representaciones escaladas y
trasladadas de la wavelet madre original [2].
Las wavelets ofrecen la ventaja de poder separar
los detalles finos de una señal, wavelets muy pequeñas
pueden ser utilizadas para separa detalles muy finos de
una señal, mientras que wavelet grandes se pueden
utilizar para separar detalles burdos. Además, existen
diferentes familias de wavelets que se pueden
seleccionar.
Una wavelet en particular puede generar una
representación más dispersa de una señal que otra, por
lo que se deben analizar diferentes tipos de wavelets
para determinar la que mejor se adecua a la aplicación
que se necesita realizar en procesamiento digital de
imágenes. Por ejemplo, supresión de ruido,
compresión o reconocimiento de patrones.
2. Análisis Multiresolución
Es el estudio de señales o procesos representados
en diferentes resoluciones, proporciona un mecanismo
eficiente para pasar de una resolución a otra [3]. La
transformada Wavelet Discreta (TWD) es una
herramienta matemática para el análisis y síntesis de
señales que puede ser utilizada cuando se necesitan
procesar imágenes digitales en múltiples resoluciones.
La localización de las características de una señal
en el dominio espacial (tiempo) y de frecuencia puede
ser realizado de un manera muy eficiente usando
wavelets. Dicha localización permite determinar de
manera simultánea transiciones afiladas en el espectro
de la señal y la posición (o tiempo) de su ocurrencia.
El principio detrás del uso de la TWD para
descomponer una imagen es utilizar una función
wavelet Ψ para representar las frecuencias altas
correspondientes a las partes detalladas de la imagen y
una función de escalamiento Φ para representar las
frecuencias bajas correspondientes a las partes suaves
de la imagen. La figura 1 muestra el proceso de
descomposición subbanda de una imagen utilizando
filtros.
Figura 1. Descomposición subbanda de una
imagen.
14
El análisis multiresolución juega un papel muy
importante en el mecanismo de percepción y de toma
de decisiones de los seres humanos.
3. Direccionalidad Wavelet y Detección de
Bordes
Con la TWD se puede obtener cierta información
(detalles) acerca de la direccionalidad y bordes
presentes en una imagen. En este ejemplo se utiliza la
imagen de la figura 2 para explicar como obtener la
direccionalidad en una wavelet y como detectar
bordes.
Figura 2. Imagen “Star” para el análisis de
direccionalidad y bordes.
Primero, se debe transformar la imagen con una
TWD, para este ejemplo, la imagen se descompuso un
nivel con la Symlet 4. La figura 3 muestra la imagen
resultante de la descomposición.
Figura 3. “Star” después de la TWD.
En la figura 3 se puede observar que el borde
horizontal de la imagen original es representado en la
matriz de coeficientes de detalle horizontal (cuadrante
superior derecho). De forma similar el borde vertical se
muestra en la matriz de coeficientes de detalle
verticales (cuadrante inferior izquierdo). Finalmente
los bordes verticales se muestran en la matriz de
coeficientes de detalle diagonales (cuadrante inferior
derecho).
La información de los bordes obtenida de las
subbandas wavelet puede ser combinada en una sola
imagen. Para lograrlo, se necesitan cambiar a cero
todos los coeficientes de aproximación (cuadrante
superior izquierdo) y después se debe calcular la
Transformada Wavelet Discreta Inversa (TWDI). La
imagen resultante se muestra en la figura 4.
Figura 4. Imagen de bordes “Star”.
Se puede utilizar un proceso similar para separar los
bordes verticals y horizontales. La información de los
bordes diagonales siempre es preservada aunque se
trate de cortar los coeficientes diagonales.
4. Emborronamiento de la Imagen
Las wavelets pueden ser utilizadas como una
herramienta para emborronamiento o suavizado de
imágenes. Para este ejemplo se utilizará la imagen que
se muestra en la figura 5.
Figura 5. Imagen “Tools .
Para el suavizado se necesita calcular la TWD en
mas de un nivel de descomposición, por ejemplo
cuatro niveles con la wavelet symlet 4, la imagen de la
transformación obtenida se muestra en la figura 6.
Figura 6. Cuatro niveles de descomposición de
“Tools”.
Al convertir a cero cada uno de los niveles de
detalle se pueden obtener versiones incrementalmente
suavizadas de la imagen original. Por ejemplo, si se
15
convierten a cero los primeros tres niveles se puede
obtener una imagen como la de la figura 7a. Si se
cambian a cero cuatro niveles se puede obtener un
incremento en el emborronado como se muestra en la
figura 7b.
Figura 7. Imágenes “Tools”. a) Resultado de
convertir a cero los primeros tres niveles, b)
Resultado de convertir a cero todos los niveles.
5. Cambios en la Escala
El cambio de escala de una imagen implica una
operación matemática llamada interpolación. Con la
TWD se puede cambiar el tamaño de una imagen con
un factor de 2n
. Este proceso se realiza al remover o
añadir subbandas en el dominio wavelet.
La posibilidad del cambio en la escala proporciona
una reconstrucción progresiva de una imagen. Suponga
que necesita enviar una imagen a dos usuarios en
diferentes sitios y que dichos usuarios necesitan
versiones de una imagen a diferente resolución.
La imagen puede ser reconstruida por
aproximaciones graduales de mayor resolución de la
imagen final de más alta resolución y se puede enviar
la imagen adecuada a cada usuario correspondiente a la
subabanda de reconstrucción exacta. La figura 8
muestra el resultado de escalado para camman.
Figura 8. Cambio de escala en “Camman”. a)
Imagen original, b) Imagen con escala doble de la
original, c) Imagen del inciso b al doble.
El proceso de aumentar o disminuir la escala se
comporta mejor con la TWD que el mismo proceso
usando interpolación.
6. Eliminación de Ruido en Imágenes
La eliminación de ruido en imágenes es el proceso
de separar el ruido y los componentes de una imagen
de una observación sencilla de una imagen degradada.
La imagen puede estar contaminada con ruido ya sea
por el proceso de adquisición de datos o debido a la
ocurrencia de algún fenómeno natural. La técnica más
simple para lograr la eliminación es la umbralización
wavelet (shrinkage). Como ejemplo se usa la imagen
ruidosa de la figura 9a).
Primero, se aplica la TWD en cuatro niveles de
resolución y después se utiliza un método llamado soft
thresholding en todas las subbandas. Lo que se hace es
cambiar a cero los coeficientes con valor menor que un
umbral (T), después se resta T de los coeficientes no
cero. Después se calcula la TWDI. La figura 9b
muestra la imagen resultante de la eliminación. El
problema principal en la supresión de ruido es la
selección del mayor valor T para la umbralización.
Figura 9. Imagen “Goldhill”, a) Imagen con ruido
Gaussiano, b) Imagen procesada.
7. Compresión de Imágenes
Una de las aplicaciones más populares con wavelets
es la compresión de imágenes. El objetivo de la
compresión es reducir el volumen de datos necesarios
para representar cierta cantidad de información. Una
de las ventajas obtenidas con el uso de la TWD es que
la imagen es decorrelacionada, por lo que la imagen
puede ser fácilmente compresa.
Algunos de los coeficientes wavelet obtenidos de la
TWD corresponden a los detalles en el conjunto de
datos. Si los detalles son pequeños, entonces pueden se
omitidos sin afectar substancialmente las principales
características del conjunto de datos.
El primer paso es transformar una imagen con la
TWD, una de las decisiones importantes es que familia
wavelet usar y que nivel de resolución usar. La
selección de la familia wavelet depende mucho del uso
posterior que se le dará a la imagen pero es necesario
tomar en cuenta algunas propiedades como
ortogonalidad, número de momentos vanishing,
16
soporte compacto, simetría, etc. Por otro lado, el nivel
de resolución no debe ser mayor que Log2(N).
Después, se realiza la cuantificación para la cual se
pueden utilizar dos estrategias. Una es cambiar a cero
todos los coeficientes de subbanda que son menores a
un umbral seleccionado. La otra es cambiar a cero los
coeficientes de la diagonal inferior de la matriz o
algún nivel de descomposición.
Existen dos técnicas de cuantificación muy
utilizadas Embedded zerotree wavelet coder (EZW) y
Set Partitioning in Hierachical trees (SPIHT) que son
muy eficientes y que se utilizan en muchas
aplicaciones. Finalmente se codifican por entropía los
coeficientes obtenidos, aquí no existe pérdida de
información. La figura 10 muestra la imagen de Lena y
las diferentes imágenes obtenidas del proceso de
compresión con diferente espacio de almacenamiento
usado y diferente calidad.
Figura 10. Imagen “Lena” de izquierda a derecha
disminuye la calidad y espacio de almacenamiento.
8. Extracción de Características
La clasificación de imágenes es quizás la aplicación
más importante con imágenes digitales, para describir
la imagen se utiliza un vector de características. Las
propiedades estadísticas de los coeficientes wavelet
caracterizan una imagen y pueden ser usados para
realizar la clasificación de imágenes. Algunas medidas
obtenidas de los coeficientes wavelet son:
Energía Norma-2:
∑=
=
N
k
kC
N
E
1
2
21
1
(1)
Energía Norma-1:
∑=
=
N
k
kC
N
E
1
12
1
(2)
Desviación Estándar:
∑=
−=
N
k
kC
N
E
1
2
23 )(
1
µ (3)
Residuo Promedio:
∑=
−=
N
k
kCE
1
2
4 )( µ (4)
Entropía:
∑=
−=
N
k
kk CC
N
E
1
22
25 log
1
(5)
Donde
∑=
=
N
k
kC
N 1
2
1
µ (6)
µ es la media y N el tamaño de la imagen.
9. Conclusiones
En este artículo se mostraron algunas aplicaciones
de la transformada wavelet para el procesamiento
digital de imágenes, con el objetivo de demostrar que
una imagen puede ser manipulada incluso en el
dominio wavelt. La investigación continua buscando
familias de wavelets más complicadas que se adecuen
a una aplicación en particular, por ejemplo para tratar
de describir una característica muy importante de las
imágenes conocida como geometría.
10. Referencias
[1] Morlet, J., G. Arens, E. Fourgeau, and D. Giard, “Wave
propogation and sampling theory part 1: Complex signal and
scattering in multilayered media”, Geophysics, Vol. 47, No.
2, pp. 203 -221, febrero 1982.
[2] Maryhelen S., “Image compression using wavelets”,
Thesis proposal, Department of electrical and computer
engineering, University of New Brunswick, Canada, 1997.
[3] Mallat, S., “A theory for multiresolution signal
decomposition: The wavelet representation”, IEEE
Transactions on Pattern Analysis and Machine Intelligence
(PAMI), Vol. 11, No. 7, pp. 674 – 693, julio 1989.
[4] Gonzalez Rafael C., Woods Richard E. and Eddins
Steven L., Digital image processing using Matlab,
Pearson Prentice Hall, 2004.
17
GAP: Una Herramienta para Solucionar el Problema de la Visualización de
Contenidos Web en Dispositivos Pocket PC.
J. Carlos Olivares R., J. Gabriel González S., Azucena Montes R.,Víctor J. Sosa S. e I. Rafael
Ponce M.
Centro Nacional de Investigación y Desarrollo Tecnológico (cenidet)
{jcolivares04c, gabriel, amr, vjsosa, rafaxzero04c}@cenidet.edu.mx
Abstract
Esta herramienta trata de llenar el “hueco”
presente en la visualización de sitios Web en
dispositivos móviles PDA, caso concreto Pocket PC.
Para garantizar que los usuarios puedan visualizar
correctamente los recursos de Web, se necesitan dos
cosas: un mecanismo que controle desconexiones y
permita visualizar contenido Web sin importar el
estado de conexión del dispositivo (acaparamiento), y
un mecanismo que adapte el contenido de la Web a las
características propias del dispositivo móvil específico
(transcodificación). GAP es una herramienta que
integra estos dos mecanismos y permite mejorar la
experiencia de navegación de los usuarios en la Web
Móvil.
Palabras clave: Pocket PC, Visualización de
Contenidos Web, Acaparamiento, Transcodificación.
1. Introducción
Los dispositivos móviles están más cerca de lo que
parecen estar, de acuerdo con [1]: “Para el año 2009,
más de la mitad de los microprocesadores fabricados
en el mundo estarán destinados a dispositivos móviles.
El software que hará realmente útiles a los dispositivos
móviles todavía no es desarrollado.” Estas estadísticas
reflejan que el uso de dispositivos móviles va en
creciente aumento debido principalmente a su diminuto
tamaño y a que su poder de procesamiento y
versatilidad van creciendo día con día.
El problema de la visualización de recursos de Web
en dispositivos móviles, radica en el hecho de que la
gran mayoría de los sitios Web en Internet no han sido
diseñados para esta clase de dispositivos. Los cuales
cuentan con recursos de cómputo limitado (pantallas
pequeñas, poca memoria, velocidades bajas de
procesamiento, etc.) si se comparan con un equipo de
cómputo tradicional.
Por otra parte, la Web y el protocolo que lo
gestiona: HTTP, son orientados a conexión (se basan
en TCP) lo cual da como resultado de que si el usuario
por algún motivo se desconecta de la red, la
transacción falle. En este caso, no se podría visualizar
los recursos de la Web en el cliente móvil. Las
desconexiones son frecuentes en esta clase de
dispositivos, debido en gran medida a una de sus
principales ventajas: la movilidad.
En este trabajo se describe un sistema cuyo trabajo
está en progreso y que se enfoca a atacar el problema
de la visualización de recursos de Web en dispositivos
móviles. La característica principal de este trabajo,
radica en que gran parte del sistema se ejecuta en esta
clase de dispositivos, en comparación a la gran mayoría
de las soluciones existentes que se ejecutan en
plataformas de cómputo tradicional.
2. Alternativas de solución
Para solucionar este problema se han propuesto
varias alternativas: diseñar nuevos protocolos,
modificar protocolos o implementar servicios
intermediarios que resuelvan el problema.
2.1 Nuevos protocolos
En este esquema se puede citar al protocolo WAP y
al lenguaje de marcado WML, los cuales funcionan de
manera análoga a HTTP-HTML en la Web tradicional.
El problema radica en que WAP sólo trabaja con
equipos móviles y traería consigo la misma
fragmentación de la Web que se vive actualmente
(páginas especiales para toda clase de dispositivos).
Además, WAP se diseñó originalmente para
dispositivos con capacidades de cómputo limitada
(pantallas monocromáticas, bajo ancho de banda, etc.)
lo que para en estos momentos se está solucionando día
con día por medio de conexiones de banda ancha
inalámbrica (WCDMA, UTMS, 802.11g, WiMax, etc.)
y equipos cada vez más potentes.
La mejor solución sería crear un nuevo protocolo.
El problema es que éste debe de ser totalmente
compatible con los existente por que sino, dejaría
18
inservible miles de recursos ya existentes (se deberían
de modificar tanto clientes como servidores Web).
2.2 Modificación de protocolos
Dentro de esta alternativa se tiene el caso de un
nuevo esquema de petición de los recursos Web. Este
nuevo esquema recibe el nombre de Push, mientras que
el esquema tradicional recibe el nombre de Pull[2].
El esquema Pull recibe el nombre de ‘sobre
demanda’. Bajo este esquema, es el cliente (usuario)
que de manera explícita visualiza un recurso. En
nuestro caso, si un usuario quiere ver la página del
cenidet, tiene que escribir en su navegador la URL:
http://www.cenidet.edu.mx/.
El esquema Push también recibe el nombre de
‘subscripción-notificación’. En este esquema, el
usuario se subscribe a un servicio y cada vez que haya
ocurrido algún evento de interés para el usuario se le
envía una notificación alertándolo sobre el evento.
Generalmente estos dos esquemas no viven de
manera aislada. Esquemas híbridos (Pull&Push) se han
aplicado en diversos servicios existentes, tal es el caso
de la recepción de mensajes SMS/MMS, en donde el
envío de mensajes es Pull y la recepción es Push, ya
que se le notifica a los usuarios de la existencia de
nuevos mensajes.
Otro servicio que ha tenido gran éxito y que ha
hecho famoso a dispositivos como los Blackberry es el
Push-mail[3]. Bajo el esquema tradicional del correo
electrónico, un usuario para consultar su correo debe
de estar conectado todo el tiempo para recibir correo.
Esto con lleva a grandes gastos si la conexión a la red
se factura por tiempo. Con este nuevo esquema, el
usuario no está conectado al servidor de correo.
Cuando se recibe un nuevo correo en el servidor, éste
notifica al cliente de la existencia del nuevo correo y lo
envía al cliente móvil.
Para este tipo de esquemas, se han propuesto
protocolos como HTTPU (HTTP over UDP) o
HTTPMU (HTTP over Multicast UDP) que
básicamente funciona similar al HTTP pero utilizando
datagramas, los cuales no están orientados a conexión.
Con esto se logra una mejor calidad de servicio en la
Web móvil[4].
2.3 Servicios intermediarios
Esta es la solución más extendida para solucionar el
problema de la visualización de recursos Web y
muchos otros problemas que presenta la Web, tal es el
caso de los muros de fuego que solucionan alguno de
los problemas de seguridad de la Web como el control
de acceso o los proxys caché, que tratan de reducir la
latencia de acceso a la información.
El esquema de intermediarios es ampliamente usado
por que no necesita modificar ni los clientes ni los
servidores; de hecho, los procesos cliente y servidor no
notan la existencia de dichos servicios intermediarios.
Estos servicios se encargan del trabajo pesado y son
transparentes hacia los usuarios.
La herramienta que se describe en este artículo,
funciona bajo el esquema de servicios intermediarios.
3. Propuesta de solución
El proceso de acaparamiento soluciona el problema
de la visualización de recursos Web sin importar el
estado de la conexión del dispositivo móvil. Para ello,
se hace necesario que el usuario tenga almacenados de
manera local en su dispositivo los recursos que usará.
Como se puede observar, la cantidad de recursos a
ocupar puede ser inmensa, mientras que la capacidad
de almacenamiento de los dispositivos es limitada. Para
dar solución a este nuevo problema, es necesario tener
una manera efectiva de conocer los recursos que un
usuario podría utilizar. Con el acaparamiento se logra
reducir esto, ya que a través de algoritmos de reglas de
asociación aplicados sobre bitácoras Web, determina el
conjunto óptimo de recursos que deberán replicarse a
los clientes móviles[5].
Para solucionar el problema de la adaptación de los
recursos Web a las capacidades de despliegue de los
dispositivos móviles, se necesita de la transcodificación
(transformación) de los recursos, destilando y
procesando todas aquellas características que no estén
disponibles en el dispositivo. El mecanismo utilizado
de transcodificación utiliza un transformador de HTML
a un subconjunto de HTML utilizando XML.
El sistema se basa en una arquitectura cliente-
servidor con una capa intermedia tanto del lado
servidor como del lado cliente, tal y como se muestra
en la Figura 1.
El sistema en general ha sido denominado GASWT
(Gestor de Acaparamiento de Sitios Web
Transcodificados). Al intermediario en el lado cliente
se denomina GAP (Gestor de Acaparamiento para
Pocket PC), mientras que en el lado servidor se
denomina GAT (Gestor de Acaparamiento y
Transcodificación). El GAT se compone a su vez del
MA (Mecanismo Acaparador) y del MT (Mecanismo
Transformador). La comunicación entre los procesos
se realiza a través de un esquema de petición-respuesta
en HTTP.
Tanto el MA como el MT son tomados de otros
proyectos que en conjunto con éste, forman parte del
19
proyecto Moviware[6], cuya función principal es
brindar una serie de servicios a clientes móviles
propensos a desconexiones frecuentes.
Figura 1. Arquitectura general propuesta.
El funcionamiento general del sistema es el
siguiente. El usuario introduce una URL desde su
navegador (que previamente ha sido configurado para
redireccionar su salida hacia el GAP). El GAP recibe la
petición y determina si se encuentra en la caché local
del dispositivo, si la encuentra, envía el recurso
acaparado al navegador.
Cuando el recurso no se encuentra acaparado, se
valida que exista conexión y se trata de obtener el
recurso en línea. Si por alguna razón el recurso no se
puede mostrar, (ya sea que no exista o se hay detectado
un error en la conexión) se notifica al usuario enviando
un mensaje de error.
Por otra parte, si el recurso Web no se encuentra
acaparado y no existe un patrón del sitio en el
dispositivo local, el MA envía los recursos Web si es
que existe el patrón para dicho sitio. Si existe el patrón
pero no se tienen los recursos acaparados en el MA,
éste los obtiene pidiéndolos al MT y luego los
comprime en formato .zip para optimizar el proceso.
Una vez que el MA ha enviado el sitio Web
acaparado, el dispositivo móvil debe descomprimir el
sitio Web y actualizar su lista de patrones. Este proceso
ocurre de manera transparente sin que el usuario lo
perciba.
El MT se encarga de recolectar los documentos y en
caso de ser recursos HTML, los transforma si es que
los parámetros de configuración así lo indican. La
transcodificación se realiza en línea, por lo que el
proceso se ve ralentizado si el documento es demasiado
grande.
Las acciones que el usuario puede realizar sobre el
sistema consisten en visualizar sitios Web en línea,
visualizar sitios Web en desconexión, Visualizar
mensajes de error, visualización del estado de las
peticiones y por último, configurar el sistema.
El GAP está conformado básicamente de tres
módulos principales y varios secundarios. Los módulos
principales son: Observador, Gestor de Acaparamiento
Local (GAL) y Gestor de Desconexión Local (GDL).
El Observador se encarga de procesar cada petición
y devolver el resultado al navegador.
El GAL se encarga de la manipulación y control de
la caché en el dispositivo. Es el usuario quien decide
que recursos se desean acaparar, así como limitar el
espacio de almacenamiento.
El GDL se encarga de determinar el estado de la
conexión. Para éste último punto, se ha utilizado el
control de las desconexiones sondeando la red durante
tres segundos. En base a Observaciones de la calidad
de los resultados, se fijó un umbral de 30% de
conexiones aceptadas para determinar si el cliente se
encuentra conectado (si se supera o iguala el umbral) o
en modo desconexión (si se encuentra por debajo del
umbral)[7].
Para la implementación de esta herramienta, se está
utilizando la plataforma .NET Compact Framework 1.0
con lenguaje C#, por ser por mucho la mejor opción
para programar en esta plataforma[8].
Las modificaciones del MA y del MT se están
realizando en Java por que es lenguaje en el cual están
hechos estos módulos.
4. Resultados
La herramienta descrita en el presente documento se
ha probado en diversos equipos como Pocket PC 2000
(Compaq ipaq h3630), Pocket PC 2002 (HP Jornada
5500), Pocket PC 2003 (HP rx3115), emuladores de
Windows CE, PC convencionales (Compaq Presario
Pentium 4 1.4 Ghz 512Mb de RAM).
El primer escenario de prueba consistió en acceder a
los recursos Web en modo conexión. Obteniendo
resultados satisfactorios (ver Figura 2).
En el escenario de prueba número 2, el GAP se
ejecutó sin estar conectado a la red. Adicionalmente se
contaba con un patrón de un sitio Web
(http://www.cenidet.edu.mx/) y recursos acaparados.
En este caso se utilizaron imágenes no existentes en el
sitio original, por lo que se pudo comprobar que los
recursos acaparados se muestran correctamente (Figura
3).
El escenario de prueba número 3 (ver Figura 4),
demuestra que es posible transcodificar los recursos en
el dispositivo así como de mostrarlos de manera local
si se encuentran acaparados como en el caso anterior.
También es posible ejecutar el GAP en otras
plataformas como Smartphones (SmartGAP) y PC
tradicionales (WinGAP). Cabe hacer mención que
GAP
MA
MT
Navegador
Squid Web
GAT
Dispositivo móvil
Pocket PC
Petición - Respuesta
HTTP
Si el recurso no
está en la caché
Petición - Respuesta
HTTP
Petición - Respuesta
HTTP
Petición - Respuesta
HTTP
20
tanto GAP, WinGAP y SmartGAP son el mismo
programa pero con nombre distinto, para diferenciar la
plataforma en la cual se ejecutan.
Figura 2. Visualización de recursos Web en modo
conexión.
Figura 3. Visualización de sitios Web en modo
desconexión con recursos Web acaparados y sin
transcodificación.
5 Conclusiones
Con la presente herramienta se está demostrando
que es posible ejecutar servicios complejos en
dispositivos Pocket PC, tal es el caso de un servicio
intermediario que permite visualizar recursos de Web
cuando exista o no conexión.
Hasta el momento se han podido comprobar de
manera aislada la mayoría de las funciones del sistema
(falta los métodos de descompresión del sitio
Acaparado), ya simplemente solo haría falta la
integración de componentes y las pruebas respectivas
al sistema en su totalidad.
Los beneficios que se esperan obtener al concluir
este trabajo de investigación son los siguientes:
1. Visualización de sitios Web sin importar si los
dispositivos están conectados o no.
2. Reducción de latencia en el acceso a la
información, si es que el recurso se encuentra
acaparado localmente.
3. Ahorro de energía por el hecho de trabajar en
modo desconexión
4. Ahorro de dinero si es que el usuario decide no
conectarse a una red que cobra el servicio por
el tiempo de acceso.
5. Facilidad de administración de sitios Web al no
disponer de diferentes versiones para cada
dispositivo.
Figura 4. Visualización de sitios Web en modo
conexión, con recursos acaparados y
transcodificados.
6. Referencias
[1] Revista SG, http://www.softwareguru.com.mx
[consultado marzo de 2006]
[2] Purushottam Kuikarni, et al., “Handling Client Mobility
and Intermittent Connectivity in Mobile Web Accesses”,
Department of Computer Science, University of
Massachussets.
[3] Blackberry’s push technology,
http://www.blackberry.com/products/software/integrations/p
ush_email.shtml [consultado marzo de 2006]
[4] UPnP Forum, http://www.upnp.org/, [consultado marzo
de 2006]
[5] David Valenzuela, “Mecanismos para predicción de
acaparamiento de datos en sistemas clientes/servidor
móviles”, tesis de maestría, cenidet, agosto de 2002.
[6] Gabriel González. “Plataforma middleware reflexiva para
aplicaciones de cómputo móvil en Internet (Movirware)”,
cenidet.
[7] J. Carlos Olivares, et al, “Control de desconexiones en la
visualización de páginas Web en dispositivos móviles
Windows CE”, XVI CIECE’06 a 5, 6 y 7 de abril de 2006 en
Cd. Obregón, Sonora, México.
[8] Gabriel González, Azucena Montes, J. Carlos Olivares,
“Comparativa y evaluación de las herramientas de
programación para desarrollar aplicaciones en plataforma
Pocket PC”. 6to. CICC’05, Colima, Colima, México,
septiembre de 2005.
21
Evaluación de herramientas para procesos de negocio en tres niveles de
abstracción
Erika M. Nieto Ariza1
, Javier Ortiz Hernández1
, Guillermo Rodríguez Ortiz2
1
Centro Nacional de Investigación y Desarrollo Tecnológico
Interior internado Palmira s/n, Cuernavaca, Morelos, 62490 México
{erika, ortiz}@cenidet.edu.mx,
2
Instituto de Investigaciones Eléctricas
Reforma 113. Palmira, Cuernavaca, Morelos, 62490 México
gro@iie.org.mx
Resumen
Cada vez mas las organizaciones eligen utilizar la
Web para proveer sus servicio, los cuales son la
sistematización de sus procesos de negocio. Debido a
que existe un gran número de métodos de modelado y
al rápido incremento en el uso de la Web, es necesario
identificar el tipo de información que los distintos
métodos permiten especificar. En este artículo
proponemos un conjunto de conceptos para evaluar
métodos de modelado para procesos de negocio
utilizando tres niveles de abstracción –organizacional,
de integración y Web.
1. Introducción
Las organizaciones deben deciden la manera en la
cual los sistemas de información apoyaran al negocio,
considerando que esta tecnología se convertirá de
manera incremental en una parte integral de los
procesos de negocio [1, 2]. Los modelos son utilizados
comúnmente para representar la complejidad de los
sistemas y para observar el desempeño de un proceso
de negocio cuando se integra a ella una nueva
tecnología [3, 4, 5]. Un modelo de negocio es una
abstracción de la funcionalidad del negocio, este
provee de una vista simplificada de la estructura del
negocio que actúa como base para la comunicación,
mejora o innovaciones y define los requerimientos del
sistema de información necesarios para apoyar al
negocio. Un modelo debe capturar el dominio del
problema sin hacer referencia a un sistema,
implementación o tecnología particular. Uno de los
problemas que se presenta durante el modelado de
procesos de negocio es la gran cantidad de técnicas,
herramientas y métodos existente, cada una de estas
con sus propios elementos de modelado lo que las hace
complejas para comparar y aun mas para seleccionar la
más apropiada para modelar un sistema en un nivel
especifico de representación.
Proponemos tres niveles los cuales integran un
conjunto de conceptos para construir modelos de
aplicaciones web: a) Organizacional, describe como
trabaja la organización y el proceso de negocio que se
sistematizara a través de una aplicación web; b)
Integración, describe el rol del sistema de información
y su integración dentro de un ambiente organización
particular; c) Web, describe la semántica de la
aplicación web [5,6]. Nuestra contribución consiste en
la identificación y clasificación de un conjunto de
conceptos los cuales son utilizados para identificar los
conceptos que se modelan en cada nivel de abstracción
y para desarrollar un método de evaluación que ayude a
distinguir que capacidades de modelado tiene un
método particular en los tres niveles de abstracción.
Existen algunos métodos y metodologías para
evaluar el modelado de procesos de negocio; sin
embargo, éstos no evalúan las capacidades sino la
funcionalidad de la aplicación o de los métodos de
modelado. Rosemman propone una ontología para
evaluar las gramáticas del modelado organizacional,
identificando sus fortalezas y debilidades [7]. Luis
Olsina [8] and Devanshu Dhyani [9], proponen una
metodología para evaluar las características funcionales
de una aplicación Web. La estructura de este artículo
es como sigue: en la sección 2 se presenta brevemente
los conceptos de modelado, en la sección 3 se presenta
la metodología de evaluación, en la sección 4 se
presentan los resultados obtenidos al aplicar la
metodología, en la sección 5 se presentan las
conclusiones.
22
2. Conceptos de modelado
Un modelo de proceso de negocio puede ser visto
en distintos niveles de abstracción, estas vistas pueden
ser combinadas para dar una vista mas completa del
sistema a construir [3]. Este enfoque establece tres
niveles de abstracción, cada uno de ellos incluye
ciertos conceptos de modelado como se muestra en la
tabla 1. En cada uno de estos niveles, los conceptos
son propiedades o características que definen los
elementos clave en un proceso de negocio. Los
conceptos en cada nivel de abstracción fueron
seleccionados basándose en el análisis de varias
técnicas y métodos para el modelado de procesos de
negocio en los tres niveles.
Table 1: Conceptos de modelado en cada nivel de
abstracción
Nivel
organizaciona
l
Nivel
conceptual
Nivel Web
Proceso de
negocio
Navegación
pura
Actor Actor
--- Página de
navegación
– relación
Perfil de
usuario (rol)
Perfil de
usuario (rol)
Clase (objeto) ---
Recurso Artefacto
Artefacto Artefacto
Meta Meta --- Meta
Tarea Función Servicio Servicio
Acitivdad Evento
Evento ---
Regla de
negocio
Restricción Pre y post
condiciónon
---
Calidad Requerimient
o no funcional
Requerimient
o no funcional
---
Los conceptos del nivel organizacional son los
siguientes:
- Actor, describe una entidad que tiene una meta
específica en el proceso de negocio.
- Recurso, describe una entidad física o de información
que es transferida entre los acotes.
- Meta, describe el estado deseado del proceso de
negocio.
- Tarea, describe una actividad orientada a alcanzar una
meta.
- Actividad, describe un conjunto de acciones para
llevar a cabo una tarea.
- Calidad, describe las características deseadas en el
proceso de negocio.
- Regla de negocio, describe las acciones y criterios
que gobiernan la ejecución del proceso de negocio.
Los conceptos del nivel de integración son los
siguientes:
- Actor, describe una entidad que interactúa con el
sistema de información, puede jugar diferentes roles.
- Artefacto, describe una entidad que es transferida
entre un actor y el sistema de información.
- Meta, describe el propósito, límites y restricciones del
sistema de información.
- Función, describe los servicios que debe proveer el
sistema de información.
- Evento, describe un cambio en el proceso de negocio
en un instante de tiempo específico.
- Restricción, describe una condición para la ejecución
de un servicio provisto por el sistema de información.
- No funcional, describe una cualidad deseada para el
sistema de información.
Los conceptos del nivel Web son los siguientes:
- Relaciones de navegación, describe una visión global
de la aplicación web de acuerdo a un perfil de usuario.
- Perfil de usuario, describe al usuario de la aplicación.
- Clase, describe un tipo de objeto para modelar las
entidades que integran la aplicación.
- Artefacto, describe un objeto de abstracción que es
transferido entre la aplicación web y un usuario.
- Meta, describe el propósito de una aplicación web.
- Servicio, describe una actividad o acción que tiene
una aplicación web.
- Evento, describe el inicio de una actividad o acción
que debe realizarse.
- Pre y pos condición, describe el desarrollo de un
evento en ejecución.
- Requerimiento no funcional, describe la calidad o
restricciones deseadas para una aplicación web.
Los conceptos utilizados para el modelado de procesos
de negocio están relacionados entre ellos.
3. Los conceptos y el método de evaluación
En la sección anterior se presentaron los conceptos
de modelado utilizados en los diferentes niveles de
abstracción. En esta sección lo conceptos son ligados a
aspectos que los hacen mas poderosos para modelar
una determinada vista. Estos aspectos son utilizados
como escalas para evaluar los métodos de modelado y
representan capacidades de cada uno de los conceptos
presentados. Las capacidades deseadas mencionadas en
la literatura pueden ser utilizadas también como escalas
de definición.
El principio de la evaluación de las capacidades de
las herramientas inicia con la definición de una serie de
conceptos que facilitan la comparación y evaluación de
las herramientas de modelado. Posteriormente en una
escala de 0 a 5 se asignan valores a cada concepto, lo
cual representa la capacidad de la herramienta para
describir ese concepto [10].
Cada concepto tiene asociado un valor ei. Con base
en cada concepto y a las calificaciones asignadas, se
23
realiza el análisis y evaluación de las herramientas de
modelado. La calificación correspondiente a cada
concepto de la herramienta toma un valor numérico,
con relación a lo que permite describir, que proviene
de las calificaciones propuestas en este trabajo (ver
tablas 2, 3 y 4).
Tabla 2: Conceptos y escalas de evaluación para el nivel
organizacional
Para la evaluación de cada herramienta se considera la
siguiente expresión: Σei La expresión representa la
sumatoria de todos los valores obtenidos asignados a
cada concepto en un determinado nivel de abstracción.
Posteriormente se crea una tabla comparativa de todas
las herramientas evaluadas, integrando los resultados
obtenidos y comparándolos entre sí para determinar el
grado de satisfacción de una herramienta en un nivel
de abstracción determinado. La herramienta que
obtiene el valor más alto es considerada como aquella
que proporciona mayores capacidades de modelado de
un proceso de negocio.
Tabla 3: Aspectos y escalas de evaluación para el nivel de
integración
La evaluación consiste en asignar un valor a cada
concepto del método. Por ejemplo, el concepto no
funcional en el nivel web; si el método tiene el
concepto; el método debe tener 1 punto. Si el método
en el concepto no funcional dice quién propone esto y
a quién es aplicado, el método debe tener 2. Si el
método tiene el concepto de no funcional, quién
propone estoy, a quién se aplica y además el tipo de
requerimiento del que se trata, el método debe tener 3.
Si el método tiene el concepto de no funcional, quién
propone estoy, a quién se aplica, el tipo de
requerimiento del que se trata y además la medida para
verificar su cumplimiento, el método debe tener 4
puntos. El método debe tener 5 puntos si tiene el Si el
método tiene el concepto de no funcional, quién
propone estoy, a quién se aplica, el tipo de
requerimiento del que se trata, la medida para verificar
su cumplimiento y además dice que sucede si este no
se cumple.
Tabla 4: Conceptos y escalas de evaluación en el nivel web
4. Resultados del método de evaluación
Para probar el método, se evaluaron los siguientes
métodos utilizando las escalas presentadas: i*, Tropos,
EKD, BPM-UML, OO-Method/OOWS, OOWS [5, 7,
4, 8, 9, 11 y 12] (tables 5, 6 and 7).
Tabla 5: Evaluación a nivel organizacional
Nivel
organizacional
Valor
máximo
I* Tropos EKD BPM-
UML
Actor 5 5 5 5 5
Recurso 5 5 5 2 5
Meta 5 1 3 4 3
Tarea 5 2 4 3 2
Actividad 5 0 2 0 4
Regla de
negocio
5 2 0 5 4
Cualidad 5 3 4 4 4
Total 35 18 23 23 27
Escala
Concepto
1 2 3 4 5
Actor Actor --- Rol Tipo Responsabilidad
Artefacto Artefacto Actor o
function lo
prove
--- Actor o
function
que lo
requiere
Estado del
artefacto
Meta Meta Quién lo
establece,
Función
asociada
Prioridad
asignada
Medida,
Causa de
falla
Oportunidad
para resolver el
problema
Función Función Quién lo
inicia
Quién lo
utilize
Jerarquía Producto
Evento Evento Quien lo
genera,
que lo
inicia
Quién lo
produce,
Jerarquía
Quien
recibe el
producto,
Propietario
de la
función
Estado final
Restricción Restric. Tipo Quién lo
define
A quién se
aplica
Quien o quienes
lo originan
Requerimient
o no
functional
Restric. Quién lo
propone,
a quién se
aplica
Tipo de
requerimient
o
Medición
par aver si
se cumple
Que sucede si
no se cumple
Escala
Concepto
1 2 3 4 5
Actor Actor --- Rol Tipo Responsabilidad
Recurso Recurso Tipo Actor que
lo utilize
--- Actor que lo
prove
Meta Meta Prioridad Problema Oportunidad Verificación
Tarea Tarea Quién
solicita
Quién
ejecuta
Jerarquia Meta asociada
Actividad Actividad Tarea que
apoya
Jerarquía Quién la
active
Cuándo se
termina
Regla de
negocio
Regla de
necocio
Concepto
asociado
Origen Tipo Jerarquía
Cualidad Cualidad Concepto
asociado
--- Origen Medida
Escala
Concepto
1 2 3 4 5
Pagina de
navegación
Página de
navegación
Página de
navegac.
Perfil de
usuario
Ayuda de
navegación
Restric. de
acceso
Perfil de
usuario (rol)
Perfil de
usuario
Rol Cambios de
rol permitidos
Servicios por
usuarios
Edo. del
proceso
de negoc.
Clase (objeto) Clase (objeto) Atributos Relaciones Métodos Tipo de
relaciones
Artefacto Artefacto --- Tipo Proveedor Usuario
Meta Quién define
esta
Servicio
asociado
Prioridad Medida Causa de
fallo,
oport. de
resolverlo
Servicio Evento
relacionado
Jerarquia,
usuario
que
solicita
Agente que
ejecuta.
Resultado.
Usario del
resultado
final
Propietari
o de la
página
Evento Evento Propietari
o del
servicio,
Jerarquía
Clase que
implementa
Quién
solicita
Se
comparte
o no
Pre y pos
condición
Poscondición Precondic. --- --- Evento
asociado
Requerimient
o no funcional
Requerimient
o no funcional
Quién
propone
este,
quién lo
provee
Tipo de
requerimient
o
Medida para
verificar su
cumplimient
o
Qué
sucede si
no se
cumple
24
Tabla 6: Evaluación a nivel de integración
Nivel de
integración
Valor
Máx.
I* Tropos EKD BPM-
UML
OO-
Method
Actor 5 5 5 5 5 1
Artefacto 5 5 5 4 5 4
Meta 5 1 3 4 3 1
Función 5 2 2 5 5 2
Evento 5 0 1 0 4 3
Restricción 5 2 0 5 4 5
No functional 5 3 4 4 4 0
Total 35 17 20 27 30 16
Tabla 7 (a): Evaluación a nivel web (proceso de negocio)
Nivel web Valor
Max.
Tropos OO-Method /
OOWS
OOWS
Perfil de usuario 5 3 4 4
Clase 5 0 5 5
Artefacto 5 4 4 4
Servicio 5 3 3 3
Evento 5 1 3 2
Pre y pos
condición
5 2 5 3
No functional 5 3 0 0
Total 35 16 24 21
Tabla 7 (b): Evaluación a nivel web (navegación pura)
Nivel web Valor
Max.
Tropos OO-Method /
OOWS
OOWS
Pág. de navegación
- relación
5 1 5 5
Perfil de usuario 5 3 4 4
Meta 5 3 0 0
Artefacto 5 4 4 4
Servicio 5 3 3 3
Total 25 14 16 16
En el nivel organizacional la herramienta BPM-
UML obtuvo la mejor calificación para este nivel de
abstracción e i* obtuvo el mas bajo. Los métodos
fueron evaluados con respecto a los parámetros
definidos para el enfoque presentado aquí. Durante la
evaluación de los métodos, cada uno de ellos mostró
sus propias características, por ejemplo, el concepto de
calidad de un proceso de negocio se modela como una
meta de cualidad utilizando BPM-UML. En el nivel de
integración, el resultado muestra las capacidades de
cada método, por ejemplo, BPM-UML obtuvo la mejor
calificación, pero OO-Method obtuvo la menor.
5. Conclusiones
Existen varias propuestas para modelar los
requerimientos de la organización, de la integración y
web, sin embargo cada propuesta tiene sus propios
elementos. Algunos métodos usan los mismos
conceptos pero con nombres diferentes, lo cual los
hace complejos y laboriosos de comparar. El enfoque
presentado aquí unifica la terminología, incrementando
el conocimiento acerca de los conceptos de modelado.
Además propone un enfoque de evaluación par alas
capacidades de modelado de las técnicas y métodos.
Esto ayuda a seleccionar el método o herramienta mas
apropiada a las necesidades de un dominio del
problema. El enfoque ha sido utilizado para evaluar
sistemas de e-learning. Además ha sido aplicado en el
desarrollo de varios casos de estudio para evaluar
métodos de realidad virtual [13] y para apreciar los
conceptos que estos métodos permiten modelar.
6. Referencias
[1] James Pasley,: “How BPEKL and SOA are changing web
services development”, IEEE Internet Computing. May –
June 2005.
[2] Peter F. Green, Michael Rosemann y Marta Indulska,:
“Ontological Evaluation of Enterprise systems
Interoperability Using ebXML”, IEEE Transactions on
Knowledge and Data Engineering, Vol 17, No. 5, IEEE
Computer Society, may 2005.
[3] Mersevy T. and Fenstermacher K.,: “Transforming
software development: and MDA road map”, IEEE
Computer Society, September 2005.
[4] H. E. Eriksson and M. Penker, Bussiness process
modeling with UML, Chichester, UK, Wiley Editorial, 2000.
[5] E. Yu,: Modelling Strategic Relation for Process
Reengineering, Universidad de Toronto, Canada, 1995.
Thesis submitted for the degree of Doctor of Philosophy.
[6] A. Ginige and S. Murugesan,: “Web Engineering: An
Introduction” IEEE Multimedia, pp 1-5, Jan-Mar 2001.
[7] Peter F. Green, Michael Rosemann y Marta Indulska,
“Ontological Evaluation of Enterprise systems
Interoperability Using ebXML”, IEEE Transactions on
Knowledge and Data Engineering, Vol 17, No. 5, IEEE
Computer Society, may 2005.
[8] Olsina, Luis A., Metodología cuantitativa para la
evaluación y comparación de la calidad de sitios web. Tesis
doctoral. Facultad de Ciencias Exactas, Universidad
Nacional de La Plata, noviembre de 1999.
[9] Devanshu Dhyani, Wee Keong Ng, and Sourav S.
Bhowmick,: A survey of web metrics, ACM computer
survey, Vol 34, No. 4. December 2002, pp. 469-503.
[10] William L. Carloson and Betty Thorne, Applied
Statistical Methods for business, Economics, and the Social
Sciences. Prentice Hall, 1997.
[11] Bubenko J., Brash D. y Stirna J.: EKD User Guide,
Royal Institute of technology (KTH) and Stockholm
University, Stockholm, Sweden, Dept. of Computer and
Systems Sciences, 1998.
[12] E. Insfrán, O.Pastor and R. Wieringa: “Requirements
Engineering-Based conceptual Modelling”, Requirements
Engineering Springer-Verlang, vol. 2, pp. 7:61-72, 2002.
[13] Eduardo Islas P., Eric Zabre B. y Miguel Pérez R.: “Evaluación
de herramientas de software y hardware para el desarrollo de
aplicaciones de realidad virtual”,
http://www.iie.org.mx/boletin022004/tenden2.pdf (2005).
27
Lenguaje de scripts para segmentación de imágenes
Francisco Cervantes, Raúl Pinto
Centro Nacional de Investigación y Desarrollo Tecnológico (cenidet)
Interior Internado Palmira s/n, Cuernavaca, Morelos, México.
{cervantes04c,rpinto}@cenidet.edu.mx
Abstract
En este artículo se propone el uso de un lenguaje de
scripts para la etapa de segmentación de imágenes en
la visión artificial. Se describe el lenguaje propuesto,
la arquitectura del sistema para interpretar los scripts
y la estructura general de los programas que integran
a la librería de operadores. Finalmente, se muestran
algunas pruebas y resultados del uso del lenguaje de
scripts que se propone.
1. Introducción
En este artículo se propone la utilización de un
lenguaje de scripts para la segmentación de imágenes.
Hoy en día, los lenguajes de scripts son cada vez más
utilizados en la programación de gráficos, ya que
permiten probar ideas de forma fácil [1]. Además los
lenguajes de script permiten reutilizar código de
manera sencilla [2]. Sin embargo en el área de la visión
artificial existen pocos trabajos enfocados al
procesamiento digital de imágenes mediante el uso de
scripts, un ejemplo se muestra en [3], en el cual el
usuario crea un script mediante objetos gráficos y que
posteriormente ejecuta para realizar el procesamiento
sobre una imagen dada. Un ejemplo de lenguaje de
script comercial es MATLAB [4]. El lenguaje de
scripts que se propone además de permitir probar ideas
de segmentación de imágenes de forma fácil y sin
necesidad de que el usuario conozca cómo realizan el
procesamiento los algoritmos de segmentación,
también induce a la reutilización de código, esto
mediante la existencia de una biblioteca de operadores,
que son independientes entre ellos, y la
implementación de un interprete de scripts. Lo anterior
permite que el lenguaje pueda crecer de forma modular
y sin necesidad de modificar el código ya existente.
Este trabajo está estructurado de la siguiente
manera. En la segunda sección se describen los
elementos básicos del lenguaje de scripts que se está
proponiendo. La tercera sección muestra la estructura
básica que deben tener los operadores de la biblioteca.
En la sección cuarta se describe el esquema general del
intérprete del lenguaje de scripts. Finalmente en la
sección quinta se muestran algunas pruebas y
resultados. Por último se presentan algunas
conclusiones y se comentan trabajos futuros.
2. Elementos básicos del lenguaje de scripts
El lenguaje consta de la definición de los siguientes
tipos de datos: Entero, Real, Cadena, ImagenGris,
Mascara y Contorno. De igual forma se definen las
operaciones de asignación, suma, resta, multiplicación
y división. El lenguaje posee las siguientes estructuras
básicas:
• Declaración.
• Asignación.
• Llamada de un operador.
Las sintaxis correspondientes de estas estructuras se
presentan a continuación.
Declaración:
tipo_dato nombre_variable_1,..., nombre_variable_N
Asignación:
nombre_variable = nombre_variable_N
nombre_variable = expresión_aritmetica
nombre_variable = nombre_operador (argumentos)
Llamada de un operador:
nombre_operador (argumentos)
Lo anterior forma una estructura general, y el resto
depende de los operadores que sean registrados en la
biblioteca de operadores. A lo anterior se le denomina
núcleo del lenguaje. Es por esta razón que el intérprete
del lenguaje de scripts es tan importante. Esta forma de
definir el lenguaje en donde sólo se establecen las
estructuras pero no se definen los elementos del
lenguaje ofrece la ventaja de permitir agregar
elementos o comandos nuevos de forma dinámica, sin
28
la necesidad de modificar el código del núcleo, además
cada operador es independiente entre ellos. La única
restricción para agregar un operador a la biblioteca es
seguir la especificación de una estructura básica para la
interacción entre el núcleo y los operadores.
3. Estructura básica de los operadores
Para que un operador pueda ser utilizado como
parte de la biblioteca debe de poseer la estructura
general que se muestra en la figura 1.
Librerias del núcleo para el manejo de
datos (números, cadenas, imágenes y
mascaras).
Recepción de argumentos (rutas de
archivos donde se encuentra el
contenido de los argumento).
Cuerpo del operador (procedimientos
del algoritmo de PDI).
Retornar resultado (se hace
almacenando el contenido en la ruta
indicada por el último argumento del
programa).
Figura 1 Estructura general de un operador
En la figura 1 se muestra de manera general la
estructura que debe poseer un operador para que pueda
formar parte de la biblioteca y pueda interactuar con el
núcleo del lenguaje. Algunos elementos de la estructura
pueden omitirse, por ejemplo, en la cabecera sólo se
deben incluir aquellas librerías del núcleo que se
necesiten. No es necesario que un operador retorne
algún resultado, por ejemplo el operador para mostrar
una imagen sólo muestra la imagen en pantalla sin
necesidad de retornar datos al núcleo. Por defecto es
necesario que un operador reciba al menos un
argumento.
Se puede ver claramente que el requerimiento para
que un operador pueda ser utilizado como parte de la
biblioteca es que utilice los tipos de datos definidos en
el núcleo del intérprete y que los parámetros que
necesite para su ejecución se reciban mediante la
especificación de las rutas de archivos en donde se
encuentra el contenido. Finalmente también es
necesario que los datos de salida se almacenen en un
archivo especificado por el último argumento que
recibe el programa. En seguida se muestra el ejemplo
de un operador para obtener el negativo de una imagen.
Figura 2 Ejemplo de un operador para calcular el negativo de
una imagen
Cabe aclarar que por el momento el núcleo del
intérprete sólo soporta imágenes en formato BMP de
24 bits.
4. Esquema general del intérprete de
scripts
Ya que se ha presentado la estructura general que
deben de tener los operadores de la biblioteca, se
muestra ahora el esquema general del intérprete de
scripts. En la figura 2 se observa cada uno de los
componentes del intérprete y las relaciones entre ellos
y la biblioteca de operadores.
Figura 3 Esquema general del intérprete de scripts
Biblioteca
de
operadores
Interprete
Módulo de procesos
Módulo de memoria
Tipos de datos
Núcleo del intérprete
script
Resultado del
procesamiento
//Tipo de dato del núcleo
#include "CImagGris.h"
AnsiString CharToAnsiString(char *arreglo);
int main(int argc, char* argv[])
{
//Argumentos: Imagen a procesar, ruta donde
//se guardará la imagen resultante.
if ( argc < 3 ) exit ( ERR_NUM_PARAM ) ;
char * a_entrada = argv [ 1 ]; //parámetro 1
char * a_salida = argv [ 2 ]; //parámetro 2
AnsiString entrada,salida;
CImagGris Imagen;
entrada=CharToAnsiString(a_entrada);
salida=CharToAnsiString(a_salida);
if(Imagen.leerArchivo(entrada)==false)
exit(ERR_IMAG_EN);
//Algoritmo para negativo de esta imagen
int x,y,h,w;
Byte pixel;
h=Imagen.Alto();
w=Imagen.Ancho();
for(x=0;x<w;x++)
{for(y=0;y<h;y++)
{ pixel=Imagen.getPixel(x,y);
Imagen.setPixel(x,y,255-pixel);
}
}
//Se almacena la imagen resultante
if(Imagen.escribirArchivo(salida)==false)
exit(ERR_NO_MEMO);
exit ( BIEN ) ;
}
29
Mediante esta estructura lo primero que hace el
sistema es explorar la biblioteca de operadores para
generar las estructuras correspondientes a cada
operador (sintaxis, semántica), para posteriormente
comenzar a analizar el script de entrada y ejecutar los
operadores.
5. Pruebas y pruebas
Se han realizado distintas pruebas con el fin de
mostrar las ventajas que brinda el utilizar un lenguaje
de scripts para segmentar imágenes. Por ejemplo, el
hecho de que un usuario final puede utilizar el lenguaje
sin que el usuario interactúe con los algoritmos.
La primera prueba que se presenta aquí, consiste en
mostrar cómo crear un operador nuevo para binarizar
imágenes. Primero cabe aclarar que es necesario
utilizar un compilar de C++ Builder. En la figura 4 se
presenta el código del operador.
Figura 4 Operador para binarizar.
Se puede observar en la figura anterior que crear un
nuevo operador es bastante sencillo, únicamente hay
que respetar la estructura general que se ha
especificado. Ahora sólo hay que compilar el operador
para generar el ejecutable. En este momento ya se tiene
creado el nuevo operador, ahora sólo hay que
registrarlo en la biblioteca, y en esto consiste la prueba
número dos. Para registrar un nuevo operador se utiliza
la opción Métodos del menú Herramientas, del sistema
para interpretar scripts. En la figura 5 se muestra este
menú.
Figura 5 Interfaz del intérprete de scripts
Al dar click en este menú se accede a una ventana
en donde se registra el nuevo operador, esto se observa
en la figura 6. Lo único que hay que hacer es indicar en
donde se encuentra el archivo ejecutable, asignarle un
alias; con el cual será utilizado desde el lenguaje de
scripts, después se especifican los parámetros de
entrada y salida.
Figura 6 Ventana para registrar operador
Una vez que se registra el operador, esta listo para
utilizarse como parte del lenguaje, tal y como se
observa en la figura 7. En donde se crea un script para
binarizar una imagen y se muestran la imagen inicial y
la imagen final.
Con estas pruebas se observan las ventajas que
proporciona utilizar un lenguaje de scripts. Mediante la
capacidad de registro de nuevos operadores se
mantiene el lenguaje abierto a incrementar su tamaño el
cual actualmente consta de 25 operadores de
segmentación y 5 para descripción de imágenes. Se
puede observar en la prueba tres cómo interactúan los
#include "CBMP24.h"
#include "CNumero.h"
int main(int argc, char* argv[])
{
if ( argc < 4 ) exit ( ERR_NUM_PARAM ) ;
char * a_imag = argv [ 1 ]; // parámetro 1
char * a_umbral = argv [ 2 ]; // parámetro 2
char * a_salida = argv [ 3 ]; // parámetro 3
int valorUmbral;
AnsiString imag,umbral,salida;
CIMAGEN_BMP24 Imagen;
CNumeroMemoria UmbralBinario;
imag=CharToAnsiString(a_imag);
umbral=CharToAnsiString(a_umbral);
salida=CharToAnsiString(a_salida);
if(Imagen.leerArchivo(imag,GRIS)==false)
exit(ERR_IMG_EN);
if(UmbralBinario.leerArchivo(umbral)==false)
exit(ERR_UMB_EN);
valorUmbral=(int)UmbralBinario.Valor();
int x,y,h,w;
Byte pixel;
h=Imagen.Alto();
w=Imagen.Ancho();
for(x=0;x<w;x++)
{
for(y=0;y<h;y++)
{
pixel=Imagen.getPixelGrey(x,y);
if(pixel>=(Byte)valorUmbral)
Imagen.setPixelGrey(x,y,255);
else
Imagen.setPixelGrey(x,y,0);
}
}
if(Imagen.escribirArchivo(salida)==false)
exit(ERR_NO_MEMO);
exit ( BIEN ) ;
}
Figura 7 Script para binarizar imágenes
30
operadores; BinarizarImagen y VerImagenGris. Estos
scripts pueden ser almacenados para ser reutilizados
posteriormente. Finalmente la administración de la
biblioteca de operadores es bastante fácil ya que al
igual que la ventana para registrar nuevos operadores,
también el sistema permite modificar e incluso eliminar
operadores existentes.
6. Conclusiones
Con este trabajo se concluye que el uso de un
lenguaje de scripts para la segmentación de imágenes
es viable. Se observó que mediante el uso de scripts se
puede abstraer la funcionalidad de los algoritmos de
segmentación, con lo que el usuario final no necesita
conocer los algoritmos. Finalmente se presume que los
lenguajes de scripts pueden ser usados en otras etapas
de la visión artificial como preprocesamiento,
descripción, etc.
La biblioteca de operadores que utiliza el intérprete
está ideada para que pueda crecer de forma modular,
esto es, la biblioteca crece con cada operador que se
registra en ella, con lo cual muestra una flexibilidad del
lenguaje para crecer. Por otro lado los operadores no
pierden la independencia entre ellos.
Por último se propone en un futuro eliminar la
necesidad de que los operadores, que integran la
biblioteca, se encuentren en una sola computadora. Es
decir se observa la posibilidad de tener la biblioteca de
operadores distribuida en distintas computadoras.
7. Referencias
[1] M. Villar, “Guía de lenguajes de script para prototipazo
rápido”, http://www.codepixel.com/tutoriales/prototipado/,
2006.
[2] K. Muehler, “Adaptive script based animations for
medical education and intervention planning”,
Department of Simulation and Graphics, University of
Magdeburg, Germany.
[3] “Sistema interactivo para la enseñanza de la visión
artificial”, Depto. de Sistemas Inteligentes Aplicados,
Escuela Universitaria de Informática, Universidad
Politécnica de Madrid, 2006.
[4] “MathLab”, http://www.mathworks.com/, 2006.
31
Recuperación de Información de Páginas Web mediante una Ontología que es
poblada usando Clasificación Automática de Textos.
Ismael R. Ponce M., José A. Zárate M., Juan C. Olivares R.
Centro Nacional de Investigación y Desarrollo Tecnológico
{rafaxzero04c, jazarate, jcolivares04c}@cenidet.edu.mx
Resumen
En este artículo se describe una propuesta para
ayudar al usuario en la ardua tarea que significa el
recuperar información de la Web, especialmente
cuando las consultas se refieren a un tema o enfoque
específico. Para ello se sugiere la utilización de una
ontología cuyos ejemplares sean enlaces a páginas
Web del dominio sobre el cuál fue construida,
aprovechando el orden y categorización que brindan
para guiar al usuario a través de los conceptos que la
integran y pueda encontrar información relacionada a
ellos. Se describen los pasos seguidos para la creación
de una ontología sobre un dominio particular y las
actividades necesarias para realizar una clasificación
automática de páginas Web, cuyos enlaces serán sus
ejemplares.
Palabras clave: Ontología, métodos de clasificación
automática, modelo del espacio vectorial.
1. Introducción
Hoy en día conforme ha ido progresando la
evolución tecnológica, la cantidad de información que
se genera a cada segundo es inconmensurable, pero no
solo eso, si no que la importancia de disponer de ella a
tomado tal importancia, que se está viviendo en una era
donde la información rige al mundo y sus decisiones.
Internet se ha convertido en una gran fuente de
información, pero mientras más grande es más difícil
es encontrar el contenido deseado. Se han tratado
diversas maneras de recuperar información, para
ejemplo basta con ver los motores de búsqueda y las
distintas técnicas que siguen para brindarla (como los
buscadores Google, Yahoo!, Ask, Vivisimo, entre
muchos otros); sin embargo pese a que de alguna
manera son de ayuda al momento de realizar consultas,
se debe lidiar con resultados no del todo deseados.
Así pues, se están tratando diversas maneras para
ayudar a la búsqueda de recursos en Internet, que van
desde la concordancia de palabras a técnicas basadas
en la popularidad de los sitios, desgraciadamente a
muchos usuarios ya no les basta este tipo de resultados
si no que requieren soluciones más específicas.
La alternativa propuesta para este problema, es
utilizar el paradigma de las ontologías para la búsqueda
de recursos sobre un tema particular. Al trabajar sobre
un dominio concreto, se espera una búsqueda
especializada, además, gracias al uso de las ontologías
y el orden que proveen sobre los conceptos que la
conforman, suponen una gran ayuda para que el
usuario pueda encontrar la información que desea.
En este documento nos centramos en la manera de
poder poblar la ontología con enlaces a páginas Web,
haciendo uso de técnicas de clasificación automática.
En nuestro experimento se logró reportar un 86% de
elementos bien clasificados.
En el artículo se describen brevemente las etapas
consideradas para llevar a la práctica la idea propuesta.
Se menciona primero un breve panorama de la manera
que tienen de recuperar información algunos motores
de búsqueda, después se abarca el desarrollo de una
ontología afín al uso que se le espera dar, concluyendo
con los pasos para la utilización de un método de
clasificación automática que será usado para poblar la
ontología y las pruebas efectuadas considerando los
métodos Naive Bayes, k vecinos más cercanos y
máquinas de soporte vectorial.
2. Motores de búsqueda
En un motor de búsqueda tradicional las consultas
generalmente se realizan a partir de palabras clave,
obteniendo por resultado un listado de direcciones Web
que traten sobre las palabras solicitadas. Algunos de
los motores más conocidos son Google, Yahoo!, MSN
Search entre otros.
El caso de Google destaca por la utilización de su
tecnología denominada PageRank [1], en la cuál se
utiliza una fórmula que calcula el peso de cada página
que almacena en su base de datos, de acuerdo a la
32
cantidad de enlaces que le hagan referencia. A mayor
cantidad de enlaces a una página, mayor su puntuación,
convirtiéndose así en un concurso de popularidad [2].
Desgraciadamente se ha mostrado que los resultados
pueden ser manipulados mediante el conocido Google
bombing [3].
Otra manera de recuperar información es mediante
los directorios Web, que consisten en una organización
y clasificación manual de direcciones Web por temas o
categorías. Uno de los directorios más representativos
es el Open Directory Project [4], en el cuál un conjunto
de editores voluntarios son quienes se encargan de
listar los enlaces a páginas Web dentro de una
ontología, donde enlaces con temas semejantes son
agrupados en categorías. El inconveniente que se
puede apreciar es que requiere demasiada intervención
humana para poder dar de alta los enlaces a una página.
Un tipo especial de motores de búsqueda son
aquellos que incorporan agrupamiento (clustering); el
agrupamiento consiste en particionar un conjunto de
objetos similares en otros subconjuntos, donde los
elementos que los conforman compartan características
comunes. Este tipo de motores de búsqueda devuelven
los resultados que encuentran para una consulta
acomodados en grupos; ejemplos de ellos son
Clusty.com y Vivisimo.com.
Por último, encontramos los buscadores
especializados, los cuáles se centran en recuperar
enlaces a documentos técnicos y científicos. Por
ejemplo Citeseer, que es un buscador de documentos
enfocados a la computación, sirviéndose de las citas
bibliográficas para considerar la importancia de los
documentos que son consultados.
Pese a que se han desarrollado estas y otras técnicas
para recuperar información de la Web, esta área aún
tiene mucho que ofrecer, por lo que se siguen buscando
nuevas alternativas para ayudar al usuario, como lo es
nuestro caso.
3. Fase de desarrollo de una ontología
Gruber [5] define a una ontología como la
especificación explícita de una conceptualización, lo
que quiere decir identificar los conceptos que integran
a un dominio y las interrelaciones que existen entre
ellos, en una representación formal, de manera que se
pueda compartir y reutilizar.
El lenguaje estándar establecido por el W3C para
realizar este tipo de formalizaciones es el OWL (Web
Ontology Language). La utilización de este estándar
además de las ventajas que permite su reutilización por
otros, recae en que muchas herramientas relacionadas
con el diseño y uso de ontologías se apegan a éste, ya
sea editores, razonadores, etc.
La ontología desarrollada partió considerando tales
pasos, junto con la metodología propuesta por Uschold
y King [6]. El dominio sobre el cuál se desarrollo la
ontología fue sobre el tema del procesamiento del
lenguaje natural (PLN). Para llevarla a cabo, se utilizó
el editor de ontologías Protégé 3.1.1, el plug-in
Protégé-OWL 2.1 junto con el plug-in OWL Wizards,
además de los razonadores FaCT++ 0.99.6 y RacerPro
1.9.0, usados para comprobar su consistencia.
Las clases se componen de conceptos relacionados
con el área del PLN, abarcando desde investigadores,
escuelas, herramientas y áreas de aplicación,
principalmente.
4. Aprendizaje supervisado para
clasificación automática de textos
Una vez desarrollada la ontología continúa la fase
de poblarla con ejemplares. Dada la bastedad de
páginas que existen en la red, una clasificación manual
de éstas en las clases establecidas dentro de la
ontología sería una tarea sumamente costosa, y que en
gran medida es lo que ya realizan los directorios Web.
Por lo tanto se buscó una manera de poder automatizar
este proceso, recurriendo al aprendizaje supervisado,
en el que mediante técnicas estadísticas y matemáticas
se puede conseguir una clasificación automática de
textos.
Este enfoque se centra en tener un conjunto de
documentos de entrenamiento previamente
clasificados, que se usarán para aprender a clasificar a
nuevos documentos. Para ello, se deben trasformar los
documentos de su formato inicial a una representación
que pueda ser usada por un algoritmo de aprendizaje
para la clasificación.
Para fines de prueba solamente se trabajó con
páginas en HTML. A continuación se mencionan los
pasos necesarios que conllevan a este proceso. La
colección de entrenamiento utilizada consistió de 1624
documentos, previamente clasificados en 26 clases
tomadas de la ontología desarrollada, además de una
clase denominada nula en la que se clasifican los
documentos no relevantes para el tema del que trata la
ontología. Las 26 clases consideradas son solamente
una muestra representativa de las existentes en la
ontología y fueron tomadas con fines de prueba.
4.1. Preprocesamiento de los documentos
No todos los elementos que aparecen en los
documentos son útiles para su clasificación, es decir
hay elementos que por sí mismos no dicen nada del
contenido del documento en el que se encuentran y que
por lo tanto pueden ser eliminados; entre ellos se
33
incluyen a los signos de puntuación y a las etiquetas de
HTML; también aparecen palabras de uso muy
frecuente, palabras que aparecen en una gran cantidad
de documentos, lo que hace que su poder
discriminatorio sea muy bajo; este tipo de palabras se
les conoce como palabras vacías (stopwords), ejemplos
de ellas son los artículos, pronombres, preposiciones,
conjunciones, entre otras semejantes.
Para definir la palabras vacías a eliminar se recurrió
a listas disponibles en DOCUM [7], en SMART [8] y
en el Institut interfacultaire d'informatique de la
Universidad de Neuchatel [9], así como otras palabras
identificadas durante el proceso de pruebas.
Al estar trabajando sobre un dominio específico,
existe cierto control sobre los términos que le
pertenecen, por lo que se sugirió un emparejamiento
entre distintas acepciones que puede tener un mismo
concepto a una sola representación, es decir, si a un
concepto se le puede llamar de distintas formas,
consideramos unificarlas y dentro del proceso de
clasificación considerarlas bajo una forma única. Para
ello se tomo como punto de partida los conceptos que
integran la ontología.
Por último, muchas palabras aunque diferentes,
tienen la misma raíz léxica; se siguió un proceso de
lematización básica a partir del Algoritmo de Porter
[10], con el cuál se busca reducir palabras a su raíz.
Todos los pasos anteriormente mencionados tienen
como fin disminuir el tamaño de la colección de
entrenamiento y hacerla más manejable, eliminando las
partes no relevantes para continuar el proceso de
clasificación automática. En nuestro ejercicio, en
promedio se redujo hasta en un 70% el tamaño original
de los documentos.
4.2. Modelado del espacio vectorial
El modelo del espacio vectorial (MEV) fue
propuesto por Salton en 1975. La idea básica detrás de
este modelo es hacer una tabla donde se manejan los
documentos y las palabras que estos contienen,
asignándoles un peso a cada una de ellas. Cada vector
que conforma la matriz representa un documento y la
distribución de las palabras que en él aparecen. Se trata
de una matriz de m x n, donde m son los documentos y
n las palabras registradas.
Existen distintos tipos de ponderaciones para las
palabras dentro del MEV, las que consideramos en
nuestras pruebas fueron la ponderación boleana (el
peso de la palabra es 0 si no aparece en el documento,
y 1 si aparece), el ponderado por frecuencia de
aparición (el peso del término depende de la cantidad
de ocurrencias que tenga dentro del documento) y por
último el ponderado tf-idf (que se calcula considerando
el promedio de la frecuencia de un término contra la
frecuencia documental inversa del mismo [11]).
4.3. Reducción de la dimensionalidad en el
MEV
No se pueden considerar todas las palabras que
integran la colección de entrenamiento dentro del
MEV, ya que la dimensión que tendría sería enorme.
Existen distintas técnicas para reducir la
dimensionalidad, como la frecuencia documental, que
considera un valor mínimo de apariciones que debe
tener cada palabra dentro del total de documentos, para
discriminar aquellas cuya aparición sea muy pequeña y
dejar las que presenten mayor frecuencia documental.
Otra técnica que se consideró fue la ganancia en la
información (GI), en la cuál se calcula la diferencia en
la entropía del sistema contra la entropía de cada
palabra. Esta diferencia, medida en bits, indica que tan
relevante y cuanta información aporta la palabra como
factor determinante para llevar a cabo la clasificación.
La cantidad de palabras totales que conforman la
colección de entrenamiento ya procesada es de
2552196 palabras, siendo entre estas 125891 palabras
diferentes. Como se puede apreciar, la cantidad de
palabras diferentes es demasiado grande para ser
manejada en el MEV, por lo que se consideraron
aquellas palabras que pasaran la frecuencia documental
con un valor mayor o igual a 15, pasando un total de
8966 palabras, lo que representa un 7.12% del total
original, sin embargo aún es una cantidad muy grande,
por lo que se aplicó la GI sobre estas palabras.
La entropía calculada de la colección total es de
3.97; se consideraron aquellas palabras cuya GI fuera
igual o superior a 0.1, resultando en 527 palabras
diferentes, un 0.42% del tamaño original. Las palabras
(ya lematizadas y normalizadas) que mayor GI
presentaron, fueron: nlp (0.552), natural_language
(0.479), knowledge (0.424) y data_min (0.335).
4.4. Algoritmos de clasificación automática
Una vez obtenida la representación MEV de la
colección de documentos de entrenamiento, se puede
aplicar un método de clasificación automática para
clasificar nuevos elementos. Se consideraron los
métodos de clasificación automática de Naive Bayes,
k-vecinos más cercanos y máquinas de soporte
vectorial para realizar una serie de pruebas y encontrar
el método que mejor resultados dé, considerando
además las ponderaciones mencionadas en la sección
4.2. Se utilizó WEKA para llevar a cabo las pruebas;
los resultados mostrados en la Tabla 1 corresponden
con la utilización de la validación cruzada de diez
34
corridas, mostrando el porcentaje de elementos bien
clasificados.
Tabla 1. Porcentajes de elementos bien clasificados.
booleano tf tf-idf
NaiveBayes 62.7463 55.8498 81.2192
kNN 84.5443 85.0369 84.4212
SVM 86.2685 66.7488 82.0813
0
10
20
30
40
50
60
70
80
90
100
NaiveBayes kNN SVM
Algoritm o de clasificación
boleano tf tfidf
Figura 1. Resultados de las pruebas sobre la
clasificación.
El mejor resultado se obtuvo con el ponderado
booleano utilizando máquinas de soporte vectorial, los
detalles de esta clasificación se muestran en la Tabla 2.
Utilizando el entrenamiento que mejor resultado
brindó se puede comenzar a clasificar nuevos
documentos que se obtengan en la Web, siguiendo los
pasos del preprocesamiento y representación del MEV;
una vez obtenida la clase a la que pertenece, se guarda
la dirección de la página como ejemplar de la
ontología.
Tabla 2. Resultados de SVM con ponderación
boleana
Elementos bien clasificados 1401 86.27%
Elementos mal clasificados 223 13.73%
Raíz del error medio cuadrático 0.1829
5. Conclusiones
A partir los resultados obtenidos, se optó por la
utilización del ponderado booleano junto con el
método de clasificación de máquinas de soporte
vectorial; el uso del ponderado booleano se justifica
debido a que se puede considerar que la mera aparición
de una palabra dentro de un documento es un buen
indicador de su valor de discriminación, especialmente
al considerar palabras no tan comunes en el habla
ordinaria, pero que si son relevantes para el dominio
sobre el que se trabaja, como lo demuestra el hecho
que gran parte de las palabras con mayor ganancia en
la información pertenecían al dominio del PLN, sobre
el cuál se realizó el trabajo.
Con los resultados obtenidos de las palabras con
mayor GI y de la exactitud obtenida en el mejor caso
por el método de clasificación seleccionado, es un buen
aliciente para considerar el uso de la clasificación
automática para poblar la ontología.
Con respecto al trabajo futuro, una vez poblada la
ontología, continua el proceso de guiar al usuario a
través de la ontología para que encuentre enlaces
relacionados a las consultas que efectué sobre el
dominio del PLN.
Al concluir este trabajo, entre los beneficios
esperados se encuentran el guiar al usuario a través de
la clasificación de la ontología y sus distintas
relaciones, haciendo uso de la técnica del lenguaje
natural acotado, comprobar la hipótesis de que si
existen elementos ordenados es más sencillo encontrar
los deseados y ahorrar trabajo al usuario al mostrarle
solamente documentos temáticos relacionados con los
conceptos sobre los cuáles consulte.
6. Referencias
[1] S. Brin, L. Page, “The Anatomy of a Large-Scale
Hypertextual Web Search Engine”, Computer Science
Department, Stanford University, Stanford, disponible en
línea: http://www.db.stanford.edu/~backrub/google.html,
visitado en diciembre de 2005.
[2] M. Miller, 501 Web Site Secrets: Unleashed the Power of
Google, Amazon, eBay and More, Whiley Publishing, Inc.,
EUA, 2004.
[3] Google bomb, Wikipedia, the free encyclopedia,
disponible en línea: http://en.wikipedia.org/wiki/
Google_bomb, visitado en marzo de 2006.
[4] ODP – Open Directory Project, http://dmoz.org/, visitado
en abril de 2006.
[5] T. Gruber, A Translation Approach to Portable Ontology
Specifications, Knowledge Acquisition, 1993.
[6] M. Uschold y M. King, Towards a Methodology for
Building Ontologies, Workshop on Basic Ontological Issues
in Knowledge Sharing, 1995.
[7] DOCUM, a multilingual stopword file for CDS-ISIS,
http://library/wur.nl/isis/docum.html, visitado en noviembre
de 2005.
[8] ftp://ftp.cs.cornell.edu/pub/smart/, visitado en noviembre
de 2005.
[9] J. Savoy, CLEF and multilingual information retrieval,
Institut interfacultaire d'informatique, Universidad de
Neuchatel, Suiza, 2005, http://www.unine.ch/info/clef/,
visitado en noviembre de 2005.
[10] The English (Porter2) stemming algorithm,
http://snowball.tartarus.org/algorithms/english/stemmer.html,
visitado en diciembre de 2005.
[11] G. Salton y M. J. McGill, Introduction to modern
information retrieval. McGraw-Hill, 1983, EUA.
35
Sistemas Híbridos Neuro-Simbólicos
Vianey Guadalupe Cruz Sánchez, Gerardo Reyes Salgado, Osslan Osiris Vergara Villegas
Centro Nacional de Investigación y Desarrollo tecnológico (cenidet)
Interior Internado Palmira S/N, Col. Palmira. C.P. 62490.
Cuernavaca Morelos México.
{vianey,osslan}@cenidet.edu.mx
Resumen
Actualmente el enfoque de los Sistemas Híbridos
(SH) es muy utilizado para resolver problemas donde
se involucran diferentes tipos de representación del
conocimiento en un solo sistema. Esta integración
ofrece la ventaja de poder compensar las debilidades
de cada uno de los sistemas complementando sus
fortalezas. Los Sistemas Híbridos Neuro-Simbólicos
(SHNS) surgen de los SH como un enfoque que brinda
la posibilidad de implementar sistemas robustos donde
la naturaleza conexionista y simbólica se encuentran
presentes en su ambiente. La razón del estudio de
SHNS es implementarlos en el proceso del sistema de
visión artificial, de tal forma que se puedan proponer
diferentes estrategias de solución entre los diferentes
tipos de representaciones involucrados en este
proceso, para ello el ciclo de desarrollo de los SH y
los criterios de clasificación de los SHNS juegan un
papel muy importante en la definición de estas
estrategias.
1. Introducción
En décadas pasadas, era muy común trabajar con un
solo tipo de representación del conocimiento. Incluso,
existía una competencia por demostrar que la
representación utilizada era mejor con respecto a otra
que resolvía el mismo problema. Sin embargo, con el
paso del tiempo y al observar las debilidades de cada
una de las representaciones y las propiedades
complementarias que existían entre ellas, se decidió
probar sus capacidades integrando estas
representaciones en un solo sistema (Híbrido), en el
cual se obtuvieron mejores resultados que los
obtenidos de forma individual.
El enfoque híbrido se inspira en los mecanismos de
la propia naturaleza, donde: según [1], los humanos
somos máquinas de procesamiento de información
híbrido, nuestras acciones están gobernadas mediante
la combinación de la información genética y de la
información adquirida a través del aprendizaje. Gracias
a esta combinación se tiene la posibilidad de utilizar
con éxito diferentes métodos de procesamiento en
ambientes cambiantes y complejos.
Bajo este esquema natural, los sistemas híbridos
han emergido como una nueva forma de dar solución a
problemas complejos donde se requieren de varias
representaciones del conocimiento para utilizar la
información proveniente del ambiente, la cual
determina las estrategias que se deben utilizar para
poder incrementar el conocimiento y desarrollar
sistemas más robustos [2].
Sin embargo, el diseño y desarrollo de estos
sistemas es difícil debido al gran número de partes, o
componentes, que se encuentran involucrados y a las
diferentes interacciones que existe entre ellos [3].
La tendencia continúa en el estudio y la
construcción de sistemas híbridos cuyas estrategias de
solución sean las que mejor se adapten al problema a
resolver. Por ello, en este artículo se presenta un
estudio del proceso que implica el diseño y desarrollo
de un sistema híbrido así como de los criterios
considerados para la clasificación de un tipo particular
de Sistema Híbrido (SH) el Sistema Híbrido Neuro-
Simbólico (SHNS), el cual ha sido utilizado en
aplicaciones tales como: el reconocimiento de objetos.
2. Diseño y desarrollo de un sistema
híbrido
En [1] se propone un ciclo de desarrollo de un SH,
en el cual se presenta el proceso para la construcción
de dicho sistema. La importancia de este modelo son
las bases sobre las cuales un SHNS puede apoyarse
para su diseño.
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward
Lookingforward

Mais conteúdo relacionado

Destaque

Presentacion Toptur 3
Presentacion Toptur 3Presentacion Toptur 3
Presentacion Toptur 3adsmlu
 
Pages from [dictionnaire combinaison de mots ]
Pages from [dictionnaire combinaison de mots ]Pages from [dictionnaire combinaison de mots ]
Pages from [dictionnaire combinaison de mots ]macht2012
 
2014 ramillies - championnat - publicit s
2014   ramillies - championnat - publicit  s2014   ramillies - championnat - publicit  s
2014 ramillies - championnat - publicit sFabrice Carlier
 
Mi Centro Actv4
Mi Centro Actv4Mi Centro Actv4
Mi Centro Actv4germanifa
 
Perros atacando cocodrilo
Perros atacando cocodriloPerros atacando cocodrilo
Perros atacando cocodrilovolksrider
 
Rédaction en relation médias
Rédaction en relation médiasRédaction en relation médias
Rédaction en relation médiasleclercconseil
 
Santé en chiffres 2013 édition 2014
Santé en chiffres 2013 édition 2014 Santé en chiffres 2013 édition 2014
Santé en chiffres 2013 édition 2014 Lahbib Lahdab
 
Catalogue poeles a bois charleston cashin 2015
Catalogue poeles a bois charleston cashin 2015Catalogue poeles a bois charleston cashin 2015
Catalogue poeles a bois charleston cashin 2015PoelesaboisCASHIN
 
approchesinterculturelles1
approchesinterculturelles1approchesinterculturelles1
approchesinterculturelles1M@rsouin
 
Aguda, Garve,E Sdrujula
Aguda, Garve,E SdrujulaAguda, Garve,E Sdrujula
Aguda, Garve,E Sdrujulaguest996c27
 

Destaque (20)

French 16
French 16French 16
French 16
 
Presentacion Toptur 3
Presentacion Toptur 3Presentacion Toptur 3
Presentacion Toptur 3
 
Pages from [dictionnaire combinaison de mots ]
Pages from [dictionnaire combinaison de mots ]Pages from [dictionnaire combinaison de mots ]
Pages from [dictionnaire combinaison de mots ]
 
2014 ramillies - championnat - publicit s
2014   ramillies - championnat - publicit  s2014   ramillies - championnat - publicit  s
2014 ramillies - championnat - publicit s
 
French 09
French 09French 09
French 09
 
Tomemos Mate
Tomemos MateTomemos Mate
Tomemos Mate
 
Mi Centro Actv4
Mi Centro Actv4Mi Centro Actv4
Mi Centro Actv4
 
Perros atacando cocodrilo
Perros atacando cocodriloPerros atacando cocodrilo
Perros atacando cocodrilo
 
French 04
French 04French 04
French 04
 
Rédaction en relation médias
Rédaction en relation médiasRédaction en relation médias
Rédaction en relation médias
 
SFK 2007 Alain Leroy
SFK 2007 Alain LeroySFK 2007 Alain Leroy
SFK 2007 Alain Leroy
 
Santé en chiffres 2013 édition 2014
Santé en chiffres 2013 édition 2014 Santé en chiffres 2013 édition 2014
Santé en chiffres 2013 édition 2014
 
Catalogue poeles a bois charleston cashin 2015
Catalogue poeles a bois charleston cashin 2015Catalogue poeles a bois charleston cashin 2015
Catalogue poeles a bois charleston cashin 2015
 
Hijos
HijosHijos
Hijos
 
approchesinterculturelles1
approchesinterculturelles1approchesinterculturelles1
approchesinterculturelles1
 
El Hombre.
El Hombre. El Hombre.
El Hombre.
 
Mada'in saleh
Mada'in salehMada'in saleh
Mada'in saleh
 
Tweeter
TweeterTweeter
Tweeter
 
Aguda, Garve,E Sdrujula
Aguda, Garve,E SdrujulaAguda, Garve,E Sdrujula
Aguda, Garve,E Sdrujula
 
Dix ans après Maputo. Note APESS : Elements de bilan du soutien public à l’é...
Dix ans après Maputo. Note APESS : Elements de bilan du soutien public à l’é...Dix ans après Maputo. Note APESS : Elements de bilan du soutien public à l’é...
Dix ans après Maputo. Note APESS : Elements de bilan du soutien public à l’é...
 

Semelhante a Lookingforward

Unidad I PNF HERRAMIENTAS TECNOLOGICAS.docx
Unidad I PNF HERRAMIENTAS TECNOLOGICAS.docxUnidad I PNF HERRAMIENTAS TECNOLOGICAS.docx
Unidad I PNF HERRAMIENTAS TECNOLOGICAS.docxzolangel1
 
9. pci noveno nancy 2012-2013
9. pci noveno nancy 2012-20139. pci noveno nancy 2012-2013
9. pci noveno nancy 2012-2013Allan Egas
 
CODETEC- Proyecto Final Taller de Investigacion 2
CODETEC- Proyecto Final Taller de Investigacion 2CODETEC- Proyecto Final Taller de Investigacion 2
CODETEC- Proyecto Final Taller de Investigacion 2Hugo Alberto Rivera Diaz
 
Máster CALSI en el Campus Gandia Especialidad Social Media
 Máster CALSI en el Campus Gandia Especialidad Social Media Máster CALSI en el Campus Gandia Especialidad Social Media
Máster CALSI en el Campus Gandia Especialidad Social MediaComunica2 Campus Gandia
 
Contenido Curricular 3º Eso Tecnologia
Contenido Curricular 3º Eso TecnologiaContenido Curricular 3º Eso Tecnologia
Contenido Curricular 3º Eso Tecnologiamagt99
 
Estrategia y Metodología de la Robótica en el Ámbito Educativo, Experiencias ...
Estrategia y Metodología de la Robótica en el Ámbito Educativo, Experiencias ...Estrategia y Metodología de la Robótica en el Ámbito Educativo, Experiencias ...
Estrategia y Metodología de la Robótica en el Ámbito Educativo, Experiencias ...jsanchez
 
Inteligencia Artificial memorias.pptx
Inteligencia Artificial memorias.pptxInteligencia Artificial memorias.pptx
Inteligencia Artificial memorias.pptxCARLOS GARCIA
 
Presentacion proyecto final
Presentacion proyecto finalPresentacion proyecto final
Presentacion proyecto finalSara López
 

Semelhante a Lookingforward (20)

Silabo TIC I - Civil
Silabo TIC I - CivilSilabo TIC I - Civil
Silabo TIC I - Civil
 
Telematica Eicea
Telematica EiceaTelematica Eicea
Telematica Eicea
 
Silabo TIC I - Der
Silabo TIC I - DerSilabo TIC I - Der
Silabo TIC I - Der
 
Unidad I PNF HERRAMIENTAS TECNOLOGICAS.docx
Unidad I PNF HERRAMIENTAS TECNOLOGICAS.docxUnidad I PNF HERRAMIENTAS TECNOLOGICAS.docx
Unidad I PNF HERRAMIENTAS TECNOLOGICAS.docx
 
Plantilla proyecto TechnoMaths 3D
Plantilla proyecto TechnoMaths 3DPlantilla proyecto TechnoMaths 3D
Plantilla proyecto TechnoMaths 3D
 
Silabo TIC I - Conta
Silabo TIC I - ContaSilabo TIC I - Conta
Silabo TIC I - Conta
 
Silabo TIC I - Admi
Silabo TIC I - AdmiSilabo TIC I - Admi
Silabo TIC I - Admi
 
9. pci noveno nancy 2012-2013
9. pci noveno nancy 2012-20139. pci noveno nancy 2012-2013
9. pci noveno nancy 2012-2013
 
CODETEC- Proyecto Final Taller de Investigacion 2
CODETEC- Proyecto Final Taller de Investigacion 2CODETEC- Proyecto Final Taller de Investigacion 2
CODETEC- Proyecto Final Taller de Investigacion 2
 
Infotecnología
InfotecnologíaInfotecnología
Infotecnología
 
Máster CALSI en el Campus Gandia Especialidad Social Media
 Máster CALSI en el Campus Gandia Especialidad Social Media Máster CALSI en el Campus Gandia Especialidad Social Media
Máster CALSI en el Campus Gandia Especialidad Social Media
 
Webquest
Webquest Webquest
Webquest
 
Contenido Curricular 3º Eso Tecnologia
Contenido Curricular 3º Eso TecnologiaContenido Curricular 3º Eso Tecnologia
Contenido Curricular 3º Eso Tecnologia
 
Estrategia y Metodología de la Robótica en el Ámbito Educativo, Experiencias ...
Estrategia y Metodología de la Robótica en el Ámbito Educativo, Experiencias ...Estrategia y Metodología de la Robótica en el Ámbito Educativo, Experiencias ...
Estrategia y Metodología de la Robótica en el Ámbito Educativo, Experiencias ...
 
Inf_Redes_Aprendizaje_Final2.doc.pdf
Inf_Redes_Aprendizaje_Final2.doc.pdfInf_Redes_Aprendizaje_Final2.doc.pdf
Inf_Redes_Aprendizaje_Final2.doc.pdf
 
Inteligencia Artificial memorias.pptx
Inteligencia Artificial memorias.pptxInteligencia Artificial memorias.pptx
Inteligencia Artificial memorias.pptx
 
Presentacion proyecto final
Presentacion proyecto finalPresentacion proyecto final
Presentacion proyecto final
 
05 ft fundamentos detelecomunicaciones
05 ft fundamentos detelecomunicaciones05 ft fundamentos detelecomunicaciones
05 ft fundamentos detelecomunicaciones
 
1.Investigacion
1.Investigacion1.Investigacion
1.Investigacion
 
Investigación excel
Investigación excelInvestigación excel
Investigación excel
 

Mais de Juan Carlos Olivares Rojas

Analítica de Datos usando Single Board Computers
Analítica de Datos usando Single Board ComputersAnalítica de Datos usando Single Board Computers
Analítica de Datos usando Single Board ComputersJuan Carlos Olivares Rojas
 
Analitica de Datos en Dispositivos de Internet de las Cosas
Analitica de Datos en Dispositivos de Internet de las CosasAnalitica de Datos en Dispositivos de Internet de las Cosas
Analitica de Datos en Dispositivos de Internet de las CosasJuan Carlos Olivares Rojas
 
A Comparative Assessment of Cryptography Algorithms for Data Analytic Applica...
A Comparative Assessment of Cryptography Algorithms for Data Analytic Applica...A Comparative Assessment of Cryptography Algorithms for Data Analytic Applica...
A Comparative Assessment of Cryptography Algorithms for Data Analytic Applica...Juan Carlos Olivares Rojas
 
Propuesta de Flexibilidad Curricular en el Tecnológico Nacional de México
Propuesta de Flexibilidad Curricular en el Tecnológico Nacional de MéxicoPropuesta de Flexibilidad Curricular en el Tecnológico Nacional de México
Propuesta de Flexibilidad Curricular en el Tecnológico Nacional de MéxicoJuan Carlos Olivares Rojas
 
Analítica de Datos en Simulador de Redes para Sistemas de Medición Inteligente
Analítica de Datos en Simulador de Redes para Sistemas de Medición InteligenteAnalítica de Datos en Simulador de Redes para Sistemas de Medición Inteligente
Analítica de Datos en Simulador de Redes para Sistemas de Medición InteligenteJuan Carlos Olivares Rojas
 
Propuesta de Mercado Eléctrico Minorista Transactivo en México
Propuesta de Mercado Eléctrico Minorista Transactivo en MéxicoPropuesta de Mercado Eléctrico Minorista Transactivo en México
Propuesta de Mercado Eléctrico Minorista Transactivo en MéxicoJuan Carlos Olivares Rojas
 
Cyber Security on Transactions in Smart Metering Systems usign Blockchain
Cyber Security on Transactions in Smart Metering Systems usign BlockchainCyber Security on Transactions in Smart Metering Systems usign Blockchain
Cyber Security on Transactions in Smart Metering Systems usign BlockchainJuan Carlos Olivares Rojas
 
A Survey on Smart Metering Systems using Blockchain for E-mobility
A Survey on Smart Metering Systems using Blockchain for E-mobilityA Survey on Smart Metering Systems using Blockchain for E-mobility
A Survey on Smart Metering Systems using Blockchain for E-mobilityJuan Carlos Olivares Rojas
 
Detección de Movimiento usando Medidores Inteligentes
Detección de Movimiento usando Medidores Inteligentes Detección de Movimiento usando Medidores Inteligentes
Detección de Movimiento usando Medidores Inteligentes Juan Carlos Olivares Rojas
 
A Survey on Smart Metering Systems using Human-Computer Interaction
A Survey on Smart Metering Systems using Human-Computer InteractionA Survey on Smart Metering Systems using Human-Computer Interaction
A Survey on Smart Metering Systems using Human-Computer InteractionJuan Carlos Olivares Rojas
 
Machine Learnign Model for the Detection of Electricity Energy Fraud Using an...
Machine Learnign Model for the Detection of Electricity Energy Fraud Using an...Machine Learnign Model for the Detection of Electricity Energy Fraud Using an...
Machine Learnign Model for the Detection of Electricity Energy Fraud Using an...Juan Carlos Olivares Rojas
 
Forecasting Electricity Consumption Using Weather Data in Edge-Fog-Cloud Data...
Forecasting Electricity Consumption Using Weather Data in Edge-Fog-Cloud Data...Forecasting Electricity Consumption Using Weather Data in Edge-Fog-Cloud Data...
Forecasting Electricity Consumption Using Weather Data in Edge-Fog-Cloud Data...Juan Carlos Olivares Rojas
 
Aplicacion de Tecnicas de UX en el Desarrollo de un Portal de un Sistema de M...
Aplicacion de Tecnicas de UX en el Desarrollo de un Portal de un Sistema de M...Aplicacion de Tecnicas de UX en el Desarrollo de un Portal de un Sistema de M...
Aplicacion de Tecnicas de UX en el Desarrollo de un Portal de un Sistema de M...Juan Carlos Olivares Rojas
 
Internet de las Cosas en Redes Eléctricas Inteligentes
Internet de las Cosas en Redes Eléctricas InteligentesInternet de las Cosas en Redes Eléctricas Inteligentes
Internet de las Cosas en Redes Eléctricas InteligentesJuan Carlos Olivares Rojas
 
Optimización de la Eficiencia Energética en los Hogares utilizando una Arquit...
Optimización de la Eficiencia Energética en los Hogares utilizando una Arquit...Optimización de la Eficiencia Energética en los Hogares utilizando una Arquit...
Optimización de la Eficiencia Energética en los Hogares utilizando una Arquit...Juan Carlos Olivares Rojas
 
Ciber Seguridad en Redes Eléctricas Inteligentes
Ciber Seguridad en Redes Eléctricas InteligentesCiber Seguridad en Redes Eléctricas Inteligentes
Ciber Seguridad en Redes Eléctricas InteligentesJuan Carlos Olivares Rojas
 
Estudio de Vulnerabilidad de Protocolos y Redes de Comunicación para Medidore...
Estudio de Vulnerabilidad de Protocolos y Redes de Comunicación para Medidore...Estudio de Vulnerabilidad de Protocolos y Redes de Comunicación para Medidore...
Estudio de Vulnerabilidad de Protocolos y Redes de Comunicación para Medidore...Juan Carlos Olivares Rojas
 

Mais de Juan Carlos Olivares Rojas (20)

Ieee itmsb20
Ieee itmsb20Ieee itmsb20
Ieee itmsb20
 
Ropec20neural stick
Ropec20neural stickRopec20neural stick
Ropec20neural stick
 
Analítica de Datos usando Single Board Computers
Analítica de Datos usando Single Board ComputersAnalítica de Datos usando Single Board Computers
Analítica de Datos usando Single Board Computers
 
Analitica de Datos en Dispositivos de Internet de las Cosas
Analitica de Datos en Dispositivos de Internet de las CosasAnalitica de Datos en Dispositivos de Internet de las Cosas
Analitica de Datos en Dispositivos de Internet de las Cosas
 
A Comparative Assessment of Cryptography Algorithms for Data Analytic Applica...
A Comparative Assessment of Cryptography Algorithms for Data Analytic Applica...A Comparative Assessment of Cryptography Algorithms for Data Analytic Applica...
A Comparative Assessment of Cryptography Algorithms for Data Analytic Applica...
 
Propuesta de Flexibilidad Curricular en el Tecnológico Nacional de México
Propuesta de Flexibilidad Curricular en el Tecnológico Nacional de MéxicoPropuesta de Flexibilidad Curricular en el Tecnológico Nacional de México
Propuesta de Flexibilidad Curricular en el Tecnológico Nacional de México
 
Analítica de Datos en Simulador de Redes para Sistemas de Medición Inteligente
Analítica de Datos en Simulador de Redes para Sistemas de Medición InteligenteAnalítica de Datos en Simulador de Redes para Sistemas de Medición Inteligente
Analítica de Datos en Simulador de Redes para Sistemas de Medición Inteligente
 
Propuesta de Mercado Eléctrico Minorista Transactivo en México
Propuesta de Mercado Eléctrico Minorista Transactivo en MéxicoPropuesta de Mercado Eléctrico Minorista Transactivo en México
Propuesta de Mercado Eléctrico Minorista Transactivo en México
 
Cyber Security on Transactions in Smart Metering Systems usign Blockchain
Cyber Security on Transactions in Smart Metering Systems usign BlockchainCyber Security on Transactions in Smart Metering Systems usign Blockchain
Cyber Security on Transactions in Smart Metering Systems usign Blockchain
 
A Survey on Smart Metering Systems using Blockchain for E-mobility
A Survey on Smart Metering Systems using Blockchain for E-mobilityA Survey on Smart Metering Systems using Blockchain for E-mobility
A Survey on Smart Metering Systems using Blockchain for E-mobility
 
Detección de Movimiento usando Medidores Inteligentes
Detección de Movimiento usando Medidores Inteligentes Detección de Movimiento usando Medidores Inteligentes
Detección de Movimiento usando Medidores Inteligentes
 
A Survey on Smart Metering Systems using Human-Computer Interaction
A Survey on Smart Metering Systems using Human-Computer InteractionA Survey on Smart Metering Systems using Human-Computer Interaction
A Survey on Smart Metering Systems using Human-Computer Interaction
 
Machine Learnign Model for the Detection of Electricity Energy Fraud Using an...
Machine Learnign Model for the Detection of Electricity Energy Fraud Using an...Machine Learnign Model for the Detection of Electricity Energy Fraud Using an...
Machine Learnign Model for the Detection of Electricity Energy Fraud Using an...
 
Forecasting Electricity Consumption Using Weather Data in Edge-Fog-Cloud Data...
Forecasting Electricity Consumption Using Weather Data in Edge-Fog-Cloud Data...Forecasting Electricity Consumption Using Weather Data in Edge-Fog-Cloud Data...
Forecasting Electricity Consumption Using Weather Data in Edge-Fog-Cloud Data...
 
Aplicacion de Tecnicas de UX en el Desarrollo de un Portal de un Sistema de M...
Aplicacion de Tecnicas de UX en el Desarrollo de un Portal de un Sistema de M...Aplicacion de Tecnicas de UX en el Desarrollo de un Portal de un Sistema de M...
Aplicacion de Tecnicas de UX en el Desarrollo de un Portal de un Sistema de M...
 
Internet de las Cosas en Redes Eléctricas Inteligentes
Internet de las Cosas en Redes Eléctricas InteligentesInternet de las Cosas en Redes Eléctricas Inteligentes
Internet de las Cosas en Redes Eléctricas Inteligentes
 
Estrategias didacticas
Estrategias didacticasEstrategias didacticas
Estrategias didacticas
 
Optimización de la Eficiencia Energética en los Hogares utilizando una Arquit...
Optimización de la Eficiencia Energética en los Hogares utilizando una Arquit...Optimización de la Eficiencia Energética en los Hogares utilizando una Arquit...
Optimización de la Eficiencia Energética en los Hogares utilizando una Arquit...
 
Ciber Seguridad en Redes Eléctricas Inteligentes
Ciber Seguridad en Redes Eléctricas InteligentesCiber Seguridad en Redes Eléctricas Inteligentes
Ciber Seguridad en Redes Eléctricas Inteligentes
 
Estudio de Vulnerabilidad de Protocolos y Redes de Comunicación para Medidore...
Estudio de Vulnerabilidad de Protocolos y Redes de Comunicación para Medidore...Estudio de Vulnerabilidad de Protocolos y Redes de Comunicación para Medidore...
Estudio de Vulnerabilidad de Protocolos y Redes de Comunicación para Medidore...
 

Lookingforward

  • 1. cenidet V O L . 1 3V E R A N O 2 0 0 6
  • 2.
  • 3. Editorial Estimados Colegas, La Computer Society, con aproximadamente 100,000 miembros, fue fundada en 1946. Es la organización líder para los profesionales de las ciencias computacionales, y la más grande de las sociedades organizadas por el IEEE. La Computer Society, fomenta la comunicación internacional, cooperación y el intercambio de información. Esta dedicada a la promoción de la teoría, practica y la aplicación de la computación en la tecnología del procesamiento de la información. El Looking Forward es la revista estudiantil escrita por estudiantes y para estudiantes de la Computer Society. Después de una gran esfuerzo, por fin presentamos la edición número 13 de la revista electrónica Looking Forward. Antes de continuar queremos agradecer la ayuda prestada por los miembros del Capítulo Estudiantil de Computación del CENIDET, quienes están muy honrados ser elegidos para producir esta edición. Los artículos contenidos en esta revista abarcan diversos temas, todos relacionados con los proyectos de tesis de Maestría y Doctorado que se están desarrollando en el Departamento de Computación. Particularmente, en la líneas de investigación como: Ingeniería de Software, Sistemas Distribuidos e Inteligencia Artificial. Agradecemos la cooperación de la M.C Andrea Magadán Salazar por coordinar a todos los miembros del mismo. No puedo concluir la editorial sin hacer un reconocimiento al Prof. Ken Christensen que con su apoyo y confianza, ha sido posible que el Capítulo Estudiantil del CENIDET estuviera a cargo de la presente edición. Esperamos que en un futuro esta revista pueda ser agregada al IEEExplore como parte de la literatura de la Computer Society. Larga vida al Looking Forward Jonathan Villanueva Tavira Jonathan.villanueva@ieee.org Editor Director Ken Christensen, Associate Profesor, Department of Computer Science and Engineering , University of South Florida Editor en Jefe M.C Andrea Magadán Salazar Vicepresidenta del Capítulo de Computación Sección Morelos. Editores Jonathan Villanueva Tavira Rocio Vargas Arroyo Jorge A. Saldaña García Colaboradores Edgar Colorado Soto Erika M. Nieto Ariza Francisco Cervantes Álvarez Hilda Solano Lira Jorge A. Saldaña García Juan C. Olivares Rojas Luis E. Morán López Maricela C. Bravo Contreras Michelle Arandine Barrón Vivanco Osslan O. Vergara Villegas Rafael I. Ponce Medellín Rocío Vargas Arroyo Salvador Cervantes Álvarez Vianey G. Cruz Sánchez Miembros del Capítulo Estudiantil de Computación Cenidet
  • 4. El Centro ofrece la posibilidad de realizar trabajos de investigación en convenio con otras instituciones como el Instituto de Investigaciones Eléctricas y el Centro de Investigación en Energía; además existen convenios con importantes universidades e institutos del extranjero. CENIDET cuenta con los departa- mentos de Electrónica , Mecánica , Mecatrónica y Ciencias Computacionales sede del Capitulo Estudiantil de Computación del IEEE. El Centro Nacional de Investigación y Desarrollo Tecnológico, CENIDET, está ubicado en Cuernavaca, Morelos, ciudad que se ha convertido en sede de numerosas instituciones científicas, dedicadas a la investigación y a la docencia, lo que ha permitido un intercambio fructífero entre éstas. Cuernavaca se beneficia de su cercanía a la ciudad de México, ya que los profesores investigadores y los estudiantes pueden desplazarse fácilmente para participar o asistir a eventos, intercambiar información, consultar bibliotecas, recibir asesorías y, en general, para relacionarse con todas las actividades que propicien y amplíen el conocimiento y la creatividad. El Centro, naturalmente, participa de esta valiosa sinergia. El CENIDET ofrece sus programas de posgrado, para egresados de licenciaturas afines que estén interesados en prepararse para la investigación aplicada y el desarrollo tecnológico. Bienvenidos a CENIDET Departam ento de Ciencias Com putacionales
  • 5. 21. Sumario 1. Editorial. 2. Bienvenidos a CENIDET. Clasificación de páginas Web : un análisis semántico.7. Procesamiento Digital de Imágenes en el dominio Wavelet.13. Evaluación de herramientas para procesos de negocio en tres niveles de abstracción. 27. Lenguaje de scrips para segmentar Imágenes. GAP: Una Herramienta para Solucionar el Problema de la Visualización de Contenidos Web en Dispositivos Pocket PC. Recuperación de Información de Páginas Web mediante una Ontología que es poblada usando Clasificación Automática de Textos . 17. 31.
  • 6. Sumario Metodología para la generación de modelos 3D.41. Los Sistemas Híbridos Neuro-Simbólicos.35. Detección de puntos de fuga usando el teorema de Thales.45. Segmentación del color para caracterizar el andar humano.55. Un Traductor Basado en una Ontología para Comunicar Agentes de Negociación en la Internet. 49. 59. Descripción de Dos Modelos Estadísticos Aplicados a la Extracción de Rasgos Faciales: Modelo de Proyecciones Integrales y Modelo de Forma Activa. 63. Autores.
  • 7.
  • 8.
  • 9. Clasificación de páginas Web: un análisis semántico Rocío Vargas Arroyo, Azucena Montes Rendón Centro Nacional de Investigación y Desarrollo Tecnológico {rvargas04c,amr}@cenidet.edu.mx Abstract En este artículo se presenta un análisis semántico para la clasificación de páginas Web. Un conjunto de páginas Web es categorizado mediante la desambiguación del significado del término utilizado para la búsqueda. El conjunto mencionado es resultado de una consulta simple a un buscador. El proceso de desambiguación comienza con el aislamiento de algunos párrafos sobresalientes; los marcadores lingüísticos son utilizados para realizar esta tarea. El término buscado es localizado dentro de los párrafos seleccionados y el Método de Exploración Contextual aplicado para identificar un conjunto de palabras que conlleven al descubrimiento de relaciones dentro de una Ontología. Finalmente, las relaciones descubiertas son utilizadas para asignar la página Web a una categoría. 1. Introducción El procesamiento del Lenguaje Natural es una tarea desafiante de la Inteligencia Artificial, porque tratar con el lenguaje humano no es una tarea sencilla. Con el inmensurable crecimiento de la Web, el problema de obtener la información apropiada y deseada también ha crecido. Varios grupos de investigación han obtenido resultados significativos y ligeramente buenos, pero no lo suficientemente efectivos para resolver las necesidades generales. Los resultados obtenidos son sensibles al problema de la ambigüedad, esta sensibilidad es causada principalmente por las técnicas utilizadas. La mayoría de los proyectos desarrollados [1-9] se basan en métodos estadísticos e ignoran las técnicas lingüísticas. En este trabajo, nuestra principal intención es la creación de una herramienta capaz de clasificar un conjunto de páginas HTML escritas en español. Marcadores lingüísticos, Ontologías y el Método de Exploración contextual [10] fueron integrados para completar la tarea. 2. Marcadores lingüísticos Con la finalidad de enfatizar ciertas ideas contenidas en un texto, el autor hace uso de los marcadores del discurso. Estos marcadores son unidades lingüísticas que definen el orden del discurso. Martín Zorraquino y Portolés [11] definen estos marcadores como: “Unidades lingüísticas invariables que no ejercen una función sintáctica en el marco de la predicación oracional – son pues, elementos marginales – y poseen un cometido coincidente en el discurso: el de guiar, de acuerdo con sus propiedades morfosintácticas, semánticas y pragmáticas, las inferencias que se realizan en la comunicación” [11]. Prada [12] extrajo, del análisis extensivo de estos marcadores hecho por Martín Zorraquino y Portolés [11], cinco categorías (ver tabla 1). Tabla1. Marcadores del discurso Categoría Subcategoría Comentadores Ordenadores Marcadores estructuradores de la información Disgresores Aditivos Consecutivos Marcadores conectivos Contraargumentativos Explicativos De rectificación De distanciamiento Reformuladores Recapitulativos De refuerzo argumentativoOperadores argumentativos De concreción De modalidad epistémica De modalidad deóntica Enfocadotes de la alteridad Marcadores conversacionales Metadiscursivos Cada tipo de marcador tiene un uso especial en el discurso en español, pero para este proyecto, la 7
  • 10. atención se centra en los marcadores reformuladores recapitulativos porque con ellos se presenta una recapitulación o conclusión de lo que se expresó con anterioridad. Estos marcadores concentran una visión general de la intención del texto y permiten al lector conocer el pensamiento final del autor. Ejemplos de estos marcadores son: En suma, en conclusión, en definitiva, en fin, al fin y al cabo, resumiendo, finalmente, entre otros. 3. Método de Exploración Contextual El Método de Exploración Contextual (MEC) [10] fue desarrollado por el equipo de LaLIC de la universidad Paris-Sorbonne y dirigido por Jean Pierre Desclés. Este método proporciona un marco para la identificación de información semántica en un texto además de un conjunto de mecanismos que ayudan en la resolución de indeterminaciones semánticas o de casos ambiguos. También asume que todos los textos incluyen unidades lingüísticas que ayudan en la tarea de la construcción del sentido. El método requiere de la descripción de índices e indicadores. Los indicadores son unidades lingüísticas asociadas a un conjunto de reglas de exploración contextual. Cuando un indicador es localizado dentro de un texto una regla es disparada; el contexto del indicador es explorado con el objetivo de identificar palabras o índices que lleven en dirección al significado real del indicador. Indicadores, índices y reglas integran la base de conocimiento lingüístico. 4. Interacción con la ontología En este proyecto se utiliza una versión en español de EuroWordNet[13]. EuroWordNet es una ontología léxico-semántica de varios lenguajes, entre ellos español, holandés, italiano, francés, alemán y checo. Mantiene el modelo de WordNet pero integra algunas mejoras, tal como una mejor expresividad de la base de conocimiento, agrega nuevas definiciones de relaciones y relaciones transcategoriales. La versión utilizada en este proyecto fue transformada en una base de datos y accedida mediante peticiones SQL. El resultado de las peticiones conlleva a la construcción de las reglas de exploración contextual. Figura 1. Resultado gráfico de una petición a la ontología. Término buscado capa. 5. Analizador semántico El proceso inicia con una petición a un bien conocido y ampliamente utilizado buscador Web. Se utiliza un término simple (los términos simples son mas sensibles al problema de la ambigüedad) al realizar la búsqueda y un conjunto de hipervínculos es devuelto. Este conjunto es filtrado para obtener únicamente las páginas HTML escritas en español. Una vez que los hipervínculos son extraídos, cada página es cargada y su contenido es analizado para obtener los segmentos de texto más sobresalientes; esta selección de texto es hecha mediante la localización de algunos marcadores lingüísticos dentro del texto. El término buscado es localizado dentro de los párrafos seleccionados. El contexto a la derecha y a la izquierda del termino son evaluados con la finalidad de localizar índices que guíen hacia el descubrimiento de de relaciones dentro de la ontología. Las relaciones extraídas permiten, mas adelante, la asociación de la página Web a una categoría. El proceso completo es representado gráficamente en la figura 2. 8
  • 11. Figura 2. Esquema de clasificación de páginas HTML. 5.1. Petición al buscador Web y extracción de hipervínculos El proceso de clasificación inicia con la petición a un buscador Web. El término de búsqueda es un término simple, es decir, una sola palabra. El buscador Web devuelve un conjunto de hipervínculos enlazados a páginas donde el término de búsqueda está presente. Los hipervínculos extraídos y sus páginas asociadas son analizados posteriormente. Se analizaron varias cadenas de petición con el objetivo de simplificar la petición al buscador Web. El idioma y el formato son especificados. Ejemplo: http://www.google.com.mx/search?num=<number of resulting links>&as_epq=<search term>&lr= <language> &as_filetype=html Se extraen dos conjuntos de hipervínculos, el primer conjunto corresponde al vinculo directo a la página Web, en tanto que el segundo corresponde a la versión en caché de la misma página. Ver figura 3. Figura 3. Interfaz sencilla para la extracción de hipervínculos. 5.2. Localización de marcadores lingüísticos y selección de párrafos Cada página Web es cargada, el contenido de su cuerpo e información representativa como los metadatos son extraídos. Ver figura 4. Figura 4. Interfaz simple para la extracción del contenido de la página Web. Algunos marcadores lingüísticos, en su mayoría recapitulativos, son localizados dentro del cuerpo de la página. Los párrafos donde estos marcadores están presentes son seleccionados para un análisis más extensivo. Considere el siguiente segmento de texto y el término buscado “capa”: “…El segundo sistema permite una elección mas amplia del copulador y del revelador, pero implica mayores dificultades en el tratamiento. El revelador que tiene el copulador debe actuar en la capa correcta, y esto se logra controlando la velocidad de difusión o aplicando exposiciones controladas. El método de la difusión controlada es anticuado. El método de exposición selectiva utiliza una película de varias capas que tiene la siguiente construcción: sobre la base se aplica la emulsión sensible al rojo y encima una emulsión sensible al verde; sobre esta, una capa de gelatina que contiene un colorante filtro amarillo, y finalmente sobre la capa filtro se aplica una capa de emulsión sensible al azul…”[14] De este segmento de texto se extrae un párrafo representativo: “El método de exposición selectiva utiliza una película de varias capas que tiene la siguiente construcción: sobre la base se aplica la emulsión sensible al rojo y encima una emulsión sensible al verde; sobre esta, una capa de gelatina que contiene un colorante filtro amarillo, y finalmente sobre la capa filtro se aplica una capa de emulsión sensible al azul”. 9
  • 12. 5.3. Localización del término buscado y exploración del contexto Una vez que se seleccionaron los párrafos, el termino de búsqueda es localizado dentro de cada párrafo y tanto su contexto izquierdo como derecho son explorados en busca de términos clave que guíen al descubrimiento de relaciones dentro de una ontología. Se aplica el Método de Exploración Contextual [10] y tanto indicadores como índices y reglas se definen. El conjunto de indicadores se compone por el término de búsqueda, y por los sinónimos de éste. El conjunto de índices es poblado según una consulta a la ontología, y las reglas son creadas dinámicamente. Ejemplo: Indicadores = {capa, mano, baño} Índices = {pintura, emulsión, impermeabilizante, esmalte, barniz, …} Regla: Si En el contexto del conjunto I1 aparece cualquier índice perteneciente al conjunto I2 Entonces Asignar el significado “Cubrimiento aplicado a una superficie” al termino buscado en la oración seleccionada Fin si “El método de exposición selectiva utiliza una película de varias capas que tiene la siguiente construcción: sobre la base se aplica la emulsión sensible al rojo y encima una emulsión sensible al verde; sobre esta, una capa de gelatina que contiene un colorante filtro amarillo, y finalmente sobre la capa filtro se aplica una capa de emulsión sensible al azul” . 5.4. Extracción de relaciones y categorización final Para la categorización final, se debe definir un conjunto de categorías. Un primer enfoque para dar solución a esta tarea es mediante la extracción de un grupo de relaciones donde el término de búsqueda y el sentido dado estén involucrados. Ejemplo: Figura 5. Relaciones de homonimia del término de búsqueda capa. Todos los nodos presentados en la figura 5 son homónimos del termino capa, cada nodo tiene un significado distinto. El nodo 0 significa “Acción y efecto de cubrir la superficie de un cuerpo con un material” en tanto que el nodo 3 significa “Cubrimiento aplicado a una superficie”. Estas relaciones fueron encontradas en la ontología, pero no son suficientes para la creación de una categoría; por lo tanto, las relaciones de un segundo nivel deben ser descubiertas. Figura 6. Relaciones de Segundo nivel para el término de búsqueda capa. En la figura 6, se muestran las relaciones de hiponimia (para los nodos 0 y 3) del término capa. Es en este nivel donde aparecen términos índices y esto nos permite la creación de categorías para la clasificación. Por lo tanto, un primer conjunto de nombres de categorías podría ser conformado por las relaciones de primer nivel y su significado. Es aquí donde se presenta un gran problema, los datos de la ontología no están completos, algunos de los significados no están incluidos en ella. 10
  • 13. 6. Conclusiones La manera más sencilla de obtener información de la Web es mediante buscadores Web y directorios; sin embargo, los resultados obtenidos no siempre son suficientemente buenos debido a que las técnicas de búsqueda no se preocupan por el contenido semántico de las páginas Web. Por lo tanto, se hace necesaria la implementación de una herramienta capaz de realizar una clasificación apropiada de páginas Web, según el significado real de la petición. Con una herramienta como ésta, el proceso realizado por el usuario será mejorado ya que los documentos fuera de su interés serán discriminados y como consecuencia, el número de páginas a visitar y el tiempo invertido en explorar las no relevantes será disminuido. Por otra parte, la introducción de técnicas lingüísticas en los métodos de clasificación pudiera mejorar la manera en que los Web Spiders indexan la información. 11. Referencias [1] A. Gulli and P. Ferragina, “The anatomy of a hierarchical clustering engine for web-page, news and book snippets”, Fourth IEEE International Conference on Data Mining, ICDM’04, Brighton, UK, 2004. [2] A. Gulli, “SnakeT”, http:// www.snaket.com, Pisa University, Italy. [3] Vivísimo, Inc., “How the Vivísimo clustering engine works, http://www.vivisimo.com , 2003. [4] Vivísimo, Inc.,”Clusty”, http://www.clusty.com , 2005. [5] A. Téllez-Valero, M. Montes-y-Gómez and L. Villaseñor-Pineda, “Aplicando la clasificación de texto en la extracción de información”, Encuentro Internacional de Ciencias de la Computación, ENC, Colima, México, September 2004. [6] J. M. Gómez, E. Puertas, G. Carrero, M. de Buenaga, “Categorización de texto sensible al coste para filtrado en Internet”, Procesamiento del Lenguaje Natural, SEPLN, Magazine nº 31, September 2003. [7] L. Golub, Automated subject classification of textual Web pages, for browsing, Thesis for the degree of Licenciate in Philosophy, Lund University, Switzerland, August 2005. [8] F. Sebastiani, “Machine learning in automated text categorization”, ACM computing surveys, 2002. [9] F. Sebastiani, “Text categorization”, in Zanasi A., Text Mining and its Applications, WIT Press, Southampton, UK, 2005. [10] J. P. Desclés, E. Cartier, A. Jackiewicz and J. L. Minel, “Textual Processing and Contextual Exploration Method”, Context 97, Rio de Janeiro, February 1997. [11] Martín Zorraquino, Mª Antonia y José Portolés Lázaro. Los marcadores del discurso. Bosque y Demonte. Vol. 3. 4051-4213. [12] J. Prada, G. Moncecchi, “Reconocimiento eficiente de marcadores del discurso en español”, VIII Simposio Internacional de Comunicación Social, Santiago de Cuba, Cuba, January 2003. [13] Amsterdam University, “EuroWordNet: Building a multilingual database with wordnets for several European languages”, March 2006, http://www.illc.uva.nl/EuroWordNet/ [14] “Fotografía / Fotografía en colores”, March 2006, http://www.punksunidos.com.ar/punksunidas/fotografia/foto grafia6.html 11
  • 14.
  • 15. 13 Procesamiento Digital de Imágenes en el Dominio Wavelet Osslan Osiris Vergara Villegas y Raúl Pinto Elías Centro Nacional de Investigación y DesarrolloTecnológico (cenidet) Cuernavaca Morelos México. {osslan, rpinto}@cenidet.edu.mx Abstract El presente artículo da una explicación del procesamiento digital de imágenes en el dominio wavelet. Primero, una imagen es transformada con una Transformada Wavelet Discreta (TWD) después, se aplican operaciones matemáticas para destacar algunas características presentes en la imagen. La transformación puede ayudar a revelar algunas características que en el dominio original no son claras o son difíciles de detectar. En el dominio wavelet se obtiene la detección de bordes y direccionalidad, suavizado o emborronamiento, cambios en la escala, supresión de ruido, compresión y finalmente la extracción de características. 1. Introducción La transformada wavelet fue usada geofísica a principios de 1980 para el análisis de señales sísmicas [1]. Una transformada wavelet descompone una señal f en sus componentes a diferentes escalas o bandas de frecuencia. La transformación se realiza con un proceso de convolución en f usando la wavelet madre (ψ) de forma trasladada y dilatada. Según la selección de ψ la función de transformación permite por ejemplo, extraer discontinuidades o bordes de f, realizar tareas de reconocimiento de patrones o almacenar una versión compresa de f. Las wavelets son señales locales en el tiempo y generalmente tienen forma irregular. Una señal puede ser dividida en varias representaciones escaladas y trasladadas de la wavelet madre original [2]. Las wavelets ofrecen la ventaja de poder separar los detalles finos de una señal, wavelets muy pequeñas pueden ser utilizadas para separa detalles muy finos de una señal, mientras que wavelet grandes se pueden utilizar para separar detalles burdos. Además, existen diferentes familias de wavelets que se pueden seleccionar. Una wavelet en particular puede generar una representación más dispersa de una señal que otra, por lo que se deben analizar diferentes tipos de wavelets para determinar la que mejor se adecua a la aplicación que se necesita realizar en procesamiento digital de imágenes. Por ejemplo, supresión de ruido, compresión o reconocimiento de patrones. 2. Análisis Multiresolución Es el estudio de señales o procesos representados en diferentes resoluciones, proporciona un mecanismo eficiente para pasar de una resolución a otra [3]. La transformada Wavelet Discreta (TWD) es una herramienta matemática para el análisis y síntesis de señales que puede ser utilizada cuando se necesitan procesar imágenes digitales en múltiples resoluciones. La localización de las características de una señal en el dominio espacial (tiempo) y de frecuencia puede ser realizado de un manera muy eficiente usando wavelets. Dicha localización permite determinar de manera simultánea transiciones afiladas en el espectro de la señal y la posición (o tiempo) de su ocurrencia. El principio detrás del uso de la TWD para descomponer una imagen es utilizar una función wavelet Ψ para representar las frecuencias altas correspondientes a las partes detalladas de la imagen y una función de escalamiento Φ para representar las frecuencias bajas correspondientes a las partes suaves de la imagen. La figura 1 muestra el proceso de descomposición subbanda de una imagen utilizando filtros. Figura 1. Descomposición subbanda de una imagen.
  • 16. 14 El análisis multiresolución juega un papel muy importante en el mecanismo de percepción y de toma de decisiones de los seres humanos. 3. Direccionalidad Wavelet y Detección de Bordes Con la TWD se puede obtener cierta información (detalles) acerca de la direccionalidad y bordes presentes en una imagen. En este ejemplo se utiliza la imagen de la figura 2 para explicar como obtener la direccionalidad en una wavelet y como detectar bordes. Figura 2. Imagen “Star” para el análisis de direccionalidad y bordes. Primero, se debe transformar la imagen con una TWD, para este ejemplo, la imagen se descompuso un nivel con la Symlet 4. La figura 3 muestra la imagen resultante de la descomposición. Figura 3. “Star” después de la TWD. En la figura 3 se puede observar que el borde horizontal de la imagen original es representado en la matriz de coeficientes de detalle horizontal (cuadrante superior derecho). De forma similar el borde vertical se muestra en la matriz de coeficientes de detalle verticales (cuadrante inferior izquierdo). Finalmente los bordes verticales se muestran en la matriz de coeficientes de detalle diagonales (cuadrante inferior derecho). La información de los bordes obtenida de las subbandas wavelet puede ser combinada en una sola imagen. Para lograrlo, se necesitan cambiar a cero todos los coeficientes de aproximación (cuadrante superior izquierdo) y después se debe calcular la Transformada Wavelet Discreta Inversa (TWDI). La imagen resultante se muestra en la figura 4. Figura 4. Imagen de bordes “Star”. Se puede utilizar un proceso similar para separar los bordes verticals y horizontales. La información de los bordes diagonales siempre es preservada aunque se trate de cortar los coeficientes diagonales. 4. Emborronamiento de la Imagen Las wavelets pueden ser utilizadas como una herramienta para emborronamiento o suavizado de imágenes. Para este ejemplo se utilizará la imagen que se muestra en la figura 5. Figura 5. Imagen “Tools . Para el suavizado se necesita calcular la TWD en mas de un nivel de descomposición, por ejemplo cuatro niveles con la wavelet symlet 4, la imagen de la transformación obtenida se muestra en la figura 6. Figura 6. Cuatro niveles de descomposición de “Tools”. Al convertir a cero cada uno de los niveles de detalle se pueden obtener versiones incrementalmente suavizadas de la imagen original. Por ejemplo, si se
  • 17. 15 convierten a cero los primeros tres niveles se puede obtener una imagen como la de la figura 7a. Si se cambian a cero cuatro niveles se puede obtener un incremento en el emborronado como se muestra en la figura 7b. Figura 7. Imágenes “Tools”. a) Resultado de convertir a cero los primeros tres niveles, b) Resultado de convertir a cero todos los niveles. 5. Cambios en la Escala El cambio de escala de una imagen implica una operación matemática llamada interpolación. Con la TWD se puede cambiar el tamaño de una imagen con un factor de 2n . Este proceso se realiza al remover o añadir subbandas en el dominio wavelet. La posibilidad del cambio en la escala proporciona una reconstrucción progresiva de una imagen. Suponga que necesita enviar una imagen a dos usuarios en diferentes sitios y que dichos usuarios necesitan versiones de una imagen a diferente resolución. La imagen puede ser reconstruida por aproximaciones graduales de mayor resolución de la imagen final de más alta resolución y se puede enviar la imagen adecuada a cada usuario correspondiente a la subabanda de reconstrucción exacta. La figura 8 muestra el resultado de escalado para camman. Figura 8. Cambio de escala en “Camman”. a) Imagen original, b) Imagen con escala doble de la original, c) Imagen del inciso b al doble. El proceso de aumentar o disminuir la escala se comporta mejor con la TWD que el mismo proceso usando interpolación. 6. Eliminación de Ruido en Imágenes La eliminación de ruido en imágenes es el proceso de separar el ruido y los componentes de una imagen de una observación sencilla de una imagen degradada. La imagen puede estar contaminada con ruido ya sea por el proceso de adquisición de datos o debido a la ocurrencia de algún fenómeno natural. La técnica más simple para lograr la eliminación es la umbralización wavelet (shrinkage). Como ejemplo se usa la imagen ruidosa de la figura 9a). Primero, se aplica la TWD en cuatro niveles de resolución y después se utiliza un método llamado soft thresholding en todas las subbandas. Lo que se hace es cambiar a cero los coeficientes con valor menor que un umbral (T), después se resta T de los coeficientes no cero. Después se calcula la TWDI. La figura 9b muestra la imagen resultante de la eliminación. El problema principal en la supresión de ruido es la selección del mayor valor T para la umbralización. Figura 9. Imagen “Goldhill”, a) Imagen con ruido Gaussiano, b) Imagen procesada. 7. Compresión de Imágenes Una de las aplicaciones más populares con wavelets es la compresión de imágenes. El objetivo de la compresión es reducir el volumen de datos necesarios para representar cierta cantidad de información. Una de las ventajas obtenidas con el uso de la TWD es que la imagen es decorrelacionada, por lo que la imagen puede ser fácilmente compresa. Algunos de los coeficientes wavelet obtenidos de la TWD corresponden a los detalles en el conjunto de datos. Si los detalles son pequeños, entonces pueden se omitidos sin afectar substancialmente las principales características del conjunto de datos. El primer paso es transformar una imagen con la TWD, una de las decisiones importantes es que familia wavelet usar y que nivel de resolución usar. La selección de la familia wavelet depende mucho del uso posterior que se le dará a la imagen pero es necesario tomar en cuenta algunas propiedades como ortogonalidad, número de momentos vanishing,
  • 18. 16 soporte compacto, simetría, etc. Por otro lado, el nivel de resolución no debe ser mayor que Log2(N). Después, se realiza la cuantificación para la cual se pueden utilizar dos estrategias. Una es cambiar a cero todos los coeficientes de subbanda que son menores a un umbral seleccionado. La otra es cambiar a cero los coeficientes de la diagonal inferior de la matriz o algún nivel de descomposición. Existen dos técnicas de cuantificación muy utilizadas Embedded zerotree wavelet coder (EZW) y Set Partitioning in Hierachical trees (SPIHT) que son muy eficientes y que se utilizan en muchas aplicaciones. Finalmente se codifican por entropía los coeficientes obtenidos, aquí no existe pérdida de información. La figura 10 muestra la imagen de Lena y las diferentes imágenes obtenidas del proceso de compresión con diferente espacio de almacenamiento usado y diferente calidad. Figura 10. Imagen “Lena” de izquierda a derecha disminuye la calidad y espacio de almacenamiento. 8. Extracción de Características La clasificación de imágenes es quizás la aplicación más importante con imágenes digitales, para describir la imagen se utiliza un vector de características. Las propiedades estadísticas de los coeficientes wavelet caracterizan una imagen y pueden ser usados para realizar la clasificación de imágenes. Algunas medidas obtenidas de los coeficientes wavelet son: Energía Norma-2: ∑= = N k kC N E 1 2 21 1 (1) Energía Norma-1: ∑= = N k kC N E 1 12 1 (2) Desviación Estándar: ∑= −= N k kC N E 1 2 23 )( 1 µ (3) Residuo Promedio: ∑= −= N k kCE 1 2 4 )( µ (4) Entropía: ∑= −= N k kk CC N E 1 22 25 log 1 (5) Donde ∑= = N k kC N 1 2 1 µ (6) µ es la media y N el tamaño de la imagen. 9. Conclusiones En este artículo se mostraron algunas aplicaciones de la transformada wavelet para el procesamiento digital de imágenes, con el objetivo de demostrar que una imagen puede ser manipulada incluso en el dominio wavelt. La investigación continua buscando familias de wavelets más complicadas que se adecuen a una aplicación en particular, por ejemplo para tratar de describir una característica muy importante de las imágenes conocida como geometría. 10. Referencias [1] Morlet, J., G. Arens, E. Fourgeau, and D. Giard, “Wave propogation and sampling theory part 1: Complex signal and scattering in multilayered media”, Geophysics, Vol. 47, No. 2, pp. 203 -221, febrero 1982. [2] Maryhelen S., “Image compression using wavelets”, Thesis proposal, Department of electrical and computer engineering, University of New Brunswick, Canada, 1997. [3] Mallat, S., “A theory for multiresolution signal decomposition: The wavelet representation”, IEEE Transactions on Pattern Analysis and Machine Intelligence (PAMI), Vol. 11, No. 7, pp. 674 – 693, julio 1989. [4] Gonzalez Rafael C., Woods Richard E. and Eddins Steven L., Digital image processing using Matlab, Pearson Prentice Hall, 2004.
  • 19. 17 GAP: Una Herramienta para Solucionar el Problema de la Visualización de Contenidos Web en Dispositivos Pocket PC. J. Carlos Olivares R., J. Gabriel González S., Azucena Montes R.,Víctor J. Sosa S. e I. Rafael Ponce M. Centro Nacional de Investigación y Desarrollo Tecnológico (cenidet) {jcolivares04c, gabriel, amr, vjsosa, rafaxzero04c}@cenidet.edu.mx Abstract Esta herramienta trata de llenar el “hueco” presente en la visualización de sitios Web en dispositivos móviles PDA, caso concreto Pocket PC. Para garantizar que los usuarios puedan visualizar correctamente los recursos de Web, se necesitan dos cosas: un mecanismo que controle desconexiones y permita visualizar contenido Web sin importar el estado de conexión del dispositivo (acaparamiento), y un mecanismo que adapte el contenido de la Web a las características propias del dispositivo móvil específico (transcodificación). GAP es una herramienta que integra estos dos mecanismos y permite mejorar la experiencia de navegación de los usuarios en la Web Móvil. Palabras clave: Pocket PC, Visualización de Contenidos Web, Acaparamiento, Transcodificación. 1. Introducción Los dispositivos móviles están más cerca de lo que parecen estar, de acuerdo con [1]: “Para el año 2009, más de la mitad de los microprocesadores fabricados en el mundo estarán destinados a dispositivos móviles. El software que hará realmente útiles a los dispositivos móviles todavía no es desarrollado.” Estas estadísticas reflejan que el uso de dispositivos móviles va en creciente aumento debido principalmente a su diminuto tamaño y a que su poder de procesamiento y versatilidad van creciendo día con día. El problema de la visualización de recursos de Web en dispositivos móviles, radica en el hecho de que la gran mayoría de los sitios Web en Internet no han sido diseñados para esta clase de dispositivos. Los cuales cuentan con recursos de cómputo limitado (pantallas pequeñas, poca memoria, velocidades bajas de procesamiento, etc.) si se comparan con un equipo de cómputo tradicional. Por otra parte, la Web y el protocolo que lo gestiona: HTTP, son orientados a conexión (se basan en TCP) lo cual da como resultado de que si el usuario por algún motivo se desconecta de la red, la transacción falle. En este caso, no se podría visualizar los recursos de la Web en el cliente móvil. Las desconexiones son frecuentes en esta clase de dispositivos, debido en gran medida a una de sus principales ventajas: la movilidad. En este trabajo se describe un sistema cuyo trabajo está en progreso y que se enfoca a atacar el problema de la visualización de recursos de Web en dispositivos móviles. La característica principal de este trabajo, radica en que gran parte del sistema se ejecuta en esta clase de dispositivos, en comparación a la gran mayoría de las soluciones existentes que se ejecutan en plataformas de cómputo tradicional. 2. Alternativas de solución Para solucionar este problema se han propuesto varias alternativas: diseñar nuevos protocolos, modificar protocolos o implementar servicios intermediarios que resuelvan el problema. 2.1 Nuevos protocolos En este esquema se puede citar al protocolo WAP y al lenguaje de marcado WML, los cuales funcionan de manera análoga a HTTP-HTML en la Web tradicional. El problema radica en que WAP sólo trabaja con equipos móviles y traería consigo la misma fragmentación de la Web que se vive actualmente (páginas especiales para toda clase de dispositivos). Además, WAP se diseñó originalmente para dispositivos con capacidades de cómputo limitada (pantallas monocromáticas, bajo ancho de banda, etc.) lo que para en estos momentos se está solucionando día con día por medio de conexiones de banda ancha inalámbrica (WCDMA, UTMS, 802.11g, WiMax, etc.) y equipos cada vez más potentes. La mejor solución sería crear un nuevo protocolo. El problema es que éste debe de ser totalmente compatible con los existente por que sino, dejaría
  • 20. 18 inservible miles de recursos ya existentes (se deberían de modificar tanto clientes como servidores Web). 2.2 Modificación de protocolos Dentro de esta alternativa se tiene el caso de un nuevo esquema de petición de los recursos Web. Este nuevo esquema recibe el nombre de Push, mientras que el esquema tradicional recibe el nombre de Pull[2]. El esquema Pull recibe el nombre de ‘sobre demanda’. Bajo este esquema, es el cliente (usuario) que de manera explícita visualiza un recurso. En nuestro caso, si un usuario quiere ver la página del cenidet, tiene que escribir en su navegador la URL: http://www.cenidet.edu.mx/. El esquema Push también recibe el nombre de ‘subscripción-notificación’. En este esquema, el usuario se subscribe a un servicio y cada vez que haya ocurrido algún evento de interés para el usuario se le envía una notificación alertándolo sobre el evento. Generalmente estos dos esquemas no viven de manera aislada. Esquemas híbridos (Pull&Push) se han aplicado en diversos servicios existentes, tal es el caso de la recepción de mensajes SMS/MMS, en donde el envío de mensajes es Pull y la recepción es Push, ya que se le notifica a los usuarios de la existencia de nuevos mensajes. Otro servicio que ha tenido gran éxito y que ha hecho famoso a dispositivos como los Blackberry es el Push-mail[3]. Bajo el esquema tradicional del correo electrónico, un usuario para consultar su correo debe de estar conectado todo el tiempo para recibir correo. Esto con lleva a grandes gastos si la conexión a la red se factura por tiempo. Con este nuevo esquema, el usuario no está conectado al servidor de correo. Cuando se recibe un nuevo correo en el servidor, éste notifica al cliente de la existencia del nuevo correo y lo envía al cliente móvil. Para este tipo de esquemas, se han propuesto protocolos como HTTPU (HTTP over UDP) o HTTPMU (HTTP over Multicast UDP) que básicamente funciona similar al HTTP pero utilizando datagramas, los cuales no están orientados a conexión. Con esto se logra una mejor calidad de servicio en la Web móvil[4]. 2.3 Servicios intermediarios Esta es la solución más extendida para solucionar el problema de la visualización de recursos Web y muchos otros problemas que presenta la Web, tal es el caso de los muros de fuego que solucionan alguno de los problemas de seguridad de la Web como el control de acceso o los proxys caché, que tratan de reducir la latencia de acceso a la información. El esquema de intermediarios es ampliamente usado por que no necesita modificar ni los clientes ni los servidores; de hecho, los procesos cliente y servidor no notan la existencia de dichos servicios intermediarios. Estos servicios se encargan del trabajo pesado y son transparentes hacia los usuarios. La herramienta que se describe en este artículo, funciona bajo el esquema de servicios intermediarios. 3. Propuesta de solución El proceso de acaparamiento soluciona el problema de la visualización de recursos Web sin importar el estado de la conexión del dispositivo móvil. Para ello, se hace necesario que el usuario tenga almacenados de manera local en su dispositivo los recursos que usará. Como se puede observar, la cantidad de recursos a ocupar puede ser inmensa, mientras que la capacidad de almacenamiento de los dispositivos es limitada. Para dar solución a este nuevo problema, es necesario tener una manera efectiva de conocer los recursos que un usuario podría utilizar. Con el acaparamiento se logra reducir esto, ya que a través de algoritmos de reglas de asociación aplicados sobre bitácoras Web, determina el conjunto óptimo de recursos que deberán replicarse a los clientes móviles[5]. Para solucionar el problema de la adaptación de los recursos Web a las capacidades de despliegue de los dispositivos móviles, se necesita de la transcodificación (transformación) de los recursos, destilando y procesando todas aquellas características que no estén disponibles en el dispositivo. El mecanismo utilizado de transcodificación utiliza un transformador de HTML a un subconjunto de HTML utilizando XML. El sistema se basa en una arquitectura cliente- servidor con una capa intermedia tanto del lado servidor como del lado cliente, tal y como se muestra en la Figura 1. El sistema en general ha sido denominado GASWT (Gestor de Acaparamiento de Sitios Web Transcodificados). Al intermediario en el lado cliente se denomina GAP (Gestor de Acaparamiento para Pocket PC), mientras que en el lado servidor se denomina GAT (Gestor de Acaparamiento y Transcodificación). El GAT se compone a su vez del MA (Mecanismo Acaparador) y del MT (Mecanismo Transformador). La comunicación entre los procesos se realiza a través de un esquema de petición-respuesta en HTTP. Tanto el MA como el MT son tomados de otros proyectos que en conjunto con éste, forman parte del
  • 21. 19 proyecto Moviware[6], cuya función principal es brindar una serie de servicios a clientes móviles propensos a desconexiones frecuentes. Figura 1. Arquitectura general propuesta. El funcionamiento general del sistema es el siguiente. El usuario introduce una URL desde su navegador (que previamente ha sido configurado para redireccionar su salida hacia el GAP). El GAP recibe la petición y determina si se encuentra en la caché local del dispositivo, si la encuentra, envía el recurso acaparado al navegador. Cuando el recurso no se encuentra acaparado, se valida que exista conexión y se trata de obtener el recurso en línea. Si por alguna razón el recurso no se puede mostrar, (ya sea que no exista o se hay detectado un error en la conexión) se notifica al usuario enviando un mensaje de error. Por otra parte, si el recurso Web no se encuentra acaparado y no existe un patrón del sitio en el dispositivo local, el MA envía los recursos Web si es que existe el patrón para dicho sitio. Si existe el patrón pero no se tienen los recursos acaparados en el MA, éste los obtiene pidiéndolos al MT y luego los comprime en formato .zip para optimizar el proceso. Una vez que el MA ha enviado el sitio Web acaparado, el dispositivo móvil debe descomprimir el sitio Web y actualizar su lista de patrones. Este proceso ocurre de manera transparente sin que el usuario lo perciba. El MT se encarga de recolectar los documentos y en caso de ser recursos HTML, los transforma si es que los parámetros de configuración así lo indican. La transcodificación se realiza en línea, por lo que el proceso se ve ralentizado si el documento es demasiado grande. Las acciones que el usuario puede realizar sobre el sistema consisten en visualizar sitios Web en línea, visualizar sitios Web en desconexión, Visualizar mensajes de error, visualización del estado de las peticiones y por último, configurar el sistema. El GAP está conformado básicamente de tres módulos principales y varios secundarios. Los módulos principales son: Observador, Gestor de Acaparamiento Local (GAL) y Gestor de Desconexión Local (GDL). El Observador se encarga de procesar cada petición y devolver el resultado al navegador. El GAL se encarga de la manipulación y control de la caché en el dispositivo. Es el usuario quien decide que recursos se desean acaparar, así como limitar el espacio de almacenamiento. El GDL se encarga de determinar el estado de la conexión. Para éste último punto, se ha utilizado el control de las desconexiones sondeando la red durante tres segundos. En base a Observaciones de la calidad de los resultados, se fijó un umbral de 30% de conexiones aceptadas para determinar si el cliente se encuentra conectado (si se supera o iguala el umbral) o en modo desconexión (si se encuentra por debajo del umbral)[7]. Para la implementación de esta herramienta, se está utilizando la plataforma .NET Compact Framework 1.0 con lenguaje C#, por ser por mucho la mejor opción para programar en esta plataforma[8]. Las modificaciones del MA y del MT se están realizando en Java por que es lenguaje en el cual están hechos estos módulos. 4. Resultados La herramienta descrita en el presente documento se ha probado en diversos equipos como Pocket PC 2000 (Compaq ipaq h3630), Pocket PC 2002 (HP Jornada 5500), Pocket PC 2003 (HP rx3115), emuladores de Windows CE, PC convencionales (Compaq Presario Pentium 4 1.4 Ghz 512Mb de RAM). El primer escenario de prueba consistió en acceder a los recursos Web en modo conexión. Obteniendo resultados satisfactorios (ver Figura 2). En el escenario de prueba número 2, el GAP se ejecutó sin estar conectado a la red. Adicionalmente se contaba con un patrón de un sitio Web (http://www.cenidet.edu.mx/) y recursos acaparados. En este caso se utilizaron imágenes no existentes en el sitio original, por lo que se pudo comprobar que los recursos acaparados se muestran correctamente (Figura 3). El escenario de prueba número 3 (ver Figura 4), demuestra que es posible transcodificar los recursos en el dispositivo así como de mostrarlos de manera local si se encuentran acaparados como en el caso anterior. También es posible ejecutar el GAP en otras plataformas como Smartphones (SmartGAP) y PC tradicionales (WinGAP). Cabe hacer mención que GAP MA MT Navegador Squid Web GAT Dispositivo móvil Pocket PC Petición - Respuesta HTTP Si el recurso no está en la caché Petición - Respuesta HTTP Petición - Respuesta HTTP Petición - Respuesta HTTP
  • 22. 20 tanto GAP, WinGAP y SmartGAP son el mismo programa pero con nombre distinto, para diferenciar la plataforma en la cual se ejecutan. Figura 2. Visualización de recursos Web en modo conexión. Figura 3. Visualización de sitios Web en modo desconexión con recursos Web acaparados y sin transcodificación. 5 Conclusiones Con la presente herramienta se está demostrando que es posible ejecutar servicios complejos en dispositivos Pocket PC, tal es el caso de un servicio intermediario que permite visualizar recursos de Web cuando exista o no conexión. Hasta el momento se han podido comprobar de manera aislada la mayoría de las funciones del sistema (falta los métodos de descompresión del sitio Acaparado), ya simplemente solo haría falta la integración de componentes y las pruebas respectivas al sistema en su totalidad. Los beneficios que se esperan obtener al concluir este trabajo de investigación son los siguientes: 1. Visualización de sitios Web sin importar si los dispositivos están conectados o no. 2. Reducción de latencia en el acceso a la información, si es que el recurso se encuentra acaparado localmente. 3. Ahorro de energía por el hecho de trabajar en modo desconexión 4. Ahorro de dinero si es que el usuario decide no conectarse a una red que cobra el servicio por el tiempo de acceso. 5. Facilidad de administración de sitios Web al no disponer de diferentes versiones para cada dispositivo. Figura 4. Visualización de sitios Web en modo conexión, con recursos acaparados y transcodificados. 6. Referencias [1] Revista SG, http://www.softwareguru.com.mx [consultado marzo de 2006] [2] Purushottam Kuikarni, et al., “Handling Client Mobility and Intermittent Connectivity in Mobile Web Accesses”, Department of Computer Science, University of Massachussets. [3] Blackberry’s push technology, http://www.blackberry.com/products/software/integrations/p ush_email.shtml [consultado marzo de 2006] [4] UPnP Forum, http://www.upnp.org/, [consultado marzo de 2006] [5] David Valenzuela, “Mecanismos para predicción de acaparamiento de datos en sistemas clientes/servidor móviles”, tesis de maestría, cenidet, agosto de 2002. [6] Gabriel González. “Plataforma middleware reflexiva para aplicaciones de cómputo móvil en Internet (Movirware)”, cenidet. [7] J. Carlos Olivares, et al, “Control de desconexiones en la visualización de páginas Web en dispositivos móviles Windows CE”, XVI CIECE’06 a 5, 6 y 7 de abril de 2006 en Cd. Obregón, Sonora, México. [8] Gabriel González, Azucena Montes, J. Carlos Olivares, “Comparativa y evaluación de las herramientas de programación para desarrollar aplicaciones en plataforma Pocket PC”. 6to. CICC’05, Colima, Colima, México, septiembre de 2005.
  • 23. 21 Evaluación de herramientas para procesos de negocio en tres niveles de abstracción Erika M. Nieto Ariza1 , Javier Ortiz Hernández1 , Guillermo Rodríguez Ortiz2 1 Centro Nacional de Investigación y Desarrollo Tecnológico Interior internado Palmira s/n, Cuernavaca, Morelos, 62490 México {erika, ortiz}@cenidet.edu.mx, 2 Instituto de Investigaciones Eléctricas Reforma 113. Palmira, Cuernavaca, Morelos, 62490 México gro@iie.org.mx Resumen Cada vez mas las organizaciones eligen utilizar la Web para proveer sus servicio, los cuales son la sistematización de sus procesos de negocio. Debido a que existe un gran número de métodos de modelado y al rápido incremento en el uso de la Web, es necesario identificar el tipo de información que los distintos métodos permiten especificar. En este artículo proponemos un conjunto de conceptos para evaluar métodos de modelado para procesos de negocio utilizando tres niveles de abstracción –organizacional, de integración y Web. 1. Introducción Las organizaciones deben deciden la manera en la cual los sistemas de información apoyaran al negocio, considerando que esta tecnología se convertirá de manera incremental en una parte integral de los procesos de negocio [1, 2]. Los modelos son utilizados comúnmente para representar la complejidad de los sistemas y para observar el desempeño de un proceso de negocio cuando se integra a ella una nueva tecnología [3, 4, 5]. Un modelo de negocio es una abstracción de la funcionalidad del negocio, este provee de una vista simplificada de la estructura del negocio que actúa como base para la comunicación, mejora o innovaciones y define los requerimientos del sistema de información necesarios para apoyar al negocio. Un modelo debe capturar el dominio del problema sin hacer referencia a un sistema, implementación o tecnología particular. Uno de los problemas que se presenta durante el modelado de procesos de negocio es la gran cantidad de técnicas, herramientas y métodos existente, cada una de estas con sus propios elementos de modelado lo que las hace complejas para comparar y aun mas para seleccionar la más apropiada para modelar un sistema en un nivel especifico de representación. Proponemos tres niveles los cuales integran un conjunto de conceptos para construir modelos de aplicaciones web: a) Organizacional, describe como trabaja la organización y el proceso de negocio que se sistematizara a través de una aplicación web; b) Integración, describe el rol del sistema de información y su integración dentro de un ambiente organización particular; c) Web, describe la semántica de la aplicación web [5,6]. Nuestra contribución consiste en la identificación y clasificación de un conjunto de conceptos los cuales son utilizados para identificar los conceptos que se modelan en cada nivel de abstracción y para desarrollar un método de evaluación que ayude a distinguir que capacidades de modelado tiene un método particular en los tres niveles de abstracción. Existen algunos métodos y metodologías para evaluar el modelado de procesos de negocio; sin embargo, éstos no evalúan las capacidades sino la funcionalidad de la aplicación o de los métodos de modelado. Rosemman propone una ontología para evaluar las gramáticas del modelado organizacional, identificando sus fortalezas y debilidades [7]. Luis Olsina [8] and Devanshu Dhyani [9], proponen una metodología para evaluar las características funcionales de una aplicación Web. La estructura de este artículo es como sigue: en la sección 2 se presenta brevemente los conceptos de modelado, en la sección 3 se presenta la metodología de evaluación, en la sección 4 se presentan los resultados obtenidos al aplicar la metodología, en la sección 5 se presentan las conclusiones.
  • 24. 22 2. Conceptos de modelado Un modelo de proceso de negocio puede ser visto en distintos niveles de abstracción, estas vistas pueden ser combinadas para dar una vista mas completa del sistema a construir [3]. Este enfoque establece tres niveles de abstracción, cada uno de ellos incluye ciertos conceptos de modelado como se muestra en la tabla 1. En cada uno de estos niveles, los conceptos son propiedades o características que definen los elementos clave en un proceso de negocio. Los conceptos en cada nivel de abstracción fueron seleccionados basándose en el análisis de varias técnicas y métodos para el modelado de procesos de negocio en los tres niveles. Table 1: Conceptos de modelado en cada nivel de abstracción Nivel organizaciona l Nivel conceptual Nivel Web Proceso de negocio Navegación pura Actor Actor --- Página de navegación – relación Perfil de usuario (rol) Perfil de usuario (rol) Clase (objeto) --- Recurso Artefacto Artefacto Artefacto Meta Meta --- Meta Tarea Función Servicio Servicio Acitivdad Evento Evento --- Regla de negocio Restricción Pre y post condiciónon --- Calidad Requerimient o no funcional Requerimient o no funcional --- Los conceptos del nivel organizacional son los siguientes: - Actor, describe una entidad que tiene una meta específica en el proceso de negocio. - Recurso, describe una entidad física o de información que es transferida entre los acotes. - Meta, describe el estado deseado del proceso de negocio. - Tarea, describe una actividad orientada a alcanzar una meta. - Actividad, describe un conjunto de acciones para llevar a cabo una tarea. - Calidad, describe las características deseadas en el proceso de negocio. - Regla de negocio, describe las acciones y criterios que gobiernan la ejecución del proceso de negocio. Los conceptos del nivel de integración son los siguientes: - Actor, describe una entidad que interactúa con el sistema de información, puede jugar diferentes roles. - Artefacto, describe una entidad que es transferida entre un actor y el sistema de información. - Meta, describe el propósito, límites y restricciones del sistema de información. - Función, describe los servicios que debe proveer el sistema de información. - Evento, describe un cambio en el proceso de negocio en un instante de tiempo específico. - Restricción, describe una condición para la ejecución de un servicio provisto por el sistema de información. - No funcional, describe una cualidad deseada para el sistema de información. Los conceptos del nivel Web son los siguientes: - Relaciones de navegación, describe una visión global de la aplicación web de acuerdo a un perfil de usuario. - Perfil de usuario, describe al usuario de la aplicación. - Clase, describe un tipo de objeto para modelar las entidades que integran la aplicación. - Artefacto, describe un objeto de abstracción que es transferido entre la aplicación web y un usuario. - Meta, describe el propósito de una aplicación web. - Servicio, describe una actividad o acción que tiene una aplicación web. - Evento, describe el inicio de una actividad o acción que debe realizarse. - Pre y pos condición, describe el desarrollo de un evento en ejecución. - Requerimiento no funcional, describe la calidad o restricciones deseadas para una aplicación web. Los conceptos utilizados para el modelado de procesos de negocio están relacionados entre ellos. 3. Los conceptos y el método de evaluación En la sección anterior se presentaron los conceptos de modelado utilizados en los diferentes niveles de abstracción. En esta sección lo conceptos son ligados a aspectos que los hacen mas poderosos para modelar una determinada vista. Estos aspectos son utilizados como escalas para evaluar los métodos de modelado y representan capacidades de cada uno de los conceptos presentados. Las capacidades deseadas mencionadas en la literatura pueden ser utilizadas también como escalas de definición. El principio de la evaluación de las capacidades de las herramientas inicia con la definición de una serie de conceptos que facilitan la comparación y evaluación de las herramientas de modelado. Posteriormente en una escala de 0 a 5 se asignan valores a cada concepto, lo cual representa la capacidad de la herramienta para describir ese concepto [10]. Cada concepto tiene asociado un valor ei. Con base en cada concepto y a las calificaciones asignadas, se
  • 25. 23 realiza el análisis y evaluación de las herramientas de modelado. La calificación correspondiente a cada concepto de la herramienta toma un valor numérico, con relación a lo que permite describir, que proviene de las calificaciones propuestas en este trabajo (ver tablas 2, 3 y 4). Tabla 2: Conceptos y escalas de evaluación para el nivel organizacional Para la evaluación de cada herramienta se considera la siguiente expresión: Σei La expresión representa la sumatoria de todos los valores obtenidos asignados a cada concepto en un determinado nivel de abstracción. Posteriormente se crea una tabla comparativa de todas las herramientas evaluadas, integrando los resultados obtenidos y comparándolos entre sí para determinar el grado de satisfacción de una herramienta en un nivel de abstracción determinado. La herramienta que obtiene el valor más alto es considerada como aquella que proporciona mayores capacidades de modelado de un proceso de negocio. Tabla 3: Aspectos y escalas de evaluación para el nivel de integración La evaluación consiste en asignar un valor a cada concepto del método. Por ejemplo, el concepto no funcional en el nivel web; si el método tiene el concepto; el método debe tener 1 punto. Si el método en el concepto no funcional dice quién propone esto y a quién es aplicado, el método debe tener 2. Si el método tiene el concepto de no funcional, quién propone estoy, a quién se aplica y además el tipo de requerimiento del que se trata, el método debe tener 3. Si el método tiene el concepto de no funcional, quién propone estoy, a quién se aplica, el tipo de requerimiento del que se trata y además la medida para verificar su cumplimiento, el método debe tener 4 puntos. El método debe tener 5 puntos si tiene el Si el método tiene el concepto de no funcional, quién propone estoy, a quién se aplica, el tipo de requerimiento del que se trata, la medida para verificar su cumplimiento y además dice que sucede si este no se cumple. Tabla 4: Conceptos y escalas de evaluación en el nivel web 4. Resultados del método de evaluación Para probar el método, se evaluaron los siguientes métodos utilizando las escalas presentadas: i*, Tropos, EKD, BPM-UML, OO-Method/OOWS, OOWS [5, 7, 4, 8, 9, 11 y 12] (tables 5, 6 and 7). Tabla 5: Evaluación a nivel organizacional Nivel organizacional Valor máximo I* Tropos EKD BPM- UML Actor 5 5 5 5 5 Recurso 5 5 5 2 5 Meta 5 1 3 4 3 Tarea 5 2 4 3 2 Actividad 5 0 2 0 4 Regla de negocio 5 2 0 5 4 Cualidad 5 3 4 4 4 Total 35 18 23 23 27 Escala Concepto 1 2 3 4 5 Actor Actor --- Rol Tipo Responsabilidad Artefacto Artefacto Actor o function lo prove --- Actor o function que lo requiere Estado del artefacto Meta Meta Quién lo establece, Función asociada Prioridad asignada Medida, Causa de falla Oportunidad para resolver el problema Función Función Quién lo inicia Quién lo utilize Jerarquía Producto Evento Evento Quien lo genera, que lo inicia Quién lo produce, Jerarquía Quien recibe el producto, Propietario de la función Estado final Restricción Restric. Tipo Quién lo define A quién se aplica Quien o quienes lo originan Requerimient o no functional Restric. Quién lo propone, a quién se aplica Tipo de requerimient o Medición par aver si se cumple Que sucede si no se cumple Escala Concepto 1 2 3 4 5 Actor Actor --- Rol Tipo Responsabilidad Recurso Recurso Tipo Actor que lo utilize --- Actor que lo prove Meta Meta Prioridad Problema Oportunidad Verificación Tarea Tarea Quién solicita Quién ejecuta Jerarquia Meta asociada Actividad Actividad Tarea que apoya Jerarquía Quién la active Cuándo se termina Regla de negocio Regla de necocio Concepto asociado Origen Tipo Jerarquía Cualidad Cualidad Concepto asociado --- Origen Medida Escala Concepto 1 2 3 4 5 Pagina de navegación Página de navegación Página de navegac. Perfil de usuario Ayuda de navegación Restric. de acceso Perfil de usuario (rol) Perfil de usuario Rol Cambios de rol permitidos Servicios por usuarios Edo. del proceso de negoc. Clase (objeto) Clase (objeto) Atributos Relaciones Métodos Tipo de relaciones Artefacto Artefacto --- Tipo Proveedor Usuario Meta Quién define esta Servicio asociado Prioridad Medida Causa de fallo, oport. de resolverlo Servicio Evento relacionado Jerarquia, usuario que solicita Agente que ejecuta. Resultado. Usario del resultado final Propietari o de la página Evento Evento Propietari o del servicio, Jerarquía Clase que implementa Quién solicita Se comparte o no Pre y pos condición Poscondición Precondic. --- --- Evento asociado Requerimient o no funcional Requerimient o no funcional Quién propone este, quién lo provee Tipo de requerimient o Medida para verificar su cumplimient o Qué sucede si no se cumple
  • 26. 24 Tabla 6: Evaluación a nivel de integración Nivel de integración Valor Máx. I* Tropos EKD BPM- UML OO- Method Actor 5 5 5 5 5 1 Artefacto 5 5 5 4 5 4 Meta 5 1 3 4 3 1 Función 5 2 2 5 5 2 Evento 5 0 1 0 4 3 Restricción 5 2 0 5 4 5 No functional 5 3 4 4 4 0 Total 35 17 20 27 30 16 Tabla 7 (a): Evaluación a nivel web (proceso de negocio) Nivel web Valor Max. Tropos OO-Method / OOWS OOWS Perfil de usuario 5 3 4 4 Clase 5 0 5 5 Artefacto 5 4 4 4 Servicio 5 3 3 3 Evento 5 1 3 2 Pre y pos condición 5 2 5 3 No functional 5 3 0 0 Total 35 16 24 21 Tabla 7 (b): Evaluación a nivel web (navegación pura) Nivel web Valor Max. Tropos OO-Method / OOWS OOWS Pág. de navegación - relación 5 1 5 5 Perfil de usuario 5 3 4 4 Meta 5 3 0 0 Artefacto 5 4 4 4 Servicio 5 3 3 3 Total 25 14 16 16 En el nivel organizacional la herramienta BPM- UML obtuvo la mejor calificación para este nivel de abstracción e i* obtuvo el mas bajo. Los métodos fueron evaluados con respecto a los parámetros definidos para el enfoque presentado aquí. Durante la evaluación de los métodos, cada uno de ellos mostró sus propias características, por ejemplo, el concepto de calidad de un proceso de negocio se modela como una meta de cualidad utilizando BPM-UML. En el nivel de integración, el resultado muestra las capacidades de cada método, por ejemplo, BPM-UML obtuvo la mejor calificación, pero OO-Method obtuvo la menor. 5. Conclusiones Existen varias propuestas para modelar los requerimientos de la organización, de la integración y web, sin embargo cada propuesta tiene sus propios elementos. Algunos métodos usan los mismos conceptos pero con nombres diferentes, lo cual los hace complejos y laboriosos de comparar. El enfoque presentado aquí unifica la terminología, incrementando el conocimiento acerca de los conceptos de modelado. Además propone un enfoque de evaluación par alas capacidades de modelado de las técnicas y métodos. Esto ayuda a seleccionar el método o herramienta mas apropiada a las necesidades de un dominio del problema. El enfoque ha sido utilizado para evaluar sistemas de e-learning. Además ha sido aplicado en el desarrollo de varios casos de estudio para evaluar métodos de realidad virtual [13] y para apreciar los conceptos que estos métodos permiten modelar. 6. Referencias [1] James Pasley,: “How BPEKL and SOA are changing web services development”, IEEE Internet Computing. May – June 2005. [2] Peter F. Green, Michael Rosemann y Marta Indulska,: “Ontological Evaluation of Enterprise systems Interoperability Using ebXML”, IEEE Transactions on Knowledge and Data Engineering, Vol 17, No. 5, IEEE Computer Society, may 2005. [3] Mersevy T. and Fenstermacher K.,: “Transforming software development: and MDA road map”, IEEE Computer Society, September 2005. [4] H. E. Eriksson and M. Penker, Bussiness process modeling with UML, Chichester, UK, Wiley Editorial, 2000. [5] E. Yu,: Modelling Strategic Relation for Process Reengineering, Universidad de Toronto, Canada, 1995. Thesis submitted for the degree of Doctor of Philosophy. [6] A. Ginige and S. Murugesan,: “Web Engineering: An Introduction” IEEE Multimedia, pp 1-5, Jan-Mar 2001. [7] Peter F. Green, Michael Rosemann y Marta Indulska, “Ontological Evaluation of Enterprise systems Interoperability Using ebXML”, IEEE Transactions on Knowledge and Data Engineering, Vol 17, No. 5, IEEE Computer Society, may 2005. [8] Olsina, Luis A., Metodología cuantitativa para la evaluación y comparación de la calidad de sitios web. Tesis doctoral. Facultad de Ciencias Exactas, Universidad Nacional de La Plata, noviembre de 1999. [9] Devanshu Dhyani, Wee Keong Ng, and Sourav S. Bhowmick,: A survey of web metrics, ACM computer survey, Vol 34, No. 4. December 2002, pp. 469-503. [10] William L. Carloson and Betty Thorne, Applied Statistical Methods for business, Economics, and the Social Sciences. Prentice Hall, 1997. [11] Bubenko J., Brash D. y Stirna J.: EKD User Guide, Royal Institute of technology (KTH) and Stockholm University, Stockholm, Sweden, Dept. of Computer and Systems Sciences, 1998. [12] E. Insfrán, O.Pastor and R. Wieringa: “Requirements Engineering-Based conceptual Modelling”, Requirements Engineering Springer-Verlang, vol. 2, pp. 7:61-72, 2002. [13] Eduardo Islas P., Eric Zabre B. y Miguel Pérez R.: “Evaluación de herramientas de software y hardware para el desarrollo de aplicaciones de realidad virtual”, http://www.iie.org.mx/boletin022004/tenden2.pdf (2005).
  • 27.
  • 28.
  • 29. 27 Lenguaje de scripts para segmentación de imágenes Francisco Cervantes, Raúl Pinto Centro Nacional de Investigación y Desarrollo Tecnológico (cenidet) Interior Internado Palmira s/n, Cuernavaca, Morelos, México. {cervantes04c,rpinto}@cenidet.edu.mx Abstract En este artículo se propone el uso de un lenguaje de scripts para la etapa de segmentación de imágenes en la visión artificial. Se describe el lenguaje propuesto, la arquitectura del sistema para interpretar los scripts y la estructura general de los programas que integran a la librería de operadores. Finalmente, se muestran algunas pruebas y resultados del uso del lenguaje de scripts que se propone. 1. Introducción En este artículo se propone la utilización de un lenguaje de scripts para la segmentación de imágenes. Hoy en día, los lenguajes de scripts son cada vez más utilizados en la programación de gráficos, ya que permiten probar ideas de forma fácil [1]. Además los lenguajes de script permiten reutilizar código de manera sencilla [2]. Sin embargo en el área de la visión artificial existen pocos trabajos enfocados al procesamiento digital de imágenes mediante el uso de scripts, un ejemplo se muestra en [3], en el cual el usuario crea un script mediante objetos gráficos y que posteriormente ejecuta para realizar el procesamiento sobre una imagen dada. Un ejemplo de lenguaje de script comercial es MATLAB [4]. El lenguaje de scripts que se propone además de permitir probar ideas de segmentación de imágenes de forma fácil y sin necesidad de que el usuario conozca cómo realizan el procesamiento los algoritmos de segmentación, también induce a la reutilización de código, esto mediante la existencia de una biblioteca de operadores, que son independientes entre ellos, y la implementación de un interprete de scripts. Lo anterior permite que el lenguaje pueda crecer de forma modular y sin necesidad de modificar el código ya existente. Este trabajo está estructurado de la siguiente manera. En la segunda sección se describen los elementos básicos del lenguaje de scripts que se está proponiendo. La tercera sección muestra la estructura básica que deben tener los operadores de la biblioteca. En la sección cuarta se describe el esquema general del intérprete del lenguaje de scripts. Finalmente en la sección quinta se muestran algunas pruebas y resultados. Por último se presentan algunas conclusiones y se comentan trabajos futuros. 2. Elementos básicos del lenguaje de scripts El lenguaje consta de la definición de los siguientes tipos de datos: Entero, Real, Cadena, ImagenGris, Mascara y Contorno. De igual forma se definen las operaciones de asignación, suma, resta, multiplicación y división. El lenguaje posee las siguientes estructuras básicas: • Declaración. • Asignación. • Llamada de un operador. Las sintaxis correspondientes de estas estructuras se presentan a continuación. Declaración: tipo_dato nombre_variable_1,..., nombre_variable_N Asignación: nombre_variable = nombre_variable_N nombre_variable = expresión_aritmetica nombre_variable = nombre_operador (argumentos) Llamada de un operador: nombre_operador (argumentos) Lo anterior forma una estructura general, y el resto depende de los operadores que sean registrados en la biblioteca de operadores. A lo anterior se le denomina núcleo del lenguaje. Es por esta razón que el intérprete del lenguaje de scripts es tan importante. Esta forma de definir el lenguaje en donde sólo se establecen las estructuras pero no se definen los elementos del lenguaje ofrece la ventaja de permitir agregar elementos o comandos nuevos de forma dinámica, sin
  • 30. 28 la necesidad de modificar el código del núcleo, además cada operador es independiente entre ellos. La única restricción para agregar un operador a la biblioteca es seguir la especificación de una estructura básica para la interacción entre el núcleo y los operadores. 3. Estructura básica de los operadores Para que un operador pueda ser utilizado como parte de la biblioteca debe de poseer la estructura general que se muestra en la figura 1. Librerias del núcleo para el manejo de datos (números, cadenas, imágenes y mascaras). Recepción de argumentos (rutas de archivos donde se encuentra el contenido de los argumento). Cuerpo del operador (procedimientos del algoritmo de PDI). Retornar resultado (se hace almacenando el contenido en la ruta indicada por el último argumento del programa). Figura 1 Estructura general de un operador En la figura 1 se muestra de manera general la estructura que debe poseer un operador para que pueda formar parte de la biblioteca y pueda interactuar con el núcleo del lenguaje. Algunos elementos de la estructura pueden omitirse, por ejemplo, en la cabecera sólo se deben incluir aquellas librerías del núcleo que se necesiten. No es necesario que un operador retorne algún resultado, por ejemplo el operador para mostrar una imagen sólo muestra la imagen en pantalla sin necesidad de retornar datos al núcleo. Por defecto es necesario que un operador reciba al menos un argumento. Se puede ver claramente que el requerimiento para que un operador pueda ser utilizado como parte de la biblioteca es que utilice los tipos de datos definidos en el núcleo del intérprete y que los parámetros que necesite para su ejecución se reciban mediante la especificación de las rutas de archivos en donde se encuentra el contenido. Finalmente también es necesario que los datos de salida se almacenen en un archivo especificado por el último argumento que recibe el programa. En seguida se muestra el ejemplo de un operador para obtener el negativo de una imagen. Figura 2 Ejemplo de un operador para calcular el negativo de una imagen Cabe aclarar que por el momento el núcleo del intérprete sólo soporta imágenes en formato BMP de 24 bits. 4. Esquema general del intérprete de scripts Ya que se ha presentado la estructura general que deben de tener los operadores de la biblioteca, se muestra ahora el esquema general del intérprete de scripts. En la figura 2 se observa cada uno de los componentes del intérprete y las relaciones entre ellos y la biblioteca de operadores. Figura 3 Esquema general del intérprete de scripts Biblioteca de operadores Interprete Módulo de procesos Módulo de memoria Tipos de datos Núcleo del intérprete script Resultado del procesamiento //Tipo de dato del núcleo #include "CImagGris.h" AnsiString CharToAnsiString(char *arreglo); int main(int argc, char* argv[]) { //Argumentos: Imagen a procesar, ruta donde //se guardará la imagen resultante. if ( argc < 3 ) exit ( ERR_NUM_PARAM ) ; char * a_entrada = argv [ 1 ]; //parámetro 1 char * a_salida = argv [ 2 ]; //parámetro 2 AnsiString entrada,salida; CImagGris Imagen; entrada=CharToAnsiString(a_entrada); salida=CharToAnsiString(a_salida); if(Imagen.leerArchivo(entrada)==false) exit(ERR_IMAG_EN); //Algoritmo para negativo de esta imagen int x,y,h,w; Byte pixel; h=Imagen.Alto(); w=Imagen.Ancho(); for(x=0;x<w;x++) {for(y=0;y<h;y++) { pixel=Imagen.getPixel(x,y); Imagen.setPixel(x,y,255-pixel); } } //Se almacena la imagen resultante if(Imagen.escribirArchivo(salida)==false) exit(ERR_NO_MEMO); exit ( BIEN ) ; }
  • 31. 29 Mediante esta estructura lo primero que hace el sistema es explorar la biblioteca de operadores para generar las estructuras correspondientes a cada operador (sintaxis, semántica), para posteriormente comenzar a analizar el script de entrada y ejecutar los operadores. 5. Pruebas y pruebas Se han realizado distintas pruebas con el fin de mostrar las ventajas que brinda el utilizar un lenguaje de scripts para segmentar imágenes. Por ejemplo, el hecho de que un usuario final puede utilizar el lenguaje sin que el usuario interactúe con los algoritmos. La primera prueba que se presenta aquí, consiste en mostrar cómo crear un operador nuevo para binarizar imágenes. Primero cabe aclarar que es necesario utilizar un compilar de C++ Builder. En la figura 4 se presenta el código del operador. Figura 4 Operador para binarizar. Se puede observar en la figura anterior que crear un nuevo operador es bastante sencillo, únicamente hay que respetar la estructura general que se ha especificado. Ahora sólo hay que compilar el operador para generar el ejecutable. En este momento ya se tiene creado el nuevo operador, ahora sólo hay que registrarlo en la biblioteca, y en esto consiste la prueba número dos. Para registrar un nuevo operador se utiliza la opción Métodos del menú Herramientas, del sistema para interpretar scripts. En la figura 5 se muestra este menú. Figura 5 Interfaz del intérprete de scripts Al dar click en este menú se accede a una ventana en donde se registra el nuevo operador, esto se observa en la figura 6. Lo único que hay que hacer es indicar en donde se encuentra el archivo ejecutable, asignarle un alias; con el cual será utilizado desde el lenguaje de scripts, después se especifican los parámetros de entrada y salida. Figura 6 Ventana para registrar operador Una vez que se registra el operador, esta listo para utilizarse como parte del lenguaje, tal y como se observa en la figura 7. En donde se crea un script para binarizar una imagen y se muestran la imagen inicial y la imagen final. Con estas pruebas se observan las ventajas que proporciona utilizar un lenguaje de scripts. Mediante la capacidad de registro de nuevos operadores se mantiene el lenguaje abierto a incrementar su tamaño el cual actualmente consta de 25 operadores de segmentación y 5 para descripción de imágenes. Se puede observar en la prueba tres cómo interactúan los #include "CBMP24.h" #include "CNumero.h" int main(int argc, char* argv[]) { if ( argc < 4 ) exit ( ERR_NUM_PARAM ) ; char * a_imag = argv [ 1 ]; // parámetro 1 char * a_umbral = argv [ 2 ]; // parámetro 2 char * a_salida = argv [ 3 ]; // parámetro 3 int valorUmbral; AnsiString imag,umbral,salida; CIMAGEN_BMP24 Imagen; CNumeroMemoria UmbralBinario; imag=CharToAnsiString(a_imag); umbral=CharToAnsiString(a_umbral); salida=CharToAnsiString(a_salida); if(Imagen.leerArchivo(imag,GRIS)==false) exit(ERR_IMG_EN); if(UmbralBinario.leerArchivo(umbral)==false) exit(ERR_UMB_EN); valorUmbral=(int)UmbralBinario.Valor(); int x,y,h,w; Byte pixel; h=Imagen.Alto(); w=Imagen.Ancho(); for(x=0;x<w;x++) { for(y=0;y<h;y++) { pixel=Imagen.getPixelGrey(x,y); if(pixel>=(Byte)valorUmbral) Imagen.setPixelGrey(x,y,255); else Imagen.setPixelGrey(x,y,0); } } if(Imagen.escribirArchivo(salida)==false) exit(ERR_NO_MEMO); exit ( BIEN ) ; } Figura 7 Script para binarizar imágenes
  • 32. 30 operadores; BinarizarImagen y VerImagenGris. Estos scripts pueden ser almacenados para ser reutilizados posteriormente. Finalmente la administración de la biblioteca de operadores es bastante fácil ya que al igual que la ventana para registrar nuevos operadores, también el sistema permite modificar e incluso eliminar operadores existentes. 6. Conclusiones Con este trabajo se concluye que el uso de un lenguaje de scripts para la segmentación de imágenes es viable. Se observó que mediante el uso de scripts se puede abstraer la funcionalidad de los algoritmos de segmentación, con lo que el usuario final no necesita conocer los algoritmos. Finalmente se presume que los lenguajes de scripts pueden ser usados en otras etapas de la visión artificial como preprocesamiento, descripción, etc. La biblioteca de operadores que utiliza el intérprete está ideada para que pueda crecer de forma modular, esto es, la biblioteca crece con cada operador que se registra en ella, con lo cual muestra una flexibilidad del lenguaje para crecer. Por otro lado los operadores no pierden la independencia entre ellos. Por último se propone en un futuro eliminar la necesidad de que los operadores, que integran la biblioteca, se encuentren en una sola computadora. Es decir se observa la posibilidad de tener la biblioteca de operadores distribuida en distintas computadoras. 7. Referencias [1] M. Villar, “Guía de lenguajes de script para prototipazo rápido”, http://www.codepixel.com/tutoriales/prototipado/, 2006. [2] K. Muehler, “Adaptive script based animations for medical education and intervention planning”, Department of Simulation and Graphics, University of Magdeburg, Germany. [3] “Sistema interactivo para la enseñanza de la visión artificial”, Depto. de Sistemas Inteligentes Aplicados, Escuela Universitaria de Informática, Universidad Politécnica de Madrid, 2006. [4] “MathLab”, http://www.mathworks.com/, 2006.
  • 33. 31 Recuperación de Información de Páginas Web mediante una Ontología que es poblada usando Clasificación Automática de Textos. Ismael R. Ponce M., José A. Zárate M., Juan C. Olivares R. Centro Nacional de Investigación y Desarrollo Tecnológico {rafaxzero04c, jazarate, jcolivares04c}@cenidet.edu.mx Resumen En este artículo se describe una propuesta para ayudar al usuario en la ardua tarea que significa el recuperar información de la Web, especialmente cuando las consultas se refieren a un tema o enfoque específico. Para ello se sugiere la utilización de una ontología cuyos ejemplares sean enlaces a páginas Web del dominio sobre el cuál fue construida, aprovechando el orden y categorización que brindan para guiar al usuario a través de los conceptos que la integran y pueda encontrar información relacionada a ellos. Se describen los pasos seguidos para la creación de una ontología sobre un dominio particular y las actividades necesarias para realizar una clasificación automática de páginas Web, cuyos enlaces serán sus ejemplares. Palabras clave: Ontología, métodos de clasificación automática, modelo del espacio vectorial. 1. Introducción Hoy en día conforme ha ido progresando la evolución tecnológica, la cantidad de información que se genera a cada segundo es inconmensurable, pero no solo eso, si no que la importancia de disponer de ella a tomado tal importancia, que se está viviendo en una era donde la información rige al mundo y sus decisiones. Internet se ha convertido en una gran fuente de información, pero mientras más grande es más difícil es encontrar el contenido deseado. Se han tratado diversas maneras de recuperar información, para ejemplo basta con ver los motores de búsqueda y las distintas técnicas que siguen para brindarla (como los buscadores Google, Yahoo!, Ask, Vivisimo, entre muchos otros); sin embargo pese a que de alguna manera son de ayuda al momento de realizar consultas, se debe lidiar con resultados no del todo deseados. Así pues, se están tratando diversas maneras para ayudar a la búsqueda de recursos en Internet, que van desde la concordancia de palabras a técnicas basadas en la popularidad de los sitios, desgraciadamente a muchos usuarios ya no les basta este tipo de resultados si no que requieren soluciones más específicas. La alternativa propuesta para este problema, es utilizar el paradigma de las ontologías para la búsqueda de recursos sobre un tema particular. Al trabajar sobre un dominio concreto, se espera una búsqueda especializada, además, gracias al uso de las ontologías y el orden que proveen sobre los conceptos que la conforman, suponen una gran ayuda para que el usuario pueda encontrar la información que desea. En este documento nos centramos en la manera de poder poblar la ontología con enlaces a páginas Web, haciendo uso de técnicas de clasificación automática. En nuestro experimento se logró reportar un 86% de elementos bien clasificados. En el artículo se describen brevemente las etapas consideradas para llevar a la práctica la idea propuesta. Se menciona primero un breve panorama de la manera que tienen de recuperar información algunos motores de búsqueda, después se abarca el desarrollo de una ontología afín al uso que se le espera dar, concluyendo con los pasos para la utilización de un método de clasificación automática que será usado para poblar la ontología y las pruebas efectuadas considerando los métodos Naive Bayes, k vecinos más cercanos y máquinas de soporte vectorial. 2. Motores de búsqueda En un motor de búsqueda tradicional las consultas generalmente se realizan a partir de palabras clave, obteniendo por resultado un listado de direcciones Web que traten sobre las palabras solicitadas. Algunos de los motores más conocidos son Google, Yahoo!, MSN Search entre otros. El caso de Google destaca por la utilización de su tecnología denominada PageRank [1], en la cuál se utiliza una fórmula que calcula el peso de cada página que almacena en su base de datos, de acuerdo a la
  • 34. 32 cantidad de enlaces que le hagan referencia. A mayor cantidad de enlaces a una página, mayor su puntuación, convirtiéndose así en un concurso de popularidad [2]. Desgraciadamente se ha mostrado que los resultados pueden ser manipulados mediante el conocido Google bombing [3]. Otra manera de recuperar información es mediante los directorios Web, que consisten en una organización y clasificación manual de direcciones Web por temas o categorías. Uno de los directorios más representativos es el Open Directory Project [4], en el cuál un conjunto de editores voluntarios son quienes se encargan de listar los enlaces a páginas Web dentro de una ontología, donde enlaces con temas semejantes son agrupados en categorías. El inconveniente que se puede apreciar es que requiere demasiada intervención humana para poder dar de alta los enlaces a una página. Un tipo especial de motores de búsqueda son aquellos que incorporan agrupamiento (clustering); el agrupamiento consiste en particionar un conjunto de objetos similares en otros subconjuntos, donde los elementos que los conforman compartan características comunes. Este tipo de motores de búsqueda devuelven los resultados que encuentran para una consulta acomodados en grupos; ejemplos de ellos son Clusty.com y Vivisimo.com. Por último, encontramos los buscadores especializados, los cuáles se centran en recuperar enlaces a documentos técnicos y científicos. Por ejemplo Citeseer, que es un buscador de documentos enfocados a la computación, sirviéndose de las citas bibliográficas para considerar la importancia de los documentos que son consultados. Pese a que se han desarrollado estas y otras técnicas para recuperar información de la Web, esta área aún tiene mucho que ofrecer, por lo que se siguen buscando nuevas alternativas para ayudar al usuario, como lo es nuestro caso. 3. Fase de desarrollo de una ontología Gruber [5] define a una ontología como la especificación explícita de una conceptualización, lo que quiere decir identificar los conceptos que integran a un dominio y las interrelaciones que existen entre ellos, en una representación formal, de manera que se pueda compartir y reutilizar. El lenguaje estándar establecido por el W3C para realizar este tipo de formalizaciones es el OWL (Web Ontology Language). La utilización de este estándar además de las ventajas que permite su reutilización por otros, recae en que muchas herramientas relacionadas con el diseño y uso de ontologías se apegan a éste, ya sea editores, razonadores, etc. La ontología desarrollada partió considerando tales pasos, junto con la metodología propuesta por Uschold y King [6]. El dominio sobre el cuál se desarrollo la ontología fue sobre el tema del procesamiento del lenguaje natural (PLN). Para llevarla a cabo, se utilizó el editor de ontologías Protégé 3.1.1, el plug-in Protégé-OWL 2.1 junto con el plug-in OWL Wizards, además de los razonadores FaCT++ 0.99.6 y RacerPro 1.9.0, usados para comprobar su consistencia. Las clases se componen de conceptos relacionados con el área del PLN, abarcando desde investigadores, escuelas, herramientas y áreas de aplicación, principalmente. 4. Aprendizaje supervisado para clasificación automática de textos Una vez desarrollada la ontología continúa la fase de poblarla con ejemplares. Dada la bastedad de páginas que existen en la red, una clasificación manual de éstas en las clases establecidas dentro de la ontología sería una tarea sumamente costosa, y que en gran medida es lo que ya realizan los directorios Web. Por lo tanto se buscó una manera de poder automatizar este proceso, recurriendo al aprendizaje supervisado, en el que mediante técnicas estadísticas y matemáticas se puede conseguir una clasificación automática de textos. Este enfoque se centra en tener un conjunto de documentos de entrenamiento previamente clasificados, que se usarán para aprender a clasificar a nuevos documentos. Para ello, se deben trasformar los documentos de su formato inicial a una representación que pueda ser usada por un algoritmo de aprendizaje para la clasificación. Para fines de prueba solamente se trabajó con páginas en HTML. A continuación se mencionan los pasos necesarios que conllevan a este proceso. La colección de entrenamiento utilizada consistió de 1624 documentos, previamente clasificados en 26 clases tomadas de la ontología desarrollada, además de una clase denominada nula en la que se clasifican los documentos no relevantes para el tema del que trata la ontología. Las 26 clases consideradas son solamente una muestra representativa de las existentes en la ontología y fueron tomadas con fines de prueba. 4.1. Preprocesamiento de los documentos No todos los elementos que aparecen en los documentos son útiles para su clasificación, es decir hay elementos que por sí mismos no dicen nada del contenido del documento en el que se encuentran y que por lo tanto pueden ser eliminados; entre ellos se
  • 35. 33 incluyen a los signos de puntuación y a las etiquetas de HTML; también aparecen palabras de uso muy frecuente, palabras que aparecen en una gran cantidad de documentos, lo que hace que su poder discriminatorio sea muy bajo; este tipo de palabras se les conoce como palabras vacías (stopwords), ejemplos de ellas son los artículos, pronombres, preposiciones, conjunciones, entre otras semejantes. Para definir la palabras vacías a eliminar se recurrió a listas disponibles en DOCUM [7], en SMART [8] y en el Institut interfacultaire d'informatique de la Universidad de Neuchatel [9], así como otras palabras identificadas durante el proceso de pruebas. Al estar trabajando sobre un dominio específico, existe cierto control sobre los términos que le pertenecen, por lo que se sugirió un emparejamiento entre distintas acepciones que puede tener un mismo concepto a una sola representación, es decir, si a un concepto se le puede llamar de distintas formas, consideramos unificarlas y dentro del proceso de clasificación considerarlas bajo una forma única. Para ello se tomo como punto de partida los conceptos que integran la ontología. Por último, muchas palabras aunque diferentes, tienen la misma raíz léxica; se siguió un proceso de lematización básica a partir del Algoritmo de Porter [10], con el cuál se busca reducir palabras a su raíz. Todos los pasos anteriormente mencionados tienen como fin disminuir el tamaño de la colección de entrenamiento y hacerla más manejable, eliminando las partes no relevantes para continuar el proceso de clasificación automática. En nuestro ejercicio, en promedio se redujo hasta en un 70% el tamaño original de los documentos. 4.2. Modelado del espacio vectorial El modelo del espacio vectorial (MEV) fue propuesto por Salton en 1975. La idea básica detrás de este modelo es hacer una tabla donde se manejan los documentos y las palabras que estos contienen, asignándoles un peso a cada una de ellas. Cada vector que conforma la matriz representa un documento y la distribución de las palabras que en él aparecen. Se trata de una matriz de m x n, donde m son los documentos y n las palabras registradas. Existen distintos tipos de ponderaciones para las palabras dentro del MEV, las que consideramos en nuestras pruebas fueron la ponderación boleana (el peso de la palabra es 0 si no aparece en el documento, y 1 si aparece), el ponderado por frecuencia de aparición (el peso del término depende de la cantidad de ocurrencias que tenga dentro del documento) y por último el ponderado tf-idf (que se calcula considerando el promedio de la frecuencia de un término contra la frecuencia documental inversa del mismo [11]). 4.3. Reducción de la dimensionalidad en el MEV No se pueden considerar todas las palabras que integran la colección de entrenamiento dentro del MEV, ya que la dimensión que tendría sería enorme. Existen distintas técnicas para reducir la dimensionalidad, como la frecuencia documental, que considera un valor mínimo de apariciones que debe tener cada palabra dentro del total de documentos, para discriminar aquellas cuya aparición sea muy pequeña y dejar las que presenten mayor frecuencia documental. Otra técnica que se consideró fue la ganancia en la información (GI), en la cuál se calcula la diferencia en la entropía del sistema contra la entropía de cada palabra. Esta diferencia, medida en bits, indica que tan relevante y cuanta información aporta la palabra como factor determinante para llevar a cabo la clasificación. La cantidad de palabras totales que conforman la colección de entrenamiento ya procesada es de 2552196 palabras, siendo entre estas 125891 palabras diferentes. Como se puede apreciar, la cantidad de palabras diferentes es demasiado grande para ser manejada en el MEV, por lo que se consideraron aquellas palabras que pasaran la frecuencia documental con un valor mayor o igual a 15, pasando un total de 8966 palabras, lo que representa un 7.12% del total original, sin embargo aún es una cantidad muy grande, por lo que se aplicó la GI sobre estas palabras. La entropía calculada de la colección total es de 3.97; se consideraron aquellas palabras cuya GI fuera igual o superior a 0.1, resultando en 527 palabras diferentes, un 0.42% del tamaño original. Las palabras (ya lematizadas y normalizadas) que mayor GI presentaron, fueron: nlp (0.552), natural_language (0.479), knowledge (0.424) y data_min (0.335). 4.4. Algoritmos de clasificación automática Una vez obtenida la representación MEV de la colección de documentos de entrenamiento, se puede aplicar un método de clasificación automática para clasificar nuevos elementos. Se consideraron los métodos de clasificación automática de Naive Bayes, k-vecinos más cercanos y máquinas de soporte vectorial para realizar una serie de pruebas y encontrar el método que mejor resultados dé, considerando además las ponderaciones mencionadas en la sección 4.2. Se utilizó WEKA para llevar a cabo las pruebas; los resultados mostrados en la Tabla 1 corresponden con la utilización de la validación cruzada de diez
  • 36. 34 corridas, mostrando el porcentaje de elementos bien clasificados. Tabla 1. Porcentajes de elementos bien clasificados. booleano tf tf-idf NaiveBayes 62.7463 55.8498 81.2192 kNN 84.5443 85.0369 84.4212 SVM 86.2685 66.7488 82.0813 0 10 20 30 40 50 60 70 80 90 100 NaiveBayes kNN SVM Algoritm o de clasificación boleano tf tfidf Figura 1. Resultados de las pruebas sobre la clasificación. El mejor resultado se obtuvo con el ponderado booleano utilizando máquinas de soporte vectorial, los detalles de esta clasificación se muestran en la Tabla 2. Utilizando el entrenamiento que mejor resultado brindó se puede comenzar a clasificar nuevos documentos que se obtengan en la Web, siguiendo los pasos del preprocesamiento y representación del MEV; una vez obtenida la clase a la que pertenece, se guarda la dirección de la página como ejemplar de la ontología. Tabla 2. Resultados de SVM con ponderación boleana Elementos bien clasificados 1401 86.27% Elementos mal clasificados 223 13.73% Raíz del error medio cuadrático 0.1829 5. Conclusiones A partir los resultados obtenidos, se optó por la utilización del ponderado booleano junto con el método de clasificación de máquinas de soporte vectorial; el uso del ponderado booleano se justifica debido a que se puede considerar que la mera aparición de una palabra dentro de un documento es un buen indicador de su valor de discriminación, especialmente al considerar palabras no tan comunes en el habla ordinaria, pero que si son relevantes para el dominio sobre el que se trabaja, como lo demuestra el hecho que gran parte de las palabras con mayor ganancia en la información pertenecían al dominio del PLN, sobre el cuál se realizó el trabajo. Con los resultados obtenidos de las palabras con mayor GI y de la exactitud obtenida en el mejor caso por el método de clasificación seleccionado, es un buen aliciente para considerar el uso de la clasificación automática para poblar la ontología. Con respecto al trabajo futuro, una vez poblada la ontología, continua el proceso de guiar al usuario a través de la ontología para que encuentre enlaces relacionados a las consultas que efectué sobre el dominio del PLN. Al concluir este trabajo, entre los beneficios esperados se encuentran el guiar al usuario a través de la clasificación de la ontología y sus distintas relaciones, haciendo uso de la técnica del lenguaje natural acotado, comprobar la hipótesis de que si existen elementos ordenados es más sencillo encontrar los deseados y ahorrar trabajo al usuario al mostrarle solamente documentos temáticos relacionados con los conceptos sobre los cuáles consulte. 6. Referencias [1] S. Brin, L. Page, “The Anatomy of a Large-Scale Hypertextual Web Search Engine”, Computer Science Department, Stanford University, Stanford, disponible en línea: http://www.db.stanford.edu/~backrub/google.html, visitado en diciembre de 2005. [2] M. Miller, 501 Web Site Secrets: Unleashed the Power of Google, Amazon, eBay and More, Whiley Publishing, Inc., EUA, 2004. [3] Google bomb, Wikipedia, the free encyclopedia, disponible en línea: http://en.wikipedia.org/wiki/ Google_bomb, visitado en marzo de 2006. [4] ODP – Open Directory Project, http://dmoz.org/, visitado en abril de 2006. [5] T. Gruber, A Translation Approach to Portable Ontology Specifications, Knowledge Acquisition, 1993. [6] M. Uschold y M. King, Towards a Methodology for Building Ontologies, Workshop on Basic Ontological Issues in Knowledge Sharing, 1995. [7] DOCUM, a multilingual stopword file for CDS-ISIS, http://library/wur.nl/isis/docum.html, visitado en noviembre de 2005. [8] ftp://ftp.cs.cornell.edu/pub/smart/, visitado en noviembre de 2005. [9] J. Savoy, CLEF and multilingual information retrieval, Institut interfacultaire d'informatique, Universidad de Neuchatel, Suiza, 2005, http://www.unine.ch/info/clef/, visitado en noviembre de 2005. [10] The English (Porter2) stemming algorithm, http://snowball.tartarus.org/algorithms/english/stemmer.html, visitado en diciembre de 2005. [11] G. Salton y M. J. McGill, Introduction to modern information retrieval. McGraw-Hill, 1983, EUA.
  • 37. 35 Sistemas Híbridos Neuro-Simbólicos Vianey Guadalupe Cruz Sánchez, Gerardo Reyes Salgado, Osslan Osiris Vergara Villegas Centro Nacional de Investigación y Desarrollo tecnológico (cenidet) Interior Internado Palmira S/N, Col. Palmira. C.P. 62490. Cuernavaca Morelos México. {vianey,osslan}@cenidet.edu.mx Resumen Actualmente el enfoque de los Sistemas Híbridos (SH) es muy utilizado para resolver problemas donde se involucran diferentes tipos de representación del conocimiento en un solo sistema. Esta integración ofrece la ventaja de poder compensar las debilidades de cada uno de los sistemas complementando sus fortalezas. Los Sistemas Híbridos Neuro-Simbólicos (SHNS) surgen de los SH como un enfoque que brinda la posibilidad de implementar sistemas robustos donde la naturaleza conexionista y simbólica se encuentran presentes en su ambiente. La razón del estudio de SHNS es implementarlos en el proceso del sistema de visión artificial, de tal forma que se puedan proponer diferentes estrategias de solución entre los diferentes tipos de representaciones involucrados en este proceso, para ello el ciclo de desarrollo de los SH y los criterios de clasificación de los SHNS juegan un papel muy importante en la definición de estas estrategias. 1. Introducción En décadas pasadas, era muy común trabajar con un solo tipo de representación del conocimiento. Incluso, existía una competencia por demostrar que la representación utilizada era mejor con respecto a otra que resolvía el mismo problema. Sin embargo, con el paso del tiempo y al observar las debilidades de cada una de las representaciones y las propiedades complementarias que existían entre ellas, se decidió probar sus capacidades integrando estas representaciones en un solo sistema (Híbrido), en el cual se obtuvieron mejores resultados que los obtenidos de forma individual. El enfoque híbrido se inspira en los mecanismos de la propia naturaleza, donde: según [1], los humanos somos máquinas de procesamiento de información híbrido, nuestras acciones están gobernadas mediante la combinación de la información genética y de la información adquirida a través del aprendizaje. Gracias a esta combinación se tiene la posibilidad de utilizar con éxito diferentes métodos de procesamiento en ambientes cambiantes y complejos. Bajo este esquema natural, los sistemas híbridos han emergido como una nueva forma de dar solución a problemas complejos donde se requieren de varias representaciones del conocimiento para utilizar la información proveniente del ambiente, la cual determina las estrategias que se deben utilizar para poder incrementar el conocimiento y desarrollar sistemas más robustos [2]. Sin embargo, el diseño y desarrollo de estos sistemas es difícil debido al gran número de partes, o componentes, que se encuentran involucrados y a las diferentes interacciones que existe entre ellos [3]. La tendencia continúa en el estudio y la construcción de sistemas híbridos cuyas estrategias de solución sean las que mejor se adapten al problema a resolver. Por ello, en este artículo se presenta un estudio del proceso que implica el diseño y desarrollo de un sistema híbrido así como de los criterios considerados para la clasificación de un tipo particular de Sistema Híbrido (SH) el Sistema Híbrido Neuro- Simbólico (SHNS), el cual ha sido utilizado en aplicaciones tales como: el reconocimiento de objetos. 2. Diseño y desarrollo de un sistema híbrido En [1] se propone un ciclo de desarrollo de un SH, en el cual se presenta el proceso para la construcción de dicho sistema. La importancia de este modelo son las bases sobre las cuales un SHNS puede apoyarse para su diseño.