Subject: Profile Media Type Extension

From: James M Snell <[email-masked]>
Date: Fri, 12 Jun 2009 15:52:43 -0700

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

---

From: Julian Reschke <[email-masked]>
Date: Sat, 13 Jun 2009 10:25:34 +0200

James M Snell wrote:
> ...
 > ...

I think in this is a case where you really want a URI.

> an absolute IRI that SHOULD be dereference-able to retrieve the Profile 

"SHOULD be referenceable": doesn't compute, unless you define the 
format. (It is not needed for interoperability, so doesn't deserve 
RFC2119 keywords).

You would also need to define what you mean by "IETF process". Do 
private submissions directly to the RFC Editor count?

Suggestion: just always require URIs; Internet Drafts and RFCs have a 
canonical URN through RFC2648. For instance

   urn:ietf:rfc:4287

> ...

BR, Julian