- From: Ian Hickson <ian@hixie.ch>
- Date: Sun, 17 Apr 2005 10:00:47 +0000 (UTC)
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 semantics!) > * 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. Cheers, -- Ian Hickson U+1047E )\._.,--....,'``. fL http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,. Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
Received on Sunday, 17 April 2005 03:00:47 UTC