300 likes | 501 Views
Aplicación web para la ejecución de consultas en bases de datos jurídicas XML. Javier García Tomillo. Patricia Cadenas Quijano. I NGENIERÍA T ÉCNICA EN I NFORMÁTICA DE G ESTIÓN. Índice. Introducción Planificación Análisis Entorno Requisitos del sistema del middleware inicial Diseño
E N D
Aplicación web para la ejecución de consultas en bases de datos jurídicas XML Javier García Tomillo Patricia Cadenas Quijano INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN
Índice • Introducción • Planificación • Análisis • Entorno • Requisitos del sistema • del middleware inicial • Diseño • Arquitectura • Capas • Un diagrama de secuencia • Implementación • Pruebas • Conclusiones • Turno de preguntas
INTRODUCCIÓN Motivaciones • Existencia de una serie de documentos estructurados XML en una biblioteca digital. • Son documentos legislativos, • Que contienen referencias a otros documentos, • Almacenados en una base de datos nativa XML. • Necesidad de consultar los documentos jurídicos de los que se dispone: principalmente las referencias.
INTRODUCCIÓN Objetivos Desarrollar una aplicación de consulta sobre documentos XML almacenados en una base de datos nativa XML, que permita: • Realizar estas consultas de tres formas diferentes, atendiendo al nivel de conocimientos del usuario de XML: • Predefinidas • Marco • XQuery • Gestionar las consultas ejecutadas, permitiendo almacenarlas. • Gestionar el contenido de la base de datos. • La existencia de diversos roles de usuario, que definirán la funcionalidad a la que puede acceder cada uno. Además, si es posible, se utilizará el middleware para interactuar con la base de datos.
ANÁLISIS Entorno Conceptos previos • Colección: un conjunto de documentos XML, que se define en base a los criterios del usuario. Puede contener subcolecciones. • Subcolección: es una colección contenida en otra colección. • Clase: un conjunto de documentos que comparten la misma regla de composición, es decir, el esquema. • Esquema: es un archivo DTD que contiene las reglas que debe cumplir un documento XML para estar bien formado.
ANÁLISIS Entorno Documentos XML empleados: jurídicos • La aplicación utilizará los siguientes datos para realizar su labor: • Los documentos XML jurídicos o normativos • Documentos XML que contienen información acerca de las referencias presentes en dichos documentos • Documentos XML con información adicional sobre las referencias encontradas (datos)
ANÁLISIS Entorno Documentos normativos <titulo id='t1'> <head>TÍTULO I : ÁMBITO DE APLICACIÓN</head> <articulo id='t1a1'> <head>Artículo 1</head> <p>Se excluirá del ámbito de aplicación del presente Convenio:</p> <p>1. el estado y la capacidad de las personas […] </p> <p>2. la quiebra, los convenios entre quebrado y […] </p> <p>3. la Seguridad Social;</p> <p>4. el arbitraje.</p> </articulo> </titulo> • Contienen documentos legislativos • Estructurados jerárquicamente • Tienen referencias a otros documentos normativos
ANÁLISIS Entorno Documentos que contienen información sobre las referencias <ENLACE> <ORIGEN xlink:type="locator" xlink:href="es_488A0592_LUGANO.xml#xpointer(/doc/titulo[1]/articulo[1]/p[1])" xlink:label="es_488A0592_LUGANO-t1a1p1" string="presente Convenio" doctype="norma" /> <DESTINO xlink:type="locator" xlink:href="es_488A0592_LUGANO.xml" xlink:label="es_488A0592_LUGANO" doctype="norma" /> <ARCO xlink:type="arc" xlink:from="es_488A0592_LUGANO-t1a1p1" xlink:to="es_488A0592_LUGANO" xlink:show="other" xlink:arcrole="citation" xlink:actuate="none" /> </ENLACE> • Una entrada para cada referencia encontrada • El punto de origen de la referencia • La cadena de texto que conforma la referencia • Y el destino o destinos de la referencia
ANÁLISIS Entorno Documentos que describen las referencias (datos) <datosref xlink:href="es_488A0592_LUGANO.xml#xpointer(/doc/titulo[1]/articulo[1]/p[1])" string="presente Convenio"> <caddetectada>presente Convenio</caddetectada> <cadcorregida/> <taxonomiadetec contexto="Relativa" item="Documento" ambito="Interna" numero="Simple"/> <errordeteccion/> <destino> <errorresolucion/> <xpointerautomatico>es_488A0592_LUGANO.xml</xpointerautomatico> <xpointercorregido/> </destino> </datosref> • Una entrada para cada referencia encontrada. • La describe de acuerdo a su clasificación según una taxonomía dada y su detección • Incluye el origen y el destino de la referencia
ANÁLISIS Entorno Taxonomía de las referencias • Tipo de ítem referenciado • Documentos • Fragmentos • Ámbito de la referencia • Interna • Externa • Número de ítems referenciados • Simple / Singular • Múltiple / Coordinada • ¿Se requiere conocimiento del contexto? • Directa • Relativa
ANÁLISIS Entorno Tipos de consultas según el resultado obtenido • TIPO I • Son consultas que seleccionan un elemento, como un artículo, párrafo, sección, etc. • También se incluyen en este tipo las consultas que hagan listados de referencias. • TIPO II • Contestan a preguntas del tipo ¿Cuántas referencias…?, por lo que su resultado será siempre de tipo numérico. • TIPO III • Se refieren a la frecuencia de aparición del tipo de referencia (según la taxonomía) que se le indique.
ANÁLISIS Diagrama de casos de uso
ANÁLISIS del middleware inicial • Necesidad de un middleware más flexible • Nuevos requisitos • Roles: usuario, usuario avanzado y administrador. • Las clases no se limitarán a norma, links y datos. • Las subcolecciones no serán únicamente norma, links y datos, sino que se las designará con el nombre que indique el usuario al crearlas. • Documentos de distintas clases podrán estar en una misma colección. • Existirá la posibilidad de insertar documentos directamente en una colección. • El propietario de la colección puede transferir permisos a otros usuarios para permitirles el acceso a ella.
ANÁLISIS del middleware inicial Estructura de ejemplo de la base de datos resultante de las modificaciones
DISEÑO Arquitectura general de la aplicación • Arquitectura Cliente/Servidor • Arquitectura en tres capas
DISEÑO Arquitectura general de la aplicación
DISEÑO Arquitectura general de la aplicación Patrones • Modelo-Vista-Controlador • En la capa de presentación • Típico de aplicaciones web • Comando • ControladorServlet • Interfaz Java Acción • Singleton (middleware) • Controlador • Catálogos
DISEÑO Capa de presentación • JSP-HTML y CSS • Transformación XML a HTML
DISEÑO Capa de dominio Middleware
DISEÑO Capa de dominio DomAuxiliar
API XML:DB. Interactúa con el middleware y con DomAuxiliar DISEÑO Capa de dominio – Capa de datos Clases Java Acción Útiles • Complementan las clases Java Acción • No son instanciadas por el ControladorServlet • Funcionalidades encapsuladas: Constantes, ObtenerFecha… Capa de datos
DISEÑO Un diagrama de secuencia: Realizar consulta en XQuery • Ilustra el comportamiento general de la aplicación ante un evento
IMPLEMENTACIÓN • Modificaciones del middleware: más flexible • La aplicación condiciona el funcionamiento del middleware: • Gestión de la base de datos: exclusivo del administrador • Consultas predefinidas: sobre colección de ejemplo • Consultas marco: • Por tipos según lo que se desea buscar • Consultas Marco de Tipo 1: • Por identificador: <seccion id=“s1”> • Por orden: <seccion id=“t1s1”> ó <seccion> • Consultas Marco de Tipo 2 • Consultas Marco de Tipo 3 es_488A0592_LUGANO.xml#xpointer(/doc/titulo[1]/articulo[1]/p[1])
IMPLEMENTACIÓN Una consulta • Una consulta de tipo 1 que muestra referencias: for $x in doc(“Textos UE/Reglamentos/datos-bruselas-links.xml")/datosenlaces/datosref where $x/taxonomiadetec[@item="Documento" and (@numero="Simple" or @numero="Singular") and @ambito="Externa" and @contexto="Directa"] return $x
IMPLEMENTACIÓN • Consultas XQuery • Historial de consultas • Estructura de documento XML de una consulta guardada <item> <usuario></usuario> <fecha></fecha> <consulta></consulta> <descripcion><descripcion> <consulta-xquery></consulta-xquery> <resultado></resultado> </item>
PRUEBAS • Orientadas a detectar fallos • Baterías de pruebas de caja negra de análisis de valores límite y conjetura de errores • Fallos encontrados:
CONCLUSIONES • Se presenta una aplicación capaz de interactuar con una base de datos nativa XML y gestionar su contenido, que tiene como objetivo principal la ejecución de consultas sobre ella, clasificadas en tipos de acuerdo al conocimiento de XML del usuario. • Es flexible: permite el manejo de cualquier documento XML • Es reutilizable: • Permite la inclusión de nuevas funcionalidades de forma sencilla • Permite modificar la interfaz sin cambios en la lógica de negocio: CSS • Es portable • Evaluación del middleware: útil para la abstracción, aunque con mejoras • Cumple los requisitos definidos en la sección de Análisis
CONCLUSIONES Trabajo futuro • Pruebas con usuarios: evaluar la utilidad de la aplicación diseñada. • Modificar el middleware para desvincular los roles. • Unificación, en un proyecto común, la visualización y modificación de referencias y la consulta de documentos. • Inclusión de gráficos en algunos resultados de consultas marco tipo 3.