SlideShare a Scribd company logo
1 of 34
Download to read offline
Material	
  del	
  curso	
  sobre	
  Tecnologías	
  Semánticas	
  	
  
                                en	
  la	
  Web	
  de	
  Datos	
  

                                  red.es,	
  29/11/2012	
  

                           Ontology	
  Engineering	
  Group	
  

               Asunción	
  Gómez-­‐Pérez,	
  Oscar	
  Corcho	
  García	
  

                                                 	
  

       Licencia	
  de	
  uso:	
  Creative	
  Commons	
  Attribution-­‐
   NonCommercial-­‐ShareAlike	
  3.0	
  Unported	
  (CC	
  BY-­‐NC-­‐SA	
  3.0)	
  
	
  
	
  
	
  
Más	
  información	
  sobre	
  cursos	
  disponible	
  en:	
  http://cursos.oeg-­‐upm.net/	
  
	
  




                                                                                                 	
  
Índice

1.  Web de Linked Data: Conceptos Básicos
       A. Gómez Pérez (30 min)
2.  RDF, RDF Schema y SPARQL
       O. Corcho (90 min)
3.  Vocabularios
       A. Gómez Pérez (90 min)
4.  Herramientas de publicación de datos para portales
    de datos abiertos
       O. Corcho (30 min)




   Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012              1




                        RDF, RDF Schema y SPARQL


                                         Raúl García-Castro, Óscar Corcho
                              Facultad de Informática, Universidad Politécnica de Madrid
                            Campus de Montegancedo sn, 28660 Boadilla del Monte, Madrid
                                               http://www.oeg-upm.net
                                                 ocorcho@fi.upm.es




                              Curso en Red.es. 29 de Noviembre de 2012




                                                                                               1
Índice

  •  Introducción general
  •  RDF
         -  Componentes de RDF
         -  Serialización de RDF
  •  RDF Schema
         -  Componentes de RDFS
         -  Serialización de RDFS




         Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012         3




                                                          RDF y RDF Schema

  •  RDF: Resource Description Framework
  •  Objetivo
         -  Describir la semántica de la información de manera
            procesable por máquinas
                Database                   XML                   RDF(S)



Esquema                                                                        RDF Schema




 Datos                                                                                RDF


  •  Recomendación del W3C
         -  Modelo
         -  Sintaxis
         -  Semántica

         Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012         4




                                                                                                2
RDF(S) en la Web Semántica




   Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012       5




                                                                                Índice

•  Introducción general
•  RDF
   -  Componentes de RDF
   -  Serialización de RDF
•  RDF Schema
   -  Componentes de RDFS
   -  Serialización de RDFS




   Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012       6




                                                                                         3
Componentes de RDF
•    También conocido como “triples” (tripletas)
      -  [Sujeto, Predicado, Objeto]

•    “Raúl es un miembro del Ontology Engineering Group”
      -  [Raúl, is member of, Ontology Engineering Group]
                              is member of
                   Raúl                            Ontology Engineering Group

•    “El nombre completo de Raúl es Raúl García Castro”
      -  [Raúl, has full name, Raúl García Castro]
                                has full name
                   Raúl                                 Raúl García Castro


•    “Raúl nació el 26 de Diciembre de 1975”
      -  [Raúl, was born, 26 December 1975]
                                has birth date
                   Raúl                                 26 December 1975


•    “La página web del Ontology Engineering Group es http://www.oeg-upm.net/”
      -  [Ontology Engineering Group, has web page, http://www.oeg-upm.net/]
                                                 has web page
            Ontology Engineering Group                          http://www.oeg-upm.net/


      Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012           7




                                                                                  Grafos RDF

•  Los grafos RDF son conjuntos de tripletas


                                        has full name              Raúl García Castro

                       Raúl

                                       has birth date              26 December 1975
            is member of


                                                 has web page
           Ontology Engineering Group                            http://www.oeg-upm.net/




      Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012           8




                                                                                               4
Literales RDF

        •  Los objetos de las tripletas pueden ser literales
           (cadenas de caracteres)
              -  El sujeto y el predicado son siempre recursos
        •  Los literales pueden estar tipados
              -  Normalmente usando XML Schema datatypes
              -  Además, RDF proporciona el tipo de datos rdf:XMLLiteral

                                               has full name             “Raúl García Castro”

                              Raúl

                                               has birth date          “1975-12-26”^^xsd:date
                   is member of


                                                      has web page
                 Ontology Engineering Group                            http://www.oeg-upm.net/




              Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012                               9




                                                                                          URIs en RDF

     •  Componentes de una URI (RFC3986)
           -  http://www.oeg-upm.net:8080/Info/People?position=current#Raul
              Scheme                  Authority                      Path                 Query            Fragment


     •  URIs en RDF:
           -  Son referencias URI: URI + Fragment
           -  Puede contener caracteres Unicode
           -  Identifica recursos y valores (ej., mailto:rgarcia@fi.upm.es)
                                          http://www.oeg-upm.net/Properties#hasFullName
                                                                                                “Raúl García Castro”

                         http://www.oeg-upm.net/People#Raul

                                               http://www.oeg-upm.net/Properties#hasBirthDate “1975-12-26”^^xsd:date
http://www.oeg-upm.net/Properties#isMemberOf

                                                           http://www.oeg-upm.net/Properties#hasWebPage

                      http://www.oeg-upm.net/Organization#OEG                                http://www.oeg-upm.net/


              Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012                              10




                                                                                                                           5
Espacios de nombres (namespaces) en RDF

•  Las URIs bajo un namespace se llaman vocabularios

                Prefijo          URI
                people           http://www.oeg-upm.net/People#
                organization     http://www.oeg-upm.net/Organization#
                properties       http://www.oeg-upm.net/Properties#
                rdf              http://www.w3.org/1999/02/22-rdf-syntax-ns#
                rdfs             http://www.w3.org/2000/01/rdf-schema#
                xsd              http://www.w3.org/2001/XMLSchema#


                                       properties:hasFullName
                                                                               “Raúl García Castro”

                      people:Raul

                                       properties:hasBirthDate                “1975-12-26”^^xsd:date
 properties:isMemberOf

                                             properties:hasWebPage
                organization:OEG                                              http://www.oeg-upm.net/

    Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012                               11




                                                                 Clasificando recursos

•  La propiedad rdf:type se usa para clasificar recursos
   en categorías/clases

            category:Person                                category:Animal                        Clases
 rdf:type                      rdf:type         rdf:type                      rdf:type


 people:Raul            people:Oscar            people:Missy        people:Fantasma             Instancias



•  La clase rdf:Property es la clase de todas las
   propiedades
                                                  rdf:Property

                                     rdf:type                      rdf:type


                               properties:hasFullName            rdf:type


    Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012                               12




                                                                                                                  6
Nodos en blanco
                                Valores de propiedades estructuradas

•  En ocasiones, se utilizan estructuras de datos más
   complejas que las tripletas (aunque todo se sigue
   reduciendo a tripletas)


                                                                    Esta URI intermedia
                                                                   realmente no necesita
                                                                tener un nombre específico
                  properties:hasFullName
    people:Raul
                      properties:firstName               properties:lastName



                               “Raúl”                 “García Castro”




   Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012                13




                                                                   Contenedores RDF

•  Describen grupos de cosas
   -  Un libro fue creado por varios autores
   -  Una clase es impartida por varias personas
   -  etc.
•  RDF tiene varios tipos de contenedores
   -  rdf:Bag. Grupo de recursos o literales, incluyendo duplicados,
      donde el orden no es significativo
   -  rdf:Seq. Grupo de recursos o literales, incluyendo duplicados,
      donde el orden es significativo
   -  rdf:Alt. Grupo de recursos o literales que son alternativas
      (normalmente para un valor simple de una propiedad)

                         properties:hasEmailAddress               rdf:type
        people:Raul                                                            rdf:Seq
                                             rdf:_1              rdf:_2



                              “rgarcia@fi.upm.es”            “r.garcia@upm.es”


   Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012                14




                                                                                                  7
Colecciones en RDF

•  Grupos de cosas representadas como una lista
   estructurada
   -  “A container with limits”
•  Construido usando rdf:List, rdf:first, rdf:rest, y
   rdf:nil                rdf:List

                                        rdf:type

                         university:hasTeacher             rdf:first
    university:Course1                                                     people:Raul

                                      rdf:next

                                                           rdf:first
                                                                          people:Oscar

                                      rdf:next


                                                 rdf:nil



   Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012                              15




                                                                       Reificación en RDF

•  Tripletas en RDF sobre otras tripletas en RDF
   -  “Raúl cree que la fecha de nacimiento de Oscar es el 2 de febrero de
      1976 y que su dirección de correo electrónico es ocorcho@fi.upm.es”
•  Expresado usando rdf:Statement, rdf:subject, rdf:predicate,
   y rdf:object


                                                                       people:Oscar
                   modal:believes     properties:hasEmailAddress                 properties:hasBirthDate
    people:Raul

                                           “ocorcho@fi.upm.es”                 “1976-02-02”^^xsd:date




•  Reificación en RDF
   -  Permite expresar creencias (y otras modalidades)
   -  Permite expresar modelos de confianza, firmas digitales, etc.
   -  Permite expresar metadatos sobre metadatos


   Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012                              16




                                                                                                                8
Valor principal de un valor estructurado

•  Algunas veces uno de los valores de un valor
   estructurado es el principal
      -  El peso de un artículo es 2.4 kilogramos
      -  El valor principal es 2.4, lo que se expresa con rdf:value
•  Se usa muy poco



                               product:hasWeight
               product:Item1
                                      rdf:value            units:hasWeightUnit



                                    “2.4”^^xsd:float     units:Kilogram




     Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012   17




                                   Resumen del vocabulario RDF
Clases                         Propiedades                      Individuos
Classification
rdf:Property                   rdf:type
Containers
rdf:Bag                        rdf:_1, rdf:_2, rdf:_3…
rdf:Seq
rdf:Alt
Collections
rdf:List                       rdf:first                        rdf:nil
                               rdf:rest
Reification
rdf:Statement                  rdf:subject
                               rdf:predicate
                               rdf:object
Values
rdf:XMLLiteral                 rdf:value

     Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012   18




                                                                                       9
Serializaciones en RDF

    •  Normativa
         -  RDF/XML (www.w3.org/TR/rdf-syntax-grammar/)
    •  Versión en borrador (9 de agosto de 2011)
         -  Turtle (http://www.w3.org/TR/turtle/)
    •  Alternativas (centradas en usuarios)
         -  N3 (http://www.w3.org/DesignIssues/Notation3.html)
         -  TriX (http://www.w3.org/2004/03/trix/)
         -  …


    •  Importante: las serializaciones RDF permiten
       diferentes variantes sintácticas.
         -  Ej., el orden en el que las tripletas RDF aparecen en un
            documento no es relevante


         Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012                19




                                Serializaciones en RDF. RDF/XML
                           people:hasColleague                 people:hasColleague
            people:Oscar                         people:Asun                         people:Raul

                   people:hasName                      people:hasHomePage

        “Óscar Corcho García”             http://www.oeg-upm.net/

<?xml version="1.0"?>
    <rdf:RDF
        xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
        xmlns:person="http://www.ontologies.org/ontologies/people#"
        xmlns="http://www.oeg-upm.net/ontologies/people#"
        xml:base="http://www.oeg-upm.net/ontologies/people">

     <rdf:Property rdf:about="http://www.ontologies.org/ontologies/people#hasHomePage"/>
     <rdf:Property rdf:about="http://www.ontologies.org/ontologies/people#hasColleague"/>
     <rdf:Property rdf:about="http://www.ontologies.org/ontologies/people#hasName"/>

     <rdf:Description rdf:about="#Raul"/>
     <rdf:Description rdf:about="#Asun">
       <person:hasColleague rdf:resource="#Raul"/>
       <person:hasHomePage>http://www.fi.upm.es</person:hasHomePage>
     </rdf:Description>
     <rdf:Description rdf:about="#Oscar">
       <person:hasColleague rdf:resource="#Asun"/>
       <person:hasName>Oscar Corcho García</person:hasName>
     </rdf:Description>

   </rdf:RDF>

         Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012                20




                                                                                                        10
Serializaciones en RDF. Turtle
                     people:hasColleague                 people:hasColleague
      people:Oscar                         people:Asun                         people:Raul

             people:hasName                      people:hasHomePage

  “Óscar Corcho García”             http://www.oeg-upm.net/




@base <http://www.oeg-upm.net/ontologies/people/ >
@prefix vocab: <http://www.ontologies.org/ontologies/people#>
:Asun vocab:hasColleague :Raul ;
       vocab:hasHomePage “http://www.fi.upm.es/”.
:Oscar vocab:hasColleague :Asun ;
       vocab:hasName “Óscar Corcho García”.




   Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012                21




                                                                                       Índice

•  Introducción general
•  RDF
   -  Componentes de RDF
   -  Serialización de RDF
•  RDF Schema
   -  Componentes de RDFS
   -  Serialización de RDFS




   Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012                22




                                                                                                  11
RDF Schema
            •  Amplía RDF
            •  Permite la descripción de clases de recursos y sus propiedades
            •  Añade restricciones a los modelos
                                               rdfs:member
                                               rdfs:seeAlso
                                             rdfs:isDefinedBy
                                                 rdf:value                                    rdfs:label
                                                                                            rdfs:comment
                                                                  rdfs:Resource
                         rdf:first
                                            rdf:subject
                                           rdf:predicate
                                             rdf:object                                     rdf:type

rdf:rest                                                   rdfs:subPropertyOf                                   rdfs:subclassOf


    rdf:List        rdfs:Container             rdf:Statement           rdf:Property                     rdfs:Class          rdfs:Literal

                                                                                              rdfs:domain
                                                                                               rdfs:range

               rdf:Bag      rdf:Seq       rdf:Alt          rdfs:ContainerMembershipProperty            rdfs:Datatype     rdf:XMLLiteral


     rdf:nil                                        rdfs:member


                                          rdf:_1      rdf:_2       rdf:_3

                  Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012                                         23




                                                                                Descripción de clases
 RDF(S)
                                                                                                                             rdfs:Class


                                                                                                                                   rdf:type
Vocabulario
                                                                                          person:Person
                                                                                                     rdfs:subClassOf

                                                                                         person:Professor
                                                                                  rdfs:subClassOf


                                                      person:FullProfessor               person:AssociateProfessor

                                                                                                          rdfs:subClassOf

                                                                                      person:InterimAssociateProfessor


                                     person:hasColleague                    person:hasColleague
Datos           data:Oscar                                   data:Asun                              data:Raul

                          person:hasName                            person:hasHomePage

           “Óscar Corcho García”                     http://www.oeg-upm.net/

                  Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012                                         24




                                                                                                                                              12
Descripción de individuos
 RDF(S)
                                                                                                                     rdfs:Class


                                                                                                                          rdf:type
Vocabulario
                                                                                      person:Person
                                                                                              rdfs:subClassOf

                                                                                     person:Professor
                                                                           rdfs:subClassOf


                                                person:FullProfessor                 person:AssociateProfessor

                                                                                                   rdfs:subClassOf

                                                                              person:InterimAssociateProfessor
          rdf:type                                          rdf:type                               rdf:type

                           person:hasColleague                     person:hasColleague
Datos     data:Oscar                                 data:Asun                               data:Raul

                     person:hasName                         person:hasHomePage

     “Óscar Corcho García”                     http://www.oeg-upm.net/

              Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012                                    25




                                                         Descripción de propiedades
 RDF(S)
          rdf:Property                                                                                               rdfs:Class
                          rdf:type

                                                                                                                          rdf:type
Vocabulario                       rdfs:range                           rdfs:domain
                 rdfs:Literal                   person:hasName                        person:Person
                                                    rdfs:domain                               rdfs:subClassOf
                                                     rdfs:range
                       person:hasColleague                                           person:Professor
                                                                           rdfs:subClassOf

                                rdfs:domain
  person:hasHomePage                            person:FullProfessor                 person:AssociateProfessor

                                                                                                   rdfs:subClassOf

                                                                              person:InterimAssociateProfessor
          rdf:type                                          rdf:type                               rdf:type

                           person:hasColleague                     person:hasColleague
Datos     data:Oscar                                 data:Asun                               data:Raul

                     person:hasName                         person:hasHomePage

     “Óscar Corcho García”                     http://www.oeg-upm.net/

              Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012                                    26




                                                                                                                                     13
Anotación de recursos


                                            rdfs:label
                                                         “Raúl García”


                                            rdfs:label
                                                         “Raúl”


                                        rdfs:comment
             data:Raul                                   “Resource for Raúl García Castro”


                                         rdfs:seeAlso
                                                         http://delicias.dia.fi.upm.es/~rgarcia/

                                          rdfs:isDefinedBy

                                                         http://delicias.dia.fi.upm.es/~rgarcia/foaf.rdf




               Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012                  27




                                       Resumen del vocabulario RDFS
Clases                                     Propiedades                           Individuos
Classification
rdfs:Resource                              rdfs:subClassOf
rdfs:Class
Properties
                                           rdfs:domain
                                           rdfs:range
                                           rdfs:subPropertyOf
Datatypes
rdfs:Literal
rdfs:Datatype
Containers
rdfs:Container                             rdfs:member
rdfs:ContainerMembershipProperty
Annotation
                                           rdfs:label
                                           rdfs:comment
                                           rdfs:seeAlso
                                           rdfs:isDefinedBy
               Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012                  28




                                                                                                                14
Serialización en RDF/XML (1/2)
<?xml version="1.0"?>

      <!DOCTYPE rdf:RDF [
         <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
        <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
        <!ENTITY person "http://www.oeg-upm.net/ontologies/person#" >
      ]>

      <rdf:RDF xmlns="http://www.oeg-upm.net/ontologies/person#"
           xml:base="http://www.oeg-upm.net/ontologies/person"
           xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
           xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
           xmlns:person="http://www.oeg-upm.net/ontologies/person#">

       <rdfs:Property rdf:about="&person;hasColleague">
         <rdfs:range rdf:resource="#Person"/>
         <rdfs:domain rdf:resource="#Person"/>
       </rdfs:Property>

       <rdfs:Property rdf:about="&person;hasHomePage">
         <rdfs:domain rdf:resource="#FullProfessor"/>
       </rdfs:Property>

       <rdfs:Property rdf:about="&person;hasName">
         <rdfs:domain rdf:resource="#Person"/>
         <rdfs:range rdf:resource="&rdfs;Literal"/>
       </rdfs:Property>
...



      Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012   29




                                 Serialización en RDF/XML (2/2)
...
       <rdfs:Class rdf:about="#AssociateProfessor">
         <rdfs:subClassOf rdf:resource="#Professor"/>
       </rdfs:Class>
       <rdfs:Class rdf:about="#FullProfessor">
         <rdfs:subClassOf rdf:resource="#Professor"/>
       </rdfs:Class>
       <rdfs:Class rdf:about="#InterimAssociateProfessor">
         <rdfs:subClassOf rdf:resource="#AssociateProfessor"/>
       </rdfs:Class>
       <rdfs:Class rdf:about="#Person"/>
       <rdfs:Class rdf:about="#Professor">
         <rdfs:subClassOf rdf:resource="#Person"/>
       </rdfs:Class>
       <FullProfessor rdf:about="#Asun">
         <person:hasHomePage>http://www.fi.upm.es</person:hasHomePage>
         <person:hasColleague rdf:resource="#Raul"/>
       </FullProfessor>
       <AssociateProfessor rdf:about="#Oscar">
         <person:hasName>Oscar Corcho García</person:hasName>
         <person:hasColleague rdf:resource="#Asun"/>
       </AssociateProfessor>
        <InterimAssociateProfessor rdf:about="#Raul"/>
      </rdf:RDF>



      Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012   30




                                                                                        15
Serialización en Turtle (1/2)

@base <http://www.oeg-upm.net/ontologies/person> .
@prefix : <http://www.oeg-upm.net/ontologies/person#> .
@prefix person: <http://www.oeg-upm.net/ontologies/person#> .

:hasColleague a rdfs:Property .
        rdfs:domain :Person .
        rdfs:range :Person ;

:hasHomePage a rdfs:Property .
       rdfs:domain :FullProfessor .

:hasName a rdfs:Property .
     rdfs:domain :Person ;
     rdfs:range rdfs:Literal .
…
                                                                     a is equivalent to rdf:type

    Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012              31




                                         Serialización en Turtle (2/2)
…
:Person a rdfs:Class .

:Professor a rdfs:Class ;
       rdfs:subClassOf :Person .

:FullProfessor a rdfs:Class ;
          rdfs:subClassOf :Professor .

:AssociateProfessor a rdfs:Class ;
            rdfs:subClassOf :Professor .

:InterimAssociateProfessor a rdfs:Class ;
                 rdfs:subClassOf :AssociateProfessor .

:Asun a :FullProfessor ;
   :hasHomePage "http://www.fi.upm.es" ;
   :hasColleague :Raul .

:Oscar a :AssociateProfessor ;
    :hasName "Oscar Corcho García" ;
    :hasColleague :Asun .

:Raul a :InterimAssociateProfessor .                                 a is equivalent to rdf:type

    Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012              32




                                                                                                   16
Ejemplo de algunas RDF APIs

     •  Librerías RDF para distintos lenguajes:
         -  Java, Python, C, C++, C#, .Net, Javascript, Tcl/Tk, PHP, Lisp, Obj-C,
            Prolog, Perl, Ruby, Haskell
         -  Un listado disponible en http://esw.w3.org/topic/SemanticWebTools


     •  Multilenguaje:
         -  Redland RDF Application Framework (C, Perl, PHP, Python and Ruby):
            http://www.redland.opensource.ac.uk/
     •  Java:
         -  Jena: http://jena.sourceforge.net/
         -  Sesame: http://www.openrdf.org/
     •  PHP:
         -  RAP - RDF API for PHP: http://www4.wiwiss.fu-berlin.de/bizer/rdfapi/
     •  Python:
         -  RDFLib: http://rdflib.net/
         -  Pyrple: http://infomesh.net/pyrple/



         Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012   33




                                                                               Ejercicio




• Objetivo
     •  Entender las características de RDF(S) para implementar
        vocabularios y datos, incluyendo sus limitaciones
• Tareas
     •  A partir de una descripción de dominio, crear el grafo RDF(S)
           •  Primero incluir sólo el vocabulario del dominio
           •  Después incluir referencias a RDF y a los vocabularios RDFS

         Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012   34




                                                                                           17
Ejercicio 1. Descripción del dominio

                 •  Cierta ubicación puede ser un lugar de interés.
                 •  Los lugares de interés pueden ser lugares turísticos o
                    establecimientos, pero no ambos a la vez.
                 •  Los lugares turísticos pueden ser palacios, iglesias, capillas y
                    catedrales.
                 •  Los establecimientos pueden ser hoteles, hostales, o viviendas en
                    alquiler.
                 •  Un lugar está ubicado en una localidad, que puede ser una ciudad,
                    un pueblo o una ciudad céntrica.
                 •  Un lugar de interés tiene dirección postal, que incluye el nombre de
                    la calle y el número.
                 •  Las localidades tienen un cierto número de habitantes.
                 •  Las localidades pertenecen a una cierta provincia.

                 •  Covarrubias es un pueblo con 634 habitantes en la provincia de
                    Burgos.
                 •  El restaurante “El Galo” está ubicado en Covarrubias, en la calle
                    Mayor, número 5.
                 •  Una de las iglesias de Covarrubias está en la calle Santo Tomás.

                  Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012                                                                                                35




            Ejercicio 1. Ejemplo de vocabulario resultante
                                                                                                                                      Literal
                                                                                                              hasLatitude
                                                                                         hasAltitude                    hasLongitude


                                            isLocatedAPoint                          PhysicalPoint                            TransportMedium                             Train
                                                                 hasStop
                                                              hasDestination

                                                                  hasOrigin
                                   SpacialThing                                                                   OnFoot                Bus             Car            Bycicle
                                                                                              Stage
                                                                                 By




                                                                  Town
                                                                               nected




                                                                                                        Literal                                                  isSupportedBy
                 Location                                                                                                   through
                                                                             isCon




                                                                    City                  hasStreet
                              isPlacedIn                                                         hasNumber        hasPostalCode
                                                 Locality                            hasBegining
                                                                                                                                                       TransportInfrastructure
                                   inProvince                                          hasEnd          PostalAddress
                                                hasSurface
                                hasInhabitantNumber                Village
                                                                                                                              hasStretch
                                       Literal                                                                                                                                         Railway
                                                                                              Route                                             Path
           LocationOf                                 hasAddress
          International
                                                                                                                                                          Road             Trach
                                                                                                                  Stretch
                                                                 Establistioment                                       hasDistance

                                                                                                                              Literal
                                                    Hostel                                     GuestHouse                                          hasDenomination           Literal
         Touristic
                                                                      Hotel
         Location

                                                                                           isProvidedBy                                                Service

                                                                                                                                                                                 Restauration
Chapel                                                                         providesService                                                                                     Service
                                     Palace
                                                                                                                             BankService


                                                                                                                                                                         PostalService
                          Church                                                                                                         HealthService
    Cathedral
                                                                                                                                                                  SecurityService

                  Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012                                                                                                36




                                                                                                                                                                                                 18
El Lenguaje de Consultas
                                         SPARQL

                                             Raúl García-Castro, Oscar Corcho
                                  Facultad de Informática, Universidad Politécnica de Madrid
                                Campus de Montegancedo sn, 28660 Boadilla del Monte, Madrid
                                                   http://www.oeg-upm.net
                                                     ocorcho@fi.upm.es




                                   Curso en Red.es. 29 de Noviembre de 2012




                          Lenguajes de consulta sobre RDF(S)

             Aplicación                                        Aplicación



                    Consultas en SQL                                        Consultas en SPARQL



              Base de
                                                                RDF(S)
               datos
                                                                 OWL
             relacional




•    Soportado por las APIs y triple stores más relevantes
      -  Jena, Sesame, RASQAL, etc.
      -  Virtuoso, 4store, Fuseki, etc.
      -  ...
•    Hay algunas diferencias con respecto a lenguajes como SQL, tales como
      -  Posibilidad de combinar fuentes de datos heterogéneas
      -  Hipótesis de mundo abierto




     Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012                   38




                                                                                                       19
Inferencia en RDF. Ejemplos (I)

•  Ejemplo de grafo RDF
                          person:hasColleague                person:hasColleague
           data:Oscar                           data:Asun                          data:Raul

                 person:hasName                      person:hasHomePage

      “Óscar Corcho García”            http://www.oeg-upm.net/




•  Consulta: “Dime las personas que tienen a Raúl
   como colega”
                                      person:hasColleague
                              ?                              data:Raul


   -  Resultado: data:Asun



   Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012                  39




                                  Inferencia en RDF. Ejemplos (II)

•  Consulta: “Dime qué relaciones existen entre Oscar y
   Asun”
                                            ?
                    data:Oscar                          data:Asun




   -  Resultado: person:hasColleague

•  Consulta: “Dime la página Web de los colegas de Oscar”
                                       person:hasColleague
                        data:Oscar
                                                                    person:hasHomePage


                                                                ?



   -  Resultado: “http://www.oeg-upm.net/”

   Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012                  40




                                                                                                    20
SPARQL también es un protocolo

•    SPARQL es un lenguaje de consulta…
     Encuentra nombres y websites de colaboradores de PlanetRDF:
     PREFIX foaf: <http://xmlns.com/foaf/0.1/>
     SELECT ?name ?website
     FROM <http://planetrdf.com/bloggers.rdf>
     WHERE {
          ?person foaf:weblog ?website .
          ?person foaf:name ?name .
          ?website a foaf:Document }

•    ... Y un Protocolo
     http://.../qps?query-lang=http://www.w3.org/TR/rdf-sparql-query/
     &graph-id=http://planetrdf.com/bloggers.rdf&query=PREFIXfoaf:
     <http://xmlns.com/foaf/0.1/...

•    Servicios ejecutando consultas SPARQL sobre un conjunto de grafos
•    Un protocolo de transporte para invocar al servicio
•    Descripción del servicio con tecnologías de servicios Web




          Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012   42




                                                    Conclusiones SPARQL
     •  Servicios del protocolo SPARQL
          -  Permite a los usuarios (humanos u otros) hacer una consulta en una
             base de datos y conocimientos usando SPARQL
          -  Los resultados son devueltos normalmente en uno o más formatos
             procesables por máquinas
     •  Listado de puntos de acceso (endpoints) de SPARQL
          -  http://esw.w3.org/topic/SparqlEndpoints
     •  Acceso programático usando librerías:
          -  ARC, RAP, Jena, Sesame, Javascript SPARQL, PySPARQL, etc.
     •  Ejemplos:

         Proyecto                            Conclusión
         DBpedia                             http://dbpedia.org/sparql
         BBC Programmes and Music http://bbc.openlinksw.com/sparql/
         data.gov                            http://semantic.data.gov/sparql
         data.gov.uk                         http://data.gov.uk/sparql
         Musicbrainz                         http://dbtune.org/musicbrainz/sparql



          Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012   43




                                                                                            21
Ejemplo: consultando DBpedia

•  Gente nacida en Berlín antes de 1900




   Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012   44




                             Ejemplo: consultando DBpedia




   Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012   45




                                                                                     22
También consultas más “españolas”

      •  ¿Qué toreros han estado casados con cantantes de
         copla? Aquí
                PREFIX dcterms: <http://purl.org/dc/terms/>
                SELECT ?torero ?cantante WHERE{
                  ?torero rdf:type dbpedia-owl:BullFighter .
                  ?torero dbpedia-owl:spouse ?cantante .
                  ?cantante dcterms:subject <http://es.dbpedia.org/resource/
                Categoría:Cantantes_de_coplas>
                }




          Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012   46




                                 Un consulta sencilla en SPARQL
Data:

 @prefix dc: <http://purl.org/dc/elements/1.1/> .
 @prefix : <http://example.org/book/> .
 :book1 dc:title "SPARQL Tutorial" .

Query:
SELECT ?title
WHERE
{
  <http://example.org/book/book1> <http://purl.org/dc/elements/1.1/title> ?title .
}
Query result:      title
                   "SPARQL Tutorial"


•    Un patrón de consulta se ajusta contra los datos en RDF
•    En todo caso un patrón puede ajustarse para proporcionar una solución
•    La secuencia de soluciones se puede filtrar
•    Se aplica uno de los siguientes constructores: SELECT, CONSTRUCT,
     DESCRIBE, ASK

          Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012   47




                                                                                            23
Varios patrones de grafos: joins

@prefix foaf:         <http://xmlns.com/foaf/0.1/> .

_:a    foaf:name         "Johnny Lee Outlaw" .
_:a    foaf:mbox         <mailto:jlow@example.com> .
_:b    foaf:name         "Peter Goodguy" .
_:b    foaf:mbox         <mailto:peter@example.org> .
_:c    foaf:mbox         <mailto:carol@example.org> .


PREFIX       foaf:   <http://xmlns.com/foaf/0.1/>
SELECT       ?name ?mbox
WHERE
  { ?x       foaf:name ?name .
    ?x       foaf:mbox ?mbox }


       name                                      mbox
       "Johnny Lee Outlaw"                       <mailto:jlow@example.com>
       "Peter Goodguy"                           <mailto:peter@example.org>


          Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012   48




                                                                        Literales RDF

@prefix   dt:    <http://example.org/datatype#> .
@prefix   ns:    <http://example.org/ns#> .
@prefix   :      <http://example.org/ns#> .
@prefix   xsd:   <http://www.w3.org/2001/XMLSchema#> .

:x    ns:p       "cat"@en .
:y    ns:p       "42"^^xsd:integer .
:z    ns:p       "abc"^^dt:specialDatatype .


SELECT ?v WHERE { ?v ?p "cat" }                          v

SELECT ?v WHERE { ?v ?p "cat"@en }
                                                         v
                                                         <http://example.org/ns#x>

SELECT ?v WHERE { ?v ?p 42 }
                                                         v
                                                         <http://example.org/ns#y>

SELECT ?v WHERE { ?v ?p "abc"^^<http://example.org/datatype#specialDatatype> }

                                                         v
                                                         <http://example.org/ns#z>


          Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012   49




                                                                                            24
Nodos en blanco


@prefix foaf:     <http://xmlns.com/foaf/0.1/> .

_:a   foaf:name      "Alice" .
_:b   foaf:name      "Bob" .



PREFIX foaf:    <http://xmlns.com/foaf/0.1/>
SELECT ?x ?name
WHERE { ?x foaf:name ?name }



            x             name                    x             name
            _:c           "Alice"          =      _:r           "Alice"
            _:d           "Bob"                   _:s           "Bob"



       Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012   50




                                                        Grupos de patrones

PREFIX foaf:    <http://xmlns.com/foaf/0.1/>
SELECT ?name ?mbox
WHERE { { ?x foaf:name ?name . }
         { ?x foaf:mbox ?mbox . }
       }



SELECT ?x
WHERE {}




PREFIX foaf:    <http://xmlns.com/foaf/0.1/>
SELECT ?name ?mbox
WHERE { { ?x foaf:name ?name . }
         { ?x foaf:mbox ?mbox . FILTER regex(?name, "Smith")}
       }



       Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012   51




                                                                                         25
Patrones opcionales (left-outer-join)

@prefix foaf:          <http://xmlns.com/foaf/0.1/> .
@prefix rdf:           <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

_:a   rdf:type          foaf:Person .
_:a   foaf:name         "Alice" .
_:a   foaf:mbox         <mailto:alice@example.com> .
_:a   foaf:mbox         <mailto:alice@work.example> .

_:b   rdf:type          foaf:Person .
_:b   foaf:name         "Bob" .


PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name ?mbox
WHERE { ?x foaf:name ?name .
         OPTIONAL { ?x foaf:mbox ?mbox }
       }



       name                                      mbox
       "Alice"                                   <mailto:alice@example.com>
       "Alice"                                   <mailto:alice@work.example>
       “Bob"


         Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012      52




                                        Patrones opcionales múltiples

@prefix foaf:          <http://xmlns.com/foaf/0.1/> .

_:a   foaf:name         "Alice" .
_:a   foaf:homepage     <http://work.example.org/alice/> .

_:b   foaf:name         "Bob" .
_:b   foaf:mbox         <mailto:bob@work.example> .



PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?name ?mbox ?hpage
WHERE { ?x foaf:name ?name .
         OPTIONAL { ?x foaf:mbox ?mbox } .
         OPTIONAL { ?x foaf:homepage ?hpage }
       }




       name           mbox                            hpage
       "Alice"                                        <http://work.example.org/alice/>
       “Bob"          <mailto:bob@work.example>




         Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012      53




                                                                                              26
Patrones de alternativas
  @prefix dc10:       <http://purl.org/dc/elements/1.0/> .
  @prefix dc11:       <http://purl.org/dc/elements/1.1/> .

  _:a    dc10:title        "SPARQL Query Language Tutorial" .
  _:a    dc10:creator      "Alice" .
  _:b    dc11:title        "SPARQL Protocol Tutorial" .
  _:b    dc11:creator      "Bob" .
  _:c    dc10:title        "SPARQL" .
  _:c    dc11:title        "SPARQL (updated)" .

PREFIX   dc10: <http://purl.org/dc/elements/1.0/>                            title
PREFIX   dc11: <http://purl.org/dc/elements/1.1/>                            "SPARQL Protocol Tutorial"
SELECT   ?title
                                                                             "SPARQL"
WHERE    { { ?book dc10:title ?title } UNION
           { ?book dc11:title ?title } }                                     "SPARQL (updated)"
                                                                             "SPARQL Query Language Tutorial"

SELECT ?x ?y                                      x                                          y
WHERE { { ?book dc10:title ?x } UNION
                                                                                             "SPARQL (updated)"
         { ?book dc11:title ?y } }
                                                                                             "SPARQL Protocol Tutorial"
                                                  "SPARQL"
                                                  "SPARQL Query Language Tutorial"
SELECT ?title ?author
WHERE                                                         author                 title
  { { ?book dc10:title ?title . ?book dc10:creator ?author }
                                                              "Alice"                "SPARQL Protocol Tutorial"
    UNION
    { ?book dc11:title ?title . ?book dc11:creator ?author }} “Bob”                  "SPARQL Query Language Tutorial"




             Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012                                   54




                                                                     Grafos con nombre
 # Named    graph: http://example.org/foaf/aliceFoaf
 @prefix    foaf:<http://.../foaf/0.1/> .
 @prefix    rdf:<http://.../1999/02/22-rdf-syntax-ns#> .
 @prefix    rdfs:<http://.../2000/01/rdf-schema#> .

 _:a     foaf:name       "Alice" .
 _:a     foaf:mbox       <mailto:alice@work.example> .
 _:a     foaf:knows      _:b .

 _:b     foaf:name       "Bob" .
 _:b     foaf:mbox       <mailto:bob@work.example> .
 _:b     foaf:nick       "Bobby" .
 _:b     rdfs:seeAlso    <http://example.org/foaf/bobFoaf> .

 <http://example.org/foaf/bobFoaf>
      rdf:type      foaf:PersonalProfileDocument .

 # Named    graph: http://example.org/foaf/bobFoaf
 @prefix    foaf:<http://.../foaf/0.1/> .
 @prefix    rdf:<http://.../1999/02/22-rdf-syntax-ns#> .
 @prefix    rdfs:<http://.../2000/01/rdf-schema#> .

 _:z     foaf:mbox       <mailto:bob@work.example> .
 _:z     rdfs:seeAlso    <http://example.org/foaf/bobFoaf> .
 _:z     foaf:nick       "Robert" .

 <http://example.org/foaf/bobFoaf>
      rdf:type      foaf:PersonalProfileDocument .



             Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012                                   55




                                                                                                                               27
Grafos con nombre

PREFIX foaf: <http://xmlns.com/foaf/0.1/>

SELECT ?src ?bobNick
FROM NAMED <http://example.org/foaf/aliceFoaf>          src                                   bobNick
FROM NAMED <http://example.org/foaf/bobFoaf>            <http://example.org/foaf/aliceFoaf>   "Bobby"
WHERE
  {                                                     <http://example.org/foaf/bobFoaf>     "Robert"
    GRAPH ?src
    { ?x foaf:mbox <mailto:bob@work.example> .
      ?x foaf:nick ?bobNick
    }
  }


PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX data: <http://example.org/foaf/>

SELECT ?nick
FROM NAMED <http://example.org/foaf/aliceFoaf>                          nick
FROM NAMED <http://example.org/foaf/bobFoaf>
WHERE                                                                   "Robert"
  {
      GRAPH data:bobFoaf {
          ?x foaf:mbox <mailto:bob@work.example> .
          ?x foaf:nick ?nick }
  }




           Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012                     56




                                                        Filtros y restricciones
  @prefix dc:    <http://purl.org/dc/elements/1.1/> .
  @prefix :      <http://example.org/book/> .
  @prefix ns:    <http://example.org/ns#> .

  :book1   dc:title   "SPARQL Tutorial" .
  :book1   ns:price   42 .
  :book2   dc:title   "The Semantic Web" .
  :book2   ns:price   23 .

  PREFIX   dc: <http://purl.org/dc/elements/1.1/>
  SELECT   ?title                                                  title
  WHERE    { ?x dc:title ?title
             FILTER regex(?title, "^SPARQL")                       "SPARQL Tutorial"
           }


  PREFIX   dc: <http://purl.org/dc/elements/1.1/>
  SELECT   ?title                                                  title
  WHERE    { ?x dc:title ?title
             FILTER regex(?title, "web", "i" )                     "The Semantic Web"
           }

  PREFIX   dc: <http://purl.org/dc/elements/1.1/>
  PREFIX   ns: <http://example.org/ns#>                            title                          price
  SELECT   ?title ?price
  WHERE    { ?x ns:price ?price .                                  "The Semantic Web"             23
             FILTER (?price < 30.5)
             ?x dc:title ?title . }



           Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012                     57




                                                                                                               28
Tests de valores

       •  Basado en funciones y operadores XQuery 1.0 y
          XPath 2.0
       •  XSD boolean, string, integer, decimal, float, double,
          dateTime
       •  Anotaciones <, >, =, <=, >= y != para comparación de
          valores
          Aplicable a cualquier tipo
       •  BOUND, isURI, isBLANK, isLITERAL
       •  REGEX, LANG, DATATYPE, STR ()
       •  Cualquier función extendida




           Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012      58




                                                                        Modificadores

•    Modificador de orden: pone las           SELECT ?name
     soluciones en un cierto orden            WHERE { ?x foaf:name ?name ; :empId ?emp }
                                              ORDER BY ?name DESC(?emp)

•    Modificador de proyección:               SELECT ?name
     selecciona ciertas variables             WHERE
                                               { ?x foaf:name ?name }

•    Modificador DISTINCT: asegura            SELECT DISTINCT ?name
     que las soluciones son únicas            WHERE { ?x foaf:name ?name }


•    Modificador reductor: permite la         SELECT REDUCED ?name
                                              WHERE { ?x foaf:name ?name }
     eliminación de algunas soluciones
     que no son únicas

•    Modificador de límite: restringe el      SELECT ?name
                                              WHERE { ?x foaf:name ?name }
     número de soluciones                     LIMIT 20

                                              SELECT ?name WHERE { ?x foaf:name ?name }
•    Modificador Offset: controla dónde       ORDER BY ?name
     comienzan las soluciones en la           LIMIT   5
     secuencia global de soluciones           OFFSET 10




           Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012      59




                                                                                                29
Ejercicio 2




• Objetivo
      •  Comprender cómo trabajar con consultas SPARQL
• Tareas
      •  Crear un conjunto de consultas SPARQL sobre un vocabulario de ejemplo
            •  http://sandbox.linkeddata.es/sparql
            •  En el grafo: http://sandbox.linkeddata.es/Grado_20122013




              Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012                                    64




                                                                  Ejemplo de vocabulario


                                                               SpatialThing
                                                                                                hasInhabitantNumber

       rdfs:Literal
                                                                isPlacedIn
                                              Location                             Locality                      rdfs:Literal
  hasStreet                 hasNumber

                                                                                                        inProvince

                             hasAddress
      PostalAddress                       LocationOfInterest           Village         Town      City




                      TouristicLocation                                  Establishment




  Palace       Church            Chapel    Cathedral           Hotel          Hostel          GuestHouse




              Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012                                    65




                                                                                                                                 30
Queries en este modelo
1.     Obtener todas las clases
2.     Obtener las subclases de la clase Establishment
3.     Obtener las instancias de la clase City
4.     Obtener el número de habitantes de Santiago de Compostela
5.     Obtener el número de habitantes de Santiago de Compostela y de Arzua
6.     Obtener distintos lugares con número de habitantes, ordenar los
       resultados por el nombre del lugar (ascendente)
7.     Obtener todas las instancias de Locality con su número de habitantes (si
       existe)
8.     Obtener todos los lugares con más de 200.000 habitantes
9.     Obtener los datos postales de Pazo_Breogan (calle, número, localidad,
       provincia)
10.    Obtener las subclases de la clase Location
11.    Obtener las instancias de la clase Locality
12.    Describir el recurso con rdfs:label "Madrid”
13.    Construir el grafo RDF(S) que relaciona directamente todos los lugares
       turísticos con sus respectivas provincias, usando una nueva propiedad
       llamada ”isIn”
14.    Preguntar si hay alguna instancia de Town




       Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012   66




                                                Consultas en el modelo


1)  Obtener todas las clases
  PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
  SELECT ?x WHERE { ?x a rdfs:Class. }


2) Obtener las subclases de la clase Establishment
  PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
  PREFIX pr: <http://GP-onto.fi.upm.es/exercise2#>
  SELECT ?x WHERE { ?x rdfs:subClassOf pr:Establishment. }


3) Obtener las instancias de la clase City
  PREFIX pr: <http://GP-onto.fi.upm.es/exercise2#>
  SELECT ?x WHERE { ?x a pr:City. }
       Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012   67




                                                                                         31
Consultas en las instancias


4) Obtener el número de habitantes de Santiago de Compostela
PREFIX pr: <http://GP-onto.fi.upm.es/exercise2#>
SELECT ?x WHERE { pr:Santiago_de_Compostela pr:hasInhabitantNumber ?x. }

5) Obtener el número de habitantes de Santiago de Compostela y de Arzua
PREFIX pr: <http://GP-onto.fi.upm.es/exercise2#>
SELECT ?x WHERE {
                {pr:Santiago_de_Compostela pr:hasInhabitantNumber ?x.}
                  UNION
                {pr:Arzua pr:hasInhabitantNumber ?x.}
              }
6) Obtener diferentes lugares con el número de habitantes, ordenando los resultados por el
nombre del lugar (ascendente)
PREFIX pr: <http://GP-onto.fi.upm.es/exercise2#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?x ?y WHERE { $loc pr:hasInhabitantNumber ?y;
                           rdfs:label ?x.}
ORDER BY ASC(?x)
          Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012             68




                                       Consultas en las instancias II
           7) Obtener todas las instancias de Locality con su número de habitantes (si existe)
           PREFIX pr: <http://GP-onto.fi.upm.es/exercise2#>
           PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
           SELECT ?x ?y WHERE { $loc a pr:Locality;
                                      rdfs:label ?x.
                                 OPTIONAL {$loc pr:hasInhabitantNumber ?y.} }
           8) Obtener todos los lugarescon más de 200.000 habitantes
           PREFIX pr: <http://GP-onto.fi.upm.es/exercise2#>
           PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
           SELECT ?x ?y WHERE { $loc pr:hasInhabitantNumber ?y;
                                      rdfs:label ?x.
                                 FILTER(?y > 200000) }

           9) Obtener los datos postales de Pazo_Breogan (calle, número, localidad,
           provincia)
           PREFIX pr: <http://GP-onto.fi.upm.es/exercise2#>
           PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
           SELECT ?street ?number ?locality ?province
           WHERE { pr:Pazo_Breogan pr:isPlacedIn $pob;
                                   pr:hasAddress $dir.
                   $pob rdfs:label ?locality;
                        pr:inProvince ?province.
                   $dir pr:hasStreet ?street;
                        pr:hasNumber ?number.}
          Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012             69




                                                                                                      32
Consultas con inferencia



10) Obtener las subclases de la clase Location
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX pr: <http://GP-onto.fi.upm.es/exercise2#>
SELECT ?x WHERE { ?x rdfs:subClassOf pr:Location. }

11) Obtener las instancias de la clase Locality
PREFIX pr: <http://GP-onto.fi.upm.es/exercise2#>
SELECT ?x WHERE { ?x a pr:Locality. }


Query especial (SELECT *)
12) Obtener los valores de todas las variables de la query
PREFIX pr: <http://GP-onto.fi.upm.es/exercise2#>
SELECT * WHERE { ?x pr:hasInhabitantNumber ?y. }

        Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012   70



                                                                                     70




                                          Distintos tipos de consulta

       13) Describe el recurso con rdfs:label "Madrid"
        PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
        DESCRIBE ?x WHERE { ?x rdfs:label "Madrid". }
       14) Construye el grafo RDF(S) que relaciona directamente todos los lugares
       turísticos con sus respectivas provincias, usando una nueva propiedad
       llamada ”isIn”
        PREFIX pr: <http://GP-onto.fi.upm.es/exercise2#>
        CONSTRUCT {?x pr:isIn ?y}
        WHERE {
                   ?x a pr:TouristicLocation;
                          pr:isPlacedIn $pob.
                   $pob pr:inProvince ?y. }
       15) Preguntar si hay alguna instancia de Town
        PREFIX pr: <http://GP-onto.fi.upm.es/exercise2#>
        ASK WHERE {?a a pr:Town}
       16) Preguntar si hay alguna instancia de Chapel
        PREFIX pr: <http://GP-onto.fi.upm.es/exercise2#>
        ASK WHERE {?a a pr:Chapel}
        Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012   71




                                                                                          33

More Related Content

Similar to 02. RDF(S) SPARQL. Tecnologías Semánticas en la Web de Datos

04. Tecnología de portales #OpenData. Tecnologías Semánticas en la Web de Datos
04. Tecnología de portales #OpenData. Tecnologías Semánticas en la Web de Datos04. Tecnología de portales #OpenData. Tecnologías Semánticas en la Web de Datos
04. Tecnología de portales #OpenData. Tecnologías Semánticas en la Web de DatosDatos.gob.es
 
ROH: Proceso de Ingeniería Ontológica & Uso y Extensión de Vocabularios Estándar
ROH: Proceso de Ingeniería Ontológica & Uso y Extensión de Vocabularios EstándarROH: Proceso de Ingeniería Ontológica & Uso y Extensión de Vocabularios Estándar
ROH: Proceso de Ingeniería Ontológica & Uso y Extensión de Vocabularios EstándarDiego López-de-Ipiña González-de-Artaza
 
IX Encuentros de Centros de Documentación de Arte Contemporáneo en Artium - O...
IX Encuentros de Centros de Documentación de Arte Contemporáneo en Artium - O...IX Encuentros de Centros de Documentación de Arte Contemporáneo en Artium - O...
IX Encuentros de Centros de Documentación de Arte Contemporáneo en Artium - O...Artium Vitoria
 
Herramientas para linked data
Herramientas para linked dataHerramientas para linked data
Herramientas para linked dataIván Ruiz-Rube
 
Parte 2. web semantica eva mendez - argentina - 301009
Parte 2. web semantica   eva mendez - argentina - 301009Parte 2. web semantica   eva mendez - argentina - 301009
Parte 2. web semantica eva mendez - argentina - 301009izrxrzi
 
Jorge lopez web_apps
Jorge lopez web_appsJorge lopez web_apps
Jorge lopez web_appseccutpl
 
Interoperabilidade de dados_entre_lilacs_e_artemisa_poster_es
Interoperabilidade de dados_entre_lilacs_e_artemisa_poster_esInteroperabilidade de dados_entre_lilacs_e_artemisa_poster_es
Interoperabilidade de dados_entre_lilacs_e_artemisa_poster_esSueli Suga
 
Tripletas De Sistemas Basados En El Conocimiento
Tripletas De Sistemas Basados En El ConocimientoTripletas De Sistemas Basados En El Conocimiento
Tripletas De Sistemas Basados En El ConocimientoGabriela Puglla
 
Tripletas De Sistemas Basados En El Conocimiento
Tripletas De Sistemas Basados En El ConocimientoTripletas De Sistemas Basados En El Conocimiento
Tripletas De Sistemas Basados En El ConocimientoGabriela Puglla
 
Tripletas De Sistemas Basados En El Conocimiento
Tripletas De Sistemas Basados En El ConocimientoTripletas De Sistemas Basados En El Conocimiento
Tripletas De Sistemas Basados En El ConocimientoGabriela Puglla
 
Tripletas De Sistemas Basados En El Conocimiento
Tripletas De Sistemas Basados En El ConocimientoTripletas De Sistemas Basados En El Conocimiento
Tripletas De Sistemas Basados En El ConocimientoGabriela Puglla
 

Similar to 02. RDF(S) SPARQL. Tecnologías Semánticas en la Web de Datos (20)

04. Tecnología de portales #OpenData. Tecnologías Semánticas en la Web de Datos
04. Tecnología de portales #OpenData. Tecnologías Semánticas en la Web de Datos04. Tecnología de portales #OpenData. Tecnologías Semánticas en la Web de Datos
04. Tecnología de portales #OpenData. Tecnologías Semánticas en la Web de Datos
 
SPARQL
SPARQLSPARQL
SPARQL
 
Linked data con R
Linked data con RLinked data con R
Linked data con R
 
ROH: Proceso de Ingeniería Ontológica & Uso y Extensión de Vocabularios Estándar
ROH: Proceso de Ingeniería Ontológica & Uso y Extensión de Vocabularios EstándarROH: Proceso de Ingeniería Ontológica & Uso y Extensión de Vocabularios Estándar
ROH: Proceso de Ingeniería Ontológica & Uso y Extensión de Vocabularios Estándar
 
IX Encuentros de Centros de Documentación de Arte Contemporáneo en Artium - O...
IX Encuentros de Centros de Documentación de Arte Contemporáneo en Artium - O...IX Encuentros de Centros de Documentación de Arte Contemporáneo en Artium - O...
IX Encuentros de Centros de Documentación de Arte Contemporáneo en Artium - O...
 
Herramientas para linked data
Herramientas para linked dataHerramientas para linked data
Herramientas para linked data
 
24 aplicaciones rdf
24 aplicaciones rdf24 aplicaciones rdf
24 aplicaciones rdf
 
Curso integración Web Semántica
Curso integración Web Semántica Curso integración Web Semántica
Curso integración Web Semántica
 
Parte 2. web semantica eva mendez - argentina - 301009
Parte 2. web semantica   eva mendez - argentina - 301009Parte 2. web semantica   eva mendez - argentina - 301009
Parte 2. web semantica eva mendez - argentina - 301009
 
Jorge lopez web_apps
Jorge lopez web_appsJorge lopez web_apps
Jorge lopez web_apps
 
Datos abiertos enlazados: Experiencia en la Universidad de Chile
Datos abiertos enlazados: Experiencia en la Universidad de ChileDatos abiertos enlazados: Experiencia en la Universidad de Chile
Datos abiertos enlazados: Experiencia en la Universidad de Chile
 
Red Ontologías Hércules – ROH
Red Ontologías Hércules – ROHRed Ontologías Hércules – ROH
Red Ontologías Hércules – ROH
 
Interoperabilidade de dados_entre_lilacs_e_artemisa_poster_es
Interoperabilidade de dados_entre_lilacs_e_artemisa_poster_esInteroperabilidade de dados_entre_lilacs_e_artemisa_poster_es
Interoperabilidade de dados_entre_lilacs_e_artemisa_poster_es
 
Tripletas De Sistemas Basados En El Conocimiento
Tripletas De Sistemas Basados En El ConocimientoTripletas De Sistemas Basados En El Conocimiento
Tripletas De Sistemas Basados En El Conocimiento
 
Tripletas De Sistemas Basados En El Conocimiento
Tripletas De Sistemas Basados En El ConocimientoTripletas De Sistemas Basados En El Conocimiento
Tripletas De Sistemas Basados En El Conocimiento
 
Tripletas De Sistemas Basados En El Conocimiento
Tripletas De Sistemas Basados En El ConocimientoTripletas De Sistemas Basados En El Conocimiento
Tripletas De Sistemas Basados En El Conocimiento
 
Tripletas De Sistemas Basados En El Conocimiento
Tripletas De Sistemas Basados En El ConocimientoTripletas De Sistemas Basados En El Conocimiento
Tripletas De Sistemas Basados En El Conocimiento
 
Sparql
Sparql Sparql
Sparql
 
Websemanticasidar03
Websemanticasidar03Websemanticasidar03
Websemanticasidar03
 
Websemanticasidar03
Websemanticasidar03Websemanticasidar03
Websemanticasidar03
 

More from Datos.gob.es

8 guías para mejorar la publicación y el tratamiento del dato
8 guías para mejorar la publicación y el tratamiento del dato8 guías para mejorar la publicación y el tratamiento del dato
8 guías para mejorar la publicación y el tratamiento del datoDatos.gob.es
 
Pautas para asegurar la calidad usando formatos específicos de datos
Pautas para asegurar la calidad usando formatos específicos de datosPautas para asegurar la calidad usando formatos específicos de datos
Pautas para asegurar la calidad usando formatos específicos de datosDatos.gob.es
 
Pautas generales para garantizar la calidad de los datos abiertos
Pautas generales para garantizar la calidad de los datos abiertos Pautas generales para garantizar la calidad de los datos abiertos
Pautas generales para garantizar la calidad de los datos abiertos Datos.gob.es
 
LegalTech: Potencial transformador de los servicios jurídicos
LegalTech: Potencial transformador de los servicios jurídicosLegalTech: Potencial transformador de los servicios jurídicos
LegalTech: Potencial transformador de los servicios jurídicosDatos.gob.es
 
Impacto de los datos abiertos en la economía
Impacto de los datos abiertos en la economíaImpacto de los datos abiertos en la economía
Impacto de los datos abiertos en la economíaDatos.gob.es
 
finalistas de la IV edición del Desafío Aporta
finalistas de la IV edición del Desafío Aportafinalistas de la IV edición del Desafío Aporta
finalistas de la IV edición del Desafío AportaDatos.gob.es
 
Normas técnicas para un correcto gobierno del dato
Normas técnicas para un correcto gobierno del dato Normas técnicas para un correcto gobierno del dato
Normas técnicas para un correcto gobierno del dato Datos.gob.es
 
Gaia-X y los espacios de datos europeos
Gaia-X y los espacios de datos europeos Gaia-X y los espacios de datos europeos
Gaia-X y los espacios de datos europeos Datos.gob.es
 
APIS para el acceso y descarga de datos de turismo
APIS para el acceso y descarga de datos de turismo APIS para el acceso y descarga de datos de turismo
APIS para el acceso y descarga de datos de turismo Datos.gob.es
 
APIs para el acceso a datos abiertos
APIs para el acceso a datos abiertos APIs para el acceso a datos abiertos
APIs para el acceso a datos abiertos Datos.gob.es
 
Balance de la Iniciativa Aporta 2021
Balance de la Iniciativa Aporta 2021 Balance de la Iniciativa Aporta 2021
Balance de la Iniciativa Aporta 2021 Datos.gob.es
 
Ejemplos de plataformas de datos abiertos en el mundo
Ejemplos de plataformas de datos abiertos en el mundoEjemplos de plataformas de datos abiertos en el mundo
Ejemplos de plataformas de datos abiertos en el mundoDatos.gob.es
 
Guía Práctica de Introducción al Análisis Exploratorio de Datos
Guía Práctica de Introducción al Análisis Exploratorio de Datos Guía Práctica de Introducción al Análisis Exploratorio de Datos
Guía Práctica de Introducción al Análisis Exploratorio de Datos Datos.gob.es
 
¿Cómo se utilizan los datos abiertos en el sector salud y bienestar?
¿Cómo se utilizan los datos abiertos en el sector salud y bienestar? ¿Cómo se utilizan los datos abiertos en el sector salud y bienestar?
¿Cómo se utilizan los datos abiertos en el sector salud y bienestar? Datos.gob.es
 
Los conjuntos de datos más demandados publicados por entidades locales
Los conjuntos de datos más demandados publicados por entidades locales Los conjuntos de datos más demandados publicados por entidades locales
Los conjuntos de datos más demandados publicados por entidades locales Datos.gob.es
 
Las Estrategias de Gobierno Abierto y Datos Públicos de las Comunidades Autón...
Las Estrategias de Gobierno Abierto y Datos Públicos de las Comunidades Autón...Las Estrategias de Gobierno Abierto y Datos Públicos de las Comunidades Autón...
Las Estrategias de Gobierno Abierto y Datos Públicos de las Comunidades Autón...Datos.gob.es
 
Los conjuntos de datos publicados por CC.AA. más valorados
Los conjuntos de datos publicados por CC.AA. más valoradosLos conjuntos de datos publicados por CC.AA. más valorados
Los conjuntos de datos publicados por CC.AA. más valoradosDatos.gob.es
 
Tecnologías emergentes y datos abiertos: analítica predictiva
Tecnologías emergentes y datos abiertos: analítica predictivaTecnologías emergentes y datos abiertos: analítica predictiva
Tecnologías emergentes y datos abiertos: analítica predictivaDatos.gob.es
 
Desvelamos los 10 finalistas de la III edición del Desafío Aporta
Desvelamos los 10 finalistas de la III edición del Desafío Aporta Desvelamos los 10 finalistas de la III edición del Desafío Aporta
Desvelamos los 10 finalistas de la III edición del Desafío Aporta Datos.gob.es
 
4 retos del sector educativo a resolver con soluciones tecnológicas basadas e...
4 retos del sector educativo a resolver con soluciones tecnológicas basadas e...4 retos del sector educativo a resolver con soluciones tecnológicas basadas e...
4 retos del sector educativo a resolver con soluciones tecnológicas basadas e...Datos.gob.es
 

More from Datos.gob.es (20)

8 guías para mejorar la publicación y el tratamiento del dato
8 guías para mejorar la publicación y el tratamiento del dato8 guías para mejorar la publicación y el tratamiento del dato
8 guías para mejorar la publicación y el tratamiento del dato
 
Pautas para asegurar la calidad usando formatos específicos de datos
Pautas para asegurar la calidad usando formatos específicos de datosPautas para asegurar la calidad usando formatos específicos de datos
Pautas para asegurar la calidad usando formatos específicos de datos
 
Pautas generales para garantizar la calidad de los datos abiertos
Pautas generales para garantizar la calidad de los datos abiertos Pautas generales para garantizar la calidad de los datos abiertos
Pautas generales para garantizar la calidad de los datos abiertos
 
LegalTech: Potencial transformador de los servicios jurídicos
LegalTech: Potencial transformador de los servicios jurídicosLegalTech: Potencial transformador de los servicios jurídicos
LegalTech: Potencial transformador de los servicios jurídicos
 
Impacto de los datos abiertos en la economía
Impacto de los datos abiertos en la economíaImpacto de los datos abiertos en la economía
Impacto de los datos abiertos en la economía
 
finalistas de la IV edición del Desafío Aporta
finalistas de la IV edición del Desafío Aportafinalistas de la IV edición del Desafío Aporta
finalistas de la IV edición del Desafío Aporta
 
Normas técnicas para un correcto gobierno del dato
Normas técnicas para un correcto gobierno del dato Normas técnicas para un correcto gobierno del dato
Normas técnicas para un correcto gobierno del dato
 
Gaia-X y los espacios de datos europeos
Gaia-X y los espacios de datos europeos Gaia-X y los espacios de datos europeos
Gaia-X y los espacios de datos europeos
 
APIS para el acceso y descarga de datos de turismo
APIS para el acceso y descarga de datos de turismo APIS para el acceso y descarga de datos de turismo
APIS para el acceso y descarga de datos de turismo
 
APIs para el acceso a datos abiertos
APIs para el acceso a datos abiertos APIs para el acceso a datos abiertos
APIs para el acceso a datos abiertos
 
Balance de la Iniciativa Aporta 2021
Balance de la Iniciativa Aporta 2021 Balance de la Iniciativa Aporta 2021
Balance de la Iniciativa Aporta 2021
 
Ejemplos de plataformas de datos abiertos en el mundo
Ejemplos de plataformas de datos abiertos en el mundoEjemplos de plataformas de datos abiertos en el mundo
Ejemplos de plataformas de datos abiertos en el mundo
 
Guía Práctica de Introducción al Análisis Exploratorio de Datos
Guía Práctica de Introducción al Análisis Exploratorio de Datos Guía Práctica de Introducción al Análisis Exploratorio de Datos
Guía Práctica de Introducción al Análisis Exploratorio de Datos
 
¿Cómo se utilizan los datos abiertos en el sector salud y bienestar?
¿Cómo se utilizan los datos abiertos en el sector salud y bienestar? ¿Cómo se utilizan los datos abiertos en el sector salud y bienestar?
¿Cómo se utilizan los datos abiertos en el sector salud y bienestar?
 
Los conjuntos de datos más demandados publicados por entidades locales
Los conjuntos de datos más demandados publicados por entidades locales Los conjuntos de datos más demandados publicados por entidades locales
Los conjuntos de datos más demandados publicados por entidades locales
 
Las Estrategias de Gobierno Abierto y Datos Públicos de las Comunidades Autón...
Las Estrategias de Gobierno Abierto y Datos Públicos de las Comunidades Autón...Las Estrategias de Gobierno Abierto y Datos Públicos de las Comunidades Autón...
Las Estrategias de Gobierno Abierto y Datos Públicos de las Comunidades Autón...
 
Los conjuntos de datos publicados por CC.AA. más valorados
Los conjuntos de datos publicados por CC.AA. más valoradosLos conjuntos de datos publicados por CC.AA. más valorados
Los conjuntos de datos publicados por CC.AA. más valorados
 
Tecnologías emergentes y datos abiertos: analítica predictiva
Tecnologías emergentes y datos abiertos: analítica predictivaTecnologías emergentes y datos abiertos: analítica predictiva
Tecnologías emergentes y datos abiertos: analítica predictiva
 
Desvelamos los 10 finalistas de la III edición del Desafío Aporta
Desvelamos los 10 finalistas de la III edición del Desafío Aporta Desvelamos los 10 finalistas de la III edición del Desafío Aporta
Desvelamos los 10 finalistas de la III edición del Desafío Aporta
 
4 retos del sector educativo a resolver con soluciones tecnológicas basadas e...
4 retos del sector educativo a resolver con soluciones tecnológicas basadas e...4 retos del sector educativo a resolver con soluciones tecnológicas basadas e...
4 retos del sector educativo a resolver con soluciones tecnológicas basadas e...
 

Recently uploaded

De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETGermán Küber
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...RaymondCode
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfJoseAlejandroPerezBa
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfodalistar77
 
Análisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfAnálisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfcastrodanna185
 
La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....Aaron Betancourt
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfymiranda2
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidaddanik1023m
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx Emialexsolar
 
Carta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfCarta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfangelinebocanegra1
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosLCristinaForchue
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxPaolaCarolinaCarvaja
 
La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2montoyagabriela340
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfalejandrogomezescoto
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfOBr.global
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.marianarodriguezc797
 
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...OLGAMILENAMONTAEZNIO
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSLincangoKevin
 

Recently uploaded (20)

De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
 
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura SilvaBEDEC Sostenibilidad, novedades 2024 - Laura Silva
BEDEC Sostenibilidad, novedades 2024 - Laura Silva
 
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
Actividad 14: Diseño de Algoritmos Paralelos Actividad 14: Diseño de Algoritm...
 
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdfTENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
TENDENCIAS DE IA Explorando el futuro de la tecnologia.pdf
 
Los mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdfLos mejores simuladores de circuitos electrónicos.pdf
Los mejores simuladores de circuitos electrónicos.pdf
 
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier FolchBEDEC Proyecto y obra , novedades 2024 - Xavier Folch
BEDEC Proyecto y obra , novedades 2024 - Xavier Folch
 
Análisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdfAnálisis de artefactos tecnologicos .pdf
Análisis de artefactos tecnologicos .pdf
 
La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....La Electricidad y La Electrónica.pdf....
La Electricidad y La Electrónica.pdf....
 
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdfPresentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
Presentación - Diseño de Algoritmos Paralelos - Grupo 2.pdf
 
Inteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidadInteligencia artificial dentro de la contabilidad
Inteligencia artificial dentro de la contabilidad
 
VIDEOS DE APOYO.docx E
VIDEOS DE APOYO.docx                                  EVIDEOS DE APOYO.docx                                  E
VIDEOS DE APOYO.docx E
 
Carta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdfCarta de Premio y Excel angeline 11-2pdf
Carta de Premio y Excel angeline 11-2pdf
 
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimosEl diseño de Algoritmos Paralelos.pdf - analisis de algortimos
El diseño de Algoritmos Paralelos.pdf - analisis de algortimos
 
Matriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docxMatriz de integración de tecnologías- Paola Carvajal.docx
Matriz de integración de tecnologías- Paola Carvajal.docx
 
La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2La tablet trabajo en grupo del grado 9-2
La tablet trabajo en grupo del grado 9-2
 
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdfActividad 14_ Diseño de Algoritmos Paralelos.pdf
Actividad 14_ Diseño de Algoritmos Paralelos.pdf
 
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdfInmersión global en ciberseguridad e IA en la conferencia RSA.pdf
Inmersión global en ciberseguridad e IA en la conferencia RSA.pdf
 
Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.Tecnológia 2024.docx.
Tecnológia 2024.docx.Tecnológia 2024.docx.
 
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
 
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOSPRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
PRESENTACION DEL TEMA LOS MEJORES SIMULADORES DE CIRCUITOS ELCTRONICOS
 

02. RDF(S) SPARQL. Tecnologías Semánticas en la Web de Datos

  • 1. Material  del  curso  sobre  Tecnologías  Semánticas     en  la  Web  de  Datos   red.es,  29/11/2012   Ontology  Engineering  Group   Asunción  Gómez-­‐Pérez,  Oscar  Corcho  García     Licencia  de  uso:  Creative  Commons  Attribution-­‐ NonCommercial-­‐ShareAlike  3.0  Unported  (CC  BY-­‐NC-­‐SA  3.0)         Más  información  sobre  cursos  disponible  en:  http://cursos.oeg-­‐upm.net/      
  • 2. Índice 1.  Web de Linked Data: Conceptos Básicos A. Gómez Pérez (30 min) 2.  RDF, RDF Schema y SPARQL O. Corcho (90 min) 3.  Vocabularios A. Gómez Pérez (90 min) 4.  Herramientas de publicación de datos para portales de datos abiertos O. Corcho (30 min) Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 1 RDF, RDF Schema y SPARQL Raúl García-Castro, Óscar Corcho Facultad de Informática, Universidad Politécnica de Madrid Campus de Montegancedo sn, 28660 Boadilla del Monte, Madrid http://www.oeg-upm.net ocorcho@fi.upm.es Curso en Red.es. 29 de Noviembre de 2012 1
  • 3. Índice •  Introducción general •  RDF -  Componentes de RDF -  Serialización de RDF •  RDF Schema -  Componentes de RDFS -  Serialización de RDFS Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 3 RDF y RDF Schema •  RDF: Resource Description Framework •  Objetivo -  Describir la semántica de la información de manera procesable por máquinas Database XML RDF(S) Esquema RDF Schema Datos RDF •  Recomendación del W3C -  Modelo -  Sintaxis -  Semántica Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 4 2
  • 4. RDF(S) en la Web Semántica Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 5 Índice •  Introducción general •  RDF -  Componentes de RDF -  Serialización de RDF •  RDF Schema -  Componentes de RDFS -  Serialización de RDFS Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 6 3
  • 5. Componentes de RDF •  También conocido como “triples” (tripletas) -  [Sujeto, Predicado, Objeto] •  “Raúl es un miembro del Ontology Engineering Group” -  [Raúl, is member of, Ontology Engineering Group] is member of Raúl Ontology Engineering Group •  “El nombre completo de Raúl es Raúl García Castro” -  [Raúl, has full name, Raúl García Castro] has full name Raúl Raúl García Castro •  “Raúl nació el 26 de Diciembre de 1975” -  [Raúl, was born, 26 December 1975] has birth date Raúl 26 December 1975 •  “La página web del Ontology Engineering Group es http://www.oeg-upm.net/” -  [Ontology Engineering Group, has web page, http://www.oeg-upm.net/] has web page Ontology Engineering Group http://www.oeg-upm.net/ Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 7 Grafos RDF •  Los grafos RDF son conjuntos de tripletas has full name Raúl García Castro Raúl has birth date 26 December 1975 is member of has web page Ontology Engineering Group http://www.oeg-upm.net/ Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 8 4
  • 6. Literales RDF •  Los objetos de las tripletas pueden ser literales (cadenas de caracteres) -  El sujeto y el predicado son siempre recursos •  Los literales pueden estar tipados -  Normalmente usando XML Schema datatypes -  Además, RDF proporciona el tipo de datos rdf:XMLLiteral has full name “Raúl García Castro” Raúl has birth date “1975-12-26”^^xsd:date is member of has web page Ontology Engineering Group http://www.oeg-upm.net/ Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 9 URIs en RDF •  Componentes de una URI (RFC3986) -  http://www.oeg-upm.net:8080/Info/People?position=current#Raul Scheme Authority Path Query Fragment •  URIs en RDF: -  Son referencias URI: URI + Fragment -  Puede contener caracteres Unicode -  Identifica recursos y valores (ej., mailto:rgarcia@fi.upm.es) http://www.oeg-upm.net/Properties#hasFullName “Raúl García Castro” http://www.oeg-upm.net/People#Raul http://www.oeg-upm.net/Properties#hasBirthDate “1975-12-26”^^xsd:date http://www.oeg-upm.net/Properties#isMemberOf http://www.oeg-upm.net/Properties#hasWebPage http://www.oeg-upm.net/Organization#OEG http://www.oeg-upm.net/ Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 10 5
  • 7. Espacios de nombres (namespaces) en RDF •  Las URIs bajo un namespace se llaman vocabularios Prefijo URI people http://www.oeg-upm.net/People# organization http://www.oeg-upm.net/Organization# properties http://www.oeg-upm.net/Properties# rdf http://www.w3.org/1999/02/22-rdf-syntax-ns# rdfs http://www.w3.org/2000/01/rdf-schema# xsd http://www.w3.org/2001/XMLSchema# properties:hasFullName “Raúl García Castro” people:Raul properties:hasBirthDate “1975-12-26”^^xsd:date properties:isMemberOf properties:hasWebPage organization:OEG http://www.oeg-upm.net/ Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 11 Clasificando recursos •  La propiedad rdf:type se usa para clasificar recursos en categorías/clases category:Person category:Animal Clases rdf:type rdf:type rdf:type rdf:type people:Raul people:Oscar people:Missy people:Fantasma Instancias •  La clase rdf:Property es la clase de todas las propiedades rdf:Property rdf:type rdf:type properties:hasFullName rdf:type Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 12 6
  • 8. Nodos en blanco Valores de propiedades estructuradas •  En ocasiones, se utilizan estructuras de datos más complejas que las tripletas (aunque todo se sigue reduciendo a tripletas) Esta URI intermedia realmente no necesita tener un nombre específico properties:hasFullName people:Raul properties:firstName properties:lastName “Raúl” “García Castro” Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 13 Contenedores RDF •  Describen grupos de cosas -  Un libro fue creado por varios autores -  Una clase es impartida por varias personas -  etc. •  RDF tiene varios tipos de contenedores -  rdf:Bag. Grupo de recursos o literales, incluyendo duplicados, donde el orden no es significativo -  rdf:Seq. Grupo de recursos o literales, incluyendo duplicados, donde el orden es significativo -  rdf:Alt. Grupo de recursos o literales que son alternativas (normalmente para un valor simple de una propiedad) properties:hasEmailAddress rdf:type people:Raul rdf:Seq rdf:_1 rdf:_2 “rgarcia@fi.upm.es” “r.garcia@upm.es” Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 14 7
  • 9. Colecciones en RDF •  Grupos de cosas representadas como una lista estructurada -  “A container with limits” •  Construido usando rdf:List, rdf:first, rdf:rest, y rdf:nil rdf:List rdf:type university:hasTeacher rdf:first university:Course1 people:Raul rdf:next rdf:first people:Oscar rdf:next rdf:nil Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 15 Reificación en RDF •  Tripletas en RDF sobre otras tripletas en RDF -  “Raúl cree que la fecha de nacimiento de Oscar es el 2 de febrero de 1976 y que su dirección de correo electrónico es ocorcho@fi.upm.es” •  Expresado usando rdf:Statement, rdf:subject, rdf:predicate, y rdf:object people:Oscar modal:believes properties:hasEmailAddress properties:hasBirthDate people:Raul “ocorcho@fi.upm.es” “1976-02-02”^^xsd:date •  Reificación en RDF -  Permite expresar creencias (y otras modalidades) -  Permite expresar modelos de confianza, firmas digitales, etc. -  Permite expresar metadatos sobre metadatos Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 16 8
  • 10. Valor principal de un valor estructurado •  Algunas veces uno de los valores de un valor estructurado es el principal -  El peso de un artículo es 2.4 kilogramos -  El valor principal es 2.4, lo que se expresa con rdf:value •  Se usa muy poco product:hasWeight product:Item1 rdf:value units:hasWeightUnit “2.4”^^xsd:float units:Kilogram Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 17 Resumen del vocabulario RDF Clases Propiedades Individuos Classification rdf:Property rdf:type Containers rdf:Bag rdf:_1, rdf:_2, rdf:_3… rdf:Seq rdf:Alt Collections rdf:List rdf:first rdf:nil rdf:rest Reification rdf:Statement rdf:subject rdf:predicate rdf:object Values rdf:XMLLiteral rdf:value Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 18 9
  • 11. Serializaciones en RDF •  Normativa -  RDF/XML (www.w3.org/TR/rdf-syntax-grammar/) •  Versión en borrador (9 de agosto de 2011) -  Turtle (http://www.w3.org/TR/turtle/) •  Alternativas (centradas en usuarios) -  N3 (http://www.w3.org/DesignIssues/Notation3.html) -  TriX (http://www.w3.org/2004/03/trix/) -  … •  Importante: las serializaciones RDF permiten diferentes variantes sintácticas. -  Ej., el orden en el que las tripletas RDF aparecen en un documento no es relevante Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 19 Serializaciones en RDF. RDF/XML people:hasColleague people:hasColleague people:Oscar people:Asun people:Raul people:hasName people:hasHomePage “Óscar Corcho García” http://www.oeg-upm.net/ <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:person="http://www.ontologies.org/ontologies/people#" xmlns="http://www.oeg-upm.net/ontologies/people#" xml:base="http://www.oeg-upm.net/ontologies/people"> <rdf:Property rdf:about="http://www.ontologies.org/ontologies/people#hasHomePage"/> <rdf:Property rdf:about="http://www.ontologies.org/ontologies/people#hasColleague"/> <rdf:Property rdf:about="http://www.ontologies.org/ontologies/people#hasName"/> <rdf:Description rdf:about="#Raul"/> <rdf:Description rdf:about="#Asun"> <person:hasColleague rdf:resource="#Raul"/> <person:hasHomePage>http://www.fi.upm.es</person:hasHomePage> </rdf:Description> <rdf:Description rdf:about="#Oscar"> <person:hasColleague rdf:resource="#Asun"/> <person:hasName>Oscar Corcho García</person:hasName> </rdf:Description> </rdf:RDF> Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 20 10
  • 12. Serializaciones en RDF. Turtle people:hasColleague people:hasColleague people:Oscar people:Asun people:Raul people:hasName people:hasHomePage “Óscar Corcho García” http://www.oeg-upm.net/ @base <http://www.oeg-upm.net/ontologies/people/ > @prefix vocab: <http://www.ontologies.org/ontologies/people#> :Asun vocab:hasColleague :Raul ; vocab:hasHomePage “http://www.fi.upm.es/”. :Oscar vocab:hasColleague :Asun ; vocab:hasName “Óscar Corcho García”. Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 21 Índice •  Introducción general •  RDF -  Componentes de RDF -  Serialización de RDF •  RDF Schema -  Componentes de RDFS -  Serialización de RDFS Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 22 11
  • 13. RDF Schema •  Amplía RDF •  Permite la descripción de clases de recursos y sus propiedades •  Añade restricciones a los modelos rdfs:member rdfs:seeAlso rdfs:isDefinedBy rdf:value rdfs:label rdfs:comment rdfs:Resource rdf:first rdf:subject rdf:predicate rdf:object rdf:type rdf:rest rdfs:subPropertyOf rdfs:subclassOf rdf:List rdfs:Container rdf:Statement rdf:Property rdfs:Class rdfs:Literal rdfs:domain rdfs:range rdf:Bag rdf:Seq rdf:Alt rdfs:ContainerMembershipProperty rdfs:Datatype rdf:XMLLiteral rdf:nil rdfs:member rdf:_1 rdf:_2 rdf:_3 Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 23 Descripción de clases RDF(S) rdfs:Class rdf:type Vocabulario person:Person rdfs:subClassOf person:Professor rdfs:subClassOf person:FullProfessor person:AssociateProfessor rdfs:subClassOf person:InterimAssociateProfessor person:hasColleague person:hasColleague Datos data:Oscar data:Asun data:Raul person:hasName person:hasHomePage “Óscar Corcho García” http://www.oeg-upm.net/ Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 24 12
  • 14. Descripción de individuos RDF(S) rdfs:Class rdf:type Vocabulario person:Person rdfs:subClassOf person:Professor rdfs:subClassOf person:FullProfessor person:AssociateProfessor rdfs:subClassOf person:InterimAssociateProfessor rdf:type rdf:type rdf:type person:hasColleague person:hasColleague Datos data:Oscar data:Asun data:Raul person:hasName person:hasHomePage “Óscar Corcho García” http://www.oeg-upm.net/ Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 25 Descripción de propiedades RDF(S) rdf:Property rdfs:Class rdf:type rdf:type Vocabulario rdfs:range rdfs:domain rdfs:Literal person:hasName person:Person rdfs:domain rdfs:subClassOf rdfs:range person:hasColleague person:Professor rdfs:subClassOf rdfs:domain person:hasHomePage person:FullProfessor person:AssociateProfessor rdfs:subClassOf person:InterimAssociateProfessor rdf:type rdf:type rdf:type person:hasColleague person:hasColleague Datos data:Oscar data:Asun data:Raul person:hasName person:hasHomePage “Óscar Corcho García” http://www.oeg-upm.net/ Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 26 13
  • 15. Anotación de recursos rdfs:label “Raúl García” rdfs:label “Raúl” rdfs:comment data:Raul “Resource for Raúl García Castro” rdfs:seeAlso http://delicias.dia.fi.upm.es/~rgarcia/ rdfs:isDefinedBy http://delicias.dia.fi.upm.es/~rgarcia/foaf.rdf Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 27 Resumen del vocabulario RDFS Clases Propiedades Individuos Classification rdfs:Resource rdfs:subClassOf rdfs:Class Properties rdfs:domain rdfs:range rdfs:subPropertyOf Datatypes rdfs:Literal rdfs:Datatype Containers rdfs:Container rdfs:member rdfs:ContainerMembershipProperty Annotation rdfs:label rdfs:comment rdfs:seeAlso rdfs:isDefinedBy Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 28 14
  • 16. Serialización en RDF/XML (1/2) <?xml version="1.0"?> <!DOCTYPE rdf:RDF [ <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" > <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" > <!ENTITY person "http://www.oeg-upm.net/ontologies/person#" > ]> <rdf:RDF xmlns="http://www.oeg-upm.net/ontologies/person#" xml:base="http://www.oeg-upm.net/ontologies/person" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:person="http://www.oeg-upm.net/ontologies/person#"> <rdfs:Property rdf:about="&person;hasColleague"> <rdfs:range rdf:resource="#Person"/> <rdfs:domain rdf:resource="#Person"/> </rdfs:Property> <rdfs:Property rdf:about="&person;hasHomePage"> <rdfs:domain rdf:resource="#FullProfessor"/> </rdfs:Property> <rdfs:Property rdf:about="&person;hasName"> <rdfs:domain rdf:resource="#Person"/> <rdfs:range rdf:resource="&rdfs;Literal"/> </rdfs:Property> ... Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 29 Serialización en RDF/XML (2/2) ... <rdfs:Class rdf:about="#AssociateProfessor"> <rdfs:subClassOf rdf:resource="#Professor"/> </rdfs:Class> <rdfs:Class rdf:about="#FullProfessor"> <rdfs:subClassOf rdf:resource="#Professor"/> </rdfs:Class> <rdfs:Class rdf:about="#InterimAssociateProfessor"> <rdfs:subClassOf rdf:resource="#AssociateProfessor"/> </rdfs:Class> <rdfs:Class rdf:about="#Person"/> <rdfs:Class rdf:about="#Professor"> <rdfs:subClassOf rdf:resource="#Person"/> </rdfs:Class> <FullProfessor rdf:about="#Asun"> <person:hasHomePage>http://www.fi.upm.es</person:hasHomePage> <person:hasColleague rdf:resource="#Raul"/> </FullProfessor> <AssociateProfessor rdf:about="#Oscar"> <person:hasName>Oscar Corcho García</person:hasName> <person:hasColleague rdf:resource="#Asun"/> </AssociateProfessor> <InterimAssociateProfessor rdf:about="#Raul"/> </rdf:RDF> Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 30 15
  • 17. Serialización en Turtle (1/2) @base <http://www.oeg-upm.net/ontologies/person> . @prefix : <http://www.oeg-upm.net/ontologies/person#> . @prefix person: <http://www.oeg-upm.net/ontologies/person#> . :hasColleague a rdfs:Property . rdfs:domain :Person . rdfs:range :Person ; :hasHomePage a rdfs:Property . rdfs:domain :FullProfessor . :hasName a rdfs:Property . rdfs:domain :Person ; rdfs:range rdfs:Literal . … a is equivalent to rdf:type Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 31 Serialización en Turtle (2/2) … :Person a rdfs:Class . :Professor a rdfs:Class ; rdfs:subClassOf :Person . :FullProfessor a rdfs:Class ; rdfs:subClassOf :Professor . :AssociateProfessor a rdfs:Class ; rdfs:subClassOf :Professor . :InterimAssociateProfessor a rdfs:Class ; rdfs:subClassOf :AssociateProfessor . :Asun a :FullProfessor ; :hasHomePage "http://www.fi.upm.es" ; :hasColleague :Raul . :Oscar a :AssociateProfessor ; :hasName "Oscar Corcho García" ; :hasColleague :Asun . :Raul a :InterimAssociateProfessor . a is equivalent to rdf:type Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 32 16
  • 18. Ejemplo de algunas RDF APIs •  Librerías RDF para distintos lenguajes: -  Java, Python, C, C++, C#, .Net, Javascript, Tcl/Tk, PHP, Lisp, Obj-C, Prolog, Perl, Ruby, Haskell -  Un listado disponible en http://esw.w3.org/topic/SemanticWebTools •  Multilenguaje: -  Redland RDF Application Framework (C, Perl, PHP, Python and Ruby): http://www.redland.opensource.ac.uk/ •  Java: -  Jena: http://jena.sourceforge.net/ -  Sesame: http://www.openrdf.org/ •  PHP: -  RAP - RDF API for PHP: http://www4.wiwiss.fu-berlin.de/bizer/rdfapi/ •  Python: -  RDFLib: http://rdflib.net/ -  Pyrple: http://infomesh.net/pyrple/ Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 33 Ejercicio • Objetivo •  Entender las características de RDF(S) para implementar vocabularios y datos, incluyendo sus limitaciones • Tareas •  A partir de una descripción de dominio, crear el grafo RDF(S) •  Primero incluir sólo el vocabulario del dominio •  Después incluir referencias a RDF y a los vocabularios RDFS Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 34 17
  • 19. Ejercicio 1. Descripción del dominio •  Cierta ubicación puede ser un lugar de interés. •  Los lugares de interés pueden ser lugares turísticos o establecimientos, pero no ambos a la vez. •  Los lugares turísticos pueden ser palacios, iglesias, capillas y catedrales. •  Los establecimientos pueden ser hoteles, hostales, o viviendas en alquiler. •  Un lugar está ubicado en una localidad, que puede ser una ciudad, un pueblo o una ciudad céntrica. •  Un lugar de interés tiene dirección postal, que incluye el nombre de la calle y el número. •  Las localidades tienen un cierto número de habitantes. •  Las localidades pertenecen a una cierta provincia. •  Covarrubias es un pueblo con 634 habitantes en la provincia de Burgos. •  El restaurante “El Galo” está ubicado en Covarrubias, en la calle Mayor, número 5. •  Una de las iglesias de Covarrubias está en la calle Santo Tomás. Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 35 Ejercicio 1. Ejemplo de vocabulario resultante Literal hasLatitude hasAltitude hasLongitude isLocatedAPoint PhysicalPoint TransportMedium Train hasStop hasDestination hasOrigin SpacialThing OnFoot Bus Car Bycicle Stage By Town nected Literal isSupportedBy Location through isCon City hasStreet isPlacedIn hasNumber hasPostalCode Locality hasBegining TransportInfrastructure inProvince hasEnd PostalAddress hasSurface hasInhabitantNumber Village hasStretch Literal Railway Route Path LocationOf hasAddress International Road Trach Stretch Establistioment hasDistance Literal Hostel GuestHouse hasDenomination Literal Touristic Hotel Location isProvidedBy Service Restauration Chapel providesService Service Palace BankService PostalService Church HealthService Cathedral SecurityService Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 36 18
  • 20. El Lenguaje de Consultas SPARQL Raúl García-Castro, Oscar Corcho Facultad de Informática, Universidad Politécnica de Madrid Campus de Montegancedo sn, 28660 Boadilla del Monte, Madrid http://www.oeg-upm.net ocorcho@fi.upm.es Curso en Red.es. 29 de Noviembre de 2012 Lenguajes de consulta sobre RDF(S) Aplicación Aplicación Consultas en SQL Consultas en SPARQL Base de RDF(S) datos OWL relacional •  Soportado por las APIs y triple stores más relevantes -  Jena, Sesame, RASQAL, etc. -  Virtuoso, 4store, Fuseki, etc. -  ... •  Hay algunas diferencias con respecto a lenguajes como SQL, tales como -  Posibilidad de combinar fuentes de datos heterogéneas -  Hipótesis de mundo abierto Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 38 19
  • 21. Inferencia en RDF. Ejemplos (I) •  Ejemplo de grafo RDF person:hasColleague person:hasColleague data:Oscar data:Asun data:Raul person:hasName person:hasHomePage “Óscar Corcho García” http://www.oeg-upm.net/ •  Consulta: “Dime las personas que tienen a Raúl como colega” person:hasColleague ? data:Raul -  Resultado: data:Asun Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 39 Inferencia en RDF. Ejemplos (II) •  Consulta: “Dime qué relaciones existen entre Oscar y Asun” ? data:Oscar data:Asun -  Resultado: person:hasColleague •  Consulta: “Dime la página Web de los colegas de Oscar” person:hasColleague data:Oscar person:hasHomePage ? -  Resultado: “http://www.oeg-upm.net/” Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 40 20
  • 22. SPARQL también es un protocolo •  SPARQL es un lenguaje de consulta… Encuentra nombres y websites de colaboradores de PlanetRDF: PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?name ?website FROM <http://planetrdf.com/bloggers.rdf> WHERE { ?person foaf:weblog ?website . ?person foaf:name ?name . ?website a foaf:Document } •  ... Y un Protocolo http://.../qps?query-lang=http://www.w3.org/TR/rdf-sparql-query/ &graph-id=http://planetrdf.com/bloggers.rdf&query=PREFIXfoaf: <http://xmlns.com/foaf/0.1/... •  Servicios ejecutando consultas SPARQL sobre un conjunto de grafos •  Un protocolo de transporte para invocar al servicio •  Descripción del servicio con tecnologías de servicios Web Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 42 Conclusiones SPARQL •  Servicios del protocolo SPARQL -  Permite a los usuarios (humanos u otros) hacer una consulta en una base de datos y conocimientos usando SPARQL -  Los resultados son devueltos normalmente en uno o más formatos procesables por máquinas •  Listado de puntos de acceso (endpoints) de SPARQL -  http://esw.w3.org/topic/SparqlEndpoints •  Acceso programático usando librerías: -  ARC, RAP, Jena, Sesame, Javascript SPARQL, PySPARQL, etc. •  Ejemplos: Proyecto Conclusión DBpedia http://dbpedia.org/sparql BBC Programmes and Music http://bbc.openlinksw.com/sparql/ data.gov http://semantic.data.gov/sparql data.gov.uk http://data.gov.uk/sparql Musicbrainz http://dbtune.org/musicbrainz/sparql Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 43 21
  • 23. Ejemplo: consultando DBpedia •  Gente nacida en Berlín antes de 1900 Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 44 Ejemplo: consultando DBpedia Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 45 22
  • 24. También consultas más “españolas” •  ¿Qué toreros han estado casados con cantantes de copla? Aquí PREFIX dcterms: <http://purl.org/dc/terms/> SELECT ?torero ?cantante WHERE{ ?torero rdf:type dbpedia-owl:BullFighter . ?torero dbpedia-owl:spouse ?cantante . ?cantante dcterms:subject <http://es.dbpedia.org/resource/ Categoría:Cantantes_de_coplas> } Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 46 Un consulta sencilla en SPARQL Data: @prefix dc: <http://purl.org/dc/elements/1.1/> . @prefix : <http://example.org/book/> . :book1 dc:title "SPARQL Tutorial" . Query: SELECT ?title WHERE { <http://example.org/book/book1> <http://purl.org/dc/elements/1.1/title> ?title . } Query result: title "SPARQL Tutorial" •  Un patrón de consulta se ajusta contra los datos en RDF •  En todo caso un patrón puede ajustarse para proporcionar una solución •  La secuencia de soluciones se puede filtrar •  Se aplica uno de los siguientes constructores: SELECT, CONSTRUCT, DESCRIBE, ASK Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 47 23
  • 25. Varios patrones de grafos: joins @prefix foaf: <http://xmlns.com/foaf/0.1/> . _:a foaf:name "Johnny Lee Outlaw" . _:a foaf:mbox <mailto:jlow@example.com> . _:b foaf:name "Peter Goodguy" . _:b foaf:mbox <mailto:peter@example.org> . _:c foaf:mbox <mailto:carol@example.org> . PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?name ?mbox WHERE { ?x foaf:name ?name . ?x foaf:mbox ?mbox } name mbox "Johnny Lee Outlaw" <mailto:jlow@example.com> "Peter Goodguy" <mailto:peter@example.org> Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 48 Literales RDF @prefix dt: <http://example.org/datatype#> . @prefix ns: <http://example.org/ns#> . @prefix : <http://example.org/ns#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . :x ns:p "cat"@en . :y ns:p "42"^^xsd:integer . :z ns:p "abc"^^dt:specialDatatype . SELECT ?v WHERE { ?v ?p "cat" } v SELECT ?v WHERE { ?v ?p "cat"@en } v <http://example.org/ns#x> SELECT ?v WHERE { ?v ?p 42 } v <http://example.org/ns#y> SELECT ?v WHERE { ?v ?p "abc"^^<http://example.org/datatype#specialDatatype> } v <http://example.org/ns#z> Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 49 24
  • 26. Nodos en blanco @prefix foaf: <http://xmlns.com/foaf/0.1/> . _:a foaf:name "Alice" . _:b foaf:name "Bob" . PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?x ?name WHERE { ?x foaf:name ?name } x name x name _:c "Alice" = _:r "Alice" _:d "Bob" _:s "Bob" Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 50 Grupos de patrones PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?name ?mbox WHERE { { ?x foaf:name ?name . } { ?x foaf:mbox ?mbox . } } SELECT ?x WHERE {} PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?name ?mbox WHERE { { ?x foaf:name ?name . } { ?x foaf:mbox ?mbox . FILTER regex(?name, "Smith")} } Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 51 25
  • 27. Patrones opcionales (left-outer-join) @prefix foaf: <http://xmlns.com/foaf/0.1/> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . _:a rdf:type foaf:Person . _:a foaf:name "Alice" . _:a foaf:mbox <mailto:alice@example.com> . _:a foaf:mbox <mailto:alice@work.example> . _:b rdf:type foaf:Person . _:b foaf:name "Bob" . PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?name ?mbox WHERE { ?x foaf:name ?name . OPTIONAL { ?x foaf:mbox ?mbox } } name mbox "Alice" <mailto:alice@example.com> "Alice" <mailto:alice@work.example> “Bob" Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 52 Patrones opcionales múltiples @prefix foaf: <http://xmlns.com/foaf/0.1/> . _:a foaf:name "Alice" . _:a foaf:homepage <http://work.example.org/alice/> . _:b foaf:name "Bob" . _:b foaf:mbox <mailto:bob@work.example> . PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?name ?mbox ?hpage WHERE { ?x foaf:name ?name . OPTIONAL { ?x foaf:mbox ?mbox } . OPTIONAL { ?x foaf:homepage ?hpage } } name mbox hpage "Alice" <http://work.example.org/alice/> “Bob" <mailto:bob@work.example> Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 53 26
  • 28. Patrones de alternativas @prefix dc10: <http://purl.org/dc/elements/1.0/> . @prefix dc11: <http://purl.org/dc/elements/1.1/> . _:a dc10:title "SPARQL Query Language Tutorial" . _:a dc10:creator "Alice" . _:b dc11:title "SPARQL Protocol Tutorial" . _:b dc11:creator "Bob" . _:c dc10:title "SPARQL" . _:c dc11:title "SPARQL (updated)" . PREFIX dc10: <http://purl.org/dc/elements/1.0/> title PREFIX dc11: <http://purl.org/dc/elements/1.1/> "SPARQL Protocol Tutorial" SELECT ?title "SPARQL" WHERE { { ?book dc10:title ?title } UNION { ?book dc11:title ?title } } "SPARQL (updated)" "SPARQL Query Language Tutorial" SELECT ?x ?y x y WHERE { { ?book dc10:title ?x } UNION "SPARQL (updated)" { ?book dc11:title ?y } } "SPARQL Protocol Tutorial" "SPARQL" "SPARQL Query Language Tutorial" SELECT ?title ?author WHERE author title { { ?book dc10:title ?title . ?book dc10:creator ?author } "Alice" "SPARQL Protocol Tutorial" UNION { ?book dc11:title ?title . ?book dc11:creator ?author }} “Bob” "SPARQL Query Language Tutorial" Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 54 Grafos con nombre # Named graph: http://example.org/foaf/aliceFoaf @prefix foaf:<http://.../foaf/0.1/> . @prefix rdf:<http://.../1999/02/22-rdf-syntax-ns#> . @prefix rdfs:<http://.../2000/01/rdf-schema#> . _:a foaf:name "Alice" . _:a foaf:mbox <mailto:alice@work.example> . _:a foaf:knows _:b . _:b foaf:name "Bob" . _:b foaf:mbox <mailto:bob@work.example> . _:b foaf:nick "Bobby" . _:b rdfs:seeAlso <http://example.org/foaf/bobFoaf> . <http://example.org/foaf/bobFoaf> rdf:type foaf:PersonalProfileDocument . # Named graph: http://example.org/foaf/bobFoaf @prefix foaf:<http://.../foaf/0.1/> . @prefix rdf:<http://.../1999/02/22-rdf-syntax-ns#> . @prefix rdfs:<http://.../2000/01/rdf-schema#> . _:z foaf:mbox <mailto:bob@work.example> . _:z rdfs:seeAlso <http://example.org/foaf/bobFoaf> . _:z foaf:nick "Robert" . <http://example.org/foaf/bobFoaf> rdf:type foaf:PersonalProfileDocument . Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 55 27
  • 29. Grafos con nombre PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?src ?bobNick FROM NAMED <http://example.org/foaf/aliceFoaf> src bobNick FROM NAMED <http://example.org/foaf/bobFoaf> <http://example.org/foaf/aliceFoaf> "Bobby" WHERE { <http://example.org/foaf/bobFoaf> "Robert" GRAPH ?src { ?x foaf:mbox <mailto:bob@work.example> . ?x foaf:nick ?bobNick } } PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX data: <http://example.org/foaf/> SELECT ?nick FROM NAMED <http://example.org/foaf/aliceFoaf> nick FROM NAMED <http://example.org/foaf/bobFoaf> WHERE "Robert" { GRAPH data:bobFoaf { ?x foaf:mbox <mailto:bob@work.example> . ?x foaf:nick ?nick } } Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 56 Filtros y restricciones @prefix dc: <http://purl.org/dc/elements/1.1/> . @prefix : <http://example.org/book/> . @prefix ns: <http://example.org/ns#> . :book1 dc:title "SPARQL Tutorial" . :book1 ns:price 42 . :book2 dc:title "The Semantic Web" . :book2 ns:price 23 . PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT ?title title WHERE { ?x dc:title ?title FILTER regex(?title, "^SPARQL") "SPARQL Tutorial" } PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT ?title title WHERE { ?x dc:title ?title FILTER regex(?title, "web", "i" ) "The Semantic Web" } PREFIX dc: <http://purl.org/dc/elements/1.1/> PREFIX ns: <http://example.org/ns#> title price SELECT ?title ?price WHERE { ?x ns:price ?price . "The Semantic Web" 23 FILTER (?price < 30.5) ?x dc:title ?title . } Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 57 28
  • 30. Tests de valores •  Basado en funciones y operadores XQuery 1.0 y XPath 2.0 •  XSD boolean, string, integer, decimal, float, double, dateTime •  Anotaciones <, >, =, <=, >= y != para comparación de valores Aplicable a cualquier tipo •  BOUND, isURI, isBLANK, isLITERAL •  REGEX, LANG, DATATYPE, STR () •  Cualquier función extendida Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 58 Modificadores •  Modificador de orden: pone las SELECT ?name soluciones en un cierto orden WHERE { ?x foaf:name ?name ; :empId ?emp } ORDER BY ?name DESC(?emp) •  Modificador de proyección: SELECT ?name selecciona ciertas variables WHERE { ?x foaf:name ?name } •  Modificador DISTINCT: asegura SELECT DISTINCT ?name que las soluciones son únicas WHERE { ?x foaf:name ?name } •  Modificador reductor: permite la SELECT REDUCED ?name WHERE { ?x foaf:name ?name } eliminación de algunas soluciones que no son únicas •  Modificador de límite: restringe el SELECT ?name WHERE { ?x foaf:name ?name } número de soluciones LIMIT 20 SELECT ?name WHERE { ?x foaf:name ?name } •  Modificador Offset: controla dónde ORDER BY ?name comienzan las soluciones en la LIMIT 5 secuencia global de soluciones OFFSET 10 Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 59 29
  • 31. Ejercicio 2 • Objetivo •  Comprender cómo trabajar con consultas SPARQL • Tareas •  Crear un conjunto de consultas SPARQL sobre un vocabulario de ejemplo •  http://sandbox.linkeddata.es/sparql •  En el grafo: http://sandbox.linkeddata.es/Grado_20122013 Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 64 Ejemplo de vocabulario SpatialThing hasInhabitantNumber rdfs:Literal isPlacedIn Location Locality rdfs:Literal hasStreet hasNumber inProvince hasAddress PostalAddress LocationOfInterest Village Town City TouristicLocation Establishment Palace Church Chapel Cathedral Hotel Hostel GuestHouse Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 65 30
  • 32. Queries en este modelo 1.  Obtener todas las clases 2.  Obtener las subclases de la clase Establishment 3.  Obtener las instancias de la clase City 4.  Obtener el número de habitantes de Santiago de Compostela 5.  Obtener el número de habitantes de Santiago de Compostela y de Arzua 6.  Obtener distintos lugares con número de habitantes, ordenar los resultados por el nombre del lugar (ascendente) 7.  Obtener todas las instancias de Locality con su número de habitantes (si existe) 8.  Obtener todos los lugares con más de 200.000 habitantes 9.  Obtener los datos postales de Pazo_Breogan (calle, número, localidad, provincia) 10.  Obtener las subclases de la clase Location 11.  Obtener las instancias de la clase Locality 12.  Describir el recurso con rdfs:label "Madrid” 13.  Construir el grafo RDF(S) que relaciona directamente todos los lugares turísticos con sus respectivas provincias, usando una nueva propiedad llamada ”isIn” 14.  Preguntar si hay alguna instancia de Town Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 66 Consultas en el modelo 1)  Obtener todas las clases PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT ?x WHERE { ?x a rdfs:Class. } 2) Obtener las subclases de la clase Establishment PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX pr: <http://GP-onto.fi.upm.es/exercise2#> SELECT ?x WHERE { ?x rdfs:subClassOf pr:Establishment. } 3) Obtener las instancias de la clase City PREFIX pr: <http://GP-onto.fi.upm.es/exercise2#> SELECT ?x WHERE { ?x a pr:City. } Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 67 31
  • 33. Consultas en las instancias 4) Obtener el número de habitantes de Santiago de Compostela PREFIX pr: <http://GP-onto.fi.upm.es/exercise2#> SELECT ?x WHERE { pr:Santiago_de_Compostela pr:hasInhabitantNumber ?x. } 5) Obtener el número de habitantes de Santiago de Compostela y de Arzua PREFIX pr: <http://GP-onto.fi.upm.es/exercise2#> SELECT ?x WHERE { {pr:Santiago_de_Compostela pr:hasInhabitantNumber ?x.} UNION {pr:Arzua pr:hasInhabitantNumber ?x.} } 6) Obtener diferentes lugares con el número de habitantes, ordenando los resultados por el nombre del lugar (ascendente) PREFIX pr: <http://GP-onto.fi.upm.es/exercise2#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT ?x ?y WHERE { $loc pr:hasInhabitantNumber ?y; rdfs:label ?x.} ORDER BY ASC(?x) Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 68 Consultas en las instancias II 7) Obtener todas las instancias de Locality con su número de habitantes (si existe) PREFIX pr: <http://GP-onto.fi.upm.es/exercise2#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT ?x ?y WHERE { $loc a pr:Locality; rdfs:label ?x. OPTIONAL {$loc pr:hasInhabitantNumber ?y.} } 8) Obtener todos los lugarescon más de 200.000 habitantes PREFIX pr: <http://GP-onto.fi.upm.es/exercise2#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT ?x ?y WHERE { $loc pr:hasInhabitantNumber ?y; rdfs:label ?x. FILTER(?y > 200000) } 9) Obtener los datos postales de Pazo_Breogan (calle, número, localidad, provincia) PREFIX pr: <http://GP-onto.fi.upm.es/exercise2#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT ?street ?number ?locality ?province WHERE { pr:Pazo_Breogan pr:isPlacedIn $pob; pr:hasAddress $dir. $pob rdfs:label ?locality; pr:inProvince ?province. $dir pr:hasStreet ?street; pr:hasNumber ?number.} Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 69 32
  • 34. Consultas con inferencia 10) Obtener las subclases de la clase Location PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX pr: <http://GP-onto.fi.upm.es/exercise2#> SELECT ?x WHERE { ?x rdfs:subClassOf pr:Location. } 11) Obtener las instancias de la clase Locality PREFIX pr: <http://GP-onto.fi.upm.es/exercise2#> SELECT ?x WHERE { ?x a pr:Locality. } Query especial (SELECT *) 12) Obtener los valores de todas las variables de la query PREFIX pr: <http://GP-onto.fi.upm.es/exercise2#> SELECT * WHERE { ?x pr:hasInhabitantNumber ?y. } Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 70 70 Distintos tipos de consulta 13) Describe el recurso con rdfs:label "Madrid" PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> DESCRIBE ?x WHERE { ?x rdfs:label "Madrid". } 14) Construye el grafo RDF(S) que relaciona directamente todos los lugares turísticos con sus respectivas provincias, usando una nueva propiedad llamada ”isIn” PREFIX pr: <http://GP-onto.fi.upm.es/exercise2#> CONSTRUCT {?x pr:isIn ?y} WHERE { ?x a pr:TouristicLocation; pr:isPlacedIn $pob. $pob pr:inProvince ?y. } 15) Preguntar si hay alguna instancia de Town PREFIX pr: <http://GP-onto.fi.upm.es/exercise2#> ASK WHERE {?a a pr:Town} 16) Preguntar si hay alguna instancia de Chapel PREFIX pr: <http://GP-onto.fi.upm.es/exercise2#> ASK WHERE {?a a pr:Chapel} Tecnologías Semánticas en la Web de Datos. Red.es. 29 de noviembre de 2012 71 33