- From: Leif Halvard Silli <lhs@malform.no>
- Date: Fri, 22 May 2009 08:49:03 +0200
- To: Julian Reschke <julian.reschke@gmx.de>
- CC: "public-html@w3.org" <public-html@w3.org>
Julian Reschke On 09-05-21 16.49: > (1) Syntax (1/2) > > The @profile attribute is underspecified in HTML 4.01; there is > disagreement whether the ability to specify multiple profile URIs is > legal syntactically, and whether "additional" profiles carry any meaning. > > That has led to the unfortunate situation where TIDY-based validators > (such as <http://users.skynet.be/mgueury/mozilla/>) report multiple > URIs in @profile as error (see > <http://sourceforge.net/tracker/index.php?func=detail&aid=1264455&group_id=27659&atid=390963>) > > > This problem IMHO should be fixed as erratum to HTML 4.01. Does that > fall into our charter? Björn Höhrmann's argument for not fixing the HTML Tidy bug is that HTML 4.01 says "profile = uri [CT]", hence it must be meant "a single URI", despite the fact the text of the following sentence directly says that @profile may be contain several URIs. The issue was also debated in the www-html list in 2006 [1], because Björn pointed out that the XHTML working group, due some thought about using @profile as a identifier for compound documents, had limited the @profile to only take one URI! Björn then pointed to the HTML 4 DTD and claimed that @profile always had been limited to one URI: profile %URI; #IMPLIED -- named dictionary of meta info -- Ian, in the same thread, replied that in HTML 5, several profiles was allowed [2]. Tantek then explained that the prose of the specification trumps the DTD (as DTD cannot express everything that is possible) [3]. Björn H. repeated (amongst other things) his profile standpoint in "Spidermann and the XHTML Kindergarten" last week [4]. And - regarding our charter: the follow-ups from Philippe and Tim B. L. show that the W3 are taking the issues Björn took up last week seriously and that they are also are looking for feedback from the HTML working group on the issues. [5][6] An errata that satisfies Björn H. would need an update of the DTD. The fix would probably have to take "idrefs" (list of idref tokens) as pattern and introduce "uris" (list of URIs) as one of the Basic HTML data type in the DTD. Is that how you see it as well, Julian? > (2) Syntax (2/2) > > Many have pointed out that it makes more sense to expose a profile as > a link relation with @rel="profile". I think this is a good idea, > although issue (1) should be resolved nevertheless so that there is a > transition period. In case of an HTML 4 errata, why not also update HTML 4 with the @rel="profile" as well? Such a thing could even be done /without/ any DTD change. Also, regarding the exact syntax, and since you mention namespaces below: It has been pointed out that namespace declarations creates warnings in HTML 4 validators.[7] Whereas adding a new @rel value does not do that. So how about introducing namespaces for profiles? E.g. like this: <link rel="profile xmlns:curie" href="profileURI">? Or even like this: <link rel="profile:curie" href="profileURI">. After all, RDFa attribute values represents meta data. It seems logical - and perfectly in line with HTML 4 - to link the meta data to a profile instead of a namespace. A namespace represents another markup language with its own meta data profile. But since, in the case of RDFa in HTML 5, it is only the meta data profile we are after, then why declare a namespace? It ought to be enough to limit the entire thing to a "CURIE declaration" for the profile ... (It seems to me that the way RDFa implements namespaces and profile perhaps bear some traces of the willingness to limit @profile to just one URI back in 2006.) > (3) Dependencies from other specifications > > There are currently several specifications that require @profile, such as > > a) GRDDL (W3C) > b) DC-in-HTML (DublinCore) > c) Several microformats (microformats.org) RDFa supports in HTML may require @profile as well. E.g. Shane McCarron's "RDFa in HTML". [7]. Although it is (currently) only used for linking in the "XHTML Vocabulary" profile [8] > If we believe that using link/@profile='rel' is a good solution then > we should talk to these people and see whether they are willing to > update their specs accordingly (I understand that many in the > microformats community do not care about @profile at all, but in that > case they need encouragement to update their documentation). > > (4) Format of a "profile document" > > As far as I can tell, profile URIs are just like XML namespace URIs: > the spec does not require them to be dereferenceable; clients are not > required to dereference them, and there is no standard document format > for them. (Are they Information Resources? /me ducks) I think we can say at least the same, and probably some more than HTML 4 about this: - a profile is typically a HTML page. - a profile page should inform about the official profile uri of the profile. (Certain profiles, such as eRDF (http://purl.org/NET/erdf/profile), uses a PURL url as its profile URI. The profile page URI and the profile URI will then differ. Also some profiles contains many pages - e.g. the microformats profiles, and it can be hard to see figure out what the profile URI of e.g. hCard is. The DC profile for HTML/XHTML pages, however is tells this very clearly) - profile pages are meta data dictionaries - they inform about the meaning and use of the vocabulary they introduce. - amongst others GRDDL has introduced profiles were implementations look at the URI(s) of <link> or <a> elements with particular @rel values and then perform actions based on what the documents at those URIs tells them. (This, again, hints that profile pages should per see be informational, but that they may contain semantic HTML that allows "machine action". - GRDDL also wants that profiles are made GRDDL compatible - which requires use of the profiles and/or @rel values that GRDDL needs. This represent some kind of format, you could say. (The Dublin Core profile is now GRDDL compatible[9].) - It seems like implementations must be taught the meaning of the linked in vocabularies. But that when they know their meaning, they may use them to act upon - e.g. an GRDDL implementation will act on this, because it already knows the meaning of "rel='transformation'": <link rel="transformation" href="http://www.w3.org/2003/g/glean-profile" /> > (5) Not breaking other specifications > > Unless there's a technical reason why this needs to be done, HTML5 > should not break other specs, in that what they say doesn't work for > HTML5 anymore -- which is the current situation. Therefore, I think > HTML5 should re-introduce head/@profile and make it valid, even though > there may be better approaches, such as link/@rel=profile. I would > support HTML5 defining the "profile" link relation, and having > language that recommends using link/rel=profile over head/@profile in > new specifications. Regarding not breaking other specifications, then HTML 5 also needs to support @rev, even if HTML 5 itself does not embed a meta data profile that makes any use of @rev. (Both HTML 4 and HTML 5 has a default meta data profile.) E.g. in RDFa @rev is used because: "Having just one term to describe the relationship, and reversing the direction by moving it from @rel to @rev, makes vocabularies smaller and simpler." [10] Thus, to not support @rev, would mean that - unless the vocabulary is extended to take care of HTML 5 specifically, the lack of @rev would make it impossible to express the same RDFa things in HTML 5 as in XHTML. (6) I would also suggest a 6th subject: Purpose of the profile URI I think that the previous rejection of @profile by the WHATwg was very much based on the view that "but it doesn't have any effect in regular UAs". And in general, the confusion about the purpose seem greater than the confusion about how many URIs @profile might take. Is the purpose to link to a page that documents the attribute vocabulary that this page uses? ("Information Resources", as you wrote. Information for humans, then.) Is it a "tag" for authors and reviewers so they can see what vocabulary the page is using? Is it something that UAs are supposed to act on? Is the purpose to be able to validate the page according to the profile used? Is the purpose to give tools or UAs the opportunity to treat the document in a certain way due based on pre-knowledge about how to act when seeing a particular profile URI? Is the purpose to take advantage of XHTML Modularization? (The before mentioned "XHTML Vocabulary" - footnote 8 - makes available a vocabulary that is needed for RDFa implementations when they read the @rel/@rev values of RDFa enabled page.) [1] http://lists.w3.org/Archives/Public/www-html/2006Feb/0087 [2] http://lists.w3.org/Archives/Public/www-html/2006Feb/0088 [3] http://lists.w3.org/Archives/Public/www-html/2006Feb/0095 [4] http://lists.w3.org/Archives/Public/www-archive/2009May/0029 [5] http://lists.w3.org/Archives/Public/www-archive/2009May/0038 [6] http://lists.w3.org/Archives/Public/www-archive/2009May/0045 [7] http://www3.aptest.com/standards/rdfa-html/ [8] http://www.w3.org/1999/xhtml/vocab/ [9] http://dublincore.org/documents/dc-html/ [10] http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-May/019867.html -- leif halvard silli
Received on Friday, 22 May 2009 06:49:44 UTC