<html><head>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
</head>
<body>
<!-- Coded by John McCreesh using Bluefish and Tidy under RedHat 8.0-->

  <table id="top" name="top" summary="" border="0" cellspacing="5"
  cellpadding="5">
    <tr>
      <td>
        <h2><font color="#55DD85">Abstracts of Conference Papers -
        Thursday</font></h2>
      </td>
    </tr>

    <tr>
      <td><img src="group_green.gif" width="52" height="17"
      alt="image" /></td>
    </tr><!-- Start Abstract -->

    <tr>
      <td>
        <table id="tb1130" name="tb1130" summary="" border="1"
        cellpadding="8" cellspacing="0" bordercolor="#000080">
          <tr>
            <td bgcolor="#184090">
            <font color="#FFFFFF"><strong>
						XML For The Masses - An Open Office XML File Format
						</strong></font></td>
          </tr>

          <tr>
            <td>Michael Brauer <em>Technical Lead Software Engineering, Star Office Software Entwicklungs GmbH</em></td>
          </tr>

          <tr>
            <td>
						OpenOffice.org 1.0 features a new default file format based
						on the Extensible Markup Language, XML. This is one of the
						first applications of XML in a widespread consumer product.
						Through OpenOffice.org this format is not only developed
						in an open manner, it now also the base for an OASIS
						effort to create a standardized file format for
						office productivity applications like word processors,
						presentation and spreadsheet programs.
						<br>
						This talk will cover the benefits the XML based file
						format will bring to office suite users as well as
						developers of solutions surrounding office productivity.
						Additionally, it will give some insight into the OASIS
						Open Office XML Technical Committee.
						</td>
          </tr>

          <tr>
            <td><em>Biography:
						Michael Brauer is a technical lead at Sun Microsystems, Inc.
						and the lead of the OpenOffice.org XML Project that
						developed the OpenOffice.org XML file format.
						He is also chair of the OASIS Open Office XML
						Format Technical Committee that creates an standardized
						file format for office productivity applications
						like word processors, presentation and spreadsheet programs.
						</em>
						</td>
          </tr>
        </table>

        <p><a href="thursday.html"
        title="Agenda for Thursday">Back</a></p>
      </td>
    </tr><!-- End Abstract -->
    <!-- Start Abstract -->

    <tr>
      <td>
        <table id="tb1230" name="tb1230" summary="Abstract"
        border="1" cellpadding="8" cellspacing="0"
        bordercolor="#000080">
          <tr>
            <td bgcolor="#184090">
            <font color="#FFFFFF"><strong>Integration of StarOffice
            / OpenOffice.org with Tamino</strong></font></td>
          </tr>

          <tr>
            <td>Robert Diawara <em>Sales Consultant, Software AG,
            Alsfelder Strasse 15-19, 64289 Darmstadt</em></td>
          </tr>

          <tr>
            <td>Motivation, description of technical concepts and
            Aspects for the customer. Outlook to the future.</td>
          </tr>

          <tr>
            <td><em>Biography: Employee of Software AG since 1999.
            From 1999 to 2000, system architect, responsible for
            the development of frameworks and customer solutions.
            Member of the Sales Consultancy since
            01.2001.</em></td>
          </tr>
        </table>

        <p><a href="thursday.html"
        title="Agenda for Thursday">Back</a></p>
      </td>
    </tr><!-- End Abstract -->
    <!-- Start Abstract -->

    <tr>
      <td>
        <table id="tb1400" name="tb1400" summary="Abstract"
        border="1" cellpadding="8" cellspacing="0"
        bordercolor="#000080">
          <tr>
            <td bgcolor="#184090">
            <font color="#FFFFFF"><strong>OpenOffice.org as an
            Authoring Tool in the FIGARO
            Project</strong></font></td>
          </tr>

          <tr>
            <td>Dr. Wiebke Oeltjen <em>Regional Computer Centre at
            the University of Hamburg, Schl&#252;terstr. 70,
            D-20146 Hamburg</em></td>
          </tr>

          <tr>
            <td>FIGARO is a federal European project to set up an
            infrastructure for academic e-publishing. This
            consortium is a combination of two academic publishing
            initiatives with GAP (University of Hamburg, Karlsruhe
            and Oldenburg) and Roquade (university libraries of
            Delft and Utrecht) together with other academic
            institutions and partners. The objective of this
            project is the enhancement of the scientific publishing
            process through providing an infrastructure with
            effective and efficient e-publishing services. The
            technical part of the infrastructure is based on open
            source software and in particular on the OpenOffice.org
            system as an authoring tool. Compatibility and
            expandability as well as the XML-based document
            transformation to DocBook are the main benefits
            wherefore the OpenOffice.org system will be part of our
            publishing environment.</td>
          </tr>

          <tr>
            <td><em>Biography: Wiebke Oeltjen is a computer
            scientist. For several years she worked at the
            university in education and research in the area of
            e-publishing and human-computer interaction. As a
            consultant at Poet Software she had to do with the
            content management system CMS and with e-business
            software. Now she is working in the FIGARO project at
            the University of Hamburg in the Regional Computer
            Centre.</em></td>
          </tr>
        </table>

        <p><a href="thursday.html"
        title="Agenda for Thursday">Back</a></p>
      </td>
    </tr><!-- End Abstract -->
    <!-- Start Abstract -->

    <tr>
      <td>
        <table id="tb1500" name="tb1500" summary="Abstract"
        border="1" cellpadding="8" cellspacing="0"
        bordercolor="#000080">
          <tr>
            <td bgcolor="#184090">
            <font color="#FFFFFF"><strong>1dok.org - a new view on
            digital documents</strong></font></td>
          </tr>

          <tr>
            <td>Bernd Schuster <em>project leader, 1dok.org, c/o
            MSK Gesellschaft f&#252;r Automatisierung mbH,
            Friedrich-Ebert-Allee 33, D-22869 Schenefeld</em></td>
          </tr>

          <tr>
            <td>
              The non-profit project 1dok.org which we are carrying
              out on behalf of the German federal state
              Schleswig-Holstein and the European Commission's GD
              Regio aims at establishing an open standard format,
              non-specific of vendors, for electronic documents on
              XML base.<br />
               While working on our project we discovered some
              interesting possibilities concerning digital
              documents. Some of the highlights are (refer to
              <a href="http://www.1dok.org">www.1dok.org</a> for further
              details):<br />
               

              <ul>
                <li>Enriching digital documents by adding semantic
                structures</li>

                <li>Defining extensible canons on base of the 1dok
                meta data model</li>

                <li>Storing digital documents in an associative
                manner.</li>

                <li>Communicating documents by use of the 1dok
                protocol</li>

                <li>Describing meta data for digital documents by
                using the Resource Description Framework (RDF)</li>
              </ul>
            </td>
          </tr>

          <tr>
            <td><em>Biography:</em></td>
          </tr>
        </table>

        <p><a href="thursday.html"
        title="Agenda for Thursday">Back</a></p>
      </td>
    </tr><!-- End Abstract -->
    <!-- Start Abstract -->

    <tr>
      <td>
        <table id="tb1615" name="tb1615" summary="Abstract"
        border="1" cellpadding="8" cellspacing="0"
        bordercolor="#000080">
          <tr>
            <td bgcolor="#184090">
            <font color="#FFFFFF"><strong>Save as XDiML
            (DissertationMarkupLanguage)</strong> Writing and
            Converting digital Theses and Dissertations using
            OpenOffice.org</font></td>
          </tr>

          <tr>
            <td>Sabine Henneberger, Matthias Schulz, Jakob Voss
            <em>Humboldt-Universit&#228;t zu Berlin, Computer und
            Medienservices, Electronic Publishing Group, 12489
            Berlin, Rudower Chausee 26</em></td>
          </tr>

          <tr>
            <td>For 5 years now, doctoral candidates of Humboldt-
            University at Berlin can choose the digital publication
            as one option to publish their dissertation. The
            "Electronic Publishing" Group provides stylesheets for
            Microsoft Word, WordPerfect and Staroffice/Openoffice.org
            in order to allow the authors to structure their
            digital documents semantically.<br />
             It is neccessary to prepare documents that way,
            because they are converted into an XMl format
            afterwards. The XML document than is an instance of the
            xDiML.DTD (DissertationMarkupLanguage). This DTD has
            been developed within several electronic publishing
            projects at Humboldt-University.<br />
             Since 1997 an SGML/XML- based concept for the long
            term preservation of digital publications has been
            used, in order to store digital documents in an media
            neutral archival format, to use the possibilities of a
            structered retrieval within the semantic structures of
            documents, and to enable an automated production of
            different information products (like PDF format for
            print, HTML for WWW layout, metadata for use within
            different retrieval networks).<br />
             In order to increase the efficiency of OpenOffice.org with
            its end format XML, a document style sheet and a filter
            for Openoffice.org was developed at the Computer- and Media
            Service of Humboldt- University. Authors are enabled to
            write their digital dissertation using this document
            style sheet and to save those within an XML based
            format.<br />
             At the same time the "Electronic Publishing Group"
            uses OpenOffice.org as a conversion tool to convert
            Microsoft Word documents written with the digital
            dissertation stylesheet as XML.<br />
             This talk will focus on demonstrating the needs for a
            dissertation.dtd and its structure. Secondly the
            converter "save as xDiml" will be presented and the
            advantages and disadvantages of writing a complex
            document as a dissertation using OpenOffice.org will be
            discussed.</td>
          </tr>

          <tr>
            <td><em>Biographies: Sabine Henneberger is a member of
            the Electronic Publishing Group of the Computer and
            Mediaservices at Humboldt University, Berlin since
            2002.<br />
             Matthias Schulz, studied arthistory and library
            science at the Humboldt-University. In 1996, during the
            study library sience he started using SGML and
            developing DTDs. In 1997 he started working in the
            project "Digitale Dissertation" at the Comuting Center.
            He developed the first DiML.dtd in SGML out of the
            ETD-ML.dtd of Virginia Tech in 1997. Today he works in
            the Computer an Mediaservices, (formaly Computing
            Center) at Humboldt-University.<br />
             Jakob Voss is a member of the Electronic Publishing
            Group of the Computer and Mediaservices at Humboldt
            University, Berlin since 2001. He developed the main
            parts of XDiML, the DTD in XML Format.</em></td>
          </tr>
        </table>

        <p><a href="thursday.html"
        title="Agenda for Thursday">Back</a></p>
      </td>
    </tr><!-- End Abstract -->
    <!-- Start Abstract -->

    <tr>
      <td>
        <table id="tb1715" name="tb1715" summary="Abstract"
        border="1" cellpadding="8" cellspacing="0"
        bordercolor="#000080">
          <tr>
            <td bgcolor="#184090">
            <font color="#FFFFFF"><strong>Automated Format
            Transformation for Courseware</strong></font></td>
          </tr>

          <tr>
            <td>Lutz Finsterle, Martin Rotard <em>Researchers,
            University of Stuttgart</em></td>
          </tr>

          <tr>
            <td>
              We describe and demonstrate tools employing
              OpenOffice.org to generate reusable and exchangeable
              learning-materials.<br />
               We developed an open framework for documents in
              educational applications based on the requirements of
              the "ITO" (Information Technology Online) project
              which is funded by the German Federal Ministry of
              Education and Research" (BMBF). The project partners
              decided to keep their well-known authoring tools
              (OpenOffice.org, Microsoft Word, Adobe FrameMaker,
              LaTeX, etc.), but we wanted to have an open document
              standard in order to make exchange and reuse of newly
              generated and existing content feasible. Thus, based
              on the profound import/export capabilities of
              OpenOffice.org, we developed solutions to support
              this task.<br />
               Our first approach handles the transformation of
              text documents (OpenOffice.org Writer, Microsoft
              Word, RTF, etc.) into a hierarchical structured set
              of learning objects. The other one deals with slide
              presentations as generated by OpenOffice.org Impress
              and Microsoft PowerPoint.<br />
               Handling of text documents:<br />
               To satisfy all requirements of our courseware system
              there is a special need to differentiate between
              structure, content and layout. The OpenOffice.org
              XMLdocument format provides a starting point for a
              transformation, which fulfills these needs. To
              identify the semantics, structure and metadata of the
              content to be processed, we have defined a set of
              style templates. E.g. we defined paragraph styles
              like "introduction", "motivation", "definition",
              "rights", "example" etc. and text styles like
              "keyword", "index", "reference", "citation",
              "significant" etc. Those paragraph styles appear in
              the "content.xml" file of the OpenOffice.org file format.
              Together with the embedded information provided by
              the use of those template we are able to transform
              conforming documents to our intermediate
              format.<br />
               Converting slide presentations to SVG:<br />
               Slide presentations are the most commonly used media
              to present lecture material today. Thus, a huge
              amount of time has already been invested to generate
              this material. This effort must be preserved when
              assembling online courseware. Seamless transformation
              to a web-enabled format is the key issue here. To
              handle the different formats and features such as
              animations and navigation within the repository the
              presentations have to be transformed into SVG, the
              upcoming W3C standard for two-dimensional graphics in
              the web. OpenOffice.org allows the export of slides into
              SVG. Unfortunately, the export of only one slide at a
              time is possible from the user interface. External
              tools must be used for scripting this behavior and
              other issues concerning font handling and animations
              must be addressed. We implemented the following
              features in our slide exporting tool which is based
              on Java and uses OpenOffice.org's SDK and the UNO
              interface: 

              <ul>
                <li>Export of the complete presentation</li>

                <li>Adding navigation and index mechanisms</li>

                <li>Preliminary support for animations</li>

                <li>Correction of glyph spacing issues</li>

                <li>On-the-fly embedding of non-standard fonts</li>
              </ul>We have shown that OpenOffice.org supports an
              integrated platform for open courseware management
              and document transformations. We have implemented a
              utility for transforming appropriately structured
              OpenOffice.org documents to our XML-based intermediate
              courseware format. An additional utility allows the
              automatic conversion of slide presentations into the
              SVG format, thus alleviating the need for manual
              conversion of proprietary documents.
            </td>
          </tr>

          <tr>
            <td><em>Biographies:<br> Lutz Finsterle:<br />
             05 Nov. 1969 born in Berlin/Germany<br />
             1989 to 1996 Studied Mathematics and Physics at the TU
            Darmstadt<br />
             1996 to 1999 Researcher and staff-member at the
            Industrial Process and System Communications Lab at the
            TU Darmstadt.<br />
             1997 to 1999 Leader of the Metropolitan Area Network
            of the research Institutes in Darmstadt<br />
             since 1999 Researcher and staff-member of the
            Institute of Communication Networks and Computer
            Engineering.<br />
             Engaged in the multimedia teaching projects CANDLE1
            and ITO2.<br />
             Martin Rotard:<br />
             1995 to 2001 Studied Computer Science at the
            University of Stuttgart<br />
             Since 2001 Researcher at the Visualization and
            Interactive Systems<br />
             Group of the University of Stuttgart in the Project
            ITO<br /></em></td>
          </tr>
        </table>

        <p><a href="thursday.html"
        title="Agenda for Thursday">Back</a></p>
      </td>
    </tr><!-- End Abstract -->
    </table>
  <hr />

  <p><a href="thursday.html">Back to Thursday</a><br />
   <a href="#top">Back to Top</a><br />
   <a href="agenda2.html">Back to Overview</a></p>

  <p>Please Note: Program content subject to change.</p>
</body>
</html>

