OASIS Open Document Format for Office Applications (OpenDocument) TC

Moving forward on Conformance

  • 1.  Moving forward on Conformance

    Posted 02-03-2009 16:05
    It might help to take a top down approach to defining the conformance 
    clause, and see whether we agree on the broad strokes at least.  We might 
    not be able to avoid a vote on the details, but let's see what we agree 
    first.
    
    A conformance clause can define conformance for one or more "products". A 
    product is the subject of conformance, the thing that conformance is 
    defined for.  In the case of markup languages, it is typical to define the 
    document itself as a product, as well as one or more applications that 
    operate on that document.
    
    ODF 1.0 & ODF 1.1's conformance clause was not as crisp as I'd like it to 
    be, but if you parse out section 1.5 carefully, you'll see that it defines 
    conformance for:
    
    -- Document
    -- Applications 
    -- Applications that read and write 
    
    You can gleam a bit more by reading the entire standard, but if you look 
    at just the conformance clause you get those three products.
    
    A standard can also define one or more conformance "classes" for each 
    product.  In the case of ODF 1.0/1.1 there is only a single conformance 
    class, the unnamed default conformance class.
    
    So the question for us in ODF 1.2 is to determine what conformance 
    products and classes we want to define.  If our intent is to confuse 
    adopters of ODF, we could easily define a large matrix of a 48 or more 
    different product/class combinations, such as "ODF Spreadsheet Consumer of 
    the Loose Legacy Class".   But my personal belief is when the number of 
    conformance classes starts to exceed the number of implementations of the 
    standard, then we're up to no good.
    
    So let me propose a set of possible product combinations and see if there 
    is generally agreement on which ones we use:
    
    A) Document/Applications/Applications that read & write (same products as 
    ODF 1.1)
    
    B) Document/Producer/Consumer (What Michael has in his latest draft)
    
    C) Document/Producer/Consumer/Processor (adding processor, which we could 
    define as an application that both reads and writes and for which we could 
    additionally make statements about "preservation" or "round-tripping" if 
    there is consensus to do that)
    
    D) Document/Spreadsheet Document/WordProcessor Document/Presentation 
    Document...Spreadsheet Consumer, WordProcessor Consumer...
    
    Choice D) would be like B), but we explicitly define products for 
    individual document types and applications that operate on those document 
    types.  Probably not worth it unless we can say state different 
    requirements for each document type.  But it is possible, for example, we 
    can say that an ODF Spreadsheet has