spec/architecture-respec.html
author rbachman2
Mon, 07 Mar 2011 15:18:18 +0100
changeset 137 eea7b8afca21
permissions -rw-r--r--
ACTION-15: a raw scheletto for an architecture document
     1 <?xml version='1.0' encoding='UTF-8'?>
     2 <!DOCTYPE html>
     3 <html>
     4   <head>
     5     <title>WebID Architecture 1.0</title>
     6     <meta http-equiv='Content-Type' content='text/html;charset=utf-8'/>
     7     <!--
     8       === NOTA BENE ===
     9       For the three scripts below, if your spec resides on dev.w3 you can check them
    10       out in the same tree and use relative links so that they'll work offline,
    11      -->
    12 <style type='text/css'>
    13 code           { font-family: monospace; }
    14 
    15 span.hilite { color: red; /* font-weight: bold */ }
    16 
    17 li p           { margin-top: 0.3em;
    18                  margin-bottom: 0.3em; }
    19 
    20 div.explanation { background-color: #ADD8E6;
    21                    width: 80%;
    22                    margin: 12px; padding: 8px; }
    23 div.explanation li { margin-top: 8px; }
    24 div.explanation dd { margin: 4px; }
    25 
    26 .adef {
    27 	font-family: monospace;
    28 	font-weight: bold;
    29     color: #ff4500 !important;
    30 }
    31 
    32 .aref {
    33 	font-family: monospace;
    34 	font-weight: bold;
    35     color: #ff4500 !important;
    36 }
    37 
    38 span.entity { color: red; }
    39 
    40 span.element { color: green; }
    41 </style>
    42 
    43     <script src='http://dev.w3.org/2009/dap/ReSpec.js/js/respec.js' class='remove'></script>
    44 <!--    <script src='/ReSpec.js/js/respec.js' class='remove'></script> -->
    45     <script class='remove'>
    46       var preProc = {
    47           apply:  function(c) {
    48                     // process the document before anything else is done
    49                     var refs = document.querySelectorAll('adef') ;
    50                     for (var i = 0; i < refs.length; i++) {
    51                         var item = refs[i];
    52                         var p = item.parentNode ;
    53                         var con = item.innerHTML ;
    54                         var sp = document.createElement( 'dfn' ) ;
    55                         var tit = item.getAttribute('title') ;
    56                         if (!tit) {
    57                             tit = con;
    58                         }
    59                         sp.className = 'adef' ;
    60                         sp.title=tit ;
    61                         sp.innerHTML = con ;
    62                         p.replaceChild(sp, item) ;
    63                     }
    64                     refs = document.querySelectorAll('aref') ;
    65                     for (var i = 0; i < refs.length; i++) {
    66                         var item = refs[i];
    67                         var p = item.parentNode ;
    68                         var con = item.innerHTML ;
    69                         var sp = document.createElement( 'a' ) ;
    70                         sp.className = 'aref' ;
    71                         sp.setAttribute('title', con);
    72                         sp.innerHTML = '@'+con ;
    73                         p.replaceChild(sp, item) ;
    74                     }
    75                     // local datatype references
    76                     refs = document.querySelectorAll('ldtref') ;
    77                     for (var i = 0; i < refs.length; i++) {
    78                         var item = refs[i];
    79                         if (!item) continue ;
    80                         var p = item.parentNode ;
    81                         var con = item.innerHTML ;
    82                         var ref = item.getAttribute('title') ;
    83                         if (!ref) {
    84                             ref = item.textContent ;
    85                         }
    86                         if (ref) {
    87                             ref = ref.replace(/\n/g, '_') ;
    88                             ref = ref.replace(/\s+/g, '_') ;
    89                         }
    90                         var sp = document.createElement( 'a' ) ;
    91                         sp.className = 'datatype';
    92                         sp.title = ref ;
    93                         sp.innerHTML = con ;
    94                         p.replaceChild(sp, item) ;
    95                     }
    96                     // external datatype references
    97                     refs = document.querySelectorAll('dtref') ;
    98                     for (var i = 0; i < refs.length; i++) {
    99                         var item = refs[i];
   100                         if (!item) continue ;
   101                         var p = item.parentNode ;
   102                         var con = item.innerHTML ;
   103                         var ref = item.getAttribute('title') ;
   104                         if (!ref) {
   105                             ref = item.textContent ;
   106                         }
   107                         if (ref) {
   108                             ref = ref.replace(/\n/g, '_') ;
   109                             ref = ref.replace(/\s+/g, '_') ;
   110                         }
   111                         var sp = document.createElement( 'a' ) ;
   112                         sp.className = 'externalDFN';
   113                         sp.title = ref ;
   114                         sp.innerHTML = con ;
   115                         p.replaceChild(sp, item) ;
   116                     }
   117                     // now do terms
   118                     refs = document.querySelectorAll('tdef') ;
   119                     for (var i = 0; i < refs.length; i++) {
   120                         var item = refs[i];
   121                         if (!item) continue ;
   122                         var p = item.parentNode ;
   123                         var con = item.innerHTML ;
   124                         var ref = item.getAttribute('title') ;
   125                         if (!ref) {
   126                             ref = item.textContent ;
   127                         }
   128                         if (ref) {
   129                             ref = ref.replace(/\n/g, '_') ;
   130                             ref = ref.replace(/\s+/g, '_') ;
   131                         }
   132                         var sp = document.createElement( 'dfn' ) ;
   133                         sp.title = ref ;
   134                         sp.innerHTML = con ;
   135                         p.replaceChild(sp, item) ;
   136                     }
   137                     // now term references
   138                     refs = document.querySelectorAll('tref') ;
   139                     for (var i = 0; i < refs.length; i++) {
   140                         var item = refs[i];
   141                         if (!item) continue ;
   142                         var p = item.parentNode ;
   143                         var con = item.innerHTML ;
   144                         var ref = item.getAttribute('title') ;
   145                         if (!ref) {
   146                             ref = item.textContent ;
   147                         }
   148                         if (ref) {
   149                             ref = ref.replace(/\n/g, '_') ;
   150                             ref = ref.replace(/\s+/g, '_') ;
   151                         }
   152 
   153                         var sp = document.createElement( 'a' ) ;
   154                         var id = item.textContent ;
   155                         sp.className = 'tref' ;
   156                         sp.title = ref ;
   157                         sp.innerHTML = con ;
   158                         p.replaceChild(sp, item) ;
   159                     }
   160                 }
   161         } ;
   162 
   163 
   164       var respecConfig = {
   165           // specification status (e.g. WD, LCWD, NOTE, etc.). If in doubt use ED.
   166           // embed RDFa data in the output
   167           doRDFa: true,
   168           specStatus:           "ED",
   169           diffTool:             "http://www3.aptest.com/standards/htmldiff/htmldiff.pl",
   170 
   171           // the specifications short name, as in http://www.w3.org/TR/short-name/
   172           shortName:            "webid",
   173           subtitle: "Web Identification and Discovery",
   174 
   175           // if you wish the publication date to be other than today, set this
   176           // publishDate:  "2009-08-06",
   177           copyrightStart:  "2010",
   178 
   179           // if there is a previously published draft, uncomment this and set its YYYY-MM-DD date
   180           // and its maturity status
   181           previousPublishDate:  "2010-08-09",
   182           previousMaturity:  "unofficial",
   183           previousURI:       "http://www.w3.org/2005/Incubator/webid/spec/drafts/ED-webid-20100809",
   184 
   185 
   186           // if there a publicly available Editors Draft, this is the link
   187           edDraftURI:           "http://www.w3.org/2005/Incubator/webid/spec/drafts/ED-webid-20110210",
   188 
   189           // if this is a LCWD, uncomment and set the end of its review period
   190           // lcEnd: "2009-08-05",
   191 
   192           // if you want to have extra CSS, append them to this list
   193           // it is recommended that the respec.css stylesheet be kept
   194           extraCSS:             ['http://dev.w3.org/2009/dap/ReSpec.js/css/respec.css'],
   195 
   196           // editors, add as many as you like
   197           // only "name" is required
   198           editors:  [
   199                    { name: "Manu Sporny", mailto:"msporny@digitalbazaar.com",
   200                   company: "Digital Bazaar, Inc.", companyURL: "http://blog.digitalbazaar.com/" },
   201               { name: "Toby Inkster", url: "http://tobyinkster.co.uk/" },
   202               { name: "Henry Story", url: "http://bblfish.net/" },
   203               { name: "Bruno Harbulot", url: "http://blog.distributedmatter.net/" },
   204               { name: "Reto Bachmann-Gmür", url: "http://trialox.org/" }
   205               ],
   206 
   207           // authors, add as many as you like.
   208           // This is optional, uncomment if you have authors as well as editors.
   209           // only "name" is required. Same format as editors.
   210 
   211           authors:  [
   212               { name: "Manu Sporny", mailto:"msporny@digitalbazaar.com",
   213                   company: "Digital Bazaar, Inc.", companyURL: "http://blog.digitalbazaar.com/" },
   214               { name: "Toby Inkster", url: "http://tobyinkster.co.uk/" },
   215               { name: "Henry Story", url: "http://bblfish.net/" },
   216               { name: "Bruno Harbulot", url: "http://blog.distributedmatter.net/" },
   217               { name: "Reto Bachmann-Gmür", url: "http://trialox.org/" }
   218           ],
   219 
   220 //          errata: 'http://www.w3.org/MarkUp/2008/REC-rdfa-syntax-20081014-errata',
   221 
   222           // name of the WG
   223           wg:           "WebID XG",
   224 
   225           // URI of the public WG page
   226           wgURI:        "http://www.w3.org/2005/Incubator/webid/",
   227 
   228           // name (with the @w3c.org) of the public mailing to which comments are due
   229           wgPublicList: "public-xg-webid",
   230 
   231           // alternate formats for this document
   232           alternateFormats: [
   233               { uri: 'http://www.w3.org/2005/Incubator/webid/spec/drafts/ED-webid-20110210/diff-20100809.html',
   234                   label: "Diff from previous Editors Draft" }],
   235 
   236           // URI of the patent status for this WG, for Rec-track documents
   237           // !!!! IMPORTANT !!!!
   238           // This is important for Rec-track documents, do not copy a patent URI from a random
   239           // document unless you know what you're doing. If in doubt ask your friendly neighbourhood
   240           // Team Contact.
   241           wgPatentURI:  "http://www.w3.org/2004/01/pp-impl/44350/status",
   242           maxTocLevel: 4,
   243           preProcess: [ preProc ]
   244       };
   245 
   246 
   247       function updateExample(doc, content) {
   248         // perform transformations to make it render and prettier
   249         content = content.replace(/<!--/, '');
   250         content = content.replace(/-->/, '');
   251         content = doc._esc(content);
   252         content = content.replace(/\*\*\*\*([^*]*)\*\*\*\*/g, '<span class="hilite">$1</span>') ;
   253         return content ;
   254       }
   255 
   256       function updateDTD(doc, content) {
   257         // perform transformations to
   258         // make it render and prettier
   259         content = '<pre class="dtd">' + doc._esc(content) + '</pre>';
   260         content = content.replace(/!ENTITY % ([^ \t\r\n]*)/g, '!ENTITY <span class="entity">% $1</span>');
   261         content = content.replace(/!ELEMENT ([^ \t$]*)/mg, '!ELEMENT <span class="element">$1</span>');
   262         return content;
   263       }
   264 
   265       function updateSchema(doc, content) {
   266         // perform transformations to
   267         // make it render and prettier
   268         content = '<pre class="dtd">' + doc._esc(content) + '</pre>';
   269         content = content.replace(/&lt;xs:element\s+name=&quot;([^&]*)&quot;/g, '&lt;xs:element name="<span class="element" id="schema_element_$1">$1</span>"') ;
   270         return content;
   271       }
   272 
   273       function updateTTL(doc, content) {
   274         // perform transformations to
   275         // make it render and prettier
   276         content = '<pre class="sh_sourceCode">' + doc._esc(content) + '</pre>';
   277         content = content.replace(/@prefix/g, '<span class="sh_keyword">@prefix</span>');
   278         return content;
   279       }
   280     </script>
   281   </head>
   282   <body>
   283     <section id='abstract'>
   284 
   285 <p>Webid gives you reasons to believe that your communication partner is the subject in your universe 
   286 of discourse they claim to be.
   287 </p>
   288 </section>
   289 
   290 
   291 <section id="identity">
   292 <h2>Identity</h2>
   293 
   294 <p>....</p>
   295 
   296 </section>
   297 
   298 <section id="end2end">
   299 <h2>End to end security</h2>
   300 
   301 <p>The "layer cake" of the web models security as something transcending all layers from the serialzed data to trust, unlike IPSec WebId isn't a security infrastructure at the lower levels of the stack, it doesn't hide away security from the user and even the application. This means that it allows the user to make informed decisions on whom to trust and whom to share secrets with.</p>
   302 
   303 <p>....</p>
   304 
   305 </section>
   306 
   307 
   308 <section id="linkeddata">
   309 <h2>Sharing believes with RDF and linked data</h2>
   310 
   311 <p>....</p>
   312 
   313 </section>
   314 
   315 <section>
   316 <h1>Preconditions</h1>
   317 
   318 <section>
   319 <h1>Terminology</h1>
   320 
   321 <dl>
   322 
   323 
   324 <dt><tdef>WebID URI</tdef></dt>
   325 <dd>A URI identifying a participant in a universe of discourse.</dd>
   326 
   327 <dt><tdef>WebID Profile</tdef></dt>
   328 <dd>A document associating a <tref>WebId URI</tref> to a <tref>public key</tref>.</dd>
   329 
   330 <dt><tdef>public key</tdef></dt>
   331 <dd>A widely distributed cryptographic key that can be used to verify
   332 digital signatures and encrypt data between a sender and a receiver. A public
   333 key is always included in an <tref>Identification Certificate</tref>.</dd>
   334 </dl>
   335 
   336 
   337 </section>
   338 
   339 <section class='informative' id="acknowledgements">
   340 <h1>Acknowledgments</h1>
   341 
   342 <p>The following people have been instrumental in providing thoughts, feedback,
   343 reviews, criticism and input in the creation of the WebId architecture:</p>
   344 
   345 <ul>
   346 <li>Tim Berners-Lee</li>
   347 <li>Sarven Capadisli</li>
   348 <li>Melvin Carvalho</li>
   349 <li>Michael Hausenblas</li>
   350 <li>Kingsley Idehen</li>
   351 <li>Ian Jacobi</li>
   352 <li>Nathan Rixham</li>
   353 <li>Seth Russell</li>
   354 <li>Jeff Sayre</li>
   355 <li>Peter Williams</li>
   356 </ul>
   357 
   358 </section>
   359   </body>
   360 </html>
   361