INaLCO - M2 Plurital

Web sémantique : l'exemple de DBpédia

Jean-François Perrot


  1. Notion de point d'entrée (Endpoint)

  2. L'exemple remarquable de DBpédia
    1. DBpédia, extrait en RDF de Wikipédia
    2. SPARQL endpoint

  3. La DBpédia française et le projet SemanticPedia
    1. La langue de DBpedia
    2. Mise en œuvre
    3. SemanticPedia


Attention ! Le monde des données en ligne (Linked Data, Web des données, et autres buzzwords) est en évolution rapide.
Tel site qui fonctionnait hier refuse son service aujourd'hui.
Ne soyez donc pas surpris si les liens donnés dans cette page vous apportent des déboires...

Notion de point d'entrée (Endpoint)

  1. Les grosses bases de données en RDF (RDF Datasets) posent des problèmes d'efficacité.

  2. Elles ne sont pas accessibles aux requêtes SPARQL comme de simples fichiers XML.

  3. On ne peut s'adresser à elles qu'en passant par des sites Web spécialisés appelés SPARQL Endpoints.
    Ces sites proposent une interface où écrire sa requête SPARQL et un choix de formats pour récupérer le résultats.

  4. Exemple de point d'entrée générique :   http://sparql.org/sparql.html

    Une démo utilisant l'URL-source http://www.sparql.org/books/ est accessible à l'adresse
    http://www.sparql.org/query.html ]

    Exemple de requête :


    PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
    PREFIX foaf: <http://xmlns.com/foaf/0.1/>
    PREFIX dc: <http://purl.org/dc/elements/1.1/>
    SELECT ?nom ?image ?description
    FROM <http://pagesperso-systeme.lip6.fr/Jean-Francois.Perrot/inalco/XML/RDF/ExWiki.rdf>
    WHERE {
        ?personne rdf:type foaf:Person .
        ?personne foaf:name ?nom .
        ?image rdf:type foaf:Image .
        ?personne foaf:img ?image .
        ?image dc:description ?description
    }



    Autre exemple :

    #repris de "http://www.cambridgesemantics.com/2008/09/sparql-by-example/"
    PREFIX foaf:  <http://xmlns.com/foaf/0.1/>
    SELECT ?name
    FROM <http://dig.csail.mit.edu/2008/webdav/timbl/foaf.rdf>
    WHERE {
        ?person foaf:name ?name .
    }



L'exemple remarquable de DBpédia

  1. DBpédia, extrait en RDF de Wikipédia

  2. SPARQL endpoint

    On peut interroger DBpédia en SPARQL via le site http://dbpedia.org/sparql 

    Exemples de requêtes :
    1. select ?bp where {
      <http://dbpedia.org/resource/Mary_Shelley> <http://dbpedia.org/ontology/birthPlace> ?bp
      }

    2. select ?bd ?dd where {
       {<http://dbpedia.org/resource/Mary_Shelley> <http://dbpedia.org/ontology/birthDate> ?bd }
       UNION
       {<http://dbpedia.org/resource/Mary_Shelley> <http://dbpedia.org/ontology/deathDate> ?dd }
      }


    3. select ?bp ?dp where {
       {<http://dbpedia.org/resource/Mary_Shelley> <http://dbpedia.org/ontology/birthPlace> ?bp }
       UNION
       {<http://dbpedia.org/resource/Mary_Shelley> <http://dbpedia.org/ontology/deathPlace> ?dp }
      }


    4. select ?bc ?dc where {
       { ?bp <http://dbpedia.org/ontology/country> ?bc.
         <http://dbpedia.org/resource/Mary_Shelley> <http://dbpedia.org/ontology/birthPlace> ?bp }
       UNION
       { ?dp <http://dbpedia.org/ontology/country> ?dc.
         <http://dbpedia.org/resource/Mary_Shelley> <http://dbpedia.org/ontology/deathPlace> ?dp }
      }


      Équivalent plus lisible :

      PREFIX dbpedia: <http://dbpedia.org/resource/>
      PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
      select ?bc ?dc where {
       { ?bp dbpedia-owl:country ?bc.
         dbpedia:Mary_Shelley dbpedia-owl:birthPlace ?bp }
       UNION
       { ?dp dbpedia-owl:country ?dc.
         dbpedia:Mary_Shelley dbpedia-owl:deathPlace ?dp }
      }


    5. Vous pouvez aussi exploiter le raisonnement ontologique (mise en œuvre de la généralisation / spécialisation des classes)

      en demandant avec quelles entités de type (classe) http://dbpedia.org/ontology/Place
      Mary Shelley entretien une relation de type http://www.w3.org/2002/07/owl#ObjectProperty


      PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
      select ?bp
      where {
          ?rel rdf:type <http://www.w3.org/2002/07/owl#ObjectProperty> .
          <http://dbpedia.org/resource/Mary_Shelley> ?rel ?bp .
          ?bp rdf:type <http://dbpedia.org/ontology/Place>
      }



      la réponse étant le lieu de sa naissance http://dbpedia.org/resource/Bournemouth
      et celui de sa mort http://dbpedia.org/resource/London
  3. La DBpédia française et le projet SemanticPedia

    1. La langue de DBpedia

      DBpedia est fondée sur Wikipedia anglophone.
      On n'y trouve pas Yvette Horner !
      Essayez http://dbpedia.org/page/Yvette_Horner

      D'où diverses entreprises de DBpedia allophones, comme  fr.dbpedia.org !
      Essayez http://fr.dbpedia.org/page/Yvette_Horner
      ou http://de.dbpedia.org/page/Yvette_Horner
    2. Mise en œuvre

      SPARQL endpoint : http://fr.dbpedia.org/sparql
      et n'oubliez pas de mentionner http://fr.dbpedia.org comme Default Data Set Name !

      Moyennant quoi vous pourrez demander

      PREFIX dbpedia: <http://fr.dbpedia.org/resource/>
      PREFIX prop-fr: <http://fr.dbpedia.org/property/>
      select ?bp ?bd where {
        { dbpedia:Yvette_Horner prop-fr:lieuDeNaissance ?bp }
        UNION
        { dbpedia:Yvette_Horner prop-fr:dateDeNaissance ?bd }
      }




    3. SemanticPedia

      La DBpédia française est soutenue par le ministère de la Culture et de la Communication dans le cadre du projet SemanticPedia,
      qui réunit l'INRIA et lla fondation Wikimedia France.