Replace <url> in <author> and <contributor> with <link>. Allow multiple. Allow generic relationship.




Generally speaking, URIs are preferred to be in attributes.

While remaining optional, it might prove useful to allow some machine-readable processing of resources related to person constructs. For example: large feed aggregator sites like pubsub or bloglines or syndic8 could extract all the feeds which have foaf resources linked to their authors and then at least make that list available for other foaf-eating services to do as they wont.

        <link href="..." rel="resume" type="application/pdf" title="hire me!" />
        <link href="http://friendster..." rel="profile" type="text/html" title="date me!" />
        <link href="..." rel="blog" type="text/html" title="read me!" />
        <link href="..." rel="foaf" type="application/foaf+xml" title="foaf!" />

The 'allow generic relationship' is to provide the same generic linking functionality of the existing <url> construct, and could be done by simply omitting the 'rel' attribute. Thus this:


would be written as:

        <link href="..." />

It still provides the same meaning - it "conveys a URI associated with the author". Implementations would process it the same as they would have processed <url>. For the occasions where @rel is specified then an implemention could either ignore @rel (treating it the same as the generic <url>), pass it to the user to process (eg. provide a tool-tip that says "[resume]" on the link), or do something special pertaining to that particular @rel value.


In section [WWW]3.2.2 "atom:url" Element, replace this:

with this:


Would require either enumerating all allowable @rel values, or making @rel extensible.

Fits well with PaceLinkPurpose.

LinkConstruct specification would need to be updated to allow blank or omitted @rel.


Assuming PaceLinkPurpose, it may be possible to make @rel optional in all <link> elements.