<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>SAAW</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Using WEESA to Semantically Annotate Cocoon Web Applications</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Gerald Reif</string-name>
          <email>reif@i</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Harald Gall</string-name>
          <email>gall@i</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Informatics, University of Zurich Binzmuehlstrasse 14 CH-8050 Zurich</institution>
          ,
          <addr-line>Schwitzerland</addr-line>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2006</year>
      </pub-date>
      <volume>1</volume>
      <fpage>5</fpage>
      <lpage>9</lpage>
      <abstract>
        <p>The Semantic Web is based on the idea that Web applications provide semantically annotated Web pages. This metadata is typically added in the semantic annotation process which is currently not part of the Web engineering process. Web engineering, however, proposes methodologies to design, implement and maintain Web applications but lack semantic annotation. In this paper we show how WEESA, a mapping from XML documents to ontologies, can be used in Apache Cocoon Web applications to semantically annotate Web pages. We introduce Cocoon transformer components that use the WEESA mapping definition to automatically generate RDF meta-data from XML documents. We further show how existing Cocoon Web applications can be extended to Semantic Web applications and discuss the experiences gained in an industry case study.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Web Engineering</kwd>
        <kwd>Semantic Web</kwd>
        <kwd>Semantic Annotation</kwd>
        <kwd>Ontology</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. INTRODUCTION</title>
      <p>The increasing popularity of the WWW has lead to an
exponential growth in the number of Web pages available, which
makes it increasingly difficult for users to find required
information. In searching the Web for information, one gets lost
in the vast number of irrelevant search results and may miss
relevant material. Current Web applications provide Web
pages in HTML format representing the content in natural
language only and the semantics of the content is therefore</p>
    </sec>
    <sec id="sec-2">
      <title>2. WEESA META-DATA GENERATION</title>
      <p>
        In this section we briefly introduce Web engineering and
show how WEESA [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] can be used to engineer Semantic
Web applications, that provide HTML content and
machineprocessable RDF meta-data.
      </p>
      <p>
        Web Engineering focuses on the systematic design,
development, and maintenance of Web applications [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Most
Web engineering methodologies are based on
separation-ofconcerns to define strict roles in the development process
and to enable parallel development. A popular way to
separate the content from the graphical design is the use of XML
and XSLT, where XML focuses on the content of the Web
page and XSLT defines the design.
      </p>
      <p>
        In order to develop Semantic Web applications, the
traditional Web engineering techniques have to be extended by
the semantic annotation process. In this process, the Web
pages have to be semantically annotated with RDF
metadata. This enables machines to have access to the content
of the pages. Several tools such as the SHOE Knowledge
Annotator [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], the CREAM OntoMat [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], and SMORE [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]
have been proposed to support the user when annotating
existing Web pages. However, to manually annotate Web
pages is only feasible if the number of Web pages is small
and the content does not change frequently.
      </p>
      <p>To annotate dynamic Web pages, that obtain their content
from a background logic such as a database, the
annotation process should be integrated in the engineering process
of the Web application. During the engineering of a Web
application, information items can be identified more easily
than in the generated HTML Web pages. Once the
information item is identified, it is mapped to a concept defined
in the ontology. For example, the result of a database query
is mapped to a property in the ontology, to indicate that
a new RDF statement has to be generated with the query
result as value for the property.</p>
      <p>The aim of WEESA (WEb Engineering for Semantic web
Applications) is on the one hand, to integrate the annotation
process into the engineering process of the Web application.
On the other hand, to reuse the existing design artifacts of
XML based Web applications to develop Web applications
that provide semantic meta-data in addition.</p>
      <p>In WEESA the structure of the XML document is used to
identify XML elements/attributes which are mapped to
concepts in an ontology. This mapping definition can then
be taken to automatically generate RDF meta-data from
XML content documents. WEESA not only allows
one-toone mappings but uses a more flexible approach to overcome
the gap between the information available in the XML
document and the information needed by the ontology. The
content of several XML elements/attributes can be selected
and further processed in Java methods to meet the
semantics of the concept in the ontology.</p>
      <p>XML Schema</p>
      <p>valid
XML document</p>
      <p>WEESA
mapping
definition
generate</p>
      <p>via
WEESA
generate
via XSLT</p>
      <p>Ontology</p>
      <p>uses concepts
RDF description</p>
      <p>associate
HTML Web page</p>
      <p>Semantic Web page</p>
      <p>Design Level
Instance Level
At the design level of the Web application only the
structure of the XML document is known and no XML instances
are available. Therefore we use the structure information
from the XML Schema to define the mapping to the
ontologies. In this way, the same XML document that follows the
XML Schema is used for the XSLT transformation to
generate HTML and for WEESA to generate RDF meta-data.
Therefore, the XML Schema can be seen as the contract the
content editor, responsible for writing the XML documents,
the layout designer, responsible for the graphical
appearance, and the engineer defining the WEESA mapping have to
agree on. Figure 1 shows the definition of the WEESA
mapping at the design level of the Web application and how this
mapping is used at instance level to automatically generate
RDF meta-data and the HTML page from XML documents.</p>
    </sec>
    <sec id="sec-3">
      <title>3. COCOON PIPELINE CONCEPT</title>
      <p>
        In this section we introduce the concept of Apache Cocoon
Web applications. Apache Cocoon [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] is a Web
development framework built around the concepts of
separation-ofconcerns and component-based Web development. Cocoon
uses component pipelines to build Web applications where
each component on the pipeline is specialized on a particular
operation.
      </p>
    </sec>
    <sec id="sec-4">
      <title>4. ASSOCIATING HTML AND RDF</title>
      <p>As shown in Figure 1, we have to perform two steps on the
schema valid XML document to generate the semantically
annotated Web pages: (1) The XSLT transformation has to
be performed to generate the HTML page. (2) The WEESA
mapping has to be processed to generate the RDF meta-data
description of the Web page.</p>
      <p>
        Once we have generated the HTML page and its RDF
metadata description we have to put them into relation.
Unfortunately, no standardized approach exists for associating RDF
descriptions with HTML. In [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] Palmer discusses several
possible approaches. These techniques can be classified in
the following categories:
Embedding RDF in HTML: With this association style
the RDF description is directly embedded in the HTML
page. Several ways have been proposed such as adding
RDF/XML in the &lt;script&gt; element, using XML
notations and CDATA sections, or adding RDF base64
encoded in the &lt;object&gt; element. A detailed discussion
of these methods can be found in [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ].
      </p>
      <p>
        A recently proposed technique to embed RDF into
HTML is RDFa [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. RDFa is the current W3C
working draft for integrating RDF data into XHMTL
documents and is not yet supported with the approach
presented in this paper.
      </p>
      <p>
        Linking to an external RDF description: The RDF
meta-data description is stored in an external
document and the HTML page references to its
metadata description. This reference can be done using
the HTML &lt;link&gt; element [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] or using an common
HTML &lt;a href=""&gt; link [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
      <p>In the following two sections we introduce a WEESA enabled
Cocoon transformer for both categories of association styles.</p>
    </sec>
    <sec id="sec-5">
      <title>5. WEESA COCOON TRANSFORMER TO</title>
    </sec>
    <sec id="sec-6">
      <title>GENERATE HTML+RDF</title>
      <p>
        One way to associate HTML and RDF is to embed the
RDF/XML description in the &lt;script&gt; element within the
HTML &lt;head&gt;. The HTML &lt;script&gt; element can be used
to include non-HTML media in HTML Web pages [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. This
section introduces the WEESAReadDOMSession transformer
that can be used to realize this kind of RDF – HTML
association.
      </p>
      <p>When developing Semantic Web applications that add the
RDF meta-data to the HTML page we have to introduce
new steps to the pipeline discussed in Section 3. Since
we need the schema valid XML document for the XSLT
transformation and for the WEESA meta-data generation,
we have two options. We can either integrate WEESA in a
modified XSLT transformer that generates RDF and HTML
or we can split up the pipeline and use a specialized
transformer for the RDF meta-data generation.</p>
      <p>One of the strength of Cocoon is, that every component
is specialized on a specific task. This gives the developer
the flexibility to configure the components in the pipeline
according to his requirements. Therefore we decided, to split
up the pipeline to generate HTML pages with embedded
RDF/XML.
To split up the pipeline we use the WriteDOMSession
transformer. This transformer takes the input document and
writes it first as DOM2 into the servlet session, and
second as SAX events to its output. This is how the pipeline
is split up and the XML document can be reused later in
the pipeline. After the HTML page is generated by the
XSLT transformer the WEESAReadDOMSession transformer
takes the DOM-XML from the session and uses the WEESA
mapping definition to generate the RDF meta-data
representation in RDF/XML format. The WEESAReadDOMSession
transformer further embeds the generated RDF/XML in
the &lt;script&gt; element which is then added in a user
defined element of the HTML page. This element is
typically the &lt;head&gt; element. The serializer finally delivers the
HTML+RDF page to the client. The additional steps are
shown in Figure 3 as light gray pipeline components. The
problems that comes with embedding the RDF meta-data
in the &lt;head&gt; element are discussed at the end of the this
section.</p>
      <p>The Cocoon framework uses the sitemap.xmap
configuration file to define the pipelines. Figure 4 shows a
fragment of the sitemap file for the pipeline from Figure 3.
Lines 3-6 instruct Cocoon to start a servlet session. In
line 9 the generator is instructed to read the XML
document AlanisMorissetteUnplugged.xml from the content/
directory. In lines 14-17 the WriteDOMSession transformer
is defined to write the XML document to the session. The
dom-name parameter gives the DOM-object the name rdf in
2DOM: Document Object Model
the servlet session. The use of the dom-root-element
parameter is explained below. Line 20 configures the XSLT
transformer to use the XSLT stylesheet albumInfo.xslt.
In lines 23-29 the WEESAReadDOMSession transformer is
configured. The dom-name parameter tells which DOM-object
should be taken from the session, the
weesa-mapping-definition parameter names the mapping file, and the
triggerelement and position parameters tell that the generated
RDF/XML should be placed in the HTML &lt;head&gt; element.
Finally, in line 32 the serializer is instructed to write the
XML stream as HTML to the consumer.</p>
      <p>In praxis, most Web pages consist of several parts, for
example a header, the navigation part, and a part with the
actual page content. A sample XML document following
this structure is shown in Figure 5. Depending on the
structure of the Web page, not all parts of the XML document
have to be looked at when generating the RDF meta-data.
For example, only the &lt;content&gt; part contains information
that is needed for the meta-data generation. In this case,
we have to define the WEESA mapping only for the
subtree starting with the &lt;content&gt; element and we have to
inform the WriteDOMSession transformer only to write the
subtree following the &lt;content&gt; element as DOM to the
session. This is done with the dom-root-element parameter in
line 16 from Figure 4.
&lt;page &gt;
&lt; header &gt;</p>
      <p>&lt;! -- here goes the XML for the header --&gt;
&lt;/ header &gt;
&lt; navigation &gt;</p>
      <p>&lt;! -- here goes the XML for the navigation --&gt;
&lt;/ navigation &gt;
&lt; content &gt;</p>
      <p>
        &lt;! -- here goes the XML for the content --&gt;
&lt;/ content &gt;
&lt;/ page &gt;
that the business logic, typically processed at the beginning
of the pipeline, has to be computed once only for both the
HTML and RDF generation. Embedding the RDF/XML
meta-data in the &lt;head&gt; tag of a HTML document,
however, breaks HTML 4.01 and XHTML validity [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ].
      </p>
    </sec>
    <sec id="sec-7">
      <title>6. WEESA COCOON TRANSFORMER TO</title>
    </sec>
    <sec id="sec-8">
      <title>GENERATE RDF/XML</title>
      <p>
        Another way of associating RDF and HTML to one another
is to use the &lt;link&gt; element in the &lt;head&gt; of the HTML page
to reference the corresponding external RDF/XML
metadata description [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. To generate this stand-alone RDF/
XML description within Cocoon Web applications we
developed the WEESA transformer.
      </p>
      <p>Cocoon Web applications that use the &lt;link&gt; element to
associate RDF and HTML need two pipelines: one for the
generation of the HTML page, and another for the WEESA
meta-data generation. The pipeline for the HTML
generation is similar to the one introduced in Section 3. Only
the reference to the RDF description has to be added in the
&lt;head&gt; of the HTML page. The reference looks as follows:
&lt;link rel="meta" type="application/rdf+xml"</p>
      <p>href="AlanisMorissetteUnplugged.rdf"/&gt;
There are basically two ways of adding the &lt;link&gt; element
to the HTML page. One is to modify the Web application
to add the element in the business logic or in the XSLT
stylesheet. The other possibility is to use the AddRDFLink
transformer we developed. This transformer is added to
the pipeline for the HTML page generation between the
XSLT transformer and the serializer. The AddRDFLink
transformer extracts the URL of the incoming request, replaces
the ".html" suffix of the path with ".rdf", and adds the
&lt;link&gt; with the ".rdf" URL in the &lt;head&gt; of the HTML
page.</p>
      <p>Since the AddRDFLink transformer searches for a ".html"
suffix in the URL and replaces it with ".rdf" it can only
be used in Web applications that obey the following naming
convention. The path in URLs that trigger the pipeline for
the HTML pages have the suffix ".html" such as:
http://www.mytunes.com/album.html?id=1234
Including RDF/XML meta-data in the HTML page using
the WEESAReadDOMSession transformer has the advantage
The path in URLs that trigger the pipeline for the RDF
meta-data generation have the suffix ".rdf" such as:</p>
      <p>In the pipeline for the WEESA meta-data generation that
uses the WEESA transformer the business logic is also
processed at the beginning of the pipeline. The schema valid
XML document is sent to the WEESA transformer that takes
the mapping definition and processes the WEESA mapping.
The RDF/XML output of the transformer is then taken by
a serializer and sent to the client. The pipeline is shown in
Figure 6 and Figure 7 shows a snipped from sitemap.xmap
that is used to configure the WEESA transformer. Again, the
dom-root-element parameter defines the start element of
the XML subtree that should be considered for the WEESA
transformation as described in the section above, and the
weesa-mapping-definition parameter defines the mapping
definition to be used.
&lt; map:transform type =" WEESA " &gt;
&lt; map:parameter name ="dom - root - element "
value =" content "/ &gt;
&lt; map:parameter name =" weesa - mapping - definition "
value =" mapping / artistMapping . xml "/ &gt;
&lt;/ map:transform &gt;
Using the &lt;link&gt; element to associate RDF and HTML has
the advantage that the RDF description has to be generated
on request only. This, however, has the drawback that the
schema valid XML document has to be generated a second
time. Fortunately this does not have to be a big
disadvantage if the Cocoon caching mechanism can be used.</p>
    </sec>
    <sec id="sec-9">
      <title>7. CASE STUDY</title>
      <p>We have evaluated the WEESA transformers in the annual
Vienna International Festival3 (VIF) industry case study.
VIF is a database supported Web application that comprises
a ticket shop, over 60 event descriptions, reviews, and an
archive over the last 52 years. For the WEESA case study
3http://www.festwochen.at
we use the event descriptions and the ticket shop and
semantically annotate the corresponding Web pages. Below we list
the Web pages that make up the case study and discuss the
meta-data the pages provide:
VIF Homepage: Entry point to the VIF Web application.</p>
      <p>It provides general information about the festival and a
navigation bar to the features of the Web application.
The meta-data consists of the contact information of
the festival.</p>
      <p>Program overview pages: List of events of the festival.</p>
      <p>There is one list of all events and several lists for the
events of a specific event category (such as concert,
performing arts, etc.) The meta-data consists of the
events, location, and the category of the event.</p>
      <p>Event description: Detailed information about the event.</p>
      <p>It contains information such as the title, description,
location, date, etc. of the event. The meta-data
reflects the event details provided by the Web page.
Ticket shop receipt: Receipt of the bought ticket. It is
the final acknowledgement of the shopping process in
the online shop containing all the details of the
specific event. The meta-data reflects event details of the
bought ticket.</p>
      <p>
        When we chose the case study application we decided not to
design a new Web application from scratch but to adopt an
existing one. This decision has the advantage that we are
able to work out the differences between the design of
traditional Web applications and Semantic Web applications.
The VIF Web application was originally implemented using
MyXML [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. MyXML is a Web application framework that
is based on separation-of-concerns. For our case study we
took the existing database and reimplemented the Web
application based on the Cocoon Web application framework.
To do so, we followed the steps introduced in Section 3.
We first defined the XML Schema as contract of the Web
application. In the following steps we implemented the
business logic, designed the XSLT stylesheets, and defined the
Cocoon pipelines, as we would do for a traditional Web
application. To semantically annotate the Web application we
defined the WEESA mapping for each kind of Web page and
added the WEESA enabled transformer into the pipeline, as
introduced in Section 5 and 6. Since WEESA follows the
concept of separation-of-concerns all these steps could be
performed in parallel.
      </p>
      <p>
        During the life cycle of a Web application a new version
of the used ontology may be issued or a new ontology
become the standard ontology to describe information in the
domain of the Web application. Therefore, WEESA was
designed to enable the change of the used ontology without
reimplementing the whole Web application. To demonstrate
this flexibility we implemented the case study first with a
self-defined VIF ontology and changed later to the
iCalendar [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] ontology. We further did the implementation for
both HTML – RDF association styles introduced in
Section 4. Figure 8 shows a snipped from the generated RDF
graph that is based on the self-defined VIF event ontology.
In the following we list experiences gained while developing
the case study:
Annotation by configuration: The change from a
traditional Web application to a WEESA Semantic Web
application requires basically two steps: the WEESA mappings
have to be defined and the Cocoon pipelines have to be
modified. Both of these steps can be done by either writing new
XML files (mapping definition) or modifying existing ones
(pipeline configuration). No Java programming is involved
in these steps.
      </p>
      <p>In addition, the change between the two association styles
of HTML and RDF, also could be done by only modifying
the pipeline configuration. The WEESA mapping definitions
remains the same.</p>
      <p>Change of ontologies: We implemented the VIF case
study Semantic Web application for different ontologies. For
the change from one ontology to the other, only the WEESA
mapping definition used had to be changed. The rest of
the implementation remained untouched and no additional
programming effort was needed.</p>
      <p>Java Mapping Library: In the two paragraphs above
we argued, that no Java programming is involved to
semantically annotate a Cocoon Web application using WEESA.
This is true regarding the Web application. To not only
support one-to-one mappings from XML to the ontology
Java methods are used in the WEESA mapping definition.
WEESA provides a library of Java methods for common
tasks. In some cases, however, the developer has to
implement a Java method for a user-specific task. This user
specific method can be added to the library for later reuse.
Free-Text and Mixed Content: Since WEESA uses
the structure of the XML document to identify the concepts
that are mapped to the ontologies, free-text and mixed
content can not be annotated. Natural language understanding
would be needed to do so. However, in our experience this is
not a problematic limitation since the concepts that can be
found in many ontologies available today can also be found
in the structure of an XML document.</p>
      <p>Database Keys for RDF Resource Identifier: The
VIF case study further showed that database keys should
be accessible in the XML documents to be able to generate
unique resource identifiers for the RDF representation. The
database keys help to ensure that the same identifier is used
for the same resource throughout the whole Web application.
Well Formatted data in the XML document: Since
the RDF meta-data description of the Web pages is intended
to be machine-processable the literals used should store
information in a well defined format. For example to
represent time and date information the XML Schema xsi:time
respectively, xsi:date format should be used. This
requirement should also be kept in mind when defining the XML
Schema as contract for a Web page. The schema should
force content editors to provide information split up into
logical units that are stored in a well defined format. For
example, to specify the begin and end time of an event, it is
better to have a specific XML element for the begin and end
time instead of an arbitrary string such as "from 11:00 to
12:00". Using arbitrary strings results in pattern matching,
when defining the WEESA mapping.</p>
    </sec>
    <sec id="sec-10">
      <title>8. RELATED WORK</title>
      <p>
        To our knowledge not much work has been done to integrate
the Semantic annotation process into Web engineering. In
[
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], the authors suggest an extension of the Web Site
Design Model (WSDM). In this approach object chunk entities
which are artifacts in the Web application design process
are mapped to concepts in the ontology.
      </p>
      <p>
        Many Web engineering methodologies have been proposed
that use Semantic Web technologies such as ontologies and
RDF to formalize engineering artifacts. The Extensible Web
Modeling Framework (XWMF) [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] aims to use a
machineprocessable format for the Web engineering artifacts to make
them exchangeable between the multitude of tools that are
involved in the Web application life cycle. The Semantic
Hypermedia Design Method (SHDM) [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] heavily uses OWL
ontologies for domain and methodology specific issues.
Ontologies are used for the conceptual model and the
navigational model of the application domain. The SHDM further
defines method specific ontologies for the abstract and
concrete widget interface to model the user interface of the Web
application. Despite these methodologies use engineering
artifacts that rely on Semantic Web technologies, the actual
Web application does not contain any semantic annotations.
There is further related work in the area of Semantic
annotation. CREAM/OntoMat [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] is a Semantic annotation
framework that offers several annotation methods such as
manual annotation, authoring of annotated documents,
semiautomatic annotation, and the annotation of dynamic pages.
This flexible approach is, however, not integrated in the Web
engineering process.
      </p>
      <p>
        In the area of interpreting XML as RDF data several
approaches exist. In [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], XML documents are interpreted as
RDF data via a RDF Schema to enable machines to
interpret XML unambiguously as a set of statements in the
RDF data model. The round-tripping tool between XML
and RDF [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] allows to directly interpret XML documents
with a RDF model using the XML schema as basis for
describing how XML is mapped into RDF and back. In [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] the
idea is that every element/attribute name maps to a RDF
property, viewing the structure of the XML document as
relational model between parent nodes and their children. All
these approaches rely on the equality of the XML
element/attribute names and those of the class/property names in
the ontology. This, however, cannot be guaranteed, since
ontologies are typically defined by third parties.
      </p>
    </sec>
    <sec id="sec-11">
      <title>9. CONCLUSIONS</title>
      <p>The success of the Semantic Web crucially depends on the
existence of semantically annotated Web pages. Current
Web engineering methodologies and frameworks, however,
lack techniques to provide semantic meta-data. To
annotate Web pages, information items have to be identified and
mapped to the concepts that are defined in ontologies. Since
it is easier to identify these information items in structured
data-sources (e.g., databases, XML), which are available
while engineering the Web application, than in the
generated HTML pages, we argue that the semantic annotation
process should be integrated into the engineering process of
the Web application.</p>
      <p>In this paper we introduced Apache Cocoon transformer
components that can be used to generate semantic
metadata out of existing Web engineering artifacts. These
transformer use WEESA, a mapping from XML
elements/attributes to concepts in ontologies, to automatically generate RDF
from XML documents and can therefore be used to develop
Semantic Web applications. In this paper we further
presented the experiences gained while using WEESA for
developing a Semantic Web application.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>B.</given-names>
            <surname>Adida</surname>
          </string-name>
          and M. B. eds.
          <source>RDFa Primer 1</source>
          .
          <fpage>0</fpage>
          -
          <string-name>
            <surname>Embedding</surname>
            <given-names>RDF</given-names>
          </string-name>
          <source>in XHTML, 16 May</source>
          <year>2006</year>
          . http://www.w3.org/TR/xhtml-rdfa-primer/.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>S.</given-names>
            <surname>Battle</surname>
          </string-name>
          . Poster:
          <article-title>Round-tripping between XML and RDF</article-title>
          . In International Semantic Web Conference (ISWC), Hiroshima, Japan,
          <year>November 2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>T.</given-names>
            <surname>Berners-Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Hendler</surname>
          </string-name>
          , and
          <string-name>
            <given-names>O.</given-names>
            <surname>Lassila</surname>
          </string-name>
          .
          <source>The Semantic Web. Scientific America</source>
          ,
          <volume>284</volume>
          (
          <issue>5</issue>
          ):
          <fpage>34</fpage>
          -
          <lpage>43</lpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <article-title>[4] The Apache Cocoon project homepage</article-title>
          ,
          <source>Last visited February</source>
          <year>2005</year>
          . http://cocoon.apache.org/.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>M.</given-names>
            <surname>Ferdiand</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Zirpins</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Trastour</surname>
          </string-name>
          .
          <article-title>Lifting xml schema to owl</article-title>
          .
          <source>In 4th International Conference on Web Engineering</source>
          , pages
          <fpage>354</fpage>
          -
          <lpage>358</lpage>
          , Munich, Germany,
          <year>July 2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>M.</given-names>
            <surname>Gaedke</surname>
          </string-name>
          and
          <string-name>
            <given-names>G.</given-names>
            <surname>Graef</surname>
          </string-name>
          .
          <article-title>Development and evolution of web-applications using the webcomposition process model</article-title>
          .
          <source>In Int. WS on Web Eng. at the 9th Int. WWW Conf</source>
          ., Amsterdam, the Netherlands, May
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>S.</given-names>
            <surname>Handschuh</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Staab</surname>
          </string-name>
          .
          <article-title>Annotation of the shallow and the deep web</article-title>
          . In S. Handschuh and S. Staab, editors,
          <source>Annotation for the Semantic Web</source>
          , volume
          <volume>96</volume>
          <source>of Frontiers in Artificial Intelligence and Applications</source>
          , pages
          <fpage>25</fpage>
          -
          <lpage>45</lpage>
          . IOS Press, Amsterdam,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>J.</given-names>
            <surname>Hartmann</surname>
          </string-name>
          and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Sure</surname>
          </string-name>
          .
          <article-title>An infrastructure for scalable, reliable semantic portals</article-title>
          .
          <source>IEEE Intelligent Systems</source>
          ,
          <volume>19</volume>
          (
          <issue>3</issue>
          ):
          <fpage>58</fpage>
          -
          <lpage>65</lpage>
          , May
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>J.</given-names>
            <surname>Heflin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Hendler</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Luke</surname>
          </string-name>
          .
          <article-title>Shoe: A blueprint for the semantic web</article-title>
          . In D. Fensel,
          <string-name>
            <given-names>J.</given-names>
            <surname>Hendler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Liebermann</surname>
          </string-name>
          , and W. Wahlster, editors,
          <source>Spinning the Semantic Web</source>
          , pages
          <fpage>29</fpage>
          -
          <lpage>63</lpage>
          . The MIT Press,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          <source>[10] HTML 4</source>
          .01:
          <article-title>Definition of the script element</article-title>
          ,
          <source>Last visited March</source>
          <year>2005</year>
          . http://www.w3.org/TR/html401/ interact/scripts#edef-SCRIPT.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          <source>[11] iCalendar OWL ontology definition, April</source>
          <volume>7</volume>
          2004. http://www.w3.org/
          <year>2002</year>
          /12/cal/ical.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>A.</given-names>
            <surname>Kalyanpur</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Hendler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Parsia</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Golbeck</surname>
          </string-name>
          . SMORE - semantic markup, ontology, and RDF editor.
          <source>Technical report</source>
          , University of Maryland,
          <year>2003</year>
          . http://www.mindswap.org/papers/SMORE.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>C.</given-names>
            <surname>Kerer</surname>
          </string-name>
          and
          <string-name>
            <given-names>E.</given-names>
            <surname>Kirda</surname>
          </string-name>
          .
          <article-title>Web engineering, software engineering and web application development</article-title>
          .
          <source>In 3rd Workshop on Web Engineering at the 9th World Wide Web Conference</source>
          , pages
          <fpage>135</fpage>
          -
          <lpage>147</lpage>
          , Amsterdam, the Netherlands, May
          <year>2000</year>
          . Springer-Verlag.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>R.</given-names>
            <surname>Klapsing</surname>
          </string-name>
          and
          <string-name>
            <given-names>G.</given-names>
            <surname>Neumann.</surname>
          </string-name>
          <article-title>Applying the resource description framework to web engineering</article-title>
          .
          <source>In Proceeding of the 1st International Conference on Electronic Commerce and Web Technologies: EC-Web 2000, Lecture Notes in Computer Science</source>
          . Springer-Verlag,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>M.</given-names>
            <surname>Klein</surname>
          </string-name>
          .
          <article-title>Using RDF Schema to interpret XML documents meaningfully</article-title>
          . In S. Handschuh and S. Staab, editors,
          <source>Annotation for the Semantic Web</source>
          , volume
          <volume>96</volume>
          of Frontiers in
          <source>AI and Applications</source>
          , pages
          <fpage>79</fpage>
          -
          <lpage>89</lpage>
          . IOS Press, Amsterdam,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>F.</given-names>
            <surname>Lima</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Schwabe</surname>
          </string-name>
          .
          <article-title>Application modelling for the semantic web</article-title>
          .
          <source>In Proceedings of the 3th International Conference on Web Engineering (ICWE</source>
          <year>2003</year>
          ), pages
          <fpage>417</fpage>
          -
          <lpage>426</lpage>
          , Oviedo, Sapin,
          <year>July 2003</year>
          . Springer-Verlag.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>S. B.</given-names>
            <surname>Palmer</surname>
          </string-name>
          . RDF in HTML: Approaches,
          <year>June 2002</year>
          . http://infomesh.net/2002/rdfinhtml/index.html.
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>P.</given-names>
            <surname>Plessers</surname>
          </string-name>
          and
          <string-name>
            <given-names>O. D.</given-names>
            <surname>Troyer</surname>
          </string-name>
          .
          <article-title>Annotation for the semantic web during website development</article-title>
          .
          <source>In 4th International Conference on Web Engineering</source>
          , pages
          <fpage>349</fpage>
          -
          <lpage>353</lpage>
          , Munich, Germany,
          <year>July 2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <article-title>W3C: Frequently Asked Questions about RDF: How do I put some RDF into my HTML pages?</article-title>
          ,
          <year>September 2004</year>
          . http://www.w3.org/RDF/FAQ#How.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>G.</given-names>
            <surname>Reif. WEESA -</surname>
          </string-name>
          <article-title>Web Engineering for Semantic Web Applications</article-title>
          .
          <source>PhD thesis</source>
          , TU Vienna,
          <year>2005</year>
          . http: //seal.ifi.unizh.ch/fileadmin/User Filemount/ Publications/reif-phdthesis05.
          <fpage>pdf</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>G.</given-names>
            <surname>Reif</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Gall</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Jazayeri. WEESA -</surname>
          </string-name>
          <article-title>Web Engineering for Semanitc Web Applications</article-title>
          .
          <source>In Proceedings of the 14th International World Wide Web Conference</source>
          , pages
          <fpage>722</fpage>
          -
          <lpage>729</lpage>
          , Chiba, Japan, May
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>