<html><head>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
</head>
<body>

<h2>The OpenOffice.org Foundation</h2>
<p><i>Last updated 2001 November 4</p>
<BR>
<p>The OpenOffice.org project currently does not have a foundation. Plans are in the works for creating such a foundation. The below text was composed at the project's birth and can serve as a proposal for the creation of a foundation.</p>
<br>
<p>The OpenOffice.org project will establish the OpenOffice.org Foundation, a
non-profit organization that will oversee the operations, technology strategy,
incorporation of technology contributions, and establishment of standards in
conjunction with other standards bodies and open source projects as appropriate.
The intention is that this foundation will be modeled after the Apache Software
Foundation. A Steering Committee (or board) will be established with members
from the open development community and SISSL licensees. Sun Microsystems will
hold a minority representation in this governance structure.</p>
<BR><BR><BR>
<A NAME=standards_process><B>Open Office.org Standards Process</B></A>
<BR>
The key objectives of the OpenOffice.org project include:<UL>
<LI TYPE=disc>Establishment of standard, open productivity, XML-based file formats and
component application programming interfaces (APIs).
<LI TYPE=disc>Creation of standard implementation source code for the open office productivity
utilities that implement the APIs and utilize the XML-based file format standards.</UL>
At various times, the OpenOffice.org Foundation will specify new versions of these
standards. In the case of the file formats and the APIs, it is the intent to publish and
submit these standards to appropriate standards bodies such as OASIS, IETF, and/or
the W3C. As previously specified, these standards will bear specific version
specifications, allowing the compliance testing of implementations and products
against these standards.

<P ALIGN=right VALIGN=bottom><A HREF="contributions.html">back</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</P>

</body>
</html>

