[1] [DFN[[[Web Linking]]]] は、[[文書]]の形式や[[応用]]に依存しない[[型付きリンク]]の[[枠組]]です。 [[RFC 5988]] として [[IETF]] で標準化されています。 * 仕様書 [REFS[ - [2] [CITE@en[RFC 5988 - Web Linking]] ([TIME[2012-03-01 09:27:46 +09:00]] 版) ]REFS] * リンク [7] [[Web Linking]] における[DFN[[RUBYB[リンク]@en[link]]]]は、 [[RFC 3987]] [[IRI]] によって識別される2つの[[資源]]の間の[RUBYB[型付きの連結]@en[typed connection]]です。 [[リンク]]は次の要素により構成されます。 [SRC[>>2 3.]] [FIG[ - [[文脈IRI]] - [[リンク関係型]] - [[対象IRI]] - [[任意選択]]で、[[対象属性群]] ]FIG] ;; [8] これは、「(文脈 IRI) は (関係型) な[[資源]]を (対象 IRI) に持っており、 これは (対象属性群) である」という文と解釈できます [SRC[>>2 3.]]。 [9] [[リンク]]の[RUBYB[[[濃度]]]@en[cardinality]]には制限がなく、 ある [[IRI]] からの、あるいはある [[IRI]] への[[リンク]]が複数あっても構いませんし、 特定の2つの [[IRI]] の間に異なる[[リンク型]]の複数の[[リンク]]があっても構いません。 [SRC[>>2 3.]] ;; [10] 特定の2つの [[IRI]] の間に同じ[[リンク型]]の複数の[[リンク]]があっても良いかには言及されていません。 [11] 特定の[[直列化]]方式における、あるいは[[直列化]]方式をまたがった複数の[[リンク]]相互の順序やその意味は定義されていません。 [[応用]]によって順序に意味を持たせたければ、持たせることができます。 [SRC[>>2 3.]] ;; [22] [[Web Linking]] 本体の定義においては明記されていませんが、 [CODE(HTTP)@en[[[Link:]]]] 欄の説明によると、[[文脈IRI]]は「[RUBYB[匿名]@en[anonymous]]」となることがあるようです。 ([CODE(HTTP)@en[[[anchor]]]] の項を参照してください。) * 対象属性群 [12] [RUBYB[[[対象属性群]]]@en[target attributes]]は、[[リンク]]やその[[対象]]を説明する名前と値の組の集合です。 ただしその名前や用法については定義していません。 [SRC[>>2 3.]] [EG[ [13] 例えば、[[対象IRI]]の[[MIME型]]のヒントを含めることができます。 ]EG] [23] これは [CODE(HTTP)@en[[[Link:]]]] 欄における [CODE(HTTP)@en[[[type]]]], [CODE(HTTP)@en[[[hreflang]]]] などの[[引数]]が該当します。 * 直列化 [14] [[Web Linking]] 本体仕様としては、具体的に[[リンク]]をどう表現するか ([RUBYB[[[直列化]]]@en[serialization]]) を定義していません。 [SRC[>>2 3.]] [15] [[RFC 5988]] は次のような直列化を示しています。 [FIG[ - [16] [[HTTP]] [CODE(HTTP)@en[[[Link:]]]] [[欄]] - [17] [[HTML4]] [CODE(HTMLe)@en[[[link]]]] [[要素]] - [18] [[Atom 1.0]] [CODE(XMLe)@en[[[atom:link]]]] [[要素]] ]FIG] [24] 他に次のような[[直列化]]方式があります。 [FIG[ - [25] [[CoRE Link Format]] ]FIG] [21] 定義上[[対象IRI]]や[[文脈IRI]]は [[IRI]] とされていますが、実際には[[プロトコル]]等の制限で [[URI]] となることもあります。 [SRC[>>2 3.]] * 歴史 [3] [[Web]] 上の[[資源]]の関係や、その関係の[RUBYB[型]@en[type]]を表現する方法 [WEAK[(すなわち[[リンク]])]] は [[HTML]] や [[Atom]] で定義されていますが、 これらは概念的に類似しているものの、別個に規定されています。[[資源]]が複数の[[表現]]を持つ場合など、 具体的な表現方法の如何に関わらず、書式に依存しない[[型付きリンク]]の枠組を規定することは有用であると考えられたことから、 [[IETF]] は [[RFC 5988]] でこれを [[Web Linking]] として標準化しました。 [SRC[>>2 1.]] [4] 既に [[Atom]] は [CODE(XMLe)@en[[[atom:link]]]] [[要素]]の [CODE(XMLa)@en[[[rel]]]] [[属性]]のために[[リンク型]]の [[IANA]] 登録簿と語彙を規定していましたが、 [[RFC 5988]] はこれを改訂して書式に依存しない[[リンク型]]の登録簿としました。更に、 [[HTML4]] で規定されていた[[リンク型]]を登録簿に追加しています。 [5] [[RFC 5988]] の支持者は [[HTML]] の[[リンク型]]の定義を [[RFC 5988]] に変更するべく [[HTML WG]] で工作活動を行いましたが、結局十分な支持を集められませんでした。 ;; [6] とはいえ一連の議論で元々 [[WHATWG Wiki]] にあった [[HTML]] の登録簿は廃棄させられ、 [[microformats wiki]] に新しく登録簿が作られることになりました。 [26] [[RFC 5988]] に基づき[[リンク型]]を定義する [[RFC]] は、このような流れの中で勝手に [[HTML]] の [CODE(HTMLa)@en[[[rel]]]] [[属性]]で当該[[リンク型]]を使った例を示していたりします。 ;; [27] しかしながら [[Web Linking]] および関連 [[RFC]] は [[HTML]] で使うために十分な規定を含んでいません。 [[大文字]]と[[小文字]]の違いなど [[Web Linking]] と [[HTML]] の定義の違いについて明確な規定がありませんし、 [[ハイパーリンク]]と[[外部資源へのリンク]]の違いなど [[HTML]] での[[適合性]]や[[処理モデル]]との関係も不明確です。 * 関連 [19] 抽象的な「[[リンク]]」の形式を規定し、それに則った具体的な[[リンク]]を各種文書形式に規定させる、 という発想は [[HyTime]] や初期の [[XLink]] 案、あるいは [[HLink]] と共通していますが、 [[Web Linking]] はより抽象的かつ単純です。[[リンク]]そのものの標準化を試みた [[HyTime]] などと異なり、 [[Web Linking]] における[[リンク]]の定義はむしろ[[リンク型]]の登録簿の標準化の試みのために最低限の体裁を整えたに過ぎないと評価することもできるでしょう。 [20] [[Web Linking]] はその一般的な名前に反して [[Web]] における[[リンク]]のごく一部の限られた種類しかカバーしていません。 例えば [[HTML]] の [CODE(HTMLe)@en[[[a]]]] [[要素]]のように [[IRI]] で表現できるとは限らない[[アンカー]]を扱う[[リンク]]は表現できません。