リソース (resource) はWorld Wide Web (WWW) の基本となる概念である。しかしながら、それが実際に意味するものについては複数の理解がある。
リソースという用語は、Uniform Resource Locator (URL) の対象を指すものとして初めて登場したが、後にあらゆるUniform Resource Identifier (URI、.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation.cs-ja1 q,.mw-parser-output .citation.cs-ja2 q{quotes:"「""」""『""』"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free a,.mw-parser-output .citation .cs1-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited a,.mw-parser-output .id-lock-registration a,.mw-parser-output .citation .cs1-lock-limited a,.mw-parser-output .citation .cs1-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription a,.mw-parser-output .citation .cs1-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:#d33}.mw-parser-output .cs1-visible-error{color:#d33}.mw-parser-output .cs1-maint{display:none;color:#3a3;margin-left:0.3em}.mw-parser-output .cs1-format{font-size:95%}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}RFC 3986
)、またはInternationalized Resource Identifier (IRI、RFC 3987)、が指し示すものを含むように拡張された。セマンティック・ウェブにおいては抽象的なリソースとその意味プロパティがResource Description Framework (RDF) に基づいた言語群で記述される。リソースの概念はウェブの歴史の中で進化していった。初期の静的に参照可能な文書やファイルという概念から、より汎用的かつ抽象的な定義へと変化し、現在ではウェブ上の識別できる、または名前が付けられる、参照できる、処理できる、あらゆるものを含むようになった。その宣言的な側面(識別できる、名前が付けられる)と機能的な側面(参照できる、処理できる)は初期のウェブの仕様においてははっきりと区別されておらず、その概念は長い間、そして現在でも、難解な議論の的となっている。 ウェブの初期の仕様 (1990-1994) では、「リソース」という語はほとんど使われていない。ウェブとはハイパーテキストでリンクしあった静的に参照可能なオブジェクト、基本的にはファイルと文書、のネットワークそれ以上でも以下でもなかった。それらのオブジェクトは特定のプロトコルで参照・処理されるものだとしかみなされていなかった。ウェブページはHTTPでアクセスされ、ファイルはFTPで交換される、など。
文書・ファイルからウェブでアクセスできるものへ
後にRFC 1738(1994年12月)でURLの仕様が定められ、"Universal"という単語が"Uniform"と置き換えられた。この文書ではリソースという語がインターネット上で「利用可能な」または「存在しており、アクセスできる」オブジェクトを指して、より頻繁に用いられている。しかしながら、依然「リソース」という語について明示的に定義されてはいなかった。 最初の明示的なリソースの定義はRFC 2396
ウェブでアクセスできるものから抽象リソースへ
A resource can be anything that has identity. Familiar examples include an electronic document, an image, a service (e.g., "today's weather report for Los Angeles"), and a collection of other resources. Not all resources are network "retrievable"; e.g., human beings, corporations, and bound books in a library can also be considered resources. ⇒[日本語訳](Resourceを「資源」と訳している。)
挙げられている例は物理的なものばかりだが、この定義によってより抽象的なリソースへの道が開かれた。ある概念にアイデンティティを与え、アイデンティティを正しい書式のURIで表現すれば、概念はリソースに成り得る。2005年1月、RFC 3986でこの定義拡張が完全に明示された:
... abstract concepts can be resources, such as the operators and operands of a mathematical equation, the types of a relationship (e.g., "parent" or "employee"), or numeric values (e.g., zero, one, and infinity). ⇒[日本語訳]
RDFおよびセマンティック・ウェブにおけるリソース詳細は「Resource Description Framework」を参照
1999年にリリースされたRDF (Resource Description Framework) はリソースについて記述すること、言い換えればリソースのメタデータを標準的な方法で言明すること、を第一に意図している。RDFによるリソース記述はトリプル(主語・述語・目的語)を単位とし、主語は記述するリソース、述語はプロパティの種類、目的語はデータや他のリソースを表す。述語自身もリソースとしてURIで識別される。つまり、"title"(タイトル)や"author"(著者)といった述語もRDFではリソースとして表現され、他のトリプルの主語として再帰的に使うことができる。この帰納的な原理に基づき、RDF SchemaやOWLといったRDFの語彙ではクラスやプロパティ、その他の概念をURIで識別される抽象リソースの形で定義している。
RDFでは無名リソースまたはブランクノードと呼ばれるURIを持たないリソースも実用のために定義されている。 HTTP URI (HTTP URL) を抽象リソース(クラスなど)の識別に用いることは、例えば RDF Schema やOWLにおいて広く行われている。それらのURIはHTTPと関連付けられているので、HTTPでアクセスされた際に、典型的にはウェブブラウザで、リソースのどのような種類の表現を(もしあれば)返すべきか、また抽象リソースと情報リソースを区別するためにURIの構文をどう使うべきか、といった疑問が生まれている。RFC 3986
HTTP URIを抽象リソースの識別に用いることの問題