Architecture.html 57.4 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 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta name="generator" content=
    "HTML Tidy for Mac OS X (vers 31 October 2006 - Apple Inc. build 13), see www.w3.org" />
    <title>
      Web Architecture from 50,000 feet
    </title>
    <meta http-equiv="Content-Type" content=
    "text/html; charset=us-ascii" />
    <link href="di.css" rel="stylesheet" type="text/css" />
  </head>
  <body bgcolor="#DDFFDD" text="#000000" lang="en" xml:lang="en">
    <address>
      <p>
        <br />
        Status: An attempt to give a high-level overview of the
        architecture of the WWW. This been presented to and
        discussed at the IWWW conferences, the W3C chairs forum and
        the W3C Advisory Committee. Editing status: Being updated
        for October 1999. More verbose in new areas. Comments
        welcome
      </p>
    </address>
    <p>
      <a href="Overview.html">Up to Design Issues</a>
    </p>
    <hr />
    <h1>
      <a name="Architectu" id="Architectu">Web Architecture from
      50,000 feet</a>
    </h1>
    <p>
      This document attempts to be a high-level view of the
      architecture of the World Wide Web. It is not a definitive
      complete explanation, but it tries to enumerate the
      architectural decisions which have been made, show how they
      are related, and give references to more detailed material
      for those interested. Necessarily, from 50,000 feet, large
      things seem to get a small mention. It is architecture, then,
      in the sense of how things hopefully will fit together. I
      have resisted the urge, and requests, to try to write an
      architecture for a long time: This was from a feeling that a
      dead and therefore less valuable document must any attempt to
      select which, of all the living ideas, seem most stable,
      logically connected and essential. So we should recognize
      that while it might be slowly changing, this is also a living
      document.
    </p>
    <p>
      The document is written for those who are technically aware
      or intend soon to be, so it sparse on explanation and heavy
      in terms of terms.
    </p>
    <h3>
      <a name="Goal" id="Goal">Goal</a>
    </h3>
    <p>
      The W3C Consortium's broadly stated mission is to lead the
      Web to its "full potential", whatever that means. My
      definition of the Web is a universe of network-accessible
      information, and I break the "full potential" into two by
      looking at it first as a means of human-to-human
      communication, and then as a space in which software agents
      can, though access to a vast amount of everything which is
      society, science and its problems, become tools to work with
      us.
    </p>
    <p>
      <i>(See keynote speeches such as "<a href=
      "../Talks/1998/0227-WebFuture/slide1-1.htm">Hopes for the
      future</a>" at the Quebec Internet Forum, and have written up
      in outline for example in short essay "<a href=
      "../1998/02/Potential.html">Realizing the full potential of
      the Web</a>")</i>
    </p>
    <p>
      In this overview first I will deal with the properties of the
      space itself, and then look it is use as a human medium and
      then as a medium for machine reasoning.
    </p>
    <p>
      This article assumes that the goals of interoperability, and
      creating an evolvable technology, are taken for granted and
      assumed throughout. The principles of universality of access
      irrespective of hardware or software platform, network
      infrastructure, language, culture, geographical location, or
      physical or mental impairment are core values in Web design:
      they so permeate the work described that they cannot be
      mentioned in any one place by will likewise be assumed
      throughout. <i>(See <a href=
      "../International">Internationalization Activity</a> and the
      <a href="../WAI/Overview.html">Web Accessibility
      Initiative</a>)</i>
    </p>
    <h3>
      <a name="Principles" id="Principles">Principles of Design</a>
    </h3>
    <p>
      Similarly, we assume throughout the design process certain
      general notions of what makes good design. Principles such as
      <b><a href="Principles.html#KISS">simplicity</a></b> and
      <b><a href="Principles.html#Modular">modularity</a></b> are
      the stuff of software engineering; <b><a href=
      "Principles.html#Decentrali">decentralization</a></b> and
      <b><a href="Principles.html#Tolerance">tolerance</a></b> are
      the life and breath of Internet. To these we might add the
      principles of <b><a href="Evolution.html#Least">least
      powerful</a></b> language, and the <a href=
      "Evolution.html#ToII"><b>test of independent
      invention</b></a> when considering evolvable Web technology.
      I do not not elaborate on these here (but see <a href=
      "Principles.html">Principles</a>).
    </p>
    <h3>
      <a name="fundamenta" id="fundamenta">The fundamentals: The
      Universal Web</a>
    </h3>
    <p>
      The most fundamental specification of Web architecture, while
      one of the simpler, is that of the Universal Resource
      Identifier, or URI. The principle that anything, absolutely
      anything, "on the Web" should identified distinctly by an
      otherwise opaque string of characters (A URI and possibly a
      fragment identifier) is core to the universality.
    </p>
    <p>
      Great multiplicative power of reuse derives from the facts
      that all languages use URIs as identifiers: This allows
      things written in one language to refer to things defined in
      another language. The use of URIs allows a language leverage
      the many forms of persistence, identity and various forms of
      equivalence. Each language simply refers to the URI spec -
      this is a flexibility point allowing the properties of naming
      and addressing schemes to be defined separately.
    </p>
    <p>
      <i>(See the <a href="http://www.ietf.org/rfc/rfc2396.txt">URI
      specification</a>; <a href="#Footnote:">Footnote</a>;
      <a href="NameMyth.html">Myths of Naming and
      addressing</a>)</i>
    </p>
    <p>
      There are many design decisions about the properties of URIs
      which are fundamental in that they determine the properties
      of the Web, but which I will not go into here. They include
      the rules for the parsing and use of relative URI syntax, the
      relationship of view identifiers (fragment ids) to URIs. It
      is important that these are respected in the design of new
      URI schemes.
    </p>
    <p>
      <i>(See the first few <a href="Overview.html">Design
      Issues</a> articles for detailed discussions of these)</i>
    </p>
    <h3>
      <a name="schemes" id="schemes">URI schemes</a>
    </h3>
    <p>
      The Web is by design and philosophy a decentralized system,
      and its vulnerabilities lie wherever a central facility
      exists. The URI specification raises one such general
      vulnerability, in that the introduction of new URI scheme is
      a potential disaster, immediately breaking interoperability.
    </p>
    <p>
      Guidelines for new Web developments are that they should
      respect the generic definition and syntax of URIs, not
      introduce new URI schemes without due cause, not introduce
      any different scheme which puts itself forward as to be
      universal as a superset of URIs which would effectively
      require information apart from a URI to be used as a
      reference. Also, in new developments, all significant objects
      with any form of persistent identity should be "first class
      objects" for which a URI exists. New systems should use URIs
      where a reference exists, without making constraint on the
      scheme (old or new) which is chosen.
    </p>
    <p>
      The principle of minimalist design requires that the URI
      super-space itself makes the minimum constraint upon any
      particular URI scheme space in terms of properties such as
      identity, persistence and dereferencability. In fact, the
      distinction between names and addresses blurs and becomes
      dangerously confusing in this context. (See Name myths). To
      discuss the architecture of that part of the Web which is
      served using HTTP we have to become more specific.
    </p>
    <ul>
      <li>
        <em>A URI activity is proposed [Oct 99, member only]</em>
      </li>
    </ul>
    <h3>
      <a name="Specific" id="Specific">Specific schemes</a>
    </h3>
    <p>
      A few spaces are worthy of note which in which identity is
      fairly well defined, but have no defined dereferencing
      protocol: the message identifier (mid) and content identifier
      (cid) spaces adopted from the MIME world, the md5: hash code
      with verifiable pure identity, and the pseudo-random
      Universally Unique Identifier (uuid) from the Apollo domain
      system and followers. These may be underused as URIs.
    </p>
    <p>
      It is also worth pointing out the usefulness of URIs which
      define communication endpoints which do have a persistent
      identity even for connection-oriented technologies for which
      there is no other addressable content. An example is the
      "mailto" scheme which should perhaps have been called
      "mailbox". This object is the most fundamental and very
      widely used object in the email world. It represents
      conceptually a mailbox - something you can mail to. It is a
      mistake to take the URI as a verb: a URI is a noun. Typical
      browsers represent a "mailto:" URI as a window for sending a
      new message to the address, but opening an address book entry
      and a list of messages previous received from or sent to that
      mailbox would also be a useful representation.
    </p>
    <p>
      There is an open question as to what the process should be
      for formulating new URI schemes, but it is clear that to
      allow unfettered proliferation would be a serious mistake. In
      almost all other areas, proliferation of new designs is
      welcomed and the Web can be used as a distributed registry of
      them, but not for the case of URI schemes.
    </p>
    <p>
      It is reasonable to consider URI spaces which are designed to
      have greater persistence than most URIs have today, but not
      technical solutions with no social foundation.
    </p>
    <h2>
      <a name="HTTP" id="HTTP">The HTTP space</a>
    </h2>
    <p>
      The most well-known URI space is the HTTP space,
      characterized by a flexible notion of identity <i>(See
      Generic URIs)</i>, and a richness of information about and
      relating resources, and a dereferencing algorithm which
      currently is defined for reference by the HTTP 1.1 wire
      protocol. In practice, caching, proxying and mirroring
      schemes augment HTTP and so dereferencing may take place even
      without HTTP being invoked directly at all.
    </p>
    <p>
      <i>(See the HTTP 1.1 protocol specification.)</i>
    </p>
    <p>
      The HTTP space consists of two parts, one hierarchically
      delegated, for which the Domain Name System is used, and the
      second an opaque string whose significance is locally defined
      by the authority owning the domain name.
    </p>
    <p>
      <i>(See the DNS specification)</i>
    </p>
    <p>
      The Achilles' heel of the HTTP space is the only centralized
      part, the ownership and government of the root of the DNS
      tree. As a feature common and mandatory to the entire HTTP
      Web, the DNS root is a critical resource whose governance by
      and for the world as a whole in a fair way is essential. This
      concern is not currently addressed by the W3C, except
      indirectly though involvement with ICANN.
    </p>
    <p>
      The question of improving the persistence of URIs in the HTTP
      space involves issues of tool maturity, user education, and
      maturity of the Web society. The changing of URIs ("moving"
      of resources) is strongly discouraged.
    </p>
    <ul>
      <li>
        <a href="/Provider/Style/URI">See: Cool URIs don't
        change</a>
      </li>
    </ul>
    <p>
      Research work elsewhere has included many "naming" schemes
      variously similar or dissimilar to HTTP, the phrase "URN"
      bring used either for any such or one such scheme. The
      existence of such projects should not be taken, to indicate
      that persistence of HTTP URIs should not also be pursued, or
      that URIs in general should be partitioned into "names" and
      "addresses". It is extremely important that if a new space is
      created, that it be available as a sub-space of the universal
      URI space, so that the universality of the Web is preserved,
      and so that the power of the new space been usable for all
      resources.
    </p>
    <p>
      One can expect HTTP to mature to provide alternate more
      modern standard ways of dereferencing HTTP addresses, whilst
      keeping the same (hierarchy plus opaque string) address
      space.
    </p>
    <h3>
      <a name="State" id="State">State distribution protocols</a>
    </h3>
    <p>
      Currently on the Internet, HTTP if used for Web pages, SMTP
      for email messages, and NNTP for network news. The curious
      thing about this is that the objects transferred are
      basically all MIME objects, and that the choice of protocol
      is an optimization made by the user often erroneously. An
      ideal situation is one in which the "system" (machines,
      networks and software) decides adaptively which sorts of
      protocols to use to efficiently distribute information,
      dynamically as a function of readership. This question of an
      efficient flexible protocol blending fetching on demand to
      preemptive transmission is currently seen as too much of a
      research are for W3C involvement.
    </p>
    <h2>
      <a name="Content" id="Content">Content and Remote
      Operations</a>
    </h2>
    <p>
      The URI specification effectively defines a space, that is a
      mapping between identifiers (URIs) and resources. This is all
      in theory which is needed to define the space, but in order
      to make the content of the space available, the operation of
      dereferencing an identifier is a fundamental necessity. In
      HTTP this is the "GET" operation. In the Web architecture,
      GET therefore has a special status. It is not allowed to have
      side effects (and it is idempotent) and HTTP has many
      mechanisms for refining concepts of idempotency and identity.
      While other remote operations on resources (objects) in the
      Web are quite valid, and some are indeed included in HTTP,
      the properties of GET are an important principle. The use of
      GET for any operation which has side-effects (such as
      unsubscribing from a mailing list, filling a shopping cart,
      etc) is incorrect.
    </p>
    <p>
      The introduction of any other method apart from GET which has
      no side-effects and is simply a function of the URI is also
      incorrect, because the results of such an operation
      effectively form a separate address space, which violates the
      universality. A pragmatic symptom would be that hypertext
      links would have to contain the method as well as the URI in
      order to able to address the new space, which people would
      soon want to do.
    </p>
    <p>
      <em>(Example: Instead of defining a new method CVSSTAT to
      retrieve the code management status of a document, that
      status should be given a URI in the server's space, and
      headers used to point the aware client to it. Otherwise, we
      end up with a class of document which contains interesting
      information but cannot be linked to.)</em>
    </p>
    <p>
      The extension of HTTP to include an adaptive system for the
      proactive distribution of information as a function of real
      or anticipated need, and for the location of close copies, is
      a natural optimization of the current muddle of push and pull
      protocols (SMTP, NNTP, HTTP, and HTTP augmented by "channel"
      techniques). This is an area in which the answers are not
      trivial and research is quite appropriate. However, it is in
      the interests of everything which will be built on the Web to
      make the form of distribution protocols invisible wherever
      possible.
    </p>
    <p>
      HTTP in fact combines a basic transport protocol with formats
      for a limited varieties of "metadata", information about the
      payload of information. This is a historical inheritance from
      the SMTP world and as an architectural feature which should
      be replaced by a <a href=
      "Metadata.html#MetadataHeaders">clearer distinction</a>
      between the basic HTTP functionality and a dramatically
      richer world of <a href="Metadata.html">metadata</a>.
    </p>
    <p>
      <i>(See <a href="../Propagation/Overview.html">old
      propagation activity statement</a>)</i>
    </p>
    <h3>
      <a name="Remote" id="Remote">Remote Operations: Web
      Services</a>
    </h3>
    <p>
      HTTP was originally designed as a protocol for remote
      operations on objects, with a flexible set of methods. The
      situation in which distributed object oriented systems such
      as CORBA, DCOM and RMI exist with distinct functionality and
      distinct from the Web address space causes a certain tension,
      counter to the concept of a single space. The HTTP-NG
      activity investigated many aspects of the future development
      of NG, including a possible unification of the world of
      Remote procedure Call (RPC) with existing Web protocols. The
      study ended but has not generated the momentum for further
      work, but the use of XML for inter-company remote operations
      becaome prevalent (2001) and became known as Web Services.
      See the W3C Web Serices activity.
    </p>
    <p>
      Both HTTP and XML have come upon the problem of
      extensibility. The XML/RDF model for extensibility is general
      enough for what RPC needs, in my opinion, and I note that an
      RPC message is a special case of a structured document. To
      take the whole RPC system and represent it in the RDF model
      would be quite reasonable. Of course, a binary format (even
      if just compression) for XML would be required for efficient
      transmission. But the evolvability characteristics of RDF are
      just what RPC needs.
    </p>
    <p>
      Web Services differe from previous remote operation work in
      that the transactions are less frequent, and slower, and
      between non-trusted parties. Such things as proof of delivery
      become important . while techniques such as storeing messaegs
      for years can becoem part of a protocol. The Web Services
      Architecture Group was chatered to define the
      interrelationships betwwn the required functionality such as
      Pckaging, Security, Reliability, QoS and so on discussed as
      Web Services requirements at the 3C WS wokshop.
    </p>
    <h3>
      <a name="Level" id="Level">Level breaking: Messages and
      Documents.</a>
    </h3>
    <p>
      There has been to date an artificial distinction between the
      transmission standards for "protocols"and "content". In the
      ever continuing quest for generalization and simplification,
      this is a distinction which cannot last. Therefore, new
      protocols should be defined in terms of the exchange of
      messages, where messages are XML, and indeed, RDF documents.
    </p>
    <p>
      The distinction has been partly historical, and partly
      useful, in that, with protocols defined on top of "messages",
      and defined in order to transport "documents" (or whatever
      vocabulary), the confusing but illuminating recursion of
      protocols being defined in terms of messages exchanged by
      protocols defined in terms of other messages and so on.
    </p>
    <p>
      In fact this recursion happens all the time and is important.
      Email messages contain email messages. Business protocols are
      enacted using documents which are put on the web or sent by
      SMTP or HTTP using internet messages. The observation that
      these are in fact the same (historically this almost lead to
      HTTP messages being defined in SGML) leads to a need for
      generalization and a gain from the multiplicative power for
      combining the ideas. For example, regarding documents and
      messages as identical gives you the ability to sign messages,
      where you could only sign documents, and to binary encode
      documents, where you could only binary encode messages, and
      so on. What was level breaking becomes an architectural
      reorganization and generalization.
    </p>
    <p>
      The ideal goals, then, for an evolution of HTTP - would
      include:
    </p>
    <ul>
      <li>A protocol for allowing many concurrent message
      exchanges;
      </li>
      <li>A data typing and marshalling standard for objects as
      general and as extensible as XML documents with namespaces;
      </li>
      <li>A schema system which allows any (Corba, DCom, RMI, etc)
      RPC interface to be defined, with an implied standard
      efficient format for RPC transmission;
      </li>
      <li>Extensions to the RPC state transition protocols to allow
      asynchrony needed for web applications (bidirectionality,
      streaming, asynchronous calls...);
      </li>
      <li>An implementation of a sophisticated socially aware state
      propagation (Web) protocol on top of the new RPC
      functionality, but in a modular way making use of the the
      extensibility to allow a much simpler basic design than HTTP
      1.1.
      </li>
    </ul>
    <p>
      <i>(See the old HTTP-NG activity statement, the <a href=
      "../TR/WD-HTTP-NG-architecture/Overview.html">HTTP-NG
      architecture note</a>)</i>
    </p>
    <p>
      Where new protocols address ground which is covered by
      HTTP-NG, awareness and lack of duplication is obviously
      desirable.
    </p>
    <h3>
      <a name="Extension" id="Extension">Extension of access
      protocols</a>
    </h3>
    <p>
      The ubiquity of HTTP, while not a design feature of the Web,
      which could exist with several schemes in concurrence, has
      proved a great boon. This sunny situation is clouded a little
      by the existence of the "https" space which implied the use
      of HTTP through a Secure Socket Layer (SSL) tunnel. By making
      this distinction evident in the URI, users have to be aware
      of the secure and insecure forms of a document as separate
      things, rather than this being a case of negotiation in the
      process of dereferencing the same document. Whilst the
      community can suffer the occasional surfacing of a that which
      should be hidden, it is not desirable as a precedent, as many
      other dimensions of negotiation (including language, privacy
      level, etc) for which proliferation of access schemes is
      inappropriate.
    </p>
    <p>
      Work at W3C on extension schemes for protocols has been
      undertaken for a long time and while not adopted in a
      wide-scale way in HTTP 1.1, currently takes the form of the
      Mandatory specification. Many features such as PICS or RTSP
      could have benefitted from this had it been defined in early
      HTTP versions.
    </p>
    <p>
      <i>(See the Mandatory Specification)</i>
    </p>
    <p>
      Extension of future protocols such as HTTP-NG is clearly an
      important issue, but hopefully the experience from the
      extensibility of data formats will provide tools powerful
      enough to be picked up directly and used by the HTTP-NG
      community in due course.
    </p>
    <p>
      Specifications for protocols or data formats must allow for
      and distinguish mandatory and optional extensions. A generic
      facility for doing this in XML is clearly called for.
    </p>
    <h2>
      <a name="Data" id="Data">Data Formats</a>
    </h2>
    <h3>
      <a name="Format" id="Format">Format Negotiation</a>
    </h3>
    <p>
      When the URI architecture is defined, and when one has the
      use of at least one dereferencable protocol, then all one
      needs for an interoperable global hypertext system is at
      least one common format for the content of a resource, or Web
      object.
    </p>
    <p>
      The initial design of the Web assumed that there would
      continue to be a wild proliferation of proprietary data
      formats, and so HTTP was designed to have a feature of
      negotiation common formats between client and server.
      Historically this was not used due to, on the one hand, the
      proliferation of HTML as a common format, and, on the other
      hand, the size of the known formats list which a typical
      client had to send with each transaction.
    </p>
    <p>
      As an architectural feature, this is still desirable. The Web
      is currently full of user awareness of data formats, and
      explicit user selection of data formats, which complicates it
      and hides the essential nature of the information.
    </p>
    <p>
      The discussion of data formats should be seen in this light.
    </p>
    <ul>
      <li>See: The CC/PP protocol in development
      </li>
    </ul>
    <h3>
      <a name="MIME" id="MIME">MIME types</a>
    </h3>
    <p>
      In HTTP, the format of data is defined by a "MIME type". This
      formally refers to a central registry kept by IANA. However,
      architecturally this is an unnecessary central point of
      control, and there is no reason why the Web itself should not
      be used as a repository for new types. Indeed, a transition
      plan, in which unqualified MIME types are taken as relative
      URIs within a standard reference URI in an online MIME
      registry, would allow migration of MIME types to become first
      class objects.
    </p>
    <p>
      The adoption by the community of a tested common recommended
      data format would then be a question not of (central)
      registry but of (possibly subjective) endorsement.
    </p>
    <p>
      Currently the Web architecture requires the syntax and
      semantics of the URI fragment identifier (the bit after the
      "#") to be a function of MIME type. This requires it to be
      defined with every MIME registration. This poses an unsolved
      problem when combined with format negotiation.
    </p>
    <h3>
      <a name="XML" id="XML">Common Syntax for Structured
      documents: XML</a>
    </h3>
    <p>
      While HTML was, partly for political reasons, based upon the
      generic SGML language, the community has been quite aware
      that while sharing a common syntax for structured documents
      was a good idea, something simpler was required. XML was the
      result.
    </p>
    <p>
      <i>(See the <a href="/XML/Activity.html">XML Activity
      Statement</a>)</i>
    </p>
    <p>
      While in principle anyone is free to use any syntax in a new
      language, the evident advantages from sharing the syntax are
      so great that new languages should where it is not overly
      damaging in other ways be written in XML. Apart from the
      efficiency of sharing tools, parsers, and understanding, this
      also leverages the work which has been put in to XML in the
      way of internationalization, and extensibility.
    </p>
    <h3>
      <a name="Namespaces" id="Namespaces">Namespaces</a>
    </h3>
    <p>
      The extensibility in XML is essential in order to crack a
      well-known tension in the software world between free but
      undefined extension and well-defined but awkward extension in
      the RPC world. An examination of the needs for evolution of
      technology in a distributed community of developers shoes
      that the language must have certain features:
    </p>
    <ul>
      <li>It must be possible to precisely define a language (the
      set of tokens, grammar, and semantics) as a first class
      object;
      </li>
      <li>It must be possible to make documents in a mixture of
      languages (language mixing)
      </li>
      <li>Every document should be self-defining by carrying the
      URI(s) of the language(s) in which it is written;
      </li>
      <li>It must be possible to process a document understanding a
      subset of the languages (partial understanding).
      </li>
    </ul>
    <p>
      <i>(See <a href=
      "../Talks/1998/0415-Evolvability/slide1-1.htm">Evolvability
      Talk</a> at WWW7, and design issues:</i> <a href=
      "Evolution.html">Evolvability</a>)<br />
      (See Note "<a href="../TR/NOTE-webarch-extlang.html">Web
      architecture: extensible languages</a>, )
    </p>
    <p>
      These needs lie behind the evolution of data formats whether
      of essentially human-targeted or of machine-understandable
      (semantic) data.
    </p>
    <p>
      When a new language is defined, XML should in general be
      used. When it is, the new language, or the new features
      extending an existing language, must be defined as a new
      namespace. (That is, new non-XML syntaxes, processing
      instructions, or tunnelling of functionality within other XML
      entities etc is inappropriate). A namespace URI must be used
      to identify the language. XML should be considered to include
      XML 1.0 and Namespaces.
    </p>
    <p>
      The XML and RDF schema languages are mature now (2002). New
      namespaces must be designed assuming the use of schemas, and
      not relying on DTD functionality. Where the functionality
      being introduced maps onto a logical assertion model, then
      the mapping onto the RDF model below should be defined, and,
      normally, RDF used. An alternative is to define an XML schema
      and a mapping algorithm from an XML document using the
      namespace to RDF.
    </p>
    <p>
      Language specifications should define the ways in which they
      can be extended. This typically involves defining types of
      element which subtypes can be created in future languages.
      The structural constraints of the original language will then
      define how the new language may syntactically be mixed with
      the old, and the semantics of the old specification will
      define how the new elements should be interpreted at the
      semantic level of that specification. (Note typically in an
      object-oriented support class, this will require classes
      supporting the new elements to support the same API as the
      superclass in the original language). Future work in this
      area is required to clarify this and how it is expressed in
      the schema language.
    </p>
    <p>
      New languages (namespaces) may, in summary, be introduced in
      two ways. Firstly, as a completely new application (such as a
      downloaded bank transfer), allowing interoperability where
      previously formats were proprietary and indecipherable.
      Secondly, as an extension to an existing application such as
      HTML or RDF. In the latter case languages such as style
      sheets for human readable documents and inference rules for
      logical documents will define the interpretation of the new
      language at a given semantic level.
    </p>
    <p>
      The namespace document (with the namespace URI) is a place
      for the language publisher to keep definitive material about
      a namespace. Schema languages were the first languages
      available for this, but could only give syntactic
      constraints. More generally, one would expect a more powerful
      language to allow all kinds of information to be provided,
      either inline (like RDF) or by reference (like RDDL or RDF).
      There is a huge a mount of value to be gained from having a
      document be self-describing in the Web. (This does not
      preclude the operation of checking a document against a
      different schema if one wants to as a local operation). The
      first stage in self-describing documents is to do it at the
      XML schema (structure) level. Successive stages are to give
      semantic information. [See grounded documents]
    </p>
    <p>
      Languages, like resources may be living or frozen. Making the
      language a living language is in my opinion dangerous and
      asking for HTML-like divergence. Even when a language is
      frozen, the namespace document may change as new languages
      become available to express different forms of semantics
      about the language. The namespace document may for example
      include or link to:
    </p>
    <ul>
      <li>Syntactic constraints (e.g. in xml-schema)
      </li>
      <li>Range and domain of properties (e.g. in rdf-schema)
      </li>
      <li>Default or mandatory style sheet for display of the
      language to a person (e.g. in CSS or XSL)
      </li>
      <li>and so on...
      </li>
    </ul>
    <p>
      A namespace document clearly may have a mixture of languages.
    </p>
    <h2>
      <a name="Human" id="Human">Human Readable Information</a>
    </h2>
    <p>
      By <b>human readable</b> information I mean documents in the
      traditional sense which are intended for human consumption.
      While these may be transformed, rendered, analyzed and
      indexed by machine, the idea of them being <i>understood</i>
      is an artificial-intelligence complete problem which I do not
      address as part of the Web architecture. When I talk about
      <b>machine-understandable</b> documents, therefore, I mean
      data which has explicitly been prepared for machine
      reasoning: part of a semantic web. (The use of the term
      "semantics" by the SGML community to distinguish content from
      form is unfortunately confusing and not here).
    </p>
    <h3>
      <a name="Separation" id="Separation">Separation of Form and
      Content</a>
    </h3>
    <p>
      An architectural rule which the SGML community embraced is
      the separation of form and content. It is an essential part
      of Web architecture, making possible the independence of
      device mentioned above, and greatly aiding the processing and
      analysis. The addition of presentation information to HTML
      when it could be put into a style sheet breaks this rule. The
      rule applies to many specifications apart from HTML: in the
      Math Markup Language (MathML) two levels of the language
      exist, one having some connection with mathematical meaning,
      and the other simply indicating physical layout.
    </p>
    <h3>
      <a name="Graphics" id="Graphics">Graphics</a>
    </h3>
    <p>
      The development of different languages for human readable
      documents can be relatively independent. So 2D graphic
      languages such as PNG and SVG are developed essentially
      independently of 3D languages such as VRML (handled not by
      W3C but by the VRMLC, now Web3D) and text languages such as
      HTML and MathML. Coordination is needed when aspects of
      style, fonts, color and internationalization are considered,
      where there should be a single common model for all
      languages.
    </p>
    <p>
      PNG was introduced as a compact encoding which improved on
      GIF both technically (color, flexibility and transparency)
      and politically (lack of encumbrance). <a href=
      "/Graphics/SVG/">SVG</a> is required as a common format in
      response to the large number of suggestions for an object
      oriented drawing XML language.
    </p>
    <h3>
      <a name="HTML" id="HTML">HTML</a>
    </h3>
    <p>
      The value of a common document language has been so enormous
      that HTML has gained a dominance on the Web, but it does not
      play a fundamental key role. Web applications are required to
      be able to process HTML, as it is the connective tissue of
      the Web, but it has no special place architecturally.
    </p>
    <p>
      HTML has benefitted and suffered from the "ignore what you
      don't understand" rule of free extension. In future, the plan
      is to migrate HTML from being an SGML application to being
      defined as an XML namespace, making future extension a
      controlled matter of namespace definition. The first step is
      a specification for documents with precisely HTML 4.0
      features but which are XML documents.
    </p>
    <p>
      <i>(See <a href="../TR/NOTE-rdfarch.html">W3C Data
      Formats</a> note)</i>
    </p>
    <h3>
      <a name="XHTML" id="XHTML">XHTML transition</a>
    </h3>
    <p>
      The transition strategy from HTML as it is practiced today to
      HTML based on XML in the future is difficult. It is driven by
      many constraints:
    </p>
    <ol>
      <li>Currently many web pages are badly formed and do not
      adhere to the HTML 4.0 standard, nor to SGML;
      </li>
      <li>Browsers must for a long time be able to read these
      legacy web pages.
      </li>
      <li>Many browsers exist which cannot parse XML;
      </li>
      <li>There is a way, "XHTML" to write a well-formed XML
      document so that it appears to a typical legacy browser to be
      HTML and it is parsed correctly;
      </li>
      <li>One can tell the difference between an old HTML document
      and an XML document by the namespace declaration;
      </li>
    </ol>
    <p>
      The transition strategy is to start using XML internally
      within a site, and for internal documents, while formating
      web pages as XHTML. This will allow web sites to use as many
      XML tools, encouraging the market for XML tools.
    </p>
    <p>
      The second phase is for web sites to convert HTML pages to
      XHTML pages. An incentive to do this will be to be able to
      use XML tools directly on the site (for reading: a special
      converter will be needed to write XHTML pages).This will
      create a base of well-formed XML pages, which hopefully will
      encouraging the inclusion of XML parsing in browsers and
      search engines. During the transition phase, any XML-capable
      browser finding an XML document must assume that it is
      well-formed XML with namespaces. The community must be
      careful to condemn any lax interpretation of the XML
      specification, such as nominally XHTML pages which are not
      well-formed XML and exactly the XHTML namespace. Anything
      which is not XML may be fed by a browser to a legacy HTML
      engine. Legacy HTML pages will of course <strong>not</strong>
      be extendable using other namespaces. XHTML pages will be
      extensible bearing in mind that legacy browsers will ignore
      any tag they don't recognize. Hopefully the transition will
      be eased by the availability of open source code which will
      take a typical old HTML page and convert it (with zero loss
      in most cases) into a completely valid XHTML page. This will
      allow all new tools to be built simply to accept XML, and
      therefore be ready as the use of XML spreads.
    </p>
    <p>
      Eventually, the weight of sites which need to use other
      languages, or other XML features such as Unicode, will
      hopefully cause a general upgrade until all the vast majority
      of Web clients are capable of handling XML with namespaces,
      and sites will be able to insist on it from their readers. At
      this point, a web service of translation of legacy pages
      would be one solution for general access to the archive of
      historical badly-formed documents.
    </p>
    <p>
      <em>Note: This transition strategy has been the cause of much
      debate, as some favor a complete switch from HTML to XML
      without compatability.</em>
    </p>
    <h3>
      <a name="Topology" id="Topology">Hypertext Link topology</a>
    </h3>
    <p>
      A fundamental compromise which allows the Web to scale (but
      created the dangling link problem) was the architectural
      decision that links should be fundamentally mono-directional.
      Links initially had three parameters: the source (implicit
      when in the source document), destination and type. The third
      parameter, intended to add semantics, has not been heavily
      used, but XLINK activity has as one goal to reintroduce this
      to add richness especially to large sets of Web pages. Note
      however that the Resource Description Framework , introduced
      below, is a model (based on an equivalent 3-component
      assertion onto which a link maps directly), and so link
      relationships, like any other relation in future Web
      architecture, must be expressible in RDF. In this way, link
      relationships in HTML, and in future XML hypertext languages,
      should migrate to becoming first class objects.
    </p>
    <p>
      XLINK will also define more sophisticated link topologies,
      and address the human interface questions related to them,
      still using the same URI space and using RDF as the defining
      language for relationship specification. (It may be
      appropriate for information based on the RDF model to be
      actually transferred in a different syntax for some reason,.
      but the specification must define the mapping, so that common
      processing engines can be used to process combinations of
      such information with other information in the RDF model.)
    </p>
    <h3>
      <a name="Style" id="Style">Style Sheets</a>
    </h3>
    <p>
      The principle of modular design implies that when form and
      content are separated the choice of languages for each, if
      possible, be made an independent choice. HTML has dominated
      the text markup (content) language, but the introduction of
      XML opened the door for the use of new XML markup languages
      between parties which share them. (See the <a href=
      "../Style/Overview.html">Style</a> activity at W3C).
    </p>
    <p>
      Style essentially is the mapping between the abstract content
      of a document and the physical form in which it is displayed,
      spoken, performed or in general presented, to its recipient.
    </p>
    <p>
      For graphic style, Cascading Style Sheets (<a href=
      "/Style/CSS/">CSS</a>) provide a way of declaring the form in
      which elements of a document should be presented. It has the
      advantage of being declarative and so reversible: one can
      make an editor which edits a document with the style sheet
      applied to it. <a href="/Style/XSL/">XSL</a>T, by contrast,
      is a transformation language which can make an arbitrarily
      complex mapping from input to output structure. This allows
      more powerful processing, but is not in general reversible.
      For graphic presentation, XSLT can be used to map to a set of
      Formating Objects (XSL-FO) whose formatting properties are to
      be a superset of those of CSS.
    </p>
    <p>
      The fact that CSS is not an XML language is largely
      historical, as it preceeded XML: A namespace of CSS
      formatting properties to allow CSS to be added intuitively to
      any XML document would be a natural development, but may be
      make unnecessary by XSL-FO.
    </p>
    <h3>
      <a name="Collaboration" id="Collaboration">Collaboration</a>
    </h3>
    <p>
      The original idea of the Web being a creative space for
      people to work together in ("intercreative") seems to be
      making very slow progress
    </p>
    <p>
      <i><a href="../Collaboration/Workshop/Overview.html">See W3C
      Collaboration Workshop</a></i>
    </p>
    <p>
      This field is very broad and can be divided into areas:
    </p>
    <ol>
      <li>Asynchronous collaboration tools
        <ul>
          <li>Discussion forums
          </li>
          <li>Workflow automata
          </li>
          <li>Annotation systems (see Annotea)
          </li>
          <li>Endorsement (see PICS)
          </li>
          <li>Collaborative filtering
          </li>
        </ul>
      </li>
      <li>Integration of real-time audio video collaboration and
      the Web (, integration of video in HTML, co-presence)
        <ul>
          <li>addressing for video - callto: etc
          </li>
          <li>integration of video in HTML (SMIL etc)
          </li>
          <li>Co-presence systems
          </li>
        </ul>
      </li>
      <li>Group editors (synchronous hypertext editors, whiteboards
      etc)
      </li>
      <li>Asynchronous distributed editing. (Amaya, Jigsaw,
      Jigedit, WebDAV)
      </li>
    </ol>
    <p>
      A precursor to much collaborative work is the establishment
      of an environment with sufficient confidentiality to allow
      trust among its members. Therefore the Consortium's work on a
      semantic web of trust addressed below may be a gating factor
      for much of the above.
    </p>
    <p>
      Many of the above areas are research areas, and some are
      areas in which products exist. It is not clear that there is
      a demand among w3C members to address common specifications
      in this area right now but suggestions are welcome.. The
      Consortium tries to use whatever web-based collaborative
      techniques are available, including distributed editing of
      documents in the web, and automatic change tracking. The Live
      early Adoption and Demonstration (LEAD) philosophy of W3C was
      introduced specifically for areas like this where many small
      pieces need to be put together to make it happen, but one
      will never know how large any remaining problems are until
      one tries. Still, largely, this section in the architecture
      is left as a place-holder for later expansion. It may not be
      the time yet, but collaborative tools are a requirement for
      the Web and the work is not done until a framework for them
      exists.
    </p>
    <h2>
      <a name="SemanticWeb" id="SemanticWeb">Machine-Understandable
      information: Semantic Web</a>
    </h2>
    <p>
      The Semantic Web is a web of data, in some ways like a global
      database. The rationale for creating an infrastructure is
      given elsewhere [Web future talks etc] here I only outline
      the architecture as I see it.
    </p>
    <p>
      See:
    </p>
    <ul>
      <li>
        <a href="Semantic.html">The Semantic Web Roadmap</a> in
        Design Issues
      </li>
      <li>
        <a href="../RDF/Overview.html">The RDF home page</a>
      </li>
      <li>
        <a href="../TR/WD-rdf-syntax/">RDF Model and Syntax
        Specification</a>
      </li>
    </ul>
    <p>
      When looking at a possible formulation of a universal Web of
      semantic assertions, the principle of minimalist design
      requires that it be based on a common model of great
      generality. Only when the common model is general can any
      prospective application be mapped onto the model. The general
      model is the <a href="../RDF/Overview.html">Resource
      Description Framework</a>.
    </p>
    <h3>
      <a name="Semantic" id="Semantic">Semantic Web: the
      pieces.</a>
    </h3>
    <p>
      The architecture of RDF and the semantic web build on it is a
      plan but not yet all a reality. There are various pieces of
      the puzzle which seem to fall into a chronological order,
      although the turn of events may change that. (Links below are
      into the <a href="Semantic.html#Signature">Semantic Web
      roadmap</a>)
    </p>
    <ol>
      <li>XML provides a basic format for structured documents,
      with no particular semantics.
      </li>
      <li>The <a href="Semantic.html#Assertion">basic assertion
      model</a> provides the concepts of assertion (property) and
      quotation. (This is provided by the <a href=
      "../TR/WD-rdf-syntax/">RDF Model and Syntax
      Specification</a>). This allows an entity-relationship-like
      model to be made for the data, giving it the semantics of
      assertions propositional logic. See the <a href=
      "/TR/1999/NOTE-schema-arch-19991007">Cambridge
      Communiqu&eacute;</a> about the XML-RDF relationship) The RDF
      syntax was considered in need of a change.
      </li>
      <li>The <a href="Semantic.html#Schema">schema language</a>
      provides data typing and allows document structure to be
      constrained to allow predictable computable processing. XML
      schema's datatypes are used.
      </li>
      <li>The Ontology layer (WebOnt working group) provides more
      powerful schema concepts, such as inverse, transitivity, and
      so on. Uniqueness and/or unambiguousness of properties, when
      know, allow a system to spot different identifiers which in
      fact are talking about the same thing.
      </li>
      <li>A <a href="Semantic.html#Conversion">conversion
      language</a> allows the expression of inference rules
      allowing information in one schema to be inferred from a
      document in another. This is part of rules layer.
      </li>
      <li>An <a href="Semantic.html#Inference">evolution rules
      language</a> allows inference rules to be given which allow a
      machine with a certain algorithm to do convert documents from
      one RDF schema into another. This is a fundamental key to
      <a href="Evolution.html">evolution</a> of the technology.
      There may be more than one rules standard, as different class
      of rule-based system have different capabilities.
        <p>
          <a href="Semantic.html#Query">Query languages</a> assume
          different forms of query engine, but are basically the
          same problem space as rule systems. (The antecedent of a
          rule is a query).. One can imagine standardizing both
          certain query engines and a language for defining query
          engines. See the RDF Interest Group for discussion of
          querying logically.
        </p>
      </li>
      <li>The <a href="Semantic.html#Logical">logical layer</a>
      turns a limited declarative language into a Turing-complete
      logical language, with inference and functions. This is
      powerful enough to be able to define all the rest, and allow
      any two RDF applications to be connected together. However,
      without being profiled for use, it does not address specific
      applications. One can see this language as being a universal
      language to unify all data systems just as HTML was a
      language to unify all human documentation systems.
      </li>
      <li>A proof language is a form of RDF which allows one agent
      to send to another an assertion, together with the inference
      path to that assertion from assumptions acceptable to the
      receiver. This allows applications such as access control to
      use a generic validation engine as the kernel, with very
      case-specific tools for producing proofs of access according
      to whatever social rules have been devised for the case. A
      W3C Recommendation for the language and capabilities of a
      standard proof engine would be very appropriate. Onc could
      see this engibe as being based on the logic layer, or being
      based on a less experssive rules layer - esepcially if the
      logic layer remains a research issue when proofs in terms of
      rules are practical need for interchange.
      </li>
    </ol>
    <p>
      Once one has a proof language, then the introduction of
      <a href="Semantic.html#Signature">digital signature</a> turns
      what was a web of reason into a web of trust. The development
      of digital signature functionality in the RDF world can in
      principle happen in parallel with the stages above. As more
      expressive logical languages become available, then but it
      requires that the logical layer be defined as a basis for
      defining the new primitives which describe signature and
      inference in a world which includes digital signature.
    </p>
    <p>
      A single digital signature format for XML documents is
      important. The power of the RDF logical layers will allow
      existing certificate schemes to be converted into RDF, and a
      trust path to be verified by a generic RDF engine.
    </p>
    <h2>
      <a name="Metadata" id="Metadata">Metadata applications</a>
    </h2>
    <p>
      The driver for the semantic web at level 1 above is
      information about information, normally known as metadata.
      The following areas are examples of technologies which should
      use RDF, and which are or we expect to be developed within
      the W3C.
    </p>
    <ul>
      <li>Information practice labels (<a href=
      "../P3P/Overview.html">P3 Project</a>)
      </li>
      <li>
        <a href="../AudioVideo/Overview.html">Synchronized
        MultiMedia</a> (SMIL)
      </li>
      <li>Intellectual Property Rights - Distribution Rights
      languages
      </li>
      <li>
        <a href=
        "../ECommerce/Micropayments/Overview.html">Micropayment</a>s
        (link labeled as "must pay to follow")
      </li>
      <li>Digital Libraries: Catalog: (e.g. <a href=
      "http://purl.oclc.org/metadata/dublin_core/">Dublin Core</a>)
      </li>
    </ul>
    <p>
      This is by no means an exclusive list. Any technology which
      involves information about web resources should express it
      according to the RDF model The plan is that HTML LINK
      relationships be transitioned into RDF properties. We can
      continue the examples for which RDF is clearly appropriate.
    </p>
    <ul>
      <li>Version control information
      </li>
      <li>Relationships between <a href="Generic.html">generic</a>
      and specific URIs
      </li>
      <li>Access control information
      </li>
      <li>Structural information in complex works of many component
      resources
      </li>
      <li>Relationships between a document and its style sheet
      </li>
    </ul>
    <h3>
      <a name="Indexes" id="Indexes">Indexes of terms</a>
    </h3>
    <p>
      Given a worldwide semantic web of assertions, the search
      engine technology currently (1998) applied to HTML pages will
      presumably translate directly into indexes not of words, but
      of RDF objects. This itself will allow much more efficient
      searching of the Web as though it were one giant database,
      rather than one giant book.
    </p>
    <p>
      The Version A to Version B translation requirement has now
      been met, and so when two databases exist as for example
      large arrays of (probably virtual) RDF files, then even
      though the initial schemas may not have been the same, a
      retrospective documentation of their equivalence would allow
      a search engine to satisfy queries by searching across both
      databases.
    </p>
    <h3>
      <a name="Engines" id="Engines">Engines of the Future</a>
    </h3>
    <p>
      While search engines which index HTML pages find many answers
      to searches and cover a huge part of the Web, then return
      many inappropriate answers. There is no notion of
      "correctness" to such searches. By contrast, logical engines
      have typically been able to restrict their output to that
      which is provably correct answer, but have suffered from the
      inability to rummage through the mass of intertwined data to
      construct valid answers. The combinatorial explosion of
      possibilities to be traced has been quite intractable.
      However, the scale upon which search engines have been
      successful may force us to reexamine our assumptions here. If
      an engine of the future combines a reasoning engine with a
      search engine, it may be able to get the best of both worlds,
      and actually be able to construct proofs in a certain number
      of cases of very real impact. It will be able to reach out to
      indexes which contain very complete lists of all occurrences
      of a given term, and then use logic to weed out all but those
      which can be of use in solving the given problem. So while
      nothing will make the combinatorial explosion go away, many
      real life problems can be solved using just a few (say two)
      steps of inference out on the wild web, the rest of the
      reasoning being in a realm in which proofs are give, or there
      are constrains and well understood computable algorithms. I
      also expect a string commercial incentive to develop engines
      and algorithms which will efficiently tackle specific types
      of problem. This may involve making caches of intermediate
      results much analogous to the search engines' indexes of
      today.
    </p>
    <p>
      Though there will still not be a machine which can guarantee
      to answer arbitrary questions, the power to answer real
      questions which are the stuff of our daily lives and
      especially of commerce may be quite remarkable.
    </p>
    <hr />
    <p>
      <a href="Overview.html">Up to Design Issues</a>;
    </p>
    <h4 id="Footnote:">
      Footnote: Universal or Uniform?
    </h4>
    <p>
      Historically, the original term the author used was
      <em>Universal Document Identifier</em> in the WWW
      documentation. In discussions in the IETF, there was a view
      expressed by several people that <em>Universal</em> was too
      strong, in that it could or should not be a goal to make an
      identifier which could be applied to all things. The author
      disagreed and disagrees with this poisition. However, in the
      interest of expediency at the time he bowed to peer pressure
      and allowed <em>Uniform</em> to be substituted for
      <em>Universal</em> in <a href=
      "http://www.ietf.org/rfc/rfc2396.txt">RFC2306</a>, he has
      since decided that that did more harm than good, and he now
      uses <em>Universal</em> to indicate the importance to the Web
      architecture of the single universal information space.
    </p>
    <hr />
    <p>
      Tim Berners-Lee<br />
      Created: September 1998.
    </p>
    <p>
      <br />
      $Id: Architecture.html,v 1.66 2009/08/27 21:38:06 timbl Exp $
    </p>
  </body>
</html>