Web semantica

10
David Herrero de la Peña, Alejandro Benítez Arnaiz | IA | 03 de diciembre de 2013 Bibliotecas SWI-Prolog para la web semántica INTELIGENCIA ARTIFICIAL

description

Pequeño resumen de lo que es la Web Semántica

Transcript of Web semantica

Page 1: Web semantica

David Herrero de la Peña, Alejandro Benítez Arnaiz | IA | 03 de diciembre de 2013

Bibliotecas SWI-Prolog para la web semántica

INTELIGENCIA ARTIFICIAL

Page 2: Web semantica

PÁGINA 1

Contenido

¿Qué es la Web Semántica? ........................................................................................................................... 2

¿Para que sirve? ........................................................................................................................................... 2

RDF ............................................................................................................................................................... 2

SPARQL ........................................................................................................................................................ 3

OWL ............................................................................................................................................................. 3

Web Semántica en Prolog .............................................................................................................................. 3

SWI-Prolog Semantic Web Library 3.0 ..................................................................................................... 3

Escalabilidad ........................................................................................................................................... 4

Biblioteca semweb/rdf_db: la base de datos RDF ................................................................................. 4

Biblioteca/rdfs: consultas relacionadas RDFS ....................................................................................... 5

Gestión de archivos de entrada RDF ...................................................................................................... 6

Paquetes relacionados ............................................................................................................................ 6

THEA ........................................................................................................................................................... 6

Descarga .................................................................................................................................................. 6

Documentación completa ...................................................................................................................... 6

Resumen .................................................................................................................................................. 6

Prolog como lenguaje de procesamiento de Ontologías ....................................................................... 7

THEA y Prolog .......................................................................................................................................... 7

Organización de la librería THEA.......................................................................................................... 8

Conclusiones ........................................................................................................................................... 8

BIBLIOGRAFÍA ................................................................................................................................................. 9

Page 3: Web semantica

PÁGINA 2

¿Qué es la Web Semántica?

Actualmente estamos usando una red de hiperlinks, es decir, tenemos una red centralizada repleta

de información/páginas que se referencian unas a otras mediante links. Somos nosotros, las propias

personas, las que tenemos que realizar el trabajo de buscar la información, seguir los links para

encontrar nueva información, etc.

Se podría decir que las personas hacemos la parte complicada del trabajo, buscar información, y que

las máquinas solo realizan la parte sencilla, que es representarla por pantalla.

La Web Semántica intenta que trasladar el problema de la búsqueda y relación de información a la

máquina, y conseguir que sean los propios computadores los que busquen, relacionen y muestren la

información.

Un posible ejemplo podría ser preguntar a la máquina por “piolín” y que ella sola nos mostrara toda

la información que pudiera encontrar y enlazar: que es un pájaro, que es amarillo, que puede hablar,

etc.

La Web Semántica es una Web extendida, dotada de mayor significado en la que cualquier usuario

en Internet podrá encontrar respuestas a sus preguntas de forma más rápida y sencilla gracias a una

información mejor definida.

Es una infraestructura basada en metadatos.

¿PARA QUE SIRVE?

Trata de resolver dos de los problemas de la web actual: la sobrecarga de información y su

heterogeneidad. Gracias a la web semántica el SW es capaz de combinar toda la información,

realizar deducciones lógicas y procesar su contenido.

RDF

Resource Description Framework.

Proporciona información descriptiva simple sobre los recursos que se encuentran en la Web y que se

utiliza, por ejemplo, en catálogos de libros, directorios, colecciones personales de música, fotos,

eventos, etc.

RDF te muestra el esquema con el que se han de formar las tripletas “sujeto-predicado-objeto”.

Una colección de sentencias RDF representa intrínsecamente un grafo dirigido y etiquetado.

EJEMPLOS:

Página sobre fútbol en Wikipedia.

<http://en.wikipedia.org/Futbol> <http://purl.org/dc/elements/1.1/title> "Fútbol"

<http://en.wikipedia.org/Futbol> <http://purl.org/dc/elements/1.1/publisher> "Wikipedia"

Normalmente se usa XML para escribir esta información, lo que da como resultado RDF/XML:

Page 4: Web semantica

PÁGINA 3

<rdf:RDF

xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

xmlns:dc="http://purl.org/dc/elements/1.1/">

<rdf:Description rdf:about="http://en.wikipedia.org/Futbol">

<dc:title>Fútbol</dc:title>

<dc:publisher>Wikipedia</dc:publisher>

</rdf:Description>

</rdf:RDF>

SPARQL

Es el lenguaje de sobre RDF que permite hacer búsquedas sobre los recursos de la Web Semántica

utilizando distintas fuentes de datos.

OWL

Web Ontology Languaje.

Lenguaje de marcado para publicar y compartir datos usando ontologías en la WWW. Tiene como

objetivo facilitar un modelo marcado construido sobre RDF y codificado en XML.

OWL proporciona un lenguaje para definir ontologías estructuradas. Las ontologías, que se encargan

de definir los términos utilizados y darles significado, son utilizadas por los usuarios y el SW que

necesitan compartir información.

Las ontologías se definen mediante la descripción detallada de propiedades y clases: tales como

relaciones entre clases, cardinalidad, igualdad, tipologías de propiedades más complejas.

Se podría decir que RDF dice cómo se tiene que escribir una ontología y OWL define exactamente

qué es lo que tienes que escribir para que esa ontología tenga sentido y sea correcta.

Web Semántica en Prolog

En Prolog hay varias librerías para el trabajo con la Web Semántica. Vamos a explicar cómo

funcionan dos de ellas, SWI-Prolog Semantic Web Library 3.0 y THEA.

SWI-PROLOG SEMANTIC WEB LIBRARY 3.0

El núcleo del paquete de SWI-Prolog semweb es un almacen de eficiente de memoria principal RDF

escrito en C que está integrado en Prolog. Proporciona un predicado lógico RDF\3 para consultar el

almacen RDG mediante el uso de múltiples índices. Además, SWI-Prolog proporciona bibliotecas

para leer y escribir XML, Turtle y RDF y una biblioteca que aporta persistencia mediante una

combinación de binarios instantáneos y revistas.

Page 5: Web semantica

PÁGINA 4

A continuación, se muestran algunos escenarios que guian el diseño actual del almacen RDF basado

en Prolog.

Plataforma de creación de prototipos de aplicaciones

Equipada con ClioPatria, el almacén es una plataforma eficiente para la creación de prototipos de

una amplia gama de aplicaciones de la web semántica. Prolog conectado al almacen basado en

memoria principal es una plataforma productiva para describir la lógica de la aplicación que se

encuentra disponible a través del SPARQL endpoint de ClioPatria usando una API específica o como

una aplicación final de usuario basada en HTML. Prolog es más versátil que SPARQL ya que permite

crear la lógica desde pequeños bloques de construcción y no sufre la falta de coincidencia de la

impedancia objeto-relacional.

Integración de datos

El almacén de SWI-Prolog está optimizado para la vinculación con la relación de los

rdfs:subPropertyOf. Esta relación es crucial para la integración de datos de múltiples fuentes

mientras que mantiene la riqueza original de las fuentes porque la integración se puede lograr

definiendo las propiedades nativas como sub-propiedades de propiedades de un esquema unificador

como Dublin Core.

Datos dinámicos

Es uno de los pocos almacenes RDF que está basado principalmente en el razonamiento hacia atrás.

Su gran ventaja es que es mucho más fácil manejar los cambios en la base de datos, ya que no tiene

que encargarse de propagar las consecuencias. También reduce el almacenamiento requerido. El

coste a cambio es mayor razonamiento durante la consulta. Esto se puede superar en algunos casos

mediante resultados precaluclados en el almacenamiento externo.

Escalabilidad

Dependiendo de las restricciones del sistema operativo y de la aplicación, los almacenes RDF de

SWI-Prolog escalan alrededor de 15 millones de tripletas en hardware de 32 bits. En hardware de 64

bits, la escalabilidad está limitada por la cantidad de memoria física, permitiendo

aproximadamente4 millones de tripletas por Gigabyte. El otro factor de limitación es el tiempo

requerido para cargar los datos y restaurar la base de datos del archivo persistente de recuperación.

El rendimiento depende en gran parte del hardware, el rendimiento concurrente y si los datos se

distribuyen sobre múltiples gráficos que se pueden cargar en paralelo o no. Restaurando más de 20

millones tripletas por minuto es factible en un hardware de nivel medio.

Biblioteca semweb/rdf_db: la base de datos RDF

El módulo central de la infraestructura de RDF es la biblioteca semweb/rdf_db. Proporciona

almacenamiento y consulta indexada de tripletas RDF. Los datos RDF se almacenan como

quintupletas. Los tres primeros elementos son la tripleta, los elementeos adicionales son de gráfico y

línea y proporcionan la información de origen de la tripleta.

El almacenamiento actual es proporcionado por el modulo externo de lenguaje (C). Usando una

implementación basada en C que puede reducir el uso de memoria y mejorar las capacidades de

Page 6: Web semantica

PÁGINA 5

indexación, por ejemplo proporcionando un índice dedicado para soportar la vinculación sobre

rdfs:subPropertyOf. Se proporcionan los siguientes índices actualmente: S, P, O, SP, PO, SPO, G, SG,

PG (S= sujeto, P=predicado, O=objeto, G=grafico).

Los predicados conectados por rdfs:subPropertyOf están combinados en una nube de predicados.

El sistema causa varios predicados en la nube para que compartan el mismo hash. La nube mantiene

un array de dos dimensiones que expresa el cierre de todas las relaciones rdfs:subPropertyOf. Este

índice soporta rdf_has\3 para consultar una propiedad y todos sus hijos de manera eficiente.

Los índices adicionales para predicados, los recursos y los gráficos permiten enumerar esos objetos

sin duplicados. Los objetos literales se combinan en una lista de salto tras cada caso de

normalización. Esto proporciona una búsqueda eficiente sin distinción de mayúsculas y minúsculas,

y por prefijo y rango. El plugin de la biblioteca semweb/litindex proporciona búsquedas indexadas.

Emparejamiento literal e indexación

Los valores literales se ordenan e indexan usando una lista de salto. Este índice tiene un triple

objetivo.

A diferencia de las tablas hash, los árboles binarios permiten prefijos eficientes y emparejamiento de

rangos. La coincidencia de prefijos es útil en aplicaciones interactivas para proveer

retroalimentación mientras se escribe, como autocompletar.

Teniendo una tabla de literales únicos se pueden generar eventos de creación y destrucción. Estos

eventos pueden usarse para mantener la indexación en literales.

Actualmente el total pedido de literales esta basado en primer lugar en el tipo de literal usando el

orden numérico<string<término. Los valores numéricos están ordenados por valor, los enteros

preceden a los números en coma flotante si representan el mismo valor. Las cadenas se ordenan

alfabéticamente tras el mapeo de las mayúsculas. Si coinciden las cadenas, las mayúsculas preceden

a las minúsculas.

El árbol ordenado se utiliza para la ejecución ordenada del literal (prefijo(Prefijo)Literal), así como

el literal(‘Like’(‘Like’)Literal), siempre que ‘Like’ no empiece con *. Las respuestas de la consulta al

árbol son devueltas alfabéticamente.

Consideraciones en la gestión de memoria

Almacenar tripletas RDF en memoria principal proporciona mucho mejor rendimiento que usar

bases de datos externas. Desafortunadamente, aunque la memoria es realmente baraata

actualmente,la memoria principal sigue estando muy limitada con respecto a los discos duros.

Una tripleta se almacena en un en un struct de C de 144 bytes. Este struct almacena la quintupleta,

alguna información de contabilidad y los diez punteros para las tablas hash.

Biblioteca/rdfs: consultas relacionadas RDFS

La biblioteca semweb/rdfs añade interpretaciones del almacén de tripletas en términos de concepto

del esquema RDF (RDFS). Hay dos modos de proveer soporte para más lenguajes alto nivel en RDF.

Uno es ver estos lenguajes como un conjunto de reglas de vinculación. Como alternativa, RDFS

proporciona una vista del almacen en términos de individuos, clase,propiedades, etc. y podemos

proporcionar los predicados que consultan la base de datos con esta visión en mente.

Page 7: Web semantica

PÁGINA 6

Gestión de archivos de entrada RDF

Los proyectos complejos requieren recursos RDF de varias localizaciones y que por lo generale se

desea cargar en diferentes combinaciones. Por ejemplo, cargando un pequeño subconjunto de datos

para la depuración, o cargando un conjunto diferente de ficheros para la experimentación. La

biblioteca semweb/rdf_library.pl gestiona conjuntos de ficheros RDF repartidos sobre diferentes

ubicaciones, incluyendo ubicaciones locales y de red.

La versión original de esta biblioteca soportaba metadatos sobre las colecciones de fuentes RDF en

un archivo RDF llamado Manifest. La versión actual soporta tanto el formato original como un

formato VoID. Los archivos VoID (void.ttl) pueden usar elementos del vocabulario del Manifest RDF

para soportar características que no soporta VoID.

Paquetes relacionados

La estructura principal para almacenar y consultar RDF es proporcionada por este paquete, que se

distribuye como paquete básico de SWI-Prolog. ClioPatria proporciona una infraestructura

comprensiva de servidor en la cima de los paquetes http y semweb. Proporciona un endpoint

SPARQL 1.1, soporte LOP, gestión de usuarios, una interfaz web y una infraestructura de extensión,

para programación de aplicaciones web.

Thea proporciona acceso a ontologías OWL al nivel de sintaxis abstracta, Puede interactuar con un

razonador DL externo utilizando DIG.

THEA

Descarga

https://github.com/vangelisv/thea/downloads

Documentación completa

http://www.semanticweb.gr/thea/thea-paper.pdf

Resumen

THEA es una librería para Prolog que da un soporte completo para trabajar con antologías OWL2

directamente desde un programa Prolog.

THEA usa la librería “RDF SWI-Prolog” como parser y para serializar las antologías, pero el núcleo

de la librería es independiente de RDF y está basado en la sinstaxis de OWL2, permitiendo la

manipulación directa de axiomas a través de la base de datos de Prolog sin tener que usar las

tripletas típicas de RDF.

La actual versión de THEA (v2) soporta toda la sintaxis definida por el estándar OWL2: cada axioma

en la ontología corresponde con un hecho de la base de datos Prolog. Con esto se consigue que

Page 8: Web semantica

PÁGINA 7

preguntar a la Ontología se corresponda con preguntar a la base de datos usando metas, variables y

argumentos aproipiados.

THEA tiene soporte para SWRL “Semantic Web Rule Languaje”, además ofrece capacidades

adicionales como un puente hacia Java “OWL API” y traducciones de ontologías hacia “Description

Logic programs”.

Prolog como lenguaje de procesamiento de Ontologías

Prolog ofrece muchas ventajas en el tratamiento de ontologías gracias a sus características de

programación declarativa y su estilo “patter-matching”.

Un programa Prolog es una colección de cláusulas de Horn con Cabeza:-Cuerpo, donde el cuerpo es

un numero de submetas unidas por conjunción o disyunción. Una cláusula con el cuerpo vacío es un

hecho. Una colección de hechos es la base de datos de prolog.

Las metas en Prolog se resuelven por bactracking.

THEA y Prolog

THEA se corresponde directamente con el modelo de sintaxis descrito en OWL2, por ejemplo, para

describir que una entidad es sub-clase de otra se usa el predicado subClassOf/2 :

subClassOf(’http://example.org#Human’,’http://example.org#Mammal’).

Esta forma de declarar la ontología es totalmente compatible con la base de datos de Prolog, por lo

que no es necesaria ninguna conversión, y se podría usar directamente con :

?- subClassOf(’http://example.org#Human’,X).

X = ’http://example.org#Mammal’

THEA permite además preguntar a la ontología con predicador fuertemente tipados como

subObjectPropertyOf/2 y subDataPropertyOf/2. En los casos en los que los argumentos no sean

entidades se usa la sintaxis de Prolog para representarlos, como ejemplo en la siguiente tabla se

muestra como se escribiría en OWL2 y como se hace en Prolog usando la librería THEA.

OWL2 EquivalentClasses(

forebrain_neuron

intersectionOf(neuron

someValuesFrom(partOf forebrain)))

Page 9: Web semantica

PÁGINA 8

Prolog equivalentClasses(

[ forebrain_neuron,

intersectionOf([ neuron,

someValuesFrom(partOf, forebrain) ]) ]).

Organización de la librería THEA

Ilustración 1 THEA

Conclusiones

THEA ofrece total soporte para la programación y tratamiento de ontologías OWL2 desde el

lenguaje Prolog. THEA puede ser usado para simplificar algunas tareas relacionadas con ontologías

tales como consultas y procesamiento. Además se puede usar en servicios web para dar solución a

problemas de búsqueda en la Web Semántica.

Page 10: Web semantica

PÁGINA 9

BIBLIOGRAFÍA

1. http://www.swi-prolog.org/pldoc/package/semweb.html

2. http://www.swi-prolog.org/web/

3. http://www.informatik.uni-hamburg.de/RZ/software/sprachen/SWI-Prolog-Docs/SWI-

5.10.5/packages/semweb.html

4. http://www.semanticweb.gr/thea/index.html

5. http://di002.edv.uniovi.es/~labra/cursos/ext04/pres/SemWeb.pdf

6. http://programacionlogica.blogspot.com.es/2003_06_01_archive.html

7. http://personales.upv.es/ccarrasc/doc/2003-2004/WebSem/WebSemantica2.htm

8. http://ontologies.wordpress.com/2009/02/22/a-prolog-view-of-the-semantic-web/

9. http://stackoverflow.com/questions/6327167/how-to-query-rdf-owl-using-swi-prologs-

semantic-web-library

10. http://stackoverflow.com/questions/1740341/what-is-the-difference-between-rdf-and-owl