Re: A content-id URL scheme

Ed writes:

> Yeah, I like your suggestion on wording.  Does this work better?
> 
>      The Uniform Resource Locator (URL) scheme, "cid", allows
>      individual entities within a multipart message body to
>      refer to one another by their content-id labels.

The problem I see is that it assumes cid's would only be used within
the same multipart entity.  I don't see any need for that restriction,
so I would prefer something like:

     The "cid" Uniform Resource Locator (URL) scheme can be used to
     identify an individual body-part within a multipart message body
     by referring to that body-part's Content-ID field.

> I could see using msg-ids to refer to other messages would you like to
> take that up?  CIDs would be real useful now, in my opinion, in the
> mimesgml work and I don't see an application for msg-id.

I see an application for both, but do not have a need (and the time)
to define both now.  Your draft will do quite well for cid's.

>> ... cid URLs should be capable of referencing
>> any possible Content-ID.  Any characters that are not allowed in a URL can
>> be escaped using the %hex encoding method.
> 
> I agree, using escapes make sense.  Why not use the general syntax from
> 1521/822 and have the following?
> 
> 	cidurl   = "cid" ":" cid-spec
> 	cid-spec = addr-spec		; RFC 822, globally unique

Because that BNF would allow illegal characters in the URL.  The long BNF
I suggested is the same syntax, but replaces all illegal characters with
their hex equivalents.  The following BNF is better, IMHO, because it
is simple and represents a safe superset of any possible Content-ID.

   ----------------------------------------------------------------------
   cidurl      = "cid" ":" cid-spec

   cid-spec    =  local-part "@" domain        ; globally unique

   local-part  =  1*cidchar
   domain      =  1*cidchar

   cidchar     =  uchar | ";" | "/" | "?" | ":" | "&" | "="
   uchar       =  <as defined in RFC 1738>
   ----------------------------------------------------------------------

However, you may want to replace "cid-spec" and "cidchar" with
"addr-spec" and "addrchar", and then the production can be reused to
define the message-id URL as

   midurl      =  "mid" ":" addr-spec

thus killing two birds with one BNF.


......Roy Fielding   ICS Grad Student, University of California, Irvine  USA
                                     <fielding@ics.uci.edu>
                     <URL:http://www.ics.uci.edu/dir/grad/Software/fielding>

Received on Tuesday, 7 February 1995 03:39:52 UTC