[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [office] Conformance Clauses Proposal
Hi Rob, thank you very much for your feedback. It took me unfortunately a little bit longer to respond than I hoped it would. On 11/17/08 14:14, robert_weir@us.ibm.com wrote: > 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. Yes, this sounds like a good idea. > > 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) This is what is meant by the term "processor". What about using the term interpreter rather than parser? SVG uses this term: http://www.w3.org/TR/SVG11/conform.html#ConformingSVGInterpreters The conformance clauses for SVG interpreters state: "A Conforming SVG Interpreter must parse any SVG document correctly. It is not required to interpret the semantics of all features correctly." So, this is actually close to what is called an "ODF processor" in the current proposal. > 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. I agree. But the requirements for applications that read and write documents heavily depend on the purpose of the application itself. We also have to consider that between a read and a write some or all of the information that is contained in the document changes, but that we don't know which information and why it is changed. That makes it very difficult to find requirements that are testable. I could actually imagine that this kind of conformance could be much better addressed by the OIC TC, where we may bind the requirements to profiles. > > 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. You are right that we use the term "loosely conform" before we define it. This could be solved by moving the document processing section behind the conformance clauses. The two proposed conformance classes are "conformance" and "loose conformance", but I'm open for other suggestion how to name them. I have chosen the term "conformance" to emphasize that this is actually the type of conformance that applications should aim to achieve. We may also call the classes "strict conformance" and "loose conformance". I'm not in favor of calling them "strict conformance" and "conformance", because this may sound like that "conformance" is what applications should achieve, while "strict conforamance" contains some optional requirements only that may or may not be achieved. That's not what was intended by having two conformance classes. > > 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. I have thought about this myself for a long time. One reason why I have added the "loose" conformance class was that we allowed foreign elements in ODF 1.0 and 1.1. The other reason was that vendors may have the issue that they have to store some information in a file immediately, for instance because a customer requested this, and cannot wait for the next ODF version. The assumption here of cause would be that they propose the extension to the ODF TC, so that it would be used only temporarily. In so far, there may be indeed better solutions than a separate conformance class. I will think about this. What seems to be essential here is that we define rules how foreign element and attributes are processed. This means, we may remove the loose conformance class, but we must not remove the processing rules for foreign elements and attributes. In any case, I think we should remove the "loosely conformant OpenDocument generator" again. An applications that calls itself conformant shall be able to store conforming file. > > "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." Yes, that's a good suggestion. > > "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"? It is a typo. And "child element" is correct. The case this addresses is: <text:p>text <text:frame> <text:image ...> <text:new-replacement>My new replacement</text:new-replacement> </text:frame> </text:p> In this case, "My new replacement" should not be displayed because it belongs to a text frame (that is displayed outside the text flow) rather than to the text of the paragraph. With the current wording, it would not be displayed, because <text:frame> does not allow text content. If we would say "descendant", then the text would be displayed because <text:p> allows text content. > > "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"? No, it means that the content should not be displayed, analyzed or whatever the application does. I think the term "interpret" is better here. > > Also, why not make preservation of content of foreign elements be a > "should"? Is there any reason why we would not make that recommendation? I assume you mean the case that the content of a foreign element should be processed (or interpreted)? In that case, an application would interpret the text content anyway, and where would not be any difference to text that is contained in a paragraph but outside a foreign element. > > 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. Well, maybe. But this would make the conformance clauses even more difficult to read. I will update the proposal based on your other suggestions, and we may see how it reads then. > > 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". We have to differ between the processing rules and the "loose conformance class". The processing rules are something we should have. The "loose conformance" class is maybe something we don't need. > > > 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. I have used the SVG conformance definition as basis here, but we may reword this. > > Do we want to require a specific XML character encoding? XML requires UTF-8 and UTF-16. I would not extend this. > > > 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. A link to the schemas is indeed missing. "XML root" shall actually read "XML root element". > > "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? That is a good point. Again I have adopted that from the SVG conformance clauses. The problem if we don't have this, then an application that creates one conforming ODF document and otherwise only documents that contain extensions may call itself conformant, too. > > 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. I've noticed this than adding the documentation requirement, too, but repeated the text because I otherwise had to change the structure of the clauses. > > 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. If we keep the loose conformance, then I have no objections in turning this into a shall. > > "Conforming OpenDocument Processors" -- "process" is not defined. We should use "interpreter" here, too > "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. Yes, this sounds reasonable. > 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. If we make this a should, then application actually should implement both variants. That is some effort, and I think for most application this is not reasonable. On the other hand, there are situations where providing a single XML file is reasonable, for instance if it should be taken as basis of an XSLT transformation. Best regards Michael > > Regards, > > -Rob > > --------------------------------------------------------------------- > To unsubscribe from this mail list, you must leave the OASIS TC that > generates this mail. Follow this link to all your TCs in OASIS at: > https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php > -- Michael Brauer, Technical Architect Software Engineering StarOffice/OpenOffice.org Sun Microsystems GmbH Nagelsweg 55 D-20097 Hamburg, Germany michael.brauer@sun.com http://sun.com/staroffice +49 40 23646 500 http://blogs.sun.com/GullFOSS Sitz der Gesellschaft: Sun Microsystems GmbH, Sonnenallee 1, D-85551 Kirchheim-Heimstetten Amtsgericht Muenchen: HRB 161028 Geschaeftsfuehrer: Thomas Schroeder, Wolfgang Engels, Dr. Roland Boemer Vorsitzender des Aufsichtsrates: Martin Haering
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]