TP/TD  "HTML+JS+SPARQL permettant de
rechercher des connaissances dans DBpedia


Avant ce TP/TD, vous devez avoir étudié les documents et interfaces pointés par
la "section sur SPARQL" du support de cours.

Montrez moi chacun au moins 2 requêtes
(différentes pour chacun d'entre vous) ayant chacune
  - au moins trois relations de types différents
    (les relations lexicales, e.g. rdfs:label,
     ou de typage, e.g. rdf:type, ne comptent pas) , et
  - au moins un objet qui est à la fois source d'une relation et destination d'une autre.
→ points de votre "note de CC (Wooclap, DM, ...)".

Exemple de requête recherchant dans DBpedia "les employeurs des créateurs de langages qui ont influencé les langages créés
par James Gosling"
. Vu que DBpedia sait James Gosling a créé le langage Java mais ne sait pas s'il a créé d'autres langages,
cette requête équivaut à rechercher "les employeurs des créateurs de langages qui ont influencé (la conception de) Java".

Astuces pour construire votre requête (normalement vous devriez les trouver seuls mais il semble qu'une aide soit bienvenue) :

  1. Recherchez dans DbPedia un des noms des objets – ou du type des objets –
    que vous voulez "requêter" ; pour cela, vous pouvez par exemple
  2. Recherchez dans DbPedia l'identifiant de l'objet – ou du type des objets –
    que vous voulez "requêter" ; pour cela, vous pouvez par exemple
  3. Ajoutez une relation à votre requête initiale ci-dessus.
    Pour cela, regardez les types de relations qui existent depuis l'objet – ou le type des objets – que vous voulez "requêter".
    Pour cela, vous pouvez par exemple utiliser une requête comme
    SELECT * WHERE { <http://dbpedia.org/resource/Football_player> ?relation ?relationDestination }
    SELECT * WHERE { <http://dbpedia.org/resource/Cristiano_Ronaldo> ?relation ?relationDestination }
    Vous verrez avec cette dernière requête que Ronaldo n'a pas pour type :Football_player mais
    :Soccer_player. En fait, DbPedia n'a apparemment pas d'instance pour :Football_player,
    ce qui explique pourquoi aucune requête sur des :Football_player n'a de réponse.
  4. Répéter une ou plusieurs des étapes précédentes pour spécialiser la destination de vos relations
    (e.g., en utilisant un identifiant au lieu d'une variable ou bien en ajoutant une relation à cette destination)
    jusqu'à obtenir la requête désirée.