Forms Working Group Teleconference

07 Jul 2010


See also: IRC log


[IPcaller], [IBM], wiecha, Steven, Nick_van_den_Bleeken, Alain, unl, John_Boyer
Philip, Leigh, Erik


<trackbot> Date: 07 July 2010

<Steven__> huh?

<pfennell> I can't join the call but I am watching this channel.

<Steven__> Previous: http://www.w3.org/2010/06/30-forms-minutes

<scribe> scribe: wiecha

<Steven__> http://www.w3.org/MarkUp/Forms/2010/xforms11-qr.html


Steven is looking for comments/feedback on the quick ref

preferably in next 3 weeks

is also planning to update 1.1. tutorial, have been working on it during the past week using xsltxforms for live examples

+1 from wiecha

Steven asks Alain whether copy is implemented in select

Alain: not yet

Steven: anticipating publishing the 1.1 tutorial before leaving on vacation, would like feedback there as well

<nick> http://www.w3.org/2002/09/wbs/34637/32219/results

will be calls next week and week after

<Steven__> http://www.w3.org/2010/06/30-forms-minutes.html

Node creation functions

<Steven__> http://lists.w3.org/Archives/Public/public-forms/2010Apr/0024.html

Nick: node creation functions would avoid need for templates and allow creation of nodes w/names just known at runtime

<Steven__> akim, who is noisy?

Nick: John suggested using creation functions only in actions to avoid refresh problems

Steven: would like a simpler approach than we have now

Nick: can accept restrictions as suggested by John

John: get something working for most urgent use cases, then look at processing model changes for other cases later on

Steven: could @ref be extended to create nodes as side-effects

Nick: node fns solve other issues too...iterations in repeat or attributes in data structure for submission, hard with just @ref
... maybe having something even easier like @ref would be good too, but other cases remain
... @ref w/predicate would be hard/invalid

Steven: trying to make the simple cases simple

John: what are those?

Steven: first one in email, ref="foo/@bar" just create @bar if it doesn't exist

<nick> http://www.w3.org/MarkUp/Forms/wiki/Node_%27create%27_functions

Alain: what about attribute as a new action?

Steven: attribute is an example of one case, could be used for elts as well

Nick: that's where node create fns come in

Steven: see the complex cases yes, but there are really simple ones

John: we've made other decisions where we create more attributes
... maybe we need create if not there, return if there type of function...still inside the ref

e.g. require("foo/@bar")

Nick: a fn can never change the data model

so node fns use insert action since fns are pure

John: right

Nick: need to avoid changing underlying data model

Alain: main problem is about schema

can define the attribute is relevant but if it's not in the instance not possible to ...

would support ref="foo/@bar" if allowed by schema

John: right, author has said if not in instance data pls add, could just add by other means

Nick: we have conditional insert with node fns test for missing content and do extra inserts

Steven: sounds like a bind...required="foo/@bar"

Nick: yes, but binds bind to nodeset

in our impl we can say, for example, want 3 iterations and create those placeholder elements

Alain: right, that's why I think it's schema driven

Steven: so supply fragment of schema

Alain: don't use instance to determine if it's relevant to have content...just schema

Steven: problem arises with optional elements

wiecha: schema is underconstrained

Nick: gets worse with sequence

or multiple

John: schema by itself may not be enough but it's part of the approach

need to differentiate between schema from external source, schema for user interaction, etc

seems like the requirement is to have an automatic way to determine at runtime conditional content

at design time we create optional elements and then conceptually set up relevance constraints to produce the instance as desired for submission

Nick: do you unroll everything? could have lots of branches from the schema

John: right, but with schema alone that's the weakness...

might have to do pruning downstream

it's a problem more general than UI binding

not enough expressive power in xforms to deal with optional elements

Steven: right, but still have the feeling that a lot of this could still be declarative

John: that's where I'm going...things we auto-generate at design time could be applied to runtime too

Nick: we allow controls to say data needs to be there so at runtime we insure node is in instance

John: thinking more about design experience analogy...starting from data/schema we start by drag/drop of instance data to canvas

if there are optional subtrees and user doesn't generate UI controls, that allows us to prune

taking this idea into runtime, suppose model has schema and instance has flagged for autogeneration, then it's like lazy-authoring++

instance is backed by schema, have UI controls pointing to instance...should then auto-generate

Steven: we use bindings to decide whether control is there or not based on instance vs. wanting to lazy generate

need to distinguish between these behaviors

could be said in the model, or flagged on the UI

seems like useful function for the author

Nick: not just element being there but also having a useful default

we can do this in our impl...checks for node, creates if needed, if value is empty applies default from design time

Alain: what about submission?

should we delete extra nodes not being used?

Steven: seems like we can still use relevance for that

Alain: ok

Steven: interesting about default, suppose we had a MIP that said default="abc"

then default="" creates w/o value

default="abc" with value

Nick: still need to control number of repeats

Steven: can think of static number of repeats, but need to think about dynamic

Nick: need to be flexible when these constraints are applied...only at load? after instance replace? other?

Steven: sounds like we need some design work on doing this declaratively, but node creation fn should still exist as an action

<nick> that is my opinion too, the node creation functions solve other needs too

John: right, sounds like a feature separate from node create functions

Steven: do we need an action item?

Nick: for node creation functions, I could send an email for additional feedback from those not on the call

then implementors could experiment...

John: key bit is to say we think these are good additions that should be avail to xpaths in actions only...

encourage also implement binding exception if used elsewhere

Nick: also would think about a parse function

takes XML as text content and returns doc node

then can be inserted etc

John: have also seen need for parse and serialize too...should go in together

talked about this for 1.1 but should consider again

might be some wiki content

Nick: yes, parse is there but not serialize

since that's not a "creation" function :-)

<nick> http://www.w3.org/MarkUp/Forms/wiki/Node_%27create%27_functions

John: could you add parse to the page?

<scribe> ACTION: Nick to update wiki page to split out parse and serialize as future fns/actions with exception handling [recorded in http://www.w3.org/2010/07/07-forms-minutes.html#action01]

<trackbot> Created ACTION-624 - Update wiki page to split out parse and serialize as future fns/actions with exception handling [on Nick Van Den Bleeken - due 2010-07-14].

Dependencies for XPath evalution

<Steven__> http://lists.w3.org/Archives/Public/public-forms/2010Apr/0031.html

Alain: changing child node should change value displayed

does change to child node imply change to parent?

Nick: not according to the spec

John: the string function is implicitly being invoked internally references nodes which are not in the dependency graph

since they don't appear in the parameter list

we can't see into the internals to see what else might change

the author could explicitly list nodes in the value expression

Steven: where is the problem?

John: spec doesn't allow this, no

value output is implicitly gathering up entire subtree...but the dependency graph only looks at fn signatures

and this behavior is opaque

we don't have metadata on a fn listing those additional nodes being referenced

Nick: might be possible to do this with ref rather than value...

John: spec says UI should reflect state of the model in general, but in specifics goes back to the graph

Nick: maybe we could interpret the spec to allow this, but it's not the usual impl behavior

Alain: EMC does behave as I described...it works

Nick: right, depends on how they're tracking changes

might not be narrowly scoped as per the spec

Steven: conclusion? leave alone?

John: there is an alternative way to write this

Alain: still have a concern about linkage between parent node and child node linkages

specifically about xslt fns

John: came up because xslt, like string, access nodes that are not apparent in its param list

so how to track dependencies?

spec doesn't cover these extra dependencies

section 7.4.3

<John_Boyer> http://www.w3.org/TR/xforms11/#expr-ui-expressions

which suggests there will be impls which do this optimization and this is ok

Nick: we talked about this and also had same issues about ID fn...touches descendent nodes...same question

ID can specify roots of subtrees where you search for matches

so if you change an ID need to reeval the fn

will probably occur in other functions in the future as well

John: yes, generic problem not just @value implicitly invoking string

any extension xpath function may touch nodes we don't know about

let alone the xforms built-in fns

Nick: maybe we need some additional metadata on a function declaration

or conventions on fn signatures

Steven: sounds like we need more research

John: does not currently work, and would be challenging to make it work

Steven: yes, but use cases are there

John: yup

Steven: will mark this is not yet resolved





Summary of Action Items

[NEW] ACTION: Nick to update wiki page to split out parse and serialize as future fns/actions with exception handling [recorded in http://www.w3.org/2010/07/07-forms-minutes.html#action01]
[End of minutes]

Minutes formatted by David Booth's scribe.perl version 1.135 (CVS log)
$Date: 2010/07/07 16:05:41 $

Scribe.perl diagnostic output

[Delete this section before finalizing the minutes.]
This is scribe.perl Revision: 1.135  of Date: 2009/03/02 03:52:20  
Check for newer version at http://dev.w3.org/cvsweb/~checkout~/2002/scribe/

Guessing input format: RRSAgent_Text_Format (score 1.00)

Succeeded: s/yes/not yet/
Succeeded: s/arg/parameter/
Succeeded: s/reference/referenced/
Found Scribe: wiecha
Inferring ScribeNick: wiecha
Default Present: [IPcaller], [IBM], wiecha, Steven, Nick_van_den_Bleeken, Alain, unl, John_Boyer
Present: [IPcaller] [IBM] wiecha Steven Nick_van_den_Bleeken Alain unl John_Boyer
Regrets: Philip Leigh Erik
Agenda: http://lists.w3.org/Archives/Public/public-forms/2010Jun/0031
Found Date: 07 Jul 2010
Guessing minutes URL: http://www.w3.org/2010/07/07-forms-minutes.html
People with action items: nick

WARNING: Input appears to use implicit continuation lines.
You may need the "-implicitContinuations" option.

[End of scribe.perl diagnostic output]