<!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>Reusable Navigation Templates to Support Navigation Design in Hera</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Peter Barna</string-name>
          <email>p.barna@tue.nl</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Geert-Jan Houben</string-name>
          <email>g.j.houben@tue.nl</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ad Aerts</string-name>
          <email>a.t.m.aerts@tue.nl</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Flavius Frasincar</string-name>
          <email>f.frasincar@tue.nl</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Philippe Thiran</string-name>
          <email>ph.thiran@tue.nl</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</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>ion. In this paper we focus on the reuse of highlevel (design model) specifications of software components in the design of web applications. Concretely, we discuss the reuse of navigation templates to specify (parts of) navigation models in different application domains based on different data sources. While supporting this diversity of applications, at the same time navigation templates should allow easy deployment. In this paper we propose a solution to this apparent contradiction using a component-specific conceptual model. By applying a mapping from this model to a concrete domain model, an automatic deployment of the navigation templates can be performed. The process of navigation template design and deployment (including the process of defining the mapping) is explained and demonstrated on two examples using the Hera framework and its HPG software.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        One of the major concepts in software design is the reuse
of software artifacts applied at different levels of abstraction
- from reuse of system requirements to reuse of software
code, and at different levels of granularity - from reuse of
software packages or whole applications through use of
design patterns [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] to reuse of classes (concepts) organized in
hierarchies.
      </p>
      <p>The benefits of reuse are obvious, and include saving
software development effort (avoiding redundant design),
facilitating the maintenance of software systems, and
making the design traceable and transparent.</p>
      <p>
        Due to the specific nature of the Web, extensions of
traditional software design methods have been proposed for
the development of web applications. The support of
navigation and the necessity of navigation modelling is what
distinguishes web systems and web design methods from
traditional systems and design methods. In the navigation
modelling, reuse of navigation structure specification (often
referred to as ”Web Patterns” or ”Web Design Patterns”) is a
very useful technique, but its full exploitation is still an open
problem. A good overview of common web patterns is
presented in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. The descriptions of patterns presented there
serve as a set of handy guidelines for web designers.
Existing software libraries offer a wide variety of useful generic
primitives that can be (re)used during the construction of
web applications, but they rarely contain larger navigation
patterns. Since navigation models are usually tightly
coupled with concrete domains, specified by Conceptual
Models (CM), the achievement of the domain portability is not
a trivial task.
      </p>
      <p>
        Current methods for web design already benefit from
the reuse concept in various ways. WebML [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] specifies
the navigation structure by means of different (predefined)
types of units. The method allows easy and convincing
composition of different units. Most of the units
however are associated with concrete data (specified in a data
model), so using such composed patterns for different
domains is not trivial. Object-oriented approaches like
OOH [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], UWE [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], or OOWS [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] show a solid approach
supporting object-oriented reuse techniques like class
abstraction. The problem of domain portability of navigation
models in object-oriented environments using the OOHDM
method is discussed in [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. The web design framework
introduced there represents abstract navigation models that
are isolated from concrete domains and can be instantiated
to a concrete domain. The deployment process consists
of the derivation of a concrete OOHDM model from an
OOHDM-frame (a generic conceptual model). It is possible
to build common navigation patterns, however the
navigation classes are derived from conceptual classes describing
a concrete domain.
      </p>
      <p>
        In this paper we propose a practical approach for the
design and deployment of domain portable reusable
navigation patterns called Navigation Templates (NT). We focus
on the explanation of the mapping from a Template
Conceptual Model (TCM) describing the structure of data used
within an NT, to a concrete domain conceptual model (CM).
For an NT, such mapping is defined for every concrete
domain, and it is a kind of NT parametrization. It allows not
only a relatively easy deployment of an NT to a concrete
domain, but it also facilitates the specification of possible
data manipulations in an NT. A mapping is similar to a data
(schema) integration model, and we can benefit from
existing knowledge in this field of research. The process of
deployment of such an NT to a concrete domain can be
automated by using an NT specification and an appropriate
mapping to a concrete domain. This deployment process
is demonstrated on two examples using the Hera
framework [
        <xref ref-type="bibr" rid="ref16 ref6">6, 16</xref>
        ]. Despite the use of a concrete method for
reasons of illustration the proposed approach of mapping NTs
to concrete domains can be used for other methods.
      </p>
      <p>Section 2 explains the requirements for NTs and the
context of their usage. The core of the paper is Section 3 that
explains the approach in detail using two examples in Hera
and HPG (Hera Presentation Generator web server
software). Potential mapping (data integration) problems and
solutions are also discussed here. The current work on the
creation of software tools supporting the design and
deployment of NTs for Hera is briefly explained in Section 4 and
the text is concluded by Section 5.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Navigation Templates Overview</title>
      <p>A Navigation Template (NT) is a parameterized
conceptual specification of a navigation structure. This
specification has well-defined interfaces in terms of links and types
of information they can carry. The NT parametrization
allows its deployment within existing navigation models of
similar applications based on different data domains. An
example of a primitive NT is a user-selection device (a
virtual shopping basket) that is used in a web application for an
online sport equipment shop as a classical shopping basket,
and in a university online library it can be used for instance
as a tool facilitating the searching of publications by
choosing topics of interest.</p>
      <p>Besides the navigation structure, NTs define also some
basic application logic (functionality), in most cases related
to dynamic updates of the navigation structure and
underlying data, both based on the user interaction. Although
NTs represent conceptual reusable units, we demonstrate
how they can be converted to a specification that is directly
used by a web server software to provide desired
functionality on the Web.</p>
      <p>For the generation of a deployed NT we need two kinds
of specification:
• An NT specification that contains two sub-models:
concept relationships) that are used in the
description of the NT’s navigation structure (TAM).
Note that the content domain described by a
TCM is not necessarily materialized, but the
TCM is used in the parametrization when the NT
is deployed.
– The Template Application Model (TAM)
describes the navigation structure of the NT and its
application logic. It is based on the data defined
in a TCM.
• An NT parametrization that defines the mapping
from the TCM to a concrete domain. This mapping
allows a (semi-)automatic translation of the NT into
(parts of) a concrete navigation model.</p>
      <p>
        With a certain level of abstraction we can see an
analogy between NTs and MDA [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] models. A main concern of
MDA is the support for the design and integration of
systems based on different platforms. In the same spirit, NTs
represent domain independent models, so if we replace the
notion of platform with the notion of domain, a PIM
(Platform Independent Model) of MDA can be compared to a
domain independent NT specification, and PSM (Platform
Specific Models) to concrete deployed NTs. Analogically,
domain independent NTs can be (semi)automatically
deployed for different domains and frameworks using
different transformation (deployment) tools.
2.1
      </p>
      <p>Benefits of NT Reuse and Methodological
Issues</p>
      <p>The main benefit of building NTs and their later
deployment lies in saving development effort for parts of web
applications that can be used again and again for different
domains. An interesting application of NTs is the composition
of new web applications from an available NT on already
existing domains (for instance on legacy databases).
Figure 1 sketches how NTs can be deployed within a
navigation model. The thick arrows represent hyperlinks
(possibly) carrying parameters (the depicted internal structure of
the NT does not reflect any real structure and is sketched
only for illustration purposes). The thin arrows show the
deployment process with the transformation of an NT
specification to a concrete (part of) navigation model based on
a CM. This transformation is automatic, but uses a
manually built TCM-to-CM mapping. The situation in Figure 1
requires two mappings, since the same shopping basket NT
is used for different data concepts (though within the same
(larger) domain). The real benefit of NT as a conceptual
unit of reuse depends on several aspects including:
– The Template Conceptual Model (TCM)
describes the structure of data concepts (and their
• generality of NT design, in the sense of how easily
they can be used for different applications. This is
in</p>
      <p>Nav. TemplateSB
fluenced by a good selection of ”typical” web
application patterns NTs represent, and also by minimizing
the structure of NTs (smaller and simpler units are
easier to deploy and specialize).
• complexity of NT deployment, including:
– complexity of its parametrization. That can be
influenced by proposing simple TCMs with a
minimal number of mappings to a concrete domain.
The mapping specification can be facilitated by
design tools.
– automation of the transformation of the NT and
appropriate mapping to a concrete models and/or
executable specification eventually. This is given
by availability of appropriate software
translators.</p>
      <p>In the context of the NT design process, we consider two
possible types of the design cycle:
• Data-driven design, where first the TCM (or a set of
TCMs) is defined and then the TAM is built on top of
it (in other words, first the data, then the navigation).
This approach can be used when a simple and
straightforward NT parametrization (mapping to a concrete
domain) is vital. For instance, when we want to use
concrete, complex legacy databases, TCMs are better
starting points. A concrete web application based on
such a legacy database then can be easily composed
from already built NTs, because the structures of the
concrete TCM are in accordance with the CM at hand.
• Process-driven design, where on the basis of user
requirements, a process model is defined for an NT
and then subsequently enriched with appropriate data
model and data manipulation specifications (in other
words, first the process, then the navigation). From the
data model an NT specification can be derived. This
interesting, process-driven approach is part of ongoing
work and will be described in a separate paper.</p>
      <p>The details of the NT specification and deployment
techniques may depend on the concretely used approach. In the
following text we explain the principles of NT
specification and deployment using two examples. The first example
demonstrates a multiple use of a simple NT (in this case a
guided tour) in a single application, and the second
highlights potential problems associated with mapping a TCM
to a concrete domain and their resolution.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Navigation Templates in Hera</title>
      <p>
        For a better explanation of the NT concept, we
demonstrate its basic principles using the Hera framework and two
examples. In the Hera design cycle, an NT can be generated
from a more abstract process model, or it can be designed
manually. The role of NTs in the method and its models is
depicted in Figure 2. It has already been mentioned, that
an NT contains a TCM describing the structure of the
information that will be presented and processed, and it contains
an appropriate TAM specifying the navigation view on the
TCM. The Articulations (see [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]) represent the NT
parametrization - the mapping from the TCM to a concrete CM,
i.e. the ”binding” of the TCM to the concrete domain. The
NT specification together with the Articulations are used by
the NT2AM Transformer to generate a concrete (part of an)
AM describing the navigation structure and functionality of
a concrete web application. The AM can then directly be
used by a Hera engine such as HPG-Java for the online
generation of pages in the web application.
3.1
      </p>
      <sec id="sec-3-1">
        <title>Brief Overview of Hera</title>
        <p>
          Within the Hera project we investigate methods for the
specification of (dynamic) hypermedia presentations and
we build and maintain appropriate server software and
design tools. The methodology determines a number of design
steps resulting in a set of models (that specify how the
hypermedia presentations get generated). The conceptual
design phase results in a Conceptual Model (CM) defining the
structure of source data used in presentations. The
application design phase results in an Application Model (AM)
defining a navigation structure over the CM, possibly with
data manipulation associated with user actions. The
presentation design phase produces a Presentation Model (PM)
specifying the layout of presentations. All Hera models are
expressed in RDFS [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ].
        </p>
        <p>
          These models are used by a Hera engine, in this case
HPG-Java (a software module running as a servlet hosted
by a web server), first performing data retrieval, and then
performing data transformations resulting in presentation
pages, possibly for different platforms and different
formats (HPG supports HTML, WML, and SMIL for
presentations without data manipulation, and HTML for
presentations allowing forms and data manipulation). The bottom
part of Figure 2 shows the transformations of the Hera/HPG
pipeline, where retrieved data is transformed consecutively
to a CM instance (CMI), an AM instance (AMI), and a
presentation in a concrete format (e.g. HTML). All
intermediate data chunks are internally represented in RDF [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ].
        </p>
        <p>
          The application modelling method is capable of
expressing more advanced functionality than only a navigation
view over static data content. It supports modelling of
user inputs by means of forms allowing users to enter
arbitrary information possibly exploited by data
manipulation queries. All queries in Hera AM are expressed in the
SeRQL [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ] RDFS query language with slight modifications
(queries are pre-processed by the Hera engine) including the
management of session parameters (variables).
        </p>
        <p>An AM contains basic building blocks called slices that
describe the structure of navigation pages (or their parts
since they can be nested), and their linking (see Figure 3).
Slices can have root concepts (from the CM) drawn as large
ovals in the slice upper part. If a slice does not have the root
concept, it is a constant slice and it can have arbitrary
content. If the target of a link is a non-constant slice, the link
carries parametrization that determines the instantiation of
the target slices (the anchor determines what instance of the
target slice root concept is used for the target slice
instantiation). The instantiation of slices can be determined also
by queries associated with slices. A slice can contain
attributes (literal properties in the CM) from a root concept
and attributes from concepts related to the root concept (the
bottom part of the slice shape) connected with the root
concept by CM properties. User interaction is facilitated by the
use of forms that carry a number of input fields users can
fill in. Forms have associated processing queries that can
retrieve data, change the data content, or update values of
session variables.
3.2</p>
      </sec>
      <sec id="sec-3-2">
        <title>Guided Tour Example</title>
        <p>In the first example we demonstrate the multiple use of
a very simple NT. The NT represents a guided tour - a
stepby-step (one per web page) presentation of multiple concept
instances. This concrete NT we deploy twice in a simple
museum application. Once for the presentation of painters,
and once for the presentation of paintings. For every
concrete deployment we will show a set of articulations
(mapping the TCM to a CM).</p>
        <p>Model Transformations (design-time)</p>
        <p>Process
Model
maps TCM to</p>
        <p>PM2NT
Transformer</p>
        <p>uses</p>
        <p>Articulations
Concrete</p>
        <p>CM
navigation view on</p>
        <p>NT Instance</p>
        <p>used in
Concrete</p>
        <p>AM
Hera Pipeline (run-time)</p>
        <p>TCM
from</p>
        <p>Navigation Template
nav. view on</p>
        <p>TAM
NT2AM
Transformer
Concrete</p>
        <p>PM
Figure 3 presents the TCM and TAM of the guided tour
NT. It uses a special predefined sub-class of general slice
(iterator) that allows easy implementation of a guided tour.
A slice of type Iterator comes with a default IteratorForm
providing a navigation facility through a collection of the
Item instances and allowing to exit the iteration using the
Out button. In the case of exit the instance of the last viewed
Item is provided as the output parameter. The concrete data
source containing information about painters and paintings
is specified by its CM shown in Figure 4.</p>
        <p>Figure 5 shows an AM of a simple museum application
using two instances of the Guided Tour NT. They contain
attributes based on a mapping from the TCM to the CM and
also attributes not appearing in the original NT, but added
by the designer. The application presents a set of
painting techniques (the TechniquesList slice), for every
technique a list of paintings exemplifying the technique (the
Technique.PaintingList slice), and the two guided tours for
browsing through the painters and paintings (GD-Painters
and GD-Paintings).
3.3</p>
      </sec>
      <sec id="sec-3-3">
        <title>Publications Example</title>
        <p>
          In the second example we demonstrate possible
problems with mapping a TCM to a concrete CM. To a large
extent, this is a problem of data integration. We show some
typical cases appearing in RDFS schema integration and
present some practical solutions covering the needs of our
method (including the rewriting of selection and data
manipulation queries). Most of the problems have been
recognized and studied in [
          <xref ref-type="bibr" rid="ref12 ref14">12, 14</xref>
          ]. The example application
is a publication database that stores publications, authors
(researchers), and research groups. The Publications NT
is specified in Hera and later deployed to an existing data
source with a different data structure. A set of articulations
is defined.
3.3.1
        </p>
      </sec>
      <sec id="sec-3-4">
        <title>Template Conceptual Model</title>
        <p>The TCM contains only those concepts, concept properties,
and literal properties that are necessary for describing the
core navigation structure and functionality (we show only
the addition of a publication) associated with a concrete NT.
The TCM of the Publications NT is presented in Figure 6.
3.3.2</p>
      </sec>
      <sec id="sec-3-5">
        <title>Template Application Model</title>
        <p>Unlike the first example, here the TAM also
contains the specification of input forms and their
processing. The Publications TAM shown in Figure 7
consists of three slices presenting research groups (the Group
slice), listing researchers in groups (the Group.Researcher
slice), and listing publications of a researcher (the
Researcher.Publications slice). The AddPaper slice allows
adding a publication created by a concrete researcher (only
one in our example). For the sake of simplicity the
application has not been detailed completely. We omit here more
comprehensive data manipulations, like removing
publications, adding a new researcher, and managing groups. The
AddPaper query is activated when the AddPaper form is
submitted:
CONSTRUCT DISTINCT
{P}rdf:type{tcm:Paper};
tcm:ptitle(Title);
tcm:url{URL};
tcm:published_at{Published};
tcm:author{Author};
tcm:year{Year}</p>
        <sec id="sec-3-5-1">
          <title>FROM</title>
          <p>{form:AddPaper}&lt;form:Iptitle&gt;{Title},
{form:AddPaper}&lt;form:Iurl&gt;{URL},
{form:AddPaper}&lt;form:Ipub&gt;{Published},
{session:session}&lt;session:resID&gt;{Author},
{form:AddPaper}&lt;form:Iyear&gt;{Year}
In this query a new instance of a paper is created where its
properties are taken from the AddPaper form inputs. The
value assigned to the Author variable represent the ID of the
last presented researcher (refreshed by the SetResearcher
query during the AddPaper slice instantiation and
temporarily stored in the session:resID session parameter). The
SetResearcher query is very simple:</p>
        </sec>
        <sec id="sec-3-5-2">
          <title>SELECT R</title>
        </sec>
        <sec id="sec-3-5-3">
          <title>FROM {session:session}&lt;session:sliceid&gt;{R}</title>
          <p>year
Paper
papers</p>
          <p>*
members</p>
          <p>Group
Researcher
name
gname
published_at
The session:sliceid is a default session variable containing
the URI of the root concept instance of the last completely
instantiated slice (that is why it is attached to the AddPaper
slice and not to Researcher.Publications slice, although it
contains the URI of the current Researcher). The value of
the R variable is in the RDFS TAM specification assigned
to session:resID. The complete query and session parameter
specification does not appear in the TAM diagram, but it is
in the TAM RDFS file:
&lt;rdfs:Class rdf:ID="SetResearcher"
slice:execute="Once"&gt;
&lt;rdfs:subClassOf rdf:resource=
"http://wwwis.win.tue.nl/
˜hera/ns/slice#Query"/&gt;
&lt;slice:queryString&gt;</p>
        </sec>
        <sec id="sec-3-5-4">
          <title>SELECT R</title>
          <p>FROM {session:session}</p>
          <p>&lt;session:sliceid&gt;{R}
&lt;/slice:queryString&gt;
&lt;/rdfs:Class&gt;
&lt;rdfs:Class rdf:ID="QueryResult_ID101"
slice:resultName="resID"
slice:useAsSessionVar="Yes"&gt;
&lt;rdfs:subClassOf rdf:resource=
"http://wwwis.win.tue.nl/
˜hera/ns/slice#QueryResult"/&gt;
&lt;/rdfs:Class&gt;
3.3.3</p>
        </sec>
      </sec>
      <sec id="sec-3-6">
        <title>Mapping NTs to Concrete Domains</title>
        <p>A necessary condition for the automated transformation of
an NT to an AM for a concrete CM is the existence of
a mapping from the abstract TCM to a concrete domain
model. We demonstrate the specification of such a
mapping using the Publications example and show possible
situations. Figure 8 presents a concrete CM describing a
doSet
Group
gname</p>
        <p>Groups</p>
        <p>SetResearcher
AddPaper
iT iptitle
iT iyear
iT iurl
iT ipub</p>
        <p>AddPaper</p>
        <p>AddPaper</p>
        <p>Group
gname
members</p>
        <p>Set
Researcher</p>
        <p>name
main of publications. There are two categories of mapping.
The first one is concept-to-concept, which facilitates the
determination of root concepts and data manipulation queries
during transformation of the TAM slices into concrete AM
slices. The second one is attribute-to-attribute, which
allows the transformation of slice attributes and is used in
query transformations as well. We now define mappings of
type concept-to-concept and attribute-to-attribute. We use
path expressions specifying concept-property chains in the
form {Concept1}property1{Concept2}.... Inverse
properties are denoted as {Concept}property−1. If the value
of a TCM property is constructed from the values of
several properties in the CM (concatenation), we write it as
{Concept1}property1 ⊙ {Concept2}property2. The fact
that the value of a TCM property is retrieved from
several CM properties is captured as {Concept1}property1 ∪
{Concept2}property2. In this case the mapping is a union
of values of the given path expressions. The mapping of
concepts relies on the uniqueness of the concept names (in
other case we would need to use path expressions as well),
in our example the mappings for the concepts are:
• for tcm:Group no mapping is defined
• tcm:Researcher is mapped to cm:Person
• tcm:Paper is mapped to cm:Paper
For the mapping of attributes we define articulations
containing pairs of path expressions for the TCM and the CM.
The mapping is described in Table 1. Further details of the
mappings are explained in Section 3.4.
fname</p>
        <p>Person
surname
year
When the Articulations are specified, an appropriate
deployed NT can be generated. A deployed NT is an (part of)
AM. In this process slice relationships based on the TCM
are replaced by those based on the CM at hand. Due to
possibly different schema structures of a TCM and a
concrete CM, in some cases simple slice aggregations based on
a single CM relationship must be replaced by more
complex queries. For instance, this is the case when for a path
expression in the TCM with the length (number of
properties in the path expression) one, there exists a
corresponding path expression in the CM with length more than one
(the result would be a join query). During the deployment
process the papers slice aggregation in the original TAM
Researcher.Details slice is automatically transformed to a
query (we name it here PaperQuery) that is a union of the
two queries (for the Person subclasses Member and
Contributor):</p>
        <sec id="sec-3-6-1">
          <title>SELECT X</title>
        </sec>
        <sec id="sec-3-6-2">
          <title>FROM {P}contributed_by{X}</title>
        </sec>
        <sec id="sec-3-6-3">
          <title>SELECT X</title>
        </sec>
        <sec id="sec-3-6-4">
          <title>FROM {P}created_by{X}</title>
          <p>where P is an instance of the Person concept given by the
Person.Details slice instance.</p>
          <p>The AddPaper query appearing in the original TAM is
during the deployment process automatically transformed
into two different queries, one for the Proceedings subclass
of Publication:
Start
and
The queries create different Publication types (subclasses)
with different attributes. The user of the application decides
what kind of Publication he wants to add. This is facilitated
by two buttons (one for each subclass and executing the first
or the second query) that are automatically generated
(during the NT deployment process) and placed to the
AddPaper form (see Figure 9). Note the simplification we made
here due to the lack of space. Both queries are applicable
for the Member type of Researcher (can be determined by
the cm:created by property appearing in the CONSTRUCT
clause). In a real example, every form button would execute
two optional queries depending on the type of last visited
Researcher (Contributor or Creator).
3.4</p>
          <p>
            Major Problems in TCM to CM Mapping
we mention the conflicts and their possible solutions. This
descriptions are used as guidelines for developing the NT
deployment software (NT2AM Transformer in Figure 2).
Most of the possible situations have been discussed and
classified in [
            <xref ref-type="bibr" rid="ref14">14</xref>
            ]. Concretely we name:
• Data representation conflict: corresponding literal
properties in the TCM and a concrete CM have
different data types. An example is the {P aper}year
property (String and Integer types).
• Missing literal property conflict: a TCM concept
attribute does not have its counterpart in the CM. An
example would be the {tcm : Researcher}tcm : email
attribute.
• Concept-property and property-concept conflicts can
appear when a concept in the TCM is modeled as a
(literal) property in the CM and vice versa.
• A few cases of schema isomorphism conflicts:
– A TCM concept does not have its counterpart in
the CM. An example would be the tcm:Group
concept.
– A TCM concept literal property has only a
reversed counterpart in the CM. An example
is {tcm : Researcher}tcm : papers that
can be mapped to {cm : M ember}cm :
created by−1 (or to {cm : Contributor}cm :
contributed by−1).
– A TCM literal property is mapped to (composed
of) multiple attributes in the CM. An example is
{tcm : Researcher}tcm : name that is mapped
into a concatenation of {cm : P erson}cm :
f name and {cm : P erson}cm : surname.
• Generalization conflicts where a TCM concept is
mapped into a CM concept with more
specializations. An example of this would be the {tcm :
P aper}tcm : published at literal property that can
be mapped to {cm : P aper}cm : published as{cm :
P roceedings}cm : ctitle and to {cm : P aper}cm :
published as{cm : J ournal}cm : jtitle
We do not mention other possible conflicts such as integrity
constraint conflicts that can arise when more sophisticated
constraints are imposed on the concepts and their properties.
3.4.1
          </p>
        </sec>
      </sec>
      <sec id="sec-3-7">
        <title>Data Representation Conflicts</title>
        <p>We can highlight a few typical situations, where the
mapping from the TCM to a CM is not as straightforward as
for instance the naming conflicts naturally solved by paired
path expressions explained in Section 3.3.3. In this section
In this case the data types of the corresponding literal
properties are not compatible. A simple type conversion is
made: concretely, the type of a conflicting TCM attribute
is transformed (possibly during the model transformation
since we can transform schemas) to the data type of the
corresponding CM attribute. Applied to our example, the type
Integer of attribute {tcm : P aper}year at in the TAM is
changed to String in the resulting AM.
3.4.2</p>
      </sec>
      <sec id="sec-3-8">
        <title>Missing Literal Property Conflict</title>
        <p>In the case of such a conflict such a literal property
(attribute) is omitted in the resulting concrete AM. An example
is the email attribute of the Researcher.Details in TAM that
does not appear in the resulting AM (see Figures 7 and 9).</p>
        <p>Concept-property and property-concept conflicts
This conflict appears if a concept in the TCM is modeled
as a literal property in the CM or vice versa. An
example of the property-concept conflict is {tcm : P aper}tcm :
published at that is mapped to {cm : P aper}cm :
published as. This conflict is discussed in Section 3.4.5.
3.4.4</p>
        <p>A TCM Concept Does not Have a Counterpart in
the CM
In this case the NT2AM Transformer must replace the
missing concept with a single (virtual) constant concept, so all
its attributes are constants. For instance, the example
publication CM is intended for a single research group, so the
group name will be replaced with a constant string. The
replacement by a constant is needed due to the fact that some
top-level slices can be based on non-existing concepts.
During the transformation process these slices are replaced by
constant slices.
3.4.5</p>
      </sec>
      <sec id="sec-3-9">
        <title>Generalization Conflict</title>
        <p>This problem typically occurs when the TCM concept has
specializations with a different property structure. An
example is the mapping of the {tcm : P aper}tcm :
published at attribute that can be mapped into {cm :
P aper}cm : published as{cm : P roceedings}cm : ctitle,
but also into {cm : P aper}cm : published as{cm :
J ournal}cm : jtitle depending on the type of the
publication (Proceedings or Journal).</p>
        <p>The solution to this problem needs to cover the following
two situations (as well as some other problems, but they
appear to be simpler):
• Transformation of slices for presentation purposes (i.e.
transformation of SELECT queries). In this case the
result should be the union of two queries containing
both path expressions.
• Transformation of data manipulation queries. For the
data consistency reasons the type of the manipulated
concept should be determined (especially when new
instances are created), despite the fact that there is no
notion of these specializations in the TCM. One of the
possible solutions is the automatic generation of a
selection input field allowing the user to choose the type
of concept to be created (according to existing concept
subclasses). In the example it would be a selection
between the Proceedings and Journal concepts when
adding a new publication.
3.4.6</p>
        <p>A TCM Concept Property Has Only a Reversed
CM Counterpart
This situation occurs when a TCM property does not have a
directly matching counterpart in the CM, but there is a CM
property with inverse semantics. There is no direct
illustration of this in the example, but {tcm : Researcher}tcm :
papers can be mapped to the union of the inversions of
{cm : P aper}cm : created by and {cm : P aper}cm :
contributed by.
3.4.7</p>
        <p>A TCM Literal Property is Mapped to a
Concatenation of Multiple CM Literal Properties
This is a case when an attribute is mapped to a
concatenation of multiple literal properties. An example is the
concatenation of {cm : P erson}cm : f name and {cm :
P erson}cm : surname for the {tcm : Researcher}tcm :
name. The solution is to replace one TAM slice attribute in
the TAM by several attributes in the resulting AM.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Implementation</title>
      <p>
        The usefulness of the approach described in this text
relies to a large extent on the availability of tools supporting
the design and automated deployment of NTs. The most
essential tool is the NT2AM Transformer (Figure 2) that
transforms an NT specification to a concrete Hera AM or a part
of it using the mapping to a concrete domain CM. This tool
is a single Java application that reuses some classes from
the Hera Mediator [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] for the processing of articulations.
      </p>
      <p>
        A design support tool for the graphical specification of
mappings (articulations) is currently under development,
and uses part of the functionality of the EROS RDFS
Explorer [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] that provides an interface for building SeRQL
queries, and thus also supports the building of path
expressions, which are the essential part of articulations. It will
allow rapid and easy specification of needed articulations.
The main window of the tool is shown in Figure 10. The NT
graphical design tools are based on existing Hera CM and
AM Builders (for the construction of the TCM and TAM)
that are also used for the regular (graphical) design of Hera
applications (i.e. without using an NT). These tools are
being updated for specification of the NT interfaces.
      </p>
    </sec>
    <sec id="sec-5">
      <title>Conclusion</title>
      <p>In this paper we have shown the principles of building
NT specifications that are portable over domains. These
principles use existing expertise of modelling techniques
and data integration. In the implementation we exploit
software packages we have already developed, for instance the
Hera Mediator and the EROS RDFS explorer. Although we
chose a concrete (Hera) method for demonstrating the
approach, we believe that the idea of mapping from a TCM
to a concrete CM is rather universal. The advantage of
our method compared to some other approaches lies in the
possibility of precise specification of the navigation
structure and the data manipulation within an NT that is
subsequently automatically transformed to appropriate
specification matching a concrete domain. Thus, this approach
and its implementation will facilitate the reuse of
navigation primitives in web engineering.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <article-title>[1] Openrdf, the serql query language</article-title>
          ,
          <source>rev. 1</source>
          .1. http://www. openrdf.org/doc/users/ch06.html.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>D.</given-names>
            <surname>Brickley</surname>
          </string-name>
          and
          <string-name>
            <given-names>R. V.</given-names>
            <surname>Guha</surname>
          </string-name>
          .
          <article-title>Rdf vocabulary description language 1.0: Rdf schema</article-title>
          .
          <source>W3C Recommandation 10 February</source>
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>S.</given-names>
            <surname>Ceri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Fraternalli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Bongio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Brambilla</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Comai</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Matera</surname>
          </string-name>
          .
          <article-title>Designing Data-Intensive Web Applications</article-title>
          . Morgan Kaufmann Publishers Inc.,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>E.</given-names>
            <surname>Gamma</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Helm</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Johnson</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J. Vlissides. Design</given-names>
            <surname>Patterns</surname>
          </string-name>
          .
          <source>Addison Wesley</source>
          , Reading, MA,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>J.</given-names>
            <surname>Gomez</surname>
          </string-name>
          and
          <string-name>
            <given-names>C.</given-names>
            <surname>Cachero</surname>
          </string-name>
          .
          <article-title>Oo-h method: Extending uml to model web interfaces</article-title>
          .
          <source>Idea Group Publishing</source>
          , pages
          <fpage>144</fpage>
          -
          <lpage>173</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>G.</given-names>
            <surname>Houben</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Frasincar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Barna</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Vdovjak</surname>
          </string-name>
          .
          <article-title>Modeling user input and hypermedia dynamics in hera</article-title>
          .
          <source>In International Conference on Web Engineering (ICWE</source>
          <year>2004</year>
          ), Munich, Germany,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>N.</given-names>
            <surname>Koch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Kraus</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Hennicker</surname>
          </string-name>
          .
          <article-title>The authoring process of the uml-based web engineering approach</article-title>
          .
          <source>In Proceedings of The First International Workshop of Web-Oriented Software Technology</source>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>F.</given-names>
            <surname>Mannola</surname>
          </string-name>
          and
          <string-name>
            <given-names>E.</given-names>
            <surname>Miller</surname>
          </string-name>
          .
          <article-title>Rdf primer</article-title>
          .
          <source>W3C Recommandation 10 February</source>
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>J. Miller J.</surname>
          </string-name>
          ,
          <source>Mukerji. Mda guide version 1.0</source>
          .1. OMG,
          <year>June 2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>O.</given-names>
            <surname>Pastor</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Fons</surname>
          </string-name>
          , and
          <string-name>
            <given-names>V.</given-names>
            <surname>Pelechano</surname>
          </string-name>
          .
          <article-title>Oows: A method to develop web applications from web-oriented conceptual models</article-title>
          .
          <source>In Proceedings of International Workshop on Web Oriented Software Technology (IWWOST)</source>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>G.</given-names>
            <surname>Rossi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Lyardet</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Schwabe</surname>
          </string-name>
          .
          <article-title>Patterns for ecommerce applications</article-title>
          .
          <source>In Proceedings of Europlop</source>
          <year>2000</year>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>K.</given-names>
            <surname>Sattler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Conrad</surname>
          </string-name>
          , and
          <string-name>
            <surname>G. Saake.</surname>
          </string-name>
          <article-title>Interactive exampledriven integration and reconciliation for accessing database federations</article-title>
          .
          <source>Inf. Syst.</source>
          ,
          <volume>28</volume>
          (
          <issue>5</issue>
          ):
          <fpage>393</fpage>
          -
          <lpage>414</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>D.</given-names>
            <surname>Schwabe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Rossi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Esmeraldo</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Lyardet</surname>
          </string-name>
          .
          <article-title>Engineering web applications for reuse</article-title>
          .
          <source>IEEE Multimedia</source>
          , pages
          <fpage>2</fpage>
          -
          <lpage>12</lpage>
          ,
          <year>Spring 2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>A.</given-names>
            <surname>Sheth</surname>
          </string-name>
          and
          <string-name>
            <given-names>V.</given-names>
            <surname>Kashyap</surname>
          </string-name>
          .
          <article-title>So far (schematically) yet so near (semantically)</article-title>
          .
          <source>In Proceedings of the IFIP WG 2.6 Database Semantics Conference on Interoperable Database Systems (DS-5)</source>
          . North-Holland,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>R.</given-names>
            <surname>Vdovjak</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Barna</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G. J.</given-names>
            <surname>Houben</surname>
          </string-name>
          .
          <article-title>Eros: A user interface for the semantic web</article-title>
          .
          <source>In 7th World Multiconference on Systemics, Cybernetics and Informatics</source>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>R.</given-names>
            <surname>Vdovjak</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Frasincar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. J.</given-names>
            <surname>Houben</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Barna</surname>
          </string-name>
          .
          <article-title>Engineering semantic web information systems in hera</article-title>
          .
          <source>Journal of Web Engineering (JWE)</source>
          , Rinton Press,
          <volume>2</volume>
          (
          <issue>1</issue>
          -2):
          <fpage>3</fpage>
          -
          <lpage>26</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>