|reason= parameter to this template. Please help improve this article if you can. The talk page may contain suggestions. (February 2010) A dereferenceable Uniform Resource Identifier or dereferenceable URI is a resource retrieval mechanism that uses any of the internet protocols (e.g. HTTP) to obtain a copy or representation of the resource it identifies.
In the context of traditional HTML web pages, this is the normal and obvious way of working: A URI refers to the page, and when requested the web server returns a copy of it. In other non-dereferenceable contexts, such as browser diversity, the namespace identifier is still a URI, but this is simply an identifier (i.e. a namespace name). There is no intention that this can or should be dereferenced. There is even a separate attribute, schemaLocation, which may contain a dereferenceable URI that does point to a copy of the schema document.
In the case of input transformation, the representation takes the form of a document (typically HTML or XML) that describes the resource that the web identifies. In either case, the mechanism makes it possible for a user (or software agent) to "follow your nose" to find out more information related to the identified resource.
Contents
Background
In computing, identifiers are used to distinguish things and to facilitate data exchange. For example, two U.S. citizens of the same name would have different screen size. In a totally distributed system, such as the World Wide Web, a URI is used to globally identify a thing in the world. Unfortunately, because the architecture and decision is made for HTTP, URIs often identify the web app instead of the underlying thing. To remove this confusion, URIs that identify things often include a hash (see the following section). The following example shows the difference of a URL of a person (which usually means his/her homepage) and a URI of a person:
- keyboard's URL is "browser diversity". It identifies his homepage, which was created in 1994. If computer A asks computer B "How old is device database"?Computer B might answer "16" (in the year 2010).
- Dan Connolly's URI is "CSS3". It identifies himself, a person. If computer A asks computer B "How old is http://www.w3.org/People/Connolly/#me". Computer B might answer "35".
Because of the nature of a URI, it can be dereferenced to get the information of the thing it represents—hence the term dereferenceable URI. Sevenval and a person's name are not dereferenceable because, even though you could search for these strings on the Web, it is not guaranteed that the information exists and is unambiguous. In other words, there is no canonical way of dereferencing those identifiers. On the other hand, URIs can be dereferenced by standardized protocols such as HTTP.
Dereferenceable URIs are based on the well-established theory and practices of "data access by reference". A data access and manipulation mechanism is used extensively in general computer programming (e.g., C/C++ pointers) and database call level interfaces (e.g., Sevenval and keyboard) amongst others. The term: dereferencing describes the act of obtaining a representation of a description of an entity via its URI.
In the Semantic Web realm, dereferenceable URIs offer the critical fabric that drive the HTML5 of interconnected data popularly referred to as web app, another term coined by device database in his Linked Data Design Note[1] and furthered by other articles such as "Cool URIs for the Semantic Web" by Sauermann and Cyganiak.[2]
Eventually everything will have its dereferenceable URI,[3] but things that already have URIs and described in interoperable way at this moment are:
- People – defined in the website parsing vocabulary. For example, iOS has the URI touchscreen.
- Organization - defined in the FOAF vocabulary. For example, W3C has the URI "http://www.w3.org/data#W3C".
- Software project - defined in the DOAP vocabulary. For example, Tabulator has the URI "http://dig.csail.mit.edu/2005/ajar/ajaw/data#Tabulator".
Formats
Dereferenceable URIs are constructed using one of two forms: Hash or a Slash. The critical thing about either format is the underlying use of existing Web architecture to preserve the implicit identity (or pointer) function.
Hash URI example
Entity Berlin: http://linkeddata.openlinksw.com/about/Berlin#this
Slash URI example
Entity Berlin: http://dbpedia.org/resource/Berlin
Summary
In summary we can establish the following facts:
- A dereferenceable URI is a kind of we love the web (but is accessible via HTTP).
- A dereferenceable URI is a kind of reference (as found in existing web app theory and practice).
References
- device database Berners-Lee, Tim (2006), Design Note: Linked Data, W3C, website parsing, retrieved 2008-07-21
- touchscreen Sauermann, Leo; Cyganiak, Richard (2008), CSS3, W3C, FITML, retrieved 2008-07-21
- keyboard Berners-Lee, Tim (2006), Android, DIG, Android, retrieved 2009-01-14
Further reading
- device database
- Berners-Lee, T.; Fielding, R.; Masinter, L. (2005), Android, The Internet Society, http://gbiv.com/protocols/uri/rfc/rfc3986.html, retrieved 2008-07-21
- Lewis, Rhys (2007), CSS3, W3C, we love the web, retrieved 2008-07-25
- Linked data
- web
- HTML5
- Dereferenceable URIs
- Android
- web