Semantic MediaWiki peut fournir des liens vers des services en ligne en affichant certaines données dans la boite de faits. Par exemple, quand un article contient des coordonnées géographiques, il est utile de proposer des liens vers des services de cartographie en ligne, de telle sorte que les utilisateurs puissent accéder en un clic à une carte de la zone spécifiée. Cette page explique comment vous pouvez ajouter de telles fonctions à un wiki sémantique sans écrire de code PHP pour gérer de nouveaux types de données.
Service de liens pour les propriétés[edit]
L'information pour les liens supplémentaires dans le bordereau de faits est associée grâce à la Catégorie utilisée. Par exemple, la propriété Property:Has coordinates affichera plusieurs liens vers des cartes en ligne lorsqu'elle apparaît dans le bordereau de faits, tandis que les autres ne l'afficheront pas. Ceci est crucial dans beaucoup d'applications, puisque les types de données seuls n'en disent pas beaucoup sur le type de lien. Par exemple, la propriété "nombre IMDb" peut être utilisée comme identifiant d'un film sur IMDb, mais toutes les propriétés de Help:Datatype "Number" ne doivent pas afficher un lien vers IMDb.
Pour faire afficher un service de lien par une propriété, ajoutez une propriété spéciale provides service sur sa page. Par exemple, l'article Property:Has coordinates peut comporter l'annotation
[[provides services::online maps]]]
Ici, les online maps est le nom de plusieurs services de lien fournis par le wiki. La prochaine section explique comment spécifier ces services.
Proposer des services[edit]
Le texte définissant l'apparence d'un service de liens entre dans un article de message spécial dans l'espace de nom nommé MediaWiki:Smw service "nom du service". Dans le même exemple pour coordonnées, le texte de [[provides service::online maps]]] est dans MediaWiki:Smw service online maps.
Normalement, seuls les utiliseurs ayant des privilèges sysop (administrateur) sur le wiki peuvent ajouter ou éditer les pages de l'espace de nom MediaWiki. Ceci est une restriction raisonnable pour la plupart des wikis : parce que les services de liens peuvent apparaître dans des milliers de bordereaux de faits, ils doivent être fiables.
Tous les utilisateurs, cependant, sont libres d'utiliser ou non les services disponibles dans les propriétés décrites ci-dessus. Dans tous les cas, ajouter ou modifier des services devrait être préalablement débattu avec les utilisateurs avant qu'il ne soit demandé à un administrateur de procéder au changement.
En ajoutant un service grâce à la propriété spéciale « provides service », le bordereau de faits de l'article concerné affichera un lien du nom du service donné. Par exemple, le bordereau de faits de l'article concerné "online maps". Suivre ce lien conduit à un article, en l'occurrence MediaWiki:Smw service online maps, répertoriant les liens fournis par ce service. Cependant, ce message peut être long à lire s'il contient beaucoup de lignes. Son format est normalement comme suit :
label|http://uneurl.org label|2|http://uneautreurl.org …
Chaque ligne contient un des liens qui doit être affiché dans le bordereau de faits. Son intitulé est le texte que les utilisateurs verront dans le bordereau de faits (par exemple, « IMDb », si vous mettez un lien vers ce service). Ce qui suit le « | » est une URL vers laquelle le lien mènera. Dans la plupart des cas, l'URL devra contenir certaines informations sur la valeur de la propriété pour laquelle le service est éventuellement fourni. Par exemple, un lien vers une carte en ligne doit certainement inclure les coordonnées que la carte affichera et un lien vers IMDb devra inclure l'ID du film référencé.
Parce que les valeurs exactes des données ne sont pas connues d'avance, les URL dans les messages ci-dessus, ne contiennent que des noms de variable sous la forme « $1 », « $2 », « $3 », … Par exemple, un lien vers IMDb pourrait ressembler à ceci :
IMDb|http://www.imdb.com/title/tt$1/
Le nom de la variable « $1 » indique l'endroit où cette propriété devra être insérée afin de créer le lien actuel dans le bordereau de faits. Le nombre et le contenu des paramètres dépend de la propriété utilisant le service, en particulier de son type de données. Par exemple, un entier peut simplement remplacer $1 par sa valeur, tandis qu'une coordonnée géographique fournit beaucoup plus de paramètres pour la latitude et la longitude, la direction, et beaucoup plus. Dans la plupart des cas, $1 sera le paramètre le plus important une chaîne de caractère ressemblant à une URL à partir de la valeur de la propriété.
Parce que les services de lien sont normalement perçus comme des sources fiables, les administrateurs doivent prendre garde lorsqu'ils formulent des liens et garder à l'esprit que les utilisateurs peuvent insérer presque n'importe quelle chaîne qui sera encodée dans l'URL à la place des variables.
Exemple étendu[edit]
Pour illustrer la procédure complète de création et d'utilisation d'un nouveau service, nous fournissons un exemple étendu, implémenté dans ontoworld.org. Les articles sur le vocabulaire du web sémantique comme ow:FOAF contient des informations sur les espaces de nom du vocabulaire et du service en ligne ow:Swoogle autorise les utilisateurs à rechercher des informations de fond dans ces noms de domaine. Notre but, est d'ajouter un nouveau service Swoogle au ow:Property:Namespace qui est utilisé dans le vocabulaire des articles.
En premier lieu, nous éditons l'article ow:Property:Namespace et ajoutons la ligne
En tant que service supplémentaire, ce service fournit un [[provides service::Swoogle lookup]] de l'espace de nom entré.
Après avoir sauvegardé, le bordereau de faits affiche un lien vers le service (encore non existant) Swoogle lookup. En cliquant sur ce lien, un administrateur obtiendra un nouveau champ d'édition, dans lequel il entrera
Swoogle lookup|http://swoogle.umbc.edu/index.php?otpion=com_frontpage&service=digest&queryType=digest_ns&searchString=$1
Ce lien a été obtenu en utilisant Swoogle et en remplaçant la chaîne recherchée (à la fin du lien) par le paramètre « $1 ».
Après que les changements auront été sauvés, le nouveau service est parfaitement fonctionnel et chaque page utilisant ow:Property:Namespace affichera un lien fonctionnel vers Swoogle. Certains articles afficheront encore l'ancienne version, s'ils sont copiés du cache, mais après la prochaine modification ou le prochain blanchiment, tous les articles afficheront les liens prévus.