Aide:Modèles sémantiques

Un article de la Grande Bibliothèque du Droit, le droit partagé.

Lagbd:Contribuer

Ceci est une traduction rapide de l'aide disponible sur Ontoworld.org. Les exemples en sont traduits 
sans être adaptés à JurisPedia, qui n'en possède pas encore suffisamment. Pour voir ce que donnent
les exemples, veuillez vous reporter à cette page.


Il est possible d'ajouter des annotations sémantiques dans les modèles de MediaWiki. Ceci peut aider à simplifier la syntaxe pour les utilisateurs, à permettre un large usage des annotations existentes et à obenir rapidement un grand nombre de données sémantiques par annotation des modèles existants. Les modèles sémantiques sont une méthode pour introduire certaines balises supplémentaires que Semantic MediaWiki a introduites dans les Modèles de MediaWiki. Ceci présente plusieurs avantages :

  • Les utilisateurs spécifient des annotations sans avoir à apprendre une nouvelle syntaxe ;
  • Les annotations sont utilisées uniformément, c'est-à-dire sans avoir à chercher les bonnes relations, attributs ou catégories quand ils éditent une page ;
  • Comme les modèles ont d'autres fonctions, comme par exemple l'affichage de boîtes d'information dans un article, les utilisateurs sont motivés pour les utiliser.

Pour ces raisons, les modèles sémantiques sont spécialement recommandés quand il s'agit d'introduire de la sémantique dans une nouvelle communauté.

Modèles sémantiques simples – Exemple

Les modèles, avec ou sans balises sémantiques, peuvent être de forme très simple. Par exemple, pour écrire une adresse élecronique dans une page wiki, on peu utiliser le code

[mailto:personne@jurispedia.info personne@jurispedia.info]

afin d'avoir personne@jurispedia.info en résultat. Le texte après l'espace est utilisé pour l'affichage, de sorte que le « mailto » est caché. Pour annoter des adresses électroniques, un attribut sémantique de type chaîne est approprié. Si cet attribut est appelé Attribut:courriel, on peut écrire :

[[courriel:=personne@jurispedia.info]]

qui sera affiché simplement comme « personne@jurispedia.info » dans l'article. Évidemment, nous aimerions avoir à la fois l'annotation et l'hyperlien, et ceci peut être fait grâce à

[[courriel:=personne@jurispedia.info|[mailto:personne@jurispedia.info personne@jurispedia.info]]].

Mais ceci n'est pas très aisé. En utilisant les modèles sémantiques, on peut créer un modèle Modèle:Courriel qui cache les balises compliquées et permet aux utilisateurs d'écrire

{{Courriel|personne@jurispedia.info}}

qui est un petit peu plus lisible. Pour réaliser ceci, le modèle a été codé de la manière suivante :

[[courriel:={{{1}}}|[mailto:{{{1}}} {{{1}}}]]].

Notez que l'attribut « courriel:= » n'annote pas la page du modèle et ne prend effet que lors de son inclusion. Ceci est le réglage par défaut lors de l'installation de Semantic MediaWiki. Si ce réglage a été modifié, vous devrez inclure le code du modèle dans des balises <includeonly> pour éviter qu'il ne soit annoté lui-même. De même, vous pouvez utiliser du texte entre des balises <noinclude> afin de documenter le modèle pour ses utilisateurs.

Utiliser correctement les modèles sémantiques

Comme l'exemple di-dessus vous permet de créer toute sorte de modèle sémantique d'une complexité arbitraire, il faut prendre en considération certaines choses.

Les annotations automatiques requièrent des formats stricts

Vous pouvez annoter automatiquement les champs d'un modèle, mais dans ce cas, les valeurs fournies doivent correspondre au format attendu. Par exemple, c'est une bonne idée d'annoter l'attribut population d'une ville comme étant de type nombre entier. Cependant, dans un modèle de boîte d'information comme celui de Wikipedia:France, l'entrée proposée pour la population n'est pas un nombre unique, c'est même un ensemble de nombres ! À la place, il y a des nombres multiples et des textes d'explication sur leur signification. De tels cas particuliers doivent être gardés à l'esprit lors de la conception de modèles sémantiques.

Ceci est également une raison importante expliquant pourquoi les modèles sémantiques ne sont pas un substitut approprié aux annotations dans Semantic MediaWiki. Il y a des cas où les modèles existants peuvent tout-à-fait être considérés sémantiquement, mais souvent, l'utilisateur doit encore ajouter des balises sémantiques pour rendre les données exploitables par la machine. Par exemple, dans le cas de la France, on peut décider de laisser « population » comme du texte normal et laisser à l'utilisateur le soin de préciser [[population:=...]] à l'endroit approprié dans le texte.

Champs en option et conditions

En général, dans les modèles, il est très utile d'autoriser des paramètres optionnels. Dans beaucoup d'articles, les utiliseurs peuvent ne pas fournir toutes les valeurs possibles dans une boîte d'information et cela semblerait moche d'afficher les lignes vides dans ces cas. Pire même, les modèles sémantiques généreraient des messages d'erreur à cause du fait qu'une valeur vide serait annotée. Pour éviter cela, il est utile d'introduire des conditions dans le code du modèle, comprenant une ligne (et son annotation) seulement si une valeur non-vide a été fournie.

Ceci peut être réalisé grâce à l'extension ParserFunctions de MediaWiki. Utiliser cette extension est complètement indépendant de Semantic MediaWiki, et vous pouvez vous reporter à la documentation de cette extension ou à d'autres sources. Wikipedia contient beaucoup d'exemples de fonctions d'analises dans les modèles, comme, par exemple, dans le modèle Taxobox. L'usage de fonctions d'analyse produit généralement un code source peu lisible, mais la simplification pour l'utilisateur est important.

Requête intégrées aux modèles et modèles dans les requêtes intégrées

Il est possible d'inclure des requêtes dans les modèles. Cela permet, par exemple, de créer dynamiquement les liens vers les articles relatifs à un certain sujet. Cependant, cela ne semble marcher avec les substitutions.

La conversion, c'est-à-dire le support de modèles dans des requêtes est pour le moment limité. Toutefois, vous pouvez déjà utiliser {{PAGENAME}} dans une requête pour rechercher des informations relatives à la page courante. Ceci est très utile en combination avec l'usage de requêtes dans les modèles : vous avez un modèle qui affiche toujours des informations adaptées à la page courante.

Usage de requêtes afin de produire du texte wiki pour les annotations

L'usage de <ask></ask> est expliqué infra. Si plusieurs P ont une annotation P R Q pour le même Q, l'annotation correspondante Q Rinv P peut facilement être produite avec la requête :

[[Rinv::<ask sep="| ]][[Rinv::">[[R::Q]]</ask>| ]]

Les résultats de la page retournée peuvent être copiés dans la boîte d'édition de Q. Le cas échéant, les champs de préfixe doivent être ajoutés. Par exemple

[ [Situation de::<ask sep="| ]][[Situation de::">[[Situé en::Syldavie]]</ask>| ]] donne :
[ [Situation de::<ask sep="| ]]">[[Situé en::SyldavieLa propriété « Situation de » (comme le type de page) avec la valeur d’entrée « ">[[Situé en::Syldavie » contient des caractères non valides ou est incomplète, et donc peut provoquer des résultats inattendus lors d’une requête ou d’un processus d’annotation.</ask>| ]]

Le résultat est copié de la page retournée dans la boîte d'édition de Syldavie, dans laquelle l'espace entre les deux premières parenthèses (utilisées comme un « nowiki » commode) est effacé. Les pages d'utilisateur sont soit effacées, soit le préfixe« utilisateur: » est ajouté.