Linked Data: RDF, SPARQL y Question Answering systems (2)

En la primera parte de la tarde he estado instalando MYSQL, pero mañana tengo una entrevista en la que piden un Data Scientist que sepa de sistemas pregunta-respuesta, así que voy a continuar con el artículo que empecé el otro día.

Dificultades de este tipo de sistemas:

  • traducir las preguntas hechas en lenguaje natural a SPARQL
  • elegir los datasets adecuados (donde podamos encontrar respuestas!).
  • encontrar los URIs correctos. Por ejemplo, la clase dbo:Film no tiene otras variantes como «movie» o similares. Esto nos obligará a conocer o tener que hacer una búsqueda de los URIs adecuados.
  • Problemas con cuantificadores como «el más» (most), «la menos» (less)… Este tipo de estructuras se corresponden con «aggregation operations» de SPARQL (como filtrar, ordenar, limitar…)
  • Casos de ambigüedad. Distintos RDF pueden tender distintos tipos de recursos.
  • Multilenguaje. La mayoría de los datasets están en inglés.
  • Accuracy: Respuestas erróneas en este tipo de sistemas son, normalmente, peores resusltados que no tener una respuesta. El sistema tendría que detectar casos en los que no tuviéramos respuesta posible en el dataset. Además podríamos encontrar inconsistencias entre distintos datasets.
  • Deberían dar una respuesta en tiempo real.
  • Mezcla de datos estructurados y no estructurados. Por ejemplo: ¿Dónde murió el primer hombre que fue al espacio? En este caso, tenemos que saber, por un lado, quién es el primer hombre que fue al espacio y, una vez que lo conocemos, ir al RDF y ver dónde murió.

Existen clasificaciones de los tipos de preguntas que un usuario puede hacer a este tipo de sistemas: preguntas de sí/no, preguntas de definiciones, preguntas de listas, etc.

Los recursos de datos que se pueden usar para llegar a la respuesta que busca el usuario son de distintos tipos:

  • Datos estructurados: bases de datos relacionales, linked data…
  • Datos semi-estructurados: documentos XML
  • Datos no estructurados: textos

Estos sistemas, por tanto, pueden ser híbridos (si consultan distintos tipos de datos) o solo basar sus respuestas en un único tipo de datos. Además, podrán consultar solo un data set, un conjunto de ellos o todos los que estén disponibles.

Por último, podrá ser un sistema de pregunta-respuesta para un dominio o un sistema general.

Empezando con SQL y SPARQL

Estoy viendo que en la mayoría de las ofertas a las que quiero postularme piden conocimientos de SQL así que, ya que estoy, voy a ponerme con ello también. He visto que el SPARQL se basa, en realidad, en SQL así que, de esta manera, mato dos pájaros de un tiro.

Ya sabía que SQL se trataba de un lenguaje con que preguntarle cosas a nuestras bases de datos, pero la verdad es que no tenía claro cómo o dónde poner esas preguntas! He estado buscando y creo que lo voy a poder hacer instalando MySQL, el software que me permitirá acceder a esas bases de datos.

Para instalarlo, uno de los requisitos era tener Microsoft Visual Studio instalado también. Sé que es una herramienta para desarrolladores, pero me voy a poner en los deberes el investigar un poquito más sobre esta herramienta.

En cuanto a SPARQL, tampoco me quedaba claro cómo usarlo para extraer información de los grafos RDF (no la sintaxis, sino CÓMO, DESDE DÓNDE!!). He estado buscando esto también y he descubierto que existen diferentes implementaciones de SPARQL donde poner esas «preguntas». Algunas como Virtuoso me sonaban de las ofertas de empleo.

Se pueden hacer queries a los distintos grafos RDF a través del web service de Virtuoso SPARQL .

Una hora después…. ok! Ya tengo MySQL instalado!! Yujuuu!! Ahora sólo falta que aprenda a usarlo porque no sé ni por dónde empezar, tiene millones de funcionalidades! OMG! :S

Deberes

  • Microsoft Visual Studio