W3C

NVDL Project Review – 24 Jul 2008

Agenda

See also: IRC log

Attendees

Present
Petr Nalevka and Jirka Kosek (Special Guests and Presenting); W3C team including: Dan Connolly, Olivier Thereaux, Michael Sperberg-McQueen, Philippe Le Hegaret, Chris Lilley, Doug Schepers (shepazu), Felix Sasaki, Ian Jacobs, Michael(TM) Smith, Ralph Swick et.al.
Regrets
TimBL
Chair
Dan
Scribe
Olivier

Contents


Convene, welcome presenters, review agenda

<ChrisL> Pointer to NVDL spec

<ChrisL> http://nvdl.org/

<Jirka> Presentation: http://www.kosek.cz/xml/2008w3c-nvdl/

<ChrisL> an implementation, oNVDL

<ChrisL> http://www.oxygenxml.com/onvdl.html

Presentation

http://www.kosek.cz/xml/2008w3c-nvdl/titlepg.html

Jirka: starts presentation.

Slide 1 - Introducing NVDL language - http://www.kosek.cz/xml/2008w3c-nvdl/foil01.html

Slide 2 - about authors - http://www.kosek.cz/xml/2008w3c-nvdl/foil02.html

Slide 3 - What is NVDL - http://www.kosek.cz/xml/2008w3c-nvdl/foil03.html

Slide 4 - NVDL Use Cases - http://www.kosek.cz/xml/2008w3c-nvdl/foil04.html

3 typical uses of NVDL

<Ralph> [Nice! "NVDL can integrate existing schemas written in different schema language"]

<karl> I wonder if they can integrate any kind of schemas languages or only schemas languages for XML

Slide 5 - Compound Document Validation Today - http://www.kosek.cz/xml/2008w3c-nvdl/foil05.html

Petr takes floor

<karl> thinking about CSS syntax inside an XML document for example, two different types of schemas and vocabulary.

<DanC> (MSM, perhaps this addresses agendum 5...)

Slide 6 - Example: Compound schema for XHTML with embedded RDF, SVG and MathML written in W3C XML Schema - http://www.kosek.cz/xml/2008w3c-nvdl/foil06.html

<DanC> (or maybe not...)

<MSM> (DanC, I believe it does. It's just that I don't believe it's technically accurate as an account of what is required to do this in XSD.)

Slide 7 - Pros and cons of this approach - http://www.kosek.cz/xml/2008w3c-nvdl/foil07.html

<ChrisL> so its like block structured languages compared to 'one big subroutine' programming

<Ralph> [I interpret the Note in slide 6 to be "Note, imagine a class of documents in which ..."]

<ericP> [+1]

<ericP> [or at least, it's useful to us that way]

<ChrisL> Ralph, yes ,that seems to be what its saying

Slide 8 - How to do things smarter? Use NVDL! - http://www.kosek.cz/xml/2008w3c-nvdl/foil08.html

Petr: Slide 8 has (simple!) nvdl example for the use case we have been describing

<dom> [it is pretty readable, indeed]

Slide 9 - Pros and cons of this approach (nvdl) - http://www.kosek.cz/xml/2008w3c-nvdl/foil09.html

<ChrisL> re-use is much more web-like

<DanC> (hmm... http://www.w3.org/2000/07/rdf.xsd ... odd... I had the impression RDF's syntax was awkward, at best, to represent in XSD; I would have expected RNG)

<Jirka> DanC: RELAX NG is from 2001

Slide 10 - (main) Differences between NVDL and W3C XML Schema Approach to Compound Document Validation - http://www.kosek.cz/xml/2008w3c-nvdl/foil10.html

<DanC> (this reminds me of some investigation by HT into XHTML modularisation and XSD and top-down vs bottom-up composability... something that's getting fixed in XSD 1.1... looking for pointers...)

<Liam> (greatly improved, not totally fixed I fear, because of some difficulties relating to attribute declarations)

<DanC> (http://www.w3.org/2001/tag/group/track/actions/48 ACTION-48 Produce an exemplary implementation of XHTML Modularization using substitution groups for both bottom-up extensibility and top-down modularity )

<DanC> (as I recall, the outcome was that it was workable except for timing differences in XSD 1.1 and XHTML mod)

Slide 11 - The Language — Modes - http://www.kosek.cz/xml/2008w3c-nvdl/foil11.html

Petr: going (a little) deeper in how nvdl language works

<ChrisL> deeper is good

Slide 12 - The Language — Rules - http://www.kosek.cz/xml/2008w3c-nvdl/foil12.html

Slide 13 - The Language — Rules (continued) - http://www.kosek.cz/xml/2008w3c-nvdl/foil13.html

Slide 14 - NVDL is not only mapping between namespaces and schemas - http://www.kosek.cz/xml/2008w3c-nvdl/foil14.html

http://www.kosek.cz/xml/2008w3c-nvdl/foil15.html

Chris: asks questions about context (slide 12)
... if you are in the head mode and find a div, do you switch to the block mode?

<DanC> ChrisL, I think the stuff on slide 12 is *not* saying anything about "if you're in head mode..."

Jirka: basically, it is stating what "could" be in the head element - content that would be validated against X,Y

Slide 15 - How does NVDL work - http://www.kosek.cz/xml/2008w3c-nvdl/foil15.html

Jirka: anything else would be ignored/rejected

<ChrisL> ok, thanks

Jirka: back to slide 15

<Zakim> ChrisL, you wanted to ask clarifying question

<DanC> (hmm... the input consists of a bunch of schemas too, no? or maybe the idea is that they're fetched during the process. hmm.)

<MSM> [Sorry, Jirka, can you repeat that bit?

<MSM> Under what conditions are things nested?]

Slide 16 - Validation and Dispatching Process - http://www.kosek.cz/xml/2008w3c-nvdl/foil16.html

<ChrisL> Doug - looks like we should be using the term 'validation candidates' in SVGT1.2 D.3.1

Slide 17 -Validation Against Multiple Schemas - http://www.kosek.cz/xml/2008w3c-nvdl/foil17.html

<DanC> plh, this slide (17) seems to give a "yes" answer to your question

http://www.kosek.cz/xml/2008w3c-nvdl/foil17.html

<Zakim> ChrisL, you wanted to ask whether splitting into validation candidates means original line numbering context is lost

<ChrisL> error locations given by xpath rather than line nubers - neat!

<Liam> [an nvdl implementation could probably handle line numbers by inserting blank lines and spaces]

http://www.kosek.cz/xml/2008w3c-nvdl/foil18.html

Jirka: +1 to Liam's suggestion, which is what our implementation does

Slide 18 - NVDL Implementations - http://www.kosek.cz/xml/2008w3c-nvdl/foil18.html

<DanC> I'm going to play the agenda into the channel to give people an opportunity to withdraw items

Slide 19 - JNVDL (Java Namespace-based Validation Dispatching Language) - http://www.kosek.cz/xml/2008w3c-nvdl/foil19.html

DanC: time check

<ChrisL> I see

<ChrisL> jnvdl:useWhen="@version = '1.0'"

<ChrisL> neat, how does doctype switching work?

<Jirka> we have jnvdl:useWhenDoctype

Slide 20 - JNVDL Extensions - http://www.kosek.cz/xml/2008w3c-nvdl/foil20.html

Jirka: extension for filtering when a namespace is used by different versions
... jnvdl:useWhen="@version = '1.0'"
... pure nvdl does not let you do that

<DanC> agenda order is 2, 8, 12, 7, 14

<plh> I thought that schema switching based on conditions was also supported in RNG. Is my recollection incorrect?

<ChrisL> on slide 22, i'm wondering how to extend that example to use @version so 1.1 and 1.0 go to the 1.1 DTD while 1.2 goes to the 1.2T RNG

<DanC> (I wonder if Chris and the presenters are available to stay after the chaired discussion to discuss details)

Slide 21 - The Relaxed Project - http://www.kosek.cz/xml/2008w3c-nvdl/foil21.html

<ChrisL> Yes, i am. i have some specific questions and examples to discuss

<Jirka> ChrisL: you can use different schema languages in different validate actions

<Ralph> [/me amused at the use of the term "restaurant" in this manner; it seems to work :) ]

<Jirka> Yes, I can stay longer on call

<ChrisL> I have also been looking at http://dev.w3.org/SVG/profiles/1.2T/publish/conform.html#ConformingSVGDocuments and thinking the nvdl there is all wrong and should use multiple modes rather than one big one

<DanC> FYI, I ordered the agenda based on a goal that I got from olivier: to get the team aware of the technology and how we could use it

<Jirka> Description of JNVDL extensions: http://jnvdl.sourceforge.net/extensions.html

<Jirka> plh: relax ng can switch content models, but not on full XPath basics

<karl> I note that these are also parts of the strategies used by htm5 validator - http://about.validator.nu/

Slide 23 - NVDL resources - http://www.kosek.cz/xml/2008w3c-nvdl/foil23.html

[presentation ends]

<karl> thanks to Jirka and Petr

Mixing elements and attributes (SVG + ARIA)

<PetrNalevka> Thank you all

<Ralph> +1, thanks, Jirka and Petr

Doug: interested in SVG and ARIA

<DanC> FYI, shepazu is Doug Schepers, who works on SVG, among other things.

Doug: ARIA is a set of attributes, describes roles and states the role can be in

<DanC> (karl, indeed... I can imagine a whole meeting just to talk about relaxed and validator.nu ...)

Doug: would want to validate SVG (or XHTML) with aria, would like to tell author you have right role, but you have the wrong state

<DanC> (doug, maybe you could type a little markup?)

<ChrisL> so its adding attributes in a given namespace to selected svg elements. or (harder) to add attributes i the nul namespace that have an 'aria-' at the start of the attribute name

<DanC> <svg:rect role="combo-box"> ... combo-box...</svg:rect>

<DanC> maybe?

<ChrisL> http://www.w3.org/TR/wai-aria/

Doug: e.g state="yes" for role="combo-box" is incompatible

Jirka: this is no task for nvdl, but could be handled by schematron

ChrisL: and you can tell nvdl to pass info to schematron

<ChrisL> so you could use nvdl to dispatch schematron (or xslt) to validate the correct use of aria attributes

<DanC> (time was when ARIA attributes were in a separate namespace... but that time seems to be passing...)

Petr: if you want relation from one namespace to another, you need the nvdl attach feature

MSM: on slide 17 - http://www.kosek.cz/xml/2008w3c-nvdl/foil17.html
... seem to talk about problems with existing schema languages
... but these seem to be issues with implementations

<karl> an example with SVG and ARIA - http://www.w3.org/TR/wai-aria/#impl_namespace

Jirka: explains an example of errors not being user friendly

<fsasaki> shepazu, example for the "attribute validation" issue: http://www.w3.org/TR/xml-i18n-bp/nvdl/xhtml-its.nvdl , described at http://www.w3.org/TR/xml-i18n-bp/#integration-its-xhtml-nvdl

Jirka: in practice I do not know grammar-base languages with user defined error messages

NVDL Conformance level with regards to schema support

MSM: not about schema languages in general, but current batch

Jirka: agreed

<ChrisL> s/[???]/useful/

PLH: are the supported schema languages left to each implementation?

Jirka: yes. most implementations support w3c xml schema, rnd, schematron
... some also support DTD validation

Ralph: interested in idea of more helpful user error messages
... especially in context of multiple validation
... quick description of what such an interface to several 1-language validator would look like?

Jirka: basically, nvdl splits documents into small fragments and sends to validator
... grabs results. can explain more about how jnvdl does it

<DanC> (Ralph, slide 18 suggests to me that the Java 1.5 validation API is a big part of the answer to your question)

<DanC> (I'm not familiar with it, though)

<MSM> [w.r.t. slide 12 - one question that arises, once the levels of language and implementation are disentangled better, is: given that we have shortcomings in existing implementations, is the right approach to fixing the problems to improve the implementations or to specify a new language that allows us to work around shortcomings of the current implementations of other languages?]

Jirka: nvdl is about the dispatching

Ralph: is the validation API part of the NVDL standard?

(slide 18)

Jirka: there is no API for the error messages in the ISO standard for NVDL

<DanC> * Yves http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/validation/package-summary.html

Petr: jnvdl uses the standard java validation API

(unwanted) extensibility provided by nvdl

Ralph: was curious about [slide 4] "Using !DOCTYPE or xsi:schemaLocation is not very good practice"
... interested in developing on those remarks

Jirka: lacking time for this :)
... postpone and discuss by email?

<ChrisL> it may be helpful to validate against different schemas at different times. so hardcoded location is bad

<ChrisL> zaki, agenda?

MSM: don't believe characterization of schema languages is correct
... suggest replacing have to with may
... etc.

Jirka: agree it is possible to create modular schemas with existing schema languages
... advantage of nvdl is that you do not need to do those schemas extremely carefully

<DanC> (Ian, any input on ACL of minutes?)

Jirka: nvdl allows easier manipulation of schemas

<DanC> MSM: suppose schema 1 says : x consists of an a, a b, and a c

MSM: nvdl could be used for extensions not expected by original grammar

Jirka: this is a difference of approach.

MSM: problematic is that nvdl can change content model

<Zakim> ChrisL, you wanted to say surely thats better than copy-and-modify?

ChrisL: I can do that by taking a schema and modifying it
... but loses modifications to original schema
... whereas modification by reference keeps a hook to the original
... reference allows you to do a superset

MSM: XSD and RNG allows that

Jirka: yes, if schema is written in a certain way you can do that

<MSM> [And problematic is that nvdl changes content models, while the rhetoric of the presentation is all about how hard it is to change content models, and how easy it is to use NVDL, which does not involve changing content models]

Petr: controversial to draw a strict line between author with control and language designer with control
... there is also the question of readability

Difficulty of implementing NVDL functionality in xproc

Felix: xproc would be interesting
... was thinking about the possibility of having xproc steps for dispatching and validation

Jirka: not sure, think xproc has simpler features than nvdl
... think you could validate with nvdl from xproc

ACL of minutes

RESOLUTION: the minutes of THIS meeting will be public

Meeting is (officially) ADJOURNED

<ChrisL> http://dev.w3.org/SVG/profiles/1.2T/publish/conform.html#ConformingSVGDocuments

(some participants stay for further discussion)

[End of minutes]

Minutes formatted by David Booth's scribe.perl version 1.133 (CVS log)
$Date: 2008/07/24 19:25:14 $