Dialect Modeling. was Re: "Expert Contribution on OOXML Versioning"

Rick Jelliffe rjelliffe at allette.com.au
Tue Apr 20 10:32:42 CEST 2010


Further to my previous comments, here is a more worked-out example of 
the kind of model, in particular for OOXML, that I suggest might be 
practical and useful for developers. It would also work for ODF.

It models:
  1) Editions:  
            Specifications and their relationships
  2) Packages:   
            Kinds of document, eg Word Processing,  and their dialects
  3) Applications
            Major programs which can be considered to implement their 
own dialects, for example to accept both old and new versions of a standard.

Entries can be decorated with links to the particular schemas, for 
example to NVDL and XSD. They can also have links to transformations 
between versions, for example to DSRL or XSLT. They can have links to 
signature indications, which can be used by a developer to figure out 
which dialect is in use.  Which extensions are allowed/expected in 
different applications can be modeled and managed too.

Cheers
Rick Jelliffe

----------------------------------------------------------------------------------------------
<dialect-model>

<name>Open XML</name>

<editions>
 <edition id="e1">
     <name  href="....pdf" >ECMA 376 (1st ed)</name>
 <edition>

 <edition id="i1" supercedes="e1">
     <name  href="....pdf">IS 29500:2008</name>
 <edition>

 <edition  id="i2"  supercedes="i1">
     <name  href="....pdf">IS 29500:2008 w corrections</name>
     <name  href="....pdf">ECMA 376 (2nd)</name>
 <edition>

 <edition  id="i3"  supercedes="i2" >
     <name  href="....pdf">IS 29500:2011</name>
     <name  href="....pdf">ECMA 376 (3rd)</name>
 <edition>

 <edition  id="cjk1"  >
     <name  href="....pdf">IS 29500:2012 Part 5 CJK Extensions</name>
 <edition>
</editions>

<packages>
   <package id="wp">
       <name>Open XML Word Processing Package</name>     
       <extension>DOCX</extension>
       <mimetype>application/openxml-wordprocessingml+xml</mimetype><!-- 
?? -->

       <dialect  id="ecma-wp" edition="e1" >
            <name>ECMA</name>
        </dialect>
       <dialect id="it1-wp" edition="i1 i2 i3">
            <name>ISO Transitional</name>
        </dialect>
       <dialect id="is1-wp"  edition="i1 i2">
            <name>ISO Strict</name>
        </dialect>

       <dialect id="is2-wp" edition="i3">
            <name>ISO Strict (new namespace)</name>
            <map from="is1-wp" href="Ooxml2008To2010.dsrl"  />
            <schema href="Ooxml2010wp.nvdl" />
             <indicator 
ns="http://purl.oclc.org/ooxml/wordprocessingml/*" />
        </dialect>
    </package>

   <package id="sp">
       <name>Open XML Spreadsheet Package</name>

       <extension>XSLX</extension>

       <dialect  id="ecma-sp" edition="e1" >
            <name>ECMA</name>
        </dialect>
       <dialect id="it1-sp" edition="i1 i2 i3">
            <name>ISO Transitional</name>
        </dialect>
       <dialect id="is1-sp"  edition="i1 i2">
            <name>ISO Strict</name>
        </dialect>
       <dialect id="is2-sp" edition="i3">
            <name>ISO Strict (new namespace)</name>
            <map from="is1-sp" href="Ooxml2008To2010.dsrl"  />
            <schema href="Ooxml2010sp.nvdl" />
            <indicator ns="http://purl.oclc.org/ooxml/spreadsheetml/*" />
        </dialect>
    </package>


   <package id="ps">
       <name>Open XML Presentation Package</name>

       <extension>PPTX</extension>

       <dialect  id="ecma-ps" edition="e1" >
            <name>ECMA</name>
        </dialect>
       <dialect id="it1-ps" edition="i1 i2 i3">
            <name>ISO Transitional</name>
        </dialect>
       <dialect id="is1-ps"  edition="i1 i2">
            <name>ISO Strict</name>
        </dialect>
       <dialect id="is2-ps" edition="i3">
            <name>ISO Strict (new namespace)</name>
            <map from="is1-ps" href="Ooxml2008To2010.dsrl"  />
            <schema href="Ooxml2010ps.nvdl" />
            <indicator ns="http://purl.oclc.org/ooxml/presentationml/*" />
        </dialect>

    </package>

     <extension>
       <dialect id="cjk" use="is2-wp  it1-wp" edition="cjk2">
            <name>ISO CJK Extensions</name> 
             <indicator 
ns="http://purl.oclc.org/ooxml/wordprocessingml/extension/cjk/*" />
        </dialect>
      <extension>
<packages>
 

<applications>
<application>
   <name>Office 2007</name>
   <generate dialect="ecma-wp" />
   <generate dialect="ecma-sp" />
   <generate dialect=" ecma-ps" />
   <consume dialect="ecma-wp" />
   <consume dialect= ecma-sp" />
   <consume dialect="ecma-ps" />

</application>

<application>
   <name>Office 2007 SP2</name>
   <consume dialect="ecma-wp + it1-wp "  />
   <consume dialect="ecma-sp + it1-sp " />
   <consume dialect=" ecma-ps+ it1-ps " />
   <generate dialect="it1-wp" />
   <generate dialect= it1-sp" />
   <generate dialect="it1-ps" />
</application>

<application>
   <name>Office 2010</name>
   <consume dialect="ecma-wp + it1-wp + it2-wp"  /> <!-- + is union -->
   <consume dialect="ecma-sp + it1-sp  + it2-sp" />
   <consume dialect="ecma-ps+ it1-ps  + it2-ps" />
   <consume dialect="is1-wp" />  
   <consume dialect= is1-sp" />
   <consume dialect="is1-ps" />
   <generate dialect="it2-wp" />
   <generate dialect= it2-sp" />
   <generate dialect="it2-ps" />
</application>


<application>
   <name>Office 2010 SP1 ???</name>
   <consume dialect="ecma-wp + it1-wp + it2-wp + cjk"   />
   <consume dialect="ecma-sp + it1-sp  + it2-sp" />
   <consume dialect="ecma-ps+ it1-ps  + it2-ps" />
   <consume dialect="is1-wp  +  cjk"  />  
   <consume dialect= is1-sp" />
   <consume dialect="is1-ps" />
   <generate dialect="it2-wp + ckj" />
   <generate dialect= it2-sp" />
   <generate dialect="it2-ps" />
   <generate dialect="is1-wp + cjk"  status="deprecate" />  
   <generate dialect= is1-sp" status="deprecate" />
   <generate dialect="is1-ps" status="deprecate" />
</application>

</applications>

</dialect-model>


More information about the sc34wg4 mailing list