Minutes for XProc WG telcon of 23 Mar 2006

See also: http://www.w3.org/XML/XProc/2006/03/23-minutes.html
(Apologies for tardiness.)

W3C[1]

                                   - DRAFT -

                            XML Processing Model WG

23 Mar 2006

   Agenda[2]

   See also: IRC log[3]

Attendees

   Present
           Andrew, Paul, Rui, Alex, Henry, Richard, Alessandro, Norman,
           Murray, Michael

   Regrets
           Erik

   Chair
           Norm

   Scribe
           Norm

Contents

     * Topics
         1. Administriva
         2. Accept this agenda
         3. Accept minutes of 9 Mar?
         4. Accept minutes of 16 Mar?
         5. Next meeting 30 Mar
         6. Technical
         7. Conditionals and sub-pipelines
         8. Sub-pipelines
         9. Any other business
        10. Face-to-face in August in Toronto
     * Summary of Action Items

     ----------------------------------------------------------------------

  Administriva

  Accept this agenda

   Accepted

  Accept minutes of 9 Mar?

   Accepted

  Accept minutes of 16 Mar?

   Accepted

  Next meeting 30 Mar

   Regrets from Henry

  Technical

   <scribe> ScribeNick: MSM

   AM: have made a number of formatting and stylistic changes.
   ... Table is compacted, I hope it's easier to read.
   ... The use cases now have identifiers which can remain constant across
   reorderings.

   NDW: I'm comfortable with publishing this, although I still have questions
   about the table.

   AM: well, the table should be either completed or dropped. it's valuable,
   but it's not worth delaying publication over.

   NDW: recall that the use cases and requirements are not fixed and
   immutable from this point on.

   <PGrosso> http://www.w3.org/XML/XProc/2006/03/23-agenda.html[4]

   MM: let's make it invisible rather than deleting it.

   <PGrosso> http://www.w3.org/XML/XProc/docs/langreq.html#use-cases[5]

   clarification: it's the table at the beginning of sec 5 we are talking
   about

   <Norm> ScribeNick: Norm

   MSM: I'd rather leave the table in place with a note to say that it's
   incomplete

   Murray: Is that an offer to complete it?

   <scribe> ACTION: MSM to draft a complete table; ETA: 21 Apr 2006 [recorded
   in http://www.w3.org/2006/03/23-xproc-minutes.html#action01[6]]

   We'll publish the document with the table, with a note that it's
   incomplete

   <scribe> ACTION: Alex: add a note to the effect that the table is
   incomplete [recorded in
   http://www.w3.org/2006/03/23-xproc-minutes.html#action02[7]]

   Proposal: The WG has consensus to publish the Use Cases and Requirements
   document with minor editorial changes including a reordering of the Use
   Cases.

   Accepted

   <scribe> ACTION: Norm to request first-public-working draft status
   [recorded in http://www.w3.org/2006/03/23-xproc-minutes.html#action03[8]]

   Publication date: 4 Apr 2006

   <scribe> ACTION: Alex to produce a draft with reordered use cases by 29
   Mar 2006 [recorded in
   http://www.w3.org/2006/03/23-xproc-minutes.html#action04[9]]

  Conditionals and sub-pipelines

   <richard> http://www.cogsci.ed.ac.uk/~richard/pipeline.html[10]

   Norm observes that last week Henry tried to outline Richard's position.

   Norm asks Richard if he has anything to add

   Richard: On reflection, the work we did at the face-to-face was too
   complex.
   ... Having components with unread inputs or unwritten outputs spreads the
   conditional across the whole pipeline
   ... I'm not suggesting a simpler approach where the
   inputs/outputs/parameters of each side of the branch must be the same
   ... I'm still suggesting that the test be controlled by an XPath over a
   separate documents
   ... What if you want the two branches to have different inputs?
   ... You can put the inputs inside the conditionals.
   ... I've described this at the URL:
   http://www.cogsci.ed.ac.uk/~richard/pipeline.html[11]

   Alex: This is a lot like what I do now.

   Richard: Unlike Alex, I distinguish control structure from things that
   happen in components.
   ... I wanted to make the control structure explicitly part of the
   language.
   ... My aim is to find the smallest amount of control structure necessary.
   ... I think viewports, for example, don't have to be control structures.

   Alex: Is this if/else or choose?

   Richard: I've deliberately not answered that question. You could in
   principle compile from a choose down to an if/else as I've described here.

   Norm: I think the question of whether conditionals are part of the
   language or just components is central.
   ... I'm leaning towards the idea that control structures should be in the
   language

   Richard: I wanted to avoid the case where a component took two pipelines
   and a condition. This would be something like 'eval' and that makes things
   less transparent.

   ack

   <Zakim> ht, you wanted to argue in favour of conditional-in-the-language
   position

   HT: I want to endorse the inclination that we should have conditionals in
   the language
   ... Exposing conditionals as a language construct is important in order to
   allow the analysis of pipelines to be a sensible thing to undertake.
   ... Knowning that there are exclusive "OR"s about is a potentially
   important factor in analysis.

   <MSM> Why not just say that the language does not guarantee either that
   every component will run, nor that components in the false branch won't
   run?

   Norm: Anyone uncomfortable with conditionals as components-in-the language

   MSM: Alex has argued in the past for the view that control structures
   shouldn't be part of the language so that you can add new control
   structures by adding new components

   <ht> HST doesn't hear roll-your-own-control being ruled _out_, just
   exposing conditionals as part of the language _in_

   Richard: That raises the question of side effects.

   MSM: There are programming languages that say "under these conditions
   whether the side-effect is observable or not is undefined"

   Richard: They say that about their basic conditional?

   MSM: Yes.

   MSM: In particular, boolean conditionals may be evaluated in some
   indeterminate order, short circuited or not.

   Some discussion of whether that's the same as the possible implementation
   of the else branch

   Alex: I have a bunch of developers using pipelines. I make no distinction
   between steps and language constructs like choose and the viewports. My
   impression is that they find this confusing.
   ... Implementation-wise, they're all components. But having conditionals
   and viewports not part of the "higher language" constructs is confusing to
   users.
   ... In the end, my choice to implement choose as a component is just an
   implementation choice, no more.
   ... I make sure the "else" branches don't run.

   <MSM> If what is being proposed is "let us define semantics for
   conditional constructs as part of our spec", then I think I am OK with it.

   I think that's what we're saying MSM

   <MSM> As long as we're not saying "no component is allowed to do anything
   but read input and write output" ...

   HT: I don't propose to rule out components that perform conditionals, just
   the positive aspect of making some conditionals part of the language.

   MSM: I would have expected this to be a question of what's defined in our
   spec, but we seem to be going a little further than just putting it in the
   spec.
   ... I want it to be a language construct vs. I want conditionals to be
   defined in our spec seems to be the issue.

   Richard: Suppose that you didn't have an "if" and you wanted to implement
   it as a component.
   ... This component would have to have inputs and etc., but also a
   description of the "if" and "else" branches.
   ... So if we said that's how it worked, we'd have to make it possible for
   pipelines to be parameters to components.
   ... This gives components a lot more power than we need to do the bare
   minimum.
   ... I don't want the basic, minimal language to have to support that
   complexity.

   MSM: I guess I see some tension between what should be the minimum and
   what should be possible.

   <ht> Richard contrasts fexprs and macros in Lisp

   Richard: I'm quite happy with something that works like a macro, something
   that turns into some control structure using that. What I'm not happy with
   is something that effectively "evals" its arguments to perform a
   computation

   Alex: I allow you to embed chunks of a pipeline in your components.

   <MSM> Richard, can you type in the Lisp keyword / technical term you were
   pronouncing?

   <richard> FEXPR

   Alex: An analogy here is XSLT instructions. If you want to write your own
   instruction, you need to be able to embed other instructions inside it.

   <richard> it's one the kinds of EXPR (expression)

   Alex: In XSLT, that's completely implementation defined. It's an issue if
   we need to go there or not.

   <richard> you won't find it in scheme!

   Alex: That's one way to give extensibility without having to reinvent the
   world. You can invent your own crazy conditional with side effects or what
   have you. But it does put additional requirements on implementors.

   <MSM> Ah, that may be why it sounded unfamiliar

   <richard> scheme takes the approach i'm advocating, it has macros but no
   eval-like mechanism

   <richard> And my point about viewports is that they can be implemented in
   a macro-like manner without any "magic" components

   <alexmilowski> yes.

   <scribe> ACTION: MSM to setup bugzilla for us [recorded in
   http://www.w3.org/2006/03/23-xproc-minutes.html#action05[12]]

  Sub-pipelines

   Norm: The ability to define and reuse a sub-pipeline in the same document
   is still an open quesiton

   Richard: If we accept the separation of the language into a conceptual
   part and a syntax for expressing that, then this issue falls into the
   second part.
   ... I think we're all agreed that conceptually you should be able to put a
   sequence of steps anywhere that a component can occur

   Norm: Do we all agree that conceptually you can put a sub-pipeline
   anywhere you can put a component?

   Some "yes"es, some "not sure"s

   No "no"s

   <MSM> it sounds right, but I keep worrying about a catch I'm not seeing.

   <alexmilowski> (sorry... stepped off...) yes

   Norm: Raising the question to the conceptual level seems to reduce the
   urgency of answering the question

   HT: But it does raise the urgency on the question of whether we're talking
   about an abstract syntax with a nearly-isomorphic concrete syntax or if
   we're designing an virtual machine with a concrete syntax that might be
   quite removed
   ... The time is coming when we're going ot have to make our minds up

   Richard: I think you're right, but the answer will be neither of the two
   extremes
   ... The abstract primitives aren't a virtual machine, but they're designed
   to make programming easier.
   ... They're more like the primitives of lisp that will be extended by
   writing functions and macros on top of them

  Any other business

  Face-to-face in August in Toronto

   Alex: Exact time is undecided
   ... But I'm willing.

   Norm: Anyone uncomfortable with having another f2f this soon?

   <MSM> which week in August?

   Richard: I'm not sure I can make it, but the date doesn't have much
   bearing.

   HT: I think it's a good idea, I will try to come.

   Norm: Please respond in email if you prefer 2-4 Aug or 14-17 Aug

   Adjourned

Summary of Action Items

   [NEW] ACTION: Alex to produce a draft with reordered use cases by 29 Mar
   2006 [recorded in
   http://www.w3.org/2006/03/23-xproc-minutes.html#action04[13]]
   [NEW] ACTION: Alex: add a note to the effect that the table is incomplete
   [recorded in http://www.w3.org/2006/03/23-xproc-minutes.html#action02[14]]
   [NEW] ACTION: MSM to draft a complete table; ETA: 21 Apr 2006 [recorded in
   http://www.w3.org/2006/03/23-xproc-minutes.html#action01[15]]
   [NEW] ACTION: MSM to setup bugzilla for us [recorded in
   http://www.w3.org/2006/03/23-xproc-minutes.html#action05[16]]
   [NEW] ACTION: Norm to request first-public-working draft status [recorded
   in http://www.w3.org/2006/03/23-xproc-minutes.html#action03[17]]
   **
   [End of minutes]

     ----------------------------------------------------------------------

   [1] http://www.w3.org/
   [2] http://www.w3.org/XML/XProc/2006/03/23-agenda.html
   [3] http://www.w3.org/2006/03/23-xproc-irc
   [4] http://www.w3.org/XML/XProc/2006/03/23-agenda.html
   [5] http://www.w3.org/XML/XProc/docs/langreq.html#use-cases
   [6] http://www.w3.org/2006/03/23-xproc-minutes.html#action01
   [7] http://www.w3.org/2006/03/23-xproc-minutes.html#action02
   [8] http://www.w3.org/2006/03/23-xproc-minutes.html#action03
   [9] http://www.w3.org/2006/03/23-xproc-minutes.html#action04
   [10] http://www.cogsci.ed.ac.uk/~richard/pipeline.html
   [11] http://www.cogsci.ed.ac.uk/~richard/pipeline.html
   [12] http://www.w3.org/2006/03/23-xproc-minutes.html#action05
   [13] http://www.w3.org/2006/03/23-xproc-minutes.html#action04
   [14] http://www.w3.org/2006/03/23-xproc-minutes.html#action02
   [15] http://www.w3.org/2006/03/23-xproc-minutes.html#action01
   [16] http://www.w3.org/2006/03/23-xproc-minutes.html#action05
   [17] http://www.w3.org/2006/03/23-xproc-minutes.html#action03
   [18] http://dev.w3.org/cvsweb/~checkout~/2002/scribe/scribedoc.htm
   [19] http://dev.w3.org/cvsweb/2002/scribe/

    Minutes formatted by David Booth's scribe.perl[18] version 1.127 (CVS
    log[19])
    $Date: 2006/03/28 19:40:49 $

Received on Tuesday, 28 March 2006 19:42:30 UTC