Well, the second half of my work week ended up getting preempted by a stupid primary development workstation that decided to go kaput on me so I have not yet had the opportunity to write up the Profile media type extension spec. While I'm waiting for the last few apps to download so I can reinstall them, I figured it would at least be helpful for me to write up my thoughts and I'll get the draft published next week.

Basically, a "Profile" is going to be some kind of document that provides implementation guidelines for an Atom app. It will define a specific use of Atom along with whatever extensions, assumptions, options, etc necessary for that. For instance, one could easily imagine a "Blogging" profile for Atom that describes in detail how to use the Atom publishing protocol specifically for Weblogs, etc.

Every Profile document will be associated with an identifier. The identifier is either a short name or an IRI following the same pattern as atom:link/@rel values. However, use of the short names will be restricted and must follow a strict convention... Specifically, only Profiles published through the IETF process will be allowed short names. For a Profile published as an Internet-Draft, the profile identifier is the document name. For instance, given a theoretical draft-snell-profile-blogging-01.txt, the identifier for the Profile is "draft-snell-profile-blogging-01". For a Profile published as an RFC, the project identifier is the RFC# in the pattern "RFC####". The shortnames are always case-insensitive so "rfc9999" is equivalent to "RFC9999" or "Rfc9999", etc. For all other Profiles, the identifier is an absolute IRI that SHOULD be dereference-able to retrieve the Profile document.

In all Atom media types, the profile parameter is an optional quoted, whitespace delimited list of profile identifiers, e.g.

 application/atom+xml;
   profile="RFC9999
   draft-snell-profile-blogging-01
   http://example.org/profile/foo";

Someone looking at this media type can determine that the Atom document in question conforms to three profiles identified by "RFC999", "draft-snell-profile-blogging-01", and "http://example.org/profile/foo";. What "Conformance" means depends entirely on the profile.

The profile parameter is intended only as a hint. An application can use it to help make decisions about a linked resource, etc but the presence of a particular profile identifier in the media type does not place any obligations on the application.

As always, comments are requested and welcomed.

- James

Reply via email to