A persistent uniform resource locator (PURL) is a
uniform resource locator
A uniform resource locator (URL), colloquially known as an address on the World Wide Web, Web, is a reference to a web resource, resource that specifies its location on a computer network and a mechanism for retrieving it. A URL is a specific t ...
(URL) (i.e., location-based
uniform resource identifier
A Uniform Resource Identifier (URI), formerly Universal Resource Identifier, is a unique sequence of characters that identifies an abstract or physical resource, such as resources on a webpage, mail address, phone number, books, real-world obje ...
or URI) that is used to
redirect
Redirect and its variants (e.g., redirection) may refer to:
Arts, entertainment, and media
* Redirect (album), ''Redirect'' (album), 2012 Christian metal album and its title track by Your Memorial
* Redirected (film), ''Redirected'' (film), a 20 ...
to the location of the requested
web resource. PURLs redirect
HTTP
HTTP (Hypertext Transfer Protocol) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, wher ...
clients using
HTTP status codes.
Originally, PURLs were recognizable for being hosted at purl.org or other hostnames containing
purl
. Early on many of those other hosts used descendants of the original OCLC PURL system software. Eventually, however, the ''PURL concept'' came to be generic and was used to designate any redirection service (named ''PURL resolver'') that:
* has a "root URL" as the ''resolver'' reference (e.g.
http://myPurlResolver.example
);
* provides means, to its user-community, to include new ''names'' in the root URL (e.g.
http://myPurlResolver.example/name22
);
* provides means to associate each ''name'' with its URL (to be redirected), and to update this redirection-URL;
* ensure the persistence (e.g. by contract) of the root URL and the ''PURL resolver'' services.
PURLs are used to curate the URL resolution process, thus solving the problem of transitory URIs in location-based
URI scheme
A Uniform Resource Identifier (URI), formerly Universal Resource Identifier, is a unique sequence of characters that identifies an abstract or physical resource, such as resources on a webpage, mail address, phone number, books, real-world obje ...
s like HTTP. Technically the ''string resolution'' on PURL is like ''
SEF URL resolution''.
The remainder of this article is about the OCLC's PURL system, proposed and implemented by
OCLC
OCLC, Inc. See also: is an American nonprofit cooperative organization "that provides shared technology services, original research, and community programs for its membership and the library community at large". It was founded in 1967 as the ...
(the Online Computer Library Center).
History
The PURL concept was developed by Stuart Weibel and Erik Jul at
OCLC
OCLC, Inc. See also: is an American nonprofit cooperative organization "that provides shared technology services, original research, and community programs for its membership and the library community at large". It was founded in 1967 as the ...
in 1995. The PURL system was implemented using a forked pre-1.0 release of
Apache HTTP Server
The Apache HTTP Server ( ) is a free and open-source software, free and open-source cross-platform web server, released under the terms of Apache License, Apache License 2.0. It is developed and maintained by a community of developers under the ...
. The software was modernized and extended in 2007 by
Zepheira under contract to OCLC and the official website moved to
purlz.org
(the 'Z' came from the Zepheira name and was used to differentiate the PURL
open-source software
Open-source software (OSS) is Software, computer software that is released under a Open-source license, license in which the copyright holder grants users the rights to use, study, change, and Software distribution, distribute the software an ...
site from the PURL resolver operated by OCLC).
PURL version numbers may be considered confusing. OCLC released versions 1 and 2 of the Apache-based source tree, initially in 1999 under the OCLC Research Public License 1.0 License and later under the OCLC Research Public License 2.0 License. Zepheira released PURLz 1.0 in 2007 under the Apache License, Version 2.0. PURLz 2.0 was released in
Beta testing
Software testing is the act of checking whether software satisfies expectations.
Software testing can provide objective, independent information about the quality of software and the risk of its failure to a user or sponsor.
Software test ...
in 2010 but the release was never finalized. The
Callimachus Project implemented PURLs as of its 1.0 release in 2012.
The oldest PURL
HTTP
HTTP (Hypertext Transfer Protocol) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, wher ...
resolver was operated by
OCLC
OCLC, Inc. See also: is an American nonprofit cooperative organization "that provides shared technology services, original research, and community programs for its membership and the library community at large". It was founded in 1967 as the ...
from 1995 to September 2016 and was reached as
purl.oclc.org
as well as
purl.org
,
purl.net
, and
purl.com
.
Other notable PURL resolvers include the US Government Printing Office (
purl.fdlp.gov
), which is operated for the
Federal Depository Library Program
The Federal Depository Library Program (FDLP) is a government program created to make Federal government of the United States, U.S. federal government publications available to the public at no cost. there are 1,114 depository libraries in the U ...
and has been in operation since 1997.
The PURL concept is used in the
w3id.org
, that may replace the old PURL-services and PURL-technologies.
On 27 September 2016 OCLC announced a cooperation with
Internet Archive
The Internet Archive is an American 501(c)(3) organization, non-profit organization founded in 1996 by Brewster Kahle that runs a digital library website, archive.org. It provides free access to collections of digitized media including web ...
resulting in the transfer of the resolver service and its administration interface to Internet Archive.
The service is supported on newly created software, separate from all previous implementations. The transfer re-enabled the ability to manage PURL definitions that had been disabled in the OCLC-hosted service for several months. The service hosted on Internet Archive servers supports access via
purl.org
,
purl.net
,
purl.info
, and
purl.com
. OCLC now redirects DNS requests for
purl.oclc.org
to
purl.org
.
Principles of operation
The PURL concept allows for generalized URL curation of HTTP URIs on the
World Wide Web
The World Wide Web (WWW or simply the Web) is an information system that enables Content (media), content sharing over the Internet through user-friendly ways meant to appeal to users beyond Information technology, IT specialists and hobbyis ...
. PURLs allow third party control over both URL resolution and resource metadata provision.
A URL is simply an address of a resource on the World Wide Web. A Persistent URL is an address on the World Wide Web that causes a redirection to another Web resource. If a Web resource changes location (and hence URL), a PURL pointing to it can be updated. A user of a PURL always uses the same Web address, even though the resource in question may have moved. PURLs may be used by publishers to manage their own information space or by Web users to manage theirs; a PURL service is independent of the publisher of information. PURL services thus allow the management of hyperlink integrity. Hyperlink integrity is a design trade-off of the World Wide Web, but may be partially restored by allowing resource users or third parties to influence where and how a URL resolves.
A simple PURL works by responding to an HTTP GET request by returning a response of type 302 (equivalent to the HTTP status code 302, meaning "Found"). The response contains an HTTP "Location" header, the value of which is a URL that the client should subsequently retrieve via a new HTTP GET request.
PURLs implement one form of
persistent identifier
A persistent identifier (PI or PID) is a long-lasting reference to a document, file, web page, or other object.
The term "persistent identifier" is usually used in the context of digital objects that are accessible over the Internet. Typically, s ...
for virtual resources. Other persistent identifier schemes include
Digital Object Identifiers (DOIs),
Life Sciences Identifiers (LSIDs) and
INFO URIs. All persistent identification schemes provide unique identifiers for (possibly changing) virtual resources, but not all schemes provide curation opportunities. Curation of virtual resources has been defined as, "the active involvement of information professionals in the management, including the preservation, of digital data for future use."
PURLs have been criticized for their need to resolve a URL, thus tying a PURL to a network location. Network locations have several vulnerabilities, such as Domain Name System registrations and host dependencies. A failure to resolve a PURL could lead to an ambiguous state: It would not be clear whether the PURL failed to resolve because a network failure prevented it or because it did not exist.
PURLs are themselves valid URLs, so their components must map to the URL specification. The scheme part tells a computer program, such as a Web browser, which protocol to use when resolving the address. The scheme used for PURLs is generally HTTP. The host part tells which PURL server to connect to. The next part, the PURL domain, is analogous to a resource path in a URL. The domain is a hierarchical information space that separates PURLs and allows for PURLs to have different maintainers. One or more designated maintainers may administer each PURL domain. Finally, the PURL name is the name of the PURL itself. The domain and name together constitute the PURL's "id".
Comparing with permalink
Both
permalink and ''PURL'' are used as permanent/persistent URL and redirect to the location of the requested
web resource. Roughly speaking, they are the same. Their differences are about
domain name
In the Internet, a domain name is a string that identifies a realm of administrative autonomy, authority, or control. Domain names are often used to identify services provided through the Internet, such as websites, email services, and more. ...
and
time scale:
* A permalink usually does not change the URL's domain, and is designed to persist over ''years''.
* A PURL domain name is independently changeable, and is designed to persist over ''decades''.
Types
The most common types of PURLs are named to coincide with the HTTP response code that they return. Not all HTTP response codes have equivalent PURL types and not all PURL servers implement all PURL types. Some HTTP response codes (e.g. 401, Unauthorized) have clear meanings in the context of an HTTP conversation but do not apply to the process of HTTP redirection. Three additional types of PURLs ("chain", "partial' and "clone") are given mnemonic names related to their functions.
Most PURLs are so-called "simple PURLs", which provide a redirection to the desired resource. The HTTP status code, and hence of the PURL type, of a simple PURL is 302. The intent of a 302 PURL is to inform the Web client and
end user
In product development, an end user (sometimes end-user) is a person who ultimately uses or is intended to ultimately use a product. The end user stands in contrast to users who support or maintain the product, such as sysops, system administrato ...
that the PURL should always be used to address the requested resource, not the final URI resolved. This is to allow continued resolution of the resource if the PURL changes. Some operators prefer to use PURLs of type 301 (indicating that the final URI should be addressed in future requests).
A PURL of type "chain" allows a PURL to redirect to another PURL in a manner identical to a 301 or 302 redirection, with the difference that a PURL server will handle the redirection internally for greater efficiency. This efficiency is useful when many redirections are possible; since some Web browsers will stop following redirections once a set limit is encountered (in an attempt to avoid loops).
A PURL of type "200" is an "Active PURL", in which the PURL actively participates in the creation or aggregation of the metadata returned. An Active PURL includes some arbitrary computation to produce its output. Active PURLs have been implemented in PURLz 2.0 and The
Callimachus Project. They may be used to gather runtime status reports, perform distributed queries or any other type of data collection where a persistent identifier is desired. Active PURLs act similar to a
stored procedure
A stored procedure (also termed prc, proc, storp, sproc, StoPro, StoredProc, StoreProc, sp, or SP) is a subroutine available to applications that access a relational database management system (RDBMS). Such procedures are stored in the database d ...
in relational databases.
A PURL of type "303" is used to direct a Web client to a resource that provides additional information regarding the resource they requested, without returning the resource itself. This subtlety is useful when the HTTP URI requested is used as an identifier for a physical or conceptual object that cannot be represented as an information resource. PURLs of type 303 are used most often to redirect to metadata in a serialization format of the
Resource Description Framework
The Resource Description Framework (RDF) is a method to describe and exchange graph data. It was originally designed as a data model for metadata by the World Wide Web Consortium (W3C). It provides a variety of syntax notations and formats, of whi ...
(RDF) and have relevance for
Semantic Web
The Semantic Web, sometimes known as Web 3.0, is an extension of the World Wide Web through standards set by the World Wide Web Consortium (W3C). The goal of the Semantic Web is to make Internet data machine-readable.
To enable the encoding o ...
and
linked data
In computing, linked data is structured data which is interlinked with other data so it becomes more useful through semantic queries. It builds upon standard Web technologies such as HTTP, RDF and URIs, but rather than using them to serve web ...
content. This use of the 303 HTTP status code is conformant with the http-range-14 finding of the Technical Architecture Group of the
World Wide Web Consortium
The World Wide Web Consortium (W3C) is the main international standards organization for the World Wide Web. Founded in 1994 by Tim Berners-Lee, the consortium is made up of member organizations that maintain full-time staff working together in ...
.
A PURL of type "307" informs a user that the resource temporarily resides at a different URL from the norm. PURLs of types 404 and 410 note that the requested resource could not be found and suggests some information for why that was so. Support for the HTTP 307 (Temporary Redirect), 404 (Not Found) and 410 (Gone) response codes are provided for completeness.
PURLs of types "404" and "410" are provided to assist administrators in marking PURLs that require repair. PURLs of these types allow for more efficient indications of resource identification failure when target resources have moved and a suitable replacement has not been identified.
PURLs of type "clone" are used solely during PURL administration as a convenient method of copying an existing PURL record into a new PURL.
Redirection of URL fragments
The PURL service includes a concept known as partial redirection. If a request does not match a PURL exactly, the requested URL is checked to determine if some contiguous front portion of the PURL string matches a registered PURL. If so, a redirection occurs with the remainder of the requested URL appended to the target URL. For example, consider a PURL with a URL of
http://purl.org/some/path/
with a target URL of
http://example.com/another/path/
. An attempt to perform an HTTP GET operation on the URL
http://purl.org/some/path/and/some/more/data
would result in a partial redirection to
http://example.com/another/path/and/some/more/data
. The concept of partial redirection allows hierarchies of Web-based resources to be addressed via PURLs without each resource requiring its own PURL. One PURL is sufficient to serve as a top-level node for a hierarchy on a single target server. The new PURL service uses the type "partial" to denote a PURL that performs partial redirection.
Partial redirections at the level of a URL path do not violate common interpretations of the HTTP 1.1 specification. However, the handling of URL fragments across redirections has not been standardized and a consensus has not yet emerged.
Fragment identifiers indicate a pointer to more specific information within a resource and are designated as following a
#
separator in URIs.
Partial redirection in the presence of a fragment identifier is problematic because two conflicting interpretations are possible.
If a fragment is attached to a PURL of type "partial", it is unclear whether a PURL service should assume that the fragment has meaning on the target URL, or discard it in the presumption that a resource with a changed location may have also changed content, thus invalidating fragments defined earlier. Bos suggested that fragments should be retained and passed through to target URLs during HTTP redirections resulting in 300 (Multiple Choice), 301 (Moved Permanently), 302 (Found) or 303 (See Other) responses unless a designated target URL already includes a fragment identifier. If a fragment identifier is already present in a target URL, any fragment in the original URL should be abandoned. Bos' suggestion failed to navigate the IETF standards track and expired without further work. Dubost ''et al.'' resurrected Bos' suggestions in a W3C Note (not a standard, but guidance in the absence of a standard).
Makers of Web clients such as browsers have "generally"
failed to follow Bos' guidance.
Starting with PURLz 1.0 series, the PURL service implements partial redirections inclusive of fragment identifiers by writing fragments onto target URLs in an attempt to comply with
and avoid problematic and inconsistent behavior by browser vendors.
See also
* Implementation examples:
**
Archival Resource Key (ARK)
**
Digital Object Identifier
A digital object identifier (DOI) is a persistent identifier or handle used to uniquely identify various objects, standardized by the International Organization for Standardization (ISO). DOIs are an implementation of the Handle System; th ...
(DOI)
**
Handle System
The Handle System is a proprietary registry assigning persistent identifiers, or ''handles'', to information resources, and for resolving "those handles into the information necessary to locate, access, and otherwise make use of the resources".
...
identifiers
*
Link rot
Link rot (also called link death, link breaking, or reference rot) is the phenomenon of hyperlinks tending over time to cease to point to their originally targeted file, web page, or server due to that resource being relocated to a new address ...
*
OPAC
The online public access catalog (OPAC), now frequently synonymous with ''library catalog'', is an online database of materials held by a library or Library consortium, group of libraries. Online catalogs have largely replaced the analog card c ...
*
Permalink
*
URL redirection
URL redirection, also called URL forwarding, is a World Wide Web technique for making a web page available under more than one URL address. When a web browser attempts to open a URL that has been redirected, a page with a different URL is opened. ...
*
URL shortening
URL shortening is a technique on the World Wide Web in which a Uniform Resource Locator (URL) may be made substantially shorter and still direct to the required page. This is achieved by using a redirect which links to the web page that has a ...
*
Uniform Resource Name
A Uniform Resource Name (URN) is a Uniform Resource Identifier (URI) that uses the scheme. URNs are globally unique persistent identifiers assigned within defined namespaces so they will be available for a long period of time, even after the re ...
(URN)
*
Wayback Machine
The Wayback Machine is a digital archive of the World Wide Web founded by Internet Archive, an American nonprofit organization based in San Francisco, California. Launched for public access in 2001, the service allows users to go "back in ...
References
{{Reflist, colwidth=30em
External links
Official website for PURLzOfficial website for The Callimachus ProjectInternet Archive's PURL resolverUS Government Printing Office's PURL resolverpersistent-identifier.deDPE/PURL Information and Resolver Site
URI schemes
Identifiers
1995 software
Free software programmed in Java (programming language)
Cross-platform free software
History of the Internet
Internet software for Linux
Unix Internet software