Aide:Données sémantiques
Cette page d'aide a été rédigée de manière à contenir le plus petit nombre de liens bleus possible, afin de faciliter sa lecture.
Les données sémantiques sont des informations définies sur une page et pouvant être demandées depuis n'importe quelle autre page, permettant ainsi de ne pas avoir à recopier et, au besoin, modifier une de ces informations sur ces autres pages. Ces mêmes données peuvent aussi être utilisées pour créer automatiquement des tableaux, ou tout simplement chercher une information.
Exemples d'utilisation
Ces données sont par exemple utilisées pour la totalité des tableaux d'apprentissage des Pokémon. Ainsi, les informations sur chaque capacité (type, catégorie, puissance, précision, PP) sont affichées sans pour autant être définies dans le code de ces pages.
Définir une donnée
Première méthode
[[Attribut::Valeur]]
Par exemple, pour définir la valeur « Diamant & Perle » pour l'attribut « Extension » : [[Extension::Diamant & Perle]]
.
À noter que, en utilisant cette méthode, la valeur apparaîtra sur la page. Ainsi, pour l'exemple, il y aura marqué « Diamant & Perle ». Une solution pour empêcher cela est de taper un code de la forme [[Attribut::Valeur| ]]
, soit, toujours pour le même exemple : [[Extension::Diamant & Perle| ]]
.
Deuxième méthode
{{#set:Attribut=Valeur}}
Reprenons l'exemple précédemment utilisé. Ici, cela donnera donc {{#set:Extension=Diamant & Perle}}
.
Récupérer une donnée
Avec #show
La fonction #show sert à faire une recherche concernant une seule page :
{{#show: Page | ?Attribut }}
.
Imaginons maintenant qu'on souhaite avoir l'extension de la carte Tortipouss (Diamant & Perle 103), il faudra alors taper {{#show: Tortipouss (Diamant & Perle 103) | ?Extension }}
, ce qui donne : Diamant & Perle (JCC).
Il faut savoir qu'il est tout à fait possible de demander des informations pour plusieurs attributs en même temps, comme ceci :
{{#show: Page | ?Attribut1 | ?Attribut2 | ... | ?AttributN }}
.
Dans ce cas, les données seront affichées dans un tableau. Ainsi, {{#show: Tortipouss (Diamant & Perle 103) | ?Pokémon représenté | ?Extension | ?Numéro de carte }}
donne :
Tortipouss | Diamant & Perle (JCC) | 103 |
Avec #ask
La fonction #ask permet de faire des recherches plus avancées. Il est notamment possible de chercher sur toute une catégorie ou selon un attribut. Le code à utiliser est de la même forme : {{#ask: Page/Catégorie/Attribut | ?Attribut1 | ?Attribut2 | ... | ?AttributN }}
.
Il faut savoir qu'avec cette fonction, et au contraire de #show, des crochets doivent être mis autour du nom de la page/catégorie/attribut. Pour chercher la taille de Bulbizarre, il faut donc taper {{#ask: [[Bulbizarre]] | ?Taille }}
, qui donnera :
Taille | |
---|---|
Bulbizarre | 0,7 |
On remarque aussi qu'avec cette fonction, une colonne apparaît sur la gauche indiquant le nom de la page. Il est possible de lui donner un nom en utilisant le paramètre « mainlabel ». {{#ask: [[Bulbizarre]] | ?Taille | mainlabel = Nom }}
renvoie :
Nom | Taille |
---|---|
Bulbizarre | 0,7 |
Ou même la supprimer, en ajoutant mainlabel = -
. De plus, comme pour #show, il est possible de demander plusieurs attributs à la fois. En combinant ces deux informations, on devine ce que va renvoyer {{#ask: [[Bulbizarre]] | ?Taille | ?Poids | mainlabel = - }}
. Si vous voulez en être sûr, voici le résultat :
Taille | Poids |
---|---|
0,7 | 6,9 |
Mettre des conditions
Requête simple
On peut ainsi imaginer faire une requête sur toutes les pages d'une catégorie en tapant {{#ask: [[Catégorie:XXX]] | ?Attribut }}
. Bien évidemment, si une catégorie comporte des centaines voire des milliers de pages, il n'affichera pas tous les résultats d'un coup. Par défaut, il y en aura 50, mais il est possible de changer de nombre avec le paramètre limit
. Par exemple, {{#ask: [[Catégorie:Pokémon]] | ?Taille | limit = 10 }}
affichera :
Taille | |
---|---|
'Ng'Mp | |
, 'M (00) | |
, ’M (FF) | |
? (bug) | |
Abo | 2 |
Abo/Génération 1 | |
Abo/Génération 2 | |
Abo/Génération 3 | |
Abo/Génération 4 | |
Abo/Génération 5 | |
... autres résultats |
Chercher les pages où la donnée est définie
On remarquera que toutes les pages de la catégorie « Pokémon » apparaissent, même celles n'ayant aucune valeur définie pour l'attribut « Taille ». Pour remédier à ce problème, il faut utiliser la syntaxe suivante : {{#ask: [[Catégorie:Pokémon]] [[Taille::+]] | ?Taille | limit = 10 }}
. En effet, la fonction #ask permet de définir plusieurs conditions. Le tableau suivant s'affichera alors sur la page :
Taille | |
---|---|
Abo | 2 |
Abra | 0,9 |
Absol | 1,2 |
Aéromite | 1,5 |
Aflamanoir | 1,4 |
Airmure | 1,7 |
Akwakwak | 1,7 |
Alakazam | 1,5 |
Aligatueur | 2,3 |
Altaria | 1,1 |
... autres résultats |
Chercher les pages où la donnée a une valeur précise
Il est également possible de demander seulement les pages ayant une certaine valeur dans un attribut donné. Pour reprendre un exemple similaire au précédent, {{#ask: [[Catégorie:Pokémon]] [[Taille::1,9]] | ?Taille }}
donnera tous les Pokémon qui font 1,9 m de haut. Le résultat sera le suivant :
Taille | |
---|---|
Arcanin | 1,9 |
Baojian | 1,9 |
Braségali | 1,9 |
Camérupt | 1,9 |
Carchacrok | 1,9 |
Cléopsytra | 1,9 |
Haydaim | 1,9 |
Lézargus | 1,9 |
Miasmax | 1,9 |
Méga-Braségali | 1,9 |
Méga-Carchacrok | 1,9 |
Méga-Démolosse | 1,9 |
Méga-Jungko | 1,9 |
Méga-Laggron | 1,9 |
Raikou | 1,9 |
Registeel | 1,9 |
Rhinoféros | 1,9 |
Shifours | 1,9 |
Terracruel | 1,9 |
Terrakium | 1,9 |
Tokotoro | 1,9 |
Type:0 | 1,9 |
Yanmega | 1,9 |
Comparateurs
S'il est possible de demander une valeur précise, il est aussi possible de comparer les valeurs, pour par exemple trouver tous les Pokémon qui font plus de 5m. Les principaux comparateurs sont :
>>
et<<
pour « strictement supérieur à » et « strictement inférieur à » ;≥
et≤
pour « supérieur ou égal à » et « inférieur ou égal à » ;!
pour « différent de ».
Ainsi, pour trouver toutes les capacités qui font entre 30 (inclus) et 40 (exclu) dégâts, il faut taper {{#ask: [[Catégorie:Capacité]] [[Puissance::≥30]] [[Puissance::<<40]] | ?Puissance | sort = Puissance | limit = 20 }}
, avec comme résultat :
Le paramètre « sort » sera expliqué plus tard sur la page.
Tester l'appartenance à une catégorie
Ces deux fonctions permettent une autre fonctionnalité qui peut se révéler très intéressante : vérifier si une page appartient ou non à une catégorie. Pour cela, il suffit de remplacer l'attribut par le nom de la catégorie. Exemple, {{#ask: [[Pikachu]] | ?Catégorie:Pokémon | ?Catégorie:Capacité }}
Pokémon | Capacité | |
---|---|---|
Pikachu | X |
Le résultat brut n'est pas très parlant visuellement, mais il existe une astuce pour personnaliser le texte affiché en cas de présence ou d'absence de la catégorie. Il faut dans ce cas faire une requête de la sorte : {{#show: Page | ?Catégorie:Nom de la catégorie # Texte affiché si la catégorie est présente , Texte affiché si la catégorie est absente }}
Exemple : {{#show: Abîme | ?Catégorie:Capacité de la première génération # Abîme est une capacité apparue dès la première génération , Abîme n'existait pas encore dans la première génération }}
Avec comme résultat : Abîme est une capacité apparue dès la première génération
Alors que pour Danse Folle : Danse Folle n'existait pas encore dans la première génération
Ou encore avec un #ifeq si vous ne voulez pas seulement afficher du texte :
{{#ifeq: {{#show: Page | ?Catégorie:Nom de la catégorie # oui , non }} | oui | // Code si la catégorie est présente | // Code si la catégorie est absente }}
Il est également possible d'obtenir une liste de toutes les catégories d'une page en tapant, par exemple, {{#show: Bulbizarre | ?Catégorie }}
Formater les résultats
Nous avons déjà vu qu'il est possible d'appliquer un paramètre limit
pour choisir le nombre maximal de résultats. Il faut savoir que bien d'autres existent, dont ceux présentés ci-dessous.
format
Liste des formats les plus utilisés sur le wiki :
- « table » est le format par défaut, et range les valeurs dans un tableau où chaque colonne correspond à un attribut et chaque ligne à une page ;
- « list » renvoie les différents résultats séparés par des virgules, avec des indications entre parenthèses si nécessaire ;
- « ul » correspond à une liste à puces ;
- « ol » correspond à une liste numérotée ;
- « count » renvoie simplement le nombre de résultats ;
- « template » est utilisée pour créer un format personnalisé. Dans ce cas, un second paramètre « template » doit être renseigné pour indiquer le nom du modèle à utiliser. Par exemple, pour
template=Mise en forme Capacité
, le modèle « Mise en forme Capacité » sera utilisé.
sort
« sort » sert à trier les résultats suivant un attribut. Ainsi, sort=Numéro National
sert à trier selon le numéro national du Pokémon.
order
Pour préciser dans quel ordre doit trier « sort », il faut utiliser « order ». Trois valeurs sont possibles : « ascending » (du plus petit au plus grand / par ordre alphabétique), « descending » (du plus grand au plus petit / à l'inverse de l'ordre alphabétique) et « random » (au hasard). Par défaut, c'est « ascending » qui est utilisé.
default
Sert à définir un texte s'affichant sur la page si aucun résultat n'est trouvé.
Pour aller plus loin
Les possibilités offertes par les données sémantiques sont immenses et cette page d'aide n'en montre ainsi qu'une partie limitée, même si bien souvent suffisante. Si vous souhaitez vous renseigner plus amplement, vous pouvez vous rendre sur le site (en) https://www.semantic-mediawiki.org qui est consacré au sujet.