The overall structure of the Policy in the RDF model is very similar to the current P3P policy element structure defined in http://www.w3.org/TR/2000/WD-P3P-20000510/. The policy element contains access, entity, data-group(s), and disputes elements. In contrast, the p3p:policy contains a disuri element instead of an attribute of the policy. The statement elements have been removed from the policy element in favor of making RDF statements about the data-groups contained in the policy. The policy element was used as a grouping tool only. A policy contains a human readable link to a privacy policy, how can the data be accessed, which entity is associated with this policy, the data this policy covers and how disputes are handled.
The 'root' of the RDF graph.
<p3p:policy>
<p3p:disuri resource="http://www.w3.org/privacy.html" />
All of the access, disputes, remedies, purposes, recipient, retention,
categories etc., are RDF classes. Note that structures like business-info.name
etc. are both RDF classes and properties. This is needed due to the
multiple purposes of these structures.
<p3p:access><p3p:contact_and_other/></p3p:access>
The entity was embedded into the policy simply to avoid having to make
a statement about the entire policy stating that the policy was associated
with, or asserted by, a particular entity. Making a statement about
all the statements in the policy would have resulted in an enormous amount
of arcs being generated. Note that the resource associated with the
entity need not be in the same document.
<p3p:entity rdf:resource="#HIHO"/>
The data-groups contain the data that this site collects. Statements
about the purpose, retention, etc. are made later.
<p3p:data-group>
<rdf:Bag rdf:ID="DG01" >
<rdf:li><p3p:dynamic.clickstream.server/></rdf:li>
</rdf:Bag>
</p3p:data-group>
How disputes should be handled.
<p3p:disputes>
<rdf:Description rdf:ID="disputes1">
<p3p:resolution><p3p:service/></p3p:resolution>
<p3p:service resource="http://www.privacyseal.org" />
<p3p:remedies><p3p:law/></p3p:remedies>
</rdf:Description>
</p3p:disputes>
</p3p:policy>
State that the 'purpose' of all the resources in the bag DG01 is p3p:develop.
<rdf:Description rdf:aboutEach="#DG01" rdf:bagID="stmt1" >
<p3p:purpose><p3p:develop/></p3p:purpose>
</rdf:Description>
State that all the statements made in the description above, stmt1,
are asserted by the HIHO resource.
<rdf:Description rdf:aboutEach="#stmt1">
<p3p:assertedBy rdf:resource="#HIHO"/>
</rdf:Description>
Describe the HIHO resource.
<rdf:Description rdf:ID="HIHO">
<p3p:business-info.name>HiHo Doohickey</p3p:business-info.name>
</rdf:Description>
</rdf:RDF>
I will work on the schema and W3C note based on the sample above.
Any and all comments are welcomed.