II. Razonamiento con conocimiento preciso Tema 4 Web Semántica y Web de Datos (Linked Data) Sistemas Basados en el Conocimiento Grado en Ingeniería Informática –1– Razonamiento con conocimiento preciso Tema 2. Sistemas Basados en Reglas Tema 3. Repaso de Lógica Tema 4. Web Semántica y Web de Datos –2– Referencias • W3C Semantic Web Activity (http://www.w3.org/2001/sw/) • Foundations of Semantic Web Technologies. P. Hitzler, M. Krötzsch, S. Rudolph. CRC Press. 2009. • A Semantic Web Primer. Grigoris Antoniou y Frank van Harmelen. The MIT Press • Semantic Web: Concepts, Technologies and Applications. K. Breitman, M. A. Casanova, W. Truszkowski. Springer. 2007 –3– Índice • • • • • Introducción a la Web Semántica Lenguajes de Ontologías Consulta de información en la Web Semántica Herramientas y Aplicaciones La Web de Datos (Linked Data) –4– Índice • La Web Semántica • Lenguajes de Ontologías – RDF – RDF Schema – OWL • Consulta de información en la Web Semántica – SPARQL • Herramientas y Aplicaciones • La Web de Datos (Linked Data) –5– La Web Semántica • Visión: “the idea of having data on the Web defined and linked in a way that it can be used by machines not just for display purposes, but for automation, integration and reuse of data across various applications” [W3C Semantic Web Activity (http://www.w3.org/2001/sw/)] • Para ello – Lenguajes para representar conocimiento (ontologías) • RDF, RDF(S), OWL – Lenguajes de consulta • SPARQL – Herramientas –6– Índice • La Web Semántica • Lenguajes de Ontologías – RDF – RDF Schema – OWL • Consulta de información en la Web Semántica – SPARQL • Herramientas y Aplicaciones • La Web de Datos (Linked Data) –7– RDF • Resource Description Framework • Recomendación del W3C – http://www.w3.org/RDF/ – http://www.w3.org/TR/rdf-primer/ • Modelo de datos equivalente a una red semántica – Multi-grafo dirigido etiquetado • Sentencia = tripla (Sujeto, Predicado, Objeto) – Sujeto: recurso (URI) o “blank node” – Predicado/Propiedad: relación binaria (URI) – Objeto: URI, literal o “blank node” –8– RDF: Ejemplo –9– RDF: Serialización. Turtle <http://www.example.org/index.html> <http://purl.org/dc/elements/1.1/creator> <http://www.example.org/staffid/85740> . <http://www.example.org/index.html> <http://www.example.org/terms/creation-date> "August 16, 1999" . <http://www.example.org/index.html> <http://purl.org/dc/elements/1.1/language> "en" . O más compacto: @prefix ex: <http://www.example.org/>. @prefix exstaff: <http://www.example.org/staffid/>. @prefix exterms: <http://www.example.org/terms/>. @prefix dc: <http://purl.org/dc/elements/1.1/>. ex:index.html dc:creator exstaff:85740 . ex:index.html exterms:creation-date "August 16, 1999" . ex:index.html dc:language "en" . O ex:index.html dc:creator exstaff:85740 ; exterms:creation-date "August 16, 1999" ; dc:language "en" . Abreviaciones – – – – – – @prefix ; (compartir sujeto) , (compartir sujeto-pred) a (rdf:type) [] (blank nodes) () (listas) @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> – 10 – RDF: Sintaxis XML. Ejemplo <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:exterms="http://www.example.org/terms/"> <rdf:Description rdf:about="http://www.example.org/index.html"> <exterms:creation-date>August 16, 1999</exterms:creation-date> </rdf:Description> <rdf:Description rdf:about="http://www.example.org/index.html"> <dc:language>en</dc:language> </rdf:Description> <rdf:Description rdf:about="http://www.example.org/index.html"> <dc:creator rdf:resource="http://www.example.org/staffid/85740"/> </rdf:Description> </rdf:RDF> <rdf:Description rdf:about="http://www.example.org/index.html"> <exterms:creation-date>August 16, 1999</exterms:creation-date> <dc:language>en</dc:language> <dc:creator rdf:resource="http://www.example.org/staffid/85740"/> </rdf:Description> – 11 – RDF: Nodos Anónimos (Blank Nodes) • • Nodos sin URI (no es necesaria) Son independientes entre sí exstaff:85740 _:johnaddress _:johnaddress _:johnaddress _:johnaddress Otra forma: exterms:address exterms:street exterms:city exterms:state exterms:postalCode _:johnaddress . "1501 Grant Avenue" . "Bedford" . "Massachusetts" . "01730" . exstaff:85740 exterms:address [ exterms:street "1501 Grant Avenue" ; exterms:city "Bedford"; exterms:state "Massachusetts"; exterms:postalCode "01730" ]. – 12 – RDF: Literales • Tipos de datos – Único predefinido es rdf:XMLLiteral – Se recomienda usar XML Schema datatypes (xsd=http://www.w3.org/2001/XMLSchema#): • xsd:string, xsd:integer, xsd:date,… • Ejemplo ex:index.html exterms:creation-date "1999-08-16"^^xsd:date . <creation-date rdf:datatype="http://www.w3.org/2001/XMLSchema#date"> 1999-08-16 </creation-date> – 13 – RDF: Contenedores y Colecciones • Contenedores – – – – – rdf:Bag: el orden no importa. Puede contener duplicados. rdf:Seq: el orden es importante rdf:Alt: alternativas propiedades rdf:_1, rdf:_2, rdf:_3, … Observación: los contenedores son “abiertos” • Colecciones – Permiten representar colecciones “cerradas” – rdf:List, rdf:first ,rdf:rest, rdf:nil – 14 – RDF: Reificación • Mecanismo para convertir una sentencia en un recurso • Vocabulario – Sentencia: rdf:Statement – rdf:subject, rdf:predicate, rdf:object • Ejemplo: (ex:index.html dc:creator exstaff:85740 .) ex:triple1 ex:triple1 ex:triple1 ex:triple1 rdf:type rdf:subject rdf:predicate rdf:object rdf:Statement . ex:index.html . dc:creator . exstaff:85740 . ex:triple1 rdf:type rdf:subject rdf:predicate rdf:object rdf:Statement ; ex:index.html ; dc:creator ; exstaff:85740 . – 15 – Índice • Introducción a la Web Semántica • Lenguajes de Ontologías – RDF – RDF Schema – OWL • Consulta de información en la Web Semántica – SPARQL • Herramientas y Aplicaciones • La Web de Datos (Linked Data) – 16 – RDF Schema (RDFS) • En RDF hablamos de objetos individuales (recursos) • Nos gustaría razonar sobre clases que definen tipos de objetos – Por ejemplo, para evitar sentencias como (válidas en RDF): • SBC es impartida por SBC (restricción de rango) ex:SBC ex:impartida_por ex:SBC. • Casa es impartida por Juan (restricción de domino) ex:Casa ex:impartida_por ex:Juan. • Solución – Clases, relaciones, restricciones de dominio y rango, … – Ejemplo: • Las asignaturas deben ser impartidas por miembros del personal académico – 17 – RDF Schema (RDFS) • Recomendación del W3C – http://www.w3.org/TR/rdf-schema/ • RDFS extiende RDF con nuevas primitivas • Define a un lenguaje básico para describir ontologías – – – – Fija la semántica de “subclase de” Jerarquías de clases y propiedades Herencia Restricciones de dominio y rango – 18 – RDF Schema (RDFS) @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> • Clases (rdfs:Class) e Instancias (rdf:type) Definición de Clases ex:Asignatura rdf:type <http://www.w3.org/2000/01/rdfschema#Class> O ex:Asignatura rdf:type rdfs:Class . Instancias ex:IC rdf:type ex:Asignatura. • Jerarquías de clases (rdfs:subClassOf) ex:Catedratico rdfs:subClassOf ex:PersonalDocente. – 19 – RDF Schema (RDFS) • Propiedades (rdf:Property) ex:impartida_por rdf:type rdf:Property . • Restricciones propiedades (rdfs:domain, rdfs:range) ex:impartida_por rdfs:domain ex:Asignatura; rdfs:range ex:PersonalDocente. • Jerarquías de propiedades (rdfs:subPropertyOf) ex:impartida_por rdfs:domain ex:Asignatura; rdfs:range ex:PersonalDocente; rdfs:subPropertyOf ex:involucra. – 20 – RDF Schema (RDFS) Clase involucra domain propiedad Asignatura domain range Personal subPropertyOf range impartida_por subClassOf Contratado Doctor type RDF Schema type RDF IC impartida_por Alberto Fdez – 21 – subClassOf Personal Docente subClassOf Funcionario subClassOf subClassOf Profesor Titular Catedrático RDF Schema (RDFS) • Primitivas – Clases • rdfs:Resource, rdfs:Literal, rdf:XMLLiteral, rdfs:Class, rdf:Property, rdfs:Datatype – Propiedades • rdf:type, rdfs:subClassOf, rdf:subPropertyOf, rdfs:domain, rdfs:range, rdfs:label, rdfs:comment – Contenedores • rdfs:Container, rdf:Bag, rdf:Seq, rdf:Alt, rdfs:ContainerMembershipProperty, rdfs:member – Colecciones • rdf:List, rdf:first, rdf:rest, rdf:nil – Reificación • rdf:Statement, rdf:predicate, rdf:subject, rdf:object – Otros • rdfs:seeAlso, rdfs:isDefinedBy, rdf:value – 22 – RDF Schema (RDFS) posee domain range Persona Pez type type type Wendy posee Wanda Violación de la restricción: El rango de posee es Pez. O No hay inconsistencia: Wanda es un pez! – 23 – Sirena? RDFS • Limitaciones de RDFS – Básicamente permite la organización de vocabularios en jerarquías – Ámbito local de las propiedades • Las restricciones de rango no se pueden aplicar a algunas clases solamente – No permite expresar: • Clases disjuntas – Ejemplo: masculino y femenino • Combinación booleana de clases – Ejemplo: Persona = Hombre ∪ Mujer • Restricciones de cardinalidad • Características especiales de las propiedades – Transitiva, simétrica, inversa de, … – 24 – Índice • Introducción a la Web Semántica • Lenguajes de Ontologías – RDF – RDF Schema – OWL • Consulta de información en la Web Semántica – SPARQL • Herramientas y Aplicaciones • La Web de Datos (Linked Data) – 25 – OWL • Web Ontology Language • Recomendación del W3C – http://www.w3.org/2004/OWL/ – http://www.w3.org/TR/owl-guide/ • Es un lenguaje para describir ontologías • Se construye sobre RDFS, añadiendo constructores para aumentar la expresividad @prefix owl: <http://www.w3.org/2002/07/owl#> – 26 – OWL • Cabecera – – – – – – – – owl:Ontology owl:imports: URI ontología owl:versionInfo owl:priorVersion: URI ontología owl:backwardCompatibleWith owl:incompatibleWith: no es compatible hacia atrás owl:DeprecatedClass owl:DeprecatedProperty <owl:Ontology rdf:about=""> <owl:versionInfo>v 1.1</owl:versionInfo> <rdfs:comment>An example ontology</rdfs:comment> <owl:imports rdf:resource="http://www.example.org/foo"/> <owl:backwardCompatibleWith rdf:resource="http://www.example.org/vehicle-1.0"/> <owl:priorVersion rdf:resource="http://www.example.org/veh-1.0"/> </owl:Ontology> – 27 – OWL • Clases – owl:Class • owl:Class es subclase de rdfs:Class ex:Asignatura rdf:type owl:Class . – rdfs:subClassOf (⊑) – owl:Thing: ⊤ (superclase de todas las clases) – owl:Nothing: ⊥ (subclase de todas las clases) – 28 – OWL • Propiedades – owl:ObjectProperty: relaciona instancias de dos clases – owl:DatatypeProperty: relaciona instancias con Literales y tipos de datos XML Schema – rdfs:subPropertyOf (r1 ⊑ r2 en H) – rdfs:domain (∃r.⊤ ⊑ C o ⊤ ⊑ ∀r –.C) – rdfs:range (⊤ ⊑ ∀r .C) – 29 – OWL • Características de propiedades – owl:TransitiveProperty: (r+) • p(x,y) ∧ p(y,z) → p(x,z) (ej: “antepasado de”) – owl:SymmetricProperty: (r ≡ r –) • p(x,y) ↔ p(y,x) (ej: “familiar de”) – owl:FunctionalProperty: (⊤ ⊑ ≤ 1 r) • p(x,y) ∧ p(x,z) → y = z (ej: “año nacimiento”) – owl:inverseOf: (r –) • p1(x,y) ↔ p2(y,x) (ej: p1=“profesor de”, p2=“alumno de”) – owl:InverseFunctionalProperty: (⊤ ⊑ ≤ 1 r -) • p(y,x) ∧ p(z,x) → y = z (ej: “nº móvil”) – 30 – OWL • Restricciones de propiedades – owl:Restriction – owl:onProperty – owl:allValuesFrom: (∀r.C) ex:Vaca rdf:type owl:Class; rdfs:subClassOf ex:Animal; rdfs:subClassOf [rdf:type owl:Restriction; owl:onProperty ex:come; owl:allValuesFrom ex:Hierba]. – – – – – owl:someValuesFrom: (∃r.C) owl:cardinality owl:maxCardinality (≤ n r) owl:minCardinality (≥ n r) owl:hasValue (∃r.{a}) – 31 – OWL • Clases complejas – – – – – owl:intersectionOf: (C ⊓ D) owl:unionOf: (C ⊔ D) owl:complementOf: (¬C) owl:disjointWith: (C ⊑ ¬D) clases disjuntas owl:oneOf: ({a,b,c} en O) enumera los individuos que pertenecen a una clase. Ej: {Rojo, Ambar, Verde}. ex:ColorSemaforo rdf:type owl:Class; owl:oneOf (ex:Rojo ex:Ambar ex:Verde). – 32 – OWL • Ontology mapping – – – – owl:equivalentClass (≡) owl:equivalentProperty (≡ en H) owl:sameAs: ({x} ≡ {x}) dos URIs representan el mismo individuo owl:differentFrom: ({x} ≡ ¬{x}) dos URIs no representan el mismo individuo – owl:AllDifferent – owl:distinctMembers [rdf:type owl:AllDifferent; owl:distinctMembers (ex:Rojo ex:Ambar ex:Verde)]. – 33 – OWL • Anotaciones – – – – – – rdfs:label rdfs:comment rdfs:seeAlso rdfs:isDefinedBy owl:AnnotationProperty owl:OntologyProperty – 34 – OWL: ejemplos de inferencias • Ejemplo disjointWith Profesor owl:subClassOf PersonalDocente . Libro owl:subClassOf Publicación . PersonalDocente owl:disjointWith Publicación . Se infiere: Profesor y Libro son disjuntos • Ejemplo owl:equivalentClass Hombre owl:subClassOf Persona Persona owl:equivalentClass Humano Se infiere: Hombre es subclase de Humano • Ejemplo instancias “A Semantic Web Primer” rdf:type Libro Libro owl:subClassOf Publicación Se infiere: “A Semantic Web Primer” es una Publicación – 35 – OWL y LD: Resumen LD ⊤ ⊥ C⊓D C⊔D ¬C ∀r.C ∃r.C C⊑D C≡D r- ≥nr ≤nr OWL LD C ⊑ ¬D {a} ≡ {b} {a} ⊑ ¬{b} r1 ⊑ r2 {a,b,c} ∃r.{a} r+ Thing Nothing intersectionOf unionOf complementOf allValuesFrom someValuesFrom subclassOf equivalentClass inverseOf minCardinality maxCardinality r≡s ⊤⊑≤1r ⊤ ⊑ ≤ 1 rr ≡ r- – 36 – OWL disjointWith sameAs differentFrom subpropertyOf oneOf hasValue TransitiveProperty equivalentProperty FunctionalProperty InverseFunctionalProperty SymmetricProperty Índice • La Web Semántica • Lenguajes de Ontologías – RDF – RDF Schema – OWL • Consulta de información en la Web Semántica – SPARQL • Herramientas y Aplicaciones • La Web de Datos (Linked Data) – 37 – SPARQL • Query Language for RDF • Recomendación del W3C – http://www.w3.org/TR/rdf-sparql-query/ • Lenguaje de consulta de contenidos RDF • Sintaxis estilo SQL – 38 – SPARQL Estructura de una consulta: [ PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> ... ] SELECT ... [FROM ...] WHERE { ... } [Modificadores] – 39 – SPARQL • Patrones básicos PREFIX rdf: <http://www.w3.org/1999/02/22-rdfsyntax-ns#> SELECT ?nom ?ape WHERE { ?x :nombre ?nom. ?x :apellido ?ape. ?x rdf:type :Empleado. } • Observaciones – SELECT * selecciona todas las variables • En el ejemplo: SELECT * = SELECT ?nom ?ape ?x – También: { ?x :nombre ?nom ; :apellido ?ape ; a :Empleado. } – 40 – SPARQL • Grupos de patrones SELECT ?nom ?ape WHERE { { ?x :nombre ?nom. ?x :apellido ?ape. ?x :nacido_en ?pais. ?pais :poblacion ?hab. } { ?x rdf:type :Empleado.} } – 41 – SPARQL • Literales – Etiquetas de idioma • “Madrid”, “Madrid”@es y “Madrid”@en son valores distintos – Tipos numéricos • “123"^^<http://www.w3.org/2001/XMLSchema#integer> es lo mismo que 123 (y que "123"^^xsd:integer) con: PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> – Tipos arbitrarios • "abc"^^ex:TipoT SELECT ?s WHERE { ?s ?p "abc"^^ex:TipoT. } – 42 – SPARQL • Restricciones (FILTER) – Numéricas Algunos Operadores SELECT ?nom ?ape Lógicos: !, &&, || WHERE Aritméticos: +, -, *, / { ?x :nombre ?nom. Comparación: =, !=, >, <,>=,<= ... ?x :apellido ?ape. ?x :nacido_en ?pais. ?pais :poblacion ?hab. FILTER (?hab >= 200000).} – Strings • FILTER (regex(?nom, “Alberto", "i")) • FILTER (regex(str(?nom), “^Al")) • regex como en XQuery 1.0 y XPath 2.0 – Otros • FILTER ( ?fecha > "1980-05-1"^^xsd:date && ?fecha < "1980-06-30"^^xsd:date ) – 43 – SPARQL • Patrones opcionales (OPTIONAL) SELECT ?nom ?ape ?nac ?email WHERE { ?x :nombre ?nom. ?x :apellido ?ape. ?x rdf:type :Empleado. OPTIONAL {?x :año_nac ?nac. ?x :email ?email.} } • Ojo! es distinto a: SELECT ?nom ?ape ?nac ?email WHERE { ?x :nombre ?nom. ?x :apellido ?ape. ?x rdf:type :Empleado. OPTIONAL {?x :año_nac ?nac.} OPTIONAL {?x :email ?email.} } – 44 – SPARQL • Patrones alternativos (UNION) SELECT ?nom ?a WHERE { {?x :nombre ?nom} UNION {?x :apellido ?nom}. ?x rdf:type :Empleado. ?x :año_nac ?a. } – 45 – SPARQL • Negación – No incluida en el lenguaje. – Se puede simular así (negación por fallo): SELECT ?nom ?ape WHERE { ?x :nombre ?nom. ?x :apellido ?ape. OPTIONAL { ?x rdf:type ?t. FILTER (?t = :Empleado) } FILTER (!Bound(?t)) } – 46 – SPARQL • RDF Datasets – Un RDF dataset representa una colección de grafos RDF • Grafo por defecto (default graph) • Cero o más grafos nombrados (named graphs) PREFIX ex: <http://example.org/> default graph SELECT ?nom ?ape FROM <http://example.org/datos1.rdf> FROM NAMED <http://example.org/datos2.rdf> FROM NAMED <http://example.org/datos3.rdf> WHERE { GRAPH ex:datos2.rdf { ?x :nombre ?nom. ?x :apellido ?ape.} } – 47 – SPARQL • Modificadores de resultados – ORDER BY SELECT ?nom ?ape WHERE { ?x :nombre ?nom. ?x :apellido ?ape. } ORDER BY ?ape DESC(?nom) – DISTINCT: evita repetidos SELECT DISTINCT ?nom ?ape – OFFSET / LIMIT SELECT ?nom ?ape WHERE { ?x :nombre ?nom. ?x :apellido ?ape.} ORDER BY ?ape LIMIT 5 OFFSET 3 – 48 – (por defecto es ASC) SPARQL • Formatos de Resultados – SELECT – ASK • devuelve si existe o no alguna solución – DESCRIBE • toda la información de los objetos indicados • depende del servidor DESCRIBE ?pais WHERE { ?x :nombre ?nom. ?x :apellido ?ape. ?x :nacido_en ?pais. ?pais :poblacion ?hab. FILTER (?hab >= 200000).} – CONSTRUCT • genera un grafo RDF – 49 – SPARQL • CONSTRUCT CONSTRUCT {?x :tieneTio ?her. ?her :tieneSobrino ?x.} WHERE { ?x :tienePadre ?padre. ?padre :tieneHermano ?her. } CONSTRUCT {?x o2:hasParent ?padre. ?padre o2:hasBrother ?her.} WHERE { ?x o1:tienePadre ?padre. ?padre o1:tieneHermano ?her. } – 50 – SPARQL Endpoints • Aceptan consultas SPARQL y devuelven los resultados por HTTP • Formatos de resultados – KML, JSON, RDF (RDF/XML, N-Triples, Turtle, etc.), HTML,… • Tipos – Genéricos • • • • http://www.openlinksw.com/sparql http://sparql.org/sparql.html http://librdf.org/query/ … – Específicos – 51 – SPARQL 1.1 • Algunas extensiones – – – – – – – – Agregados: COUNT, SUM, MIN, MAX, AVG, … Subqueries Queries federadas Expresiones en SELECT Negaciones Property Paths Modificar los grafos del dataset … • Algunos endpoints/herramientas ya lo implementan (al menos parcialmente) – 52 – Índice • Introducción a la Web Semántica • Lenguajes de Ontologías – RDF – RDF Schema – OWL • Consulta de información en la Web Semántica – SPARQL • Herramientas y Aplicaciones • La Web de Datos (Linked Data) – 53 – Herramientas • Validadores – RDF: http://www.w3.org/RDF/Validator/ – OWL: http://owl.cs.manchester.ac.uk/validator/ • Jena – A Semantic Web Framework for Java – Entorno de programación para RDF, RDFS, OWL, SPARQL – http://jena.sourceforge.net/ • SESAME – Entorno de programación para RDF y RDFS – http://www.openrdf.org/ • Protégé: editor de ontologías – RDF, RDFS, OWL – 54 – Aplicaciones • • • • Anotación de datos no estructurados Integración de datos Web de Datos (Linked Data) … – 55 – Anotación de datos no estructurados • Ejemplo: – Anotación de páginas Web: <div> <h2>The trouble with Bob</h2> <h3>Alice</h3> ... </div> RDFa (http://www.w3.org/TR/xhtml-rdfa-primer/) <div xmlns:dc="http://purl.org/dc/elements/1.1/"> <h2 property="dc:title">The trouble with Bob</h2> <h3 property="dc:creator">Alice</h3> ... </div> – 56 – Integración de datos [http://www.w3.org/People/Ivan/CorePresentations/IntroThroughExample/] – 57 – Integración de datos [http://www.w3.org/People/Ivan/CorePresentations/IntroThroughExample/] [http://www.w3.org/People/Ivan/CorePresentations/IntroThroughExample/] – 58 – Índice • Introducción a la Web Semántica • Lenguajes de Ontologías – RDF – RDF Schema – OWL • Consulta de información en la Web Semántica – SPARQL • Herramientas y Aplicaciones • La Web de Datos (Linked Data) – 59 – Web de Datos (Linked Data) • Queremos consultar información del tipo: Porteros de fútbol, que han jugado en algún equipo con un estadio de más de 40.000 localidades y que han nacido en un país de más de 10 millones de habitantes • Pasar de la Web de Documentos a la Web de los Datos • Linked Data – http://linkeddata.org/ – http://www.w3.org/DesignIssues/LinkedData.html – http://www.ted.com/talks/tim_berners_lee_on_the_next_web.html (vídeo 16 min) • Linking Open Data (LOD) – Web de Datos “Abiertos” – http://thedatahub.org/group/lodcloud – 60 – Web de Datos (Linked Data) • Principios de Linked Data 1. Usar URIs para identificar cosas 2. Usar el protocolo HTTP para esas URIs 3. Proporcionar información útil en esas direcciones, usando estándares (RDF, SPARQL) 4. Incluir enlaces a otras URIs – 61 – Web de Datos (Linked Data) Mayo 2007 12 datasets “Linking Open Data cloud diagram, by Richard Cyganiak and Anja Jentzsch. http://lod-cloud.net/” – 62 – Web de Datos (Linked Data) Septiembre 2008 45 datasets “Linking Open Data cloud diagram, by Richard Cyganiak and Anja Jentzsch. http://lod-cloud.net/” – 63 – Web de Datos (Linked Data) Julio 2009 95 datasets “Linking Open Data cloud diagram, by Richard Cyganiak and Anja Jentzsch. http://lod-cloud.net/” – 64 – Web de Datos (Linked Data) Sept. 2011 295 datasets – 65 – “Linking Open Data cloud diagram, by Richard Cyganiak and Anja Jentzsch. http://lod-cloud.net/” Linked Data • Generación de Datos – A partir de repositorios existentes, p.e. BD Relacionales, XML, CSV y hojas de cálculo, etc. a Linked Data – Transformación de información • • • • • R2O and ODEMapster OBDI NOR2O Jena geometry2rdf – Generación dinámica • D2RQ Platform • Triplify • Ultrawrap – 66 – Linked Data • Publicación de datos – – – – – – Virtuoso Open Source Edition D2R Server AllegroGraph RDFStore Joseki Sesame … – 67 – Linked Data • Visualización de datos – Pubby – SNORQL – Disco – Hyperdata Browser – 68 – Linked Data: integración de datos [http://www.w3.org/People/Ivan/CorePresentations/IntroThroughExample/] [http://www.w3.org/People/Ivan/CorePresentations/IntroThroughExample/] – 69 – Web de Datos (Linked Data) • Algunas fuentes de datos – – – – – Dbpedia: http://dbpedia.org/sparql UK Government: http://data.gov.uk/sparql USA Government: http://semantic.data.gov/sparql Musicbrainz: http://dbtune.org/musicbrainz/sparql ... – 70 – Ejemplo: DBPedia • http://dbpedia.org • Pone disponible a información existente en la Wikipedia • Generación de datos – A partir de información estructurada de la Wikipedia • Publicación de datos – OpenLink Virtuoso – SPARQL endpoint público: http://dbpedia.org/sparql – 71 – Ejemplo: DBPedia • Visualización de datos • Leipzig query builder – http://querybuilder.dbpedia.org • OpenLink Interactive SPARQL Query Builder (iSPARQL) – http://dbpedia.org/isparql; • SNORQL query explorer – http://dbpedia.org/snorql • Cualquier otro cliente SPARQL • Otras herramientas – DBpedia Faceted Search • http://wiki.dbpedia.org/FacetedSearch • Browser: http://dbpedia.neofonie.de/browse/ • Ejemplo de recurso: – http://wikipedia.org/wiki/Berlin http://dbpedia.org/resource/Berlin – 72 – Ejemplo: DBPedia – 73 – – 74 –