- 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