Chapter 2 Literature review
2.4 Distance learning background
2.4.1 Engineering distance learning approaches
El primer paso es definir una estructura de datos XML que contiene los elementos a buscar en las páginas Web. Cada elemento debe tener un nombre, puede tener un valor por defecto y uno o varios sinónimos. La estructura propuesta tiene la siguiente forma:
<dato @multiple=”si” @requerido=”si” @delimitador=”|”>nombre1 <default>valor default 1</default>
<dominio>dominio de datos</dominio> <tablas>fila</tablas>
<sinonimo>sinonimo1</sinonimo> <sinonimo>sinonimo2</sinonimo> </dato>
<dato @multiple=”no”>nombre2 ….</dato>
Donde cada elemento del documento está definido de la siguiente forma:
• Dato: Su valor es la palabra que será usada como punto de referencia en la búsqueda. Además puede contener otros elementos de este tipo para representar datos jerarquizados. Este elemento tiene a su vez tres atributos:
o Multiple: Puede haber más de una instancia en la base de
datos que contenga un valor válido para este dato. Esta situación puede darse en estructuras de datos jerarquizadas. El valor por default para este atributo es si.
o Requerido: En caso de no hallar un punto de referencia
relacionado con el dato o con sus sinónimos, indica que debe proceder con el dominio o el default.
o Delimitador: En caso de hallar el punto de referencia en el
tag de XHTML, indica si toma los caracteres a partir del punto de referencia hasta el carácter indicado en el atributo. En caso de no proporcionase, considera el valor como el string que inicia a partir del fín del punto de referencia hasta el fin del tag.
• Default: Un valor a colocar en la estructura de salida en caso de que no se halle ni un elemento, ni un sinónimo, ni un elemento del dominio de datos solo si el valor del atributo “requerido” es “si”. Es posible indicarlo si no existe valor del atributo “requerido”, pero el proceso lo ignorará. La inclusión de este elemento es una propuesta para resolver una de las preguntas planteadas en [12]: ¿Existen en el documento todos los elementos que conforman la estructura de datos?
de caracteres debe buscar en la página en caso de no encontrar un punto de referencia que satisfaga el elemento o sus sinónimos. Se recomienda el uso de expresiones regulares para facilitar la búsqueda de datos.
• Tablas: Indica como debe buscar los datos en tablas. Aplica en aquellos casos donde el valor hallado en una tabla pudiera pertenecer a un determinado dato. Solo puede contener dos valores:
o Fila. El valor por default. En esta situación, el valor del dato
“padre” se encuentra en la primera columna y el valor de este dato hay que buscarlo en columnas a la derecha.
o Columna. En esta situación, el valor del dato “padre” se
encuentra en la primera fila y el valor de este dato hay que buscarlo en filas subsecuentes.
• Sinonimo: En caso de que no se encuentre un punto de referencia con la palabra especificado en “Dato”, busca los valores de este elemento para crear los puntos de referencia.
La inclusión del elemento “Sinonimo” se da para cubrir lo que se considera un punto débil en el trabajo [10] de Arasu y García, mencionado en la sección 2.2.4. Los fundamentos para este elemento son los siguientes:
1) Una palabra que sirva para distinguir información en un dominio de datos determinado, puede servir también para otro dominio de datos y es necesario establecer la diferencia, ya que la búsqueda puede arrojar datos pertenecientes a otro dominio. Por ejemplo: En el dominio de partidos de fútbol soccer, la palabra local puede usarse para determinar al equipo cuyo estadio es aquel donde se desarrolla el partido; sin embargo, en el dominio de datos de información fiscal, la palabra significa el lugar donde reside la empresa. Esta situación es un ejemplo del problema “esquema de datos diferentes” mencionado en la sección 2.4.
2) De igual forma, se encuentra que diferentes palabras pueden referirse al mismo elemento [4] y es necesario agregarlas a la estructura de búsqueda inicial. Un ejemplo lo vemos si la búsqueda se realiza en documentos de diferentes idiomas. Este ejemplo se ilustra en el primer caso práctico, en la sección 4.1.
3) La búsqueda puede traer datos inválidos para el dominio de datos, no obstante que estén asociados a una misma palabra. Puede ser debido a la no existencia de una separación por tags de HTML, errores de construcción en páginas dinámicas, o incluso localización de palabras del dominio cuando no incluyen datos. Retomando el ejemplo de partidos de fútbol, podemos tener una página donde de antemano se presente información de las jornadas de partidos, sin que éstos se hayan efectuado aún, y por ende no tengan marcadores.
Tomemos el siguiente ejemplo para representar el marcador final de un partido de fútbol
<dato @multiple=”no” @requerido=”si”>local <default>Equipo Local</default>
<dominio>String</dominio> </dato>
<dato @multiple=”no” @requerido=”si”>marcador_local <default>0</default>
<dominio>numero</dominio> </dato>
<dato @multiple=”no” @requerido=”si”>marcador_visita <default>0</default>
<dominio>numero</dominio> </dato>
<dato @multiple=”no” @requerido=”si”>visita <default>Equipo visitante</default> <dominio>String</dominio>
<sinonimo>visita</sinonimo> </dato>
La estructura considera buscar un resultado de la forma Local Marcador_local – Marcador_visita Visita. Hay que notar lo siguiente en la estructura.
● Ninguno de los atributos es múltiple, solo puede haber una
ocurrencia de cada elemento.
● Es frecuente hallar que al equipo visitante, también se le refiere
como solamente “visita”, por eso se le agrega como sinónimo.
● Desde el instante que un partido se realiza, los marcadores de
ambos equipos empiezan con cero, por eso se define ese valor por defecto.
Es común encontrar los resultados de partidos de fútbol en tablas, por esta razón se considera por defecto de que busque por filas. La primera fila contiene los encabezados de la tabla, que en un ámbito de resultados de fútbol soccer indica en la primera columna el equipo local, en la segunda el marcador del local, en la tercera el marcador del equipo visitante y en la última el equipo visitante, aunque esta distribución puede variar, como se aprecia en la figura 3.3:
Figura 3.3. Ejemplo de partidos de fútbol
En el caso del equipo visitante es factible encontrar el indicador ya sea como Visita o como Visitante, como ya se indicó en la definición de la estructura de búsqueda.
Otra observación sobre la figura anterior, es que si bien, en cada renglón de la tabla aparece un partido de fútbol, no aparece un elemento en cada celda. La tercera celda, tiene los marcadores de ambos equipos, cuando en la estructura de búsqueda aparecen como elementos separados.
El hecho de tener una estructura de búsqueda definida en lenguaje XML permite representar un dominio de datos de manera genérica. Esto facilita la búsqueda en distintos documentos semi-estructurados, o incluso, permite reutilizar la estructura cuando un documento cambia. Este punto se ilustra en las siguientes figuras:
Figura 3.4. Formato del sitio www.mundosoccer.com antes de septiembre del 2006
Figura 3.5. Formato del sitio www.mundosoccer.com a partir de septiembre del 2006.
La figura 3.4 muestra como se desplegaba la página hasta septiembre del año 2006, la figura 3.5 muestra como se despliega a partir de esa fecha la información de partidos en la misma página. Como se aprecia al comparar ambas figuras, en la figura 3.4 se ve que por cada renglón en la tabla aparece la información de un partido, mientras que en la figura 3.5, aparece en una misma celda los partidos realizados en un mismo
día. Además, hay que considerar el uso de la palabra “Resultados”, que no existe en el ejemplo de la figura 3.4, pero sí en el ejemplo de la figura 3.5. Las reglas de definición de la estructura de búsqueda, nos permiten la adición de la palabra “Resultados” ya sea como un elemento, o como un sinónimo, de forma que la estructura de búsqueda definida para la página de la figura 3.4, puede adaptarse con la incorporación de ese elemento, para la página ilustrada en la figura 3.5.
Esto contrasta con el trabajo [11], referenciado en la sección 2.2.5. Retomando el uso de la palabra “Resultados”, la cual al no existir en la primera página no generaría algún valor numérico, pero en la segunda sí; y cambiaría las similitudes entre la representación numérica de la estructura de datos a buscar, contra la representación numérica de la página HTML generada, disminuyendo la re-utilización de la representación numérica creada para la página de la figura 3.4.