<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Using WEESA to Semantically Annotate Cocoon Web Applications</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Gerald</forename><surname>Reif</surname></persName>
							<email>reif@ifi.unizh.ch</email>
							<affiliation key="aff0">
								<orgName type="department">Department of Informatics</orgName>
								<orgName type="institution">University of Zurich Binzmuehlstrasse</orgName>
								<address>
									<postCode>14, CH-8050</postCode>
									<settlement>Zurich</settlement>
									<country>Schwitzerland</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Harald</forename><surname>Gall</surname></persName>
							<email>gall@ifi.unizh.ch</email>
							<affiliation key="aff0">
								<orgName type="department">Department of Informatics</orgName>
								<orgName type="institution">University of Zurich Binzmuehlstrasse</orgName>
								<address>
									<postCode>14, CH-8050</postCode>
									<settlement>Zurich</settlement>
									<country>Schwitzerland</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Using WEESA to Semantically Annotate Cocoon Web Applications</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">A5C06992FC5B0B7EF641477A034FC179</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T16:23+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>H.3.5 [Information Systems]: Information Storage and Retrieval; D.2 [Software]: Software Engineering Web Engineering</term>
					<term>Semantic Web</term>
					<term>Semantic Annotation</term>
					<term>Ontology</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><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></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.">INTRODUCTION</head><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 SAAW2006 1st Semantic Authoring and Annotation Workshop 2006 at the 5th International Semantic Web Conference, November 5-9, 2006, Athens, Geogria, USA not accessible by machines. To enable machines to support the user in solving information problems, the Semantic Web proposes an extension to the existing Web that makes the semantics of the Web pages machine-processable <ref type="bibr" target="#b2">[3]</ref>. The semantics of the information of a Web page is formalized using RDF meta-data describing the meaning of the content. The existence of semantically annotated Web pages is therefore crucial in bringing the Semantic Web into existence.</p><p>In <ref type="bibr" target="#b19">[20,</ref><ref type="bibr" target="#b20">21]</ref> we introduced WEESA, a technique to extend existing XML-based Web engineering methodologies to develop semantically annotated Web applications. The novelty of this approach is the definition of a mapping from XML elements/attributes to concepts defined in an ontology. This mapping can then be taken to automatically generate RDF meta-data from XML content documents. WEESA can therefore be used to extend XML based Web applications to provide RDF meta-data in addition to HTML Web pages.</p><p>The contribution of this paper is the integration of the WEESA meta-data generation into the Apache Cocoon Web development framework. For this purpose we developed two WEESA enabled transformer components. We show how these transformers can be used to develop semantically annotated Web applications and discuss the experiences gained while implementing an industry case study.</p><p>The remainder of the paper is structured as follows. Section 2 introduces WEESA. Section 3 presents the Apache Cocoon pipeline model. Section 4 discusses the association of HTML Web pages and RDF meta-data and Section 5 and 6 shows the integration of WEESA into Cocoon transformers and how this transformer can be used in XML based Web applications. Section 7 presents the case study, 8 discusses the related work, and Section 9 concludes the paper.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.">WEESA META-DATA GENERATION</head><p>In this section we briefly introduce Web engineering and show how WEESA <ref type="bibr" target="#b20">[21]</ref> 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 <ref type="bibr" target="#b5">[6]</ref>. 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 <ref type="bibr" target="#b8">[9]</ref>, the CREAM OntoMat <ref type="bibr" target="#b6">[7]</ref>, and SMORE <ref type="bibr" target="#b11">[12]</ref> 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.  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 <ref type="figure" target="#fig_0">1</ref> 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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.">COCOON PIPELINE CONCEPT</head><p>In this section we introduce the concept of Apache Cocoon Web applications. Apache Cocoon <ref type="bibr" target="#b3">[4]</ref>   Figure <ref type="figure" target="#fig_1">2</ref> shows the pipeline of a typical Cocoon Web application. A Cocoon pipeline consists of a generator, an arbitrary number of transformer, and a serializer. An HTTP request triggers the pipeline and causes the generator to read XML from a data source and produces a stream of SAX 1 events as output representing the XML document. This output is the input of a transformer or a serializer. A transformer takes the SAX events, does some transformation (e.g. XSLT transformation), and the results are again SAX events. These events can then be taken by another transformer or a serializer. In a typical Cocoon Web application, the business logic (e.g. SQL queries, Java code) is processed by the transformers at the beginning of the pipeline. The output of the business logic is a schema valid XML document that fulfills the Web engineering contract and has the structure the XSLT stylesheet was designed for. This document is then taken by the XSLT transformer which uses the XSLT stylesheet to produce the HTML page. The serializer finally takes the SAX events and processes them into a character stream for client consumption.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.">ASSOCIATING HTML AND RDF</head><p>As shown in Figure <ref type="figure" target="#fig_0">1</ref>, we have to perform two steps on the schema valid XML document to generate the semantically annotated Web pages: <ref type="bibr" target="#b0">(1)</ref> The XSLT transformation has to be performed to generate the HTML page. <ref type="bibr" target="#b1">(2)</ref> 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 <ref type="bibr" target="#b16">[17]</ref> Palmer discusses several possible approaches. These techniques can be classified in the following categories:</p><p>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 <ref type="bibr" target="#b16">[17]</ref>.</p><p>A recently proposed technique to embed RDF into HTML is RDFa <ref type="bibr" target="#b0">[1]</ref>. 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 <ref type="bibr" target="#b16">[17]</ref> or using an common HTML &lt;a href=""&gt; link <ref type="bibr" target="#b7">[8]</ref>.</p><p>In the following two sections we introduce a WEESA enabled Cocoon transformer for both categories of association styles.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.">WEESA COCOON TRANSFORMER TO GENERATE HTML+RDF</head><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 <ref type="bibr" target="#b9">[10]</ref>. 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 DOM 2 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 <ref type="figure" target="#fig_2">3</ref> 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 <ref type="figure">4</ref> shows a fragment of the sitemap file for the pipeline from Figure <ref type="figure" target="#fig_2">3</ref>. 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 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 <ref type="figure" target="#fig_4">5</ref>. 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 <ref type="figure">4</ref>.</p><p>Including RDF/XML meta-data in the HTML page using the WEESAReadDOMSession transformer has the advantage § ¤ &lt; page &gt; &lt; header &gt; &lt;! --here goes the XML for the header --&gt; &lt;/ header &gt; &lt; navigation &gt; &lt;! --here goes the XML for the n a v i g a t i o n --&gt; &lt;/ navigation &gt; &lt; content &gt; &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 <ref type="bibr" target="#b18">[19]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6.">WEESA COCOON TRANSFORMER TO GENERATE RDF/XML</head><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 <ref type="bibr" target="#b16">[17]</ref>. 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:</p><p>&lt;link rel="meta" type="application/rdf+xml" href="AlanisMorissetteUnplugged.rdf"/&gt;</p><p>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:</p><p>http://www.mytunes.com/album.html?id=1234</p><p>The path in URLs that trigger the pipeline for the RDF meta-data generation have the suffix ".rdf" such as:  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.</p><p>The RDF/XML output of the transformer is then taken by a serializer and sent to the client. The pipeline is shown in Figure <ref type="figure" target="#fig_5">6</ref> and Figure <ref type="figure" target="#fig_6">7</ref> 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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="7.">CASE STUDY</head><p>We have evaluated the WEESA transformers in the annual Vienna International Festival<ref type="foot" target="#foot_1">3</ref> (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 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:</p><p>VIF Homepage: Entry point to the VIF Web application. 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.</p><p>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.</p><p>The VIF Web application was originally implemented using MyXML <ref type="bibr" target="#b12">[13]</ref>. 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.</p><p>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 <ref type="bibr" target="#b10">[11]</ref> ontology. We further did the implementation for both HTML -RDF association styles introduced in Section 4. Figure <ref type="figure" target="#fig_7">8</ref> 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:</p><p>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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Change of ontologies:</head><p>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.</p><p>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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Free-Text and Mixed Content:</head><p>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.</p><p>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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="8.">RELATED WORK</head><p>To our knowledge not much work has been done to integrate the Semantic annotation process into Web engineering. In <ref type="bibr" target="#b17">[18]</ref>, 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) <ref type="bibr" target="#b13">[14]</ref> 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) <ref type="bibr" target="#b15">[16]</ref> 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.</p><p>There is further related work in the area of Semantic annotation. CREAM/OntoMat <ref type="bibr" target="#b6">[7]</ref> 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 <ref type="bibr" target="#b14">[15]</ref>, 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 <ref type="bibr" target="#b1">[2]</ref> allows to directly interpret XML documents with a RDF model using the XML schema as basis for de-scribing how XML is mapped into RDF and back. In <ref type="bibr" target="#b4">[5]</ref> 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></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="9.">CONCLUSIONS</head><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 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></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Figure 1 :</head><label>1</label><figDesc>Figure 1: WEESA design and instance level.</figDesc><graphic coords="2,60.20,565.20,227.23,77.29" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figure 2 :</head><label>2</label><figDesc>Figure 2: Pipeline of a typical Cocoon Web application.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Figure 3 :</head><label>3</label><figDesc>Figure 3:Cocoon pipeline for the WEESA HTML+RDF generation.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>1 &lt; 2 &lt; 3 &lt; 4 &lt; 5 &lt; 6 &lt; 8 &lt; 9 &lt; 12 &lt; 14 &lt; 21 &lt;</head><label>12345689121421</label><figDesc>Figure 4: Pipeline definition using the WEESAReadDOMSession transformer.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>Figure 5 :</head><label>5</label><figDesc>Figure 5: Sample XML document aggregated from several parts.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_5"><head>Figure 6 :</head><label>6</label><figDesc>Figure 6: Cocoon pipeline for the WEESA RD-F/XML generation.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_6"><head>Figure 7 :</head><label>7</label><figDesc>Figure 7: Configuration of the WEESA transformer.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_7"><head>Figure 8 :</head><label>8</label><figDesc>Figure 8: Snipped of the generated RDF graph.</figDesc><graphic coords="6,53.80,54.79,240.95,157.36" type="bitmap" /></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">SAX: Simple API for XML</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="3" xml:id="foot_1">http://www.festwochen.at</note>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<title level="m" type="main">RDFa Primer 1.0 -Embedding RDF in XHTML</title>
		<ptr target="http://www.w3.org/TR/xhtml-rdfa-primer/" />
		<editor>B. Adida and M. B.</editor>
		<imprint>
			<date type="published" when="2006-05-16">16 May 2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Poster: Round-tripping between XML and RDF</title>
		<author>
			<persName><forename type="first">S</forename><surname>Battle</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">International Semantic Web Conference (ISWC)</title>
				<meeting><address><addrLine>Hiroshima, Japan</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2004-11">November 2004</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">The Semantic Web</title>
		<author>
			<persName><forename type="first">T</forename><surname>Berners-Lee</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Hendler</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>Lassila</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Scientific America</title>
		<imprint>
			<biblScope unit="volume">284</biblScope>
			<biblScope unit="issue">5</biblScope>
			<biblScope unit="page" from="34" to="43" />
			<date type="published" when="2001">2001</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<monogr>
		<ptr target="http://cocoon.apache.org/" />
		<title level="m">The Apache Cocoon project homepage</title>
				<imprint>
			<date type="published" when="2005-02">February 2005</date>
		</imprint>
	</monogr>
	<note>Last visited</note>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Lifting xml schema to owl</title>
		<author>
			<persName><forename type="first">M</forename><surname>Ferdiand</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Zirpins</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Trastour</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">4th International Conference on Web Engineering</title>
				<meeting><address><addrLine>Munich, Germany</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2004-07">July 2004</date>
			<biblScope unit="page" from="354" to="358" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Development and evolution of web-applications using the webcomposition process model</title>
		<author>
			<persName><forename type="first">M</forename><surname>Gaedke</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Graef</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Int. WS on Web Eng. at the 9th Int. WWW Conf</title>
				<meeting><address><addrLine>Amsterdam, the Netherlands</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2000-05">May 2000</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Annotation of the shallow and the deep web</title>
		<author>
			<persName><forename type="first">S</forename><surname>Handschuh</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Staab</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Frontiers in Artificial Intelligence and Applications</title>
				<editor>
			<persName><forename type="first">S</forename><surname>Handschuh</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">S</forename><surname>Staab</surname></persName>
		</editor>
		<meeting><address><addrLine>Amsterdam</addrLine></address></meeting>
		<imprint>
			<publisher>IOS Press</publisher>
			<date type="published" when="2003">2003</date>
			<biblScope unit="volume">96</biblScope>
			<biblScope unit="page" from="25" to="45" />
		</imprint>
	</monogr>
	<note>Annotation for the Semantic Web</note>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">An infrastructure for scalable, reliable semantic portals</title>
		<author>
			<persName><forename type="first">J</forename><surname>Hartmann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Sure</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Intelligent Systems</title>
		<imprint>
			<biblScope unit="volume">19</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="58" to="65" />
			<date type="published" when="2004-05">May 2004</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Shoe: A blueprint for the semantic web</title>
		<author>
			<persName><forename type="first">J</forename><surname>Heflin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Hendler</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Luke</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Spinning the Semantic Web</title>
				<editor>
			<persName><forename type="first">D</forename><surname>Fensel</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">J</forename><surname>Hendler</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">H</forename><surname>Liebermann</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">W</forename><surname>Wahlster</surname></persName>
		</editor>
		<imprint>
			<publisher>The MIT Press</publisher>
			<date type="published" when="2003">2003</date>
			<biblScope unit="page" from="29" to="63" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<monogr>
		<idno>HTML 4.01</idno>
		<ptr target="http://www.w3.org/TR/html401/interact/scripts#edef-SCRIPT" />
		<title level="m">Definition of the script element</title>
				<imprint>
			<date type="published" when="2005-03">March 2005</date>
		</imprint>
	</monogr>
	<note>Last visited</note>
</biblStruct>

<biblStruct xml:id="b10">
	<monogr>
		<ptr target="http://www.w3.org/2002/12/cal/ical" />
		<title level="m">iCalendar OWL ontology definition</title>
				<imprint>
			<date type="published" when="2004-04-07">April 7 2004</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<monogr>
		<title level="m" type="main">SMORE -semantic markup, ontology, and RDF editor</title>
		<author>
			<persName><forename type="first">A</forename><surname>Kalyanpur</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Hendler</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Parsia</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Golbeck</surname></persName>
		</author>
		<ptr target="http://www.mindswap.org/papers/SMORE.pdf" />
		<imprint>
			<date type="published" when="2003">2003</date>
		</imprint>
		<respStmt>
			<orgName>University of Maryland</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Technical report</note>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Web engineering, software engineering and web application development</title>
		<author>
			<persName><forename type="first">C</forename><surname>Kerer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Kirda</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Workshop on Web Engineering at the 9th World Wide Web Conference</title>
				<meeting><address><addrLine>Amsterdam, the Netherlands</addrLine></address></meeting>
		<imprint>
			<publisher>Springer-Verlag</publisher>
			<date type="published" when="2000-05">May 2000</date>
			<biblScope unit="page" from="135" to="147" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">Applying the resource description framework to web engineering</title>
		<author>
			<persName><forename type="first">R</forename><surname>Klapsing</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Neumann</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceeding of the 1st International Conference on Electronic Commerce and Web Technologies: EC-Web 2000</title>
		<title level="s">Lecture Notes in Computer Science</title>
		<meeting>eeding of the 1st International Conference on Electronic Commerce and Web Technologies: EC-Web 2000</meeting>
		<imprint>
			<publisher>Springer-Verlag</publisher>
			<date type="published" when="2000">2000</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Using RDF Schema to interpret XML documents meaningfully</title>
		<author>
			<persName><forename type="first">M</forename><surname>Klein</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Frontiers in AI and Applications</title>
				<editor>
			<persName><forename type="first">S</forename><surname>Handschuh</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">S</forename><surname>Staab</surname></persName>
		</editor>
		<meeting><address><addrLine>Amsterdam</addrLine></address></meeting>
		<imprint>
			<publisher>IOS Press</publisher>
			<date type="published" when="2003">2003</date>
			<biblScope unit="volume">96</biblScope>
			<biblScope unit="page" from="79" to="89" />
		</imprint>
	</monogr>
	<note>Annotation for the Semantic Web</note>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">Application modelling for the semantic web</title>
		<author>
			<persName><forename type="first">F</forename><surname>Lima</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Schwabe</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 3th International Conference on Web Engineering (ICWE 2003)</title>
				<meeting>the 3th International Conference on Web Engineering (ICWE 2003)<address><addrLine>Oviedo, Sapin</addrLine></address></meeting>
		<imprint>
			<publisher>Springer-Verlag</publisher>
			<date type="published" when="2003-07">July 2003</date>
			<biblScope unit="page" from="417" to="426" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<monogr>
		<title level="m" type="main">RDF in HTML: Approaches</title>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">B</forename><surname>Palmer</surname></persName>
		</author>
		<ptr target="http://infomesh.net/2002/rdfinhtml/index.html" />
		<imprint>
			<date type="published" when="2002-06">June 2002</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b17">
	<analytic>
		<title level="a" type="main">Annotation for the semantic web during website development</title>
		<author>
			<persName><forename type="first">P</forename><surname>Plessers</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><forename type="middle">D</forename><surname>Troyer</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">4th International Conference on Web Engineering</title>
				<meeting><address><addrLine>Munich, Germany</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2004-07">July 2004</date>
			<biblScope unit="page" from="349" to="353" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b18">
	<monogr>
		<title level="m" type="main">W3C: Frequently Asked Questions about RDF: How do I put some RDF into my HTML pages?</title>
		<ptr target="http://www.w3.org/RDF/FAQ#How" />
		<imprint>
			<date type="published" when="2004-09">September 2004</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b19">
	<monogr>
		<title level="m" type="main">WEESA -Web Engineering for Semantic Web Applications</title>
		<author>
			<persName><forename type="first">G</forename><surname>Reif</surname></persName>
		</author>
		<ptr target="http://seal.ifi.unizh.ch/fileadmin/UserFilemount/Publications/reif-phdthesis05.pdf" />
		<imprint>
			<date type="published" when="2005">2005</date>
		</imprint>
		<respStmt>
			<orgName>TU Vienna</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">PhD thesis</note>
</biblStruct>

<biblStruct xml:id="b20">
	<analytic>
		<title level="a" type="main">WEESA -Web Engineering for Semanitc Web Applications</title>
		<author>
			<persName><forename type="first">G</forename><surname>Reif</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Gall</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Jazayeri</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 14th International World Wide Web Conference</title>
				<meeting>the 14th International World Wide Web Conference<address><addrLine>Chiba, Japan</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2005-05">May 2005</date>
			<biblScope unit="page" from="722" to="729" />
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
