- From: CVS User rfieldin <cvsmail@w3.org>
- Date: Tue, 10 Feb 2015 19:36:19 +0000
- To: public-tracking-commit@w3.org
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> = <name-separator (:), as defined in [RFC7159]>
-<dfn>vs</dfn> = <value-separator (,), as defined in [RFC7159]>
-
-<dfn>begin-array</dfn> = <begin-array ([), as defined in [RFC7159]>
-<dfn>end-array</dfn> = <end-array (]), as defined in [RFC7159]>
-<dfn>begin-object</dfn> = <begin-object ({), as defined in [RFC7159]>
-<dfn>end-object</dfn> = <end-object (}), as defined in [RFC7159]>
-
-<dfn>object</dfn> = <object, as defined in [RFC7159]>
-<dfn>string</dfn> = <string, as defined in [RFC7159]>
-<dfn>true</dfn> = <true, as defined in [RFC7159]>
-<dfn>false</dfn> = <false, as defined in [RFC7159]>
-<dfn>null</dfn> = <null, as defined in [RFC7159]>
- </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