2009/dap/system-info Overview.html,1.87,1.88

Update of /sources/public/2009/dap/system-info
In directory hutz:/tmp/cvs-serv1712

Modified Files:
	Overview.html 
Log Message:
- added table for DCO mapping
- in the process, tried to move closer to the DCO class model by using more inheritance in the properties


Index: Overview.html
===================================================================
RCS file: /sources/public/2009/dap/system-info/Overview.html,v
retrieving revision 1.87
retrieving revision 1.88
diff -u -d -r1.87 -r1.88
--- Overview.html	3 Mar 2010 10:33:45 -0000	1.87
+++ Overview.html	5 Mar 2010 15:11:08 -0000	1.88
@@ -20,6 +20,12 @@
       };
     </script>
     <script src='../common/config.js' class='remove'></script>
+    <style type="text/css">
+      table { border: 1px solid black }
+      th { border: 1px solid black }
+      tr.interface { background-color: #ddd }
+</style>
+
   </head>
   <body>
     <section id='abstract'>
@@ -169,7 +175,9 @@
 
         <ul>
           <li>A name</li>
-          <li>A URI, which is the concatenation of the string <code>http://www.w3.org/2009/dap/SysInfo/</code> with the name of the property</li>
+          <li>A URI, which is the concatenation of the string <code>http://www.w3.org/2009/dap/SysInfo/</code> with the name of the property.
+          <p class="issue">Reuse [[DCONTOLOGY]]'s base URI when applicable?</p></li>
+          
           <li>An interface, whose name is the same as the property's name, and which contains its attributes</li>
         </ul>
 
@@ -182,11 +190,15 @@
         <p>Some of the properties below are defined as
         <dfn>enumerable</dfn>, meaning that more than one instance of
         the property's value type exist on the system. For instance, a
-        multi-processor system would report as many instances of
-        <a>Cpu</a> as the number of processors. When requesting the
-        value of an enumerable property, the <a>id</a> attribute of
-        the <a>Options</a> interface is used to differentiate between
-        multiple instances.</p>
+        system with more than one hard disk would report one instance
+        of <a>StorageUnit</a> for each disk. When requesting (through
+        calls to the <a>get</a> or <a>watch</a> functions) the value
+        of an enumerable property, the success callback function will
+        be passed an array of the property object, one for each
+        property item. However, if an identifier is passed to the
+        request (through the <a>id</a> attributes of the
+        <a>options</a> parameter, then only the property object with
+        that identifier will be returned.</p>
 
         <p>The non-normative figure below illustrates the contents and
         relationship of all the properties defined in the following
@@ -222,10 +234,21 @@
             system property. When called, the function MUST
             immediately return and asynchronously acquire the current
             state of the requested property. If it is successful the
-            success callback MUST be invoked and return an object
-            containing the information provided by the property. If an
-            error occurs, and an <a>errorCallback</a> function was
-            passed to the function invocation, it is called and is
+            success callback MUST be invoked and return
+
+            <ul>
+              <li>If this property is not <a>enumerable</a>, an instance of the object associated to this property</li>
+              <li>otherwise an array of such instances</li>
+            </ul>
+
+            For instance, requesting the property "Power" will yield
+            an instance of the <a>Power</a> object, while requesting
+            the property "StorageUnits" will return an array of
+            <a>StorageUnit</a> objects, since the property is
+            enumerable.
+
+            If an error occurs, and an <a>errorCallback</a> function
+            was passed to the function invocation, it is called and is
             passed an <a>Error</a> object indicating the cause of
             error.
             
@@ -262,13 +285,17 @@
             <a>errorCallback</a>, passing an <a>ErrorCB</a> object which
             reflects the cause of the error.</li>
 
-            <li>Register to receive system events that indicate that the status of the requested properties may have changed</li>
-            <li>When a system event is successfully received invoke the
-            associated <a>successCallback</a>, passing an object
-            containing the property values.  If an error occurs and the
-            method was invoked with a non-null <a>errorCallback</a>
-            argument, this method MUST invoke the <a>errorCallback</a>
-            with an <a>ErrorCB</a> object as an argument.</li>
+            <li>Register to receive system events that indicate that
+            the status of the requested properties may have
+            changed</li>
+            <li>When a system event is successfully received invoke
+            the associated <a>successCallback</a>, passing an object
+            containing the property values (or an array of such
+            objects, if the property is enumerable). If an error
+            occurs and the method was invoked with a non-null
+            <a>errorCallback</a> argument, this method MUST invoke the
+            <a>errorCallback</a> with an <a>ErrorCB</a> object as an
+            argument.</li>
             <li>Repeat the previous step until the <a>cancel</a> method
             of the <a>PendingOp</a> object returned by this <a>watch</a>
             function is invoked.</li>
@@ -620,24 +647,6 @@
           <p>This Property describes a network connection.</p>
 
           <dl title='[NoInterfaceObject] interface Network : SystemProperty' class='idl'>
-            <dt>const unsigned short TYPE_UNKNOWN = 0</dt>
-            <dd>The API is unable to determine the network technology.</dd>
-
-            <dt>const unsigned short TYPE_WIRED = 1</dt>
-            <dd>Indicates that this connection is wired (e.g. ethernet).</dd>
-
-            <dt>const unsigned short TYPE_WIFI = 2</dt>
-            <dd>Indicates that this connection is through a WiFi network (e.g. IEEE802.11)</dd>
-
-            <dt>const unsigned short TYPE_PLM = 3</dt>
-            <dd>Indicates that this connection is through a <em>Public
-            Land Mobile</em> network (e.g. GSM)</dd>
-
-            <dt>readonly attribute unsigned short type</dt>
-            <dd>Indicates the network technology in use. The value
-            MUST be one of the constants defined in this
-            interface.</dd>
-
             <dt>readonly attribute unsigned long currentDownloadBandwidth</dt>
             <dd>
               The current real-time download bandwidth, in Kbits/s.
@@ -670,49 +679,67 @@
             bearer. A user agent MUST be able to report both IPv4 and
             IPv6 addresses.</dd>
 
-            <dt>readonly attribute float? currentSignalStrength</dt>
+          </dl>
+        </section>
+
+
+        <section>
+          <h4>The <a>WiredNetwork</a> Property</h4>
+          <p>This Property describes a wired network connection
+          (e.g. Ethernet). It does not hold any specific attributes,
+          since the necessary information is found in its
+          superclass.</p>
+          <dl title='[NoInterfaceObject] interface WiredNetwork : Network' class='idl'>
+          </dl>
+        </section>
+        <section>
+          <h4>The <a>WiFiNetwork</a> Property</h4>
+          <p>This Property describes a WiFi network connection (e.g. IEEE 802.11).</p>
+          <dl title='[NoInterfaceObject] interface WiFiNetwork : Network' class='idl'>
+            <dt>readonly attribute float currentSignalStrength</dt>
             <dd>This connection's signal strength, as a normalized
             value between 0 (no signal detected) and 1 (the level is
-            at its maximum value). A value of <code>null</code>
-            indicates that this property is not applicable to this
-            connection type.</dd>
+            at its maximum value).</dd>
 
-            <dt>readonly attribute DOMString? ESSID</dt>
-            <dd>The Extended Service Set Identifier (ESSID) of this
+            <dt>readonly attribute DOMString? SSID</dt>
+            <dd>The Service Set Identifier (SSID) of this
             connection. A value of <code>null</code> indicates that
             this property is not applicable to this connection
             type.</dd>
+          </dl>
+        </section>
+        <section>
+          <h4>The <a>PLMNetwork</a> Property</h4>
+          <p>This Property describes a  <em>Public Land Mobile</em>  connection (e.g. GPRS).</p>
+          <dl title='[NoInterfaceObject] interface PLMNetwork : Network' class='idl'>
+            <dt>readonly attribute float currentSignalStrength</dt>
+            <dd>This connection's signal strength, as a normalized
+            value between 0 (no signal detected) and 1 (the level is
+            at its maximum value).</dd>
 
-            <dt>readonly attribute DOMString? apn</dt>
-            <dd>The Access Point Name associated to a network bearer,
-            if applicable. A value of <code>null</code>
-            indicates that this property is not applicable to this
-            connection type.</dd>
+            <dt>readonly attribute DOMString apn</dt>
+            <dd>The Access Point Name associated to a network bearer</dd>
 
-            <dt>readonly attribute DOMString? operatorName</dt>
-            <dd>The name of the cellular connection's operator. A
-            value of <code>null</code> indicates that this property is
-            not applicable to this connection type.</dd>
+            <dt>readonly attribute DOMString operatorName</dt>
+            <dd>The name of the cellular connection's operator.</dd>
 
-            <dt>readonly attribute boolean? roaming</dt>
+            <dt>readonly attribute boolean roaming</dt>
             <dd>Indicates if this connection is roaming. A value of
             <code>true</code> indicates that the connection is
             roaming, while <code>false</code> indicates that it
-            isn't. A value of <code>null</code> indicates that this
-            property is not applicable to this connection type.</dd>
+            is not roaming.</dd>
 
-            <dt>readonly attribute unsigned short? mcc</dt>
+            <dt>readonly attribute unsigned short mcc</dt>
             <dd>This connection's <em>mobile country code</em>, as
-            defined by [[!ITUMCC]]. A value of <code>null</code>
-            indicates that this property is not applicable to this
-            connection type.</dd>
-            <dt>readonly attribute unsigned short? mnc</dt>
+            defined by [[!ITUMCC]].</dd>
+
+            <dt>readonly attribute unsigned short mnc</dt>
             <dd>This connection's <em>mobile network code</em>, as
-            defined by [[!ITUMNC]]. A value of <code>null</code>
-            indicates that this property is not applicable to this
-            connection type.</dd>
+            defined by [[!ITUMNC]].</dd>
+
           </dl>
         </section>
+
       </section>
       <!--******************** /Network **********************************-->
 
@@ -738,10 +765,10 @@
         </section>
 
         <section>
-          <h4>The SensorReading interface</h4>
-          <p>The <a>SensorReading</a> interface is used as a general interface for sensor values. All the success callbacks for the properties defined in this section return an instance of this interface, with attribute values corresponding to the measurement leading to the callback being invoked.</p>
+          <h4>The Sensor interface</h4>
+          <p>The <a>Sensor</a> interface is used as a general interface for sensor values. All the success callbacks for the properties defined in this section return an instance of this interface, with attribute values corresponding to the measurement leading to the callback being invoked.</p>
 
-          <dl title="[NoInterfaceObject] interface SensorReading : SystemProperty" class="idl">
+          <dl title="[NoInterfaceObject] interface Sensor: SystemProperty" class="idl">
             <dt>readonly attribute float? value</dt>
             <dd>The numerical value of this sensor, at the time of sampling. Details on the meaning of the number and reported as well as its unit are given for each sensor property defined below.</dd>
               <dt>readonly attribute float? min</dt>
@@ -749,11 +776,11 @@
               <dt>readonly attribute float? max</dt>
               <dd>The maximum value that the sensors measuring the property are able to report</dd>
             <dt>readonly attribute float? normalizedValue</dt>
-            <dd>The numerical value of this sensor, at the time of sampling, normalized on a 0 to 1 scale, where 0 represents the minimum value that the sensor can report and 1 the maximum value..</dd>
+            <dd>The numerical value of this sensor, at the time of sampling, normalized on a 0 to 1 scale, where 0 represents the minimum value that the sensor can report and 1 the maximum value.</dd>
           </dl>
 
 
-          <p>For an instance of <a>SensorReading</a> returned by a callback function, either <a>value</a> or <a>normalizedValue</a> can be <code>null</code>, but at least one MUST be non-<code>null</code>. <a>normalizedValue</a> is meant to be used when the API is not able to report a sensor value in the unit specified in this document. In that case, <a>value</a> stays <code>null</code> and <a>normalizedValue</a> is assigned a value which represents a unit-less measurement, between the minimum and maximum values that the device supports.</p>
+          <p>For an instance of <a>Sensor</a> returned by a callback function, either <a>value</a> or <a>normalizedValue</a> can be <code>null</code>, but at least one MUST be non-<code>null</code>. <a>normalizedValue</a> is meant to be used when the API is not able to report a sensor value in the unit specified in this document. In that case, <a>value</a> stays <code>null</code> and <a>normalizedValue</a> is assigned a value which represents a unit-less measurement, between the minimum and maximum values that the device supports.</p>
           
           <p>Some sensors may only be able to report two values, e.g. corresponding to "near" or "far" in the case of a proximity sensor. In that case, the <a>normalizedValue</a> is set to 0 for the lowest of the two values and to 1 for the greatest.</p>
 
@@ -765,7 +792,7 @@
         <section>
           <h4>Ambient Light</h4>
           <section>
-            <h5>The <a>AmbientLight</a> Property</h5>
+            <h5>The <code>AmbientLight</code> Property</h5>
 
             <p>This property provides information about the global level of ambient light around the device.</p>
             <ul>
@@ -800,7 +827,7 @@
         <section>
           <h4>Ambient Temperature</h4>
           <section>
-            <h5>The <a>AmbientTemperature</a> Property</h5>
+            <h5>The <code>AmbientTemperature</code> Property</h5>
 
             <p>This property provides information about the temperature around the device.</p>
 
@@ -818,7 +845,7 @@
         <section>
           <h4>Ambient Atmospheric Pressure</h4>
           <section>
-            <h5>The <a>AmbientAtmosphericPressure</a> Property</h5>
+            <h5>The <code>AmbientAtmosphericPressure</code> Property</h5>
 
             <p>This property provides information about the atmospheric pressure around the device.</p>
 
@@ -874,22 +901,18 @@
         <section>
           <h4>The <a>AVCodecs</a> property</h4>
 
-          <p>This property exposes information about the audio/video codecs available to this system</p>
-
-          <dl title='[NoInterfaceObject] interface AVCodecs : SystemProperty' class='idl'>
-            <dt>readonly attribute AudioCodec[] audioCodecs</dt>
-            <dd>Audio codecs on this device</dd>
+          <p>This property exposes information about the audio/video codecs available to this system. It is <a>enumerable</a></p>
 
-            <dt>readonly attribute VideoCodec[] videoCodecs</dt>
-            <dd>Audio codecs on this device</dd>
+          <dl title='[NoInterfaceObject] interface AVCodec : SystemProperty' class='idl'>
           </dl>
         </section>
+
         <section>
           <h4>The <a>AudioCodec</a> Property</h4>
 
-          <p>This property exposes information on a single audio codec available to this system. Is it <a>enumerable</a>.</p>
+          <p>This property exposes information on a single audio codec available on this system.</p>
 
-          <dl title='[NoInterfaceObject] interface AudioCodec : SystemProperty' class='idl'>
+          <dl title='[NoInterfaceObject] interface AudioCodec : AVCodec' class='idl'>
             <dt>readonly attribute DOMString compFormat</dt>
 
             <dd>Free-form information on the compression
@@ -905,8 +928,11 @@
           </dl>
         </section>
           <section>            
-            <h3>The <a>VideoCodec</a> Property</h3>                
-            <dl title='[NoInterfaceObject] interface VideoCodec : SystemProperty' class='idl'>
+            <h3>The <a>VideoCodec</a> Property</h3>
+
+            <p>This property exposes information on a single video codec available on this system.</p>
+
+            <dl title='[NoInterfaceObject] interface VideoCodec : AVCodec' class='idl'>
               
               <dt>readonly attribute sequence&lt;DOMString> compFormats</dt>
               <dd>Supported compression format names. Example : "AVI", "ogg"</dd>
@@ -956,8 +982,10 @@
 
         <!-- ********* Storage ************************************************************** -->
         <section>
-          <h3>Storage</h3>
-          <p>This set of properties expose a device's storage units and their properties, like type (hard Disk, memory card, etc.) and capacity</p>
+          <h3>Storage Access</h3>
+          <p>This section describe properties that expose a device's
+          storage units, like the unit's type (hard Disk, memory card,
+          etc.) or capacity</p>
 
           <section>
             <h4>ECMAScript Example</h4>
@@ -974,16 +1002,12 @@
 
           <section>
             <h4>The <a>Storage</a> Property</h4>
-            <p>This property exposes the data storage devices connected to this system.</p>
-            <dl title="interface Storage : SystemProperty" class="idl">
-              <dt>readonly attribute StorageUnit[] units</dt>
-              <dd>The array of storage units connected to this device</dd>
-            </dl>
-          </section>
-
-          <section>
-            <h4>The <a>StorageUnit</a> Property</h4>
-            <p>This property exposes a single storage device connected to this system. It is <a>enumerable</a>.</p>
+            <p>This property exposes the data storage devices
+            connected to this system. It is <a>enumerable</a>,
+            i.e. requests to this property will yield an array of
+            <a>StorageUnit</a> objects, unless an <a>id</a> parameter
+            is passed as an option in which case a single
+            <a>StorageUnit</a> object is returned.</p>
             <dl title="interface StorageUnit : SystemProperty" class="idl">
               <dt>const unsigned short TYPE_UNKNOWN=0</dt>
               <dd><code>type</code> is set to this value when the type of this device is unknown to this API.</dd>
@@ -1013,9 +1037,17 @@
         <!--******************** Output **********************************-->
         <section>
           <h2>Output Devices</h2>
-          <p>This section gathers system properties related to this device's output devices: screens, sound systems, etc.</p>
+          <p>This section describes system properties related to this
+          device's output devices: screens, sound systems, etc.</p>
 
-          <p class="issue">Do we need information about active devices, e.g. in order to be able to see which screen is currently being in use, or to control which set of speakers should be activated? If so how do we specify it? Through an "active" flag on each device (hard to watch), or through a pointer (e.g. currentDisplay in OutputDevices) which would mean only one device is active at a time, which might not always be correct in cases like several active keyboards</p>
+          <p class="issue">Do we need information about active
+          devices, e.g. in order to be able to see which screen is
+          currently being in use, or to control which set of speakers
+          should be activated? If so how do we specify it? Through an
+          "active" flag on each device (hard to watch), or through a
+          pointer (e.g. currentDisplay in OutputDevices) which would
+          mean only one device is active at a time, which might not
+          always be correct in cases like several active keyboards</p>
           
           <section>
             <h4>ECMAScript Example</h4>
@@ -1032,28 +1064,25 @@
           <section>
             <h4>The <a>OutputDevices</a> Property</h4>
               
-            <p>This property provides information on the output devices (displays, audio) available on this system</p>
-
-            <dl title='[NoInterfaceObject] interface OutputDevices : SystemProperty' class='idl'>
-              <dt>readonly attribute Display[] displays</dt>
-              <dd>An array of all the display devices connected to this system</dd>
+            <p>This property provides information on the output
+            devices (displays, audio) available on this system. It is
+            <a>enumerable</a>, i.e. requests for this property will
+            yield an array of objects of type <a>OutputDevice</a> (or
+            one of its subtypes), unless an <a>id</a> parameter is
+            passed as an option in which case a single object of class
+            <a>InputDevice</a> (or subtype) is returned.</p>
 
-              <dt>readonly attribute Audio[] audioDevices</dt>
-              <dd>An array of all the output audio devices connected to this system</dd>
+            <dl title='[NoInterfaceObject] interface OutputDevice : SystemProperty' class='idl'>
             </dl>
 
             <p class="issue">There is no indication of current/active display(s) or audio(s). Is that necessary/possible/desired?</p>
-              
-          </section>
-            
-          <section>
-            <h4>The <a>Display</a> property</h4>
-              
-            <p>This property exposes information on a single display device available to the system. Is it <a>enumerable.</a></p>
-            
-            <p>The <a>Display</a> interface defined below inherits from the <a>Screen</a> interface as defined in [[!CSSOM-VIEW]]</p>
+                            
+            <p>The <a>Display</a> interface defined below is a
+            subclass of the <a>OutputDevice</a> interface, describing
+            a display device. It also inherits from the <a>Screen</a>
+            interface as defined in [[!CSSOM-VIEW]]</p>
             
-            <dl title="[NoInterfaceObject] interface Display : Screen, SystemProperty" class="idl">
+            <dl title="[NoInterfaceObject] interface Display : Screen, OutputDevice" class="idl">
               <dt>const unsigned short ORIENTATION_UNKNOWN = 0</dt>
               <dd>The device is not able to determine its orientation.</dd>
               <dt>const unsigned short ORIENTATION_LANDSCAPE = 1</dt>
@@ -1088,19 +1117,11 @@
             increments?</p>
               
             
-          </section>
-
-        <!-- ********* /display ************************************************************* -->
-        
-        <!-- ********* Sound ************************************************************** -->
-        <section>
-          <h4>The <a>AudioDevice</a> Property</h4>
-          
-          <p>This property exposes information on a single audio
-          output device available to this system. It is
-          <a>enumerable</a>.</p>
+          <p>This <a>Speaker</a> interface defined below is a subclass
+          of the <a>OutputDevice</a> interface. It exposes information
+          on a sound output device available to this system.</p>
           
-          <dl title='[NoInterfaceObject] interface AudioDevice : SystemProperty' class='idl'>
+          <dl title='[NoInterfaceObject] interface Speaker : OutputDevice' class='idl'>
             <dt>const unsigned short TYPE_UNKNOWN=0</dt>
             <dd><code>type</code> is set to this value when the type of this device is unknown</dd>
             <dt>const unsigned short TYPE_SPEAKER=1</dt>
@@ -1111,9 +1132,10 @@
             <dd>The type of audio output device. The value is one of the constants defined for this type.</dd>
             <dt>readonly attribute unsigned long freqRangeLow</dt>
             <dd>Frequency range, low value, in Hz</dd>
-            
             <dt>readonly attribute unsigned long freqRangeHigh</dt>
             <dd>Frequency range, high value, in Hz</dd>
+            <dt>readonly attribute unsigned short volumeLevel</dt>
+            <dd>The volume level of a speaker, on a 0 to 100 scale</dd>
           </dl>
           
         </section>
@@ -1122,10 +1144,11 @@
 
         <!-- ********* Input ***************************************************************** -->
         <section>
-          <h3>Input Devices</h3>
+          <h2>Input Devices</h2>
+
+          <p>This section describes system properties related to this
+          device's input devices: keyboards, microphones, mice, etc.</p>
 
-          <p>The properties defines below expose the input devices connected to the system (e.g. mouse, keyboard, camera).</p>
-          
           <p class="issue">Should we have a notion of active or selected device, e.g. which camera is currently used, or which display is the one currently drawn on. We could use current* like with Power, but that restricts to one active device at a time. Alternatively, there could be an active flag in each device. But that would make watch() messy, since we would have to extend the definition of watched events to sub-sub-field modifications</p>
 
 
@@ -1135,8 +1158,8 @@
 
 navigator.system.get("InputDevices", 
                      function(devices) {
-                       for(var i=0; i&lt;devices.pointingDevices.length; i++)
-                         if (devices.pointingDevices[i].supportsMultiTouch) {
+                       for(var i=0; i&lt;devices.length; i++)
+                         if (typeof devices[i] == "PointingDevice" &amp;&amp; devices[i].supportsMultiTouch) {
                            applicationParams.hazMultiTouch = true;
                            break;
                          }
@@ -1146,26 +1169,24 @@
 
           <section>
             <h3>The <a>InputDevices</a> Property</h3>
+
+            <p>This property provides information on input
+            devices (cameras, mice) available on this system. It is
+            <a>enumerable</a>, i.e. requests for this property will
+            yield an array of objects of type <a>InputDevice</a> (or
+            one of its subtypes), unless an <a>id</a> parameter is
+            passed as an option in which case a single object of class
+            <a>InputDevice</a> (or subtype) is returned.</p>
+
             
-            <dl title='interface InputDevices : SystemProperty' class='idl'>
-              <dt>readonly attribute PointingDevice[] pointingDevices</dt>
-              <dd>The list of physical pointing devices attached (e.g. mouse, tablet, touchscreens)</dd>
-              
-              <dt>readonly attribute Keyboard[] keyboards</dt>
-              <dd>The list of keyboards attached</dd>
-              
-              <dt>readonly attribute Camera[] cameras</dt>
-              <dd>The list of cameras attached</dd>
-              
-              <dt>readonly attribute Microphone[] microphones</dt>
-              <dd>The list of microphones attached</dd>
+            <dl title='interface InputDevice : SystemProperty' class='idl'>
             </dl>
-          </section>
-          
-          <section>
+
             <h4>The <a>PointingDevice</a> Property</h4>
-            <p>This property exposes the pointing devices (mouse, touch screen, gesture sensor). It is <a>enumerable</a>.</p>
-            <dl title="interface PointingDevice : SystemProperty" class="idl">
+
+            <p>This interface describes a pointing device. It inherits from the <a>InputDevice</a> interface.</p>
+
+            <dl title="interface PointingDevice : InputDevice" class="idl">
               <dt>const unsigned short TYPE_UNKNOWN=0</dt>
               <dd>When the <a>type</a> attribute has this value, then the type of this pointing device is unknown.</dd>
               <dt>const unsigned short TYPE_MOUSE=1</dt>
@@ -1183,11 +1204,9 @@
               <dt>readonly attribute boolean supportsMultiTouch</dt>
               <dd><code>true</code> when this device supports the multi-touch method of interaction, <code>else</code> otherwise.</dd>
             </dl>
-          </section>
-          <section>
-            <h4>The <a>Keyboard</a> Property</h4>
-            <p>This property exposes the keyboards and keypads connected to this system. It is <a>enumerable</a>.</p>
-            <dl title="interface Keyboard : SystemProperty" class="idl">
+
+            <p>The <a>Keyboard</a> interface describe a keyboard or keypas connected to this system.</p>
+            <dl title="interface Keyboard : InputDevice" class="idl">
               <dt>const unsigned short TYPE_UNKNOWN=0</dt>
               <dd>When the <a>type</a> attribute has this value, then this device is of a type unknown to this API.</dd>
               <dt>const unsigned short TYPE_KEYBOARD=1</dt>
@@ -1199,12 +1218,9 @@
               <dt>readonly attribute boolean isHardware</dt>
               <dd><code>true</code> when this device is a physical keyboard, <code>else</code> if it is a software keyboard.</dd>
             </dl>
-          </section>
-
-          <section>
-            <h4>The <a>Camera</a> Property</h4>
-            <p>This property exposes the cameras connected to this system. It is <a>enumerable</a>.</p>
-            <dl title="interface Camera : SystemProperty" class="idl">
+            
+            <p>The <a>Camera</a> interface describes a cameras connected to this system.</p>
+            <dl title="interface Camera : InputDevice" class="idl">
               <dt>readonly attribute boolean supportsVideo</dt>
               <dd><code>true</code> when this device supports recording video, <code>else</code> otherwise.</dd>
 
@@ -1218,12 +1234,9 @@
               <dd>The maximum zoom factor of this camera. This value MUST be <code>null</code> if the camera does not have a zoom (whether physical or digital)
               <p class="issue">Use focal length instead? And shutter speed/aperture/ISO/sensor type?</p></dd>
             </dl>
-          </section>
 
-          <section>
-            <h4>The <a>Microphone</a> Property</h4>
-            <p>This property exposes the microphones connected to this system. It is <a>enumerable</a>.</p>
-            <dl title="interface Microphone : SystemProperty" class="idl">
+            <p>The <a>Microphone</a> interface describes a microphones connected to this system.</p>
+            <dl title="interface Microphone : InputDevice" class="idl">
               <dt>const unsigned short TYPE_UNKNOWN=0</dt>
               <dd><code>type</code> is set to this value when the type of this device is unknown to this API.</dd>
               <dt>const unsigned short TYPE_MICROPHONE=1</dt>
@@ -1265,16 +1278,109 @@
     <!--************************************* DCO Mapping *******************************************-->
     <section class="informative appendix">
       <h2>Mapping to the W3C Delivery Context Ontology</h2>
-      <p>The table below indicates the correspondance between this
-      specification's property and attributes, and [[DCONTOLOGY]]
-      classes and properties</p>
-      <table border="1">
-        <thead><tr><th>System Information</th><th>Delivery Context Ontology</th></tr></thead>
+      <p>The table below lists each interface or attribute described
+      in this specification, as well as the corresponding classes or
+      properties from [[DCONTOLOGY]], if it exists.</p>
+
+      <table>
+        <thead><tr><th>System Information</th><th>Delivery Context Ontology</th><th>Notes</th></tr></thead>
         <tbody>
-          <tr><td><code>Power.level</code></td><td><code>hard:batteryLevel</code></td></tr>
-          <tr><td><code>Power.timeRemaining</code></td><td><code>hard:batteryTimeRemaining</code></td></tr>
-          <tr><td><code>Power.batteryBeingCharged</code></td><td><code>hard:batteryBeingCharged</code></td></tr>
-          <tr><td><code>Network</code></td><td><code>net:Network</code></td></tr>
+          <tr class="interface"><td><a>Power</a></td><td><a href="http://www.w3.org/TR/dcontology/hardware.html#Battery"><code>hard:Battery</code></a></td><td/></tr>
+          <tr><td>·&nbsp;<code>level</code></td><td><a href="http://www.w3.org/TR/dcontology/hardware.html#batteryLevel"><code>hard:batteryLevel</code></a></td></tr>
+          <tr><td>·&nbsp;<code>timeRemaining</code></td><td></td></tr>
+          <tr><td>·&nbsp;<code>isExternal</code></td><td></td></tr>
+          <tr><td>·&nbsp;<code>batteryBeingCharged</code></td><td><a href="http://www.w3.org/TR/dcontology/hardware.html#batteryBeingCharged"><code>hard:batteryBeingCharged</code></a></td></tr>
+
+          <tr class="interface"><td><a>CPU</a></td><td><a href="http://www.w3.org/TR/dcontology/hardware.html#CPU"><code>hard:CPU</code></a></td><td/></tr>
+          <tr><td>·&nbsp;<code>load</code></td><td></td></tr>
+
+          <tr class="interface"><td><a>Thermal</a></td><td></td><td/></tr>
+          <tr><td>·&nbsp;<code>load</code></td><td></td></tr>
+
+          <tr class="interface"><td><a>Network</a></td><td><a href="http://www.w3.org/TR/dcontology/network.html#Network"><code>net:Network</code></a></td><td/></tr>
+          <tr><td>·&nbsp;<code>currentDownloadBandwidth</code></td><td></td></tr>
+          <tr><td>·&nbsp;<code>currentDownloadBandwidth</code></td><td></td></tr>
+          <tr><td>·&nbsp;<code>currentDownloadBandwidth</code></td><td></td></tr>
+          <tr><td>·&nbsp;<code>currentUploadBandwidth</code></td><td></td></tr>
+          <tr><td>·&nbsp;<code>maxDownloadBandwidth</code></td><td></td></tr>
+          <tr><td>·&nbsp;<code>maxUploadBandwidth</code></td><td></td></tr>
+          <tr><td>·&nbsp;<code>macAddress</code></td><td></td></tr>
+          <tr><td>·&nbsp;<code>ipAddress</code></td><td></td></tr>
+
+          <tr class="interface"><td><a>WiredNetwork</a></td><td><a href="http://www.w3.org/TR/dcontology/network.html#WiredNetwork"><code>net:WiredNetwork</code></a></td><td/></tr>
+
+          <tr class="interface"><td><a>WiFiNetwork</a></td><td><a href="http://www.w3.org/TR/dcontology/network.html#WiFiNetwork"><code>net:WiFiNetwork</code></a></td><td/></tr>
+          <tr><td>·&nbsp;<code>currentSignalStrength</code></td><td></td></tr>
+          <tr><td>·&nbsp;<code>SSID</code></td><td><a href="http://www.w3.org/TR/dcontology/network.html#ssid"><code>net:ssid</code></a></td></tr>
+
+          <tr class="interface"><td><a>PLMNetwork</a></td><td><a href="http://www.w3.org/TR/dcontology/network.html#PLMNetwork"><code>net:PLMNetwork</code></a></td><td/></tr>
+          <tr><td>·&nbsp;<code>currentSignalStrength</code></td><td></td></tr>
+          <tr><td>·&nbsp;<code>apn</code></td><td></td></tr>
+          <tr><td>·&nbsp;<code>operatorName</code></td><td></td></tr>
+          <tr><td>·&nbsp;<code>roaming</code></td><td></td></tr>
+          <tr><td>·&nbsp;<code>mcc</code></td><td><a href="http://www.w3.org/TR/dcontology/network.html#mcc"><code>net:mcc</code></a></td></tr>
+          <tr><td>·&nbsp;<code>mnc</code></td><td><a href="http://www.w3.org/TR/dcontology/network.html#mnc"><code>net:mnc</code></a></td></tr>
+
+          <tr class="interface"><td><code>Sensor</code></td><td></td><td/></tr>
+
+          <tr class="interface"><td><code>AVCodec</code></td><td></td><td/></tr>
+          <tr class="interface"><td><code>AudioCodec</code></td><td></td><td/></tr>
+          <tr class="interface"><td><code>VideoCodec</code></td><td></td><td/></tr>
+          <tr class="interface"><td><code>VideoProfile</code></td><td></td><td/></tr>
+          <tr class="interface"><td><code>FrameType</code></td><td></td><td/></tr>
+          <tr class="interface"><td><code>RateControl</code></td><td></td><td/></tr>
+
+          <tr class="interface"><td><code>StorageUnit</code></td><td></td><td/></tr>
+
+          <tr class="interface"><td><code>OuputDevice</code></td><td><a href="http://www.w3.org/TR/dcontology/hardware.html#OutputDevice"><code>hard:OutputDevice</code></a></td><td/></tr>
+
+          <tr class="interface"><td><code>Display</code></td><td><a href="http://www.w3.org/TR/dcontology/hardware.html#Display"><code>hard:Display</code></a></td><td>TODO: Display inherits also from CSSOM's screen</td></tr>
+          <tr><td>·&nbsp;<code>orientation</code></td><td><a href="http://www.w3.org/TR/dcontology/hardware.html#currentOrientation"><code>hard:currentOrientation</code></a></td></tr>
+          <tr><td>·&nbsp;<code>brightness</code></td><td></td></tr>
+          <tr><td>·&nbsp;<code>contrast</code></td><td></td></tr>
+          <tr><td>·&nbsp;<code>blanked</code></td><td></td></tr>
+          <tr><td>·&nbsp;<code>dotsPerInchW</code></td><td></td></tr>
+          <tr><td>·&nbsp;<code>dotsPerInchH</code></td><td></td></tr>
+          <tr><td>·&nbsp;<code>physicalWidth</code></td><td><a href="http://www.w3.org/TR/dcontology/hardware.html#width"><code>hard:width</code></a></td><td><code>hard:width</code> applies to any physical object, not just displays</td></tr>
+          <tr><td>·&nbsp;<code>physicalHeight</code></td><td><a href="http://www.w3.org/TR/dcontology/hardware.html#height"><code>hard:height</code></a></td><td><code>hard:height</code> applies to any physical object, not just displays</td></tr>
+
+<!--
+  readonly attribute float innerWidth;
+  readonly attribute float innerHeight;
+  readonly attribute float outerWidth;
+  readonly attribute float outerHeight;
+  readonly attribute float pageXOffset;
+  readonly attribute float pageYOffset;
+  readonly attribute float screenX;
+  readonly attribute float screenY;
+  readonly attribute Media media;
+  readonly attribute Screen screen;
+-->
+
+          <tr class="interface"><td><code>Speaker</code></td><td><a href="http://www.w3.org/TR/dcontology/hardware.html#OutputDevice"><code>hard:OutputDevice</code></a></td><td/></tr>
+          <tr><td>·&nbsp;<code>type</code></td><td></td></tr>
+          <tr><td>·&nbsp;<code>freqRangeLow</code></td><td></td></tr>
+          <tr><td>·&nbsp;<code>freqRangeHigh</code></td><td></td></tr>
+          <tr><td>·&nbsp;<code>volumeLevel</code></td><td><a href="http://www.w3.org/TR/dcontology/hardware.html#volumeLevel"><code>hard:volumeLevel</code></a></td></tr>
+
+          <tr class="interface"><td><code>InputDevice</code></td><td><a href="http://www.w3.org/TR/dcontology/hardware.html#InputDevice"><code>hard:InputDevice</code></a></td><td/></tr>
+          <tr class="interface"><td><code>Camera</code></td><td><a href="http://www.w3.org/TR/dcontology/hardware.html#Camera"><code>hard:Camera</code></a></td><td/></tr>
+          <tr><td>·&nbsp;<code>supportsVideo</code></td><td></td></tr>
+          <tr><td>·&nbsp;<code>sensorPixels</code></td><td></td></tr>
+          <tr><td>·&nbsp;<code>hasFlash</code></td><td></td></tr>
+          <tr><td>·&nbsp;<code>maxZoomFactors</code></td><td></td></tr>
+
+          <tr class="interface"><td><code>Keyboard</code></td><td><a href="http://www.w3.org/TR/dcontology/hardware.html#Keyboard"><code>hard:Keyboard</code></a></td><td/></tr>
+          <tr><td>·&nbsp;<code>type</code></td><td></td></tr>
+          <tr><td>·&nbsp;<code>isHardware</code></td><td></td></tr>
+
+          <tr class="interface"><td><code>Microphone</code></td><td><a href="http://www.w3.org/TR/dcontology/hardware.html#Microphone"><code>hard:Microphone</code></a></td><td/></tr>
+          <tr><td>·&nbsp;<code>type</code></td><td></td></tr>
+          <tr><td>·&nbsp;<code>freqRangeLow</code></td><td></td></tr>
+          <tr><td>·&nbsp;<code>freqRangeHigh</code></td><td></td></tr>
+
+          <tr class="interface"><td><code>PointingDevice</code></td><td></td><td>[[DCONTOLOGY]] has <code>hard:tactileDisplay</code> but only covers touchScreen, mice and styluses are normative instances of <code>hard:inputDevice</code></td></tr>
+
         </tbody>
       </table>
     </section>

Received on Friday, 5 March 2010 15:11:12 UTC