Avant ce TP/TD, vous devez avoir étudié les documents et interfaces pointés par
la "section sur SPARQL" du support de cours,
typiquement "DBpedia Sparql".
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 recherche dans DBpedia
"les employeurs des créateurs de langages qui ont influencé les langages créés par James Gosling" :
SELECT * WHERE
{ ?langByGosling dbo:designer dbr:James_Gosling ; # ?langByGosling: Java
dbo:influencedBy ?influencingLanguage . # → languages that have influenced Java
# dbo:influenced ?influencedLanguage # → languages influenced by Java
?influencingLanguage dbo:designer ?designer .
?designer dbo:employer ?employer .
#remove or comment out the above line to have more results
}
Astuces pour construire votre requête
il semble qu'une aide soit bienvenue) :
une contenant votre requête (et ses résultats) dans l'interface
"DBpedia Sparql" (ou autre), et
une pour faire des recherches pour construire progressivement votre requête (e.g., pour
connaitre les identifiants à utiliser).
que vous voulez "requêter" ; pour cela, vous pouvez par exemple
About: Football player ou
la page DBpedia About: Cristiano Ronaldo
SELECT * WHERE { ?t rdfs:label "Footballer"@en } ou
SELECT * WHERE { ?x rdfs:label "Ronaldo"@en }
que vous voulez "requêter" ; pour cela, vous pouvez par exemple
<http://dbpedia.org/resource/Football_player>
(alias dbr:Football_player sur DBpedia Sparql) et
<http://dbpedia.org/resource/Cristiano_Ronaldo>
(alias dbr:Cristiano_Ronaldo sur DBpedia Sparql).
Les identifiants ne sont PAS des "liens". Ce sont – ou, ils sont basés sur – des
URIs:
URLs (adresses Web) ou bien
URNs.
SELECT * WHERE { ?x rdfs:label "Ronaldo"@en; owl:sameAs ?id}
SELECT * WHERE { ?t rdfs:label "Footballer"@en; owl:sameAs ?id }
Si cette dernière requête ne renvoie rien, vérifiez la liste des relations depuis le type via:
SELECT * WHERE { ?t rdfs:label "Footballer"@en; ?relation ?relationDestination }
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
– ou, plus clairement, avec la page
http://dbpedia.org/resource/Cristiano_Ronaldo –
que, dans Wikipedia, Ronaldo n'a pas pour rdf:type dbr:Footballer
ni dbr:Football_player, ni dbr:Soccer_player,
mais il a pour gold:hypernym dbr:Footballer.
(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.