SlideShare a Scribd company logo
1 of 10
Download to read offline
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
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
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:
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.
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
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.
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
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)))
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.
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

More Related Content

What's hot (17)

Presentación base de datos bautista marquez_asalia
Presentación base de datos bautista marquez_asaliaPresentación base de datos bautista marquez_asalia
Presentación base de datos bautista marquez_asalia
 
Funciones de la web semántica en la difusión y acceso de los Archivos
Funciones de la web semántica en la difusión y acceso de los ArchivosFunciones de la web semántica en la difusión y acceso de los Archivos
Funciones de la web semántica en la difusión y acceso de los Archivos
 
Base de datos
Base de datosBase de datos
Base de datos
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Act4 bd moreno_joel
Act4 bd moreno_joelAct4 bd moreno_joel
Act4 bd moreno_joel
 
Act4 base datos_reyes_rosalba
Act4 base datos_reyes_rosalbaAct4 base datos_reyes_rosalba
Act4 base datos_reyes_rosalba
 
BASES DE DATOS
BASES DE DATOSBASES DE DATOS
BASES DE DATOS
 
Base de datos 1
Base de datos 1Base de datos 1
Base de datos 1
 
DOCENTE
DOCENTEDOCENTE
DOCENTE
 
Bases de datos existentes
Bases de datos existentesBases de datos existentes
Bases de datos existentes
 
Bases de Datos Documentales
Bases de Datos DocumentalesBases de Datos Documentales
Bases de Datos Documentales
 
Act4 basede datos
Act4 basede datosAct4 basede datos
Act4 basede datos
 
Agrovoc cswb training_1
Agrovoc cswb training_1Agrovoc cswb training_1
Agrovoc cswb training_1
 
Firebird grupo3
Firebird grupo3Firebird grupo3
Firebird grupo3
 
Principales bases de datos existentes
Principales bases de datos existentesPrincipales bases de datos existentes
Principales bases de datos existentes
 

Similar to Web semantica

Similar to Web semantica (20)

Principales bases de datos
Principales bases de datosPrincipales bases de datos
Principales bases de datos
 
Principales bases de datos
Principales bases de datosPrincipales bases de datos
Principales bases de datos
 
Websemantica
WebsemanticaWebsemantica
Websemantica
 
Websemantica 1218250849453303 9
Websemantica 1218250849453303 9Websemantica 1218250849453303 9
Websemantica 1218250849453303 9
 
Actividad4 garibay blanca
Actividad4 garibay blancaActividad4 garibay blanca
Actividad4 garibay blanca
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Sergio cano a
Sergio cano aSergio cano a
Sergio cano a
 
S cano a actividad 4 4b
S cano a actividad 4 4bS cano a actividad 4 4b
S cano a actividad 4 4b
 
Dbpedia
DbpediaDbpedia
Dbpedia
 
Web semantica
Web semanticaWeb semantica
Web semantica
 
Base de datos
Base de datosBase de datos
Base de datos
 
Act4 andrade lesvia
Act4 andrade lesviaAct4 andrade lesvia
Act4 andrade lesvia
 
Tecnologías de la web semántica
Tecnologías de la web semánticaTecnologías de la web semántica
Tecnologías de la web semántica
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
base de datos con codigos abiertos.pptx
base de datos con codigos abiertos.pptxbase de datos con codigos abiertos.pptx
base de datos con codigos abiertos.pptx
 
Basede datos salas ubaldo
Basede datos salas ubaldoBasede datos salas ubaldo
Basede datos salas ubaldo
 
Las principales bases de datos existentes
Las principales bases de datos existentesLas principales bases de datos existentes
Las principales bases de datos existentes
 
Balotario oficial de bd
Balotario oficial de bdBalotario oficial de bd
Balotario oficial de bd
 
Actividad de aprendizaje 4. screencast y bases de datos.
Actividad de aprendizaje 4. screencast y bases de datos.Actividad de aprendizaje 4. screencast y bases de datos.
Actividad de aprendizaje 4. screencast y bases de datos.
 

Recently uploaded

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 

Recently uploaded (10)

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
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.
  • 10. 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