Clases

Cronología y Presentaciones de las Clases hasta hoy.

Intro a la Web Semántica

RDF: Modelo y Formatos

RDF, Graph Store, SPARQL

SPARQL

RDF Schema (RDFS)

RDFS y Inferencia

OWL: Bases

SKOS & Co.

OWL: Negación y Restricciones

RDF dentro de HTML

OWL Full, DL y perfiles

Entregas

Aquí van a ir apareciendo las informaciones sobre los trabajos practicos a entregar.

Proyecto 1: Acceso a Datos

  • Forma de Trabajo: Individual (pero el intercambio de informaciones y consejos es bienvenido)
  • Fecha Entrega: 20-04-2016
  • Descripción: cargar en un graph store (online o localmente) un dataset RDF con datos de un ambito específico de interés; a partir de estos datos, crear un simple front-end web-based para visualizar los datos y editar una parte de ellos.
  • Requisitos:
    • los datos utilizados tienen que incluir un conjunto de datos creados por el alumno (en absoluto no es importante que sean muchos datos, diez triplas pueden ser ya suficientes si tienen sentido para la visualización pensada) y cargados en el graph store;
    • ademas tienen que ser utilizados datos de una fuente externa (por ejemplo de DBpedia o WikiData); puede haber más de una fuente externa pero no es obligatorio;
    • los datos pueden ser integrados con uno de dos mecanismos:
      • los datos de fuentes externas (la porción que se va a usar) son cargados junto a los proprios, en el graph store, pero manteniendo distintos nombres de grafos para preservar la información sobre la origen;
      • en vez de copiar los datos en el proprio graph store, las fuentes externas son interrogadas quando sirve, a tra vés de sus endpoint; queries que incluyan datos de varias fuentes puedén ser realizadas con el mecanismo de la Query Federation;
    • el front-end puede ser realizado con cualquier tecnología que el alumno conosca y sea apta para un aplicativo web-based; tiene que permitir:
      • visualizar los datos
      • editar algo de los datos (puede ser un aspecto muy simple, como un like, un anotación, un ordenamiento)
    • la comunicación entre front-end y graph store tiene que ejecutarse por medio de
  • Modalidad: presentación de 10-15 minutos que incluya la demonstración del software, la descripción de la arquitectura y aspectos de implementación que se consideren importantes/interesantes.

Proyecto 2: Diseño de Ontología

  • Forma de Trabajo: Individual (pero el intercambio de informaciones y consejos es bienvenido)
  • Fecha Entrega: 01-06-2016
  • Descripción: diseñar una ontología (simple) sobre un dominio a elección del alummno.
  • Requisitos:
    • la ontología debe contener una jerarquía de clases y varias propiedades (sea object que datatype), cada una con correspondiente domain y range;
    • usar OWL para definir los otros vinculos que sean necesarios, incluyendo al menos casos de restricciones, de intersección, y de clases disjuntas;
    • tratar que todos los vinculos que se prevee tenga el modelo, sean expresos formalmente en OWL;
    • referirse o una o más ontologías ya existentes (que sean relevantes para el dominio considerado), poniendo en relación aguna de las clases y/o relaciones definidas con alguna clases/relación correspondiente de la(s) ontología(s) externa(s) (por ejemplo, en el caso más simple, una clase en la ontología que se está definiendo puede ser subclase o superclase de una ya existente);
    • se aconseja el uso de protégé versión desktop (más estable de la versión Web), pero el alumno puede optar por otros metodos, incluido escribir la ontología directamente en RDF con un editor textual.
  • Modalidad: presentación de 10-15 minutos que incluya la exposición de la ontología, la motivación de las principales decisiones tomadas en el diseño de la misma y problemas encontrados (incluyendo la eventual dificultad o imposibilidad de representar algún vínculo).

Proyecto Final

El proyecto final del curso es un trabajo de grupo que va a ser presentado en el examen.

El examen incluirá la discusión del proyecto y del rol de cada uno en su desarrollo, además de preguntas sobre los argumentos del curso.

Los grupos pueden ser de un minimo de 1 a un maximo de 4 personas, o sea que pueden realizar un único grupo o dividirse en varios si lo prefieren.

Propongo dos ideas para el proyecto. El tema del proyecto de cada grupo puede ser uno de los dos u otro decidido por el grupo mismo, con tal que encare los temas tratados en el curso y me comuniquen el tema por tiempo para que pueda orientarlos.

Tema 1: Visualización de Ontología

Implementar un front-end para la visualización de una ontología generica, cargada en un formato estándar.

Cómo sería demasiado complejo mostrar de forma completa todos los posibles aspectos de una ontología (varias formas de restricciones, etc.), el sw mostrará un conjunto de aspectos, elejido de manera coherente.

La visualización pude ser más orientada a lo textual (elenco de clases, propiedades, etc.), más a lo visual (por ejemplo, grafico de la jerarquía de clases y de las propiedades) o tener un poco de los dos aspectos.

Tema 2: Re-escritura de Query basada en Ontología

A partir de un ontología, queremos realizar de forma virtual las posibles inferencias sobre un dataset (generíco) qué no está bajo nuestro control, pero es accesible a través de un SPARQL endpoint. El dataset virtual que incluye las triplas deducidas será accesible cómo otro SPARQL endpoint.

Para hacerlo lo que haremos será crear un SPARQL endpoint que funciona cómo proxy respecto a la fuente de datos. Antes de enviarla al SPARQL endpoint "con los datos", la query SPARQL que llega va a ser modificada para que su resultado incluya las triplas que puedan ser deducidas.

El software considerará solo algunas de las posibles reglas de deducción que se dan en RDFS y/o OWL.

Herramientas Utilizadas

Sitos Utiles

datahub
Indice de Datos Estructurados Online (RDF, SPARQL Endpoint y otros formatos) http://datahub.io/
Linked Open Vocabularies (LOV)
Indice de Vocabularios RDF http://lov.okfn.org/

Query/Visualisación RDF Online

lod live
Exploración visual de datos RDF http://en.lodlive.it
OpenLink RDF Editor
Exploración y Edición de datos RDF http://linkeddata.uriburner.com/rdf-editor/
SparqlBlocks
Diseño Visual de Query SPARQL http://sparqlblocks.org/
YASGUI
Editor Textual de SPARQL http://yasgui.org/

Edición/Visualisación Ontologías

protégé
Editor de Ontologías (Desktop y Web-based) http://protege.stanford.edu/
Visual Notation for OWL Ontologies (VOWL)
Visualización de Ontologías (Web-based o plugin de Protégé) http://vowl.visualdataweb.org/
OWLGrEd
Visualización de Ontologías (Web-based) y Edición (Desktop, solo para Windows) http://owlgred.lumii.lv/
Live OWL Documentation Environment (LODE)
Script para documentación de ontologías http://www.essepuntato.it/lode

Razonadores

RDFS and OWL 2 RL generator service
Razonador RDFS y OWL-RL: Servicio Online http://www.ivan-herman.net/Misc/2008/owlrl/ o Librería Python GitHub: RDFLib/OWL-RL
HermitT
Razonador OWL-DL desde Protégé, Java o línea de comando http://www.hermit-reasoner.com/
FaCT++
Razonador OWL-DL desde Protégé o C++ http://owl.man.ac.uk/factplusplus/
Pellet
Razonador OWL-DL desde Protégé o Java https://github.com/complexible/pellet
jcel
Razonador OWL-EL desde Protégé o Java http://julianmendez.github.io/jcel/
elk
Razonador OWL-EL desde Protégé o Java http://elk.semanticweb.org/

Plugin Utiles para Browser

OpenLink Structured Data Sniffer
Muestra los datos estructurados (en formatos RDFa y otros) incorporados en una pagina Web http://osds.openlinksw.com/
Advanced Rest Client
Interfaz Usuario para Comandos HTTP (para Chrome) en Chrome Web Store

Graph Store

Dydra
(servicio online, funcionalidades básicas gratuitas) http://dydra.com/
OpenRDF Sesame
(open source, basado en Java) http://rdf4j.org/
Apache Jena Fuseki
(open source, basado en Java) https://jena.apache.org/
OpenLink Virtuoso
(open source o comercial) http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/
rdfstore-js
(open source, basado en JavaScript, experimental) https://github.com/antoniogarrote/rdfstore-js

Librerías

Apache Jena
(librería completa Java para RDF(S), OWL, SPARQL, Graph Store, ...) https://jena.apache.org/
OpenRDF Sesame
(librería completa Java para RDF(S), OWL, SPARQL, Graph Store, ...) http://rdf4j.org/
rdf-ext
(librería modular JavaScript) https://github.com/rdf-ext/rdf-ext
rdflib.js
(librería JavaScript) https://github.com/linkeddata/rdflib.js/
N3.js
(parsing/serialización streaming y eficiente, en JavaScript) https://github.com/RubenVerborgh/N3.js/
jsonld.js
(transformación de JSON-LD, en JavaScript) https://github.com/digitalbazaar/jsonld.js
SPARQL.js
(parser SPARQL en JavaScript) https://github.com/RubenVerborgh/SPARQL.js

Datos y Vocabularios

Dataset

DBpedia
Datos estructurados extractos automaticamente de WikiPedia (principalmente de las InfoBox)
WikiData
Datos creados colectivamente por usuarios (una WikiPedia para los datos)
LinkedGeoData
Datos extractos automaticamente de Open Street Map

Vocabularios/Ontologías

RDF Schema
Vocabulario estándar para representar conceptos basicos y esquemas de datos RDF
  • Descripción: https://www.w3.org/TR/rdf-schema/
  • Prefijos y Namespaces
    rdf:
    <http://www.w3.org/2000/01/rdf-schema#>
    rdfs:
    <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
XML Schema
Vocabulario usado en XML como esquema general de datos, en RDF solo para asociar tipos a los literales.
Web Ontology Language (OWL)
Vocabulario estándar para representar modelos de datos (ontologías)
FOAF
Vocabulario para representar relaciones entre personas y informaciones de contacto de las mismas
Simple Knowledge Organization System (SKOS)
Vocabulario para clasificaciòn de conjuntos de datos en categorias, taxonomias y similares
Dublin Core Metadata Initiative
Vocabulario para metadatos de documentos (ej. creador, titulo, editor)

Ontologías de Ejemplo

Ontologías de ejemplo (basadas en OWL 1)

Referencias

[AH11]
D. Allemang, J. Hendler, Semantic Web for the Working Ontologist
 (Second Edition). Morgan Kaufmann, 2011. Elsevier Amazon Science Direct Google
[Cam16]
Cambridge Semantics. Semantic University
[EUCLID16]
EdUcational Curriculum for the usage of LInked Data (EUCLID)
[W3C16]
W3C Standards. Semantic Web
[TBL16]
Tim Berner-Lee. Design Issues