Aller au contenu

Poképédia subit actuellement quelques soucis techniques !
L'équipe est au courant des problèmes et fait le nécessaire pour les arranger le plus rapidement possible. Merci de votre compréhension !

Aide:Données sémantiques

De Poképédia

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

[[:Valeur|Valeur]]

Par exemple, pour définir la valeur « Diamant & Perle » pour l'attribut « Extension » : [[:Diamant & Perle|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 , soit, toujours pour le même exemple : .

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) | ?Sujet représenté | ?Extension | ?Numéro de carte }} donne :

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

 Taille
Abo2
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
Abo/Génération 6
Abo/Génération 7
Abo/Génération 8
Abo/Imagerie
... 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]] +<span class="smw-highlighter" data-type="4" data-state="inline" data-title="Avertissement" title="« + » n’est pas un nombre."><span class="smwtticon warning"></span><span class="smwttcontent">« + » n’est pas un nombre.</span></span> | ?Taille | limit = 10 }}. En effet, la fonction #ask permet de définir plusieurs conditions. Le tableau suivant s'affichera alors sur la page :

La description de la requête contient une condition vide.

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]] 1,9 | ?Taille }} donnera tous les Pokémon qui font 1,9 m de haut. Le résultat sera le suivant :

 Taille
Abo2
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
Abo/Génération 6
Abo/Génération 7
Abo/Génération 8
Abo/Imagerie
Abo/Jeux secondaires
Abo/Pokémon Donjon Mystère
Abra0,9
Abra/Génération 1
Abra/Génération 2
Abra/Génération 3
Abra/Génération 4
Abra/Génération 5
Abra/Génération 6
Abra/Génération 7
Abra/Génération 8
Abra/Imagerie
Abra/Pokémon Donjon Mystère
Absol1,2
Absol/Génération 3
Absol/Génération 4
Absol/Génération 5
Absol/Génération 6
Absol/Génération 7
Absol/Génération 8
Absol/Imagerie
Absol/Jeux secondaires
Absol/Pokémon Donjon Mystère
Acier (type)
Adoramis
Aéromite1,5
Aéromite/Génération 1
Aéromite/Génération 2
Aéromite/Génération 3
Aéromite/Génération 4
Aéromite/Génération 5
Aéromite/Génération 6
Aéromite/Génération 7
Aéromite/Génération 8
Aéromite/Imagerie
Aéromite/Pokémon Donjon Mystère
Aéroptéryx1,4
Aéroptéryx/Génération 5
Aéroptéryx/Génération 6
Aéroptéryx/Génération 7
... autres résultats

La partie « 1,9 » de la requête n’a pas été comprise. Les résultats peuvent être inattendus.

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é]] ≥30<span class="smw-highlighter" data-type="4" data-state="inline" data-title="Avertissement" title="« ≥ » ne peut pas être affecté à un type de nombre déclaré avec la valeur 30."><span class="smwtticon warning"></span><span class="smwttcontent">« ≥ » ne peut pas être affecté à un type de nombre déclaré avec la valeur 30.</span></span> <<40<span class="smw-highlighter" data-type="4" data-state="inline" data-title="Avertissement" title="«  » ne peut pas être affecté à un type de nombre déclaré avec la valeur 40."><span class="smwtticon warning"></span><span class="smwttcontent">«  » ne peut pas être affecté à un type de nombre déclaré avec la valeur 40.</span></span> | ?Puissance | sort = Puissance | limit = 20 }}, avec comme résultat :

La description de la requête contient une condition vide.

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.