Bienvenue sur JurisPedia! Vous êtes invités à créer un compte et à contribuer après avoir confirmé votre adresse de courriel. Dès lors, vous pouvez ajouter un article en commençant par lui donner un titre en renseignant ce champ:

Les lecteurs et contributeurs ne doivent pas oublier de consulter les avertissements juridiques. Il y a actuellement 3 533 articles en construction permanente...

Aide:Types de données

Un article de JurisPedia, le droit partagé.
Aller à : Navigation, Rechercher
Jurispedia: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.


En utilisant différents types, les attributs peuvent être utilisés pour décrire des propriétés très différentes. Une liste complète des types disponibles est accessible à Special:Allpages. Il peuvent être utilisés de manière créative pour différents usages. Par exemple, les attributs de type string peuvent être utilisés pour encoder des numéros de téléphone (lesquels contiennent en fait des symboles non numériques), des adresses électroniques ou des adresses universelles.

Types standards

Les types standards comprennent :

Chaîne

Le Type:String définit une chaîne de caractères, c'est-à-dire une suite de caractères quelconques. Il ne doit pas contenir de doubles parenthèses fermantes, ni de « := » (y compris à l'intérieur de balises nowiki) et ne doit pas dépasser 255 caractères.

Pour spécifier des adresses universelles (URL) et des électroniques, il existe certaines variations du type string :

  • Type:URL et Type:URI ne font que sembler fonctionner comme Type:String : quand une valeur de ce type est produite dans une demande, elle ne fonctionne pas comme un lien.
  • Le type Type:Annotation URI : les attributs de ce type sont interprétés comme des relations à des objets externes, indiqués par l'URI. Ils sont spéciaux puisqu'interprétés à l'export comme propriété d'annotation. Voyez la page type pour la documentation. De nouveau, quand une valeur de ce type est produite dans une demande, elle ne fonctionne pas comme un lien.
  • Le Type:Email stocke les adresses électroniques comme une valeur en chaîne de caractères, mais crée automatiquement le lien dans la page (avec mailto:).

Nombre entier

Le Type:Nombre entier définit un nombre entier.

Nombre décimal

Le Type:Nombre décimal représente sur quatre octets un nombre décimal, et les sous-types définis par l'utilisateur (chacun avec des unités convertibles). Ce nombre peut être positif ou négatif, avec un séparateur pour les milliers, et peut avoir un exposant facultatif. Ex :

[[Psi beam:=4,297.31 e7]]

Comme, le Type:Float ne comprend pas les unités (c'est-à-dire qu'il n'opère pas de conversio automatique), il peut être utilisé pour distinguer des valeurs d'attribut de différentes unités. Par exemple,

[[Psi beam:=42 mindmelds]].

Le Type:Nombre décimal autorise des unités, mais seulement comme distinction. En outre, le message « Cet attribut ne peut être converti » encombre les résultats d'une recherche.

Pour permettre la conversion automatique, utilisez plutôt des Types modifiables.

Le Type:Nombre décimal comprend les types suivants :

Longueur

Le Type:Longueur exprime la longueur, qui est exprimée par défaut en mètres (m), mais peut être en années-lumière (ly), en pieds (ft), en pouces (in), en milles américains (mi), en kilomètres (km) ou en centimètres (cm)

Étendue

Le Type:Étendue exprime une étendue, par défaut en mètres carrés (m²), mais également en hares (ha), en miles² ou en kilomètres carrés (km²).

Masse

Le Type:Masse exprime la masse, par défaut en kilogrammes (kg), mais également en livres (lb), en grammes (g), en onces (oz), en tonnes, ou en tonnes(États Unis) (t/tons), en carats, et en unités de masse atomique (u)

Durée

Le Type:Durée exprime la durée, qui est exprimée par un nombre décimal dont l'unité est la seconde (s) par défaut, mais peut être en années (a), en jours (d), en heures (h) ou en minutes (min). Il n'est pas possible de mélanger plusieurs unités de temps; Par exemple, semi-vie:=2 mois & 14 jours ne fonctionne pas, il faut utiliser à la place semi-vie:=2.5 mois.

À l'export en RDF, ce format respecte le XSD float. Observez que le type Time exprime une durée et non un moment comme dans le schéma XML de types de données time.

À la différence des exemples que nous avons utilisés pour le type:time, la spécification des unités de temps se fait en utilisant les abréviation des noms en langue anglaise : y(ear), m(onth), d(ay), h(our), m(inute), s(econd).

Date

Le Type:Date est encore expérimental. Il donne la date en différents formats, mais la stocke en interne en secondes depuis 1970 et l'affiche dans le standard international ISO 8601/NF EN 28601 (1993), à savoir : AAAA-MM-JJFHH:MM:SS. Ce type utilise la fonction PHP strtodate pour analiser la date. Il n'utilise pas les préférences date/time de MediaWiki. Les sorties possibles sont dates dans des formats spécifiques à un pays et à un fuseau horaire (ex : mm/jj/aa' ou jj/mm/aa). Le tri par date n'est utilisable que du 14.12.1901 au 19.01.2038 (v. Bogue de l'an 2038, et Amélioration du type de date.

Coordonnées géographiques

Le Type:Coordonnées geographiques décrit des situations géographiques. Il inclut les fonctions de reconnaissance de différentes formes de coordonnées géographiques et fournit dynamiquement des liens vers des services cartographiques en ligne. Vous pouvez entrer les coordonnées en latitude et en longitude en degrés décimaux ou en degrés, minutes et secondes. Il est possible d'utiliser l'apostrphe, deux points (:) ou le symbole prime (') ou seconde (") pour les minutes et les secondes. Il est impossible d'utiliser des valeurs négatives. Les abréviations des points cardinaux sont celles de la langue anglaise. Par exemple

32°42′54″ N, 117°9′45″ W
32.715° N, 117.163° W

Température

Le Type:Température, définit une température, qui peut être exprimée en degrés Les unités possibles sont :

  • K, kelvin, kelvins
  • °C, Celsius, centigrade
  • °F, Fahrenheit

Le Type:Temperature ne peut pas être défini par l'utilisateur parce que convertir des températures est plus compliqué que de multiplier par un facteur de conversion.

Types modifiables

Les unités de mesure sont utilisées pour les attributs du Type:Float et rendent les annotations plus souples : chacun peut voir et entrer des données dans son unité préférée sans restreindre la compréhension mutuelle. Par exemple, certains prévèrent les distances en kilomètres, les autres en miles. Dans d'autres cas, il n'est pas possible d'afficher une distance en kilomètre parce que nm n'est pas approprié.

Types modifiables avec conversion d'unité de mesure

SMW gère déjà des types permettant la conversion en différentes unités (ex : Type:Température), mais on peut en ajouter d'autres. Les types acceptant des unités peuvent convertir et afficher les valeurs dans plusieurs unités de mesure différentes

De manière à supporter cette fonction, SMW a besoin de savoir comment convertir les valeurs d'une unité en une autre. Ceci est plutôt facile dans beaucoup de cas, mais peut impliquer beaucoup de calculs complexes dans d'autres situations. On distingue deux cas :

  1. La conversion dans l'unité désirée est linéaire, c'est-à-dire qu'il suffit de multiplier une valeur par un facteur de conversion fixe pour obtenir la valeur dans une autre unité.
  2. La conversion dans l'unité désirée est non linéaire et des calculs plus complexes sont nécessaire. Cela arrive par exemple pour le Type:Température, puisqu'il est nécessaire d'additionner et de multiplier pour passer de degrés centigrades en degrés Fahrenheit.

Pour toutes les conversions d'unité du premier genre, vous pouvez facilement créer des types modifiables qui gèrent ces unités. Pour les autres, voir ci-dessous.

Créer de nouveaux types de données avec conversion linéaire d'unités

Avant d'envisager de créer de nouveaux types, assurez-vous que le type n'existe pas déjà en faisant une recherche rapide de texte en séletionnant le champ « Text: » au bas de la page.

Si le type désiré n'existe pas, vous pouvez aisément en créer un nouveau. Vous devez d'abord créer une page dans le champ Type. Par exemple, vous pouvez vouloir créer le Type:Puissance. Dans ce nouvel article, vous devrez d'abord écrire quelques phrases sur l'objet et l'usage de ce nouveau type. Dans notre cas, cela veut dire qu'il s'agit de la quantité physique habituellement mesurée en Watt. Ceci aidera d'autres à trouver et réutiliser votre type quand ils chercheront par mots-clef.

Pour spécifier l'unité supportée, un attribut spécial « correspond à » est utilisé. Par exemple, pour spécifier l'unité principale du nouveau type, on écrira

[[Correspond à:=1 W]].

La valeur « 1 W » fait deux choses : 1° on supporte l'unité « W » et 2° celle-ci est l'unité principale (celle pour laquelle est le « 1 »). Intuitivement, le rapport dit « une quantité de ce type correspond à 1 W ». Il est facile de spécifier d'autres unités, par exemple

[[Correspond à:=0.001 kW]]
[[Correspond à:=0.0013410220 hp]]

Ceci signifie que « kW » et « hp » sont suportés et qu'1 W (l'unité principale est 0,001 kW et 0,0013410220 hp. De cette manière, des unités arbitraires peuvent être ajoutées, pour autant que leur rapport à W puisse être décrit de cette manière simple.

Dans beaucoup de cas, il existe de multiples manières de se référer à une unité. Par exemple, on pourrait permettre aux utiisateurs d'écrire « W » ou « Watt » et peut-être même « Watts ». Une manière simple de le faire est de séparer les unités additionnelles par « , », plutôt que de faire de multiples « Correspond à » avec le même facteur. Par exemple, on pourra écrire :

[[Correspond à:=1 W, Watt, Watts]]

Après avoir sauvegarde l'article du nouveau type, le rapport « Correspond à » apparaîtra comme une propriété spéciale dans la boîte à idée.

Après avoir sauvegardé l'article du nouveau type, le rapport « correspond à » apparaîtra en tant que propriété spéciale dans la boîte à idée. Ce type pourra alors être utilisé comme tout autre type. Par exemple, on pourra faire un nouvel Attribut:Puissance de la machine, qui sera du type puissance, en écrivant :

[[A le type::Type:Puissance]]

quelque part sur sa page. Les valeurs passées à cet attribut comprendront toutes les unités données et afficheront les conversions entre elles (sans doublons, c'est-à-dire sans afficher « W » et « Watt »). En interne, les valeurs seront toutes converties dans l'unité principale et le RDF exporté affichera la valur dans cette unité. L'affichage des unités dans le wiki est largement configurable et n'a pas besoin de recourir à l'unité principale (v. infra).

Unités de conversion qui ne sont pas linéaires

Remarquez qu'il est seulement possible de spécifier un facteur de conversion linéaire, un multiplicateur. Vous ne pouvez pas avoir différentes bases pour différentes unités, des facteurs de conversion logarithmic, Ainsi, vous ne pouvez pas créer un type modifiable pour la température qui convertirait les degrés Celsius en Fahrenheit. Pour la température, SMW fournit déjà un type intégré Type:Temperature gérant cette conversion, mais ceci n'est pas forcément vrai dans d'autres cas.

SMW ne gère pas des unités non linéaires modifiables qui seraient définies dans le wiki. Une manière de contourner ceci est d'utiliser le Type:Float qui accepterait des chaînes d'unités après un nombre donné. Ce type ne sait pas faire de conversion entre ces valeurs, mais en reconnaît l'unité et est capable de distinguer différentes unités. Si tous les utilisateurs d'un type bizarre acceptent d'utiliser la même unité, cette fonction sera similaire à un réel support d'unité. Si quelqu'un utilise d'autres unités, alors la valeur donnée ne sera au moins pas confondue avec les valeurs dans d'autres unités.

Une manière plus élaborée d'appréhender la situation est d'écrire un petit programme implémentant les conversions voulues. Il n'est pas compliqué d'étendre SMW de cette manière et on pourrait simplement copier et adapter le code pour Type:Temperature (qui fait moins de soixante-dix lignes, y compris les commentaires). Si un tel type modifiable était disponible pour les attributs qui devait utiliser des nombre décimaux auparavant, alors le type de l'attribut peut être changé sans aucun effet négatif sur les articles existants. Lorsqu'on a affaire à des unités nons gérées, les types mofifiables se comportent comme de simples nombres décimaux.

Modifier l'affichage des unités

En utilisant les nombres à virgule flottante, un seul type peut gérer un grand nombre d'unités. Par exemple, un type pour la longueur peut autant gérer les années lumière que les nanomètres. Cependant, si quelqu'un utilise un attribut « Auteur » pour définir la hauteur de montagnes, il sera difficile d'afficher cette valeur en années lumière ou en nanomètres.

À cet effet, SMW permet de spécifier quelles sont les unités gérées qui peuvent être affichées pour un attribut d'un certain type. Cette information est spécifique à l'attribut : deux attributs peuvent tous deux utiliser le Type:Longueur en ayant un affichage différent dans le wiki. Si aucune préférence d'affichage n'est indiquée, un attribut affichera tous ses types d'unité avec l'unité par défaut, (celle avec un facteur de 1). comme premier choix.

Pour définir une unité d'affichage, les attributs spéciaux main display unit et display unit sont utilisés. Par exemple, l'article Attribute:Height pourrait contenir les rapports :

[[Unité de mesure principale pour l'affichage:=km]]
[[nité de mesure principale pour l'affichage:=ft]]
[[nité de mesure principale pour l'affichage:=miles]]

Cela se traduit dans la boîte à idée, qui n'affiche que trois unités pour les valeurs de l'attribut Hauteur. Ce réglage fonctionne pour tous les attributs qui utilis Jurispedia:Contribuer

En utilisant différents types, les attributs peuvent être utilisés pour décrire des propriétés très différentes. Une liste complète des types disponibles est accessible à Special:Allpages. Il peuvent être utilisés de manière créative pour différents usages. Par exemple, les attributs de type chaîne peuvent être utilisés pour encoder des numéros de téléphone (lesquels contiennent en fait des symboles non numériques), des adresses électroniques ou des adresses universelles.

Types standards

Les types standards comprennent :

Chaîne

Le Type:Chaîne définit une chaîne de caractères, c'est-à-dire une suite de caractères quelconques. Il ne doit pas contenir de doubles parenthèses fermantes, ni de « := » (y compris à l'intérieur de balises nowiki) et ne doit pas dépasser 255 caractères.

Pour spécifier des adresses universelles (URL) et des électroniques, il existe certaines variations du type string :

  • Type:URL et Type:URI ne font que sembler fonctionner comme Type:String : quand une valeur de ce type est produite dans une demande, elle ne fonctionne pas comme un lien.
  • Le type Type:Annotation URI : les attributs de ce type sont interprétés comme des relations à des objets externes, indiqués par l'URI. Ils sont spéciaux puisqu'interprétés à l'export comme propriété d'annotation. Voyez la page type pour la documentation. De nouveau, quand une valeur de ce type est produite dans une demande, elle ne fonctionne pas comme un lien.
  • Le Type:Adresse électronique stocke les adresses électroniques comme une valeur en chaîne de caractères, mais crée automatiquement le lien dans la page (avec mailto:).

Nombre entier

Le Type:Entier définit un nombre entier.

Nombre décimal

Le Type:Nombre décimal représente sur quatre octets un nombre décimal, et les sous-types définis par l'utilisateur (chacun avec des unités convertibles). Ce nombre peut être positif ou négatif, avec un séparateur pour les milliers, et peut avoir un exposant facultatif. Ex :

[[Psi beam:=4,297.31 e7]]

Comme, le Type:Nombre décimal ne comprend pas les unités (c'est-à-dire qu'il n'opère pas de conversio automatique), il peut être utilisé pour distinguer des valeurs d'attribut de différentes unités. Par exemple,

[[Psi beam:=42 mindmelds]].

Le Type:Nombre décimal autorise des unités, mais seulement comme distinction. En outre, le message « Cet attribut ne peut être converti » encombre les résultats d'une recherche.

Pour permettre la conversion automatique, utilisez plutôt des Types modifiables.

Le Type:Nombre décimal comprend les types suivants :

Longueur

Le Type:Longueur exprime la longueur, qui est exprimée par défaut en mètres (m), mais peut être en années-lumière (ly), en pieds (ft), en pouces (in), en milles américains (mi), en kilomètres (km) ou en centimètres (cm)

Étendue

Le Type:Étendue exprime une étendue, par défaut en mètres carrés (m²), mais également en hares (ha), en miles² ou en kilomètres carrés (km²).

Masse

Le Type:Masse exprime la masse, par défaut en kilogrammes (kg), mais également en livres (lb), en grammes (g), en onces (oz), en tonnes, ou en tonnes(États Unis) (t/tons), en carats, et en unités de masse atomique (u)

Durée

Le Type:Durée exprime la durée, qui est exprimée par un nombre décimal dont l'unité est la seconde (s) par défaut, mais peut être en années (a), en jours (d), en heures (h) ou en minutes (min). Il n'est pas possible de mélanger plusieurs unités de temps; Par exemple, semi-vie:=2 mois & 14 jours ne fonctionne pas, il faut utiliser à la place semi-vie:=2.5 mois.

À l'export en RDF, ce format respecte le XSD float. Observez que le type Time exprime une durée et non un moment comme dans le schéma XML de types de données Durée.

À la différence des exemples que nous avons utilisés pour le type:time, la spécification des unités de temps se fait en utilisant les abréviation des noms en langue anglaise : y(ear), m(onth), d(ay), h(our), m(inute), s(econd).

Date

Le Type:Date est encore expérimental. Il donne la date en différents formats, mais la stocke en interne en secondes depuis 1970 et l'affiche dans le standard international ISO 8601/NF EN 28601 (1993), à savoir : AAAA-MM-JJFHH:MM:SS. Ce type utilise la fonction PHP strtodate pour analiser la date. Il n'utilise pas les préférences date/time de MediaWiki. Les sorties possibles sont dates dans des formats spécifiques à un pays et à un fuseau horaire (ex : mm/jj/aa' ou jj/mm/aa). Le tri par date n'est utilisable que du 14.12.1901 au 19.01.2038 (v. Bogue de l'an 2038, et Amélioration du type de date.

Coordonnées géographiques

Le Type:Coordonnées géographiques décrit des situations géographiques. Il inclut les fonctions de reconnaissance de différentes formes de coordonnées géographiques et fournit dynamiquement des liens vers des services cartographiques en ligne. Vous pouvez entrer les coordonnées en latitude et en longitude en degrés décimaux ou en degrés, minutes et secondes. Il est possible d'utiliser l'apostrphe, deux points (:) ou le symbole prime (') ou seconde (") pour les minutes et les secondes. Il est impossible d'utiliser des valeurs négatives. Les abréviations des points cardinaux sont celles de la langue anglaise. Par exemple

32°42′54″ N, 117°9′45″ W
32.715° N, 117.163° W

Température

Le Type:Température, définit une température, qui peut être exprimée en degrés The possible units are

  • K, kelvin, kelvins
  • °C, Celsius, centigrade
  • °F, Fahrenheit

Le Type:Température ne peut pas être défini par l'utilisateur parce que convertir des températures est plus compliqué que de multiplier par un facteur de conversion.

Types modifiables

Les unités de mesure sont utilisées pour les attributs du Type:Float et rendent les annotations plus souples : chacun peut voir et entrer des données dans son unité préférée sans restreindre la compréhension mutuelle. Par exemple, certains prévèrent les distances en kilomètres, les autres en miles. Dans d'autres cas, il n'est pas possible d'afficher une distance en kilomètre parce que nm n'est pas approprié.

Types modifiables avec conversion d'unité de mesure

SMW gère déjà des types permettant la conversion en différentes unités (ex : Type:Temperature), mais on peut en ajouter d'autres. Les types acceptant des unités peuvent convertir et afficher les valeurs dans plusieurs unités de mesure différentes

De manière à supporter cette fonction, SMW a besoin de savoir comment convertir les valeurs d'une unité en une autre. Ceci est plutôt facile dans beaucoup de cas, mais peut impliquer beaucoup de calculs complexes dans d'autres situations. On distingue deux cas :

  1. La conversion dans l'unité désirée est linéaire, c'est-à-dire qu'il suffit de multiplier une valeur par un facteur de conversion fixe pour obtenir la valeur dans une autre unité.
  2. La conversion dans l'unité désirée est non linéaire et des calculs plus complexes sont nécessaire. Cela arrive par exemple pour le Type:Temperature, puisqu'il est nécessaire d'additionner et de multiplier pour passer de degrés centigrades en degrés Fahrenheit.

Pour toutes les conversions d'unité du premier genre, vous pouvez facilement créer des types modifiables qui gèrent ces unités. Pour les autres, voir ci-dessous.

Créer de nouveaux types de données avec conversion linéaire d'unités

Avant d'envisager de créer de nouveaux types, assurez-vous que le type n'existe pas déjà en faisant une recherche rapide de texte en séletionnant le champ « Text: » au bas de la page.

Si le type désiré n'existe pas, vous pouvez aisément en créer un nouveau. Vous devez d'abord créer une page dans le champ Type. Par exemple, vous pouvez vouloir créer le Type:Puissance. Dans ce nouvel article, vous devrez d'abord écrire quelques phrases sur l'objet et l'usage de ce nouveau type. Dans notre cas, cela veut dire qu'il s'agit de la quantité physique habituellement mesurée en Watt. Ceci aidera d'autres à trouver et réutiliser votre type quand ils chercheront par mots-clef.

Pour spécifier l'unité supportée, un attribut spécial « correspond à » est utilisé. Par exemple, pour spécifier l'unité principale du nouveau type, on écrira

[[Correspond à:=1 W]].

La valeur « 1 W » fait deux choses : 1° on supporte l'unité « W » et 2° celle-ci est l'unité principale (celle pour laquelle est le « 1 »). Intuitivement, le rapport dit « une quantité de ce type correspond à 1 W ». Il est facile de spécifier d'autres unités, par exemple

[[Correspond à:=0.001 kW]]
[[Correspond à:=0.0013410220 hp]]

Ceci signifie que « kW » et « hp » sont suportés et qu'1 W (l'unité principale est 0,001 kW et 0,0013410220 hp. De cette manière, des unités arbitraires peuvent être ajoutées, pour autant que leur rapport à W puisse être décrit de cette manière simple.

Dans beaucoup de cas, il existe de multiples manières de se référer à une unité. Par exemple, on pourrait permettre aux utiisateurs d'écrire « W » ou « Watt » et peut-être même « Watts ». Une manière simple de le faire est de séparer les unités additionnelles par « , », plutôt que de faire de multiples « Correspond à » avec le même facteur. Par exemple, on pourra écrire :

[[Correspond à:=1 W, Watt, Watts]]

Après avoir sauvegarde l'article du nouveau type, le rapport « Correspond à » apparaîtra comme une propriété spéciale dans la boîte à idée.

Après avoir sauvegardé l'article du nouveau type, le rapport « correspond à » apparaîtra en tant que propriété spéciale dans la boîte à idée. Ce type pourra alors être utilisé comme tout autre type. Par exemple, on pourra faire un nouvel Attribut:Puissance de la machine, qui sera du type puissance, en écrivant :

[[A le type::Type:Puissance]]

quelque part sur sa page. Les valeurs passées à cet attribut comprendront toutes les unités données et afficheront les conversions entre elles (sans doublons, c'est-à-dire sans afficher « W » et « Watt »). En interne, les valeurs seront toutes converties dans l'unité principale et le RDF exporté affichera la valur dans cette unité. L'affichage des unités dans le wiki est largement configurable et n'a pas besoin de recourir à l'unité principale (v. infra).

Unités de conversion qui ne sont pas linéaires

Remarquez qu'il est seulement possible de spécifier un facteur de conversion linéaire, un multiplicateur. Vous ne pouvez pas avoir différentes bases pour différentes unités, des facteurs de conversion logarithmic, Ainsi, vous ne pouvez pas créer un type modifiable pour la température qui convertirait les degrés Celsius en Fahrenheit. Pour la température, SMW fournit déjà un type intégré Type:Temperature gérant cette conversion, mais ceci n'est pas forcément vrai dans d'autres cas.

SMW ne gère pas des unités non linéaires modifiables qui seraient définies dans le wiki. Une manière de contourner ceci est d'utiliser le Type:Float qui accepterait des chaînes d'unités après un nombre donné. Ce type ne sait pas faire de conversion entre ces valeurs, mais en reconnaît l'unité et est capable de distinguer différentes unités. Si tous les utilisateurs d'un type bizarre acceptent d'utiliser la même unité, cette fonction sera similaire à un réel support d'unité. Si quelqu'un utilise d'autres unités, alors la valeur donnée ne sera au moins pas confondue avec les valeurs dans d'autres unités.

Une manière plus élaborée d'appréhender la situation est d'écrire un petit programme implémentant les conversions voulues. Il n'est pas compliqué d'étendre SMW de cette manière et on pourrait simplement copier et adapter le code pour Type:Temperature (qui fait moins de soixante-dix lignes, y compris les commentaires). Si un tel type modifiable était disponible pour les attributs qui devait utiliser des nombre décimaux auparavant, alors le type de l'attribut peut être changé sans aucun effet négatif sur les articles existants. Lorsqu'on a affaire à des unités nons gérées, les types mofifiables se comportent comme de simples nombres décimaux.

Modifier l'affichage des unités

En utilisant les nombres à virgule flottante, un seul type peut gérer un grand nombre d'unités. Par exemple, un type pour la longueur peut autant gérer les années lumière que les nanomètres. Cependant, si quelqu'un utilise un attribut « Auteur » pour définir la hauteur de montagnes, il sera difficile d'afficher cette valeur en années lumière ou en nanomètres.

À cet effet, SMW permet de spécifier quelles sont les unités gérées qui peuvent être affichées pour un attribut d'un certain type. Cette information est spécifique à l'attribut : deux attributs peuvent tous deux utiliser le Type:Longueur en ayant un affichage différent dans le wiki. Si aucune préférence d'affichage n'est indiquée, un attribut affichera tous ses types d'unité avec l'unité par défaut, (celle avec un facteur de 1). comme premier choix.

Pour définir une unité d'affichage, les attributs spéciaux main display unit et display unit sont utilisés. Par exemple, l'article Attribute:Height pourrait contenir les rapports :

[[Unité principale d'affichage:=km]]
[[Unité principale d'affichage:=ft]]
[[Unité principale d'affichage:=miles]]

Cela se traduit dans la boîte à idée, qui n'affiche que trois unités pour les valeurs de l'attribut Hauteur. Ce réglage fonctionne pour tous les attributs qui utilisent des types géarnt des unités, indépendamment de la manière avec laquelle le type a été modifié ou implémenté.

Si vous modifiez l'unité d'affichage par défaut, pensez à afficher l'« unité standard » aux utilisateurs comme une des unités d'affichage possibles puisque SMW convertira toujours les valeurs dans l'unité standard lors de leur enregistrement. ent des types géarnt des unités, indépendamment de la manière avec laquelle le type a été modifié ou implémenté.

Si vous modifiez l'unité d'affichage par défaut, pensez à afficher l'« unité standard » aux utilisateurs comme une des unités d'affichage possibles puisque SMW convertira toujours les valeurs dans l'unité standard lors de leur enregistrement.