W3C W3C Technology Review

This document describes the W3C technology suite and describes their application to an example use case of a standardized test service submitting aggregate test statistics to the Department of Education. Following is a discussion of the architectural principles applied by the W3C institutional knowldge, culture and team.

Web of Data and Services

Rich Web Applications

XML

(home page) ⁃ (XML 1.0 spec)

XML is a representation of information as a hierarchy of <tags/> and content.
XHTML can be used for documents:

<h2>XML</h2>
<p>XML is a representation … of <code>&lt;tags/&gt;</code> and content. …</p>

or more structured data e.g. standardized test score statistics. (ex: aggRes-2009-03-MA-norfolk.xml)

<ed:report>
  <ed:county-monthly-avg about="http://ed.gov.example/monthlies/aggRes-2009-03-MA-norfolk">
    <ed:sat-math>518</ed:sat-math>
    <time:ending>2009-03-01</time:ending>
    <ed:testing-site xlink:href="http://gov.example/counties/MA-norfolk-county"/>
  </ed:county-monthly-avg>

  <geo:location about="http://gov.example/counties/MA-norfolk-county">
    <geo:state>Massachusetts</geo:state>
    <geo:county>Norfolk</geo:county>
  </geo:location>
</ed:report>

XML Namespaces (spec) associate a short name ("geo:" in the above example) with a URL uniquely identifying a family of terms.

<ed:report xmlns:ed="http://ed.gov.example/termsets#">
  <ed:county-monthly-avg xlink:href="http://ed.gov.example/monthlies/aggRes-2009-03-MA-norfolk">
    …
  </ed:county-monthly-avg>
</ed:report>

XML Schema (primer) expresses the syntactic constraints for languages expressed in XML (e.g. XHTML or the example standardized test report language). (ex: ed.xs geo.xs time.xs)

<xs:schema …>
  …
  <xs:element name="report">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="county-monthly-avg" />
        <xs:element ref="geo:location" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

XInclude (spec) defines how to include one document in another.

<ed:county-monthly-avg xlink:href="http://ed.gov.example/monthlies/aggRes-2009-03-MA-norfolk">
  …
</ed:county-monthly-avg>
<xi:include href="county-names.xml"/>

Associating Style Sheets with XML documents (spec) allows browsers to display XML documents.

<?xml-stylesheet href="renderScores.css" type="text/css"?>
<ed:county-monthly-avg xlink:href="http://ed.gov.example/monthlies/aggRes-2009-03-MA-norfolk">
  …
</ed:county-monthly-avg>

XSLT (spec) queries RDF data

<ed:currentWatchList>
  <xsl:applyTemplates/>
</ed:currentWatchList>

<xsl:template match="ed:report/ed:county-monthly-avg[ed:sat-math/content() < 520]">
  <xsl:call-template name="watch">
    <xsl:with-param name="state" select="ed:testing-site/xlink@href"/></>
  </xsl:call-template>
</xsl:template>
<xsl:template name="watch" match="ed:report/geo:location[@id=$loc]">
  <ed:lowMath><xsl:value-of select="geo:state/content()"/></ed:lowMath>
</xsl:template>

XQuery (home page) (spec) also constructs new (XML) documents.

<ed:currentWatchList>{
  for $location in ed:report/ed:county-monthly-avg[ed:sat-math/content() < 520]
    let $state = ed:report/geo:location[@id=$loc]
    return <ed:lowMath>{data($state)}</ed:lowMath>
}<ed:currentWatchList>

Semantic Web

(home page)

Semantic Web technologies integrate web data into a web-wide database.

RDF (home page) (spec) is a data expression language analogous to XML or relational data.

ed:aggRes-2009-03-MA-norfolk  a            ed:county-monthly-avg .
ed:aggRes-2009-03-MA-norfolk  ed:sat-math  "518" .
ed:aggRes-2009-03-MA-norfolk  time:ending  "2009-03-01" .
ed:aggRes-2009-03-MA-norfolk  ed:testing-site gov:MA-norfolk-county .
gov:MA-norfolk-county         geo:state    "MA" .
gov:MA-norfolk-county         geo:county   "Norfolk" .

RDF Schema (spec) and OWL (spec) describe relationships (e.g. hierarchical) between set of the things RDF talks about.

ed:county-monthly-avg rdfs:subClassOf ed:county-avg .
ed:county-avg rdfs:subClassOf ed:aggregate-test-score .

SPARQL (home page) (spec) queries RDF data.

SELECT ?state WHERE {
  ?report    ed:sat-math  ?math .
  ?report    time:ending  "2009-03-01" .
  ?report    ed:testing-site ?location .
  ?location  geo:state    ?state .
  FILTER (?math < 520) }

SPARQL can also construct new data.

CONSTRUCT {
  ed:currentWatchList ed:low-math ?state .
} WHERE {
  ?report    ed:sat-math  ?math .
  ?report    time:ending  "2009-03-01" .
  ?report    ed:testing-site ?location .
  ?location  geo:state    ?state .
  FILTER (?math < 520) }

RDFa (spec) embeds Semantic Web data in HTML documents.

<p about="ed:aggRes-2009-03-MA-norfolk">The average test score for 
    <span propery="ed:testing-site" about="gov:MA-norfolk-county">Norfolk County</span>
    rose to <span property="ed:sat-math">518</span>
    in <span property="time:ending">2009-03-01</span>.</p>

GRDDL (primer) extracts RDF from XML documents.

<ed:report
  xmlns:grddl="http://www.w3.org/2003/g/data-view#"
  grddl:transformation="xcel-mf2rdf.xsl">
…</ed:report>
+
<xsl:template match="ed:report/ed:county-monthly-avg>
  <xsl:text><xsl:value-of select="xlink:href"> a ed:county-monthly-avg .…
  </xsl:text>…
</xsl:template>

Web Services

(home page)

Web Services extend tradional web protocols to enable programs rather than people to interact with remote services.

SOAP (primer) defines interfaces between web services:

<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"> 
  <env:Header>
    <n:submittername>Åke Jógvan Øyvind</n:submittername>
  </env:Header>
  <env:Body>
  <ed:submission>
    <ed:county-monthly-avg xlink:href="http://ed.gov.example/monthlies/aggRes-2009-03-MA-norfolk">
      <ed:sat-math>518</ed:sat-math>
      <time:ending>2009-03-01</time:ending>
      <ed:testing-site xlink:href="http://gov.example/counties/MA-norfolk-county"/>
    </ed:county-monthly-avg>
  </ed:submission>
 </env:Body>
</env:Envelope>

WSDL (WSDL 2.0 spec) defines interfaces between web services:

<wsdl:portType name="TestReportInterface">
  <wsdl:operation name="monthlyReport">
    <wsdl:input  message="tns:submission"/>
…
<xs:element name="submission"><xs:complexType><xs:sequence>
      <xs:element minOccurs="1" maxOccurs="1" name="sat-math" type="xs:string"/>
      <xs:element minOccurs="1" maxOccurs="1" name="ending" type="xs:date"/>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="testing-site" type="xs:anyURI"/>
…

POWDER

(home page) ⁃ (primer)

POWDER describes the content of classes of resources. making assertions that they are, e.g. accessible to handheld devices.

<powder>
  <dr>
    <iriset><includehosts>http://gov.example/counties/</includehosts></iriset>

    <descriptorset>
      <typeof src="http://www.w3.org/2008/06/mobileOK#conformant" />
      <displaytext>The gov.example counties listing is viewable from mobile devices</displaytext>
    </descriptorset>
  </dr>
</powder>

DSIG

(home page) ⁃ (spec)

Digital Signatures provide document integrity and authentication over XML documents.

<ed:report>
  <ed:county-monthly-avg id="submissionA3" xlink:href="http://ed.gov.example/monthlies/aggRes-2009-03-MA-norfolk">
    …
  </ed:county-monthly-avg>
  <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> 
    <SignedInfo> 
      <CanonicalizationMethod Algorithm="http://www.w3.org/2006/12/xml-c14n11"/> 
      <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"/> 
      <Reference  URI="#submissionA3"> 
        <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> 
        <DigestValue>dGhpcyBpcyBub3QgYSBzaWduYXR1cmUK.../DigestValue> 
      </Reference> 
    </SignedInfo> 
    <SignatureValue>...</SignatureValue> 
  </Signature>
</ed:report>

Web Security Context

(home page) ⁃ (User Interface Guidelines)

This Working Group is establishing a common security framework for browsers so that web users can know, e.g. what authority endorses an HTTPS server.

P3P

(spec)

Web services which collect user information, for instance, a job training registration page which collects name, address and education level, can use P3P to inform the user agent what visibility the user's information will have.

HTML

(home page) ⁃ (HTML 4.01 spec)

HTML is a markup language understood by "web browsers". There are two forms of HTML; traditional HTML, expressed in SGML, and XHTML, expressed in XML.

CSS

(home page) ⁃ (CSS 2.1 spec)

CSS associates groups of elements in XML or HTML markup with rendering attributes. This example controls the rendering of the navigation list at the left of this page.

.leftColumn {
      font-size:80%;
      display:block;
      float:left;
      width: 270px;
      padding: 20px;
      background-color: #f4f4f4;
}

SVG

(home page) ⁃ (SVG 1.1 spec)

SVG is a declarative language for rendering e.g. lines, text, geometric shapes as vectors.

<svg width="12cm" height="4cm" viewBox="0 0 1200 400"
     xmlns="http://www.w3.org/2000/svg" version="1.1">
  <circle cx="600" cy="200" r="100"
        fill="red" stroke="blue" stroke-width="10"  />
</svg>

SMIL

(home page) ⁃ (SMIL 3.0 spec)

SMIL expresses timing control for adding animation to e.g. HTML or SVG.

<svg width="12cm" height="4cm" viewBox="0 0 1200 400"
     xmlns="http://www.w3.org/2000/svg" version="1.1">
  <circle cx="600" cy="200" r="100"
        fill="red" stroke="blue" stroke-width="10">
    <animate attributeName="r" from="10"  to="100" 
             begin="0s" dur="10s" />
  </circle>
</svg>

XForms

(home page) ⁃ (XForms 1.1 spec) ⁃ (XForms in XHTML spec)

XForms is a more declarative alternative to HTML forms, allowing for more explicit layout and validation.

<xforms:model>
  …
  <xforms:bind nodeset="/ed:report/ed:sat-math" required="true()" type="ed:sat-score"/>
  <xforms:bind nodeset="/ed:report/time:ending" required="true()" type="xsd:dateTime"/>
  <xforms:bind nodeset="/ed:report/ed:testing-site" required="true()" type="xsd:anyURI"/>
  <xs:schema …>
    …
    <xs:simpleType name="sat-score">
	<xs:restriction base="xsd:string">
	  <xs:pattern value="\d{1,3}"/>
	</xs:restriction>
    </xs:simpleType>
    …
  </xs:schema>
</xforms:model>

WCAG

(spec) ⁃ (summary)

WCAG describes techniques for makeing web content more accessible to someone using e.g. an audible screen reader. This HTML summary report of average test scores by county and month has embedded context hints to allow screen reader to read "March, Norfolk, math, 518"

<table summary="County test score averages by month are followed by rows for the math and verbal scores.">
  <caption>test score averages by month (columns) and county (rows)</caption>
  <tr><th id="county">   County </th> … <th id="mar">                March</th> …</tr>
…
  <tr><td id="norf">     Norfolk</td> … <td headers="mar norf">      520  </td> …</tr>
  <tr><td id="norfm"
          headers="norf">math   </td> … <td headers="mar norfm norf">518  </td> …</tr>
  <tr><td id="norfv"
          headers="norf">verbal </td> … <td headers="mar norfv norf">522  </td> …</tr>
…

UAAG

(working draft)

UAAG helps user agent (e.g. web browser, plugin) developers to produce systems which are accessible to people with with a range of disabilities. This would guide, for example, a developer creating a browser plugin to visualize correlations between schoolastic test scores and incarceration rates in creating keyboard shortcuts and speach synthesizer access.

ATAG

(1.0 spec) ⁃ (2.0 working draft)

ATAG guides developers of authoring tools (e.g. content management systems) in producing documents which conform to Web Content Accessibility Guidelines by e.g. producing parsable markup, prompting for image descriptions.

Architectural Guidelines

Uniform addressing through URLs

Underpinning the Web is a consistent use of URLs to identify documents and services. When possible, we apply this to real-world objects as well. For example, http://gov.example/counties/MA-norfolk-county was used in these examples to identify Norfolk County in Massachusetts. This use of common identifiers is frequently associated with the Semantic Web, but is, in fact, a feature of the Web.

Separation of Issues

A composability of web technologies depends in part upon distinct separation between:

Cultural Guidelines

Openness

The W3C has a defined process, demaning public accountability for technical decisions in all specifications. The results in better specifications and better adoption.

Clear intellectual property statements

All W3C recommendations have specific implementation rights; all except @@5? are entirely royalty-free.

TODO


Eric Prud'hommeaux