Menu

Home

Jose Alberto Benítez Andrades

INICIO

Bienvenidos al Conversor de ficheros en formato RDF a OWL (también válido para convertir a otros formatos).

INTERFAZ GRÁFICO DE BÚSQUEDA ONTOLÓGICA Y SEMÁNTICA

1.ESTRUCTURA DEL PROYECTO

La interfaz de búsqueda está realizada con los lenguajes de programación PHP, HTML5, CSS3, JAVASCRIPT y AJAX (realizando consultas de forma directa a nuestro servidor de Apache Solr recibiendo los datos con la estructura JSON para poder trabajar con los datos en JavaScript).
Los directorios y ficheros de los que se compone nuestra interfaz son los siguientes:
+ css
- estilo.css : este fichero es la hoja de estilos del sitio web, en el cual hemos definido la estructura de cada elemento de nuestra web, las fuentes, los colores, los fondos y los efectos del sitio.

  • include

    • head.php : contiene el título del sitio web, las metaetiquetas y la declaración de los ficheros javascript que van a ser utilizados, dependiendo del buscador en el que nos encontremos. Si elegimos el buscador semántico, se realizará la llamada al fichero js/buscador.js , si por el contrario hemos elegido el buscador textual, se realiza la llamada al fichero js/buscadorTextual.js.
  • js

    • buscadorTextual.js
    • buscador.js : Fichero que contiene la funcionalidad del buscador semántico, capaz de detectar, gracias a todas las funciones que se encuentran en el mismo, la búsqueda de lo que necesita el usuario entendiendo perfectamente lo que él realmente desea.
  • index.php

2.FUNCIONAMIENTO

USO DE COMPONENTE 2: BÚSQUEDAS SEMÁNTICAS Y TEXTUALES
La interfaz de búsqueda está realizada con los lenguajes de programación PHP, HTML5, CSS3, JAVASCRIPT y AJAX (realizando consultas de forma directa a nuestro servidor de Apache Solr recibiendo los datos con la estructura JSON para poder trabajar con los datos en JavaScript).
En el ANEXO 4 se encuentra los detalles de la implementación.

Han sido creados dos tipos de buscador: un buscador textual, en el cual, se recogen los datos introducidos por el usuario en el cuadro de búsqueda y se realiza una consulta a nuestra base de datos almacenada en Solr sin facetar ; y un buscador semántico, mediante el cual, con un parser realizado en JavaScript, PHP y AJAX, se recibe la cadena de texto introducida por el usuario en el campo de texto y se interpreta mediante una serie de funciones la semántica de la frase, pudiendo así responder de forma natural a las necesidades que realmente tiene el usuario.

buscadorTextual.js

El buscador textual tiene un funcionamiento sencillo, el proceso que se sigue para realizar la consulta es el siguiente:

  • En primer lugar creamos un objeto de tipo Ajax mediante el cual realizaremos una consulta a nuestro Solr, recibiendo la respuesta de Solr en formato JSON para poder mostrarlo en pantalla desde nuestro script realizado en JavaScript.

  • Una vez hemos creado el objeto, recibimos y almacenamos en una variable llamada datos_formulario la cadena de texto insertada por el usuario en el cuadro de búsqueda.

  • Obtenida la cadena, asignamos a la propiedad url de nuestro objeto en AJAX, el siguiente valor:

http://buscadorags.jabenitez.com/solr/fichas/select?indent=on&version=2.2&q='+datos_formulario+'&fq=&start=0&rows=7500&fl=id%2Cscore&wt=json&explainOther=&hl=on&hl.fl=titulo
  • Esta cadena realiza la consulta de forma directa a nuestra base de datos almacenada en Solr, enviándole como consulta la cadena de texto insertada por el usuario, buscando así, la cadena de texto introducida en toda nuestra base de datos del AGS.

  • De esta manera, recibiremos una respuesta de las fichas que contienen el texto insertado el usuario.

  • Al ser una búsqueda de tipo textual, este buscador no cumple con los requisitos de búsqueda semántica, lo que dificulta su uso para una persona que desconoce el verdadero contenido de la base de datos.

  • Un ejemplo práctico: Supongamos que el usuario desea tener la siguiente información: ¿Qué mapas fueron realizados en el año 1950 por el autor Juan Baptista?
    En el caso de nuestro buscador semántico, recogerá la cadena de texto introducida por el usuario y nos devolverá los resultados de buscar esa cadena completa en nuestra base de datos, no sabiendo interpretar qué datos realmente necesita conocer el usuario ni de dónde debe obtenerlos.

buscadorSemantico.js

En oposición a nuestro buscadorTextual.js, con el buscador semántico pretendemos facilitar al usuario de a pie la realización de búsquedas, realizando una evaluación semántica de la frase que recibamos del cuadro de búsqueda.

El funcionamiento de este buscador tiene distintas fases, posee una complejidad bastante más elevada que el buscadorTextual.

Su funcionamiento se divide en las siguientes fases:

  1. Teniendo en cuenta el sistema QA descrito en el punto 5.1. de este trabajo, tenemos constancia de que el usuario puede realizar 5 tipos de consulta diferenciadas por la pregunta que realice: qué, quién, cómo, dónde y cuándo. Cada pregunta va a devolver un tipo de dato distinto almacenado en nuestra base de datos, con lo cual, sabemos lo siguiente:

    • Qué: si el usuario realiza una consulta con este término, los datos que deberemos devolver serán los almacenados como tipo de dato título, autor o técnica.
    • Quién: devolverá datos pertenecientes a los campos autor, contribuyente o publicador.
    • Cómo: recibiremos valores de los campos técnica o soporte, que responderían a “cómo se realizó/hizo una obra/mapa/revista.”
      d. Dónde: en consultas con este término, el sistema devolverá una respuesta obtenida de los campos ciudad, país o continente.
    • Cuándo: si realizamos una consulta con este término, recibiremos una respuesta contenida en los campos época o año.

    Para conseguir esto, en primer lugar hemos creado una constante que almacena estos 5 tipos de pregunta con sus posibles variantes, de manera que, una vez recibida la cadena de texto insertada por el usuario, en una primera evaluación de la frase, buscaremos estos términos para poder generar una consulta que nos devuelva los campos que realmente necesitamos. De esta forma, si el usuario inserta una consulta como la siguiente: ¿Qué mapas se realizaron en el año 1950?, nuestro parser en una primera fase leerá la cadena de texto, detectará la palabra “Qué” y almacenará en otra variable los posibles valores a mostrar (en este caso, título, autor o año).

  2. En una segunda fase, una vez hemos evaluado el tipo de pregunta que realiza el usuario nuestro parser realiza un análisis del objeto al que hace referencia nuestra pregunta, detectando si se trata de un autor, un mapa, una obra, un dibujo.

    Una vez se ha detectado cualquiera de estas palabras, nuestro parser sabra de qué tipo es objeto que debe devolver. En el caso del ejemplo propuesto, nuestro parser ya ha podido descartar un gran número de elementos en su búsqueda, limitando la consulta a devolver resultados que pertenecen al tipo mapas de nuestra base de datos solar y además ha podido concluir que el dato principal solicitado, es el título en este caso.

  3. En una tercera fase de la consulta, nuestro parser detecta el verbo de la frase y el sujeto al que se hace referencia, pudiendo así detectar nuevos campos en los que deberá realizar su consulta. En el caso de nuestro ejemplo particular, analizaría la cadena de texto “se realizaron en el año 1950”, siendo capaz de detectar que la consulta debe realizarla en el campo fecha de nuestra base de datos Solr, con el dato 1950.
    Este proceso funciona de la siguiente manera:

    • Al detectar la frase “se realizaron en el año”, nuestro parser llama a una función que realiza una consulta a la base de datos Solr, almacenando en un array todos los valores de tipo fecha que existen actualmente en la base de datos.
    • Una vez generado ese array, nuestro parser realiza un segundo análisis, en el que compara la cadena de texto 1950 con los valores obtenidos en ese array.
    • Ese array almacenaba las diferentes IDs de las obras/mapas/revistas que contenían la fecha 1950, con lo cual, después de realizar esta comparativa, almacenamos en un nuevo array los valores de los campos consultados que poseen como fecha de creación 1950
  4. Finalmente, habiendo realizado las fases anteriores, el objeto que habíamos creado en AJAX, el cual realiza las distintas consultas a nuestra base de datos Solr mediante JSON, muestra los datos almacenados en el array de resultados, con una apariencia específica y amigable para el usuario.

CONTACTO

Esta aplicación ha sido realizada por:

DESCARGA

Project Members: