CVS WWW/2011/tracking-protection/drafts

Update of /w3ccvs/WWW/2011/tracking-protection/drafts
In directory gil:/tmp/cvs-serv18786

Modified Files:
	tracking-dnt.html 
Log Message:
ISSUE-257: replace the ABNF definition of the tracking status object representation with more JSON-friendly definition by reference to the new JSON RFC and a non-normative Orderly schema

--- /w3ccvs/WWW/2011/tracking-protection/drafts/tracking-dnt.html	2015/02/03 00:32:19	1.278
+++ /w3ccvs/WWW/2011/tracking-protection/drafts/tracking-dnt.html	2015/02/10 19:36:19	1.279
@@ -33,6 +33,12 @@
           "title"  : "Tracking Compliance and Scope",
           "date"   : "08 May 2014",
           "publisher" : "W3C"
+        },
+        "Orderly": {
+          "authors": ["Lloyd Hilaiel"],
+          "href"   : "http://orderly-json.org/",
+          "title"  : "Orderly JSON",
+          "date"   : "10 Feb 2015"
         }
       },
       noIDLSectionTitle: true
@@ -122,7 +128,7 @@
       </p>
       <p>
         Users need a mechanism to express their own preferences regarding
-        tracking that is both simple to configure and efficient when
+        <a>tracking</a> that is both simple to configure and efficient when
         implemented. However, merely expressing a preference does not imply
         that all recipients will be able to comply. In some cases, a server
         might be dependent on some forms of tracking and is unwilling or
@@ -888,7 +894,7 @@
             the scope of this specification, that have the effect of asking
             for and obtaining prior consent for tracking, or for modifying
             prior indications of consent.  For example, the tracking status
-            resource's status-object defines a <code><a>config</a></code>
+            resource's status object defines a <code><a>config</a></code>
             property that can refer to such a mechanism. Although such
             out-of-band mechanisms are not defined by this specification,
             their presence might influence the tracking status object's
@@ -1064,10 +1070,8 @@
           For each tracking status resource, an origin server MUST provide a
           valid representation using the
           <code>application/tracking-status+json</code> media type.
-          This media type is defined as a JSON format [[!RFC7159]] that
-          conforms to the ABNF for <code><a>status-object</a></code> (below)
-          except that the properties within a property-list can be provided in
-          any order. More information about the
+          This media type consists of a <code><a>status object</a></code>
+          serialized as JSON [[!RFC7159]]. More information about the
           <code>application/tracking-status+json</code> media type can be
           found in <a href="#registrations" class="sectionRef"></a>.
         </p>
@@ -1076,26 +1080,27 @@
           <h4>Status Object</h4>
           <p>
             A tracking status representation consists of a single
-            <code>status-object</code> containing properties that describe
-            the tracking status applicable to the <a>designated resource</a>.
-          </p>
-          <pre class="abnf">
-<dfn>status-object</dfn> = begin-object property-list end-object
-
-<dfn>property-list</dfn> = tracking-p       ns tracking-v
-                [ vs compliance  ns compliance-v ]
-                [ vs qualifiers  ns qualifiers-v ]
-                [ vs controller  ns controller-v ]
-                [ vs same-party  ns same-party-v ]
-                [ vs audit       ns audit-v      ]
-                [ vs policy      ns policy-v     ]
-                [ vs config      ns config-v     ]
-                *( vs extension )
+            <code><dfn>status object</dfn></code> containing properties that
+            describe the tracking status applicable to the
+            <a>designated resource</a>.  Most of the properties are optional
+            and can be extended over time, as illustrated by the following
+            Orderly schema [[Orderly]]:
+          </p>
+          <pre class="orderly">
+object {
+    string tracking;                 // TSV
+    array { string; } compliance?;   // hrefs
+    string qualifiers?;              // compliance flags
+    array { string; } controller?;   // hrefs
+    array { string; } same-party?;   // domains
+    array { string; } audit?;        // hrefs
+    string policy?;                  // href
+    string config?;                  // href
+}*;
           </pre>
         <p>
-          The following example tracking status representation illustrates a
-          status object with all of the properties defined by this
-          specification, most of which are optional.
+          The following example representation demonstrates a status object
+          with all of the properties defined by this specification.
         </p>
 <pre class="example">
 {
@@ -1120,16 +1125,12 @@
         <section id='rep.tracking'>
           <h4>Tracking Property</h4>
           <p>
-            A <code><a>status-object</a></code> always has a property named
+            A <code><a>status object</a></code> MUST have a property named
             <code>tracking</code> with a string value containing
             the tracking status value
             (<a href="#tracking-status-value" class="sectionRef"></a>)
             applicable to the <a>designated resource</a>.
           </p>
-          <pre class="abnf">
-<dfn>tracking-p</dfn>    = %x22 "tracking" %x22
-<dfn>tracking-v</dfn>    = %x22 TSV %x22
-          </pre>
           <p>
             For example, the following demonstrates a minimal tracking status
             representation that is applicable to any resource that does not
@@ -1144,7 +1145,7 @@
           <h4>Compliance Property</h4>
           <p>
             An origin server MAY send a property named
-            <code>compliance</code> with an array value containing
+            <code><dfn>compliance</dfn></code> with an array value containing
             a list of URI references that identify specific regimes to which
             the origin server claims to comply for the designated resource.
             Communicating such a claim of compliance is presumed to improve
@@ -1152,17 +1153,13 @@
             configurations regarding allowed tracking, but does not have any
             direct impact on this protocol.
           </p>
-          <pre class="abnf">
-<dfn>compliance</dfn>    = %x22 "compliance" %x22
-<dfn>compliance-v</dfn>  = array-of-refs
-          </pre>
         </section>
 
         <section id='rep.qualifiers'>
           <h4>Qualifiers Property</h4>
           <p>
-            An origin server MAY send a
-            property named <code>qualifiers</code> with a string value
+            An origin server MAY send a property named
+            <code><dfn>qualifiers</dfn></code> with a string value
             containing a sequence of case sensitive characters corresponding
             to explanations or limitations on the extent of tracking.
             Multiple qualifiers indicate that multiple explanations or forms
@@ -1170,18 +1167,13 @@
             The meaning of each qualifier is presumed to be defined by one
             or more of the regimes listed in <code><a>compliance</a></code>.
           </p>
-          <pre class="abnf">
-<dfn>qualifiers</dfn>    = %x22 "qualifiers" %x22
-<dfn>qualifiers-v</dfn>  = %x22 *qualifier %x22
-<dfn>qualifier</dfn>     = id-char
-          </pre>
         </section>
 
         <section id='rep.controller'>
           <h4>Controller Property</h4>
           <p>
             An origin server MAY send a property named
-            <code>controller</code> with an array value containing
+            <code><dfn>controller</dfn></code> with an array value containing
             a list of URI references indirectly identifying the party or
             set of parties that claims to be the responsible data controller
             for personal data collected via the designated resource. An origin
@@ -1211,10 +1203,6 @@
             minimum) the identity of the corresponding party and its data
             collection practices.
           </p>
-          <pre class="abnf">
-<dfn>controller</dfn>    = %x22 "controller" %x22
-<dfn>controller-v</dfn>  = array-of-refs
-          </pre>
         </section>
 
         <section id='rep.same-party'>
@@ -1226,7 +1214,7 @@
             their own control (i.e., share the same data controller as the
             referring site).
             An origin server MAY send a property named
-            <code>same-party</code> with an array value containing a
+            <code><dfn>same-party</dfn></code> with an array value containing a
             list of domain names that the origin server claims are the same
             party, to the extent they are referenced by the designated
             resource, if all data collected via those references share the
@@ -1241,35 +1229,27 @@
             requests to other domains that have not been claimed as same-party
             by the referring site.
           </p>
-          <pre class="abnf">
-<dfn>same-party</dfn>    = %x22 "same-party" %x22
-<dfn>same-party-v</dfn>  = array-of-refs
-          </pre>
         </section>
 
         <section id='rep.audit'>
           <h4>Audit Property</h4>
           <p>
             An origin server MAY send a property named
-            <code>audit</code> with an array value containing a list of
-            URI references to external audits of the designated resource's
-            privacy policy and tracking behavior.
+            <code><dfn>audit</dfn></code> with an array value containing a
+            list of URI references to external audits of the designated
+            resource's privacy policy and tracking behavior.
             Preferably, the audit references are to resources that describe
             the auditor and the results of that audit; however, if such a
             resource is not available, a reference to the auditor is
             sufficient.
           </p>
-          <pre class="abnf">
-<dfn>audit</dfn>         = %x22 "audit" %x22
-<dfn>audit-v</dfn>       = array-of-refs
-          </pre>
         </section>
 
         <section id='rep.policy'>
           <h4>Policy Property</h4>
           <p>
             An origin server MAY send a property named
-            <code>policy</code> with a string value containing a
+            <code><dfn>policy</dfn></code> with a string value containing a
             URI reference to a human-readable document that describes the
             relevant privacy policy for the designated resource.
             The content of such a policy document is beyond the
@@ -1279,17 +1259,13 @@
             information might be obtained via the links provided in
             <code><a>controller</a></code>.
           </p>
-          <pre class="abnf">
-<dfn>policy</dfn>        = %x22 "policy" %x22
-<dfn>policy-v</dfn>      = string       ; URI-reference
-          </pre>
         </section>
 
         <section id='rep.config'>
           <h4>Config Property</h4>
           <p>
             An origin server MAY send a property named
-            <code>config</code> with a string value containing a
+            <code><dfn>config</dfn></code> with a string value containing a
             URI reference to a resource for giving the user control over
             personal data collected via the designated resource (and possibly
             other resources).
@@ -1314,39 +1290,16 @@
             information might be obtained via the links provided in
             <code><a>controller</a></code> or <code><a>policy</a></code>.
           </p>
-          <pre class="abnf">
-<dfn>config</dfn>        = %x22 "config" %x22
-<dfn>config-v</dfn>      = string       ; URI-reference
-          </pre>
         </section>
 
         <section id='rep.extension'>
           <h4>Extensions</h4>
           <p>
-            An origin server MAY send additional extension
-            properties in the <code><a>status-object</a></code> to support future
-            enhancements to this protocol. A recipient MUST ignore
-            extension properties that it does not recognize.
+            An origin server MAY send additional properties in the
+            <code><a>status object</a></code> to support future enhancements
+            to this protocol. A recipient MUST ignore extension properties
+            that it does not recognize.
           </p>
-          <pre class="abnf">
-<dfn>extension</dfn>     = object
-
-<dfn>array-of-refs</dfn> = begin-array [ string *( vs string ) ] end-array
-
-<dfn>ns</dfn>            = &lt;name-separator  (:), as defined in [RFC7159]&gt;
-<dfn>vs</dfn>            = &lt;value-separator (,), as defined in [RFC7159]&gt;
-
-<dfn>begin-array</dfn>   = &lt;begin-array     ([), as defined in [RFC7159]&gt;
-<dfn>end-array</dfn>     = &lt;end-array       (]), as defined in [RFC7159]&gt;
-<dfn>begin-object</dfn>  = &lt;begin-object    ({), as defined in [RFC7159]&gt;
-<dfn>end-object</dfn>    = &lt;end-object      (}), as defined in [RFC7159]&gt;
-
-<dfn>object</dfn>        = &lt;object, as defined in [RFC7159]&gt;
-<dfn>string</dfn>        = &lt;string, as defined in [RFC7159]&gt;
-<dfn>true</dfn>          = &lt;true,   as defined in [RFC7159]&gt;
-<dfn>false</dfn>         = &lt;false,  as defined in [RFC7159]&gt;
-<dfn>null</dfn>          = &lt;null,   as defined in [RFC7159]&gt;
-          </pre>
         </section>
       </section>
 
@@ -1408,13 +1361,13 @@
             <a>designated resource</a> by first making a retrieval request for
             the site-wide tracking status representation, as described above,
             and then parsing the representation as JSON to extract the
-            <code><a>status-object</a></code>.
+            <code><a>status object</a></code>.
             If the retrieval is unsuccessful or parsing results in a syntax
             error, the user agent ought to consider the site to be
             non-conformant with this protocol.
           </p>
           <p>
-            The <code><a>status-object</a></code> is supposed to have a property
+            The <code><a>status object</a></code> is supposed to have a property
             named <code>tracking</code> containing the tracking status
             value. The meaning of each tracking status value is defined in
             <a href="#tracking-status-value" class="sectionRef"></a>.

Received on Tuesday, 10 February 2015 19:36:22 UTC