Passa al contenuto principale

4. Tipi di relazione dei link

Nel caso più semplice, un tipo di relazione del link (link relation type) identifica la semantica di un link. Ad esempio, un link con il tipo di relazione "copyright" indica che la risorsa identificata dall'IRI di destinazione è un'asserzione dei termini di copyright applicabili all'IRI di contesto corrente.

I tipi di relazione dei link possono anche essere usati per indicare che la risorsa di destinazione ha particolari attributi, o presenta particolari comportamenti; ad esempio, un link "service" implica che la risorsa identificata fa parte di un protocollo definito (in questo caso, una descrizione di servizio).

I tipi di relazione non devono essere confusi con i tipi di media [RFC4288]; essi non identificano il formato della rappresentazione che risulta quando il link viene dereferenziato. Piuttosto, descrivono soltanto come il contesto corrente è correlato a un'altra risorsa.

I tipi di relazione non dovrebbero (SHOULD NOT) dedurre alcuna semantica aggiuntiva basandosi sulla presenza o sull'assenza di un altro tipo di relazione del link, o sulla propria cardinalità di occorrenza. Un'eccezione a ciò è la combinazione dei tipi di relazione registrati "alternate" e "stylesheet", che ha un significato speciale in HTML4 per ragioni storiche.

Esistono due tipi di relazione: registrati ed estensione.

4.1. Tipi di relazione registrati​

I tipi di relazione ben definiti possono essere registrati come token per comodità e/o per promuoverne il riutilizzo da parte di altre applicazioni. Questa specifica istituisce un registro IANA di tali tipi di relazione; vedere la Sezione 6.2.

I nomi dei tipi di relazione registrati devono (MUST) conformarsi alla regola reg-rel-type, e devono (MUST) essere confrontati carattere per carattere in modo insensibile alla distinzione tra maiuscole e minuscole. Essi dovrebbero (SHOULD) essere appropriati alla specificità del tipo di relazione; vale a dire, se la semantica è altamente specifica di una particolare applicazione, il nome dovrebbe rifletterlo, in modo che nomi più generali siano disponibili per usi meno specifici.

I tipi di relazione registrati non devono (MUST NOT) vincolare il tipo di media dell'IRI di contesto, e non devono (MUST NOT) vincolare i tipi di media di rappresentazione disponibili dell'IRI di destinazione. Tuttavia, essi possono specificare i comportamenti e le proprietà della risorsa di destinazione (ad esempio, i metodi HTTP consentiti, i tipi di media di richiesta e risposta che devono essere supportati). Inoltre, applicazioni specifiche del collegamento possono richiedere l'inclusione di dati aggiuntivi nel registro. Ad esempio, i browser Web potrebbero voler sapere quali tipi di link devono essere scaricati quando archiviano una pagina Web; se queste informazioni specifiche dell'applicazione sono nel registro, nuovi tipi di relazione dei link possono controllare questo comportamento senza coordinamento superfluo.

Per tener conto di ciò, dati applicativi per singola voce possono essere aggiunti al registro dei tipi di relazione dei link, registrandoli nel registro dei dati applicativi delle relazioni dei link (Sezione 6.3).

4.2. Tipi di relazione di estensione​

Le applicazioni che non desiderano registrare un tipo di relazione possono utilizzare un tipo di relazione di estensione (extension relation type), che è un URI [RFC3986] che identifica univocamente il tipo di relazione. Sebbene l'URI possa puntare a una risorsa che contiene una definizione della semantica del tipo di relazione, i client non dovrebbero (SHOULD NOT) accedere automaticamente a tale risorsa per evitare di sovraccaricare il suo server.

Quando i tipi di relazione di estensione vengono confrontati, essi devono (MUST) essere confrontati come stringhe (dopo la conversione in URI, se serializzati in un formato diverso, come un Curie [W3C.CR-curie-20090116]) in modo insensibile alla distinzione tra maiuscole e minuscole, carattere per carattere. Per questo motivo, si dovrebbero (SHOULD) usare URI interamente in minuscolo per le relazioni di estensione.

Si noti che, sebbene i tipi di relazione di estensione debbano essere URI, una serializzazione di link può specificare che essi siano espressi in un'altra forma, purché possano essere convertiti in URI.