W3C Technical Architecture Group

09 Dec 2008


See also: Agenda 9-11 Dec, IRC log


Noah, Ashok, Dan, Jonathan, Henry, Stuart, Tim
TVR, DaveO, NormW
Jonathan, Tim



<DanC_lap> (noodling on agenda topics... do we care how long HTTP header names are any more?)

<jar> scribenick: jar

<scribe> scribe: Jonathan

Convening... call for scribes

jar: Ashok will be speaking at semantic web gathering tonight.

stuart: re agenda: I propose an error handling discussion with Raman at 15:30 today.

NM: Thoughts on future meeting dates/times?

Ashok: Late Feb. East coast or west coast?

<ht> HST has Schema WG f2f 25--27 Feb, Austin TX

stuart: Proposed: US, East coast or West coast.
... Proposed: US West coast (even though no known-to-be-continuing tag members are on the west coast).

ht: Schema WG is Feb 25-27 (W-F). That would make Mar 2-4 M-W good.

timbl: (checking schedule)

ht: Tu-Thu Mar 3-5 is also OK but not as good w.r.t. concatenation with schema

stuart: (takes poll) Tue-Thu Mar 3-5 is preferred.
... THIS IS TENTATIVE pending input from new TAG members. DO NOT book flights.

<DanC_lap> ACTION: DanC to relay 3-5 Mar 2009 SFO proposal to TAG candidates and collect feedback [recorded in http://www.w3.org/2008/12/09-tagmem-irc]

<trackbot> Created ACTION-197 - Relay 3-5 Mar 2009 SFO proposal to TAG candidates and collect feedback [on Dan Connolly - due 2008-12-16].

ht: If we learn that all TAG candidates are OK with this then we will be able to confirm.

NM: Note the AC meeting at MIT 3 weeks later.

Location of meeting: Bay Area.


danc: Extension points exist, technologies are simple, but economics of different solutions differ
... HTTP WG received comment on using GET for unsafe operations (e.g. twitter)

jar: (projected -- "redacted" article http://furbo.org/2008/10/01/redacted/)

danc: Using openURL, which seems to be a kind of GET
... It ends up sending a message... thus this is a kind of POST on GET
... They're using URI schemes to do IPC (calls between apps on same gizmo)

noah: Would I ever email you one of these if you didn't have an iphone? Would I put a twitterific on my home page?

danc: No one has suggested this.

ht: This argument - "it will hurt you later" is real, but a weak one.
... (advocating on behalf of the devil) There are lots of short words out there.

danc: Mark Nottingham observes that the TAG has written on the subject, but not very accessibly.

ht: What is so attractive about using URI schemes to do IPC?
... You don't have to worry about ...?

danc: Who are you asking about? It was Apple that chose the mechanism, and some clever person outside Apple who discovered it.

noah: The reason for this is pretty innocent. One builds a generalized broker useable by an application.
... [broker = that which dispatches on URI scheme]

<DanC_lap> (well, no, I think timbl meant an IPC broker, never mind the web)

stuart: When you GET the URI, that fires up some application logic?

<timbl> A broker which allows clients to find services, like ORB etc

<DanC_lap> (the point, as HT said, is that Apple didn't provide a somewhat traditional IPC broker, but some enterprising developers discovered you could use URI dispatching as an IPC mechanism.)

noah: There are generic hookups between URI schemes and IPC mechanisms

<Zakim> DanC_lap, you wanted to note the irony of rdar:

danc: rdar://problem/6045562 (= a pointer in apple's bug database)

<DanC_lap> NDW: I attempted to register urn:ndw ; they not only denied my request but exception to it

<Zakim> DanC_lap, you wanted to remind the TAG about http://esw.w3.org/topic/UriSchemes

danc: Tim suggested maybe W3C should run a registry of these [URI scheme names]
... similar to the wiki registry.

ht: Is the jar: URI scheme there [in the W3C informal URI scheme registry]?

jar: (projected - rentzsch.com on rdar:// URLs - http://rentzsch.com/notes/rdarUrls
... links to AWWW 2.4.1 ...
... IANA IANA's URI schemes registry link seems to be broken.)

<DanC_lap> ACTION: DanC to ask IANA to continue to serve the old address in webarch for the URI scheme registry [recorded in http://www.w3.org/2008/12/09-tagmem-irc]

<trackbot> Created ACTION-198 - Ask IANA to continue to serve the old address in webarch for the URI scheme registry [on Dan Connolly - due 2008-12-16].

danc: Let's see how hard it is to register a new URI scheme. (browses to IANA, the RFC, ...)

<ht> Sorry, we're cruising around IANA/IETF space - at RFC4395 at the moment

danc: [you have to send a form to uri-review@ietf.org, then wait for a ~4 week review period]

noah: It *should* be hard.

ht: We should be looking at section 3 of the RFC = provisional URI scheme registration

<DanC_lap> (IETF/IANA runs a provisional URI scheme registry? did I know this?)

ht: Provisional means you have a claim. To be public spirited all of these schemes in use should be registered provisionally.

danc: [In case you've forgotten,] we are considering deployment scenarios and costs for various parties.

noah: Specifically when people want to use *local* URI-based IPC stack, is x-* (or something in that spirit) suitable?

stuart: Local communication is the same problem as the one the widget folks identified.

timbl: Sometimes things look like bad web architecture, but then it turns out they're doing something quite different from what we thought, and inventing new architecture for it.
... e.g. web services.

danc: They're not making a new information space, typically

noah: RMI was a local registry way back when... JNDI...
... this was CORBA-inspired.

<timbl> So if the need is for a way of coordinating between different applications under OS X, what alternative registries are there apart from the URI registry?

<timbl> eg in java, thinf skike co.sun.libs.whatever

<noah> I think more than Corba-inspired. My recollection is vague, but I think that when you wanted to actually connect to something in RMI, it was common to make calls that mapped to a Corba registry to locate the object that would be the target of communication.

timbl: What if I want to call a Java library - what do I do? (thinking about how to build a solution)

<timbl> This is very analogous to a system() call

danc: The twitterific: case seems to not need URI schemes here - Apple should provide a different IPC mechanism

<timbl> Note also that OS X has services -

<timbl> [look at] the Services menu [in OS X applications]

stuart: In the itunes case, the URI *will* be on a public web page, and clicking is supposed to fire up a local app

noah: There are two different use cases.
... that's the other one.

danc: twitterific case and itunes case are very different.

<DanC_lap> (I'm not interested in the "services menu" architecture until it's open source.)

timbl: Highlight something in Colloquy, go to services menu, can convert to Chinese text, open as URL, Skype contact, etc. - lots of options.

<DanC_lap> (hmm... maybe it is, as part of gnustep or something)

timbl: Under OSX there are mechanisms for doing this [twitterific use case]

stuart: But the mechanism will be different from one OS to the next

<DanC_lap> (hmm... there's a potential to transition to the web apps security discussion here... there's a drag-n-drop javascript API somewhere in the W3C /TR/ space)

timbl: When you do drag & drop - that will invoke an application (selected from namespace of applications)

<timbl> Maybe one should have a catch-all service: URI scheme which allows one to e.g. POST to a URI service:Mail/SendTo

norm, we may have a new zakim code

<Norm> Ok. I'll look here

(technical difficulties)

danc: Pownce and itunes [itms:] are like http: but signal use of a different application for 'browsing'
... Tradeoff between uri & mime type hooks - Mark N - mime type requires coordination with server; app developers should like URI schemes since no such coordination is needed.

noah: mms: URI scheme (for example) is just like http - if you replace the scheme with http: it will work fine.

<DanC_lap> indeed, mms: is another example of the case of uri schemes that alias http: for software dispatch reasons

danc: The purpose is to dispatch software. They run into the software installation problem when two players fight.

ht: Things have gotten better in this way. Everything now offers a set of checkboxes.

danc: Informed consent...

<noah> According to Wikipedia at http://en.wikipedia.org/wiki/Microsoft_Media_Server :

<noah> Microsoft Media Server (MMS) is the name of Microsoft's proprietary network streaming protocol used to transfer unicast data in Windows Media Services (previously called NetShow Services). MMS can be transported via UDP or TCP. The MMS default port is UDP/TCP 1755.

danc: the reason I have a hard time giving general advice about new URI schemes and media types is that everything reduces to the software installation problem, which is unsolved.

ht: If you download the software on every use, there's less of an installation problem...

noah: For purely local interactions, you don't need web architecture. No issue until links leak to third parties.

<noah> What I was trying to say was in relation to Henry's challenge that Web 2.0 downloads client software just before use. My point was that in that case, which is >not< local, you can easily have private contracts and protocols on the point-to-point connection from client to source server.

ht: A .ram file is *only* the information the media player needs to get access to the media stream

danc: There are multiple parties in the web 2.0 scenario, so the installation problem will emerge there

jar: Pownce may be a 3rd use case.

<noah> From: http://blog.pownce.com/2008/12/01/goodbye-pownce-hello-six-apart/

danc: (reading eran's email)

<noah> We have some very big news today at Pownce. We will be closing the service and Mike and I, along with the Pownce technology, have joined Six Apart, the company behind such great blogging software as Movable Type, TypePad and Vox. We're bittersweet about shutting down the service but we believe we'll come back with something much better in 2009. We love the Pownce community and we will miss you all.

danc: It's a continuation pattern - client sends continuation to server, which 'invokes' it.

<Stuart> http://lists.w3.org/Archives/Public/ietf-http-wg/2008OctDec/0015.html [= Eran's email about pownce: URIs]

danc: http: with localhost would work in the pownce use case
... Suppose HT has an iphone. Wants to do something with pownce. You want to use your openid. The authentication challenge from pownce redirects to your university. The university directs back to pownce:something -- on the client actually.

ht: So why not a media type?
... I give http://localhost/something, then the client software delivers the pownce media type, etc.

<noah> But that would mean university software would have to respond with a application/pownce media type after you login. Seems unlikely. I conclude the "requirement" is something that can be encoded in the URI, and scheme is one answer.

danc: Pownce is clearly not just IPC. But if there is no danger of a collision...

noah: Give me the next unused URI scheme from some local space of URI schemes.
... like port numbers.

<Dave> minor note, it's not OpenAuth, it's OAuth. AOL wouldn't give up the [trademark] on OpenAuth.

ht: But the email continues to say this oauth solution doesn't work because oauth servers are careful.
... If you go to the relevant bit of Firefox, there is granularity in establishing proxies [per-scheme proxy assignments]

noah: But most clients have an indirection table to figure out what to do with URI schemes

<Zakim> DanC_lap, you wanted to note webarch seems to overstate the case. 2.4.1 "The same thing can be accomplished ..." http://www.w3.org/TR/2004/REC-webarch-20041215/#URI-registration

danc: With media type, you can't control what software is used to retrieve (GET), but you can say what software is to be used to process (show, play) the representation

(looking at the retrieval diagram)

timbl: tel: URIs don't make Firefox go to skype...

stuart: Is firing up an application (on GET) a good thing to do, and if so how should it be arranged?

<timbl> rmstar:

<Zakim> DanC_lap, you wanted to migrate to discussion tactics

jar: Maybe only some applications. What if there were a delete: URI scheme, like file:, that deleted files?

<DanC_lap> a slide: http://www.w3.org/2008/Talks/0910how-fast/#(4) [Web Architecture: exploration is safe]

<Dave> tel: URIs on iPhone do cause the phone app to start up and dial the number...

danc: Web architecture: Exploration is safe
... Problem: URIs for which GETs delete things.
... Reason: e.g. the Google web accelerator.

ht: My client is not convinced.

(long discussion of cartoons)

noah: I think a lot of these cases have this feel - e.g. itunes - but if it were a problem people would have complained and it would have been corrected.

danc: Re GET vs. POST, I think the story needs to be told again and louder. itunes is not as much of a problem.
... itunes has problems re bookmarking.
... Apple wins in the case of itms:, but the web doesn't.

jar: It's sort of like doi:

<Stuart> [investigating a link to a song] http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewAlbum?i=296000131&id=296000087&s=143441&v0=WWW-NAUS-ITUWEEKLY-WHATSON

<Stuart> http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewAlbum?id=298111039&s=143444

<DanC_lap> set-cookie: itmsUrl=itms://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewAlbum?i=296000131&id=296000087&s=143441&v0=WWW-NAUS-ITUWEEKLY-WHATSON; version="1"; expires=Wed, 10-Dec-2008 16:50:15 GMT; path=/WebObjects; domain=.apple.com

<DanC_lap> ("edge-control:"??? news to me; I wonder if that's in the http header field name registry)

but if you're in itunes and click right for "Get itunes URL" you get an http: URL.

<ht> [checking to see whether anyone bookmarks itms: URIs] Google reports: Results 1 - 10 of about 2,040 for "itms://ax".

<DanC_lap> (itms: is the scheme in http://www.tbray.org/ongoing/When/200x/2003/04/30/AppleWA )

<timbl> How about daap: ?

<DanC_lap> let's look from http://esw.w3.org/topic/UriSchemes

<timbl> http://en.wikipedia.org/wiki/Digital_Audio_Access_Protocol

<timbl> At its heart, DAAP is the latest in a long line of protocols that

<timbl> use HTTP[3] as its underlying transport mechanism.

<timbl> [quoting] from http://tapjam.net/daap/

<DanC_lap> http://en.wikipedia.org/wiki/Digital_Audio_Access_Protocol

<timbl> Request: daap://server/server-info

<timbl> Request: daap://server/server-info (or http://server:3689/)

<Zakim> DanC_lap, you wanted to noodle on wikipedia as a/the repository of conventional developer wisdom

<DanC_lap> on wikipedia conflict of interest policy, some data: http://en.wikipedia.org/wiki/Talk:Dan_Connolly

<Stuart> http://en.wikipedia.org/wiki/URI_scheme

<DanC_lap> (hmm... fairly clearly better than the list in the ESW wiki)

(digression into comparison of callto:, skype:, tel: schemes)

ht: (has gunzipped result of redirection from itms: URI - changed scheme to http: first)
... a complicated XML file. Tells how to display song's page in the itunes store.
... The original mime type is compressed. The xml document has namespaces (this is new).

<ht> http://www.ltg.ed.ac.uk/~ht/xx.xml

<DanC_lap> action-198?

<trackbot> ACTION-198 -- Dan Connolly to ask IANA to continue to serve the old address in webarch for the URI scheme registry -- due 2008-12-16 -- OPEN

<trackbot> http://www.w3.org/2001/tag/group/track/actions/198

<timbl> <Document xmlns="http://www.apple.com/itms/" artistId="1419227" browsePath="/34/15/1/1419227/296000087" pageType=

<timbl> Hmm, the page you're looking for can't be found. [404]

<DanC_lap> $ curl -I http://www.apple.com/itms/

<DanC_lap> HTTP/1.1 404 Not Found

<timbl> scribenick: timbl

<scribe> scribe: Tim


Stuart: Dave produced a new draft Friday.

Noah: I Read skimmed , read ch 5 in detail.

Stuart: I read the whole thing on the way over.
... I think we have done the document damage after the last few revs
... It doesn't feeel like a cohesive whole.

DO: I think that is over-stating it.
... We can fix up [document author etc]
... The document could be shortened by removing some number of version numbers
... but I don't think that would be desirable.
... We have made good progress getting though 2,3 and 4.
... I revised section 5.1 a bit to make clearer what happens to a subtree when you are ignoring or preserving.
... We have not spent a lot of time on Section 5.

Stuart: I don't see energy for this in the group.

Jar: A lot of good work has gone into it and it should preserved. Could we make it a note if not a finiding?
... Maybe we could do a very short finding inspired by this

Noah: My inclination what we might do as anotehr step in thefuture from what we do about this. This document represents a lot of work.
... If we decide it is the basis for a finding, we need to make sure it has that quality. If it is a Note, we should be clear what level of endorsement it gets.
... We could make a finding an action item for the new TAG next year.

Tim: +1 to a note as a snapshot

Ashok: If we are thinking of publishing in this form and later in a different form, how would these be different?

Noah: I would be interesting in seeing Jonathan's formalism be used, but I don't think a non-mathematical reader would understand.
... We could just show a markup language evolving, in a document

jar: Would be a lot of work to align the formalism with [all] the examples.

Noah: I think the formalism attacks very well the fact that when you change a language you can do it in so many ways.
... The formalism makes this much more simple.

<noah> Clarification of what I said: if this doesn't become a finding, we NOT should assume we want to do some other document on versioning as a priority. We should put it on a list of possible priorities, and see how it stacks up against the other things we could do next year.

Ashok: Propose: publish as a Note just now

Henry: I am happy with pressing on this to get it as good as we can and publish it as a white paper (whatever we decide).
... for the remainder of this session and Dave's term.
... I apologize I have not been able to see how to get this into a finding form

Stuart: We have been talkingabout publishing this as a note since the Southampton meeting.

Noah: I will get a lot of flack on the lists if we publish this as a note without clarifying it is not a complete

Ashok: Whose note? Dave or TAG? Propose; author Dave, with TAG help.

DO: I would like to keep [clear] the fact that the TAG has very much been involved with reviewing this.

Stuart: Propose: A white paper in Dave's name published with the TAG's review

DO: I think there are 5 pages of material in section 5.
... Maybe we can push this through to a finding.
... The TAG thought this was a priority when I was not on the TAG -- I am prepared to do that again.

Noah: Are you suggesting we compress section 5 or what?
... I notice Stuart had detailed comments on things we have already been through.
... So those need more work.

Stuart: I only sent my review to you, Dave.
... You got my raw fresh commentary on it.

DO: How far did we make it down into section 2?
... In section 5, we were partway thorugh section 5.1 and said we should have a nother look at this
... The section 5 part we got down to in the must accept ... we got halfway through section 5.1 and I started rewriting just before "discard or preserve".

<DanC_lap> (projected is http://www.w3.org/2001/tag/doc/versioning-compatibility-strategies-20080917.html#iddiv290818088 )

<Ashok> http://www.w3.org/2001/tag/doc/versioning-compatibility-strategies-20081205.html

Tim: Note the doc we are discussing is not linked from the agenda.

<DanC_lap> ACTION-181?

<trackbot> ACTION-181 -- Jonathan Rees to update versioning formalism to align with terminology in versioning compatibility strategies -- due 2008-12-05 -- OPEN

<trackbot> http://www.w3.org/2001/tag/group/track/actions/181

<DanC_lap> JAR: didn't get as far as I planned on that; seems orthogonal

Jar: I didn't get far with that

<DanC_lap> action-182?

<trackbot> ACTION-182 -- David Orchard to provide example for jar to work into the formalism -- due 2008-12-05 -- CLOSED

<trackbot> http://www.w3.org/2001/tag/group/track/actions/182

DO: We did a heavy review, lots of comments about adding site (?) scripts, about migration to 1.1 having failed...
... Starting at 5.1 [http://www.w3.org/2001/tag/doc/versioning-compatibility-strategies-20081205.html#id36453 ] I think we started rewrites

<jar> I'm going to push ACTION-181 back to 2008-12-31.

RESOLUTION: We will pursue http://www.w3.org/2001/tag/doc/versioning-compatibility-strategies-20081205.html toward a Note at this time.

DO: Looking at the first Good Practice note in section 5, just below that.

<Dave> [Definition: A language is Extensible if the syntax of a language allows information that is not defined in the current version of the language and provides default handling of documents in any extended set.]

<Stuart> re: extensible [somebody had asked whether it gave a definition of 'extensible']... we have: "Definition: A language is Extensible if the syntax of a language allows information that is not defined in the current version of the language and provides default handling of documents in any extended set.]"

Noah: The word 'text' is used both for the text and also for some text withing the text -- in the first sentence in section 5.1

<DanC_lap> (trying to remember other analagous terminology... "strings in a language" and substrings... )

<DanC_lap> timbl offered "material"

<Dave> Fix first sentence to deal with texts, instances of text, runs.

<DanC_lap> I think timbl also suggested something like MUST vs must

Noah: Suggest you make a pass through the document to make sure it is consistent with what you decide here.

<Dave> Clean up use of "unknown text", all occurrences of "text"

Text vs text

Noah: Sometimes you can for example recgnioze an attribute as an attriubute but not know what it means -- so what does that mean?

J: This is just about conformance to the language spec.

<Dave> Must Accept Unknowns Rule: Consumers MUST accept unknown text parts/portions where the language has allowed extensibility.

Noah: The whole framework doesn't work for me -- that is why I have that problem. Ignore my comment above.

<Stuart> +1 that dave's rewrite improves the statement of the rule.

DO: I think XML Schema separates out these two cases. If you want to make your language extensible, you have to explicitly put in wildcards.
... Some badly written code would fault when it encountered the text.

<DanC_lap> SKW: yes, exactly; this is advice to the language designer

jar: You are giving advice, different advice to different [audiences].

<noah> A proposal: In order to achieve extensibility, language designers must specify which extension content SHOULD be accepted by consumers.

jar: To spec writers, you say it is good to define your languages this way so they have extension points

DO; [interrupts]

<Dave> Must Accept Unknown Rule: Languages SHOULD require that consumers must accept....

JAR: You are also giving advice to implementers to respect the design which has extensibility points.

<noah> A proposal: In order to achieve extensibility, language designers must specify which extension content SHOULD be accepted by consumers.

DO: I am trying to speak to the language designers.

<Dave> languages should specify which extension content should be accepted by consumers.

<jar> "Languages should be specified so that ..." ? but only under a certain set of assumptions.

<Dave> Need to choose between: Language designers +? consumers vs languages vs language specifications....

DO: We need to chose between language designers or specifications

JAR: The spec speaks for the designer ... so equivalent.

<Dave> Need to choose between: 1) Language designers +? consumers vs 2) languages vs 3) language specifications.

<DanC_lap> [14:39] <noah> A proposal: In order to achieve extensibility, language designers must specify which extension content SHOULD be accepted by consumers.

<DanC_lap> ^ht was referring to

timbl: This document is about how to design languages. Therefore about what language designers do. The spec they produce defines what consumers and producers do. Often we mean "Language designers should produce specifications in which consumers do X" and we are tempted to say "consumers should do X".
... This is not altogether unreasonable.

<Dave> Starting 2 "There are 2 further decisions, each with 2 common options"

<Dave> need to change "consumers should accept" to language designers style.

Tim: Not very generic in section 5.1.1 as a proxy is a special case.

<Dave> Why the heck was I thinking of the table as a Venn diagram??? geesh

<jar> The proxying issue is not about language design - it is about clients being generic across language variants (maybe future ones, or chimeras)

<jar> A language spec induces a class of conforming agents (producers and consumers). An agent induces a class of language specs (those to which it conforms).

Noah: We can generalize things like a proxy preserving unknown text in text it sends on to the end party, and an accountable agent recording unknown text in the auditing database, by saying that the early version of the language in general defines a way of dealing with unknown content, so that the effect/damage of a move to a new language can be controlled and understood.

<DanC_lap> (projected is: http://www.w3.org/2001/tag/group/track/agenda#act_by_iss )

<DanC_lap> action-165?

<trackbot> ACTION-165 -- David Orchard to formulate erratum text on versioning for the web architecture document -- due 2008-12-09 -- OPEN

<trackbot> http://www.w3.org/2001/tag/group/track/actions/165

<DanC_lap> action-165 due next week

<trackbot> ACTION-165 Formulate erratum text on versioning for the web architecture document due date now next week

<DanC_lap> action-183 due 15 Jan 2009

<trackbot> ACTION-183 Incorporate formalism into versioning compatibility strategies due date now 15 Jan 2009

<Ashok> Raman, you there?

<ht> http://lists.w3.org/Archives/Member/tag/2008Dec/0012.html [member-only link] contents follow:

Please add a pointer to
I think this bears on the spec. modularity question. The argument (see e.g. Boris Zbarsky's post on the subject [1], and Hixie's earlier contribution [2] which is the specific antecedant to my post) that XML is broken because it doesn't fully specify error handling is an important one to understand, establish the truth of, and then if true propose a fix, if false publish a convincing rebuttal.
[1] http://lists.w3.org/Archives/Public/www-tag/2008Nov/0047.html
[2] http://lists.w3.org/Archives/Public/www-tag/2008Nov/0041.html

tagSoup / error handling

The TAG reconvenes having failed to raise Raman

<DanC_lap> Hickson 17 Nov

HT: This is where this thread really got started.

One of the threads which emerged from the TAG-HTMLWG visit was error handling

This started with Boris, this from Ian Hickson

scribe: There is what amounts to a proposal for a taxonomy of web error handling and an assertion that the XML spec falls short of giving you what you need in terms of this taxonomy.
... Error recovery and Error correction are two kinds of error handling.
... for XML, we know certaily what errors are. However, it is not clear to me that the next two statements are clear
... but the last sentnece is true: what he calls error handling is not defined in the XML spec.

<DanC_lap> "Error handling is not well

<DanC_lap> defined, which is a major problem.

<DanC_lap> "

Tim: And this is bad for versioning.

in the sense that Noah said - you have to define what happens when something is in the accept set but not the defined set.

HT: The accept set does not include lexical tokeniser errors

Noah: The HTML community wants to broaden the accept set

Tim: For HTML, they have broadened it to [include] every stream of characters.

HT: The defined set is what you can serialize from the DOM

Noah: Answering Jonathan's question [what is HTML5's versioning strategy?] another way, if you believe that the accept set [is] the universal set, then what will change is the subset that is the defined set.
... For example <img> was, then wasn't.

HT: We were talking about XML errors here.
... We should either identify and fix XML's problem or explain why XML does not have a problem.
... I think one [wants to] be neutral as to the ideology of the HTML5 project.

Tim: Let us not find a proof that XML is in fact OK philosophically without addressing the practical problems of why people don't want to use it!

HT: Eliotte Rusty Harold says this is a layering problem.
... It is not the XML layer that defined the error handling, as it should be defined by the application layter higher up. This makes sense.

Tim: So XML parsers [must] be very smart about error reporting.

<noah> From: http://www.w3.org/TR/2006/REC-xml-20060816/#sec-conformance

<noah> Validating and non-validating processors alike MUST report violations of this specification's well-formedness constraints in the content of the document entity and any other parsed entities that they read.

<DanC_lap> Hickson 8 Nov

HT: Hickson pushes back on the layering argument, saying that the right place in the stack is the XML spec - "Wouldn't it make more sense for the XML spec to define this once, instead

of having this defined in CSS, DOM, XHR, SVG, MathML, and every other spec

that uses XML and is to be implemented in a user agent that needs

interoperability even with the case of non-XML documents labeled as XML?"

HT: The set of CONFORMING HTML5 documents is relatively small.

<DanC_lap> http://www.w3.org/TR/html-design-principles/#handle-errors

<Zakim> DanC2, you wanted to push back on tim's point about philosophy

tim: "Wouldn't it make more sense for the XML spec to define this once instead

of having this defined in CSS, DOM, XHR, SVG, MathML, and every other spec

that uses XML and is to be implemented in a user agent that needs

interoperability even with the case of non-XML documents labeled as XML?"

All the use cass are in a browser -- very close! Not enterprise XML for example.

danc: The crux of this is [in] which layer to put the error handing

DC: In 1993 I replaced the code in the NCSA [browser?] which parsed HTML and I was moving to Austin to change jobs and I never sent the patch, so we will never know what would have happened. They didn't have the parser separated from the formatter.

HT: The C spec doesn't say anything about error handling either.

Stuart: Does XML being a metalangauge make a difference here? What about for exanple ABNF?

<Dave> zakim +??p1 is me

<DanC_lap> hi!

DWC: The HTML5 parsing algorithm is not streamable: the error correction can completely change the DOM rigtht at the end.
... Henri S has added a streaming parser .. but it aborts if it meets one of those situations.
... The streamable sub-language is obvioulsy interesting.

<DanC_lap> issue-20?

<trackbot> ISSUE-20 -- What should specifications say about error handling? -- CLOSED

<trackbot> http://www.w3.org/2001/tag/group/track/issues/20

<DanC_lap> "Agents that recover from error by making a choice without the user's consent are not acting on the user's behalf."

<Stuart> see also http://www.w3.org/2001/tag/issues#errorHandling-20

<Zakim> timbl, you wanted to suggest a versioning should about saing if you ignore stuff silently you always have to.

<DanC_lap> quote above is from http://www.w3.org/TR/webarch/#error-handling

<Stuart> and... http://lists.w3.org/Archives/Public/www-tag/2003Dec/0044

tim: It would be good for the TAG to write up the HTMLWG ehis [?] about this as a versioning strategy. Also to point out the dangers of silently correcting errors (unless you promise to do it for ever).

<Zakim> ht, you wanted to ask for helpful analogies

<Zakim> noah, you wanted to dive a bit on processor conformance requirements

<noah> http://www.w3.org/TR/2006/REC-xml-20060816/#sec-conformance

<noah> Validating and non-validating processors alike MUST report violations of this specification's well-formedness constraints in the content of the document entity and any other parsed entities that they read.

<noah> error

<noah> [Definition: A violation of the rules of this specification; results are undefined. Unless otherwise specified, failure to observe a prescription of this specification indicated by one of the keywords MUST, REQUIRED, MUST NOT, SHALL and SHALL NOT is an error. Conforming software MAY detect and report an error and MAY recover from it.]

(We look at 1.2 in the XML spec)

<DanC_lap> HT: hmm... maybe "draconian error handling" isn't error handling... it's document reporting

Noah: The XML rules here often don't meet the needs of the HTML5 spec

c [?]

scribe: one could however define processors which react differently, with different conformance requirments on the *software*.

Timbl: Agree that the HTML5 spec does not distinguish between defining the language and defining application behaviour, which is a problem.

Noah: I think the XHTML people could have allowed non-draconian error handlign, but some people felt that under XML rules they could not.

<ht> HST: I was asking NM to drill a bit because I thought there was no coherent 'error recovery' story for XHTML short of the full HTML5 story

<raman> just joined

<noah> Right, my point was narrower: if XHTML stuck with the design that "correct" input is always well form, they could have still chosen to specify non-brittle recovery (and rendering) for some or all non-well formed documents.

Raman: You can't resolve this question until you have decided whether you belive in modular architecture
... If you don't have modules you won't have layers
... If you need modularity then you will need layering.
... the only way you can have modularity and layering is if
... [not understood]

<Stuart> I think that raman is talking about upward delegation of error handling to the layer(s) above.

Raman: The XML processor should tell the guy above it -- here is the rest of it, deal with it. I think fatal error was a fatally bad choice of term. I don't think it should fail.
... In a layered system for an error behaviour to be defined in multiple places

TimBL: You need to be able to be much more sophisticaed when you bit an XML error -- you have to be able to continue after error

Raman: you have as an application to be able to choose, to tell hte parser to do things like insert a <i> or something.... there is no one way to recover from error.
... John Cohen's [Cowan's?] fixup rules in his parser do that

<ht> Crucial observation there: XML error recovery must depend on help from the application, based on the language

[not sure who said this, Tim or Raman] This of course makes the software more yucky.

Raman: Recovery is very context-dependent. You find a free-floating input element will insert a form.

<Zakim> jar, you wanted to say how Scheme did it (optional features etc)

<DanC_lap> (tim, "arguments against doing it" -- doing what, please?)

JAR: HTML5 is interesting .. but let us start by going back to XML

(danc, the fact that the parser softwae interface has to be yukky weights against using these techniques for versioning, to do these levels of error correction)

JAR: I remember the idea of optional features in Scheme
... "If you had something like this, then you ought to do it in this way"
... The problem [that Scheme wanted to solve] was that things were done in different ways [in different implementations], which made it dificult to read programs written for systems having these features.
... Here, error recovery [i.e. optional features] was specified as: If you do it at all, you should do it in this particular way.

<Stuart> I think that *if* one were to take the upward delegation view of the world, just like you might have a data model (eg infoset), one would also need an interaction model (eg. error and recovery event/action vocab) between the 'parser' and the user of the 'parser'

<Zakim> Stuart, you wanted to ask about xhtml error handling as a user facing technology (in response to ht's comment contrasting HTML5 vs. XML error handling)

<DanC_lap> (this business of saying XML is totally separate from HTML is wierd, to me; I got W3C to work on XML on the basis that it would be deployed much like HTML)

<DanC_lap> the feedback cycle is much too long and/or unreliable

<Zakim> DanC_lap, you wanted to push back on "lots of XML processors" ; one "xml processor" product category was endosed by design, and it worked for a certain market

<Zakim> ht, you wanted to ask for helpful analogies

<ht> HST: XHTML is an XML application which could have chosen a much richer way to respond to XML errors -- perhaps by putting up a frozen picture of "what this page might have been supposed to be like"

tim: Random thought: Maybe one could detect when a user is the person who wrote the page because they us the refresh button a lot.

HT: Or they use file:// URIs a lot?

TimBL: (Then you could give them help making it betrter))

DC: The business of separating the HTML from the XML discussion is weird to me.

<Stuart> s/S:/D:/

DC: The XML error handling spec does satisfy a large community, but for a very large community then the parsers the add error handling.

<Zakim> ht2, you wanted to say something about the tension between the defn of "an XML document" and the assumption of streaming interaction

HT: C compilers - no one ever made an error correcting C parser.

<jar> there was an error correcting PL/C compiler

Raman: the only thing whcih is needed for te XML world was that there should be an API between the parser and the applications.

HT: I would like some better analogy -- C is not a useful one.
... I need other examples of layering

<raman> culturally, that draconian error handling was a pushback that was a result of people rebounding from the mess that went before it

<DanC_lap> quite, raman

<raman> for an instant I thought you were saying "quiet!":-)

<DanC_lap> ;)

<ht> and error-correcting C processors -- I should have said "made a commercial success with a widely deployed and used C compiler"

HT: Then it has to deal with the fact that the XML parser is not just a BNF and it is in fact in a spec in a layer. The XML spec tries to balance the two things you need to know (1) this is not a XML document at all and (2) this is what we can do with it now

<jar> XML draconian errors, and HTML5 clarity over how to handle errors, are both solutions to the *same* problem - that of undesired extensions

<DanC_lap> did the meeting get extended?

Ashok: We have beene talking about XML error handling in theory. Does someone have an actual implementation of a parser with error handling in it?

HT: Yes, two: one a reconstruction of the other

Ashok: Good stuff?

<Zakim> timbl, you wanted to point out that software in the C days was small and memory space cstly and the complexity of a C compiler would have been one factor

<Zakim> Stuart, you wanted to come back to Henry's original question as a way of wrapping up.

<DanC_lap> ACTION: Henry to follow up on error handling thread ( [recorded in http://www.w3.org/2008/12/09-tagmem-irc]

<trackbot> Created ACTION-199 - Follow up on error handling thread ( [on Henry S. Thompson - due 2008-12-16].

<DanC_lap> action-199 due 15 Jan 2009

<trackbot> ACTION-199 Follow up on error handling thread ( due date now 15 Jan 2009

<DanC_lap> action-199?

<trackbot> ACTION-199 -- Henry S. Thompson to follow up on error handling thread ( -- due 2009-01-15 -- OPEN

<trackbot> http://www.w3.org/2001/tag/group/track/actions/199

<DanC_lap> action-199: see http://lists.w3.org/Archives/Public/www-tag/2008Dec/0055.html

<trackbot> ACTION-199 Follow up on error handling thread ( notes added

RESOLUTION: Re-open Issue 20


Ashok: The conference rooms for the meeting in March 3-5 at Oracle will be booked. At Oracle HQ

<DanC_lap> (ht, I connected your action to tagSoup, but I wonder about connecting it to errorHandling-20)

Ashok: The conference rooms for the meeting in March 3-5 at Oracle are booked. At Oracle HQ

scibenick: done
... none

Summary of Action Items

[NEW] ACTION: DanC to ask IANA to continue to serve the old address in webarch for the URI scheme registry [recorded in http://www.w3.org/2008/12/09-tagmem-irc]
[NEW] ACTION: DanC to relay 3-5 Mar 2009 SFO proposal to TAG candidates and collect feedback [recorded in http://www.w3.org/2008/12/09-tagmem-irc]
[NEW] ACTION: Henry to follow up on error handling thread ( [recorded in http://www.w3.org/2008/12/09-tagmem-irc]
[End of minutes]

Minutes formatted by David Booth's scribe.perl version 1.133 (CVS log)
$Date: 2009/01/07 15:17:25 $