Knowledge

Persistent uniform resource locator

Source 📝

602:
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.
614:
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
309:
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.
340:
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".
332:. 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." 613:
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
312:
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.
585:
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)
400:
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
339:
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.
308:
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
773:
OCLC and Internet Archive today announced the results of a year-long cooperative effort to ensure the future sustainability of purl.org. The organizations have worked together to build a new sustainable service hosted by Internet Archive that will manage persistent URLs and sub-domain redirections
601:
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
557:
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
335:
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
541:
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
537:
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).
256:
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
589:
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.
545:
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
621:
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.
179:
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
605:
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.
532:
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
618:
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.
550:. 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 401:
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.
1067: 547: 193: 760: 558:
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
593:
PURLs of type "clone" are used solely during PURL administration as a convenient method of copying an existing PURL record into a new PURL.
1072: 1082: 80:. Early on many of those other hosts used descendants of the original OCLC PURL system software. Eventually, however, the 610:
indicate a pointer to more specific information within a resource and are designated as following a # separator in URIs.
239: 1077: 129:
PURLs are used to curate the URL resolution process, thus solving the problem of transitory URIs in location-based
534: 1087: 708: 559: 189: 955: 257:
OCLC-hosted service for several months. The service hosted on Internet Archive servers supports access via
542:
browsers will stop following redirections once a set limit is encountered (in an attempt to avoid loops).
50: 1037: 336:
whether the PURL failed to resolve because a network failure prevented it or because it did not exist.
989: 826: 712: 640: 579: 321: 66: 941: 879: 730: 852: 46: 1062: 1032: 822: 756: 928: 866: 679: 634: 317: 144:. The remainder of this article is about the OCLC's PURL system, proposed and implemented by 31: 757:"OCLC and Internet Archive work together to ensure future sustainability of Persistent URLs" 305:. PURLs allow third party control over both URL resolution and resource metadata provision. 1057: 1052: 173: 17: 8: 607: 910: 803: 161: 914: 807: 985: 902: 894: 795: 571: 551: 356:
are used as permanent/persistent URL and redirect to the location of the requested
253: 848: 685: 669: 54: 674: 302: 799: 1046: 956:"Handling of Fragment Identifiers in Redirected URLs, Expired Internet Draft" 646: 172:(the 'Z' came from the Zepheira name and was used to differentiate the PURL 84:
came to be generic and was used to designate any redirection service (named
563: 357: 185: 160:
in 1995. The PURL system was implemented using a forked pre-1.0 release of
58: 376:
usually does not change the URL's domain, and is designed to persist over
567: 387:
domain name is independently changeable, and is designed to persist over
365: 361: 301:
The PURL concept allows for generalized URL curation of HTTP URIs on the
849:"Metadata Foundations for the Life Cycle Management of Software Systems" 234:
Other notable PURL resolvers include the US Government Printing Office (
181: 130: 895:"Uniform Resource Identifier (URI): Generic Syntax, RFC 3986 (STD 66)" 906: 716: 704: 664: 570:
content. This use of the 303 HTTP status code is conformant with the
349: 118:
with its URL (to be redirected), and to update this redirection-URL;
654: 360:. Roughly speaking, they are the same. Their differences are about 320:
for virtual resources. Other persistent identifier schemes include
165: 121:
ensure the persistence (e.g. by contract) of the root URL and the
468:
Redirect to a target URL with trailing path information appended
139: 1017: 249:, that may replace the old PURL-services and PURL-technologies. 156:
The PURL concept was developed by Stuart Weibel and Erik Jul at
851:. School of Information Technology and Electrical Engineering, 575: 719:
and others, they use directly or indirectly the PURL concept.
586:
and 410 (Gone) response codes are provided for completeness.
329: 893:
Berners-Lee, T.; Fielding, R.; Masinter, L. (January 2005).
959: 898: 892: 659: 325: 204: 200: 157: 145: 62: 168:
under contract to OCLC and the official website moved to
30:"PURL" redirects here. For other meanings of "purl", see 1027: 759:(Press release). Dublin, Ohio: OCLC. 27 September 2016. 283: 235: 209: 72:
Originally, PURLs were recognizable for being hosted at
1068:
Free software programmed in Java (programming language)
749: 252:
On 27 September 2016 OCLC announced a cooperation with
164:. The software was modernized and extended in 2007 by 103:
provides means, to its user-community, to include new
271: 246: 1022: 1012: 289: 277: 265: 259: 227: 221: 215: 169: 73: 196:implemented PURLs as of its 1.0 release in 2012. 192:in 2010 but the release was never finalized. The 184:). Zepheira released PURLz 1.0 in 2007 under the 1044: 457:Redirect to another PURL within the same server 596: 207:from 1995 to September 2016 and was reached as 176:site from the PURL resolver operated by OCLC). 774:for purl.org, purl.com, purl.info and purl.net 1028:US Government Printing Office's PURL resolver 1018:Official website for The Callimachus Project 846: 343: 296: 27:OCLC-designed persistent identifier scheme 731:"PURLs to improve access to the Internet" 728: 980: 978: 976: 523:Copy the attributes of an existing PURL 14: 1045: 1038:DPE/PURL Information and Resolver Site 986:"Common User Agent Problems, W3C Note" 820: 786:Yakel, E. (2007). "Digital Curation". 281:. OCLC now redirects DNS requests for 242:and has been in operation since 1997. 148:(the Online Computer Library Center). 973: 785: 962:Networking Working Group. 1999-06-30 763:from the original on 2 February 2023 182:http://opensource.org/licenses/oclc2 109:http://myPurlResolver.example/name22 490:Temporary redirect to a target URL 446:Simple redirection to a target URL 39:persistent uniform resource locator 24: 729:Weibel, Stuart; Jul, Erik (1995). 435:Moved permanently to a target URL 240:Federal Depository Library Program 25: 1099: 1006: 847:Hyland-Wood, David (2008-07-01). 114:provides means to associate each 57:to the location of the requested 1023:Internet Archive's PURL resolver 245:The PURL concept is used in the 948: 886: 840: 814: 779: 722: 697: 560:Resource Description Framework 424:Content created or aggregated 76:or other hostnames containing 13: 1: 691: 562:(RDF) and have relevance for 238:), which is operated for the 98:http://myPurlResolver.example 1073:Cross-platform free software 853:The University of Queensland 597:Redirection of URL fragments 576:Technical Architecture Group 316:PURLs implement one form of 188:. PURLz 2.0 was released in 49:(URL) (i.e., location-based 7: 1083:Internet software for Linux 821:Martin, Sean (2006-06-30). 788:OCLC Systems & Services 625: 186:Apache License, Version 2.0 133:like HTTP. Technically the 51:uniform resource identifier 10: 1104: 1013:Official website for PURLz 901:Networking Working Group. 322:Digital Object Identifiers 151: 29: 990:World Wide Web Consortium 827:World Wide Web Consortium 800:10.1108/10650750710831466 641:Digital Object Identifier 631:Implementation examples: 580:World Wide Web Consortium 554:in relational databases. 326:Life Sciences Identifiers 203:resolver was operated by 1033:persistent-identifier.de 395: 344:Comparing with permalink 92:has a "root URL" as the 53:or URI) that is used to 47:uniform resource locator 1078:History of the Internet 737:(November/December): 19 297:Principles of operation 1088:Unix Internet software 936:Cite journal requires 874:Cite journal requires 107:in the root URL (e.g. 680:Uniform Resource Name 635:Archival Resource Key 318:persistent identifier 32:Purl (disambiguation) 823:"LSID URN/URI Notes" 608:Fragment identifiers 236:http://purl.fdlp.gov 174:open-source software 548:Callimachus Project 493:Temporary Redirect 406: 194:Callimachus Project 438:Moved permanently 404: 162:Apache HTTP Server 530: 529: 512:Permanently gone 501:Temporarily gone 135:string resolution 67:HTTP status codes 61:. PURLs redirect 16:(Redirected from 1095: 1001: 1000: 998: 997: 982: 971: 970: 968: 967: 952: 946: 945: 939: 934: 932: 924: 922: 921: 907:10.17487/RFC3986 890: 884: 883: 877: 872: 870: 862: 860: 859: 844: 838: 837: 835: 834: 818: 812: 811: 783: 777: 776: 770: 768: 753: 747: 746: 744: 742: 726: 720: 701: 552:stored procedure 407: 403: 292: 286: 280: 274: 268: 262: 254:Internet Archive 230: 224: 218: 212: 199:The oldest PURL 170:http://purlz.org 137:on PURL is like 110: 99: 96:reference (e.g. 79: 21: 1103: 1102: 1098: 1097: 1096: 1094: 1093: 1092: 1043: 1042: 1009: 1004: 995: 993: 984: 983: 974: 965: 963: 954: 953: 949: 937: 935: 926: 925: 919: 917: 891: 887: 875: 873: 864: 863: 857: 855: 845: 841: 832: 830: 819: 815: 784: 780: 766: 764: 755: 754: 750: 740: 738: 735:OCLC Newsletter 727: 723: 702: 698: 694: 686:Wayback Machine 670:URL redirection 628: 599: 574:finding of the 398: 346: 299: 288: 282: 276: 270: 264: 258: 226: 220: 214: 208: 154: 108: 97: 77: 35: 28: 23: 22: 15: 12: 11: 5: 1101: 1091: 1090: 1085: 1080: 1075: 1070: 1065: 1060: 1055: 1041: 1040: 1035: 1030: 1025: 1020: 1015: 1008: 1007:External links 1005: 1003: 1002: 972: 947: 938:|journal= 885: 876:|journal= 839: 813: 794:(4): 335–340. 778: 748: 721: 695: 693: 690: 689: 688: 683: 677: 675:URL shortening 672: 667: 662: 657: 652: 651: 650: 644: 638: 627: 624: 598: 595: 528: 527: 524: 521: 517: 516: 513: 510: 506: 505: 502: 499: 495: 494: 491: 488: 484: 483: 480: 479:See other URL 477: 473: 472: 469: 466: 462: 461: 458: 455: 451: 450: 447: 444: 440: 439: 436: 433: 429: 428: 425: 422: 418: 417: 414: 411: 397: 394: 393: 392: 381: 345: 342: 303:World Wide Web 298: 295: 153: 150: 127: 126: 119: 112: 101: 65:clients using 26: 9: 6: 4: 3: 2: 1100: 1089: 1086: 1084: 1081: 1079: 1076: 1074: 1071: 1069: 1066: 1064: 1063:1995 software 1061: 1059: 1056: 1054: 1051: 1050: 1048: 1039: 1036: 1034: 1031: 1029: 1026: 1024: 1021: 1019: 1016: 1014: 1011: 1010: 991: 987: 981: 979: 977: 961: 957: 951: 943: 930: 916: 912: 908: 904: 900: 896: 889: 881: 868: 854: 850: 843: 828: 824: 817: 809: 805: 801: 797: 793: 789: 782: 775: 762: 758: 752: 736: 732: 725: 718: 714: 710: 706: 700: 696: 687: 684: 681: 678: 676: 673: 671: 668: 666: 663: 661: 658: 656: 653: 648: 647:Handle System 645: 642: 639: 636: 633: 632: 630: 629: 623: 619: 617: 611: 609: 603: 594: 591: 587: 583: 581: 577: 573: 572:http-range-14 569: 565: 561: 555: 553: 549: 543: 539: 536: 525: 522: 519: 518: 514: 511: 508: 507: 503: 500: 497: 496: 492: 489: 486: 485: 481: 478: 475: 474: 470: 467: 464: 463: 459: 456: 453: 452: 448: 445: 442: 441: 437: 434: 431: 430: 426: 423: 420: 419: 416:HTTP meaning 415: 413:PURL meaning 412: 409: 408: 402: 390: 386: 382: 379: 375: 371: 370: 369: 367: 363: 359: 355: 351: 341: 337: 333: 331: 327: 323: 319: 314: 310: 306: 304: 294: 291: 285: 284:purl.oclc.org 279: 273: 267: 261: 255: 250: 248: 243: 241: 237: 232: 229: 223: 217: 211: 210:purl.oclc.org 206: 202: 197: 195: 191: 187: 183: 177: 175: 171: 167: 163: 159: 149: 147: 143: 141: 136: 132: 124: 123:PURL resolver 120: 117: 113: 106: 102: 95: 91: 90: 89: 87: 86:PURL resolver 83: 75: 70: 68: 64: 60: 56: 52: 48: 44: 40: 33: 19: 994:. Retrieved 992:. 2001-02-06 964:. Retrieved 950: 929:cite journal 918:. Retrieved 888: 867:cite journal 856:. Retrieved 842: 831:. Retrieved 816: 791: 787: 781: 772: 765:. Retrieved 751: 739:. Retrieved 734: 724: 703:Services as 699: 620: 615: 612: 604: 600: 592: 588: 584: 564:Semantic Web 556: 544: 540: 531: 399: 388: 384: 377: 373: 358:web resource 353: 347: 338: 334: 328:(LSIDs) and 315: 311: 307: 300: 251: 244: 233: 198: 190:Beta testing 178: 155: 138: 134: 128: 122: 115: 104: 93: 85: 82:PURL concept 81: 71: 59:web resource 42: 38: 36: 1058:Identifiers 1053:URI schemes 741:17 December 649:identifiers 568:linked data 405:PURL types 362:domain name 213:as well as 131:URI schemes 1047:Categories 996:2008-03-01 966:2008-03-01 920:2008-03-01 858:2011-01-05 833:2011-01-05 692:References 504:Not Found 482:See Other 366:time scale 142:resolution 88:) that: 717:Permalink 665:Permalink 374:permalink 350:permalink 330:INFO URIs 272:purl.info 125:services. 915:30973664 829:ESW Wiki 808:33219560 767:10 April 761:Archived 655:Link rot 626:See also 535:end user 465:Partial 324:(DOIs), 290:purl.org 278:purl.com 266:purl.net 260:purl.org 247:w3id.org 228:purl.com 222:purl.net 216:purl.org 166:Zepheira 94:resolver 74:purl.org 55:redirect 705:URN LEX 578:of the 389:decades 152:History 140:SEF URL 45:) is a 913:  806:  616:et al. 520:Clone 471:Found 460:Found 454:Chain 449:Found 275:, and 225:, and 911:S2CID 804:S2CID 682:(URN) 643:(DOI) 637:(ARK) 515:Gone 410:Type 396:Types 378:years 348:Both 105:names 960:IETF 942:help 899:IETF 880:help 769:2023 743:2021 711:and 660:OPAC 566:and 526:N/A 509:410 498:404 487:307 476:303 443:302 432:301 421:200 385:PURL 364:and 354:PURL 352:and 205:OCLC 201:HTTP 158:OCLC 146:OCLC 116:name 78:purl 63:HTTP 43:PURL 18:PURL 903:doi 796:doi 713:DOI 709:ELI 427:OK 287:to 69:. 1049:: 988:. 975:^ 958:. 933:: 931:}} 927:{{ 909:. 897:. 871:: 869:}} 865:{{ 825:. 802:. 792:23 790:. 771:. 733:. 715:, 707:, 582:. 383:A 372:A 368:: 293:. 269:, 263:, 231:. 219:, 111:); 100:); 37:A 999:. 969:. 944:) 940:( 923:. 905:: 882:) 878:( 861:. 836:. 810:. 798:: 745:. 391:. 380:. 180:( 41:( 34:. 20:)

Index

PURL
Purl (disambiguation)
uniform resource locator
uniform resource identifier
redirect
web resource
HTTP
HTTP status codes
purl.org
URI schemes
SEF URL
OCLC
OCLC
Apache HTTP Server
Zepheira
http://purlz.org
open-source software
http://opensource.org/licenses/oclc2
Apache License, Version 2.0
Beta testing
Callimachus Project
HTTP
OCLC
purl.oclc.org
purl.org
purl.net
purl.com
http://purl.fdlp.gov
Federal Depository Library Program
w3id.org

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.