<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
  <meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8">

  <title>Community Innovation Program - FAQ</title>
</head>

<body>
  <h1>OpenOffice.org Community Innovation Program</h1>

  <h2>Frequently Asked Questions</h2>

  <h3>Can I submit an Entry which I was working on before the contest
  started?</h3>

  <p>One of the aims of the contest is to encourage people to take brilliant
  ideas which they have been "just thinking about", and actively turn them
  into something the Community can use immediately. But please note the Rules
  state the judges will consider "community participation in developing the
  Entry". This will be easier to demonstrate if the Entry has been developed
  from start to finish within the Contest Dates.</p>

  <h3>Must the Entry be a completely finished product?</h3>

  <p>The Rules state the judges will consider "the extent to which the Entry
  provides utility to the Community". An Entry which is a finished product is
  likely to be of more immediate use than one which is at the concept stage
  or only partially developed.</p>

  <h3>Why have you restricted Entries to certain countries?</h3>

  <p>People anywhere in the world - with the exception of the six 'Void
  Territories' - may enter the competition "to receive public recognition by
  the OpenOffice.org Program Committee for their work in the form of a public
  declaration that the Entry is deserving of an award under the Judging
  Criteria". However, for legal or other reasons, Sun Microsystems is only
  able to pay cash awards to entrants from the list of "Prize Eligile
  Territories".</p>

  <h3>Can I use third-party libraries in the implementation of my
  project?</h3>

  <p>The Rules state "all work must abide by OpenOffice.org's license
  scheme". Required system or other 3rd-party libraries can be used if
  accepted according to the process for external sources (see <a href=
  "http://external.openoffice.org">http://external.openoffice.org</a>).</p>

  <h3>The rules say I need to be a member of OpenOffice.org project. If I'm
  "more" than a member, i.e. a contributor (e.g. I have signed the JCA), is
  that a problem?</h3>

  <p>No - you are still a member of the Community.</p>

  <h3>I have a question which isn't answered here - what should I do?</h3>

  <p>If you have any questions about the procedure or process send them to
  <a href=
  "mailto:community-program@council.openoffce.org">community-program@council.openoffice.org</a>.
  For questions relating to your work, confer with your project
  colleagues.</p>
</body>
</html>
