Wikidata:service d'aide SPARQL/assistant de requête
.
L'assistant de requête (Query Helper) vous permet de créer ou de modifier une requête existante sans connaître le langage SPARQL.
En travaillant avec l'outil, il modifiera la requête SPARQL en fonction de l'entrée que vous fournirez dans l'interface visuelle et inversement.
S'il n'est pas déjà affiché à gauche de l'éditeur de requêtes (dernière utilisation), ouvrez l'assistant de requêtes en cliquant sur l'icône correspondante de la barre d'outils latérale.
Quelles sont les limites ?
Cet outil est expérimental et il peut casser votre requête SPARQL.
- la sérialisation Json ne doit pas contenir de retour à la ligne.
- les modèles peuvent être placés n'importe où : par exemple au début ou à la fin.
- le contenu du modèle sera ajouté à l'URL dela requête. Ce qui peut engendrer des problèmes.
Comment créer une requête ?
Cette section va montrer comment vous pouvez créer une requête en partant de rien avec l'assistant de requête.
Dans cet exemple, nous allons interroger toutes les instances de zoo
qui hébergent un ours polaire et un lion.
Vous pouvez utiliser les identifiants Pxxx ou Qxxx directement dans les champs d'entrée de l'interface pour accéder correctement aux éléments.
Ajouter les filtres 'instance de zoo', 'espèces conservées ours polaire' et 'espèces conservées lion'
- cliquer sur 'Filtrer'
- cliquer sur la liste déroulante et entrer 'zoo'
- choisir l'élément 'zoo (Q43501)' dans cette liste
- cliquer sur 'Filtrer' et sélectionner 'polar bear (Q33609)'
- cliquer sur 'Filtrer' et sélectionner 'lion (Q140)'
Ajouter les colonnes 'site officiel', 'image', 'coordonnées géographiques', 'création' et 'espèces conservées'
- Cliquer sur 'Afficher' et sélectionner 'official website (P856)'
- Cliquer sur 'Afficher' et sélectionner 'image (P18)'
- Cliquer sur 'Afficher' et sélectionner 'coordinate location (P625)'
- Cliquer sur 'Afficher' et sélectionner 'inception (P571)'
- Cliquer sur 'Afficher' et sélectionner 'species kept (P1990)'
Vérifiez votre source |
---|
SELECT ?zoo ?official_website ?image ?coordinate_location ?inception ?species_kept ?species_keptLabel WHERE {
SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
?zoo wdt:P31 wd:Q43501;
wdt:P1990 wd:Q33609, wd:Q140.
OPTIONAL { ?zoo wdt:P856 ?official_website. }
OPTIONAL { ?zoo wdt:P18 ?image. }
OPTIONAL { ?zoo wdt:P625 ?coordinate_location. }
OPTIONAL { ?zoo wdt:P571 ?inception. }
OPTIONAL { ?zoo wdt:P1990 ?species_kept. }
}
LIMIT 200
|
Comment modifier une requête ?
Cette section vous indiquera comment modifier une requête avec l'assistant de requête
Changer 'cat' en 'zoo'
- Sélectioner parmi les exemples la Requête concernant les chats
- Cliquer sur 'cat' pour modifier la valeur
- Cliquer sur la liste déroulante et entrer 'zoo'
- Sélectioner l'élément 'zoo (Q43501)' dans la boîte.
La requête va maintenant chercher les éléments qui sont des 'instances de zoo' au lieu d'être des 'instance de chat'
Ajouter un filtre sur 'pays Allemagne'
- Cliquer sur le bouton 'Filtrer'
- Entrer 'Germany'
- Selectionner 'Germany (Q183)'
- Cliquer sur 'instance of' de 'instance of Germany' pour modifier la valeur
- Cliquer sur la liste déroulane et choisir 'Country'
- Sélectionner le pays (P17)
La requête ne ramènera dorénavant que les éléments qui sont des zoo allemands ('instance of zoo' et 'country Germany')
Ajouter les colonnes 'inception' et 'image'
- Cliquer sur le bouton 'Show' pour afficher
- Entrer 'inception'
- Selectionner l'élément 'inception (P571)'
- Cliquer sur le bouton 'Show'
- Entrer 'image'
- Selectionner 'image (P18)'
Le résultat de la requête présente maintenant deux colonnes supplémentaires 'image' et 'inception' et peut être affiché en tant que chronologie ou grille d'images.
Ajouter un titre
Dans l'affichage du code (côté droit), ajoutez #title: Votre titre
au début de la requête avec le titre que vous souhaitez.
Modèles de requête
Utiliser un modèle de requête
Les requêtes pour lesquelles un modèle Query a été défini vont afficher dans le Query Helper la représentation textuelle de leur définition.Query Helper vous permet de créer et de modifier des requêtes existantes sans connaître SPARQL.
Si vous utilisez l'outil, il adaptera le code de la requête SPARQL en fonction des valeurs fournies dans l'interface visuelle et réciproquement.
Elle est affichée dans la partie gauche de l'éditeur de requêtes.
Les éléments bleus de cette représentation textuelle peuvent être modifiés en cliquant dessus.
Des suggestions définies s'affichent ou un texte peut être saisi pour rechercher un substitut.
La sélection de l'un des éléments de la liste remplacera l'élément dans la représentation textuelle et la requête SPARQL.
Vous pourrez voir dans la liste d'exemples les requêtes qui ont un modèle Query défini, en recherchant la chaîne #TEMPLATE sur la page.
Créer un modèle de requête
Vous pouvez créer des modèles de Query; il suffit de les définir. Voici un exemple de requête avec la définition du modèle.
La définition est donnée en JSON et insérée en tant que commentaire SPARQL dans la requête, de la manière suivante :
#TEMPLATE=[JSON_DEFINITION]
Exemple de définition JSON :
{
"template": "Largest ?c with ?sex head of government",
"variables": {
"?sex": {},
"?c": {
"query": "SELECT DISTINCT ?id WHERE { ?c wdt:P31 ?id. ?c p:P6 ?mayor. }"
}
}
}
Clé | Valeur | Exemple | Description | Requête SPARQL |
---|---|---|---|---|
modèle | Ce texte sera affiché à l'utilisateur en tant que description de la requête.
Dans le texte, vous pouvez définir des variables qui seront remplacées par des valeurs réelles. |
Le chef de gouvernement le plus grand ?c avec son ?sexe | Ce qui définira deux variables dans le texte :
?c et ?sex Les valeurs de ces variables doivent être définies dans la requête SPARQL. |
BIND(wd:Q6581072 AS ?sex)
BIND(wd:Q515 AS ?c)
|
variables | Dans cette section, vous devez définir les variables du modèle. Vous pouvez définir optionnellement une requête SPARQL qui est utilisée pour suggérer des valeurs pour cette variable. | "?sex": {},
"?c": {
"query": "[SPARQL]"
}
|
Cela va définir deux variables :
?c et ?sex Pour la variable ?c, il existe une requête SPARQL qui suggère les éléments. |
SELECT DISTINCT ?id WHERE
{ ?c wdt:P31 ?id.?c p:P6 ?mayor. }
?count est fourni, le résultat sera trié par desc(?count) :SELECT ?id ?label ?description WITH {
[QUERY]
} AS %inner
WHERE {
INCLUDE %inner
?id rdfs:label ?label.
?id schema:description ?description.
FILTER((LANG(?label)) = "en")
FILTER((LANG(?description)) = "en") }
ORDER BY DESC(?count)
LIMIT 20
|