This is a subspecification of the P3P1.0 specification for review by W3C members and other interested parties. This document has been produced as part of the P3P Activity, and will eventually be advanced toward W3C Recommendation status. It is inappropriate to use W3C Working Drafts as reference material or to cite them as other than "work in progress." The underlying concepts of the draft are fairly stable and we encourage the development of experimental implementations and prototypes so as to provide feedback on the specification. However, this Working Group will not allow early implementations to affect their ability to make changes to future versions of this document.
This draft document will be considered by W3C and its members according to W3C process. This document is made public for the purpose of receiving comments that inform the W3C membership and staff on issues likely to affect the implementation, acceptance, and adoption of P3P.
Send comments to www-p3p-public-comments@w3.org (archived at http://lists.w3.org/Archives/Public/www-p3p-public-comments/).
___
Copyright © 1998 W3C (MIT, INRIA, Keio), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply.
The following are the base data elements and sets. These data elements and
sets (as named) may not be modified or deleted by either the service or the
user agent. However the user can provide any arbitrary value. For instance
the agent may return no value or a value that differs depending on the active
persona. We expect that in the future, there will be demand for the creation
of other data sets and elements. Obvious applications include catalogue,
payment, and agent/system attribute schemas. (An extensive set of system
elements is provided in a white paper
draft (W3C Member only)
and are based on
http://www.w3.org/TR/NOTE-agent-attributes.)
Each table below specifies a set, the elements within the
set, the category associated with the element, its type, and the display
name shown to users. More than one category may be associated with an element.
However, we have designed the base categories such that the base elements
do no overlap or belong to more than one category when possible. We recommend
that data schema designers do the same.
The ID. data set includes elements used to uniquely identify a user to a single service.
ID. | Category | Type | Short display name |
PUID | Unique Identifiers | Number | Pairwise or Site ID |
TUID | Unique Identifiers | Number | Temporary or Session ID |
HTTP.Referrer | Navigation and Click-stream Data | URI | Where the user were last |
TUIDs are used for the purpose of retaining state for a given session. PUIDs are used to retain state over multiple sessions. Neither of these terms imply that users are personally identifiable nor that they are required to share a single unique identifier with multiple sites. Rather, each ID should be unique such that if both Jane's and Adam's user agents create an ID for interaction with the VeryCool.Com site, each of their IDs will be unique at VeryCool.Com .
HTTP.Referrer is used by a service to request the HTTP referrer field. Note that HTTP agents could discontinue sending the Referrer in the HTTP headers, forcing services to specifically ask for it under P3P control. Note, this data element does not control what happens in the HTTP headers.
The User. data set includes general information about the user.
User. | Category | Type | Short display name |
Name. | Physical Contact Information, Demographic and SocioEconomic Data | PersonName. | User's Name |
Bdate. | Demographic and SocioEconomic Data | Date. | User's Birth Date |
Cert | Unique Identifiers | Text | User's Identity Certificate |
Gender | Demographic and SocioEconomic Data | Gender | User's Gender |
Employer | Demographic and SocioEconomic Data | Text | User's Employer |
Department | Demographic and SocioEconomic Data | Text | Department or division of organization where user is employed |
JobTitle | Demographic and SocioEconomic Data | Text | User's Job Title |
Home. | Physical Contact Information, Online Contact Information, Demographic and SocioEconomic Data |
Info. | User's Home Contact Information |
Business. | Physical Contact Information, Online Contact Information, Demographic and SocioEconomic Data |
Info. | User's Business Contact Information |
BillTo. | Physical Contact Information, Online Contact Information, Demographic and SocioEconomic Data |
Info. | User's Billing Address |
ShipTo. | Physical Contact Information, Online Contact Information, Demographic and SocioEconomic Data |
Info. | User's Shipping Address |
Note, that this data set includes elements that are actually sets of data themselves. These sets are defined in the data types subsection of this document. The short display name for an individual element contained within a data set is defined as the concatenation of the short display names that have been defined for the set and the element, separated by commas. For example, the short display name for User.Home.Postal.PostalCode would be "User's Home Contact Information, Postal Address Information, Postal Code". User agent implementations may prefer to develop their own short display names rather than using the concatenated names when prompting users for information.
The Date. type is a structured type that specifies a date.
Date. | Category | Type | Short display name |
Year | Demographic and SocioEconomic Data | Number | Year |
Month | Demographic and SocioEconomic Data | Number | Month |
Day | Demographic and SocioEconomic Data | Number | Day |
Hour | Demographic and SocioEconomic Data | Number | Hour |
Minute | Demographic and SocioEconomic Data | Number | Minute |
Second | Demographic and SocioEconomic Data | Number | Second |
FractionSecond | Demographic and SocioEconomic Data | Number | Fraction of Second |
TimeZone | Demographic and SocioEconomic Data | Text | Time Zone |
All the fields in the Date. type correspond to those in the most informative profile of the time standard ISO8601.
The PersonName. type is a structured type that specifies information about the naming of a person.
PersonName. | Category | Type | Short display name |
Prefix | Demographic and SocioEconomic Data | Text | Name Prefix |
First | Physical Contact Information | Text | First Name |
Last | Physical Contact Information | Text | Last Name |
Middle | Physical Contact Information | Text | Middle Name |
Suffix | Demographic and SocioEconomic Data | Text | Name Suffix |
Formatted | Physical Contact Information, Demographic and SocioEconomic Data | Text | Formatted Name |
Nickname | Demographic and SocioEconomic Data | Text | Nickname |
The PhoneNum. type is a structured type that specifies the characteristics of a phone number.
PhoneNum. | Category | Type | Short display name |
IntCode | Physical Contact Information | Number | International Phone Code |
LocCode | Physical Contact Information | Number | Local Phone Area Code |
Number | Physical Contact Information | Number | Phone Number |
Ext | Physical Contact Information | Number | Phone Extension |
Comment | Physical Contact Information | Text | Phone Optional Comments |
The Info. type is a structured, redirected, type to other types. This is done so that requests for data need not collect information they do not need even if they wish to use the abbreviate set notation in a request.
Info. | Category | Type | Short display name |
Postal. | Physical Contact Information, Demographic and SocioEconomic Data | Postal. | Postal Address Information |
Telecom. | Physical Contact Information | Telecom. | Telecommunications Information |
Online. | Online Contact Information | Online. | Online Address Information |
The Postal. type is a structured type that specifies a postal mailing
address.
Postal. | Category | Type | Short display name |
Name. | Physical Contact Information, Demographic and SocioEconomic Data | PersonName. | Name |
Street | Physical Contact Information | Text | Street Address |
City | Physical Contact Information | Text | City |
StateProv | Physical Contact Information | Text | State or Province |
PostalCode | Demographic and SocioEconomic Data | Text | Postal Code |
CountryCode | Demographic and SocioEconomic Data | Country | Country Code |
Country | Demographic and SocioEconomic Data | Text | Country Name |
Formatted | Demographic and SocioEconomic Data | Text | Formatted Postal Address |
The Telecom. type is a structured type that specifies telecommunication information about a person.
Telecom. | Category | Type | Short display name |
Phone | Physical Contact Information | PhoneNum. | Phone Number |
Fax | Physical Contact Information | PhoneNum. | Fax Number |
Mobile | Physical Contact Information | PhoneNum. | Mobile Phone Number |
Pager | Physical Contact Information | PhoneNum. | Pager Number |
The Online. type is a structured type that specifies telecommunication information about a person.
Online. | Category | Type | Short display name |
Online Contact Information | Text | Email Address | |
URI | Online Contact Information | URI | Home Page Address |
This specification uses the following primitive data element
datatypes, we reference specifications in
keeping with [XML1.0],
[HTTP1.1],
and [XML-Data] as ordered.
Primitive DataType | Definition |
Text | [UTF-8] |
Gender | "M" or "F". |
Boolean | "0" or "1". |
Binary | Base64 per RFC-1531. [[MIME]] |
Number | Text composed with the digits "0", "1", "2", "3", "4", "5", "6", "7", "8", "9". |
UUID | [UUID] |
Country | [ISO3166] |
URI | [URI] |
In some cases, there is a need to specify data elements that do not have associated data values (e.g., when a service wishes to declare it keeps HTTP logs) We call such special elements abstract. When abstract elements appear within the same statement as other elements, this asserts that non-enumerated data is collected in addition to the specified elements. Abstract elements are syntactically distinguished by the fact their name ends with an underscore "_".
The abstract elements below allow a service to declare the collection of data by means other than a request for a specific P3P data element and P3P transfer.
Category | Type | Short display name | |
ClickStream.Client_ | Navigation and Click-stream Data, * | Boolean | Click-stream collected on the client |
ClickStream.Server_ |
|
Boolean | Click-stream collected on the server |
HTTP.Log_ | Computer Information | Boolean | Server stores the HTTP Logs |
StoreNegotiation_ | Interactive Data | Boolean | Server stores the negotiation history |
Form.Data_ | * | Boolean | Data entered through forms |
Form.SearchText_ | InteractiveData | Boolean | Search terms |
The "*" in the category means multiple categories could apply. For instance, "Navigation and Click-stream Data, *" means that at least the "Navigational Data" category as defined by the Vocabulary applies, but perhaps other categories as well. (For instance, they use the information to derive a users' food preferences from browsing a Cookbook site.)
These elements are often implicit in navigation or Web interactions. They should be used with categories to describe the type of information collected through these methods. "Form.Data_" references information not enumerated with a specific data element by which are collected by the service, such as through HTML forms or Java(script) interfaces. (Note, this is different from the source attribute which states the way in which the user should be prompted.) "Form.SearchText_" is a specific type of form solicitation used for searching and indexing sites. Consequently, if the only form fields on a search engine page are search fields, it need only disclose that data element.
In the following, we show the data schema corresponding to the P3P base data set.
<P3P xmlns="http://www.w3.org/TR/1998/WD-P3P-19981109/"
xmlns:VOC="http://www.w3.org/TR/1998/WD-P3P-19981109/vocab"
xmlns:DATA="http://www.w3.org/TR/1998/WD-P3P-19981109/basedata">
<STATES>
<PROP>
<USES><STATEMENT>
<WITH><DATA:PREFIX template="1">
<WITH><DATA:PREFIX name="Date." VOC:category="7">
<WITH><DATA:PREFIX type="Number">
<DATA:REF name="Year" size="6" short="Year"/>
<DATA:REF name="Month" size="2" short="Month"/>
<DATA:REF name="Day" size="2" short="Day"/>
<DATA:REF name="Hour" size="2" short="Hour"/>
<DATA:REF name="Minute" size="2" short="Minutes"/>
<DATA:REF name="Second" size="2" short="Second"/>
<DATA:REF name="FractionSecond" size="6" short="Fraction
of Second"/>
</DATA:PREFIX></WITH>
<DATA:REF name="TimeZone" type="Text" size="10" short="Time
Zone"/>
</DATA:PREFIX></WITH>
<WITH><DATA:PREFIX name="PersonName." type="Text">
<DATA:REF name="Prefix" VOC:category="7" short="Name
Prefix"/>
<DATA:REF name="First" VOC:category="0" short="First
Name"/>
<DATA:REF name="Last" VOC:category="0" short="Last
Name"/>
<DATA:REF name="Middle" VOC:category="0" short="Middle
Name"/>
<DATA:REF name="Suffix" VOC:category="7" short="Name
Suffix"/>
<DATA:REF name="Formatted" VOC:category="0,7" short="Formatted
Name"/>
<DATA:REF name="Nickname" VOC:category="7"
short="Nickname"/>
</DATA:PREFIX></WITH>
<WITH><DATA:PREFIX name="PhoneNum." VOC:category="0">
<WITH><DATA:PREFIX type="Number">
<DATA:REF name="IntCode" size="11" short="International
Phone Code"/>
<DATA:REF name="LocCode" size="11" short="Local Phone Area
Code"/>
<DATA:REF name="Number" size="30" short="Phone
Number"/>
<DATA:REF name="Ext" size="11" short="Phone
Extension"/>
</DATA:PREFIX></WITH>
<DATA:REF name="Comment" type="Text" short="Phone Optional
Comments"/>
</DATA:PREFIX></WITH>
<WITH><DATA:PREFIX name="Info.">
<DATA:REF name="Postal." type="Postal." VOC:category="0,7"
short="Postal Address Information"/>
<DATA:REF name="Telecom." type="Telecom." VOC:category="0"
short="Telecommunications Information"/>
<DATA:REF name="Online." type="Online." VOC:category="1"
short="Online Address Information"/>
</DATA:PREFIX></WITH>
<WITH><DATA:PREFIX name="Postal.">
<DATA:REF name="Name." type="PersonName." VOC:category="0,7"
short="Name"/>
<WITH><DATA:PREFIX type="Text">
<DATA:REF name="Street" VOC:category="0" short="Street
Address"/>
<DATA:REF name="City" VOC:category="0"
short="City"/>
<DATA:REF name="StateProv" VOC:category="0" short="State
or Province"/>
<DATA:REF name="PostalCode" VOC:category="7" short="Postal
Code"/>
<DATA:REF name="Formatted" VOC:category="0,7" short="Formatted
Postal Address"/>
<DATA:REF name="Country" VOC:category="7" short="Country
Name"/>
</DATA:PREFIX></WITH>
<DATA:REF name="CountryCode" type="Country" VOC:category="7"
size="2" short="Country Code"/>
</DATA:PREFIX></WITH>
<WITH><DATA:PREFIX name="Telecom." VOC:category="0"
type="PhoneNum.">
<DATA:REF name="Phone" short="Phone Number"/>
<DATA:REF name="Fax" short="Fax Number"/>
<DATA:REF name="Mobile" short="Mobile Phone Number"/>
<DATA:REF name="Pager" short="Pager Number"/>
</DATA:PREFIX></WITH>
<WITH></DATA:PREFIX name="Online." VOC:category="1">
<DATA:REF name="Email" type="Text" short="Email
Address"/>
<DATA:REF name="URI" type="URI" short="Home Page
Address"/>
</DATA:PREFIX></WITH>
</DATA:PREFIX></WITH>
<WITH><DATA:PREFIX type="Boolean">
<WITH><DATA:PREFIX name="ClickStream.">
<DATA:REF name="Client_" VOC:category="5" short="Click-stream
collected on the client"/>
<DATA:REF name="Server_" VOC:category="5" short="Click-stream
collected on the server"/>
</DATA:PREFIX></WITH>
<DATA:REF name="HTTP.Log_" VOC:category="4" short="Server stores
the HTTP Logs"/>
<DATA:REF name="StoreNegotiation_" VOC:category="6" short="Server
stores the negotiation history"/>
<WITH><DATA:PREFIX name="Form."/>
<DATA:REF name="Data_" VOC:category="6" short="Data entered
through forms"/>
<DATA:REF name="SearchText_" VOC:category="6" short="Search
terms"/>
</DATA:PREFIX></WITH>
</DATA:PREFIX></WITH>
<WITH><DATA:PREFIX name="ID.">
<DATA:REF name="PUID" type="Number" VOC:category="2" short="Pairwise
or Site ID"/>
<DATA:REF name="TUID" type="Number" VOC:category="2" short="Temporary
or Session ID"/>
<DATA:REF name="HTTP.Referrer" type="URI" VOC:category="5" short="Where
the user was last"/>
</DATA:PREFIX></WITH>
<WITH><PREFIX name="User.">
<WITH><PREFIX short="User's ">
<DATA:REF name="Name." VOC:category="0,7" type="PersonName."
short="Name"/>
<DATA:REF name="Bdate." VOC:category="7" type="Date." short="Birth
Date"/>
<DATA:REF name="Cert" VOC:category="2" type="Text" short="Identity
Certificate"/>
<DATA:REF name="Gender" VOC:category="7" type="Gender"
short="Gender"/>
<DATA:REF name="JobTitle" VOC:category="7" type="Text" short="Job
Title"/>
<WITH><DATA:PREFIX type="Info." VOC:category="0,1,7">
<DATA:REF name="Home." short="Home Contact
Information"/>
<DATA:REF name="Business." short="Business Contact
Information"/>
<DATA:REF name="BillTo." short="Billing Address"/>
<DATA:REF name="ShipTo." short="Shipping Address"/>
</DATA:PREFIX></WITH>
</DATA:PREFIX></WITH>
<DATA:REF name="Employer" VOC:category="7" type="Text" short="Name
of User's Employer"/>
<DATA:REF name="Department" VOC:category="7" type="Text"
short="Department or division of organization where user is
employed"/>
</DATA:PREFIX></WITH>
</STATEMENT></USES></PROP></STATES></P3P>