[whatwg] [WA1] The profile Attribute

Ian Hickson ian at hixie.ch
Sun Apr 17 03:00:47 PDT 2005

On Sun, 17 Apr 2005, Lachlan Hunt wrote:
> 1. There are no reasons there to avoid multiple profiles all together,
>    only reasons to avoid profiles with conflicting definitions.

Imagine you use publicly available profiles A and B.

A has definitions "foo" and "bar".

B has definitions "baz".

You use foo, bar, and baz extensively in your document.

Two months later, the author of profile A updates his profile to include 
the definition "baz", meaning something completely different to the 
definition from profile B.

Your document has now radically changed meaning, yet you didn't use 
profiles that had clashing meanings when you wrote your document. The only 
way I can see to avoid this is to use only one profile, since then you 
can't ever get clashes.

> 2. Forcing a UA to ignore all profiles occuring after one they do not
>    understand places an unnecessary burden on the author to specify
>    profiles in the order in which they are most supported by the UAs.

Imagine you use publicly available profiles A and B.

A has definitions "foo" and "bar".

B has definitions "foo" and "baz".

The definitions of "foo" in the two profiles is very different, but 
that's ok, because you specify that you are using profiles A and B and so 
if you use "foo" then it is the meaning from "A" and you clearly aren't 
saying the "foo" from B.

You use foo, bar, and baz extensively in your document.

Someone uses a browser that supports only profile B. Now your document 
will be rendered or processed with completely different semantics, because 
the UA thinks that by "foo" you mean B's "foo".

Your document has now radically changed meaning, yet your document was 
unambiguous when you wrote it. The only way I can see to avoid this is to 
tell UAs to ignore any profiles after one that they couldn't understand, 
since it stops them from assigning meaning incorrectly.

> 3. That also forces unnecessary restrictions on which profiles a UA may
>    support and process.  For example:
>    * User Agent A implements XFN
>    * User Agent B implements RelLicence
>    * A document uses both XFN and RelLicence, and specifies XFN first
>      in the profile attribute.
>    In that scenario, user agent B unfairly loses out on being able to
>    apply the semantics of the RelLicence profile.  Considering that UAs
>    A and B are likely to serve different purposes There may be little
>    reason for one to implement the other profile, for anything other
>    than as work around for this specification.
>    This also defeats the whole purpose of allowing multiple profiles

That's a fair point, but implementing XFN for user agent B might be simply 
a matter of dereferencing the profile URI, downloading the XMDP 
description (or whatever we end up specifying should be at the end of 
profile URIs -- something will eventually be specified) and ignoring the 
values from that profile.

So I don't think that's a blocker problem.

> 4. The Note about a profiles defintion changing over time, somehow only
>    affecting documents with multiple profiles makes no sense.  If a
>    document uses any profile and its definition changes, then the
>    semantics of the document are going to change too.  It is certainly
>    not a reason to avoid multiple profiles.

Changed "changes" to "introduces new definitions", which is what I meant. 
A profile should never drop values it previously defined, and this will be 
mentioned in the relevant spec when that gets defined.

> I recommend updating the spec to say the following points:
> * If two profiles define the same name, then the semantic is given by
>   the first known URI specified in the profile attribute.

That implies that the semantics of a document depend on the UA that 
prociess it, which is clearly silly: a document has semantics even in the 
absence of any UA. (It might not be much use, but it has defined 

> * UAs may ignore unknown profiles and continue to process any subsequent
>   profiles.

For the reasons given above, I think this would be unwise.

> * Authors should avoid multiple profiles with conflicting defintions,
>   because UAs may apply differing semantics, depending on the profiles
>   they do and do not know.

The author can't always know when the profiles he's using will end up with 
clashes in the future.

> Remove the note from the end of the section entirely (or rewrite it) 
> because the reason given does not match the recommendation to avoid 
> multiple profiles, which is confusing.

Updated the note.

Ian Hickson               U+1047E                )\._.,--....,'``.    fL
http://ln.hixie.ch/       U+263A                /,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'

More information about the whatwg mailing list