W3C Forms teleconference November 5, 2008

* Present

Erik Bruchez, Orbeon
Paul Butcher, WebBackplane [joined late]
Leigh Klotz, Xerox (minutes)
Mark Birbeck, WebBackplane [joined late]
Roger Pérez, SATEC
Steven Pemberton, CWI/W3C
Uli Lissé, DreamLabs
Keith Wells, IBM
John Boyer, IBM (chair)
Kenneth Sklander, PicoForms [left early]

* Agenda

http://lists.w3.org/Archives/Public/public-forms/2008Nov/0007.html

* Previous minutes

http://lists.w3.org/Archives/Public/public-forms/2008Oct/0051.html IRC supplement: http://www.w3.org/2008/10/29-forms-minutes.html

* Reports

John Boyer: Erik?
Erik Bruchez: We're busy and it's hard to promise to do it soon.
John Boyer: It's becoming a blocking factor for us to get XForms 1.1 to rec.
John Boyer: Is there anyone on the call who can speak on behalf of Chiba?

John Boyer: We're still working on a report for Ubiquity XForms. We have the Firefox plugin already. I know there are 1.1 implementations out there, but we need to invest to get our spec to rec. Otherwise it looks like we're stalled, when we're not, as the technology is out there and getting into increasingly-wider use.

John Boyer: We have competitors who are in the space of XForms but who do not participate in the XForms WG because they have business models that keep their formats proprietary. We need to quell the FUD.

* XForms 1.0 Basic impl report

John Boyer: Can you send it to me again, Leigh and Kenneth?
Leigh Klotz: OK.

* Firefox XForms 1.1 Implementation Report

John Boyer: Keith, how many passed?
Keith Wells: It's wide coverage; there's a handful that aren't implemented.
John Boyer: Were their any partial tests?
Keith Wells: Not to my knowledge.
John Boyer: For example, passing the event but not the context info.
Keith Wells: There are a few of those.
John Boyer: Does your report call those as partials?
Keith Wells: Yes, we made quite an attempt to do that.

John Boyer: For other reports, that should generally be the strategy. Knowing which things those are will help provide us with full converage.
Keith Wells: There are some judgement calls where the test fails but it meets the spec.

* Streamlined syntax module (continued)

http://www.w3.org/MarkUp/Forms/specs/XForms1.2/modules/streamlined/index-all.html

John Boyer: We have a fairly mature spec for first public WD. There will be further changes as we have later revisions. I'm excited because we have a way of injecting XForms model behavior into tagsoup or XHTML host documents, which opens up the XForms technology to a broader class of documents and web application developers who will benefit from the modularization work we're doing. We've taken an attribute decoration approach because we have access to attributes even when the document is not parseable XML. There's some inspiration in this model from WebForms 2.0 and HTML5; obviously it's not said in the same way everywhere, but we have a deliverable as a WG where we merge WebForms 2.0 conceptualization and th XForms architecture. What excites me is that we have something that projects, creates, generates, a full XForms MVC connector architecture that then allows people to adopt elemental modules such as our full submission module or our XML data instance module or data instance plus operators module, these things that we've been working hard on during the F2F meetings. So it's an interesting approach. We have an issue that we have to resolve about naming it. The name now is "WebFormsA Streamlined Syntax for Data-Rich Web Applications." I've been a very strong advocate for the name WebFormsA, not because I want to have one strike against us with the HTML5 group of people; I think it's fair to say that we already have that strike, so we're not to appease that group, but to appeal to the broad web community and show that we're operating under our mission statement as a working group to provide forms on the web, and we have a full range of specifications. WebFormsA is a natural name because we have an attribute form. It's very much about forms on the web and targets HTML-like documents. It's broadly written, and we might be able to get better XForms adoption in ODF as well as HTML. The W3C, as a standards organization, has changed over the past 5 years. The competition that's playing itself out in the world is also playing itself out in the W3C. The economists would refer to this as the "creative destruction engine." We have to recognize and adapt to the fact that there's competition in the space that we're in, the space of forms on the web. We need to communicate and one way is to publish specifications. When we say "specifications" in the W3C sense, we mean recommedation-track documents. What excites me is that in order to carry this to completion, we have to end up creating interoperable implementations. We're working on this in the Ubiquity XForms. We will demonstrate the operation and applicability of this technology to general web pages, and will leverage the technology we have developed in the Forms Working Group. We know we have broadly-applicable technology that covers rich applications, rich web, rich mobile; we know we have technology that covers all those fronts. We can deliver that in a way that makes sense to the wider web community, and when we show it working in Firefox, Internet Explorer, Safari, Opera, mobile space, it will make sense to the other WGs. When we get our attribute tags and some fraction of elements client-side without a plugin, that's an important aspect of our message. Then we can steer them towards our implementations. That's where the strength of standards come in. That's my extended sales pitch on why I believe the WG needs to publish this with the name WebFormsA, to clearly indicate the space of this document and show we met our deliverables.
John Boyer: Any comments?

John Boyer: Do we need to make a "shortname" request for the WebFormsA spec in order to do FPWD?
Steven Pemberton: I suppose we do, yes. Do we have consensus?
John Boyer: Any objections on call to shortname of http://www.w3.org/TR/WebFormsA/ for FPWD?

John Boyer: Once we publish FPWD, it's not a technical issue, so as further drafts are published, they would be about technical issues, not marcom issues. This would be harder to change, but anything's possible. I hear no objectiosn on the call. No idea's perfect; there are drawbacks to every approach, but in my view this is the best overall approach for this WG and I appreciate your support.

Action 2008-11-5.1: Steven Pemberton to request shortname WebFormsA

* XForms 1.2 repeat

http://www.w3.org/MarkUp/Forms/specs/XForms1.2/modules/streamlined/index-all.html#default-data-instance-startsize

John Boyer: I have found all we need to do is tag something with a startsize to mark it a repeat.
John Boyer: I have seen applications which want to start with a size of three, but that's all the indication that we need that something is being repeated. This starter module won't offer everything that XForms repeat can offer; for example, XForms 1.1 can bind to nodes with different names and parents, but that power is available in XForms elements. The attribute syntax offers XForm 1.0 homogeneous collections. If you need to define your own data, or cross parent boundaries in the schema, then you can scale up and onramp. Start low and scale up in the areas that you need.

John Boyer: Note the instance that gets generated. This is the mapping. There is one attribute added, the default="true" attribute. This is not specific to repeat; we will need this in the Instance Data module. Declared instance data may be for forms, or may be for submissions for web services. An XForms instance element with default="true" is the default instance, the instance for data. Otherwise we'll make a generated instance. It will be created as the first child of the form element.
Leigh Klotz: Couldn't this be done in such a way that it's consistent with what we have now?
John Boyer: So let the default be true for the first instance and the second not?
Leigh Klotz: However we do it, it would be good to have to have it consistent with XForms 1.0 where the first instance replaces the lazy instance.
John Boyer: So the default of default attribute would be true for the first and false for the rest?
Leigh Klotz: Is there a way to bind to a second instance in WebFormsaA?
John Boyer: Via the ref attribute with UI controls. But for a web service, a submission and a request and response instance. On the xforms-submit handler they'd copy data, and then on the done, they'd copy it back to SOAP.
Leigh Klotz: For SOAP, yes, but for REST there's no envelope.
John Boyer: I'd have the submission bind itself to the instance directly for REST. It would be a lower probability they'd want to bind UI controls.
Leigh Klotz: For a REST service? I can see uses of multiple instances on the page.
John Boyer: Yes, one REST service provides the same data but you could decouple it.
John Boyer: So for the case where people author multiple instances, what declarations do we want people to put on every time that says don't generate a default instance.
Leigh Klotz: So you have to put default="true" on some instance, and if you don't, then the first is the default.
John Boyer: To serialize a document on saving for ODF, for example, you write the content of the generated instance with default="true".
Leigh Klotz: Why not use the instance attribute on form and an ID on the innstance?
John Boyer: That's great. I like that better.
Leigh Klotz: If we go with that, I'm done.
John Boyer: If we declare a model, then we go back to model rules.
Leigh Klotz: How do model and form elements play out against each other>
John Boyer: Who wins?
Leigh Klotz: Yes. We could add an instance attribute to the model element. That model/@instance sets the default instance for the model rather than first in document order. And we copy the instance attribute from the declared form to the implied model.
John Boyer: That cleans up some stuff for us. Does anyone object?

Paul Butcher: [Joins]

John Boyer: So unless someone includes the instance attribute on a form element, they'd get a default instance. It's only an override of the generated instance if they put the id of an instance in the form. That replaces the instance/default.
Paul Butcher: And with a similar attribute on model in canonical XFOrms.
John Boyer: Exactly. So if you declare a model for a WebFormsA document, the instance attribute would override the instance attribute on the form tag itself, should someone have written it both places. It makes it a clear override scenario.

Action 2008-11-5.2: John Boyer to add model/@instance to XForms 1.2 and form/@instance to WebFormsA to replace xf:instance/@default.

* Run-time form control operations

http://www.w3.org/MarkUp/Forms/specs/XForms1.2/modules/streamlined/index-all.html#runtime-form-control-operations

John Boyer: I'm using the dot notation here. If you use this in a browser, it will change the value of a form control. I'm not sure if we'd have difficulty detecting that.
Mark Birbeck: I sent some comments this morning and that's one I flagged. In some implementations you might be able to override the value property but I don't know if all browsers would support that. So my preference it a setvalue method. Or you could use a super-element. document.getRuntimeElementById(x). That would be feasable.
John Boyer: We might get out of the gate with that.
Leigh Klotz: But it makes it non-interoperable with other HTML packages, such as those which do rich text editing.
John Boyer: Do you hear about it via value-changed?
Mark Birbeck: In some but not all.
Paul Butcher: I believe IE doesn't send the value-changed event.
Mark Birbeck: We're unable to simple set the value directly; we have to have a method. The other issue is what browsers to be interoperable with.
Leigh Klotz: Could you replace document and use a proxy?
Mark Birbeck: You can't set the prototype of document in IE. AJAX libraries complain about this. JQuery, for example, doesn't deal with HTML elements. You could do document.getElementById= but that doesn't work either in IE, I think.
Leigh Klotz: So we need to be interoperable with others.
Mark Birbeck: They all have different ways of doing it. You could offer setvalue and say that .value works but you need to do refresh yourself. A compromise might be the kind of code here followed by processor.rebuild(), a procedural awareness that you need.
John Boyer: Or .refresh().
Mark Birbeck: So they say people like procedural stuff, and as long as we're able to get at the same data declaratively or procedurally, as long as it's the same data, what's the big deal.
John Boyer: Or document.update
Mark Birbeck: Then the document would need to be intelligent about rebuild vs recalculate.
John Boyer: It could look at the update flag.
Mark Birbeck: That's a good compromise. document.update might do nothing. That's good.
Paul Butcher: On the super object that redirects to model: although that's possible in formsplayer or a pure script version, you can't do any added value on property sets because you override. It would have to be done later. If you set .value then nothing happens. If you set .value=hello, then you've over-written the value.
Mark Birbeck: In Firefox you can provide getter and setter methods for properties.
John Boyer: So we are back to setvalue?
Paul Butcher: Or the author needs to know to call update after setting a value.
John Boyer: update would not be aware of the value change though.
Paul Butcher: Yes.

John Boyer: That's a secondary thing. I'd like there to be a difference between the schema-compliant date raw value and the formatted textual value that the form control displays. It would be cool to say appearance=currency, for example.
Mark Birbeck: We need to know which value it applies to. In old DOM, it would apply to the pe-value element. If you're using setvalue, it can apply to the control itself. It's what we've got in Ubiquity XForms: the method knows to pass it onto the UI implementation from the control object.
John Boyer: How do we detect that the UI control has changed when someone types into it?
Mark Birbeck: We register for the onvaluechanged event. The XForms input control contains a pe-value control, which contains an input box, and that's three objects. In the streamlined syntax with an HTML input control, they are the same object. so the value-changed event gets passed to itself. In IE you get a value-changed event when the UI changes the value.

Mark Birbeck: [various discussion about Ubiquity implementation and author expression]
John Boyer: [various discussion about lexical-presentation filter formatting]
Mark Birbeck: Do you use types or patterns?
John Boyer: We use both, including regular expressions. There's also an array of keywords ("currency") that are shorthands for patterns, including locale.

Mark Birbeck: Filtering in/out is a few lines of code if we have setvalue. How we expressing it is of course another matter. I don't think we need any more.
John Boyer: I think we should switch over to setvalue for FPWD.

John Boyer: We have to run.

Mark Birbeck: I would like to record that I think the name WebFormsA is the wrong way to go. I have touched on this point in my email. It's no criticism of the draft, which is very good. I would focus more on the HTML and XHTML appearance. The prefixes are making it complicated.
John Boyer: So just get rid of wfa:?
Mark Birbeck: The example in the email in RDFa would be for multiple languages and it's great that it's getting into ODF and SVG but we also conceived it what way but made the first spec RDFa+HTML. I wonder if we should do the same here. Get rid of wfa:. Give examples but do HTML first.
John Boyer: Good point.
Mark Birbeck: Focus on the good ideas from WebForms and HTML5. Talk about an HTML module. Hit those points.
John Boyer: That would simplify the document. We'll discuss this next week. I'll come up with another draft.

* IRC Log

http://www.w3.org/2008/11/05-forms-minutes.html

* Meeting Ends