Aller au contenu principal

4. Types de relation de lien

Dans le cas le plus simple, un type de relation de lien identifie la sémantique d'un lien. Par exemple, un lien dont le type de relation est "copyright" indique que la ressource identifiée par l'IRI cible est un énoncé des conditions de copyright applicables à l'IRI de contexte actuel.

Les types de relation de lien peuvent également être utilisés pour indiquer que la ressource cible possède des attributs particuliers ou présente des comportements particuliers ; par exemple, un lien "service" implique que la ressource identifiée fait partie d'un protocole défini (dans ce cas, une description de service).

Les types de relation ne doivent pas être confondus avec les types de média [RFC4288] ; ils n'identifient pas le format de la représentation obtenue lorsque le lien est déréférencé. Ils décrivent seulement la manière dont le contexte actuel est lié à une autre ressource.

Les types de relation ne devraient pas (SHOULD NOT) inférer de sémantique supplémentaire en fonction de la présence ou de l'absence d'un autre type de relation de lien, ou de sa propre cardinalité d'occurrence. Une exception à cela est la combinaison des types de relation enregistrés "alternate" et "stylesheet", qui a une signification particulière en HTML4 pour des raisons historiques.

Il existe deux sortes de types de relation : enregistrés et d'extension.

4.1. Types de relation enregistrés​

Les types de relation bien définis peuvent être enregistrés en tant que jetons pour des raisons de commodité et/ou afin de promouvoir leur réutilisation par d'autres applications. Cette spécification établit un registre IANA de ces types de relation ; voir la section 6.2.

Les noms des types de relation enregistrés doivent (MUST) être conformes à la règle reg-rel-type, et doivent (MUST) être comparés caractère par caractère de manière insensible à la casse. Ils devraient (SHOULD) être appropriés à la spécificité du type de relation ; c'est-à-dire que si la sémantique est très spécifique à une application particulière, le nom devrait le refléter, afin que des noms plus généraux restent disponibles pour un usage moins spécifique.

Les types de relation enregistrés ne doivent pas (MUST NOT) contraindre le type de média de l'IRI de contexte, et ne doivent pas (MUST NOT) contraindre les types de média de représentation disponibles de l'IRI cible. Cependant, ils peuvent spécifier les comportements et les propriétés de la ressource cible (par exemple, les méthodes HTTP autorisées, les types de média de requête et de réponse qui doivent être pris en charge). De plus, des applications spécifiques de liaison peuvent exiger que des données supplémentaires soient incluses dans le registre. Par exemple, les navigateurs Web pourraient vouloir savoir quels types de liens doivent être téléchargés lorsqu'ils archivent une page Web ; si cette information spécifique à l'application se trouve dans le registre, de nouveaux types de relation de lien peuvent contrôler ce comportement sans coordination inutile.

Pour tenir compte de cela, des données d'application par entrée peuvent être ajoutées au registre des types de relation de lien, en les enregistrant dans le registre des données d'application des relations de lien (section 6.3).

4.2. Types de relation d'extension​

Les applications qui ne souhaitent pas enregistrer un type de relation peuvent utiliser un type de relation d'extension, qui est un URI [RFC3986] identifiant de manière unique le type de relation. Bien que l'URI puisse pointer vers une ressource contenant une définition de la sémantique du type de relation, les clients ne devraient pas (SHOULD NOT) accéder automatiquement à cette ressource afin d'éviter de surcharger son serveur.

Lorsque des types de relation d'extension sont comparés, ils doivent (MUST) être comparés en tant que chaînes de caractères (après conversion en URI s'ils sont sérialisés dans un format différent, tel qu'un Curie [W3C.CR-curie-20090116]) de manière insensible à la casse, caractère par caractère. Pour cette raison, des URI entièrement en minuscules devraient (SHOULD) être utilisés pour les relations d'extension.

Notez que bien que les types de relation d'extension soient tenus d'être des URI, une sérialisation de liens peut spécifier qu'ils sont exprimés sous une autre forme, tant qu'ils peuvent être convertis en URI.