Perhaps you have noticed, perhaps not, it looks like something called
Open
Document Format was approved (see link below). What it is? Well, a
description
of standard objects and their representation that can be present in an
office
document.
Yes -- I saw that this was announced on Slashdot today, and was going
to actually post here about it... you beat me to it though, Stefan. :)
I've started to read the specs just to see what it is and get some
background in case we decide to move forward with using this in Etoile
at all. Here's what I've discovered (keep in mind that the spec is
almost 700 pages long and I've just started reading it; some of my
interpretations may be incorrect):
What it is? Simply: gooid idea, but...
As you might think, it is XML based file format.
There are two types of file formats in the OpenDocument spec: XML
single file and XML-based ZIP Package.
The XML-based package bears a striking resemblance to OS X's bundles
and the following description on the Etoile Components page <
http://dromasoftware.com/etoile/mediawiki/index.php?title=Components >:
"...a bundle which includes each component as a standalone document and
an extra xml file describing/encoding the composite structure of the
document..."
The biggest differences are the structure of the XML used in the spec,
the separation of content and presentation, and the fact that the
package's directory hierarchy is represented as a single ZIP-archived
file.
Some of the other nice things I've found are detailed in chapter 17 of
the spec, such as support for:
- metadata within the package itself (inherent, custom per app, and
user-definable)
- thumbnails, including details such as where it should be stored,
what it's file type should be, what size it is, what it's name should
be
- encryption
The specification contains information about different document
variants, such
as:
* word-processor document
* spreadsheet
* presentation
* drawing
* math
* ...
It contains description of objects and their properties that build
those
documents.
Yes -- it seems to be very component-based. It is also very
application-centric. I think that can be overcome with some creative
ideas, though.
Very positive is, that it describes well known concepts from existing
office
applications and puts them into a single place.
See Appendix D of the spec -- very nice overview of what should be
supported per each application. If we shift our interpretation of the
columns they use to represent apps to instead be viewed as the actual
components (Text, Spreadsheet/Table, Drawing/Vector, Image/Raster,
etc), I think we have a good idea of what types of palettes or services
we would need to provide for each component type. Very good info.
What I do not like the most is,
that the document, perhaps not intentionaly, defines boundaries of
another
closed monster environment called "office desktop". The structure puts
limits
to the application behaviour.
With due reason, it's application centric. I think that it's flexible
enough that that can be avoided however, while still generating files
that conformed to the format. Once thing I don't like it is that it's
very MIME-centric as well. Perhaps we can also incorporate the UTI
system into this format for our own environment?
How it is related to Etoile?
The office desktop is a collection of tools - office components, that
work
together on a single document. Which is, in its nature, not bad and it
resembles subset of what Etoile wants to do. Correct me if I am wrong.
You will have an office sub-environment which will work on a object
repository
called office document. Objects are defined by the specification.
Etoile is
more than that.
The OpenDocument spec is not limited to the office formats they
describe. It was designed to be useful for other document formats --
but it's up to the developers creating the new format to determine the
details. It does (as far as I can tell) describe a "generic" document
-- that could be used as the basis for our documents while still
allowing us the freedom to add the other components that we desire.
Because this was developed with an Office workflow in mind, the various
parts (text, table, etc) were designed to interoperate. This is exactly
what we need as a stepping stone for building a flexible format that
incorporates many types of media.
Anyway, I think, that as this standard looks like it is going to be
adopted by
major office applications, Etoile should not ignore it and keep it in
mind.
It already is the native format for OpenOffice, and KOffice as well
IIRC.
I do not say, that we should implement it, but at least have
interfaces that can
be made compatible with the specification. As Etoile project based
environment
is object based, I think that creating Open Document exporter would be
something like creating Open Document NSArchiver subclass.
Based on my initial readings of the spec, it seems like a great
starting point for our document format. It may be more complex than
what we initially intended, but it provides some awesome benefits:
- Compatibility (which leads to a lower entry barrier)
- Foundation for component based desktops
- Approved, well defined specification to work from
- Prior work to pull from (OpenOffice, KOffice)
- Document format (package-based) that fits what was initially
conceived for Etoile
Summary:
* open document format was accepted and it is going to be used by
major office
apps
* file is XML based
* specification defines office objects observed from current office
apps
* specification defines office sub-environment
* Etoile should be able to cooperate
Reference:
http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office
My opinion, if someone is interested, is: I like the initiative. I do
not like
the trend of office spearation from other desktop objects, however
this is
another long story...
From what I've read, it seems like all of an environment's file formats
could theoretically be integrated into one system -- this simply
focuses on office formats because, well, it's an initiative by
OpenOffice :)
What do you think? How do you see it and how we should stand to it?
I like it. I think using this as the basis of Etoile will provide
exactly what we originally conceived and more in terms of a document
format, and it will make Etoile stand out as a desktop environment by
integrating the spec so thoroughly into the environment.
I will continue to read up on it and see if all of this hype I'm giving
it is actually well founded :)
J.