Lenguajes de recuperación para la Web
Recuperación y organización de la información
XML-Query
XQuery, también conocido como XML Query, es un lenguaje que falicita la recuperación y organización de la información, y que se centra en encontrar y extraer elementos y atributos de documentos XML. La mejor forma de entender este lenguaje es diciendo que XQuery es para XML lo que SQL es para las bases de datos. Por ejemplo, una pregunta que XQuery podría resolver sería la siguiente: Seleccionar todos los libros con un precio menor a 20 euros de la colección de libros almacenada en un documento XML llamado catalogo.xml.
XQuery es supervisado por W3C (World Wide Web Consortium), por lo que es compatible con XML, Namespaces, XSLT, XPath y XML Schema.
XQuery es soportado por los principales motores de bases de datos (IBM, Oracle, Microsoft, etc.).
XQuery hace uso de XPath, un lenguaje utilizado para seleccionar partes de XML. De hecho, XQuery 1.0 y XPath 2.0 comparten el mismo modelo de datos y soportan las mismas funciones y operadores. Por ello, si ya conoces XPath, no tendrás problemas en comprender XQuery.
Para entender mejor el lenguaje de recuperación XQuery, a continuación, se muestra un ejemplo, basándonos en el siguiente documento:
<libros>
</libro>
<libro tema="Humanidades">
<titulo ISBN="8434453096">La vida eterna</titulo>
<autor>Fernando Savater</autor>
<fecha>2007</fecha>
<precio>17.50</precio>
</libro>
<libro tema="Literatura">
<titulo ISBN="8476697635">Los irlandeses</titulo>
<autor>Rodolfo Walsh</autor>
<fecha>2007</fecha>
<precio>16</precio>
</libro>
<libro tema="Gastronomía">
<titulo ISBN="8496434559">Galicia en el paladar</titulo>
<autor>Cristóbal Ramírez</autor>
<autor>Miguel Pazos</autor>
<autor>Mantel Xose Santos Díaz</autor>
<fecha>2007</fecha>
<precio>24.90</precio>
</libro>
</libro>
<libro tema="Artes">
<titulo ISBN="8496445550">Los tesoros de Rembrandt</titulo>
<autor>Michiel Roscam Abbing</autor>
<fecha>2006</fecha>
<precio>35</precio>
</libro>
</libros>
XQuery utiliza funciones para extraer información de un documento XML. La siguiente función permite abrir el fichero.
XQuery utiliza expresiones para navegar a través de los elementos de un documento XML. La siguiente expresión sirve para seleccionar el título de todos los libros.
El resultado sería:
<titulo ISBN="8476697635">Los irlandeses</titulo>
<titulo ISBN="8496434559">Galicia en el paladar</titulo>
<titulo ISBN="8496445550">Los tesoros de Rembrandt</titulo>
XQuery usa predicados para limitar la información extraída del documento XML. El siguiente predicado sirve para seleccionar aquellos libros cuyo precio sea menor a 20 euros.
El resultado sería:
<libro tema="Humanidades">
<titulo ISBN="8434453096">La vida eterna</titulo>
<autor>Fernando Savater</autor>
<fecha>2007</fecha>
<precio>17.50</precio>
</libro>
<libro tema="Literatura">
<titulo ISBN="8476697635">Los irlandeses</titulo>
<autor>Rodolfo Walsh</autor>
<fecha>2007</fecha>
<precio>16</precio>
</libro>
Las expresiones FLWOR (For, Let, Where, Order by, Return) son en XQuery equivalentes a las distintas claúsulas usadas en SQL. Usando FLWOR podemos obtener el título de cada libro cuyo precio sea mayor que 20 euros y ordenada alfabéticamente:
where $x/precio>20
order by $x/titulo
return $x/titulo
El resultado sería:
<titulo ISBN="8496445550">Los tesoros de Rembrandt</titulo>
Además, usando FLWOR podemos después representar el resultado en HTML. Por ejemplo, mediante una lista mostrar sólo el título de cada libro y ordenada alfabéticamente:
{
for $x in doc("catalogo.xml")/libros/libro/titulo
order by $x
return <li>{data($x)}</li>
}
</ul>
El resultado sería:
<li>Galicia en el paladar</li>
<li>La vida eterna</li>
<li>Los irlandeses</li>
<li>Los tesoros de Rembrandt</li>
</ul>
Para terminar, vamos a hablar acerca del uso de expresiones condicionales en este tipo de lenguaje de recuperación y que también serán útiles para realizar ciertas consultas. El ejemplo siguiente permite diferenciar entre los libros que considero entretenidos y los que no lo son.
return if ($x/@tema="Literatura")
then <entretenido>{data($x/titulo)}</entretenido>
else <aburrido>{data($x/titulo)}</aburrido>
Esto daría el resultado:
<entretenido>Los irlandeses</entretenido>
<aburrido>Galicia en el paladar</aburrido>
<aburrido>Los tesoros de Rembrandt</aburrido>
WIKI de recuperación y organización de la información
- Página principal del WIKI
- Evaluación de los principales buscadores web
- Sistemas de Question-Answering
- Metadatos y documentos XML/RDF para recuperación
- Lenguajes de recuperación: XML-Query, XQL y Tolog
- Lenguajes de recuperación: SeRQL y SPARQL
- Almacenamiento, consulta y razonamiento: Sesame y Jena
- Modelos de recuperación
- Motores de recuperación de documentos XML/RDF
- Procesamiento del Lenguaje Natural
- Usabilidad y accesibilidad en el posicionamiento
- Clasificación supervisada
- Clasificación no supervisada: clustering y Kohonen
- Fusión de ontologías de metadatos FCA, Onions y Prompt
- Minería de textos web