- From: Brian McBride <bwm@hplb.hpl.hp.com>
- Date: Thu, 08 Jan 2004 09:36:50 +0000
- To: Sandro Hawke <sandro@w3.org>
- Cc: david_marston@us.ibm.com, www-qa-wg@w3.org, Jeremy Carroll <jjc@hplb.hpl.hp.com>
Sandro Hawke wrote: >>DM>> "Checkpoint 1.3. For each class of product the WG intends to >>DM>>specify, determine and document the testing approach to be used for >>DM>>its conformance test suite." >> >>SH>Ah, but RDF Core chose to not define the products being tested,... Judging by David's next reply, the term 'product' is used in a specialist sense. I made the same mistake as you Sandro, though I think we can be forgiven since the term is not defined in the spec I read or the QA Glossary. David seems to be interpretting "the product of a specification" to mean that which is specified by the specification. QA Folks: you might take that a suggestion to add the term "product" or "product of a specification" to the QA glossary. David also, I think, is using the term 'specification' in a specialist sense, i.e. that specifications define the behaviour of software. Declarative statements are 'definitions'. If that is what is meant by these terms in the QA specs, that should also be spelled out in the glossary. >> >>How did you demonstrate the existence of more than one conformant (and >>presumably interoperable) implementations? > > > As I understand it (as a close observer from the outside), the group > saw itself as defining a language/data-format, not any particular > software at all. Yes. We saw ourselves as defining a language and its meaning. It wasn't really clear how interoperability could be > demontrated. They debated defining "a conformant RDF parser" but it > was tricky enough that they didn't do it. It wasn't the trickiness that was the issue. We had to keep one eye on the calendar as we were taking rather a while. To start defining things like parser we would need some notion that parsers existed. My concern was that we have to define a processing model that identified the various sorts of processors there were and that was a task that risked taking a while and was unecessary. > > So the tests demonstrate interoperability by way of an unnamed, > undefined set of classes of implementations. Sorta, though I would spin it differently without mentioning implementations. The rdf/xml language syntax, we defined in terms of a grammar over, loosely speaking, input symbols that SAX (XPATH nodeset) events, i.e. the equivalent of a schema. The RDF/XML language semantics is defined in terms of: - an abstract syntax - definined in terms of mathematical graph - an equality function between two graphs - a way of determining whether two graphs are equal - the syntax of a simple language called n-triples - an isomorphism between n-triples syntax and the RDF abstract syntax - a function that transforms rdf/xml to n-triples With this machinery we can, given an arbitrary RDF/XML document D: - transform D to its equivalent n-triples document T - determine the graph that T describes - given that the graph of D equals the graph of T we now have the graph of D - and the RDF semantics document defines the semantics of an abstract graph, so now we have the semantics of D. Done. No mention of parsers. Now a software writer can say, I have a piece of software. I call it the foobar RDF parser. Foobar correctly implements the transform from RDF/XML to n-triples. Software can claim to correctly implement the functions we have defined. But we don't have to define 'classes of product'. [...] > > [ I've added co-chair Brian McBride back to the CC list to correct me > if I've got it wrong. ] Thanks. I'm finding this quite interesting. As you can see, I have a slightly different perspective. > > So the question here is whether folks should take the intermediate > step of spelling out what is expected to pass the tests -- what gets > the seal of approval if it does pass the tests -- and what does that > seal of approval say? RDF Core said they don't care enough about > the seals to figure it all out; WebOnt said they cared enough to do > some of it. Its not that we didn't care. I'm beginning to wonder whether the QA specs have taken too narrow a perspective on what the 'product' of a specification is, i.e. that it must be software. [...] >>My HTML analogy: you prove the interop by having several compatible >>user agents (browsers), so the spec defines what the user agent must >>do, in broad terms, when it is given a defined element (e.g., <a>). That is a procedural notion of specification. It talks about what a user agent must *do*. It is requiring a specification to define behaviour. The QA specs allow for declarative forms of specification too, yes? To take the <em> example, and being a bit careless with language, as I don't have all the machinery needed set up properly: 1. RenderingHtml is a transform from an HTML document to a physical form that can be perceived by the canonical human user. This document specifies constraints on conforming transforms. 2. Given document fragment D1 <em>text...</em> and document fragment D2 text... RenderingHtml(D1) should be perceived by the canonical human user to be more prominent than RenderingHtml(D2). There are a number of techniques that mey be used to give greater prominence to text. These depend on the medium in which the text is rendered. Examples include ... 3. RenderingHtml("<em>text1</em><em>text2</em>) = RenderingHtml("<em>text2text2</em>") The example David provided in his later post didn't include 3. I include it as an example something one can say clearly and with precision with the declararive style of specification. And it is nicely machine testable. Now a renderer, lets take an example at random, say a printer, can claim to implement a rendering function conformant with the constraints specified. The QA framework takes acount of and supports this approach to specification, right? Brian
Received on Thursday, 8 January 2004 04:37:57 UTC