Chapter 2 Literature review
2.7 Knowledge capturing, modelling and automation approaches and practices
2.7.2 Semantic-based modelling
Definimos como punto de referencia, a la sección dentro de un elemento que contiene ya sea el valor de un elemento dato, uno de sus sinónimos, o el dominio de datos especificado para el elemento en la estructura de búsqueda. La búsqueda de los puntos de referencia lleva el siguiente procedimiento:
1) Por cada uno de los elementos dato de la estructura de búsqueda, busca el valor especificado dentro de los tags <p> y <div> del documento XHTML. En caso de hallarlo se genera la entrada del documento XSL con la condición de transformación solamente para el dato hallado, de acuerdo al tipo de tag donde se halló. Además, se debe definir que parte del tag es lo que se va a copiar a partir del punto de referencia, definidos en el atributo delimitador del elemento en la estructura de búsqueda.
2) Al procesar el elemento dato y no hallar el valor del elemento, procede la misma función pero buscando por un sinónimo. Esto se repite por cada uno de los sinónimos definidos para el elemento dato, hasta encontrar un sinónimo en los tags del documento XHTML. La iteración se detiene al hallar la primera ocurrencia de los sinónimos, a menos que el valor del atributo multiple sea “sí”. En ese caso se agrega una transformación por cada sinónimo hallado.
3) En caso de no existir tampoco un sinónimo se busca un dominio de datos, que es una representación de las características de un valor que pudiere tener este elemento. Dado que el dominio puede ser representado por expresiones regulares, en ese caso se
procede a buscarlo por medio de comandos tales como el sed6.
Retomando el ejemplo de equipos deportivos, un nombre de un competidor siempre tendrá por lo menos alguna letra, mientras que los puntajes tendrán por lo menos un número.
4) En caso de que tampoco se haya encontrado una expresión que satisfaga el dominio de datos, y de que el valor del atributo requerido sea “si”, se agrega el valor del elemento default si existe; en caso contrario, se agrega el mismo nombre del elemento.
El resultado de la búsqueda de puntos de referencia es un archivo XSL que aplicado sobre el código del XHTML produce un documento XML, donde cada elemento de la estructura XML corresponde al valor de cada elemento dato del documento de definición de datos, donde los valores de éste son obtenidos por cálculos a partir de los puntos de referencia y definidos por los atributos correspondientes al dato.
Este archivo de transformación es creado por medio de expresiones XPath y XSL que delimitan el contenido alrededor de los puntos de referencia. El ciclo de búsqueda puede realizarse de dos formas:
• Buscar cada elemento de la estructura de datos XML en el archivo XHTML.
• Buscar cada palabra en los tags de búsqueda del archivo XHTML entre los elementos de la estructura de datos XML.
A continuación se describen a detalle ambas aproximaciones para el ciclo de búsqueda de puntos de referencia.
3.6.1 Búsqueda de cada elemento
Esta es la aproximación propuesta en este método. En el caso ideal se tiene un elemento transformador XSL por cada elemento hallado, cuyo valor se obtiene de acuerdo a la definición de los atributos y elementos de la estructura de búsqueda XML. Además permite realizar una métrica de la efectividad de la estructura XML de búsqueda, de acuerdo al número de elementos cuyo valor final fue el valor por defecto definido,
en caso de que exista el valor de este elemento. Lo cual puede presentar problemas cuando un sinónimo coincide con otro elemento de la estructura de búsqueda, como se muestra en el siguiente ejemplo:
<dato> Fiscal </dato> <dato> Ambito
<sinonimo> Fiscal </sinonimo> <sinonimo> Mercantil </sinonimo> </dato>
En el documento XHTML se encuentra la ocurrencia del dato “Fiscal”, pero al buscar el elemento Ambito, esta palabra no aparece, pero hallará el elemento Fiscal como sinónimo del elemento Ambito, por lo que la regla de transformación XSL puede arrojar el mismo valor para dos elementos diferentes.
3.6.2 Buscar cada palabra de los tags
En esta aproximación, se busca cada palabra contenida en los tags7,
para ver si coincide con algún elemento de la estructura de búsqueda. En este caso, se ignorarían los atributos del dominio. La razón por la que esta aproximación no se consideró es que implicaría hacer más búsquedas en la estructura XML, ya que por lo general la cantidad de elementos “dato” definidos en la estructura de búsqueda, es mucho menor que la cantidad de palabras en el documento XHTML procesado. Este caso también dificulta el poder definir de manera adecuada si hay ocurrencias múltiples de un mismo elemento “dato”.
3.6.3 Mapeo de puntos de referencia a la estructura de datos
A partir de cada punto de referencia, podemos crear el código que actualmente extraerá los datos. El código es básicamente un archivo de tipo XSL. El propósito del archivo es identificar el punto de referencia, especificar como obtener los datos que estamos buscando y construir el XML especificado en la estructura de datos.
La metodología automatizada debe generar el archivo XSL al que nos referimos en este punto. En caso de no hallar un valor para un elemento
7 Existe una lista de palabras a ignorar, tales como proposiciones y artículos. Se trabaja sobre aquellas
especificado, se llena con el valor default del elemento en caso de que este definido, en el caso de usar el algoritmo especificado en la sección anterior.
Si el elemento no pertenece a un tag <td>, quiere decir, dentro de la celda de una tabla. El valor que será asociado al elemento se obtiene de copiar todos los caracteres a la derecha de la palabra encontrada hasta que termine el valor del tag.
En caso contrario se pueden proceder de dos formas:
• Por defecto los valores del elemento se encuentran localizados de manera vertical. Es decir, uno o más valores del elemento se encuentran en la misma columna donde se determinó el punto de referencia, pero en las filas que se encuentran posteriores a éste. Un ejemplo es las tablas de posiciones en un torneo deportivo de conjunto como fútbol o béisbol.
• Por defecto los valores del elemento se encuentran localizados de manera horizontal. Es decir, en la celda contigua a la derecha de la celda donde se ubicó el punto de referencia del elemento se encuentra el valor del mismo.
La corrida por defecto se hace asumiendo que los valores se encuentran de manera vertical, en caso de que el usuario extractor de información determine que los valores no son adecuados, puede intentarse una segunda corrida especificando que sea de manera horizontal.
Como se mencionó en la sección anterior, se presenta una situación cuando un mismo tag contiene valores que satisfacen a más de un elemento. Se propone que dentro del tag se busquen espacios en blanco para delimitar valores. También es posible auxiliarse de expresiones regulares, como fue en el caso practico de los datos de béisbol.
Esta situación conlleva a efectuar varias iteraciones de los pasos sugeridos en esta estrategia. Estas iteraciones pueden tener propósitos diferentes, aunque no mutuamente excluyentes.
1) Actualizar tanto la estructura de búsqueda, como las expresiones regulares a buscar, con el fin de obtener valores que
se adapten mejor a la estructura de búsqueda.
2) Realizar validaciones posteriores a la captura, que ocurre cuando la fuente no tiene todos los delimitadores de los datos. Esto se explica con mayor detalle en la sección 3.6.1.
3) Adaptarse a cambios no previstos o situaciones donde aparecen valores que no se consideran en el dominio original. Como la aparición de caracteres alfanuméricos en un campo que por definición solo lleva caracteres numéricos.
3.7 Conclusiones
Al considerar los trabajos enumerados en el capítulo 2 del trabajo así como los pasos descritos en este capítulo, se proponen los siguientes beneficios de esta estrategia de extracción:
1) Flexibilidad al buscar en fuentes donde la misma información de un dominio de datos se encuentra agrupada de maneras diferentes. La inclusión del manejo de sinónimos permite esto, pues facilita la búsqueda en estructuras diferentes al buscar por un término alterno que represente lo mismo en caso de no hallar el término original.
2) Considerando la expansión del uso de formatos bien formados o semi-estructurados para almacenar información además de presentarla, el hecho de que el resultado de la aplicación de la estrategia sea una estructura bien formada permite la creación de una amplia variedad de aplicaciones que pueden explotar esta estructura. Como ejemplos tenemos la propuesta de formato Open Document, así como los formatos de XML propuestos también por la empresa Microsoft.
3) Permite reducir el tiempo de alimentación de una base de datos partiendo de documentos que tengan la información que va a residir en dicha base de datos.
Estos beneficios se explican con más detalle en los siguientes capítulos, sobre los casos prácticos, las aportaciones y aplicaciones sugeridas.