ウェブにおけるリソースの概念
「リソース」は、
World Wide Web (WWW) の根幹をなす概念であり、ウェブの歴史と共にその意味合いは進化してきました。当初はURLが指し示す対象として登場しましたが、現在ではURIやIRIが示すものを含む、より広範な概念として理解されています。セマンティックウェブにおいては、抽象的なリソースとその意味がRDFによって記述されます。
リソース概念の歴史的変遷
リソースの概念は、ウェブの進化と共に変化してきました。初期のウェブでは、リソースは静的に参照可能な
文書やファイルとして認識されていました。しかし、時間の経過とともに、より汎用的で抽象的な定義へと拡張され、現在ではウェブ上で識別可能、参照可能、処理可能なあらゆるものがリソースとして扱われるようになりました。この概念の宣言的側面(識別可能、名前が付けられる)と機能的側面(参照可能、処理可能)は、初期のウェブ仕様では明確に区別されておらず、現在でも議論の対象となっています。
文書・ファイルからウェブでアクセスできるものへ
1990年代初頭のウェブでは、「リソース」という言葉はほとんど使われていませんでした。ウェブは、
ハイパーテキストでリンクされた静的に参照可能なオブジェクト(主にファイルや
文書)のネットワークとして認識され、HTTPやFTPなどの特定のプロトコルで参照・処理されるものと考えられていました。
1994年6月に公開されたRFC 1630で、URIの概念が定義され、URLとURNがそのサブセットとして登場し、リソースは「識別できる何か」として暗黙的に定義されました。この時点では、リソースの概念はURI、URL、URNに包含される形でしか言及されていませんでした。
1994年12月のRFC 1738では、URLの仕様が定められ、「リソース」という言葉は、インターネット上で「利用可能な」または「存在し、アクセスできる」オブジェクトを指す言葉としてより頻繁に使われるようになりました。
ウェブでアクセスできるものから抽象リソースへ
リソースの最初の明示的な定義は、
1998年8月のRFC 2396にあります。この
文書では、リソースを「アイデンティティを持つあらゆるもの」と定義し、電子
文書、画像、サービス、リソースの集合などを例に挙げました。また、人間、企業、図書館の蔵書などの物理的なものもリソースに含まれるとしました。この定義は、より抽象的なリソースへの道を開き、概念にアイデンティティを与え、URIで表現することで、概念をリソースとして扱うことができるようになりました。
2005年1月のRFC 3986では、数学の方程式の演算子や被演算子、関係の種類、数値などの抽象的な概念もリソースに含まれると明示されました。
1999年にリリースされたRDFは、リソースの
メタデータを標準的な方法で記述することを目的としています。RDFによるリソース記述は、主語、述語、目的語のトリプルを単位として構成されます。主語は記述対象のリソース、述語はプロパティの種類、目的語はデータまたは別のリソースを表します。述語もURIで識別されるリソースとして扱われ、再帰的に他のトリプルで使用できます。この原理に基づき、RDF SchemaやOWLなどの語彙では、クラス、プロパティ、その他の概念がURIで識別される抽象リソースとして定義されています。また、RDFでは、URIを持たない無名リソース(ブランクノード)も定義されています。
HTTP URIを抽象リソースの識別に用いることの問題
HTTP URIを抽象リソース(クラスなど)の識別に用いることは、RDF SchemaやOWLで広く行われています。HTTP URIはHTTPと関連付けられているため、HTTPアクセス時にどのような表現を返すか、抽象リソースと情報リソースをどう区別するかという問題が生じます。URIの規格ではリソースの処理を個別のプロトコルに委ねており、これらの疑問に対する答えはありません。情報リソースにはフラグメント識別子を使わず、抽象リソースのみに使うという方法も提案されていますが、現実的な実装は困難です。HTTP URIが識別すべきリソースの種類に関する問題はW3CのhttpRange-14として知られ、TAGは
2005年に、GETリクエストに対するサーバーの応答の種類によって情報リソースと非情報リソースを区別するという解決策を示しました。しかし、この解決策には、情報リソースとその他のリソースの明確な区別は不可能であり、対象リソースの曖昧さはURIの本質であるとする批判も存在します。
リソースの所有と信頼性
RDFでは、誰でもあらゆるものについて言明できます。リソースは形式的な記述で定義され、誰でも発行、複製、変更できます。古典的なリソース(
ウェブページやファイル)は発行者に所有権があることが明確ですが、抽象リソースはRDF記述の積み重ねによって定義され、単一の発行者によって管理される必要も、一貫性を持つ必要もありません。リソースが明確で信頼できる所有権による権威ある定義を持つべきかどうか、またその記述を他の記述とどう区別するか、という問題は未解決です。また、知的所有権がこれらの記述にどう適用されるかという問題も存在します。
RESTにおけるリソース
RESTにおけるリソースは、RDFにおけるリソースよりも具体的なものです。リソースはURIによって識別され、標準化されたCRUDインターフェース(HTTPのPOST、GET、PUT、DELETE)を持ち、ネットワークを通じて表現(XMLなど)が交換されます。リソースとその表現は明確に区別されないこともあります。
参考資料
What do HTTP URIs Identify? by Tim Berners-Lee
Presentations at IRW 2006 conference
A Pragmatic Theory of Reference for the Web by Dan Connolly
In Defense of Ambiguity by Patrick Hayes
*
Towards an OWL ontology for identity on the web by Valentina Presutti and Aldo Gangemi, SWAP2006 conference