Proyecto integrador. Las TIC en la sociedad S4.pptx
Web semantica
1. 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
2. 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
3. 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:
4. 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 RDF3 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.
5. 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
6. 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_has3 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.
7. 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
8. 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)))
9. 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.