OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

office message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Conformance Clauses Proposal


I apologize for not reviewing this earlier.  But since I woke up this 
morning at 4am, due to jetlag, I find myself free of meetings for a few 
hours, so I will make some comments now.  Overall I like the progress over 
ODF 1.0/1.1.  This is an important part of the standard, and will get a 
lot of attention during the review in OASIS, as well as in JTC1 when we 
submit ODF 1.2 for PAS approval.  So I'm hoping we can consider my late 
comments and perhaps make another iteration over this section.

I reviewed the "sixth iteration" dated 11/11/2008.

I think it would be good if we started the conformance section with a 
clear statement of what we will be defining.  Something like, "The 
OpenDocument Format standard defines conformance for documents, generators 
and processors, with two conformance classes called loose and strict." 
We'll need something like that for the Scope statement as well.  Probably 
want to synch up on the language.

I'm a little confused by the term "processor", since it is defined, 
somewhat circularly, as "a program that can parse and process OpenDocument 
document".  What is "to process"?  What is intended, beyond parsing? 

To my thinking, we have three kinds of applications:

1) generators (or writers or producers)
2) parsers (or readers or consumers)
3) processors (that both read and write)

I think we may be failing to acknowledge that 3rd kind of program, the 
ones that both read and write.  As we know, this brings in additional 
questions related to round-tripping, and that this is a thorny issue.  But 
it is a legitimate concern, and we should see if there is some language 
the TC can agree to for it, especially considering that most ODF 
applications fit into that category, and in practice interoperability 
would be enhanced by any firmer guidance ODF 1.2 can provide in this area.

Here are some specific comments:

Document processing -- 

"Documents that loosely conform to the OpenDocument specification..."

We introduce here the term "loosely conform" but we don't clearly indicate 
what our conformance classes are.  For example, do we want "loose 
conformance" and "strict conformance"?  or plain "conformance"?  Is there 
a better word than "loose"?  It carries a negative connotation in my ears. 
 

Also, do we need loose conformance at all?  Why not just have a single 
conformance class and anything beyond that is not conformant?  Then, if 
there occurs a commonly-used set of extensions to ODF, in a foreign 
namespace, then we can either included that in ODF-Next, or (more simply) 
define a profile for the extensions.

"Foreign elements and attributes shall not be part of a namespace that is 
defined within this specification."

"part of a namespace" is rather loose.  The term used by the Namespaces in 
XML Recommendation is "associate".  So I suggest, "Foreign elements and 
attributes shall not be associated with a namespace that is defined within 
this specification."

"If a foreign element has a  or  ancestor element and is a child elements 
of an element which may include..."   Typo.  Should be "child element" 
(singular).  Or do we really mean "descendant element"?

"For foreign elements that occur at other locations, conforming processors 
should not process the element's content, but may only preserve its 
content"

We have not defined "process".   Does it include "preserve its content"?

Also, why not make preservation of content of foreign elements be a 
"should"? Is there any reason why we would not make that recommendation?

In any case this "Document processing" section seems misplaced.  I wonder 
if it fits better if put in the Generator or Processor conformance 
section, since it is defining conformance.

So overall, I find this document processing area thorny and troublesome. I 
would not be disappointed if it were entirely removed from the standard, 
or moved to an informative annex on "How to extend ODF".  There is little 
value to implementors or users in having a conformance class for documents 
that are extended in nearly-arbitrary ways.  Nothing written here really 
allows such extended documents to interoperate.  On the one hand, I don't 
believe that there is anything intrinsically evil with extensions, but I 
don't think that we need to favor them with the label "loose conformance". 
 

Do we know what implementations today use foreign elements and attributes 
according to this section?  Is the usage widespread?

"Conforming OpenDocument Documents" -- this is defined currently as a 
condition, if/then.  But I think it should be stated as a requirement: "A 
conforming OpenDocument document shall adhere to the specification 
described in this document...".  Similarly, "An OpenDocument document 
which is also an OpenDocument Package shall...". 

Generally, we should use "conform" rather than "adhere" whenever possible.

Do we want to require a specific XML character encoding? 


2.1.3 -- "f the XML root is.... then it  shall be valid with respect to 
the strict schema defined by this specification."  What is "it"?  "XML 
root" doesn't make sense?   "Sub document" maybe?  A similar question in 
2.1.4.

"Conforming OpenDocument Generators" has the first conformance requirement 
stated as "It shall not  create any non-conforming OpenDocument document 
of any kind."  But this, stated as a negative, is untestable.  How can an 
implementation prove that it is incapable of producing a non-conforming 
ODF document?  What, for example, if the power goes out when in the middle 
of saving a document?  Would that render the entire application 
non-conforming?

I'd state this requirement more simply (and more testable) as "It shall 
produce documents which conform to this standard".


We might factor out the common requirements between normal and loose 
conformance rather than repeating material.  For example, we are currently 
stating the documentation requirement twice.

My preference would be to make the document requirement be a "shall" 
rather than a "should".  I think we're giving implementors a lot of rope 
to play with by allowing a loose conformance class, a significant ability 
to extend the standard in incompatible and proprietary way.  As stated 
before, I'd be happy if this ability were removed altogether.  But if we 
do allow it the label of "conforming" than I think we should require 
documentation of the extensions, not merely recommend it.

"Conforming OpenDocument Processors" -- "process" is not defined.
"It  be able to parse and process OpenDocument documents of one or more of 
the defined document types (defined by their MIME types) any of which are 
represented in packages."   I don't think we need to mention MIME types 
here.  We can just say "able to parse and process OpenDocument packages of 
one or more of the document types defined by this standard".  Better even 
if we can give a section reference.
Why is the single XML version a "may" rather than at least a "should"?  It 
is odd to have the single file version be present (and not deprecated) if 
we do not feel it warrants more than a "may" for support.

Regards,

-Rob


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]