<!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>A Generic Transcoding Tool for Making Web Applications Adaptive</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Zolt´an Fiala</string-name>
          <email>zoltan.fiala@inf.tu-dresden.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Geert-Jan Houben</string-name>
          <email>houben@win.tue.nl</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Technische Universit ̈at Dresden Mommsenstr.</institution>
          <addr-line>13, D-01062, Dresden</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Technische Universiteit Eindhoven PO</institution>
          <addr-line>Box 513, NL 5600 MB, Eindhoven</addr-line>
          ,
          <country country="NL">The Netherlands</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>As personalization and device independence become prominent issues in Web development, tools to adapt existing Web Information Systems (WISs) are required. Still, current development approaches lack support for adding adaptation to existing WISs. This paper presents the Generic Adaptation Component (GAC), a transcoding tool for making Web applications adaptable and adaptive. It can be seamlessly integrated into existing Web architectures as an autonomous adaptation and personalization module. For configuring the GAC an RDF-based rule language is presented, allowing to define both content adaptation and context data update rules. Moreover, based on the document generation architecture of the AMACONT project a collection of transformation operations is provided to realize these rules. The main functionality of the GAC is elucidated by an example implementation.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        The growing number of Web users with heterogeneous preferences and client
devices makes personalization and device independence to central issues of Web
development. Therefore, modern Web Information Systems (WIS) need to be
extended with the ability to automatically adapt themselves to both individual
users and their client platforms. However, recent WIS design frameworks that
provide adaptation, e.g. [
        <xref ref-type="bibr" rid="ref1 ref2">1, 2</xref>
        ], assume to develop AWISs “from scratch” by
using complex design models in which the adaptation is embedded. This leaves
insufficient support for designers aiming at adding adaptation to existing WISs.
      </p>
      <p>
        Recently, different transcoding solutions for adapting Web pages have been
proposed. However, most of them are restricted to the presentation layer of Web
applications, aiming at transforming HTML pages to limited device
capabilities [
        <xref ref-type="bibr" rid="ref3 ref4">3, 4</xref>
        ] or users’ visual impairments [
        <xref ref-type="bibr" rid="ref5 ref6">5, 6</xref>
        ]. Moreover, they typically support
only static adaptation (adaptability), i.e. the adjustment of Web pages to a static
set of user or device parameters. Still, we claim that the transcoding paradigm
can be used for a broader range of adaptation and personalization issues,
especially for adaptivity, i.e. adaptation according to parameters that may change
while the Web presentation is being accessed or browsed.
      </p>
      <p>
        For this reason, we introduce the Generic Adaptation Component (GAC)
aiming at making existing Web applications adaptable and adaptive. The provider
of a Web site can configure and integrate the GAC as a stand-alone module into
the Web site architecture. We present an RDF-based rule language for specifying
both content adaptation and context data update rules. Furthermore, based on
the formats and the generation architecture of the AMACONT project [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], we
provide a collection of operations that implement these rules.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>GAC Architecture</title>
      <p>adaptation
context
data
config
data</p>
      <p>Web
application
content
generator</p>
      <p>Web
pages</p>
      <p>GAC
adapted</p>
      <p>Web
pages
For the sake of generality, arbitrary XML-based Web content is allowed as input
for the GAC. This allows us to process a wide spectrum of Web content, both
traditional Web pages delivered in a standardized presentation format ((X)HTML,
cHTML or WML), as well as richly annotated XML data that abstracts from a
specific output format and provides more information about the structure and
semantics of its content. In general, the better structured and annotated the
input data is, the more sophisticated adaptation rules can be specified.</p>
      <p>
        In our running example [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] we use the GAC for adapting a dynamic WIS that
provides information about the goals, products, and members of our research
project called “Hera meets AMACONT!”. As this WIS was developed following
the model-driven Hera specification framework [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], the generated application is
independent from a concrete implementation format and consists of a set of slice
instances described in RDF. Abstracting from the notion of a Web page, a Hera
slice is a meaningful grouping of content pieces that should be shown together
in a hypermedia presentation. Since the delivered hypermedia presentation does
not take into account the user‘s preferences, nor the client‘s capabilities, we use
the GAC to add personalization and adaptation to it.
2.2
      </p>
      <p>GAC Configuration
The GAC is controlled by its RDF-based configuration. It consists of a set of
rules that specify the parts of the input data to be adjusted, the adaptations
to be performed on them, and (in the case of adaptivity) the way the data
defining the adaptation context has to be updated. A graphical excerpt of the
RDFS schema defining our rule hierarchy is depicted in Figure 2. The top of this
hierarchy is the abstract class Rule. A Rule is always bound to a Condition, i.e.
it is activated if and only if that condition holds. A Condition is an arbitrary
complex Boolean expression referencing parameters from the adaptation context
data. Rules can be either Adaptation Rules or Update Rules.</p>
      <p>rdfs:subClassOf</p>
      <p>AdaptationRule
rdfs:domain
hasSelector</p>
      <p>rdfs:subClassOf
rdfs:range</p>
      <p>Selector
rdfs:subClassOf rdfs:subClassOf</p>
      <p>rdfs:subClassOf rdfs:subClassOf
ReplacementRule</p>
      <p>InclusionRule
AppearanceRule</p>
      <p>SeparationRule</p>
      <p>PresentationRule
Rule
rdfs:subClassOf
UpdateRule
rdfs:subClassOf
rdfs:domain</p>
      <p>hasCondition
rdfs:range</p>
      <p>Condition</p>
      <p>SortingRule</p>
      <p>Adaptation Rules describe adaptation operations to be performed on specific
parts or structures of the input content. They have a selector property that
contains an XPath expression for unequivocally identifying these parts. Whenever
there are several rules addressing the same content element, they are ordered by
their priority property.</p>
      <p>
        In order to use our Adaptation Rules in different application scenarios, we
identified a common set of generally applicable rule primitives. Based on
Brusilovsky’s survey on adaptive hypermedia [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], as well as our recent work on
presentation adaptation [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], we selected and implemented the following:
      </p>
      <p>An Appearance Rule realizes one of the most basic adaptation methods: the
selected content is included in the output only if the associated condition is valid.
Following code from our running example omits all slices containing images
for devices being unable to display them. Note that adaptation context data
parameters are denoted with a $ sign.</p>
      <p>&lt;gac:AppearanceRule gac:selector="//Slice.member.picture"&gt;</p>
      <p>&lt;gac:Condition gac:when="($ImageCapable==yes)"/&gt;
&lt;/gac:AppearanceRule&gt;</p>
      <p>Separation Rules are a variation and less strict modification of Appearance
Rules. Instead of being elided, content units with invalid conditions are put on a
separate page and replaced by a link to that page. An Inclusion Rule realizes the
inverse mechanism. If the condition is valid, external content referenced by an
URL is included in the output document at the place determined by the selector.
A Replacement Rule substitutes XML fragments with alternative fragments.</p>
      <p>Whereas the above rules address single content units, there are also rules
adapting sets of content units, like all child elements or all variants of a specific
content unit. A Select Rule selects one of the available content units according to
a selection function. Paginator Rules divide sets of content units in a number of
subsets, each containing a predefined number of elements. Finally, Sorting Rules
aim at ordering the selected content units according to one of their attributes.</p>
      <p>In our running example the list of project members shown on the project
homepage is sorted according to whether the user already saw their personal
homepages. Members the user was already interested in are shown in the
beginning of the list. As no condition is defined, this rule is always executed. The
@ID parameter used in the by attribute denotes the ID attribute of the
currently selected XML element. Thus, the condition is appropriately adjusted to
each selected project member (slice).</p>
      <p>&lt;gac:SortingRule gac:selector="//Slice.project.members"&gt;
&lt;gac:by&gt;$SliceVisited[@ID]&lt;/gac:by&gt;
&lt;gac:order&gt;desc&lt;/gac:order&gt;
&lt;/gac:SortingRule&gt;</p>
      <p>Note that this is an adaptivity example. The corresponding rule for updating
the adaptation context data will be shown later.</p>
      <p>
        Finally, a set of Presentation Rules have been created. In contrast to other
Adaptation Rules, they aim at transforming device-independent XML input to a
concrete Web implementation format, such as HTML, cHTML or WML. Based
on previous results of the AMACONT project [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], Presentation Rules assign
so called layout managers to groups of data containers (slices in our example).
Abstracting from the current browser’s presentation capabilities, they dictate
how the selected slices should be spatially arranged in the output presentation.
Update Rules aim at updating the adaptation context data. They are used
to change (or create new) context parameters and are triggered whenever the
GAC processes an input document. The action performed by an Update Rule is
specified in its do property. The phase property determines whether the rule is
executed before (pre) or after (post ) the transcoding process.
      </p>
      <p>Since the above Sorting Rule requires to keep track of the pages (slices)
already seen by the user, we show an Update Rule writing the IDs of visited
slice instances to the application context data. The XPath expression identifies
all slice instances by selecting elements whose name starts with the word “Slice”.
&lt;gac:UpdateRule selector="//Slice"&gt;
&lt;gac:do&gt;$SliceVisited[@ID]=true&lt;/gac:do&gt;
&lt;gac:phase&gt;post&lt;/gac:phase&gt;
&lt;/gac:UpdateRule&gt;</p>
    </sec>
    <sec id="sec-3">
      <title>3 Implementation</title>
      <p>
        The GAC was realized with the aid of the AMACONT project’s modular
document generation architecture [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. As illustrated in Figure 3, it consists of a
configurable series of data transformation modules, each performing a specific
content adaptation aspect. The document generator was realized based on the
Cocoon publication framework.
      </p>
      <p>Application Context Data Repository
XML
input,
e.g.</p>
      <p>Hera
slice</p>
      <p>GAC
Transform
...</p>
      <p>GAC
Transform
Comp.</p>
      <p>Creator</p>
      <p>Transform
Layout
Config.</p>
      <p>Rendering
xHTML
cHTML
WML</p>
      <p>Adapted</p>
      <p>Web</p>
      <p>Doc.</p>
      <p>AMACONT Pipeline</p>
      <p>Written in Java, the GAC was implemented as a custom Cocoon transformer.
It communicates with the adaptation context data repository and performs the
appropriate data transformations on the DOM view of its input documents.
The repository was realized based on the open source RDF database Sesame. It
stores context data relying on CC/PP, an RDF grammar for describing device
capabilities and user preferences. The GAC utilizes SeRQL (Sesame RDF Query
language) for retrieving or updating this data.</p>
      <p>
        For illustrating the main functions provided by the GAC, a prototype
application realizing the running example described in this paper was implemented [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
As personalization and device independence become key aspects of Web
development, providers are often forced to add adaptation to an already available Web
application. For that purpose we introduced the General Adaptation Component
(GAC), an autonomous adaptation and personalization module. An RDF-based
rule language was introduced for configuring the GAC by means of content
adaptation and context data update rules. Based on the pipeline-based
document generation architecture of AMACONT, we have implemented the GAC
together with a collection of transformation operations as building blocks for
the adaptation in a GAC configuration.
      </p>
      <p>Future work aims at utilizing the GAC as a client-side component providing a
private personalized view on Web applications for its users. As possible use cases
we mention the adaptive management of bookmarks and links, the maintenance
of users’ personal comments (annotations) attached to Web page fragments,
or even the “portable” realization of a WIS’s adaptive presentation layer on
a mobile device. Another targeted issue is the usage of the developed
RDFbased rule language in a broader context, especially for the definition of complex
adaptation and update rules within WIS specification frameworks.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Ceri</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fraternali</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bongio</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Web modeling language (WebML): a modeling language for designing web sites</article-title>
          .
          <source>In: 9th International Conference on the World Wide Web (WWW9)</source>
          , Amsterdam. (
          <year>2000</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Vdovjak</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Frasincar</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Houben</surname>
            ,
            <given-names>G.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Barna</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Engineering semantic web information systems in Hera</article-title>
          .
          <source>Journal of Web Engineering</source>
          , Rinton Press 2 (
          <year>2003</year>
          )
          <fpage>003</fpage>
          -
          <lpage>026</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Bickmore</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Girgensohn</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sullivan</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          :
          <article-title>Web page filtering and reauthoring for mobile users</article-title>
          .
          <source>Computer Journal</source>
          <volume>42</volume>
          (
          <issue>6</issue>
          ) (
          <year>1999</year>
          )
          <fpage>534</fpage>
          -
          <lpage>546</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Hori</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kondoh</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ono</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hirose</surname>
            ,
            <given-names>S.I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Singhal</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Annotation-based web content transcoding</article-title>
          .
          <source>In: 9th International Conference on the World Wide Web (WWW9)</source>
          , Amsterdam. (
          <year>2000</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Huang</surname>
            ,
            <given-names>A.W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sundaresan</surname>
          </string-name>
          , N.:
          <article-title>A semantic transcoding system to adapt web services for users with disabilities</article-title>
          .
          <source>In: ASSETS'00</source>
          ,
          <string-name>
            <surname>Arlington</surname>
            ,
            <given-names>Virginia.</given-names>
          </string-name>
          (
          <year>2000</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Yesilada</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harper</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Goble</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stevens</surname>
          </string-name>
          , R.:
          <article-title>Screen readers cannot see - ontology based semantic annotation for visually impaired web travellers</article-title>
          .
          <source>In: Fourth International Conference on Web Engineering (ICWE2004)</source>
          , Munich. (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Fiala</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hinz</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Meiner</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wehner</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>A component-based approach for adaptive dynamic web documents</article-title>
          .
          <source>Journal of Web Engineering</source>
          , Rinton Press 2 (
          <year>2003</year>
          )
          <fpage>058</fpage>
          -
          <lpage>073</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Fiala</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          :
          <article-title>Hera meets AMACONT - GAC prototype</article-title>
          . http://www-mmt.inf.tudresden.de:8081/gac/index.html. (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Brusilovsky</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Adaptive hypermedia</article-title>
          .
          <source>User Modeling and User Adapted Interaction</source>
          <volume>11</volume>
          (
          <year>2001</year>
          )
          <fpage>87</fpage>
          -
          <lpage>110</lpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>