Aide:Données sémantiques

De Poképédia
Aller à la navigation Aller à 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 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 :

   
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
'Ng'Mp
, 'M (00)
, ’M (FF)
94 h
? (bug)
????? (00)
Abo2
Abo/Génération 1
Abo/Génération 2
Abo/Génération 3
... 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
Abo2
Abra0,9
Absol1,2
Aflamanoir1,4
Airmure1,7
Akwakwak1,7
Alakazam1,5
Aligatueur2,3
Altaria1,1
Ama-Ama5,5
... 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
Baojian1,9
Braségali1,9
Camérupt1,9
Carchacrok1,9
Cléopsytra1,9
Haydaim1,9
Lézargus1,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
Shifours1,9
Terracruel1,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
Roulade30
Ruse/Génération 630
Double Pied/Génération 630
Léchouille/Génération 830
Ball'Glace/Génération 430
Double Pied/Génération 730
Étonnement/Génération 430
Purédpois/Génération 930
Roulade/Génération 530
Dard Mortel/Génération 630
Ruse/Génération 730
Double Pied30
Ruse/Génération 530
Purédpois/Génération 830
Double Pied/Génération 330
Ball'Glace/Génération 530
Étonnement/Génération 730
Étonnement/Génération 530
Toupie Éclat30
Roulade/Génération 630
... 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.