La huitième génération est là, et tout le monde est invité à contribuer !
Une nouvelle génération qui apporte de nombreuses nouveautés, donc beaucoup de travail sur Poképédia !
N'hésitez pas à consulter les pages d'aide en cas de doute sur la rédaction, et n'oubliez pas de prévisualiser vos modifications avant de les publier.

Aide:Données sémantiques

De Poképédia
Sauter à la navigation Sauter à la recherche

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 des 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 à 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.

Il faut savoir qu'il est tout à faire 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 :

   
TortipoussDiamant & Perle103

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
Bulbizarre0,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 :

NomTaille
Bulbizarre0,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 :

TaillePoids
0,76,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 possible de changer de nombre avec le paramètre limit. Par exemple, {{#ask: [[Catégorie:Pokémon]] | ?Taille | limit = 10 }} affichera :

 Taille
'M (00)
'M (FE)
'M (FF)
'Ng'Mp
. ëê8ô y'ô
3Dres.Poké $ ë
4 4
4. .
44Hy
7g
… autres résultats

Chercher les pages où la donnée est définie

On remarquera que tous 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
Abo2
Abra0,9
Absol1,2
Aéromite1,5
Aflamanoir1,4
Airmure1,7
Akwakwak1,7
Alakazam1,5
Aligatueur2,3
Altaria1,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
Arcanin1,9
Braségali1,9
Camérupt1,9
Carchacrok1,9
Haydaim1,9
Miasmax1,9
Méga-Braségali1,9
Méga-Carchacrok1,9
Méga-Démolosse1,9
Méga-Jungko1,9
Méga-Laggron1,9
Raikou1,9
Registeel1,9
Rhinoféros1,9
Terrakium1,9
Tokotoro1,9
Type:01,9
Yanmega1,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 :

 Puissance
Roulade/Génération 330
Ball'Glace30
Double Pied/Génération 230
Ruse/Génération 630
Étonnement30
Étonnement/Génération 330
Double Pied/Génération 430
Léchouille30
Roulade/Génération 430
Ball'Glace/Génération 330
Roulade/Génération 630
Roulade30
Étonnement/Génération 430
Double Pied/Génération 530
Ball'Glace/Génération 630
Roulade/Génération 530
Ball'Glace/Génération 430
Étonnement/Génération 630
Ruse30
Étonnement/Génération 530
… autres résultats

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émonCapacité
PikachuX 

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.