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: Towards a more modular ODF


At the recent Plugfest in Berlin, I heard a number of people lament the 
pace of standardization for ODF 1.2.  We started ODF 1.2 in 2007 and are 
just now finishing it up in 2011.  Although this is not an outlier in the 
standardization world (ISO C++ took 6 years!) I think we can agree that it 
is far from ideal. 

One idea that I was brought up at the Plugfest was the idea of making ODF 
more modular,  meaning defining formal modules at the schema and 
specification level, and to standardize these modules independently, at 
whatever pace they naturally evolve.  We're partially down that road 
already with the three "parts" of ODF 1.2.  But since these are part of 
the same OASIS standard, we cannot evolve them at different paces.  The 
rigidity of this monolithic approach impacts our work in OASIS and in ISO.

The alternative would be to have a finer grained approach.  For example, 
without thinking too deeply on what the modules would be, something like 
this:

ODF Part 1 "Text"
ODF Part 2 "Drawing"
ODF Part 3 "Chart"
ODF Part 4 "OpenFormula"
ODF Part 5 "Packaging"
ODF Part 6 "Metadata"
ODF Part 7 "Word Processor Application"
ODF Part 8 "Spreadsheet Application"
ODF Part 9 "Presentation Application"

The idea would be to factor the schema such that the reusable portions, 
currently used, for example, by more than one application type, are pulled 
into their specification, in a logical fashion.  So we would seek high 
intra-module cohesion and low inter-module coupling.

Some of this factoring could be automated by examining the schema and 
noting the dependencies.  For example if element A contains element B and 
has attribute C, then A depends on B and C.  These dependencies could be 
extracted and sorted topologically or subjected to other forms of graph 
analysis to find the optimal way to define cohesive components/modules.

Another automation would be to ignore the schema and instead process a 
large collection of documents and to define the modules based on existing 
practice.  In other words, nothing in ODF 1.2 will tell us exactly what 
"features"  a word process has that are distinct from a spreadsheet.  But 
processing a few hundred sample documents will get us rather close, 
especially if it is a mix of documents from different implementations.

What I'm trying to avoid is the issue that we have, where we have good 
work being done on change tracking, or previously with OpenFormula, but we 
all need to wait until everything is done for a big coordinated release. 
If we had finer grained modules, each as their own standards, then we 
could would have a lot more flexibility. 

Another benefit is that we'd make it clearer how other apps could reuse 
our modules to create new specifications.  For example, I've heard 
interest in using ODF for purposes ranging from project management 
software to mindmaps to outliners.  Having a more modular set of 
foundational specifications would allow this.

Finally, we should keep in mind that a poor decomposition, where 
everything depends on everything else, would make our work much harder. So 
the real question is: how much modularity could we achieve?  And are the 
benefits of  that level of modularity worth the effort?

I'd be interested in the TC's thoughts on this.  Is this worth aiming for? 
 Is it doable?  Or is it "boiling the ocean"? 


-Rob


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