<!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 />
    <article-meta>
      <title-group>
        <article-title>(X)querying RSS/Atom Feeds Extracted from News Web Sites: a Cocoon-based Portal</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Giacomo Fiumara</string-name>
          <email>giacomo.fiumara@unime.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Mario La Rosa</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Tommaso Pimpo</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Dipartimento di Fisica, Universit`a degli Studi di Messina Salita Sperone 31</institution>
          ,
          <addr-line>I-98166 Messina</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>The Web is fastly becoming the predominant source for news and information for many people. In the past few years, a new delivery system has emerged in the form of RSS feeds. Such feeds normally provide a brief of a larger news posted on the Web. RSS feeds, collected to form “channels” according to some thematic criteria, can be accessed using Web browsers or specialized software called “news aggregators”. Even so, the amount of information available on the Web still exceeds human possibilities. In order to allow more selective and precise user choice, we developed a Web Cocoon-based platform which selects and publishes news gathered from various news Web sites. The selection is done submitting XQuery queries to a local repository and exploits the intrinsically semantic nature of RSS feeds.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        The World Wide Web (the Web) has become the predominant source for news
and information for many people. To address the vast amount of content and
the high frequency of news publication, a new delivery system has emerged in
the form of “channels” or “feeds.” These feeds, which are supplied by Websites
such as CNN and BBC News, can be read using traditional Web browsers
or specialized software, called “news aggregators.” The two main formats for
these feeds are RSS [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ](Really Simple Syndication or Rich Site Summary) and
Atom [
        <xref ref-type="bibr" rid="ref16 ref6">16, 6</xref>
        ]. They both provide an XML-based summary of the informational
content of a website, with a brief description of the new “article” and links
to the actual content. Feeds provide easy access to content in a pro-active
mode, but presenting users with more content that they can handle. Current
news aggregators do not provide the users very efficient means, beyond a
simple keyword search, by selecting the most relevant content. Over a span of
time, users will repetitively consider and discard content that does not match
their interests. One major point is the impossibility to query, even in the
relational sense of the term, the feed repositories before the retrieving of the
data sources. An obvious advantage of such a “remote” query, would result in
a reduction of network traffic, less computational efforts and more pertinent
content. We present here the preliminary results of our project, consisting in
a Web site which publishes feeds retrieved by means of a series of queries (in
Xquery[
        <xref ref-type="bibr" rid="ref10 ref12 ref23">23, 12, 10</xref>
        ] language) submitted to feed repositories spread across the
Web. Registered users have the possibility to propose new repositories to be
included in the set of those to be queried.
      </p>
    </sec>
    <sec id="sec-2">
      <title>2 The software platform</title>
      <p>
        The instruments we used for the development of our project (the
graphical interface of the portal has been written in XHTML[
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], Ajax[
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] and
CSS[
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]) are entirely based on XML technologies; the development platform
is the Apache Cocoon framework[
        <xref ref-type="bibr" rid="ref11 ref14 ref18 ref3 ref8">18, 3, 8, 11, 14</xref>
        ], which well suits for the
construction of web applications by means of the aforesaid technologies. In the
following we describe in some detail both Cocoon framework, XQuery and its
potential, XSP programming language[
        <xref ref-type="bibr" rid="ref26">26</xref>
        ].
      </p>
      <sec id="sec-2-1">
        <title>2.1 Cocoon</title>
        <p>
          Cocoon was born as a Java servlet [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ] with the aim of transforming XML
documents through XSLT stylesheets[
          <xref ref-type="bibr" rid="ref24 ref25">24, 25</xref>
          ]. The community which coalesced
around this project led it to its actual form, that is a Web-publishing
framework built on the concepts of SoC (Separation of Content) [
          <xref ref-type="bibr" rid="ref31 ref32 ref33 ref34 ref35">31, 32, 33, 34, 35</xref>
          ]
and component-based development of Web applications. Cocoon realized that
mission by the notion of pipeline of components, where each component carries
out a specific operation. Its creators define it “the web glue for your web
application development needs”, because SoC allows different development phases
to coexist, thus reducing the possibilities of conflicts and error propagation.
        </p>
        <p>
          Cocoon is based on the Avalon model[
          <xref ref-type="bibr" rid="ref27 ref28">27, 28</xref>
          ] and inherits its best features:
first of all, the possibility of defining and developing new components.
Components are defined by a descriptive interface and an implementation. For
example, a parser is described by a Java interface that specifies all services
it has to guarantee. Since this parser must be used inside an application, it’s
necessary for implementation to be conforming to the interface.
        </p>
        <p>Cocoon’s most important innovation is SoC-based design. During Web
development, programmers often need to interfere with graphical designers’ work
and vice-versa, often resulting in a reduction of productivity. The purpose of
Cocoon is to separate productive contexts to maximize the effectiveness of
each team; style construction develops in parallel with logic design,
improving productivity, quality and maintenability.</p>
        <p>As per Web applications, the idea introduced by Cocoon is to use a pipeline
to manage requests. A pipeline is a series of steps to process a particular
kind of content. Usually, a Cocoon pipeline consists of a set of steps that
specify generation, transformation and serialization of SAX events composing
generated content.</p>
        <p>
          After being processed, requests move through pipeline stages. Each stage
is responsible of a part of generation or transformation of contents. Cocoon
allows to define all parts of a pipeline. SAX[
          <xref ref-type="bibr" rid="ref2 ref30">30, 2</xref>
          ] events are interposed
between one phase and another; as an instance, the result of a pipeline can be
a HTML page produced from a XML document.
        </p>
        <p>A pipeline can be composed of four or more components always executed
in the same order. For an example of pipeline see Fig. 1.</p>
        <p>The sitemap is the heart of Cocoon. Here the developer configures Cocoon
components and defines the client/server interactions in the pipeline. Cocoon
matches each HTTP request to relative content in the sitemap, so that every
part of the application (e.g. an XSLT file) is submitted to the appropriate
component; each of them carries out a precise task and communicates with
the precedent and/or the successive one by means of a stream of SAX events,
activated when documents to be manipulated are submitted to the parser.
SAX model consists of a set of classes and interfaces; it concerns two
components placed in succession inside a pipeline; the first one sends a set of events,
the following one pays attention waiting for these informations.</p>
        <p>
          Transformations may be very demanding in terms of resources from servlet
engine. Text parsing and transformations application require, in fact, a large
quantity of processor resources. As to memory management, the situation has
improved since Cocoon has adopted SAX in place of DOM[
          <xref ref-type="bibr" rid="ref29">29</xref>
          ], but this aspect
is still problematic.
2.2 XQuery
XQuery is the language designed to query XML documents using XPath
expressions. It’s really a recent recommendation, become such through W3C on
January 2007. It’s not a fault to affirm that, from a semantic point of view,
we are in front of a SQL for XML databases, as its aim is just this. XQuery
syntax, however, is distanced from that one of its corresponding for relational
databases: XQuery is, in fact, a procedural language made of functions
(importable by means of namespaces), conditional and iterative instructions. The
heart of language resides into FLWOR expressions, a set of five clauses (whose
initials make the acronym) similar to that ones that form a SQL query:
•
•
•
•
•
        </p>
        <p>For assigns to a variable a list of elements, extracted from a XPath
expression, involved in the XQuery query;
Let operates a generic assignation (e.g. variable function value);
Where establishes the condition to satisfy in the query;
Order by establishes how results will be ordered;</p>
        <p>Return indicates the result of the query.</p>
        <p>
          The argument of a clause is an expression in which function and XPath[
          <xref ref-type="bibr" rid="ref22">22</xref>
          ]
expressions coexist. XQuery allows to embed code fragments inside HTML
tags, on condition that they are delimited by braces. This feature permits
to carry into effect, inside the same code and avoiding to recur to XSLT
stylesheets, the separation between obtained data and their visual return.
2.3 XSP
XSP (eXtensible Server Page) is a language developed for Cocoon (by
Cocoon developers) to create dynamic Web pages. It’s still a technology under
development, supported exclusively by this framework and composed of XML
pages characterized by special tags. XSP programming is based essentially on
three key points, through which separation between content and presentation
is accomplished:
•
•
use of tag libraries (logicsheets) imported by namespaces;
use of a programming language (usually Java) inside appropriate markup
elements;
• transformation of generated contents through XSLT stylesheets.
        </p>
        <p>Each XSP page is processed by ServerPages generator, which represents in
Cocoon the starting point of elaboration by means of pipelines. The
ServerPagesGenerator transforms tags in a Java class which implements the
Generator interface. XSP page is only compiled after first creation of the Generator;
following executions will use the generator already available.</p>
        <p>Each XSP pages starts with the &lt; xsp : page &gt; tag; on its interior
we declare the embedded programming language and the namespaces used
to import tags from logicsheets. XSP supports programming language such
as Java, Javascript and Python. The rest of page comprises tags extracted
from libraries and one or more &lt; xsp : logic &gt; elements containing
embedded code. XSP default library provides a further top-level element, called
&lt; xsp : structure &gt;, in which declarations inherent to the used embedded
language can be enclosed. Generally, it is used to declare the import of
external modules as, for example, classes package. Being both logic and structure
top-level elements, it’s impossible to include one into the other.</p>
        <p>Summarizing, an XSP page with only elements from default logicsheet
introduces the following structure: a &lt; xsp : page &gt; node, one or more
&lt; xsp : structure &gt; nodes, and one or more &lt; xsp : logic &gt; nodes. The
elements taken from this library don’t allow a fluid XSP programming as they
leave the development of dynamic content to embedded code, thus weighing
down source code remarkably. Besides, it’s advisable to divide code in
syntactic markup blocks, each of them having its own function (session management,
parameters management, etc.) and to commit what cannot be manipulated
with these blocks to embedded logic or through creation of new specific
logicsheets.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3 Our Project</title>
      <p>
        The idea at the heart of our project [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] is to consider the Web as a huge
database, each site representing an independent component which
continuously generates updates. Thus, we face a multitude of information incessantly
changing. It is also (more or less) homogeneously distributed on the whole
network. Our goal is to retrieve RSS/Atom feeds published by some Web sites,
store them in a Native XML Database (NXD) and publish them aggregated
according to some filtering criteria, e.g. for thematic similarity. With respect
to other Web-based feeds aggregators, we are able to submit XQuery queries
to our repository, thus exploiting both the power of XQuery/XPath and the
structure of RSS/Atom feeds. In order to publish feeds, we maintain a list of
news sites which are frequently updated in order to retrieve fresh news. Our
users can submit the URL of sites of her interest so to include them in our list.
In order to enhance the performances of our portal, we decided to implement
a caching mechanism, able to remember both the requested Web resources
and the queries submitted by the users.
      </p>
      <p>Indeed, each external URL access involves latency periods related to the
nature of the connection. They grow linearly with the number of resources
accessed.</p>
      <p>A cache that memorizes the examined resource and the search parameters,
has been used in order to eliminate this bottleneck. A deadline is assigned
to each temporary version of the resources. It is defined as the parameter
inside the pipeline, at the end of which the resource is considered stole. An
additional Cocoon component (written in Java and inserted as a JAR) has
been created in order to schedule cache updates. This “daemon” is like an
Action component inside the site-map. Moreover, the parameter concerning
the duration of the cache is transferred.</p>
      <sec id="sec-3-1">
        <title>3.1 Caching of Resources</title>
        <p>Resources are served from an internal applicative pipeline which returns them
through redirection, following a matching strategy studied for URLs that are
corresponding to RSS and Atom files. This solution allows the storage and
access to temporary copies of the requested resources, without causing
modifications to the portal structure. Thus, together with the site-map, it defines
an interface between our application and the Web.</p>
        <p>A Java module has been implemented in order to schedule the access and
then the storage of all resources in the cache through the creation of a
connection and the request of an URL like http://www.feeding.it/allresources,
which makes reference to a XQuery, forcing the update. During the first
updating request a thread is created. It is kept in memory in order to satisfy the
following updating requests and executed in parallel to both Java modules
and searches. The response time is close to zero. If a search is executed during
the updating operation, previously cached copies would be served.</p>
      </sec>
      <sec id="sec-3-2">
        <title>3.2 Scalability Tests</title>
        <p>A sequence of tests has been executed in order to study the speed of resources
retrieval. The tests were made without using the cache, to better understand
the updating times, with particular attention to differences of performance
among searches inside and outside Italy. Each test has been made with 25,
50, 100, 200 resources and has been repeated ten times using the word “Iraq”,
first over Italian resources and then on non-Italian sites. Figures 2 and 3
illustrate the results of our test.</p>
        <p>The max semi-dispersion here is represented by intervals of uncertainty
enclosed within the upper and lower extremities which are respectively green
and red. The rising of the resources coincides with the rising of intervals
of semi-dispersion and a sub-linear growth of response times in the case of
searches within Italy. We can note, moreover, how the response time for search
done within Italy is extremely lower than that over the whole Web. This shows
that latency times within the server determine performances.</p>
      </sec>
      <sec id="sec-3-3">
        <title>3.3 Creating the portal</title>
        <p>The portal has been called Feeding from the noun “feed” associated with
the English suffix “ing” used to indicate action in progress, thus reflecting
the nature of the project that handles data in continuous evolution. With
the exception of thematic pages and search engine written in Xquery, the
rest of the dynamic pages which compose the portal have been realized in
XSP and acquire the respective contents through SQL query on HSQL-DB, a
RDBMS integrated in Cocoon. Queries are embedded in the XSP tags, then
transformed through XSLT and XSL-FO style sheets. The native XML-DB,
Exist, offers the Xquery support used to query RSS/Atom feeds. The graphic
interface is written in CSS 2.0, XHTML-Transitional 1.0 and AJAX.</p>
      </sec>
      <sec id="sec-3-4">
        <title>3.4 Creating the search engine</title>
        <p>The search engine has been entirely written in Xquery. Feeding uses an XML
file with the URLs of each feeds. Two attributes, which indicate the
“language” and the “topic”, have been assigned to each URL, respectively. When
search is done, the selected key-words and the radio-button index are
transmitted by URL-rewriting to the page of interest. The news source acts as a
filter in order to select the XML-path used in the query. It is in fact the
result of a Xquery function that uses the above parameters as arguments. The
main function of the engine uses the search keys obtained and returns all the
occurrences within the elements item/title and item/description of the feed.
This procedure is iterated for all RSS/Atom resources of interest. The news
of each feed are then listed ordered by publication date.</p>
        <p>Feeding allows the use of advanced functions in order to obtain a highly
selective search. Selection criteria may be specified in one of these forms:
•</p>
        <p>Basic search: Universita` Messina. Looks for the first OR the second word
occurrence in the feed.
• Pattern search: “Universita` di Messina”. Looks for the exact pattern
occurrence in the feed.
• Exclusion search: Universita` -Messina. Looks for Universita` without Messina
matching.
• Inclusive search: Universita` +Messina. Looks for both Universita` AND</p>
        <p>Messina, meaning that the feed has to have both words at once.
• Search with date: 2007-04-07. Looks for all news published in the specified
data. The data has to be written in the form YYYY-MM-DD, MM and
DD can be optionally excluded.</p>
      </sec>
      <sec id="sec-3-5">
        <title>3.5 Complex searches</title>
        <p>One or more of the listed search forms can be used at the same time, thus
allowing the users to make complex searches as: Universita` -Messina
200703-07. It looks for all news published in the specified data with the matching
word “Universita´” and without “Messina”. Even better, a user can search for
terms appearing in the title field, other terms appearing in the description
field while limiting the feeds only to those published within a time period, say
a couple of days.</p>
      </sec>
      <sec id="sec-3-6">
        <title>3.6 The thematic pages</title>
        <p>
          The content of each thematic page is generated through a query which acquires
its parameters through URL rewriting and uses it to select the resources from
which the news will be extracted. We notice that each URL inside the XML file
is equipped with an attribute that specifies the topic of the feed. The content of
the page is generated through a query which associates the acquired parameter
during the request according to the value of the attribute mentioned above.
The result of the query includes the latest news published for each feed.
Apache Cocoon is a successful framework and by now it has been deployed at
several sites1; some of which exploit its main feature, that is the separation
of content, logic and presentation. In the few last years also some scientific
projects adopted Apache Cocoon as a framework for their applications, even
if their field of interest differs from ours. See [
          <xref ref-type="bibr" rid="ref1 ref9">1, 9</xref>
          ] for sample applications.
        </p>
        <p>
          As to the main goal of our project, that is management of repositories of
RSS/Atom feeds and the subsequent extraction of relevant information, we
found a correspondence in the works on information extraction tools. These,
whose aim is to convert semi-structured or structured Web content into a
structured, i.e. XML, format, have been thoroughly surveyed from a number
of authors. See for example [
          <xref ref-type="bibr" rid="ref36 ref37">36, 37, 38</xref>
          ] and references therein.
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>5 Conclusions and future work</title>
      <p>We presented a new platform for retrieval and querying of RSS/Atom feeds
by means of a powerful XQuery engine, which fully exploits the structure of
XML documents. Selected RSS/Atom news sites are frequently queried and
newly produced feeds are retrieved and stored in a local XML database for
future queries. Although our project is still in a early development stage, its
first results seem promising and the emphasis on Xquery queries are unique
among various feeds portal on the Web. We planned, as our next achievings,
to better manage feeds polling to minimize the number of unnecessary feed
retrievals and to publish our platform on the Web.
1See http://cocoon.apache.org/link/ for an updated list
38. Chia-Hui Chang, Kayed M., Girgis M.R., Shaalan K. (2006) A Survey of Web
Information Extraction Systems IEEE Transactions on Knowledge and Data
Engineering, TKDE-0475-1104.R3</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Eidenberger</surname>
            <given-names>H</given-names>
          </string-name>
          (
          <year>2004</year>
          )
          <article-title>Modelling of Visual Feature Derivation in the Vizir Framework</article-title>
          .
          <source>Proceedings European Signal Processing Conference</source>
          , Vienna
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Faragas</surname>
            <given-names>L</given-names>
          </string-name>
          (
          <year>2004</year>
          )
          <article-title>The Joy of SAX</article-title>
          . First International Workshop on XQuery Implementation,
          <source>Experience and Perspectives</source>
          , Paris, France
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Ford</surname>
            <given-names>N</given-names>
          </string-name>
          (
          <year>2003</year>
          )
          <article-title>Art of Java Web Development: Struts, Tapestry</article-title>
          , Commons, Velocity, JUnit, Axis, Cocoon, InternetBeans, WebWork. Manning Publications
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Hammersley</surname>
            <given-names>B</given-names>
          </string-name>
          (
          <year>2005</year>
          )
          <article-title>Developing Feeds with RSS</article-title>
          and
          <string-name>
            <surname>Atom. O'Reilly Media</surname>
          </string-name>
          , Inc.; 1 edition
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Jafari</surname>
            <given-names>A</given-names>
          </string-name>
          (
          <year>2003</year>
          )
          <article-title>Designing Portals: Opportunities and Challenges</article-title>
          . Information Science Publishing
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Johnson</surname>
            <given-names>D</given-names>
          </string-name>
          (
          <year>2006</year>
          )
          <article-title>RSS and Atom in Action: Web 2.0 Building Blocks</article-title>
          . Manning Publications
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Kraus</surname>
            <given-names>A</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Koch</surname>
            <given-names>N</given-names>
          </string-name>
          (
          <year>2002</year>
          )
          <article-title>Generation of Web Application from UML Models using an XML Publishing Framework</article-title>
          .
          <source>6th World Conference on Integrated Design and Process Technology</source>
          , Pasadena, CA
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Leung</surname>
            <given-names>T W</given-names>
          </string-name>
          (
          <year>2003</year>
          )
          <article-title>Professional XML Development with Apache Tools: Xerces, Xalan</article-title>
          ,
          <string-name>
            <surname>FOP</surname>
          </string-name>
          , Cocoon, Axis, Xindice. Wrox
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Madeyski</surname>
            <given-names>L</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stochmialek</surname>
            <given-names>M</given-names>
          </string-name>
          (
          <year>2004</year>
          )
          <article-title>Architecture of Modern Web Application</article-title>
          .
          <article-title>Software Engineering after the year</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Melton</surname>
            <given-names>J</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Buxton</surname>
            <given-names>S</given-names>
          </string-name>
          (
          <year>2006</year>
          )
          <article-title>Querying XML: XQuery, XPath, and SQL/XML in context</article-title>
          . Morgan Kaufmann
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Moczar</surname>
            <given-names>L</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Aston</surname>
            <given-names>J</given-names>
          </string-name>
          (
          <year>2002</year>
          )
          <article-title>Cocoon Developer's Handbook. Sams; 1st edition</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Robie</surname>
            <given-names>J</given-names>
          </string-name>
          (
          <year>2003</year>
          )
          <article-title>SQL/XML, XQuery, and Native XML Programming Languages</article-title>
          . XML Conference and Exposition, Pennsylvania Convention Center, Philadelphia, PA
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Sangmi</surname>
            <given-names>L</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sunghoon</surname>
            <given-names>K</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fox</surname>
            <given-names>G</given-names>
          </string-name>
          (
          <year>2003</year>
          )
          <article-title>Adapting Content for Mobile Devices in Heterogeneous Collaboration Environments</article-title>
          . ICWN Cocoon
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Ziegeler</surname>
            <given-names>C</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Langham</surname>
            <given-names>M</given-names>
          </string-name>
          (
          <year>2002</year>
          )
          <article-title>Cocoon: Building XML Applications</article-title>
          . Sams; Pap/Cdr edition
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>La Rosa</surname>
            <given-names>M</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pimpo</surname>
            <given-names>T</given-names>
          </string-name>
          (
          <year>2007</year>
          )
          <article-title>Ricerca di feeds RSS/Atom su database dinamici distribuiti: un portale con il framework Cocoon. Graduation project</article-title>
          . University of Messina
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Wittenbrink</surname>
            <given-names>H</given-names>
          </string-name>
          (
          <year>2005</year>
          )
          <article-title>Rss And Atom: Understanding And Implementing Content Feeds And Syndication</article-title>
          . Packt Publishing
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Garrett</surname>
            <given-names>J J</given-names>
          </string-name>
          (
          <year>2005</year>
          )
          <article-title>Ajax: A New Approach to Web Applications</article-title>
          . http://www.adaptivepath.com/publications/essays/archives/000385.php
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>18. Apache Cocoon Project http://cocoon.apache.org</mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <source>W3C CSS 2</source>
          .1 Specs http://www.w3.org/Style/CSS/
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>20. Sun Java Enterprise Edition http://java.sun.com/javaee/</mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <source>W3C XHTML 1</source>
          .0 Specs http://www.w3.org/TR/xhtml1/
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>22. W3C XPath Specs http://www.w3.org/TR/xpath</mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <issue>W3C XQuery 1</issue>
          .1 Specs http://www.w3.org/XML/Query/
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>24. W3C XSL http://www.w3.org/Style/XSL/</mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>25. W3C Xslt http://www.w3.org/TR/xslt</mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Apache Cocoon</surname>
          </string-name>
          Project - XSP http://cocoon.apache.
          <source>org/2</source>
          .1/userdocs/xsp.html
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27. Apache Avalon model http://cocoon.apache.
          <source>org/2</source>
          .1/developing/avalon.html
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>28. Apache Excalibur Project http://excalibur.apache.org/</mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>29. W3C DOM http://www.w3.org/DOM/</mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>30. SAX Project http://www.saxproject.org/</mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          31.
          <string-name>
            <surname>Hursch</surname>
            <given-names>L</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Videira</surname>
            <given-names>Lopes C</given-names>
          </string-name>
          (
          <year>1995</year>
          )
          <article-title>Separation of Concerns</article-title>
          .
          <source>TR NU-CCS-95-03</source>
          , College of Computer Science, Northeastern University, Boston, MA
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          32.
          <string-name>
            <surname>Kener</surname>
            <given-names>C</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kirda</surname>
            <given-names>E</given-names>
          </string-name>
          (
          <year>2000</year>
          )
          <article-title>Layout, Content and Logic Separation in Web Engineering</article-title>
          . 9th
          <source>International WWW Conference, 3rd Web Engineering Workshop</source>
          , Amsterdam
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          33.
          <string-name>
            <surname>Burner</surname>
            <given-names>A</given-names>
          </string-name>
          (
          <year>2002</year>
          )
          <article-title>Comparison of Web Technologies and Web Engineering Methodologies</article-title>
          . BurnerNet.com
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          34.
          <string-name>
            <surname>Reina A M</surname>
            , Torres
            <given-names>J</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Toro</surname>
            <given-names>M</given-names>
          </string-name>
          (
          <year>2003</year>
          )
          <article-title>Aspect-Oriented Web Development vs</article-title>
          .
          <source>Non Aspect-Oriented Web Development. Workshop of analysis of Aspect-Oriented Software</source>
          , Darmstadt, Germany
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          35.
          <string-name>
            <surname>Aksit</surname>
            <given-names>M</given-names>
          </string-name>
          (
          <year>1996</year>
          )
          <article-title>Composition and Separation of Concerns in the Object-Oriented Model</article-title>
          . ACM Computing Surveys
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          36.
          <string-name>
            <surname>Laender</surname>
            <given-names>A.H.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ribeiro-Neto</surname>
            <given-names>B.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>da Silva</surname>
            <given-names>A.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Teixeira</surname>
            <given-names>J.S.</given-names>
          </string-name>
          (
          <year>2002</year>
          )
          <article-title>A Brief Survey of Web Data Extraction Tools SIGMOD Records 31(2) 2002</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          37.
          <string-name>
            <surname>Flesca</surname>
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Manco</surname>
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Masciari</surname>
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rende</surname>
            <given-names>E.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Tagarelli</surname>
            <given-names>A.</given-names>
          </string-name>
          (
          <year>2004</year>
          )
          <article-title>Web wrapper induction: a brief survey</article-title>
          .
          <source>AI</source>
          Communications
          <volume>17</volume>
          (
          <year>2004</year>
          )
          <fpage>57</fpage>
          -
          <lpage>61</lpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>