Copyright © 1999 W3C
(MIT,
INRIA,
Keio), All Rights Reserved. W3C
liability,
trademark,
document
use and
software
licensing rules apply.
This document, part of the P3P specification, specifies the names of base P3P data elements, sets, and their data types.
This is a subspecification of the P3P 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 © 1999 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.
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 HTTP. data set includes elements from the HTTP protocol fields.
HTTP. | Category | Type | Short display name |
HTTP.Referrer | Navigation and Click-stream Data | URI | Where the user were last |
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.
Note another element in the HTTP. data set is present (namely, HTTP.Log_). Being an abstract element, it is explained in Section 3.
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 |
Contact. | User's Home Contact Information |
Business. | Physical Contact Information, Online Contact Information, Demographic and SocioEconomic Data |
Contact. | User's Business Contact Information |
BillTo. | Physical Contact Information, Online Contact Information, Demographic and SocioEconomic Data |
Contact. | User's Billing Address |
ShipTo. | Physical Contact Information, Online Contact Information, Demographic and SocioEconomic Data |
Contact. | 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 Contact. 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.
Contact. | 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 online 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". |
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_ | Navigation and Click-stream Data, * | Boolean | Click-stream collected on the server |
Cookies_ | * | Boolean | Cookies are processed (read/write) |
HTTP.Log_ | Computer Information | Boolean | Server stores the HTTP Logs |
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 example, 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.
<PROP xmlns="http://www.w3.org/TR/1999/WD-P3P-19990407/"
xmlns:VOC="http://www.w3.org/TR/1999/WD-P3P-19990407/vocab"
xmlns:DATA="http://www.w3.org/TR/1999/WD-P3P-19990407/basedata">
<USES><STATEMENT>
<DATA:REF name="Date.Year" type="Number" VOC:category="7" size="6"
short="Year" template="1"/>
<DATA:REF name="Date.Month" type="Number" VOC:category="7" size="2"
short="Month" template="1"/>
<DATA:REF name="Date.Day" type="Number" VOC:category="7" size="2" short="Day"
template="1"/>
<DATA:REF name="Date.Hour" type="Number" VOC:category="7" size="2"
short="Hour" template="1"/>
<DATA:REF name="Date.Minute" type="Number" VOC:category="7" size="2"
short="Minutes" template="1"/>
<DATA:REF name="Date.Second" type="Number" VOC:category="7" size="2"
short="Second" template="1"/>
<DATA:REF name="Date.FractionSecond" type="Number" VOC:category="7" size="6"
short="Fraction of Second" template="1"/>
<DATA:REF name="Date.TimeZone" type="Text" VOC:category="7" size="10"
short="Time Zone" template="1"/>
<DATA:REF name="PersonName.Prefix" type="Text" VOC:category="7" short="Name
Prefix" template="1"/>
<DATA:REF name="PersonName.First" type="Text" VOC:category="0" short="First
Name" template="1"/>
<DATA:REF name="PersonName.Last" type="Text" VOC:category="0" short="Last
Name" template="1"/>
<DATA:REF name="PersonName.Middle" type="Text" VOC:category="0" short="Middle
Name" template="1"/>
<DATA:REF name="PersonName.Suffix" type="Text" VOC:category="7" short="Name
Suffix" template="1"/>
<DATA:REF name="PersonName.Formatted" type="Text" VOC:category="0,7"
short="Formatted Name" template="1"/>
<DATA:REF name="PersonName.Nickname" type="Text" VOC:category="7"
short="Nickname" template="1"/>
<DATA:REF name="PhoneNum.IntCode" type="Number" VOC:category="0" size="11"
short="International Phone Code" template="1"/>
<DATA:REF name="PhoneNum.LocCode" type="Number" VOC:category="0" size="11"
short="Local Phone Area Code" template="1"/>
<DATA:REF name="PhoneNum.Number" type="Number" VOC:category="0" size="30"
short="Phone Number" template="1"/>
<DATA:REF name="PhoneNum.Ext" type="Number" VOC:category="0" size="11"
short="Phone Extension" template="1"/>
<DATA:REF name="PhoneNum.Comment" type="Text" VOC:category="0" short="Phone
Optional Comments" template="1"/>
<DATA:REF name="Contact.Postal." type="Postal." VOC:category="0,7"
short="Postal Address Information" template="1"/>
<DATA:REF name="Contact.Telecom." type="Telecom." VOC:category="0"
short="Telecommunications Information" template="1"/>
<DATA:REF name="Contact.Online." type="Online." VOC:category="1" short="Online
Address Information" template="1"/>
<DATA:REF name="Postal.Name." type="PersonName." VOC:category="0,7"
short="Name" template="1"/>
<DATA:REF name="Postal.Street" type="Text" VOC:category="0" short="Street
Address" template="1"/>
<DATA:REF name="Postal.City" type="Text" VOC:category="0" short="City"
template="1"/>
<DATA:REF name="Postal.StateProv" type="Text" VOC:category="0" short="State
or Province" template="1"/>
<DATA:REF name="Postal.PostalCode" type="Text" VOC:category="7" short="Postal
Code" template="1"/>
<DATA:REF name="Postal.Formatted" type="Text" VOC:category="0,7"
short="Formatted Postal Address" template="1"/>
<DATA:REF name="Postal.Country" type="Text" VOC:category="7" short="Country
Name" template="1"/>
<DATA:REF name="Postal.CountryCode" type="Country" VOC:category="7" size="2"
short="Country Code" template="1"/>
<DATA:REF name="Telecom.Phone" type="PhoneNum." VOC:category="0" short="Phone
Number" template="1"/>
<DATA:REF name="Telecom.Fax" type="PhoneNum." VOC:category="0" short="Fax
Number" template="1"/>
<DATA:REF name="Telecom.Mobile" type="PhoneNum." VOC:category="0"
short="Mobile Phone Number" template="1"/>
<DATA:REF name="Telecom.Pager" type="PhoneNum." VOC:category="0" short="Pagerg
Number" template="1"/>
<DATA:REF name="Online.Email" type="Text" VOC:category="1 short="Email
Address" template="1"/>
<DATA:REF name="Online.URI" type="URI" VOC:category="1" short="Home Page
Address" template="1"/>
<DATA:REF name="ClickStream.Client_" type="Boolean" VOC:category="5"
short="Click-stream collected on the client"/>
<DATA:REF name="ClickStream.Server_" type="Boolean" VOC:category="5"
short="Click-stream collected on the server"/>
<DATA:REF name="Cookies_" type="Boolean" VOC:category="4" short="Cookies
are processed (read/write)"/>
<DATA:REF name="HTTP.Log_" type="Boolean" VOC:category="4" short="Server
stores the HTTP Logs"/>
<DATA:REF name="StoreNegotiation_" type="Boolean" VOC:category="6"
short="Server stores the negotiation history"/>
<DATA:REF name="Form.Data_" type="Boolean" VOC:category="6" short="Data
entered through forms"/>
<DATA:REF name="Form.SearchText_" type="Boolean" VOC:category="6"
short="Search terms"/>
<DATA:REF name="HTTP.Referrer" type="URI" VOC:category="5" short="Where
the user was last"/>
<DATA:REF name="User.Name." type="PersonName." VOC:category="0,7"
short="User's Name"/>
<DATA:REF name="User.Bdate." type="Date." VOC:category="7" short="User's
Birth Date"/>
<DATA:REF name="User.Cert" type="Text" VOC:category="2" short="User's
Identity Certificate"/>
<DATA:REF name="User.Gender" type="Gender" VOC:category="7" short="User's
Gender"/>
<DATA:REF name="User.JobTitle" type="Text" VOC:category="7" short="User's
Job Title"/>
<DATA:REF name="User.Home." type="Contact." VOC:category="0,1,7" short="User's
Home Contact Information"/>
<DATA:REF name="User.Business." type="Contact." VOC:category="0,1,7"
short="User's Business Contact Information"/>
<DATA:REF name="User.BillTo." type="Contact." VOC:category="0,1,7"
short="User's Billing Address"/>
<DATA:REF name="User.ShipTo." type="Contact." VOC:category="0,1,7"
short="User's Shipping Address"/>
<DATA:REF name="User.Employer" type="Text" VOC:category="7" short="Name
of User's Employer"/>
<DATA:REF name="User.Department" type="Text" VOC:category="7"
short="Department or division of organization where user is
employed"/>
</STATEMENT></USES></PROP>