<?xml version="1.0" encoding="UTF-8"?>
<!--
altova_sps d:\documentacion\DDWG\APIDocumentEdition\DIWG-xmlspec.sps
-->
<?xml-stylesheet type="text/xsl" href="xmlspec.xsl"?>
<spec xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xl="http://www.w3.org/1999/xlink" xmlns:h="http://www.w3.org/1999/xhtml" xsi:noNamespaceSchemaLocation="xmlspec.xsd" status="int-review" w3c-doctype="wd" role="editors-copy">
	<header>
		<title>Device Description Repository</title>
		<subtitle>Grouping</subtitle>
		<version>1b</version>
		<w3c-designation/>
		<w3c-doctype role="placeholder">Editors' Draft</w3c-doctype>
		<pubdate>
			<day>01</day>
			<month>May</month>
			<year>2008</year>
		</pubdate>
		<publoc role="placeholder">
			<loc href="http://www.w3.org/2005/MWI/DDWG/drafts/structures/080501" xl:show="replace" xl:actuate="onRequest">http://www.w3.org/2005/MWI/DDWG/drafts/structures/080501</loc>
		</publoc>
		<latestloc>
			<loc href="http://www.w3.org/2005/MWI/DDWG/drafts/structures/latest" xl:show="replace" xl:actuate="onRequest">http://www.w3.org/2005/MWI/DDWG/drafts/structures/latest</loc>
		</latestloc>
		<prevlocs role="placeholder">
			<loc href="http://www.w3.org/2005/MWI/DDWG/drafts/structures/071031" xl:show="replace" xl:actuate="onRequest">http://www.w3.org/2005/MWI/DDWG/drafts/api/071031</loc>
		</prevlocs>
		<authlist>
			<author>
				<name>José Manuel Cantera Fonseca</name>
				<affiliation>Telefónica I+D</affiliation>
			</author>
		</authlist>
		<abstract>
			<p>
Content adaptation in the Mobile Web can benefit from the definition of groups of devices that share common characteristics. This WG Note defines an XML format, a syntax for group definitions and an extension to the DDR Simple API that can be used in the development of applications 
that exploit device grouping.
</p>
		</abstract>
		<status>
			<p>
				<emph>This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the <loc href="http://www.w3.org/TR/" xl:show="replace" xl:actuate="onRequest">W3C technical reports index</loc> at http://www.w3.org/TR/. </emph>
			</p>
			<p>This is <phrase role="placeholder">an Editorial Draft</phrase> of a possible future W3C Note</p>
			<p>Publication as <phrase role="placeholder">an Editorial Draft</phrase> does not imply endorsement by the <phrase role="placeholder">Device Description Working Group or the W3C Membership</phrase>. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.</p>
			<p>This document is published as part of the W3C <loc href="http://www.w3.org/Mobile/" xl:show="replace" xl:actuate="onRequest">Mobile Web Initiative</loc> (MWI) by the <loc href="http://www.w3.org/2005/MWI/DDWG/" xl:actuate="onRequest" xl:show="replace">Device Description Working Group</loc>. It is a deliverable as defined in the <loc xl:actuate="onRequest" xl:show="replace" href="http://www.w3.org/2006/09/mwi-ddwg2-charter">Charter</loc> of that group.</p>
			<p>Please send comments to <loc href="mailto:public-ddwg@w3.org" xl:show="replace" xl:actuate="onRequest">public-ddwg-comments@w3.org</loc>. This list is archived at <loc href="http://lists.w3.org/Archives/Public/public-ddwg" xl:show="replace" xl:actuate="onRequest">http://lists.w3.org/Archives/Public/public-ddwg-comments/</loc>.</p>
			<p>This document was produced by a group operating under the <loc href="http://www.w3.org/Consortium/Patent-Policy-20040205/" xl:show="replace" xl:actuate="onRequest">5 February 2004 W3C Patent Policy</loc>. W3C maintains a <loc href="http://www.w3.org/2004/01/pp-impl/32080/status#specs" xl:show="replace" xl:actuate="onRequest">public list of any patent disclosures</loc> made in connection with the deliverables of the group; that page also includes instructions for disclosing a
				patent. An individual who has actual knowledge of a patent which the individual believes contains <loc href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential" xl:show="replace" xl:actuate="onRequest">Essential Claim(s)</loc> must disclose the information in accordance with <loc href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure" xl:show="replace" xl:actuate="onRequest">section 6 of the W3C Patent Policy</loc>.</p>
		</status>
		<langusage>
			<language id="en-US"/>
		</langusage>
		<revisiondesc>
			<p></p>
		</revisiondesc>
	</header>
	<body>
		<div1 id="sec-introduction">
			<head>Introduction</head>
						<p>The mobile handset market is very innovative and dynamic, offering tons of devices made by different manufacturers. However, it is noteworthy that most of these devices share common characteristics, and, as a result, there is a tendency towards device grouping into families to capture sets of devices that share common characteristics, such as all the devices made by a manufacturer or all devices that offer similar functionalities. Device grouping is useful as it provides a level of abstraction (in an specific context) that avoids in thinking on specific models or particularities. 
</p>
			<p>
			Device grouping is not only useful for abstraction purposes. There also different situations regarding adaptation of content in the mobile web where it is needed to group different kind of devices to create categories, families, hierarchies or clusters of devices. For example, "The customer wants to include an extra link in a page for those devices that belong to the Example Series 70" family. This kind of functionality is currently available in different content adaptation solutions in the commercial and open source space.
			</p>
			<p>
 This W3C Note describes the situations where device grouping is useful and proposes an extension to the DDR 
 Simple API for solving the problem of device grouping. 			
	 </p>
		</div1>
		
		<div1 id="sec-background">
			<head>Background to the need of Device Grouping</head>
			<div2 id="use-case-1">
				<head>Use Case 1 : Mobile Web content adaptation for a family of devices</head>
				<p>John is a developer in charge of designing and deploying a new mobile web site. As a requirement the site must be accesible from a myriad of devices including mobile phones, smartphones and different kind of PDAs (Palm, Blackberry, Pocket PC). The customer is expecting a good experience in all the devices addressed, exploiting all device features at a maximum.
</p>
				<p>
There are some requirements that has to do with the presentation of different information in tabular format. Initially John starts designing all the tables to have only two columns, restricting the amount of information of each entity to the two most important data fields. This design is suitable for the majority of mobile phones but when he tests on a PDA device, John realizes that two columns provide a very poor result on a PDA device. He realizes that space is wasted and decides to add an additional column that will be only displayed for those devices that are PDAs.
</p>
				<p>
To overcome that issue, John creates a new device family called 'PDADevice' using a tool provided by a W3C-compliant device description solution. This family of devices will be characterized by a set conditions on the device capabilities, such as screen dimensions, supported markup code, available memory, etc. Once the device family is created and uploaded to the DDR, John uses the DDR API in his favourite programming language to generate the markup table accordingly to the established requirements.</p>
			</div2>
			<div2>
				<head>Use case 2 : Device family reuse in mobile web content adaptation</head>
				<p>Company A wants to develop a new mobile web application and would like to provide different layout and content to different groups of devices. As company A doesn't like reinventing the wheel, instead of creating a new device family, queries the DDR, and realizes that there is a device family that suits its needs as defined by company B who is working in the same space. Company A can consistently reuse that family of devices and references it in his own application.</p>
			</div2>
			<div2>
				<head>Use case 3 : Formal definition of groups of devices</head>
				<p> It is common to hear names such as "Smartphone", "Musicphone", "Featurephone", but does anyone know what they mean in detail? Is a Smartphone a device to make calls, synchronize your calendar and provide a fully featured address book? If so, what is the difference between a Smartphone and a PDA? When does a mobile phone "turn" into a Smartphone? When isn't it a Smartphone anymore and become a PDA?
</p>
				<p>
All these definitions are very important to many individuals and companies. Providing a way to define clearly {*} and formally what they are will help comunication between different individuals and companies.</p>
			</div2>
			<div2>
				<head>Use Case 4 : Application development for a family of devices</head>
				<p>
				When developing an application, for J2ME, Symbian etc, it is often useful to create different builds for different devices or use different API's to exploit the device capabilities, namely 3D hardware acceleration, stereo speakers, bluetooth chips, GPS support and more. In order to do this, developers might have to create one build for each device on the market. Many devices actually share the same functionalities and support the same API's. Developing and testing on a device often means supporting a range of devices. Companies in this space will claim compatibility with device families instead of individual devices. 
				</p>
				<p>An specific instantiation of this use case, relevant to the Mobile Web, is a mobile web browser vendor who wants to express the fact that their browser works in a set of devices. For example, "our MiniBrowser is compatible with all Nokia Series 60 devices". 
				</p>
			</div2>
			<div2>
				<head>Use Case 5 : Common definition and sharing of device family for content provisioning</head>
				<p>Company A is a developer of J2ME applications. Every month its QA team tests the new games against the devices they have in their lab. Devices used for testing are often considered master devices representing a number of other devices that will not be tested directly. Also, every month, the company lab buys new devices, old games are tested against these devices for compatibility. Company A states formally on which devices and device families their games work on.
</p>
				<p>
Company B is a content aggregator. Every month receives from different software developers a number of new games. Company B also keeps updates of their device database so every month new devices are added. Every month Company A sends to Company B a list of the games and a list of the devices and group of devices (families) compatible with the games provided.
</p>
				<p>
Company B needs to go back and check the list of devices and games every month for each of the games. The ability of using a common representation of device families between Company B and each of its affiliate games developers would ease the work on a daily basis and make sure that all the devices that are certified to work with a certain game are up-to-date. For example, if Company B has a brand new device in its database and that device belongs to a device family certified by Company A, Company B can automatically state that a certain game works in that new device.</p>
			</div2>
		</div1>
		
		<div1 id="sec-definition">
			<head>Device Grouping based on XML</head>
			<p>
			The device groups are defined in the XML format defined in the following sections. The XML infoset is described in XML Schema ... with each element	in the <code>http://www.w3.org/2008/05/structures</code> namespace.
			</p>
			<p>
				<table border="1">
					<tbody>
						<tr>
							<th>Element</th>
							<th>Attributes</th>
							<th>Minimal Content Model</th>
						</tr>
						<tr>
							<td><loc href="#deviceStructures" xl:show="replace" xl:actuate="onRequest">deviceStructures</loc></td>
							<td>None</td>
							<td>(<loc href="#vocabularies" xl:show="replace" xl:actuate="onRequest">vocabularies</loc>)?,
							<loc href="#groups" xl:show="replace" xl:actuate="onRequest">groups</loc></td>
						</tr>
						<tr>
							<td><loc href="#vocabularies" xl:show="replace" xl:actuate="onRequest">vocabularies</loc></td>
							<td>None</td>
							<td>(<loc href="#vocabulary" xl:show="replace" xl:actuate="onRequest">vocabulary</loc>)+</td>
						</tr>
						<tr>
							<td><loc href="#vocabulary" xl:show="replace" xl:actuate="onRequest">vocabulary</loc></td>
							<td><loc href="#iri-attr" xl:show="replace" xl:actuate="onRequest">iri</loc>,
							       <loc href="#nsPrefix-attr" xl:show="replace" xl:actuate="onRequest">nsPrefix</loc></td>
							<td>EMPTY</td>
						</tr>
						<tr>
							<td><loc href="#groups" xl:show="replace" xl:actuate="onRequest">groups</loc></td>
							<td>None</td>
							<td><loc href="#group" xl:show="replace" xl:actuate="onRequest">group</loc>+</td>
						</tr>
						<tr>
							<td><loc href="#group" xl:show="replace" xl:actuate="onRequest">group</loc></td>
							<td><loc href="#id-attr" xl:show="replace" xl:actuate="onRequest">id</loc></td>
							<td><loc href="#expression" xl:show="replace" xl:actuate="onRequest">expression</loc></td>
						</tr>
						<tr>
							<td><loc href="#expression" xl:show="replace" xl:actuate="onRequest">expression</loc></td>
							<td>None</td>
							<td>PCDATA (See <loc href="#expression-syntax" xl:show="replace" xl:actuate="onRequest">syntax</loc>)</td>
						</tr>
					</tbody>
				</table>
			</p>
			<div2 id="deviceStructures">
				<head>The <code>deviceStructures</code> element</head>
				<p>It is the element that serves as root of the XML document</p>
			</div2>
			<div2 id="vocabularies">
				<head>The <code>vocabularies</code> element</head>
				<p>This element is the parent element for all the vocabulary declarations in the XML document.</p>
			</div2>
			<div2 id="vocabulary">
				<head>The <code>vocabulary</code> element</head>
				<p>The purpose of this element is the declaration of the vocabularies that will be used in the group definitions.</p>
				<div3 id="vocabulary-attrs">
					<head>Attributes</head>
					<glist>
						<gitem>
							<label id="iri-attr"><code>iri</code></label>
							<def><p>The IRI of the vocabulary referenced. This attribute is mandatory.</p></def>
						</gitem>
						<gitem>
							<label id="nsPrefix-attr"><code>nsPrefix</code></label>
							<def><p>The namespace prefix assigned to the vocabulary. It will be used to reference qualified Property and Aspect names
							         in expressions. This attribute is mandatory and there cannot be two vocabularies with the same prefix. Note that 
							         a vocabulary can be assigned the empty string as "" prefix, indicating that it will be the vocabulary used when properties are not fully qualified in expressions.</p>
							</def>
						</gitem>
					</glist>
				</div3>
			</div2>
			<div2 id="groups">
				<head>The <code>groups</code> element</head>
				<p>This element is the parent element for all the groups defined</p>
			</div2>
			<div2 id="group">
				<head>The <code>group</code> element</head>
				<p>This is the element used to define a group of devices</p>
				<div3 id="group-attrs">
					<head>Attributes</head>
					<glist>
					<gitem>
							<label id="id-attr"><code>id</code></label>
							<def><p>The group's id. This attribute is mandatory. This is the identifier that will be used later by the programmer 
							in the code to ckeck if a device belongs to such group.</p></def>
						</gitem>
					</glist>
				</div3>
			</div2>
			<div2 id="expression">
				<head>The <code>expression</code> element</head>
				<p>This element includes the boolean expression that defines a group. </p>
			<div3 id="expression-syntax">
				<head>Expression Syntax</head>
				<p>Expression can be used to define the conditions under a device belongs to a group.  boolean expressions that denote the conditions that a device	must satisfy in order to belong to an specific group. The formal syntax for those expressions is (in simple Extended Backus-Naur Form (EBNF) notation):</p>
				<scrap>
					<head>Grammar for group expressions</head>
					<prod id="NT-GroupExpr">
						<lhs>GroupExpr</lhs>
						<rhs>
							'not' <nt def="NT-GroupExpr">GroupExpr</nt>
						</rhs>
						<rhs>| '(' <nt def="NT-GroupExpr">GroupExpr</nt> ')' </rhs>
						<rhs>| <nt def="NT-GroupExpr">GroupExpr</nt> 'or' <nt def="NT-GroupExpr">GroupExpr</nt></rhs>
						<rhs>| <nt def="NT-GroupExpr">GroupExpr</nt> 'and' <nt def="NT-GroupExpr">GroupExpr</nt></rhs>
						<rhs>| <nt def="NT-RelationalExpr">RelationalExpr</nt></rhs>
					</prod>
					
					<prod id="NT-RelationalExpr">
						<lhs>RelationalExpr</lhs>
						<rhs><nt def="NT-PropertyDef">PropertyDef</nt>   '&gt;'  <nt def="NT-Number">Number</nt></rhs>
						<rhs>| <nt def="NT-PropertyDef">PropertyDef</nt>  '&gt;='  <nt def="NT-Number">Number</nt></rhs>
						<rhs>| <nt def="NT-PropertyDef">PropertyDef</nt>  '&lt;'  <nt def="NT-Number">Number</nt></rhs>
						<rhs>| <nt def="NT-PropertyDef">PropertyDef</nt>  '&lt;='  <nt def="NT-Number">Number</nt></rhs>
						<rhs>| <nt def="NT-PropertyDef">PropertyDef</nt>  '=='  
							<nt def="NT-Number">Number</nt> | 
							<nt def="NT-Literal">Literal</nt> | 
							<nt def="NT-Boolean">Boolean</nt>
						</rhs>
						<rhs>| <nt def="NT-PropertyDef">PropertyDef</nt>  '!='  
							<nt def="NT-Number">Number</nt> |
							<nt def="NT-Literal">Literal</nt> | 
							<nt def="NT-Boolean">Boolean</nt>
						</rhs>
						<rhs>| <nt def="NT-PropertyDef">PropertyDef</nt>  'in'  <nt def="NT-NumberEnum">NumberEnum</nt></rhs>
						<rhs>| <nt def="NT-PropertyDef">PropertyDef</nt>  'in'  <nt def="NT-LiteralEnum">LiteralEnum</nt></rhs>
					</prod>
					
					<prod id="NT-PropertyDef">
						<lhs>PropertyDef</lhs>
						<rhs>'[' <nt def="NT-PropertyNameDef">PropertyNameDef</nt> ']' </rhs>
						<rhs>| '[' <nt def="NT-PropertyNameDef">PropertyNameDef</nt> ',' <nt def="NT-AspectNameDef">AspectNameDef</nt> ']'</rhs>
					</prod>
					
					<prod id="NT-PropertyNameDef">
						<lhs>PropertyNameDef</lhs>
						<rhs><nt def="NT-NsPrefix">NsPrefix</nt>':'<nt def="NT-LocalPropertyName">LocalPropertyName</nt></rhs>
						<rhs>| <nt def="NT-LocalPropertyName">LocalPropertyName</nt></rhs>
					</prod>
					
					<prod id="NT-AspectNameDef">
						<lhs>AspectNameDef</lhs>
						<rhs><nt def="NT-NsPrefix">NsPrefix</nt>':'<nt def="NT-LocalAspectName">LocalAspectName</nt></rhs>
						<rhs>| <nt def="NT-LocalAspectName">LocalAspectName</nt></rhs>
					</prod>

					<prod id="NT-LocalPropertyName">
						<lhs>LocalPropertyName</lhs>
						<rhs><xnt xl:show="new" xl:actuate="onRequest" href="//www.w3.org/TR/2006/REC-xml-names-20060816/#NT-NCName">NCName</xnt></rhs>
					</prod>
					
					<prod id="NT-LocalAspectName">
						<lhs>LocalAspectName</lhs>
						<rhs><xnt xl:show="new" xl:actuate="onRequest" href="http://www.w3.org/TR/2006/REC-xml-names-20060816/#NT-NCName">NCName</xnt></rhs>
					</prod>
					
					<prod id="NT-NsPrefix">
						<lhs>NsPrefix</lhs>
						<rhs><xnt xl:show="new" xl:actuate="onRequest" href="http://www.w3.org/TR/2006/REC-xml-names-20060816/#NT-NCName">NCName</xnt></rhs>
					</prod>
					
					<prod id="NT-NumberEnum">
						<lhs>NumberEnum</lhs>
						<rhs>(' ( <nt def="NT-Number">Number</nt> ( ',' <nt def="NT-Number">Number</nt> )* )? ')'</rhs>
					</prod>
					
					<prod id="NT-LiteralEnum">
						<lhs>LiteralEnum</lhs>
						<rhs>'(' ( <nt def="NT-Literal">Literal</nt> ( ',' <nt def="NT-Literal">Literal</nt> )* )? ')'</rhs>
					</prod>
					
					<prod id="NT-Literal">
						<lhs>Literal</lhs>
						<rhs>'"' [^"]* '"'</rhs>
						<rhs>| "'" [^']* "'"</rhs>
					</prod>
					
					<prod id="NT-Boolean">
						<lhs>Boolean</lhs>
						<rhs>'true'</rhs>
						<rhs>| 'false'</rhs>
					</prod>
					
					<prod id="NT-Number">
						<lhs>Number</lhs>
						<rhs>
							<nt def="NT-Digits">Digits</nt> ('.' <nt def="NT-Digits">Digits</nt>?)? </rhs>
						<rhs> | '.' <nt def="NT-Digits">Digits</nt>
						</rhs>
					</prod>
					
					<prod id="NT-Digits">
						<lhs>Digits</lhs>
						<rhs>[0-9]+</rhs>
					</prod>
					
				</scrap>
			</div3>
			</div2>
		</div1>
		
		<div1 id="sec-extended-api">
			<head>Extended Simple API</head>
			<p>This note proposes two extensions to the DDR Simple API</p>
			<div2>
				<head>Initialization</head>
				<p>At initialization time the user of the API need to pass the XML file with the group definitions to be used. This can be used passing the XML file as an additional initialization property.</p>
			</div2>
			<div2>
				<head>Query Methods</head>
				<p>Returns <code>true</code> if a device belongs to a group</p>
				<p>
				<eg role="Java">public boolean belongsTo(Evidence evidence,String group);</eg>
				</p>
			</div2>
		</div1>
		
		<div1 id="sec-example">
			<head>Example</head>
			<div2 id="sec-example-xml">
				<head>XML group definitions file</head>
				<example>
				<eg>
					<![CDATA[
<deviceStructures xmlns="http://www.w3.org/2008/05/structures">
	<vocabularies>
		<vocabulary iri="http://www.w3.org/2008/01/ddr-core-vocabulary" nsPrefix="" />
		<vocabulary iri="http://example.org/vocabulary" nsPrefix="ex"/>
	</vocabularies>
	
	<groups>	
		<group id="NiceDevice">
			<expression>
				([imageFormatSupport,webBrowser] in ('gif','jpeg') and [displayWidth] >= 240)
				or [ex:rendersTables,ex:webBrowser] == true and [inputDevices] in ('touchScreen'))
			</expression>
		</group>
			
		<group id="XhtmlDevice">
			<expression>
				[markupSupport] in ('xhtmlmp10','xhtmlbasic10')
			</expression>
		</group>		
	</groups>
</deviceStructures>
					]]>
				</eg>
	</example>
			</div2>
			<div2 id="sec-example-hava">
				<head>Java Code</head>
				<example>
					<eg role="java"><![CDATA[
Properties props = new Properties();
props.put("org.w3c.ddr.structures","file:///structuresExample.xml");
ServiceExt service = (ServiceExt)ServiceFactory.newService(
	"org.example.DDRServiceExt","http://www.w3.org/2008/01/ddr-core-vocabulary",props);

Evidence evidence = service.newHttpEvidence();
evidence.put("User-Agent","Example Browser 1.1 on Example Device");						
if(service.belongsTo(evidence,"XhtmlDevice")) {
	// Do Something
}
else {
		// Do other
}]]>
</eg>
	</example>
			</div2>
		</div1>
		
	</body>
	<back>
		<div1 id="sec-references">
			<head>References</head>
			<blist>
							<bibl id="DDR-Simple-API" xl:show="replace" xl:actuate="onRequest" href="http://www.w3.org/TR/DDR-Simple-API"> Device
					Description Repository Simple API, Jo Rabin, José Manuel Cantera Fonseca, Rotan Hanrahan, Ignacio Marín (eds.), W3C Working Draft, 4 April 2008 </bibl>
		    	<bibl id="DDWG" xl:show="replace" xl:actuate="onRequest" href="http://www.w3.org/2005/MWI/DDWG/">DDWG Home Page</bibl>
		    	<bibl id="DIGLOSS" href="http://www.w3.org/TR/2005/WD-di-gloss-20050118" xl:show="replace" xl:actuate="onRequest">Glossary of Terms for Device Independence, W3C Working Draft, Rhys Lewis (ed.), 18 January 2005 </bibl>
		        <bibl id="CORE-VOCAB" key="Core Vocabulary" href="http://www.w3.org/TR/ddr-core-vocabulary/" xl:show="replace" xl:actuate="onRequest">Device Description Repository Core Vocabulary,
		        W3C Working Draft, Andrea Trasatti, Jo Rabin, Rotan Hanrahan (eds.), 18 December 2007</bibl>
		        <bibl href="http://www.w3.org/TR/DDR-requirements/" id="Requirements" xl:show="replace" xl:actuate="onRequest">Device Description Repository Requirements 1.0, W3C Working Group Note, Kevin Smith (ed.), 17 December 2007</bibl>
		    	<bibl href="http://www.w3.org/TR/2007/NOTE-dd-landscape-20071031/" id="Landscape" xl:show="replace" xl:actuate="onRequest">Device Description Landscape 1.0, W3C Working Group Note, Eman Nkeze, James Pearce, Matt Womer (eds.), 31 October 2007, </bibl>
		    	<bibl href="http://www.w3.org/TR/2007/NOTE-dd-ecosystem-20071031/" id="Ecosystem" xl:show="replace" xl:actuate="onRequest">Device Description Ecosystem 1.0, W3C Working Group Note, Rotan Hanrahan (ed.), 31 October 2007</bibl>
		    	<bibl id="ref-DCO" key="Delivery Context Ontology" href="http://www.w3.org/TR/dcontology/" xl:show="replace" xl:actuate="onRequest">Delivery Context Ontology, W3C Working Draft, Rhys Lewis, José Manuel Cantera Fonseca (eds.), 15 April 2008</bibl>			
				<bibl id="ref-Java" key="Java" href="http://java.sun.com/docs/books/jls/third_edition/html/j3TOC.html" xl:show="replace" xl:actuate="onRequest">The Java Language Specification, Third Edition</bibl>
				
				<bibl id="ref-Namespaces" key="XML Namespaces" href="http://www.w3.org/TR/2006/REC-xml-names-20060816/" xl:show="replace" xl:actuate="onRequest">Namespaces in XML Second Edition, W3C Recommendation, Tim Bray, Dave Hollander, Andrew Layman Richard Tobin (eds.), 16 August 2006 </bibl>
			</blist>
		</div1>
		
				
		<div1 id="acknowledgements">
			<head>Acknowledgements</head>
			<p>The editor of the document acknowledge significant written contributions coming from:</p>
			<orglist>
				<member>
					<name>Andrea Trassati, mTLD dotMobi</name>
				</member>
			</orglist>
		</div1>
	</back>
</spec>
