Author: Mark H. Butler mark-h_butler@hp.com

Note this document is for informational purposes only. It is not endorsed by the W3C CC/PP Working Group, Open Mobile Alliance / WAP Forum or JSR-188 Expert Group in any way. It reflects the author's experience while implementing DELI, a Java Servlet API that supports CC/PP and UAProf. Where reference is made to particular devices or manufacturers these comments have not been endorsed by the relevant manufacturers in any way, but reflect recent interoperability testing conducted by the author.

This document is being circulated in order to elicit feedback therefore comments, criticisms, suggestions are welcome.

General area of functionality

Specific area of functionality

CC/PP compatibility

UAProf compatibility

In scope of WD

Supported by DELI (Hewlett Packard)

XML Serialisation of RDF 

 

 

 

 

 

 

Is the processor fully RDF compliant?

Required

Latest version of UAProf spec forbids some abbreviated syntax. 

Yes

Yes

 

XML Serialization of RDF: support of default namespace

 Required

Yes

Yes

Yes

 

XML Serialization of RDF: use of namespace declarations for individual “Description” element

 Required

Yes

Yes

Yes

 

XML Serialization of RDF – abbreviated syntax: XML attribute notation of scalar properties

 Required

Optional

Yes

Yes

 

XML Serialization of RDF – abbreviated syntax: Nested description elements

 Required

Yes

Yes

Yes

 

XML Serialization of RDF – abbreviated syntax: Description element containing type property

 Required

Yes

Yes

Yes

 

Can the processor cope with UAProf profiles that do not qualify ID, about or resource with a namespace?

Optional

Required

No

Yes

CC/PP Profile components

 

 

 

 

 

 

Processor can retrieve component name from type statement

Required

Optional: Some UAProf processors retrieve it from ID, see below

Yes

Yes

 

If profile omits type statement, can the processor infer the component from attribute name via vocabulary information?

Optional

Found necessary in implementation

No

Yes

 

If type statement is omitted, can the processor retrieve the component from rdf:ID or rdf:about value. Note: this is incorrect use of RDF as this value is a local name not a QName.

Optional

Found necessary in implementation: several UAProf processors seem to work this way by default

No

Forthcoming

 

Can processor process components if they are associated with any CC/PP namespace?

Required

Not required

Yes

Yes

 

Can processor process components if they are associated with any appropriate non-CC/PP namespace (e.g. UAProf)

Optional

Required

No

Yes

 

Can processor process profiles that omit components altogether e.g. Trium Eclipse?

Optional

Found necessary in implementation

No

Yes

CC/PP Profile Defaults

 

 

 

 

 

 

Can processor process inline defaults?

Required

Required

Yes

Yes

 

Can processor process defaults by reference?

Required

Not required

Yes

Yes

 

Can processor process defaults regardless of whether they are written ccpp:defaults or ccpp:Defaults?

Required

Not required

Yes

Yes

 

Can processor process defaults if they are associated with any CC/PP namespace?

Required

Not required

Yes

Yes

 

Can processor process defaults if they are associated with any appropriate non-CC/PP namespace (e.g. UAProf)

Optional

Required

No

Yes

 

When retrieving values from a profile which contains both a default value and a directly applied value, does the directly applied value take precedence?

Required

Required

Yes

Yes

CC/PP proxy description

 

 

 

 

 

 

Processor supports proxyBehavior blocks

Recommended

Not required

Yes

No

 

Processor supports applicability conditionals in proxyBehavior blocks

Recommended

Not required

Yes

No

 

Processor supports proxyAllow statements in proxyBehavior blocks

Recommended

Not required

Yes

No

 

Processor supports proxyBlock statements in proxyBehavior blocks

Recommended

Not required

Yes

No

 

When retrieving values that have both a directly applied value and a proxy value via proxyBehavior, does the processor make the proxy value take precedence?

Recommended

Not required

Yes

No

Capability Chaining

 

 

 

 

 

 

Can the processor distinguish between profile, proxy-profile, request-profile, client-profile and next-profile?

Recommended

Not required

Yes

No

Extensibility and namespaces

 

 

 

 

 

 

Can processor distinguish between two CC/PP attributes that have the same name but different namespaces?

Required

Not required

Yes

Yes

 

Can the processor deal with profiles that contain multiple namespaces?

Required

Not required

Yes

Yes

 

Does the processor distinguish namespaces via URI, not via the namespace prefix?

Required

Not required

Yes

Yes

 

Can the processor load schemas "on the fly" i.e. it does not have to be configured for vocabularies in advance? (Note this is not possible for many schemas as the namespace does not necessarily contain a schema definition.)

Optional

Optional

No

No

 

Can the processor deal with any vocabulary without adding extra code?

Optional

Optional

No

Yes, if vocabulary uses UAProf resolution rules.

No, if uses other resolution rules. Need to add a class that describes resolution policy in vocabulary, or adopt UAProf resolution policy

Support for simple attributes

 

 

 

 

 

 

Can processor deal with attributes that are URIs

Recommended

Not required

Yes

No

 

Can processor deal with attributes that are Text values

Recommended

Required

Yes

Yes

 

Can processor deal with attributes that are Integer numbers

Recommended

Required

Yes

Yes

 

Can processor deal with attributes that are Rational numbers

Recommended

Required

Yes

Yes

 

Can processor deal with attributes that are Dimensions

Optional

Required

No

Yes

 

Can processor deal with attributes that are Booleans

Optional

Required

No

Yes

Support for structured attributes

 

 

 

 

 

 

Can processor deal with attributes that are set of values (Bags)

Required

Required

Yes

Yes

 

Can processor deal with attributes that are sequence of values (Seq)

Required

Required

Yes

Yes

Schema processing

 

 

 

 

 

 

Can processor process a schema definition of a vocabulary?

Optional

Optional

No

Yes

 

Can processor extract resolution rule and datatype information from the comments fields of the UAProf schema definition?

Optional

Optional

No

Yes

UAProf W-HTTP Protocol

 

 

 

 

 

 

Does the processor support reference profiles?

Optional

Required

No

Yes

 

Does the processor support profile-diffs?

Optional

Required

No

Yes

 

Does the processor support profile-diffs in the absence of reference profiles? (Note that this is improper usage according to both CCPP and UAProf specifications.)

Optional

Required

No

Yes

 

Does the processor support profile and profile-diff headers as well as x-wap-profile and x-wap-profile-diff headers?

Optional

Required for Nokia emulator compatibility

No

Yes

 

Does the processor support profile-diff digests?

Optional

Required

No

Yes

 

Does the processor support UAProf resolution rules?

Optional

Required

No

Yes

 

Does the processor read UAProf resolution rules from the Schema?

Optional

Optional

No

Yes

 

Does the processor support warning headers in HTTP responses?

Optional

Required

No

Yes

UAProf HTTP-ex Protocol

 

 

 

 

 

 

Does the processor support reference profiles?

Optional

Required

No

Yes

 

Does the processor support profile-diffs?

Optional

Required

No

Yes

 

Does the processor support profile-diffs in the absence of reference profiles?

Optional

Required for Ericsson Gateway compatibility

No

Yes

 

Does the processor support reference profiles not enclosed in quotes?

Optional

Optional - required for Openwave Gateway compatibility

No

Yes

 

Does the processor support profile-diffs not enclosed in quotes?

Optional

Optional - required for Openwave Gateway compatibility

No

Yes

 

Does the processor support profile-diff digests?

Optional

Required

No

Yes

 

Does the processor support UAProf resolution rules?

Optional

Required

No

Yes

 

Does the processor read UAProf resolution rules from the Schema?

Optional

Optional

No

Yes

 

Does the processor support optional methods (GET,POST with an OPT)?

Optional

Required

No

Yes

 

Does the processor support mandatory methods (M-GET,M-POST with a MAN)?

Optional

Required

No

No

 

Does the processor support numerical namespaces correctly i.e. will cope with any value?

Optional

Required

No

Yes

 

Does the processor support warning headers in HTTP responses?

Optional

Required

No

No

Profile Information Input Sources

 

 

 

 

 

 

Does the processor accept profile information from other input sources than HTTP requests?

Optional

Not required

No

 Yes, can load profiles via JNDI

Caching Profiles

 

 

 

 

 

 

Does the processor cache reference profiles?

Optional

Optional

No

Yes

 

Does the processor cache profile diffs?

Optional

Optional

No

 No

 

Does the processor cache profiles per request (result of reference profiles and profile-diffs?

Optional

Optional

No

No 

 

Is the cache lifetime for reference profiles adjustable?

Optional

Optional

No

Yes

Profile Matching

 

 

 

 

 

 

Does the processor provide support for comparing profiles?

Optional

Optional

No

No

 

Does the processor provide support for matching profiles with profile groups?

Optional

Optional

No

Yes: provides capability class support

Legacy Device Support

 

 

 

 

 

 

Does the processor support legacy devices by mapping user agent strings on to CC/PP profiles?

Optional

Optional

No

Yes

 

Does the processor support legacy devices by copying accept headers from HTTP request into the CC/PP profile?

Optional

Optional

No

No

 

Does the processor support legacy devices by extracting additional information from the user agent string e.g. Pocket IE adds screen size here?

Optional

Optional

No

No

 

Does the processor support legacy devices by copying Openwave headers into the CC/PP profile?

Optional

Optional

No

No

 

Does the processor support legacy devices by copy AvantGo headers into the CC/PP profile?

Optional

Optional

No

No

Profile Validation

 

 

 

 

 

 

Can the processor validate profiles against their schema?

Optional

Optional

No

 Forthcoming

Schema Support

 

 

 

 

 

 

Can the processor translate profiles of a particular schema into a profile of another schema?

Optional

Optional

No

 No

Trust model

 

 

 

 

 

 

Does the processor support the P3P extensions to CC/PP outlined in the CC/PP implementation guide?

Optional

Optional

No

No