index.html 69.9 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268
<?xml version="1.0" encoding="UTF-8"?><!--*- nxml -*-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>Cool URIs for the Semantic Web</title>
<meta name="description" content="Cool URIs for the Semantic Web" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
pre { background: #fff6bb; padding: 1em 2em; margin: 0 }
dl.box { background: #eedddd; margin: 1em 0 1.6em; padding: 1em 1.5em; }
dl.box dd { margin: 0.8em 0 0; }
</style>
<link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/W3C-IG-NOTE" />
</head>
<body>

<div class="head">
<a href="http://www.w3.org/"><img alt="W3C" height="48"
src="http://www.w3.org/Icons/w3c_home" width="72"/></a><h1 style="clear:both" id="title">Cool URIs for the Semantic Web</h1>

<h2 id="W3C-doctype">W3C Interest Group Note 03 December 2008</h2>
<dl>
  <dt>This version:</dt>
    <dd>
	<a href="http://www.w3.org/TR/2008/NOTE-cooluris-20081203/">
	http://www.w3.org/TR/2008/NOTE-cooluris-20081203/</a></dd>
  <dt>Latest version:</dt>
    <dd><a href="http://www.w3.org/TR/cooluris/">http://www.w3.org/TR/cooluris/</a></dd>
  <dt>Previous version:</dt>
	<dd>
	<a href="http://www.w3.org/TR/2008/NOTE-cooluris-20080331/">http://www.w3.org/TR/2008/NOTE-cooluris-20080331/</a></dd>

   <dt>Editors:</dt>
    <dd><a href="http://www.dfki.uni-kl.de/~sauermann/">Leo Sauermann</a>
      (<a href="http://www.dfki.de">DFKI GmbH</a>)</dd>
    <dd><a href="http://richard.cyganiak.de/">Richard Cyganiak</a> (<a href="http://www.deri.ie/">DERI, NUI Galway</a> and <a href="http://www.fu-berlin.de/en/">Freie
      Universit&auml;t Berlin</a>)</dd>

    <dt>Contributors:</dt>
	<dd><a href="http://dannyayers.com/">Danny Ayers</a> (<a href="http://talis.com">Talis Information Ltd.</a>)</dd>
	<dd><a href="http://www.xam.de/">Max V&ouml;lkel</a> (<a href="http://www.fzi.de/">FZI Karlsruhe</a>)</dd>

</dl>
<p>Please refer to the <a href="http://www.w3.org/2001/sw/sweo/public/2008/Errata-in-CoolURIs.html"><strong>errata</strong></a> for this document, which may include some corrections.</p>
<hr />

<p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> &copy; 2008 <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>&reg;</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.org/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p>

</div>
<hr/>
<h2 id="abstract">Abstract</h2>

<p><span class="notetoeditor">The <em>Resource Description Framework</em> RDF
allows users to describe both Web documents and concepts 
from the real world—people, organisations, topics, things&mdash;in a computer-processable way.
Publishing such descriptions on the Web creates the <em>Semantic Web</em>. URIs (Uniform Resource Identifiers) are very
important, providing both the core of the framework itself and the link between RDF and the Web. This document presents
guidelines for their effective use. It discusses two strategies, called <em>303
URIs</em> and <em>hash URIs</em>. It gives pointers to several Web sites that
use these solutions, and briefly discusses why several other proposals have
problems. </span></p>

<h2 id="status">Status of this document</h2>

<p><em>This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the <a href="http://www.w3.org/TR/">W3C technical reports index</a>  at http://www.w3.org/TR/.</em></p>

<p><span class="notetoeditor">This is a W3C 
Interest Group Note giving a tutorial explaining decisions of the TAG for 
newcomers to Semantic Web technologies. It was initially based on the
<a href="http://www.dfki.uni-kl.de/dfkidok/publications/TM/07/01/tm-07-01.pdf">DFKI
Technical Memo TM-07-01, <em>Cool URIs for the Semantic Web</em></a> and was 
subsequently published as a W3C Working draft in 
<a href="http://www.w3.org/TR/2007/WD-cooluris-20071217/">December 2007</a>, and 
again in <a href="http://www.w3.org/TR/2008/WD-cooluris-20080321/">March 2008</a>
by the <a href="http://www.w3.org/2001/sw/sweo/">Semantic Web
Education and Outreach (SWEO) Interest Group</a> of the W3C, part of the <a href="/2001/sw/">W3C Semantic Web Activity</a>.
The drafts were publicly reviewed, especially by the <a href="http://www.w3.org/2001/tag/">Technical Architecture Group 
(TAG)</a> and the <a href="http://www.w3.org/2006/07/SWD/">Semantic Web 
Deployment Group (SWD)</a>. 
The only change from the previous version of this document is the addition of a link to an 
<a href="/2001/sw/sweo/public/2008/Errata-in-CoolURIs.html">errata page</a>.
</span></p>

<p>The charter of the <a href="http://www.w3.org/2001/sw/sweo/">Semantic Web
Education and Outreach (SWEO) Interest Group</a> expired at the end of March, 2008. Nevertheless, this document 
may be taken up by some other groups in the future for further development.
Feedbacks on this documents is therefore encouraged. Please send comments about this document to <a
href="mailto:public-sweo-ig@w3.org">public-sweo-ig@w3.org</a> (with <a
href="http://lists.w3.org/Archives/Public/public-sweo-ig/">public
archive</a>). A complete <a href="#changelog">list of changes</a> is available.</p>

<p>Publication as an Interest Group Note does not imply endorsement by the W3C 
Membership. This is a draft document and may be updated, replaced or obsoleted 
by other documents at any time. It is inappropriate to cite this document as 
other than work in progress.</p>

<p> This document was produced by a group operating under the <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5 February 2004 W3C Patent Policy</a>. 
The group does not expect this document to become a W3C Recommendation. W3C 
maintains a
<a rel="disclosure" href="http://www.w3.org/2004/01/pp-impl/39572/status">public 
list of any patent disclosures</a> made in connection with the deliverables of 
the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">Essential Claim(s)</a> must disclose the information in accordance with <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">section 6 of the W3C Patent Policy</a>. </p>
<p>The disclosure obligations of the Participants of this group are described in the <a href="http://www.w3.org/2006/07/sweoig-charter.html#pd">charter</a>. </p>

<h2 id="scope">Scope</h2>
<p>This document is a practical guide for implementers of the RDF
specification. The title is inspired by Tim Berners-Lee&#39;s article &quot;Cool 
URIs don&#39;t change&quot; [<a href="#ref-Cool">Cool</a>].&nbsp; It explains two approaches for RDF data hosted on <a
href="#ref-RFC2616">HTTP</a> servers. Intended audiences are Web and ontology
developers who have to decide how to model their RDF URIs for use with HTTP.
Applications using non-HTTP URIs are not covered. This document is an
informative guide covering selected aspects of previously published, detailed
technical specifications. The 303 URIs are based on the <a
href="http://lists.w3.org/Archives/Public/www-tag/2005Jun/0039.html">httpRange-14
resolution</a> [<cite><a href="#ref-httpRange">httpRange</a></cite>] by the <span class="notetoeditor"> <a href="http://www.w3.org/2001/tag/">Technical Architecture Group 
(TAG)</a></span>. We assume that you are familiar with the <a
href="http://www.w3.org/TR/2004/REC-rdf-primer-20040210/">basics of the RDF
data model</a> [<cite><a href="#ref-RDFPrimer">RDFPrimer</a></cite>]. We also
assume some familiarity with the <a
href="http://www.ietf.org/rfc/rfc2616.txt">HTTP protocol</a> [<cite><a
href="#ref-RFC2616">RFC2616</a></cite>]. <a
href="http://en.wikipedia.org/wiki/HTTP">Wikipedia's article</a> [<cite><a
href="#ref-WP-HTTP">WP-HTTP</a></cite>] serves as a good primer. </p>

<h2 id="toc">Table of Contents</h2>
<ul class="toc">
  <li><a href="#intro">1. Introduction</a></li>
  <li><a href="#oldweb">2. URIs for Web Documents</a> 
    <ul class="toc">
      <li><a href="#conneg">2.1. HTTP and Content Negotiation</a></li>
    </ul>
  </li>

  <li><a href="#semweb">3. URIs for Real-World Objects</a> 
    <ul class="toc">
      <li><a href="#distinguishing">3.1 Distinguishing between 
Representations and Descriptions</a></li>
    </ul>
  </li>
  <li><a href="#solutions">4. Two Good Solutions</a> 
    <ul class="toc">
      <li><a href="#hashuri">4.1. Hash URIs</a></li>

      <li><a href="#r303gendocument">4.2. 303 URIs forwarding to One Generic Document</a></li>
      <li><a href="#r303uri">4.3. 303 URIs forwarding to Different Documents</a></li>
      <li><a href="#choosing">4.4. Choosing Between 303 and Hash</a></li>
      <li><a href="#cooluris">4.5. Cool URIs</a></li>
      <li><a href="#linking">4.6. Linking</a></li>
      <li><a href="#implementation">4.7. Implementing Content Negotiation</a></li>
    </ul>

  </li>
  <li><a href="#examples">5. Examples from the Web</a></li>
  <li><a href="#otherideas">6. Other Resource Naming Proposals</a> 
    <ul class="toc">
      <li><a href="#schemes">6.1. New URI Schemes</a></li>
      <li><a href="#blanknodes">6.2. Reference By Description</a></li>
    </ul>

  </li>
  <li><a href="#conclusion">7. Conclusion</a></li>
  <li><a href="#acknowledgements">8. Acknowledgements</a></li>
  <li><a href="#references">9. References</a></li>
  <li><a href="#changelog">10. Change log</a></li>
</ul>

<h2 id="intro">1. Introduction</h2>

<p>The Semantic Web is envisioned as a decentralised world-wide information
space for sharing machine-readable data with a minimum of integration costs.
Its two core challenges are the distributed modelling of the world with a
shared data model, and the infrastructure where data and schemas can be
published, found and used. Users benefit from getting information <i>&quot;raw and now&quot;</i> [<a href="#ref-Give">Give</a>] and in portable 
data formats [<a href="#ref-DP">DP</a>]. Providers often publish data embedded in a fixed user interface, in HTML. 
A basic question is thus how to publish
information about resources in a way that allows interested users and
software applications to find and interpret them.</p>

<p>On the Semantic Web, all information has to be expressed as
<em>statements</em> about <em>resources</em>, like <em>the members of the 
company Example.com are Alice and Bob</em> or <em>Bob&#39;s telephone number is &quot;+1 
555 262&quot;</em> or <em>this Web page was created by Alice</em>. Resources
are identified by <em>Uniform Resource Identifiers</em> (<a
href="http://www.ietf.org/rfc/rfc3986.txt">URIs</a>) [<cite><a
href="#ref-RFC3986">RFC3986</a></cite>]. This modelling approach is at the
heart of <em>Resource Description Framework</em> (<a
href="http://www.w3.org/TR/2004/REC-rdf-primer-20040210/">RDF</a>) [<cite><a
href="#ref-RDFPrimer">RDFPrimer</a></cite>]. A nice introduction is given 
in the N3 primer [<a href="#ref-N3Primer">N3Primer</a>].</p>

<p>Using RDF, the statements can be published on the Web site of the company.
Others can read the data and publish their own information, linking to
existing resources. This forms a distributed model of the world. It 
allows the user to pick any application to view and work with the same data, for example 
to see Alice&#39;s published address in your address book. </p>

<p>At the same time, Web documents have always been addressed with <em
style="font-style: normal">URIs (in common parlance often referred as Uniform
Resource Locators, URLs)</em>. This is
useful because it means we can easily make RDF statements about Web pages,
but also dangerous because we can easily mix up Web pages and the things, or
resources, described on the page.</p>

<p>So the question is, what URIs should we use in RDF? As an example, to
identify the frontpage of the Web site of Example Inc., we may use
<tt>http://www.example.com/</tt>. But what URI identifies the company as an
organisation, not a Web site? Do we have to serve any content&mdash;HTML pages,
RDF files&mdash;at those URIs? In this document we will answer these questions
according to relevant specifications. We explain how to use URIs for things
that are not Web pages, such as people, products, places, ideas and concepts
such as ontology classes. We give detailed examples as to how the Semantic Web can
(and should) be realised as a part of the Web.</p>

<h2 id="oldweb">2. URIs for Web Documents</h2>

<p>Let us begin with an example. Assume that Example Inc., a fictional
company producing "<strong>Ex</strong>treme Guitar <strong>Ampl</strong>ifi<strong>e</strong>rs", has a Web
site at <tt>http://www.example.com/</tt>. Part of the site is a white-pages
service listing the names and contact details of the employees. Alice and Bob
both work at Example Inc. The structure of the Web site might thus be:</p>
<dl>
  <dt><tt>http://www.example.com/</tt></dt>

    <dd>the homepage of Example Inc.</dd>
  <dt><tt>http://www.example.com/people/alice</tt></dt>
    <dd>the homepage of Alice</dd>
  <dt><tt>http://www.example.com/people/bob</tt></dt>
    <dd>the homepage of Bob</dd>
</dl>

<p>Like everything on the traditional Web, each of the pages mentioned above
are <em>Web documents</em>. Every Web document has its own URI. Note that a
Web document is not the same as a file: a single Web document can be
available in many different formats and languages, and a single file, for
example a PHP script, may be responsible for generating a large number of Web
documents with different URIs. A Web document is defined as something that
has a URI and can return <em>representations</em> (responses in a format such
as HTML or JPEG or RDF) of the identified resource in response to HTTP
requests. In technical literature, such as <cite><a
href="http://www.w3.org/TR/2004/REC-webarch-20041215/">Architecture of the
World Wide Web, Volume One</a></cite> [<cite><a
href="#ref-AWWW">AWWW</a></cite>], the term <em>Information Resource</em> is
used instead of <em>Web document</em>.</p>

<p>On the traditional Web, URIs were used <em>primarily</em> for Web
documents&mdash;to link to them, and to access them in a browser. The notion of resource <em>identity</em> was not so
important on the traditional Web, a URL simply identified whatever we see
when we type it into a browser.</p>

<h3 id="conneg">2.1. HTTP and Content Negotiation</h3>

<p>Web clients and servers use the <a
href="http://www.ietf.org/rfc/rfc2616.txt">HTTP protocol</a> [<cite><a
href="#ref-RFC2616">RFC2616</a></cite>] to request representations of Web
documents and send back the responses. HTTP has a powerful mechanism for
offering different formats and language versions of the same Web document
known as <em>content negotiation</em>.</p>

<p>When a user agent (such as a browser) makes an HTTP request, it sends along 
some HTTP headers to indicate what data formats and language it prefers. The 
server then selects the best match from its
file system or generates the desired content on demand, and sends it back
to the client. For example, a browser could send this HTTP request to
indicate that it wants an HTML or XHTML representation of
<tt>http://www.example.com/people/alice</tt> in English or German:</p>
<pre style="margin: 0; padding-left: 2em; padding-right: 2em; padding-top: 1em; padding-bottom: 1em; background: #fff6bb">GET /people/alice HTTP/1.1
Host: www.example.com
Accept: text/html, application/xhtml+xml
Accept-Language: en, de</pre>

<p>The server could answer:</p>
<pre style="margin: 0; padding-left: 2em; padding-right: 2em; padding-top: 1em; padding-bottom: 1em; background: #fff6bb">HTTP/1.1 200 OK
Content-Type: text/html
Content-Language: en
Content-Location: http://www.example.com/people.en.html</pre>

<p>followed by the content of the HTML document in English. </p>
<p>Here we see
<a
href="http://www.w3.org/2001/tag/doc/alternatives-discovery-20061101.html">Content
negotiation</a> [<cite><a href="#ref-TAG-Alt">TAG-Alt</a></cite>] in action. The 
server interprets the <tt>Accept-Language</tt> headers in the request and decides to 
return the English representation of the resource in question. Note that 
the URI of this representation is passed back in the <tt>Content-Location</tt> 
header, this is not required but a recommended good practice (see [<a href="#ref-CHIPS">CHIPS</a>],
<a href="http://www.w3.org/TR/chips/#gl7">7.2</a>). Clients see that this URI is 
connected to the specific representation (in this case English) and 
search engines can refer to the different representations by using the different URIs. This implies that it 
is possible to have multiple representations of the same resource.</p>
<p>Content negotation is often implemented with a twist: Instead of a direct answer, the server
<em>redirects</em> to another URL where the appropriate representation is found:</p>
<pre style="margin: 0; padding-left: 2em; padding-right: 2em; padding-top: 1em; padding-bottom: 1em; background: #fff6bb">HTTP/1.1 302 Found
Location: http://www.example.com/people/alice.en.html</pre>

<p>The redirect is indicated by a special <em>Status Code</em>, here <tt>302
Found</tt>. The client would now send another HTTP request to the new URL. By
having separate URLs for different representations, this approach allows Web authors
to link directly to a specific representation. 
</p>

<p>RDF/XML, the standard serialisation format of RDF, has its own content
type, <tt>application/rdf+xml</tt>. Content negotiation thus allows
publishers to serve HTML representations of a Web document to traditional Web
browsers and RDF representations to Semantic Web-enabled user agents. This also
allows servers to provide alternative RDF serialisation formats like <a
href="http://www.w3.org/DesignIssues/Notation3">Notation3</a> [<cite><a
href="#ref-N3">N3</a></cite>] or <a
href="http://www.mulberrytech.com/Extreme/Proceedings/html/2004/Stickler01/EML2004Stickler01.html">TriX</a>

[<cite><a href="#ref-TriX">TriX</a></cite>].</p>

<h2 id="semweb">3. URIs for Real-World Objects</h2>

<p>On the Semantic Web, URIs identify not just Web documents, but also
real-world objects like people and cars, and even abstract ideas and
non-existing things like a mythical unicorn. We call these <em>real-world
objects</em> or <i>things</i>. </p>

<p>Given such a URI, how can we find out what it identifies? We need
some way to answer this question, because otherwise it will be hard to
achieve interoperability between independent information systems. We could
imagine a service where we can look up a description of the identified
resource, similar to today's search engines. But such a single point of
failure is against the Web's decentralised nature.</p>

<p>Instead, we should use the Web itself&mdash;an extremely robust and scalable
information publishing system&mdash;as a lookup service for resource
descriptions. Whenever a URI is mentioned, we can look it up to retrieve a
description containing relevant information and links to related data. This
is so important that we make it our number one requirement for <i>cool</i> URIs:</p>
<dl class="box">
  <dt>1. Be on the Web.</dt>
    <dd>Given only a URI, machines and people should be able to retrieve a
      description about the resource identified by the URI from the Web. Such
      a look-up mechanism is important to establish shared understanding of
      what a URI identifies. Machines should get RDF data and humans should
      get a readable representation, such as HTML. The standard Web transfer
      protocol, HTTP, should be used.</dd>
</dl>

<p>Let's assume Example Inc. wants to publish contact data of their employees
on the Semantic Web so their business partners can import it into their
address books. For example, the published data would contain these statements
about Alice, written here in <a
href="http://www.w3.org/DesignIssues/Notation3">N3 syntax</a> [<cite><a
href="#ref-N3">N3</a></cite>]:</p>

<pre style="margin: 0; padding-left: 2em; padding-right: 2em; padding-top: 1em; padding-bottom: 1em; background: #fff6bb"><strong>&lt;URI-of-alice&gt;</strong> a <strong>foaf:Person</strong>;
    foaf:name <strong>"Alice"</strong>;
    foaf:mbox <strong>&lt;mailto:alice@example.com&gt;</strong>;
    foaf:homepage <strong>&lt;http://www.example.com/people/alice&gt;</strong> .</pre>

<p>What URI should we use instead of the placeholder
<tt>&lt;URI-of-alice&gt;</tt>? Certainly not

<tt>http://www.example.com/people/alice</tt>, because that would confuse a
person with a Web document, leading to misunderstandings: Is the homepage of
Alice also named “Alice”? Can a homepage itself have an e-mail address? And does 
it make sense for a home-page to have itself as its home-page? So we need another URI. (For in-depth treatments of
this issue, see <a href="http://www.w3.org/DesignIssues/HTTP-URI2.html">What 
HTTP URIs Identify?</a> [<cite><a href="#ref-HTTP-URI2">HTTP-URI2</a></cite>] and 
<a href="http://www.w3.org/2002/11/dbooth-names/dbooth-names_clean.htm">Four 
Uses of a URL: Name, Concept, Web Location and Document Instance</a> [<cite><a href="#ref-Booth">Booth</a></cite>]).</p>

<p>Therefore our second requirement:</p>
<dl class="box">

  <dt>2. Be unambiguous.</dt>
    <dd>There should be no confusion between identifiers for Web documents and
      identifiers for other resources. URIs are meant to identify only one of them, so one URI can't stand for both a Web document and
      a real-world object. </dd>
</dl>

<p>We note that our requirements seem to conflict with each other. If we
can't use URIs of documents to identify real-world object, then how can we
retrieve a representation about real-world objects based on their URI? The
challenge is to find a solution that allows us to find the describing
documents if we have just the resource's URI, using standard Web
technologies.</p>

<p>The following picture shows the desired relationships between a resource
and its representing documents:</p>

<p style="text-align: center"><img src="img20081203/uris.png"
alt="A resource and its describing documents" /></p>

<h3 id="distinguishing">3.1 Distinguishing between 
Representations and Descriptions</h3>

<p>It is important to understand that using URIs, it is possible to identify 
both a thing (which may exist outside of the Web) and a 
Web document <i>describing</i> 
the thing.
For example the person Alice is described on her homepage. Bob may not like the look of the <i>homepage</i>, but fancy 
the person Alice. So two URIs are needed, one for Alice, one for the homepage or 
a RDF document describing Alice. The question is where to draw the line between 
the case where either is possible and the case where <i>only</i> descriptions 
are available.</p>
<p>According to W3C guidelines ([<a href="#ref-AWWW">AWWW</a>], section 2.2.), we have a 
Web document (there called <i>information
resource</i>) if <em>all its essential characteristics can be conveyed in a
message</em>. Examples are a Web page, an image or a product catalog. </p>
<p>In HTTP, because a <tt>200 </tt>response code should be sent when a Web document has 
been accessed, but a different setup is needed when publishing URIs that are meant 
to identify entities which are <i>not</i> Web documents.</p>
<p>In the next section, solutions are described that allow you to mint URIs for things and also allow clients to get a description of the thing using standard 
Web technologies.</p>

<h2 id="solutions">4. Two Solutions</h2>

<p>There are two solutions that meet our requirements for identifying
real-world objects: <em>303 URIs</em> and <em>hash URIs</em>. Which one to
use depends on the situation, both have advantages and disadvantages.</p>

<p>The solutions described in the following apply to deployment scenarios in
which the RDF data and the HTML data is served separately, such as a
standalone RDF/XML document along with an HTML document. The metadata can
also be embedded in HTML, using technologies such as RDFa [<a
href="#ref-RDFaPrimer">RDFa Primer</a>], microformats and other documents to
which the GRDDL [<a href="#ref-GRDDL">GRDDL</a>] mechanisms can be applied. In those cases the RDF
data is extracted from the returned HTML document.</p>

<p></p>

<h3 id="hashuri">4.1. Hash URIs</h3>

<p>The first solution is to use &ldquo;hash URIs&rdquo; for non-document resources.
URIs can contain a <em>fragment</em>, a special part that is separated from
the rest of the URI by a hash symbol (&ldquo;#&rdquo;).</p>

<p>When a client wants to retrieve a hash URI, then the HTTP protocol
requires the fragment part to be stripped off before requesting the URI from
the server. This means a URI that includes a hash cannot be retrieved
directly, and therefore does not necessarily identify a Web document. But we can use them
to identify other, non-document resources, without creating ambiguity.</p>

<p>If Example Inc. adopts this solution, then they could use these URIs to
represent the company, Alice, and Bob:</p>
<dl>
  <dt><tt>http://www.example.com/about#exampleinc</tt></dt>
    <dd>Example Inc., the company</dd>
  <dt><tt>http://www.example.com/about#bob</tt></dt>
    <dd>Bob, the person</dd>

  <dt><tt>http://www.example.com/about#alice</tt></dt>
    <dd>Alice, the person</dd>
</dl>

<p>Clients will always strip off the fragment part before requesting any of
these URIs, resulting in a request to this URI:</p>
<dl>
  <dt><tt>http://www.example.com/about</tt></dt>
    <dd>RDF document describing Example Inc., Bob, and Alice</dd>

</dl>

<p>At this URI, Example Inc. could serve an RDF document that contains
descriptions of all three resources, using the original hash URIs to identify
the resources.</p>

<p>The following picture shows the hash URI approach without content
negotiation:</p>

<p style="text-align: center"><img src="img20081203/hash.png"
alt="The hash URI solution without content negotiation" /></p>

<p>Alternatively, content negotiation (see <a href="#conneg">Section
2.1.</a>) could be employed to redirect from the <tt>about</tt> URI to
either a HTML or an RDF representation. The decision which to return is based on 
client preferences and server configuration, as explained below in
<a href="#implementation">Section 4.7</a>. The <tt>Content-Location</tt> header should be 
set to indicate if the hash URI
refers to a part of the HTML document or RDF document. </p>

<p>The following picture shows the hash URI approach with content
negotiation:</p>

<p style="text-align: center"><img src="img20081203/hash_conneg.png"
alt="The hash URI solution with content negotiation" /></p>

<h3 id="r303gendocument">4.2. 303 URIs forwarding to 
One Generic Document</h3>

<p>The second solution is to use a special HTTP status code, <tt>303 See
Other</tt>, to give an indication that the requested resource is not a
regular Web document. Web architecture tells you that for a 
thing
resource (URI) it is inappropriate to return a 200 because there is, in fact, no
suitable representation for those resources. However, it is useful to provide
information about those resources. The W3C's Technical Architecture Group
proposes in its <a
href="http://lists.w3.org/Archives/Public/www-tag/2005Jun/0039.html">httpRange-14
resolution</a> [<cite><a href="#ref-httpRange">httpRange</a></cite>] document
a solution that is to direct you to a document which has information <i>about</i> the thing you asked about. By doing this we avoid ambiguity between the original, 
real-world object and the resource that represents it.</p>

<p>Since 303 is a redirect status code, the server can give the location
of a document that represents the resource. If, on the other hand, a request
is answered with one of the usual status codes in the 2XX range, like <tt>200
OK</tt>, then the client knows that the URI identifies a Web document. </p>

<p>If Example Inc. adopts this solution, they could use these URIs to
represent the company, Alice and Bob:</p>
<dl>
  <dt><tt>http://www.example.com/id/exampleinc</tt></dt>
    <dd>Example Inc., the company</dd>
  <dt><tt>http://www.example.com/id/bob</tt></dt>

    <dd>Bob, the person</dd>
  <dt><tt>http://www.example.com/id/alice</tt></dt>
    <dd>Alice, the person</dd>
</dl>

	<p>The Web server would be configured to answer requests to all these URIs
with a 303 status code and a <tt>Location</tt> HTTP header that provides the
URL of a document that represents the resource.<i> </i>For example, to redirect 
	from <tt>http://www.example.com/id/alice</tt> to <tt>
http://www.example.com/doc/alice</tt>. </p>
	<p>Content-negotiation is then used when 
retrieving a representation from the document URI using a HTTP request. 
The server decides (see <a href="#implementation">Section 4.7</a>) to return either 
HTML or RDF (or more alternative forms) and sets the <tt>Content-Location</tt> header to 
the URI where the specific representation can be retrieved.</p>
<p>This setup should be used when the RDF and HTML (and possibly more 
alternative representations) convey the <i>same information in different forms</i>. 
When the information in the variations differs considerably, the 303 approach as 
described <a href="#r303uri">below</a> should be used.</p>
<p>See the following 
illustration for the solution providing the generic document URI.</p>
<p style="text-align:center;">
<img alt="solution for a generic document URI" src="img20081203/303conneg.png"/> </p>
<p>In this setup, the server forwards from the identification URI to the generic document URI. 
This has the advantage that clients can bookmark and further work with the 
generic document. A user having a RDF-capable client could bookmark the 
document, and mail it to another user (or device) which then dereferences it and 
gets the HTML <i>or</i> the RDF view. Also, the server can add representations 
in new languages in the future. Just because the client started with the URI of 
a thing, it doesn&#39;t mean that the document involved is not a first class 
document on the WWW. The background of generic document resources is described in [<a href="#ref-GenRes">GenRes</a>].</p>

<h3 id="r303uri">4.3. 303 URIs forwarding to Different 
Documents</h3>

<p>When the RDF and HTML representations of the resource differ substantially, 
the previous setup should not be used. They are not two versions of the same 
document, but different documents altogether. Again, the Web server would be configured to answer requests with a 303 status code and a <tt>Location</tt> HTTP header that provides the
URL of a document that represents the resource.</p>

<p></p>

<p>The following picture shows the redirects for the 303 URI
solution without the generic document URI:</p>

<p style="text-align: center"><img src="img20081203/303.png"
alt="The 303 URI solution" /></p>

<p>The server could employ content negotiation (see <a href="#conneg">Section
2.1.</a>) to send either the URL of an HTML description or RDF. HTTP requests
for HTML content would be redirected to the HTML URLs we gave in <a
href="#oldweb">Section 2</a>. Requests for RDF data would be redirected to
RDF documents, such as:</p>
<dl>
  <dt><tt>http://www.example.com/data/exampleinc</tt></dt>

    <dd>RDF document describing Example Inc., the company</dd>
  <dt><tt>http://www.example.com/data/bob</tt></dt>
    <dd>RDF document describing Bob, the person</dd>
  <dt><tt>http://www.example.com/data/alice</tt></dt>
    <dd>RDF document describing Alice, the person</dd>
</dl>

<p>Each of the RDF documents would contain statements about the appropriate
resource, using the original URI, e.g.
<tt>http://www.example.com/id/alice</tt>, to identify the described
resource.</p>

<h3 id="choosing">4.4. Choosing between 303 and
Hash</h3>

<p>Which approach is better? It depends. The hash URIs have the advantage of
reducing the number of necessary HTTP round-trips, which in turn reduces
access latency. A family of URIs can share the same non-hash part. The
descriptions of <tt>http://www.example.com/about#exampleinc</tt>,
<tt>http://www.example.com/about#alice</tt>, and
<tt>http://www.example.com/about#bob</tt> are retrieved with a single
request to <tt>http://www.example.com/about</tt>. However this approach has a
downside. A client interested only in <tt>#product123</tt> will inadvertently
load the data for all other resources as well, because they are in the same
file. 303 URIs, on the other hand, are very flexible because the redirection
target can be configured separately for each resource. There could be one
describing document for each resource, or one large document for all of them,
or any combination in between. It is also possible to change the policy later
on. </p>
<p>When using 303 URIs for an ontology, like FOAF, network delay can 
reduce a client&#39;s performance considerable. The large number of redirects may cause higher latency. A client looking up a set of terms 
through 303 may use many requests, even though the first request has already loaded everything there is to know.</p>

<p>When hosting large-scale datasets with the 303 solution, clients may be 
tempted to download all data using many requests. We advise to additionally 
provide SPARQL endpoints or comparable services to answer complex queries on the 
server directly, rather than to let the client download a large set of data via 
HTTP.</p>
<p>Note also, that both <em>303 and Hash can be
combined</em>, allowing a large dataset to be separated&nbsp; into multiple parts and have
an identifier for a non-document resource. An example for a combination of
303 and Hash is:</p>
<dl>
  <dt><tt>http://www.example.com/bob#this</tt></dt>
    <dd>Bob, the person with a combined URI.</dd>
</dl>

<p>Any fragment identifier is valid, <tt>this</tt> in the above URI is a
suggestion you may want to copy for your implementations.</p>

<dl class="box">
  <dt>Conclusion.</dt>
    <dd>Hash URIs should be preferred for rather small and stable sets of
      resources that evolve together. The ideal case are RDF Schema
      vocabularies and OWL ontologies, where the terms are often used
      together, and the number of terms is unlikely to grow out of control in the
      future.<p>Hash URIs without content negotiation can be implemented by simply
      uploading static RDF files to a Web server, without any special server
      configuration. This makes them popular for quick-and-dirty RDF
      publication.</p>
	<p>URIs of the <tt>bob#this</tt> form can be used for large sets of data that are, or may grow, beyond the point where it is practical to serve all related resources in a single document. 303 URIs may also be used for such data sets, making neater-looking URIs, but with an impact on run-time performance and server load.</p>
	<p>If in doubt, follow your nose.</p>
    </dd>

</dl>

<h3 id="cooluris">4.5. Cool URIs</h3>

<p>The best resource identifiers don't just provide descriptions for people
and machines, but are designed with simplicity, stability and manageability
in mind, as explained by Tim Berners-Lee in <cite><a
href="http://www.w3.org/Provider/Style/URI">Cool URIs don't change</a></cite>
and by the W3C Team in <cite><a
href="http://www.w3.org/TR/2003/NOTE-chips-20030128/">Common HTTP
Implementation Problems</a></cite> (sections 1 and 3):</p>
<dl>
  <dt>Simplicity.</dt>

    <dd>Short, mnemonic URIs will not break as easily when sent in emails and
      are in general easier to remember, e.g. when debugging your Semantic
      Web server.</dd>
  <dt>Stability.</dt>
    <dd>Once you set up a URI to identify a certain resource, it should
      remain this way as long as possible. Think about the next ten years.
      Maybe twenty. Keep implementation-specific bits and pieces such as
      <tt>.php</tt> and <tt>.asp</tt> out of your URIs, you may want to
      change technologies later.</dd>
  <dt>Manageability.</dt>

    <dd>Issue your URIs in a way that you can manage. One good practice is to
      include the current year in the URI path, so that you can change the
      URI-schema each year without breaking older URIs. Keeping all 303 URIs
      on a dedicated subdomain, e.g. <tt>http://id.example.com/alice</tt>,
      eases later migration of the URI-handling subsystem.</dd>
</dl>

<h3 id="linking">4.6. Linking</h3>

<p>All the URIs related to a single real-world object&mdash;resource identifier,
RDF document URL, HTML document URL&mdash;should also be explicitly linked with
each other to help information consumers understand their relation. For
example, in the 303 URI solution for Example Inc., there are three URIs
related to Alice:</p>
<dl>
  <dt><tt>http://www.example.com/id/alice</tt></dt>
    <dd>Identifier for Alice, the person</dd>

  <dt><tt>http://www.example.com/people/alice</tt></dt>
    <dd>Alice's homepage</dd>
  <dt><tt>http://www.example.com/data/alice</tt></dt>
    <dd>RDF document with description of Alice</dd>
</dl>

<p>Two of them are Web document URLs. The RDF document located at
<tt>http://www.example.com/data/alice</tt> might contain these statements
(expressed in N3):</p>

<pre style="margin: 0; padding-left: 2em; padding-right: 2em; padding-top: 1em; padding-bottom: 1em; background: #fff6bb"><strong>&lt;http://www.example.com/id/alice&gt;</strong>
    foaf:page <strong>&lt;http://www.example.com/people/alice&gt;</strong>;
    rdfs:isDefinedBy <strong>&lt;http://www.example.com/data/alice&gt;</strong>;

    a <strong>foaf:Person</strong>;
    foaf:name <strong>"Alice"</strong>;
    foaf:mbox <strong>&lt;mailto:alice@example.com&gt;</strong>;
    ...</pre>

<p>The document makes statements about Alice, the person, using the resource
identifier. The first two properties relate the resource identifier to the
two document URIs. The <tt>foaf:page</tt> statement links it to the HTML
document. This allows RDF-aware clients to find a human-readable 
resource, and at the same time, by linking the page to its topic, defines
useful metadata about that HTML document. The <tt>rdfs:isDefinedBy</tt>

statement links the person to the document containing its RDF description and
allows RDF browsers to distinguish this main resource from other auxiliary
resources that just happen to be mentioned in the document. We use
<tt>rdfs:isDefinedBy</tt> instead of its weaker superproperty
<tt>rdfs:seeAlso</tt> because the content at <tt>/data/alice</tt> is
authoritative. The remaining statements are the actual white pages data.</p>

<p>The HTML document at <tt>http://www.example.com/people/alice</tt> should
contain in its header a <tt>&lt;link&gt;</tt> element that points to the
corresponding RDF document:</p>

<pre style="margin: 0; padding-left: 2em; padding-right: 2em; padding-top: 1em; padding-bottom: 1em; background: #fff6bb">&lt;html xmlns="http://www.w3.org/1999/xhtml" lang="en"&gt;
  &lt;head&gt;
    &lt;title&gt;Alice's Homepage&lt;/title&gt;
    &lt;link rel="alternate" type="application/rdf+xml"
          title="RDF Representation"
          href="<strong>http://www.example.com/data/alice</strong>" /&gt;
  &lt;/head&gt; ...</pre>

<p>This allows RDF-aware Web clients to discover the RDF information. The
approach is <a
href="http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/#section-rdf-in-HTML">recommended
in the RDF/XML specification</a> ([<cite><a
href="#ref-RDFXML">RDFXML</a></cite>], section 9). If the RDF data is
<i>about</i> the Web page, rather than an expression of the information in it, then we recommend using
<tt>rel="meta"</tt> instead of <tt>rel="alternate"</tt>.</p>
<p>The client also can deduce similar link information 
directly from the HTTP headers: that a thing is described by a Web document 
which can be found at the end of a 303 redirect; that the <tt>Content-Location</tt> 
resource is a content-specific version of the generic document, and more. 
Ontologies for these relations are not discussed here.</p>

<p>The following illustration shows how the RDF and HTML documents should
relate the three URIs to each other:</p>

<p style="text-align: center"><img src="img20081203/links.png"
alt="The RDF and HTML documents should relate the URIs to each other" /></p>

<h3 id="implementation">4.7. Implementing Content 
Negotiation</h3>

<p>The W3C's Semantic Web Best Practices and Deployment Working Group has
published a document that describes how to implement the solutions presented
here on the Apache Web server. The <cite><a
href="http://www.w3.org/TR/swbp-vocab-pub/">Best Practice
Recipes for Publishing RDF Vocabularies</a></cite> [<cite><a
href="#ref-Recipes">Recipes</a></cite>] mostly discuss the publication of
<em>RDF vocabularies</em>, but the ideas can also be applied to other kinds
of small RDF datasets that are published from static files.</p>
<p>However, especially when it comes to content negotiation, the Recipes document 
doesn&#39;t cover some important details. Content negotiation is a bit more 
difficult in practice because of mixed-mode clients that can deal with both HTML 
and RDF, such as Firefox with the <a href="http://dig.csail.mit.edu/2007/tab/">
Tabulator extension</a>.</p>
<p>These browsers announce their ability to consume both RDF and HTML through <tt>
Accept</tt> headers that use <tt>q</tt> (quality) values:</p>
<pre>Accept: application/rdf+xml;q=0.7, text/html </pre>
<p>This browser accepts RDF with a <tt>q</tt> value of 0.7 and HTML with a <tt>q</tt> value of 1.0 (the default). This means the browser has a slight preference for 
HTML over RDF. </p>
<p>Now, a client preference for HTML doesn&#39;t necessarily mean that every server 
should send HTML. The server has to look at the client&#39;s preferences, and then 
it must make a decision based on the quality of the different variants it could 
offer. For example: </p>
<ul>
	<li>If the HTML variant is a simple low-quality rendering of the RDF, like a 
property-value table or a list of triples, then the server should send the RDF, 
unless the client has a very strong preference for HTML. </li>
	<li>If HTML and RDF variant contain the same information, and both are of high 
quality, then the server should treat both variants with equal preference, and 
leave the choice to the client&#39;s preferences. </li>
	<li>If the RDF variant is only a part of the information offered in the HTML, or 
is scraped from the HTML, then the server should probably send the HTML, unless 
the client has a strong preference for RDF. </li>
</ul>
<p>There are algorithms for choosing the best match by comparing client preferences 
with the quality of the server&#39;s available variants. For example, the Apache 
server can be configured with server-side <tt>qs</tt> values that specify their 
relative quality.</p>
<p>A <tt>qs</tt> value of 1.0 for <tt>application/rdf+xml</tt> and 0.5 for <tt>
text/html</tt>, would mean that the HTML variant has only approximately half the quality of the 
RDF and might be appropriate in the first case from the list above. If the HTML 
is a news article and the RDF contains just minimal information such as title, 
date and author, then 1.0 for the HTML and 0.1 for the RDF would be appropriate.
</p>
<p>To determine the best variant for a particular client, Apache multiplies the 
client&#39;s <tt>q</tt> value for HTML with the configured <tt>qs</tt> value for 
HTML; and the same for RDF. The variant with the higher number wins. Apache&#39;s 
documentation has a
<a href="http://httpd.apache.org/docs/2.0/content-negotiation.html#methods">section</a> with a detailed description of its content 
negotiation algorithm [<a href="#ref-ApCN">ApCN</a>]. HTTP&#39;s <tt>Accept</tt> header is described in detail in 
<a href="http://www.rfc.net/rfc2616.html#s14.1">section 14.1</a> of the HTTP 
specification [<a href="#ref-HTTP-SPEC">HTTP-SPEC</a>]. </p>
<p>Content negotiation, with all its details, is fairly complex, but it is a 
powerful way of choosing the best variant for mixed-mode clients that can deal 
with HTML and RDF. </p>

<h2 id="examples">5. Examples from the Web</h2>

<p>Not all projects that work with Semantic Web technologies make their data
available on the Web. But a growing number of projects follow the practices
described here. This section gives a few examples.</p>

<p><strong>ECS Southampton.</strong> The <a
href="http://www.ecs.soton.ac.uk/">School of Electronics and Computer
Science</a> at University of Southampton has a Semantic Web site that employs
the 303 solution and is a great example of Semantic Web engineering. It is
documented in the <cite><a href="http://id.ecs.soton.ac.uk/docs/">ECS URI
System Specification</a></cite> [<cite><a href="#ref-ECS">ECS</a></cite>].
Separate subdomains are used for HTML documents, RDF documents, and resource
identifiers. Take these examples:</p>
<dl>

  <dt><tt>http://id.ecs.soton.ac.uk/person/1650</tt></dt>
    <dd>URI for Wendy Hall, the person</dd>
  <dt><tt>http://www.ecs.soton.ac.uk/people/wh</tt></dt>
    <dd>HTML page about Wendy Hall</dd>
  <dt><tt>http://rdf.ecs.soton.ac.uk/person/1650</tt></dt>
    <dd>RDF about Wendy Hall</dd>

</dl>

<p>Entering the first URI into a normal Web browser redirects to an HTML page
about Wendy Hall. It presents a Web view of all available data on her. The
page also links to her URI and to her RDF document.</p>

<p><strong><a href="http://www4.wiwiss.fu-berlin.de/bizer/d2r-server/">D2R
Server</a></strong> is an open-source application that can be used to publish
data from relational databases on the Semantic Web in accordance with these
guidelines. It employs the 303 solution and content negotiation. For example,
the <cite><a href="http://www4.wiwiss.fu-berlin.de/dblp/">D2R Server
publishing the DBLP Bibliography Database</a></cite> publishes several thousand bibliographical records and information about their authors. Example URIs,
again connected via 303 redirects:</p>
<dl>
  <dt><tt>http://www4.wiwiss.fu-berlin.de/dblp/resource/person/315759</tt></dt>
    <dd>URI for Chris Bizer, the person</dd>

  <dt><tt>http://www4.wiwiss.fu-berlin.de/dblp/page/person/315759</tt></dt>
    <dd>HTML page about Chris Bizer</dd>
</dl>

<p>The RDF document for Chris Bizer is a SPARQL query result from the
server's SPARQL endpoint:</p>
<pre>http://www4.wiwiss.fu-berlin.de/dblp/sparql?query=
DESCRIBE+\%3Chttp\%3A\%2F\%2Fwww4.wiwiss.fu-berlin.de
\%2Fdblp\%2Fresource\%2Fperson\%2F315759\%3E</pre>

<p>The SPARQL query encoded in this URI is:</p>
<pre>DESCRIBE &lt;http://www4.wiwiss.fu-berlin.de/dblp/resource/person/315759&gt;</pre>

<p>This shows how a SPARQL endpoint can be used as a convenient method of
serving resource descriptions.</p>

<p><strong><a href="http://semantic-mediawiki.org/wiki/Semantic_MediaWiki">Semantic
MediaWiki</a></strong> is an open-source Semantic wiki engine. Authors can
use special wiki syntax to put semantic attributes and relationships into
wiki articles. For each article, the software generates a 303 URI that
identifies the article's topic, and serves RDF descriptions generated from
the attributes and relationships. Semantic MediaWiki drives the
<a href="http://ontoworld.org/wiki/Main_Page">OntoWorld wiki</a>. It has an article about the
city of Karlsruhe:</p>
<dl>
  <dt><tt>http://ontoworld.org/wiki/Karlsruhe</tt></dt>
    <dd>the article, an HTML document</dd>

  <dt><tt>http://ontoworld.org/wiki/_Karlsruhe</tt></dt>
    <dd>the city of Karlsruhe</dd>
  <dt><tt>http://ontoworld.org/wiki/Special:ExportRDF/Karlsruhe</tt></dt>
    <dd>RDF description of Karlsruhe</dd>
</dl>

<p>The URI of the RDF description is less than ideal, because it exposes the
implementation (php) and refers redundantly to RDF in the path and in the
query. A much cooler URI would be for example
<tt>http://ontoworld.org/data/Karlsruhe</tt>, 
as it allows content negotiation
to be used to serve the data in RDF, RIF (Rule Interchange Format), or whatever else we think of next.</p>

<h2 id="otherideas">6. Other Resource Naming
Proposals</h2>

<p>Many other approaches have been suggested over the years. While most of
them are appropriate in special circumstances, we feel that they do not fit
the criteria from <a href="#semweb">Section 3</a>, which are to <em>be on the
Web</em> and <em>don't be ambiguous</em>. Therefore they are not adequate as
general solutions for building a standards-based, non-fragmented,
decentralized Semantic Web. We will discuss two of these approaches in some
detail.</p>

<h3 id="schemes">6.1. New URI Schemes</h3>

<p>HTTP URIs already identify Web resources and Web documents, not other
kinds of resources. Shouldn't we create a new URI scheme to identify other
resources? Then we could easily distinguish them from Web documents just by
looking at the first characters of the URI. For example, the <em>info</em>
scheme can be used to identify books based on a LCCN number:
<tt>info:lccn/2002022641</tt>.</p>

<p>Here are examples of such new URI schemes. A longer list is provided by
Thompson and Orchard in <cite><a
href="http://www.w3.org/2001/tag/doc/URNsAndRegistries-50-2006-08-17.html">URNs,
Namespaces and Registries</a></cite> [<cite><a
href="#ref-TAG-URNs">TAG-URNs</a></cite>]. </p>
<ul>
  <li><strong><a
    href="http://magnet-uri.sourceforge.net/">Magnet</a></strong> is an open
    URI scheme enabling seamless integration between Web sites and
    locally-running utilities, such as file-management tools. It is based on
    hash-values, a URI looks like this:<br/>

    <tt>magnet:?xt=urn:sha1:YNCKHTQCWBTRNJIV4WNAE52SJUQCZO5C</tt>.</li>
  <li>The <strong><a
    href="http://www.ietf.org/rfc/rfc4452.txt"><tt>info:</tt> URI
    scheme</a></strong> is proposed to identify information assets that have
    identifiers in existing public namespaces. Examples are URIs for LCCN
    numbers (<code>info:lccn/2002022641</code>) and the Dewey decimal system
    (<tt>info:ddc/22/eng//004.678</tt>).</li>
  <li>The idea of <strong><a href="http://www.taguri.org/">Tag
    URIs</a></strong> is to generate collision-free URIs by using a domain
    name and the date when the URI was allocated. Even if the domain changes
    ownership at a later date, the URI remains unambiguous. Example:
    <code>tag:hawke.org,2001-06-05:Taiko</code>.</li>

  <li><strong><a
    href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=xri">XRI</a></strong>
    defines a scheme and resolution protocol for abstract identifiers. The
    idea is to use URIs that contain wildcards, to adapt to changes of
    organizations, servers, etc.<br />
    Examples are <code>@Jones.and.Company/(+phone.number)</code> or
    <code>xri://northgate.library.example.com/(urn:isbn:0-395-36341-1)</code>.</li>
</ul>

<p>To be truly useful, a new scheme must be accompanied by a protocol defining 
how to access more information about the identified resource. For example, the

<tt>ftp://</tt> URI scheme identifies resources (files on an FTP server), and
also comes with a protocol for accessing them (the FTP protocol). </p>

<p>Some of the new URI schemes provide no such protocol at all. Others
provide a Web Service that allows retrieval of descriptions using the HTTP
protocol. The identifier is passed to the service, which looks up the
information in a central database or in a federated way. The problem here is
that a failure in this service renders the system unusable.</p>

<p>Another drawback can be a dependence on a standardization body. To
register new parts in the <tt>info:</tt> space, a standardization body has to
be contacted. This, or paying a license fee before creating a new URI, slows
down adoption. In such cases a standardization body is desirable to ensure that
all URIs are unique (e.g. with ISBNs). But this can be achieved using HTTP
URIs inside an HTTP namespace owned and managed by the standardization
organization. </p>
<p>Independent of standardization body and retrievability, pending patents and 
legal issues can influence the adoption of a new URI scheme.&nbsp; When using 
patented technology, implementers should verify that a Royalty-Free license is 
available.</p>

<p>The problems with new URI schemes are discussed at length in <cite><a
href="http://www.w3.org/2001/tag/doc/URNsAndRegistries-50.html">URNs,
Namespaces and Registries</a></cite>.</p>

<h3 id="blanknodes">6.2. Reference by
Description</h3>

<p><i>&quot;Reference by Description&quot;</i> radically solves the URI problem by doing away with URIs
altogether: Instead of <em>naming</em> resources with a URI, <em>anonymous
nodes</em> are used, and are <em>described</em> with information that allows
us to find the right one. A person, for example, could be described by name, date of birth, and social security number. These pieces of information
should be sufficient to uniquely identify a person.</p>

<p>A popular practice is the use of a person's email address as a uniquely
identifying piece of information. The <tt>foaf:mbox</tt> property is used in

<a href="http://xmlns.com/foaf/spec/20070524.html">Friend of a Friend</a>
(<cite><a href="#ref-FOAF">FOAF</a></cite>) profiles for this purpose. In
OWL, this kind of property is known as an <em>Inverse Functional
Property</em> (IFP). When an agent encounters two resources with the same
email address, it can infer that both refer to the same person and can treat
them as one.</p>

<p>But how to <em>be on the Web</em> with this approach? How to enable agents
to download more data about resources we mention? There is a best practice to
achieve this goal: Provide not only the IFP of the resource (e.g. the
person's email address), but also an <tt>rdfs:seeAlso</tt> property that
points to a Web address of an RDF document with further information about it.
We see that HTTP URIs are still used to identify the location where more 
information can be
downloaded.</p>

<p>Furthermore, we now need several pieces of information to refer to a
resource, the IFP value and the RDF document location. The simple act of
linking by using a URI has become a process involving several moving parts,
and this increases the risk of broken links and makes implementation more
cumbersome.</p>

<p>Regarding FOAF's practice of avoiding URIs for people, we agree with <a
href="http://dig.csail.mit.edu/breadcrumbs/node/71">Tim Berners-Lee's
advice</a>: &ldquo;Go ahead and give yourself a URI. You deserve it!&rdquo; </p>

<h2 id="conclusion">7. Conclusion</h2>

<p>Resource names on the Semantic Web should fulfill two requirements: First,
a description of the identified resource should be retrievable with standard
Web technologies. Second, a naming scheme should not confuse things and the 
documents representing them.</p>

<p>We have described two approaches that fulfill these requirements, both
based on the HTTP URI scheme and protocol. One is to use the 303 HTTP status
code to redirect from the resource identifier to the describing document. One
is to use &ldquo;hash URIs&rdquo; to identify resources, exploiting the fact that
hash URIs are retrieved by dropping the part after the hash and retrieving
the other part.</p>

<p>The requirement to distinguish between resources and their descriptions
increases the need for coordination between multiple URIs. Some useful
techniques are: embedding links to RDF data in HTML documents, using RDF
statements to describe the relationship between the URIs, and using content
negotiation to redirect to an appropriate description of a resource.</p>

<h2 id="acknowledgements">8.
Acknowledgements</h2>

<p>Many thanks to Tim Berners-Lee who invested much time and helped us understanding the
<a href="http://www.w3.org/2001/tag/">TAG</a> solution by answering <a
href="http://chatlogs.planetrdf.com/swig/2006-10-29#T17-42-28">chat
requests</a> and contributing many emails with clarifications and detailled 
reviews of this document. Special thanks go to Stuart Williams, Norman Walsh and 
all the other members from TAG,
who reviewed
this document and provided essential feedback in
<a href="http://lists.w3.org/Archives/Public/www-tag/2007Jun/0075.html">June 
2007</a> and

<a href="http://lists.w3.org/Archives/Public/www-tag/2007Sep/0090.html">
September 2007</a> about many formulations that were (accidentially) contrary to the TAG's view. Also special 
thanks to the <a href="http://www.w3.org/2006/07/SWD/">Semantic Web Deployment 
Group</a>&#39;s members Michael Hausenblas, Vit 
Novacek, and Ed Summers&#39; reviews and their review summary sent in
<a href="http://www.w3.org/2006/07/SWD/wiki/ReviewCoolURIs">October 2007</a>. We wish to
thank everyone else who has reviewed drafts of this document, especially Chris Bizer, Gunnar AAstrand Grimnes, 
Harry Halpin, Xiaoshu Wang, Henry S. Thompson, Jonathan Rees, and Christoph P&auml;per. Susie Stephens reviewed the document, managed SWEO, and helped us to stay on 
track. Ivan Herman did much to verify that the W3C requirements are met and 
submitted the note.</p>

<p>This work was supported by the German Federal Ministry of Education,
Science, Research and Technology (BMBF), (Grants 01 IW C01, Project EPOS:
Evolving Personal to Organizational Memories; and 01 AK 702B, Project
InterVal: Internet and Value Chains) and by the European Union IST fund
(Grant FP6-027705, Project Nepomuk).</p>

<h2 id="references">9. References</h2>

<dl>
  <dt><a id="ref-AWWW" name="ref-AWWW">[AWWW]</a></dt>
    <dd><cite><a
      href="http://www.w3.org/TR/2004/REC-webarch-20041215/">Architecture of
      the World Wide Web, Volume One</a></cite>, Ian Jacobs, Norman Walsh,
      Editors. World Wide Web Consortium, 15 December 2004. This edition is
      http://www.w3.org/TR/2004/REC-webarch-20041215/. The <a
      href="http://www.w3.org/TR/webarch/">latest edition</a> is available at
      <a href="http://www.w3.org/TR/webarch/">http://www.w3.org/TR/webarch/</a>.</dd>
	<dt>[<a name="ref-ApCN">ApCN</a>]</dt>
	<dd><a href="http://httpd.apache.org/docs/2.0/content-negotiation.html">
	Apache HTTP Server Version 2.0 Documentation, Chapter Content Negotiation</a>. 
	This document is available at
	<a href="http://httpd.apache.org/docs/2.0/content-negotiation.html">
	http://httpd.apache.org/docs/2.0/content-negotiation.html</a>.</dd>
  <dt><a id="ref-Booth" name="ref-Booth">[Booth]</a></dt>
    <dd><cite><a
      href="http://www.w3.org/2002/11/dbooth-names/dbooth-names_clean.htm">Four
      Uses of a URL: Name, Concept, Web Location and Document
      Instance</a></cite>, David Booth. 28 January 2003. This document is
      available at
      http://www.w3.org/2002/11/dbooth-names/dbooth-names_clean.htm.</dd>

  <dt><a id="ref-CHIPS" name="ref-CHIPS">[CHIPS]</a></dt>
    <dd><cite><a href="http://www.w3.org/TR/2003/NOTE-chips-20030128/">Common
      HTTP Implementation Problems</a></cite>, Olivier Th&eacute;reaux, Editor.
      World Wide Web Consortium, 28 January 2003. This edition is
      http://www.w3.org/TR/2003/NOTE-chips-20030128/. The <a
      href="http://www.w3.org/TR/2003/NOTE-chips-20030128/">latest
      edition</a> is available at http://www.w3.org/TR/chips/.</dd>
  <dt><a id="ref-Cool" name="ref-Cool">[Cool]</a></dt>
    <dd><cite><a href="http://www.w3.org/Provider/Style/URI">Cool URIs don't
      change</a></cite>, Tim Berners-Lee, 1998. This document is available at
      <a href="http://www.w3.org/Provider/Style/URI">http://www.w3.org/Provider/Style/URI</a>.</dd>
	<dt>[<a name="ref-DP">DP</a>]</dt>
	<dd>The DataPortability Project. <a href="http://dataportability.org/">
	http://dataportability.org/</a> </dd>

  <dt><a id="ref-ECS" name="ref-ECS">[ECS]</a></dt>
    <dd><cite><a href="http://id.ecs.soton.ac.uk/docs/">ECS URI System
      Specification</a></cite>, Colin Williams, Nick Gibbins. ECS
      Southampton, 2006. This document is available at
      <a href="http://id.ecs.soton.ac.uk/docs/">http://id.ecs.soton.ac.uk/docs/</a>.</dd>
  <dt><a id="ref-FOAF" name="ref-FOAF">[FOAF]</a></dt>
    <dd><cite><a href="http://xmlns.com/foaf/spec/20070524.html">FOAF
      Vocabulary Specification 0.9</a></cite>, Dan Brickley, Libby Miller. 24
      May 2007. This edition is http://xmlns.com/foaf/spec/20070524.html. The
      <a href="http://xmlns.com/foaf/spec/">latest edition</a> is available
      at <a href="http://xmlns.com/foaf/spec/">http://xmlns.com/foaf/spec/</a>.</dd>
	<dt>[<a name="ref-Give">Give</a>]</dt>
	<dd><i>
	<a href="http://blog.okfn.org/2007/11/07/give-us-the-data-raw-and-give-it-to-us-now/">
	Give Us the Data Raw, and Give it to Us Now</a></i>. Rufus Pollock. 7th 
		November 2007. </dd>
	<dt>[<a name="ref-GenRes">GenRes</a>]</dt>
	<dd><i><a href="http://www.w3.org/DesignIssues/Generic.html">Generic 
	Resources</a></i>, Tim Berners-Lee. This document is available at
	<a href="http://www.w3.org/DesignIssues/Generic.html">
	http://www.w3.org/DesignIssues/Generic.html</a>.</dd>

	<dt>[<a name="ref-GRDDL">GRDDL</a>]</dt>
	<dd><a href="http://www.w3.org/TR/grddl/">Gleaning Resource Descriptions 
	from Dialects of Languages (GRDDL)</a>, Dan Connolly, Editor, W3C 
	Recommendation 11 September 2007. This edition is http://www.w3.org/TR/2007/REC-grddl-20070911/. 
	The latest edition is available at <a href="http://www.w3.org/TR/grddl/">
	http://www.w3.org/TR/grddl/</a>.</dd>
  <dt><a id="ref-HTTP-URI2" name="ref-HTTP-URI2">[HTTP-URI2]</a></dt>
    <dd><cite><a href="http://www.w3.org/DesignIssues/HTTP-URI2.html">What
      HTTP URIs Identify</a></cite>, Tim Berners-Lee. 9 June 2005. This
      document is available at
    http://www.w3.org/DesignIssues/HTTP-URI2.html.</dd>

  <dt><a id="ref-httpRange" name="ref-httpRange">[httpRange]</a></dt>
    <dd><cite><a
      href="http://lists.w3.org/Archives/Public/www-tag/2005Jun/0039.html">[httpRange-14]
      Resolved</a></cite>, Roy Fielding. 18 June 2005. This archived <a
      href="http://lists.w3.org/Archives/Public/www-tag/">www-tag</a> email
      message is available at
      <a href="http://lists.w3.org/Archives/Public/www-tag/2005Jun/0039.html">http://lists.w3.org/Archives/Public/www-tag/2005Jun/0039.html</a>.</dd>
	<dt>[<a name="ref-HTTP-SPEC">HTTP-SPEC</a>]</dt>
	<dd>
	<a href="http://www.rfc.net/rfc2616.html#s14.1">
	RFC2616</a>, Hypertext Transfer Protocol -- HTTP/1.1, <a href="http://www.rfc.net/rfc2616.html#s14.1">http://www.rfc.net/rfc2616.html#s14.1</a></dd>
  <dt><a id="ref-N3" name="ref-N3">[N3]</a></dt>
    <dd><cite><a href="http://www.w3.org/DesignIssues/Notation3">Notation
      3</a></cite>, Tim Berners-Lee, Dan Connolly, 2008. This document is available
      at <a href="http://www.w3.org/TeamSubmission/n3/">http://www.w3.org/TeamSubmission/n3/</a>.</dd>
	<dt>[<a name="ref-N3Primer">N3Primer</a>]</dt>
	<dd>Primer: Getting into RDF &amp; Semantic Web using N3. Tim Berners-Lee, 2005.
	<a href="http://www.w3.org/2000/10/swap/Primer">
	http://www.w3.org/2000/10/swap/Primer</a> </dd>

  <dt>[<a name="ref-RDFaPrimer">RDFa Primer</a>]</dt>
    <dd>RDFa Primer 1.0 - Embedding Structured Data in Web Pages (see <a
      href="http://www.w3.org/2006/07/SWD/RDFa/primer/">http://www.w3.org/2006/07/SWD/RDFa/primer/</a>.)</dd>
  <dt><a id="ref-RDFPrimer" name="ref-RDFPrimer">[RDFPrimer]</a></dt>
    <dd><cite><a
      href="http://www.w3.org/TR/2004/REC-rdf-primer-20040210/">RDF
      Primer</a></cite>, Frank Manola, Eric Miller, Editors. World Wide Web
      Consortium, 10 February 2004. This edition is
      http://www.w3.org/TR/2004/REC-rdf-primer-20040210/. The <a
      href="http://www.w3.org/TR/rdf-primer/">latest edition</a> is available
      at http://www.w3.org/TR/rdf-primer/.</dd>

  <dt><a id="ref-RDFXML" name="ref-RDFXML">[RDFXML]</a></dt>
    <dd><cite><a
      href="http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/">RDF/XML
      Syntax Specification (Revised)</a></cite>, Dave Beckett, Editor. World
      Wide Web Consortium, 10 February 2004. This edition is
      http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/. The <a
      href="http://www.w3.org/TR/rdf-syntax-grammar/">latest edition</a> is
      available at http://www.w3.org/TR/rdf-syntax-grammar/.</dd>
  <dt><a id="ref-Recipes" name="ref-Recipes">[Recipes]</a></dt>
    <dd><cite><a
      href="http://www.w3.org/TR/2008/WD-swbp-vocab-pub-20080123/">Best
      Practice Recipes for Publishing RDF Vocabularies</a></cite>, Alistair
      Miles, Thomas Baker, Ralph Swick, Editors. World Wide Web Consortium,
      23 January 2008. This edition is
      http://www.w3.org/TR/2008/WD-swbp-vocab-pub-20080123/. It is a work in
      progress. The <a href="http://www.w3.org/TR/swbp-vocab-pub/">latest
      edition</a> is available at http://www.w3.org/TR/swbp-vocab-pub/.</dd>

  <dt><a id="ref-RFC2616" name="ref-RFC2616">[RFC2616]</a></dt>
    <dd><cite><a href="http://www.ietf.org/rfc/rfc2616.txt">RFC 2616:
      Hypertext Transfer Protocol - HTTP/1.1</a></cite>, J. Gettys, J. Mogul,
      H. Frystyk, L. Masinter, P. Leach, T. Berners-Lee. IETF, 1999. This
      document is available at http://www.ietf.org/rfc/rfc2616.txt.</dd>
  <dt><a id="ref-RFC3986" name="ref-RFC3986">[RFC3986]</a></dt>
    <dd><cite><a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986: Uniform
      Resource Identifier (URI): Generic Syntax</a></cite>, T. Berners-Lee,
      R. Fielding, L. Masinter. IETF, 2005. This document is available at
      http://www.ietf.org/rfc/rfc3986.txt.</dd>
  <dt><a id="ref-SMW" name="ref-SMW">[SMW]</a></dt>

    <dd><cite><a
      href="http://www.aifb.uni-karlsruhe.de/WBS/hha/papers/SemanticWikipedia.pdf">Semantic
      Wikipedia</a></cite>, Max V&ouml;lkel, Markus Kr&ouml;tzsch, Denny Vrandecic,
      Heiko Haller, Rudi Studer. University of Karlsruhe, 2006. This document
      is available at
      http://www.aifb.uni-karlsruhe.de/WBS/hha/papers/SemanticWikipedia.pdf.</dd>
  <dt><a id="ref-TAG-Alt" name="ref-TAG-Alt">[TAG-Alt]</a></dt>
    <dd><cite><a
      href="http://www.w3.org/2001/tag/doc/alternatives-discovery-20061101.html">On
      Linking Alternative Representations To Enable Discovery And
      Publishing</a></cite>, T.V. Raman. World Wide Web Consortium, 1
      November 2006. This edition is
      http://www.w3.org/2001/tag/doc/alternatives-discovery-20061101.html.
      The <a
      href="http://www.w3.org/2001/tag/doc/alternatives-discovery.html">latest
      edition</a> is available at
      http://www.w3.org/2001/tag/doc/alternatives-discovery.html.</dd>
  <dt><a id="ref-TAG-URNs" name="ref-TAG-URNs">[TAG-URNs]</a></dt>

    <dd><cite><a
      href="http://www.w3.org/2001/tag/doc/URNsAndRegistries-50-2006-08-17.html">URNs,
      Namespaces and Registries</a></cite>, Henry S. Thompson, David Orchard.
      World Wide Web Consortium, 17 August 2006. This edition is
      http://www.w3.org/2001/tag/doc/URNsAndRegistries-50-2006-08-17.html. It
      is a work in progress. The <a
      href="http://www.w3.org/2001/tag/doc/URNsAndRegistries-50.html">latest
      edition</a> is available at
      http://www.w3.org/2001/tag/doc/URNsAndRegistries-50.html.</dd>
  <dt><a id="ref-TriX" name="ref-TriX">[TriX]</a></dt>
    <dd><cite><a
      href="http://www.mulberrytech.com/Extreme/Proceedings/html/2004/Stickler01/EML2004Stickler01.html">RDF
      Triples in XML</a></cite>, Jeremy J. Carroll, Patrick Stickler, 2004.
      This document is available at
      http://www.mulberrytech.com/Extreme/Proceedings/html/2004/Stickler01/EML2004Stickler01.html.</dd>
  <dt><a id="ref-WP-HTTP" name="ref-WP-HTTP">[WP-HTTP]</a></dt>

    <dd><cite><a href="http://en.wikipedia.org/wiki/HTTP">Hypertext Transfer
      Protocol</a></cite>, Wikipedia contributors. Wikipedia, 8 October 2007.
      The latest version of this document is available at
      http://en.wikipedia.org/wiki/HTTP.</dd>
</dl>

<h2 id="changelog">10. Change log</h2>
<dl>
  <dt>29 November 2006</dt>
    <dd>1.0 Initial Version.</dd>
  <dt>9 August 2007</dt>

    <dd>1.1 Revised Version. Changes based on 
	<a href="http://lists.w3.org/Archives/Public/www-tag/2007Jun/0075.html">TAG
      review</a>.</dd>
	<dt>28 November 2007</dt>
	<dd>Leo Sauermann included more feedback from reviews contributed by TAG, 
	SWD, and Tim Berners-Lee.</dd>
	<dt>8 December 2007</dt>
	<dd>Danny Ayers did proofreading, minor grammar/idiomatic/editorial changes (I've tried not
    to make any changes that substantively modify the content, though some
    come close...). XHMTL validated with nxml-mode emacs</dd>

	<dt>12 December 2007</dt>
	<dd>Leo Sauermann included link to GRDDL as suggested by Danny Ayers, minor 
	changes of todo notes. Document was remodelled to Working Draft status - all 
	feedback by SWD, TAG, and Tim Berners Lee either has been addressed or is 
	listed in this document as todos using @@-symbols and the css class "todo".</dd>
	<dt>17 December 2007</dt>
	<dd>Document published as Working Draft at
	<a href="http://www.w3.org/TR/2007/WD-cooluris-20071217/">
	http://www.w3.org/TR/2007/WD-cooluris-20071217/</a> </dd>
	<dt>23 Februar 2008</dt>
	<dd>All feedback received on Working Draft.</dd>
	<dt>20 March 2008</dt>
	<dd>All feedback incorporated, issues are listed and addressed in
	<a href="https://gnowsis.opendfki.de/repos/gnowsis/papers/2006_11_concepturi/feedback/index.htm#feedback_v20071217">
	this document</a>.</dd>
	<dt>21 March 2008</dt>
	<dd>Document published as Last Call Working Draft at
	<a href="http://www.w3.org/TR/2008/WD-cooluris-20080321/">
	http://www.w3.org/TR/2008/WD-cooluris-20080321/</a> </dd>
	<dt>31 March 2008</dt>
	<dd>Document published as Interest Group Note. Feedback to previous version 
	and changes are
	<a href="https://gnowsis.opendfki.de/repos/gnowsis/papers/2006_11_concepturi/feedback/index.htm#feedback_v20080321">
	listed here</a>.</dd>
</dl>
</body>
</html>