<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Modeling User Behaviour Aware WebSites with PRML</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Irene</forename><surname>Garrigós</surname></persName>
							<email>igarrigos@dlsi.ua.es</email>
							<affiliation key="aff0">
								<orgName type="department">IWAD</orgName>
								<orgName type="institution">Universidad de Alicante</orgName>
								<address>
									<addrLine>Campus de San Vicente del Raspeig</addrLine>
									<postBox>Apartado 99</postBox>
									<postCode>03080</postCode>
									<settlement>Alicante</settlement>
									<country key="ES">Spain</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Jaime</forename><surname>Gómez</surname></persName>
							<email>jgomez@dlsi.ua.es</email>
							<affiliation key="aff0">
								<orgName type="department">IWAD</orgName>
								<orgName type="institution">Universidad de Alicante</orgName>
								<address>
									<addrLine>Campus de San Vicente del Raspeig</addrLine>
									<postBox>Apartado 99</postBox>
									<postCode>03080</postCode>
									<settlement>Alicante</settlement>
									<country key="ES">Spain</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Modeling User Behaviour Aware WebSites with PRML</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">6F37DDF7EBA4D64B64DF12A084BD32E4</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T09:39+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Adaptive websites usually change as effect of user navigational actions. Most current web engineering approaches (which consider personalization) allow to detect basic user browsing behaviour (e.g. user click on a link) but don't consider the definition of (complex) behaviour events or user behaviour pattern recognition. In this paper, we use a method independent language called PRML to specify behaviour aware websites. PRML evolved out the experience of OO-H and was designed to be a generic personalization specification method that can be reused for different web design approaches. PRML allows the personalization when a complex behaviour event is triggered (i.e. a sequence of links) and also allows the definition and recognition (at runtime) of user behaviour patterns.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.">Introduction</head><p>In the last decade, the number and complexity of websites and the amount of information they offer is rapidly growing. We face a new, wide spectrum of web applications that leads to new challenging requirements like the need for continuous evolution. Moreover websites typically serve large and heterogeneous audience what can lead to maintenance and usability problems <ref type="bibr" target="#b10">[11]</ref>.</p><p>Introduction of web design methods and methodologies <ref type="bibr" target="#b4">[5]</ref>  <ref type="bibr" target="#b5">[6]</ref> [8] <ref type="bibr" target="#b8">[9]</ref> [10] <ref type="bibr" target="#b11">[12]</ref> have provided some solutions for designers (design support, help in determining consistent structuring, easier maintenance) and for visitors (better tailored content, easier navigation). In order to better tailor the site to one particular user, or a group of users, some methods provide personalization support. Usually web applications are adapted as effect of user browsing behaviour. Most current web design methods limit the detection of browsing behaviour to simple user navigational actions (i.e. start of a session, activation of a link…). Sometimes this leads to too simple personalization strategies definition.</p><p>To tackle the problems described above we provide a method-independent personalization specification language called PRML (Personalization Rule Modelling Language) <ref type="bibr" target="#b6">[7]</ref> to build a (reusable) Personalization Model. This language allows explicit modelling of personalization policies and their effective deployment and reuse for different web design methods. PRML considers four adaptivity dimensions: the user characteristics (e.g. user's age, user's hobbies, user's vision level…), the user context which includes different types of context like device context (e.g. PDA, PC, WAP), time context (i.e. date and local time of the connection), network context (e.g. latency, speed, bandwidth and location context (i.e. ubiquity of the user), the third dimension are the user requirements (specifying the needs and goals of the user) and the fourth is the user browsing behaviour.</p><p>If we focus on the browsing behaviour dimension we can see that the definition of complex navigational actions (i.e. sequence of link activation) is supported. Moreover it supports the definition and detection of user behaviour patterns. The consequence is that the complexity of the personalization strategies to define (based on user browsing behaviour) increases. The detection of user navigational patterns (defined for a very common user behaviour) at runtime implies some problems like how to track the user behaviour and how to recognize certain behaviour pattern. This is explained in section 4 of the paper.</p><p>Most web design methods <ref type="bibr" target="#b1">[2]</ref> [5] <ref type="bibr" target="#b9">[10]</ref>  <ref type="bibr" target="#b13">[14]</ref> and adaptive reference models have support for adaptivity considering (only) basic user browsing behaviour actions. The adaptive web engineering approach UWE <ref type="bibr" target="#b9">[10]</ref> has some basic support for personalization based on user behaviour. The AHAM <ref type="bibr" target="#b13">[14]</ref> reference model, which is mainly used for teaching applications, describes behaviour being tracked and used to update the user model. WSDM <ref type="bibr" target="#b4">[5]</ref> supports adaptivity (i.e. not for a specific user) tracking the user browsing behaviour. WebML <ref type="bibr" target="#b5">[6]</ref> is an exception supporting the definition of a personalization strategy based on complex behaviour user actions. It uses the WBM formalism based on a timed-state transition automaton to define the behaviour user actions that should be performed to trigger a personalization action. However, none of these approaches consider the detection (at runtime) of behaviour patterns.</p><p>The paper is structured as follows. In the next section, a case study defined in the context of the OO-H method is presented. The paper continues describing in section 3 the PRML fundamentals. How PRML is extended to support (complex) browsing behaviour and to detec behaviour patterns is presented in section 4. We continue in section 5, explaining the OO-H execution architecture supporting PRML rules. Finally, section 6 sketches some conclusions and further work.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.">Case Study: Blog of a University Lab</head><p>We are going to explain our approach in the context of the OO-H (Object Oriented Hypermedia) method <ref type="bibr" target="#b7">[8]</ref> in which the PRML language was born. This is a userdriven approach based on the object oriented paradigm and partially based on standards (UML, OCL, XML…). OO-H allows the development of web-based interfaces and their connection with pre-existing application modules. In OO-H four views are defined: the domain view¸ the navigational view, the presentation view and the personalization view. Each of these views has associated a model (or set of models). We are going to show the OO-H views by means of a case study excepting the presentation view that is not considered in this work.</p><p>The system to model is an online blog of a university lab in which (registered) users can basically post and consult messages (classified by categories) and set comments on them. In the left part of Figure <ref type="figure" target="#fig_0">1</ref> we can see the domain model (from the OO-H domain view) of the system. The right part of the Figure <ref type="figure" target="#fig_0">1</ref> shows the user model which will be explained further. In the OO-H navigational view the navigation structure is defined by means of the Navigation Abstract Diagram (NAD). This diagram enriches the domain view with navigation and interaction features. In figure <ref type="figure">2</ref> we can see the (zero level of the) navigational model of the online blog system. The starting point (entry point element) is the home page where the user has to register. Registered users access to a page which has a collection of links (represented by an inverted triangle) in which there is a set of links to other related blogs (blogroll), there is also a set of categories and a set of messages. The links we can see in Figure <ref type="figure">2</ref> (ViewBlogRoll, ViewCategories and CheckMessages) are automatic links represented by a discontinuous line (i.e. the user does not need to click on them) and they show the information in origin (we can see that from the white arrow head). In Figure <ref type="figure">2</ref> we cannot see the whole NAD (for simplification reasons), we have two navigational targets which group modeling elements that collaborate to solve some functional requirements. A navigational target (NT) is represented by a UML package symbol. For a more extensive description of the NAD diagram see <ref type="bibr" target="#b7">[8]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>WebLog</head><p>In Figure <ref type="figure">3</ref> we can see the details of the categories navigational target. In the menu page the user will find a set of categories. This set is an indexed list, so the user can click in one of the categories names to view the messages attached to it (the Message class). Moreover the messages can have attached comments. There are also two method invocation links that allow to add a new comment and add a new message to a certain category. Due to space limitations, the details of the messages navigational target cannot be presented. It shows the whole set of messages with their corresponding data. Finally, the personalization view is supported by a personalization framework that is part of the OO-H approach. This framework can be instantiated by the web designer and connected to any OO-H based website to which provide personalization support. It is divided in two parts: the User model and the Personalization model. They are explained next.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1">Personalization Support</head><p>The user model (UM) specifies the data (and its structure) needed for personalization (including user data). While a UM is conceptually a separate model, is used in a similar way as a domain model (DM): it is typically associated with DM and can be represented as part of the DM. The UM of the system can be seen in the right part of Figure <ref type="figure" target="#fig_0">1</ref>. To build this model we have to take into account the personalization requirements of the system to determine the (updatable) information needed to personalize. In the case study we consider the following (personalization) requirement: • Users will see the categories (for messages) sorted by (the user) interest on them.</p><p>To cover this requirement in the updatable data space defined by the UM of the example we store the user interest degree on a category. For this purpose, in the UM we have the Interest class. To determine the user interest we use several strategies as we will see in section 4.</p><p>To store and update the information in the UM we need some mechanism. Also to specify the personalization strategies based on that information. For this purpose we need to define the personalization model. As we already explained, it is specified by a (method-independent) specification language which was born in the context of the OO-H approach. This language is called PRML (Personalization Rules Modeling Language) and its fundamentals are explained in next section.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.">PRML Fundamentals</head><p>PRML <ref type="bibr" target="#b6">[7]</ref> is a modelling language for personalization that evolved out of the experience from the OO-H approach <ref type="bibr">[6] [8]</ref> and was designed to be a generic personalization specification method. In PRML two conformance levels<ref type="foot" target="#foot_0">1</ref> are defined depending on the richness of the personalization specifications supported:</p><p>• In the first one of these levels, called basic (or zero) level, the (personalization) actions that can be specified have been defined by abstracting the basic operations supported by known web design methods <ref type="bibr" target="#b4">[5]</ref> [6] [9] [10] <ref type="bibr" target="#b11">[12]</ref>. The purpose of its definition is being able to specify a (universal) reusable personalization policy. This level is a subset of the advanced level. • The second of the PRML conformance levels, called advanced level, comprise all the operations supported by PRML allowing the specification of richer personalization policies than the basic level (limiting though the reusability).</p><p>Moreover, the definition of these two levels allows to (easily) compare the level of personalization supported by the different methodologies because we have a unique way of specifying it (for all the methods). A methodology can have full or partial conformance with one or two of the levels, allowing then a better comparison.</p><p>Rules that can be defined using this language are ECA <ref type="bibr" target="#b3">[4]</ref> rules. This decision is natural and conforms to initial requirements on a personalization model, where actions are taken as reactions on concrete events caused by users. The effectiveness of the concept of ECA rules for user-adaptation is proven by different personalization frameworks and tools (e.g. AHA! <ref type="bibr" target="#b13">[14]</ref>). The PRML has its own language defining conditions and actions. An important part of the language is a mechanism specifying access to data attributes by means of path expressions that can be exported to different query languages for different data modeling techniques (relational, object-oriented, or semantic web modeling languages). This decision targets the requirement of independence on concrete web and data modeling methods. This is an important design requirement because it is obvious that the language should not contain any constructs dependent on concrete web or data modeling methods for being generic.</p><p>For satisfying a personalization requirement we often have to define how to update the knowledge about user (acquisition rule). This information is stored in the UM data space. Furthermore, we have to define the effects this personalization causes to the presented content and navigation structure by means of personalization rules (we do not consider presentation features in this work). These rules use the information specified by the UM to describe adaptation actions. A PRML rule is formed by an event and the body of the rule containing a condition (optional) and an action to be performed. The basic structure of a rule defined with this language is the following:</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>When event do If condition then action endIf endWhen</head><p>When an event is triggered if the condition (optional) is satisfied an action is performed. PRML considers the following event types to trigger a rule: • Navigation event: It is caused by the activation of a navigational link. Links have information about an instance or a set of instances they are associated with and are going to be shown in the activated node (i.e. the page resulting from the navigation). When the link is activated the rule/s attached to this event is/are triggered passing to the rule/s this information as a parameter <ref type="foot" target="#foot_1">2</ref> for personalizing the (adaptive) active node based on this parameter. We need the parameter value before the node resulting from navigation is generated (in order to use this value in the rules and build the adaptive web page). The parameter passed to the rule can be a simple parameter (when the data on the webpage is the instance of a concept of the DM) expressed in PRML as follows: "When Navigation.activelink(NM.activenode parametername) do" or a complex parameter (when the data of the webpage is a set of instances of a concept of the DM) expressed in PRML as: "When Navigation.activelink(NM.activenode* parametername) do".</p><p>• LoadElement event: It is associated with the instantiation of a node. The difference with the navigation event is that its activation is independent of the link that caused (useful when a set of links have the same target node and we want to personalize during the activation of any of them). In the case of loading a node a parameter is passed containing the information of the root concept (class) of the node loaded. In the case of loading a collection of links the parameter passed would be the set of links.</p><p>• Start event It is associated with the entrance of the user in the website (i.e. the start of the browsing session). In PRML this event is expressed as "When SessionStart do". • End event: It is associated with the exit of the user from the website (i.e. expiration of the browsing session). In PRML this event is expressed as "When SessionEnd do".</p><p>The actions we can perform depend on the PRML conformance level supported by the methodology. OO-H supports (fully) both PRML levels. We are not going into detail into the operations supported because we focus here on the behaviour definition. In next section we explain how we have extended PRML for modelling (complex) behaviour aware websites.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.">Extending PRML for Modeling Behaviour Aware Websites</head><p>PRML already supports personalization on basis of (simple) user's behaviour (i.e. user's click on a link), however, as already mentioned, we think is important of being able to support the detection of more complex actions of the user. We explain how to do so in subsection 4.1. Moreover PRML supports the definition and (runtime) recognition of (predefined) navigational patterns, being able to personalize in basis of this information. When doing so, we have to face some problems like how do we track the user behaviour and how do we recognize certain behaviour pattern. We are going to explain this subsection 4.2.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.1">Support for Complex Browsing Behaviour</head><p>To support not so trivial browsing behaviour of the user (i.e. user clicks on a link) we need to consider more complex events, like a sequence of clicks on several links in a specific order, etc. For this purpose we have extended PRML events adding the following composite events<ref type="foot" target="#foot_2">3</ref> :</p><p>• NavigationSet event: It is caused by the activation of a concrete set of navigational links. We can express that all the events should be triggered using the operator "," or express that at least one of the specified events has to be triggered using the "||" operator. We can also state that the events should be triggered in the order they are specified using the "&amp;" operator. In PRML is expressed as: "When NavigationSet[link1(NM.activenode par1),…linkn(NM.activenode parn)] do". If we want to consider that a certain link has to be visited a concrete number of times and/or a certain number of seconds we can specify it besides the link ID in this way: "When NavigationSet[link1(NM.activenode par1,numClicks,numSec), … linkn(NM.activenode parn, numClicks,numSec)] do".</p><p>• LoadSet event: It is associated with the instantiation of a set of nodes. In PRML is expressed as: "When LoadSet[node1(NM.activenode par1), …noden(NM.activenode parn)] do". To specify the user has to be browsing a node a certain number of seconds for the event to be triggered and/or the number of times the node has been loaded by the user we express it in PRML as follows: "When LoadSet [node1(NM.activenode par1,numLoads,numSec),… noden(NM.activenode parn,numLoads,numSec)] do". We use the same set of operators than in the NavigationSet event (",", "&amp;", "||") to express order between events and if it is mandatory that all the events should be triggered or not.</p><p>Moreover combinations of these two types of events (and also combinations with simple events) can be done in the same rule using the operators "," to express that all the events should be triggered, "&amp;" to express all the events should be triggered in a specific order and "||" to express at least one of the specified events has to be triggered (e.g. "When (LoadSet[node1(NM.activenode par1) &amp;node2(NM.activenode par2)] || NavigationSet[link1(NM.activenode par1) ||link2(NM.activenode par2)])do ).</p><p>Simple events defined in previous section are also extended in this way:</p><p>• Navigation event, we can specify the number of seconds the user was browsing in the node resulting from the navigation, and the number of times the link has been activated, in the same way as the NavigationSet event.</p><p>• LoadElement event, we can specify the number of times the node (element) has been loaded by the user and the number of seconds that the user was browsing on it.</p><p>We are going to show the definition of (complex) user behaviour actions by means of examples in the case study. For this purpose, let's consider now the (already specified) personalization requirement:</p><p>• Users will see the categories (for messages) sorted by (the user) interest on them. Sort the categories by the ones in which the user has most interest on.</p><p>Two things are required here, first is to detect which are the categories in which the user is most interested on, and second would be sorting the categories by this value.</p><p>To detect the interest of the user in the categories we need to track the user behaviour and it is needed to define when we consider that the user has interest on a certain category. This can be defined in several ways, we show here three possible alternatives:</p><p>1. The user has interest on a category when s/he has checked one message of that category. In this case, we are going to update the interest degree on a category when the user accesses it. To store/update the value of the Interest.degree attribute from the UM we need the following acquisition rule: This rule is triggered when the user activates the link ViewMessages (see Figure <ref type="figure">3</ref>). It updates the degree of interest in the category of the consulted message using the SetContent statement, in which we specify the attribute to be modified, and the value or formula that calculates the new value. This rule compares each of the instances of the class interest with the consulted instance (to properly update the value). As explained before, in some cases we need to access the data from the navigation prior to trigger the event for using it in rules. For this purpose the rule event carries a parameter containing the visited instance of the Category class (from the NM). This parameter has the prefix "NM". The rest of the data of this rule have the "UM" prefix, indicating that information is stored in the UM data space.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.">The user has interest on a category when s/he has checked at least 3 messages of that category and has been navigating at least 1 minute on each of the messages pages.</head><p>In this case, we are going to update the interest degree on a category when the user accesses 3 of the messages attached to that category and stays at least 1 minute checking each of the three messages. In this case to store/update the value of the Interest.degree attribute from the UM we need the following acquisition rule: This rule is triggered when the user activates the link ViewMessages three times and stays 60 seconds at least in each of the message visited. It updates the degree of interest in the category of the consulted message using the SetContent statement, in the same way as the previous rule.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.">The user has interest on a category when s/he has checked at least 3 messages of that category and has been navigating at least 1 minute on that page or if the user posted a comment on one of these messages.</head><p>A new alternative is added for triggering the acquisition rule to update the interest degree on a category: the rule will be also triggered when the user adds a comment on a message visited. In this case we need the following acquisition rule: The event of this rule gets more complex, this rule is triggered when the user activates the link ViewMessages three times and navigates over the messages at least 60 seconds or when the user clicks on the AddComment link operation to add a new comment on a visited message. Once it is triggered it updates the degree of interest in the category of the consulted message in the same way as previous rules.</p><p>Once the needed information is stored (user interest degree) we need to sort the categories (basing it on the UM data). For this purpose we need a personalization rule:</p><p>When LoadElement.Category(NM.Category* categories) do SortLinks categories orderBy ASC UM.User.uToInterest.degree endWhen</p><p>The rule is triggered when the node Category is loaded (through any link). It sorts the categories ordered by their user interest (stored in the previously presented rule) in an ascending way. This rule has no condition so when the node is loaded, categories titles are sorted. Note that here we do not specify a loop for sorting the books since SortLinks runs over all the instances of the categories set passed as a parameter.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.2">Support for Behaviour Patterns</head><p>Different behavioural patterns are possible in the browsing behaviour of the visitors. In order to better accommodate the users, we can analyze their behavioural patterns, and adapt the site accordingly if we recognize a certain pattern (over a significant amount of time). The definition of such patterns makes easier the tracking of complex user browsing behaviour. To support behaviour patterns definition and recognition in PRML we add a new type of rules, called behavioural rules. These rules track the user browsing behaviour and detect (at runtime) navigational patterns (defined also with behavioural rules). Moreover when a pattern is detected the proper action is performed. The main difference with the rest of PRML rules (i.e. acquisition and personalization rules) is the parameters passed in the events. In this kind of rules we pass (as a parameter) the navigational path that the user is following. We need to define (for each defined pattern) what we consider a navigational path. We show next an example for a browsing behaviour patterns defined in <ref type="bibr" target="#b2">[3]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Direct path pattern:</head><p>Intent: provide direct navigation access to information relevant for the particular user, instead of forcing the user to follow each time the same set of navigation tracks. Solution: adapt the navigation access point of the user if a direct path from that access point to a certain (other) node is detected in a certain percentage of session (for example, 80%) or in a significant number of times. In that case, a link to the relevant information is added.</p><p>Consequence: reduces amount of clicks to relevant information (for the particular user)</p><p>When a user enters in the system we start tracking his/her behaviour, keeping the navigational paths that s/he follows. We (only) consider a (finished) navigational path (for this browsing pattern) a path that starts in the page where the user entered the application and finishes in the page in which s/he stays at least 2 minutes. We can see a representation of the navigational path for this pattern in the statechart of figure <ref type="figure" target="#fig_2">4</ref>. The navigational paths are stored in the UM, each of them having an identifier. A behavioural pattern can be defined as a certain sequence of navigation actions. We define the following PRML rules to detect the direct path pattern:</p><p>When SessionStart do SetContent(UM.UserToDirectPath.path, startpage) endWhen</p><p>This rule is triggered when the user enters the website and it initializes the navigational path of the user with the starting page (i.e. the page in which the user starts the session on the website). Next we need to build this navigational path meanwhile the user is browsing the web application. For this purpose we have the following behavioural rule: This behavioural rule is triggered when the user activates any link (represented by the Link id). As a parameter (as already stated) we have the current path of the user in the website. The path stored in the user model is updated, adding the new browsed link. What is left now is to detect when the path has been "finished". As aforementioned we consider a navigational path being finished when the user browses a page for at least 2 minutes. We express this with the following behavioural rule: This behavioural rule is also triggered by any link activation (represented by the Link ID). In this case we add to the path (list) variable of the user model the last link visited and the keyword finished, knowing it is an ended path. We need now a rule to update the clicks on the finished path when the user goes through it: This rule checks if the current visited path has been already detected as a finished one (checking the last element of the list in which the path is stored) and if so the number of clicks on it is increased. What is left now is to check if the direct path pattern is detected and perform the proper action. We consider that if a user has more than 100 clicks on a navigational path the direct path is detected, and what we do is to add in the home page a shortcut to that path. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Execution Architecture</head><p>In OO-H we have created a prototype software application called OPWAC (OO-H Personalized Web Applications Creator) with which we give credit to what we have seen in the previous sections. This tool generates from the OO-H models (the four previously described views), the final (personalized) web pages. Moreover it allows evaluating and performing the set of PRML rules attached to the OO-H models to personalize the final web sites. In figure <ref type="figure">5</ref> we show the architecture that follows the OPWAC prototype.</p><p>Our main goal has been to generate (personalized) web applications from OO-H based models. We have a web server that interacts with the user, gathering the requests and giving back the response. This website engine generates (on demand) the web pages dynamically from the models (represented in XMI <ref type="bibr" target="#b12">[13]</ref> format), capturing the events produced by the user actions; these events are sent to the PRML evaluator module responsible of evaluating and performing the personalization rules attached to the events that cause the modification of the OO-H diagrams. After these modifications the web engine properly generates the new pages.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Figure 5. OPWAC architecture</head><p>Next we describe in detail the technologies used for implementing this architecture.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.1">Website Engine</head><p>The Website Engine, as we previously said, generates the final (personalized) web pages from the OO-H models. These models are the input of our tool and are represented by means of XML elements (in XMI <ref type="bibr" target="#b12">[13]</ref> format). The reason for choosing an XMI representation of the models is that this format can be easily generated from UML models 4 . The only problem is that the OO-H diagram is not UML compliant, but it can be represented by the UML modeling language. To transform the OO-H navigation diagram (NAD) to UML we have extended the syntax and semantics of the UML 2.0 modelling language to express the specific concepts of the NAD, thanks to the UML profiles. To define these profiles UML 2.0 uses stereotypes, which would represent the NAD elements that we want to include in the profile.</p><p>To read and process the OO-H models (specified in XMI) for the generation of the final web pages we have used the .NET technology. This technology provides us with the DOM class (XML Document Object Model), with which we can represent in memory the XML documents.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.2">PRML Evaluator</head><p>This module is the responsible for analyzing the events that the Website engine sends for the execution of the personalization rules that will perform modifications 4 Most UML tools allow this transformation in the OO-H models. In the NAD components we have added information (thanks to the UML profile created) about the PRML rules to execute (which are stored in a separated file). When a rule is triggered, to evaluate the rule conditions and perform the proper actions we have implemented a .NET component using the ANTLR Parser generator <ref type="bibr" target="#b0">[1]</ref>. From the PRML grammar we can generate the syntactic trees which help us to evaluate the rule conditions and perform them if necessary. Finally to execute the actions of the rules, we have implemented in C# the different actions types that we can find in PRML. These actions will modify the XMI models to generate the new web pages from them.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6">Conclusions and future work</head><p>In this paper we have presented an approach to model behaviour aware web applications. We use a method independent language called PRML (Personalization Rules Modeling Language) to specify behaviour aware websites. PRML evolved out the experience of OO-H and was designed to be a generic personalization specification method that can be reused for different web design approaches. PRML has been extended to support personalization when a complex behaviour event is triggered (i.e. a sequence of links) and also allows the definition and recognition (at runtime) of user behaviour patterns. We can define such a pattern once and reuse it for its recognition in several websites.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Figure 1 .</head><label>1</label><figDesc>Figure 1. OO-H Domain and User Model</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head></head><label></label><figDesc>Figure 2. (Level 0 of the) NAD for the blog case study</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Figure 4 :</head><label>4</label><figDesc>Figure 4: Navigational Path for the Direct path pattern</figDesc></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">This idea has been inspired by the SQL conformance levels.WISM'06</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="2" xml:id="foot_1">All the parameters have the prefix NM to indicate that they come from the Navigation Model.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="3" xml:id="foot_2">Note that the parameters of each of the events are the same as described in section 3 WISM'06</note>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<author>
			<persName><surname>Antlr</surname></persName>
		</author>
		<ptr target="http://www.antlr.org/" />
		<title level="m">ANother Tool for Language Recognition</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Design Time Support for Adaptive Behaviour in Web Sites</title>
		<author>
			<persName><forename type="first">S</forename><surname>Casteleyn</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>De Troyer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Brockmans</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of the 18th ACM Symposium on Applied Computing</title>
				<meeting>of the 18th ACM Symposium on Applied Computing<address><addrLine>Melbourne, USA</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2003">2003</date>
			<biblScope unit="page" from="1222" to="1228" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Pattern Definition to Refine Navigation Structure in Hypermedia/Web Applications</title>
		<author>
			<persName><forename type="first">S</forename><surname>Casteleyn</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Garrigós</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Plessers</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the IADIS International Conference WWW/Internet 2004 (ICWI2004)</title>
				<editor>
			<persName><forename type="first">P</forename><surname>Isaias</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">N</forename><surname>Karmakar</surname></persName>
		</editor>
		<meeting>the IADIS International Conference WWW/Internet 2004 (ICWI2004)<address><addrLine>Madrid, Spain</addrLine></address></meeting>
		<imprint>
			<publisher>Publ. IADIS PRESS</publisher>
			<date type="published" when="2004">2004</date>
			<biblScope unit="volume">II</biblScope>
			<biblScope unit="page" from="1199" to="1203" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Active Database Management Systems</title>
		<author>
			<persName><forename type="first">U</forename><surname>Dayal</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. 3rd Int. Conf on Data and Knowledge Bases</title>
				<meeting>3rd Int. Conf on Data and Knowledge Bases</meeting>
		<imprint>
			<date type="published" when="1988">1988</date>
			<biblScope unit="page" from="150" to="169" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Designing Localized Web Sites</title>
		<author>
			<persName><forename type="first">O</forename><surname>De Troyer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Casteleyn</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the WISE 2004 Conference</title>
				<meeting>the WISE 2004 Conference<address><addrLine>Brisbane, Australia</addrLine></address></meeting>
		<imprint>
			<publisher>Springer-Verlag</publisher>
			<date type="published" when="2004">2004</date>
			<biblScope unit="page" from="547" to="558" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Building Reactive Web Applications</title>
		<author>
			<persName><forename type="first">F</forename><forename type="middle">M</forename><surname>Facca</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Ceri</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Armani</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Demaldé</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Poster at WWW2005</title>
				<meeting><address><addrLine>Chiba, Japan</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">A Reusable Personalization Model in Web Application Design</title>
		<author>
			<persName><forename type="first">I</forename><surname>Garrigós</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Gómez</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Barna</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><forename type="middle">J</forename><surname>Houben</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">International Workshop on Web Information Systems Modeling (WISM 2005)</title>
				<meeting><address><addrLine>Sydney, Australia</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2005-07">July 2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Conceptual Modelling of Device-Independent Web Applications</title>
		<author>
			<persName><forename type="first">J</forename><surname>Gómez</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Cachero</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>Pastor</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Multimedia Special Issue on WE</title>
		<imprint>
			<biblScope unit="page" from="26" to="39" />
			<date type="published" when="2001">2001</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Modeling User Input and Hypermedia Dynamics in Hera</title>
		<author>
			<persName><forename type="first">G</forename><forename type="middle">J</forename><surname>Houben</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Frasincar</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Barna</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Vdovjak</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">International Conference on Web Engineering (ICWE 2004)</title>
		<title level="s">LNCS</title>
		<meeting><address><addrLine>Munich</addrLine></address></meeting>
		<imprint>
			<publisher>Springer-Verlag</publisher>
			<date type="published" when="2004">2004</date>
			<biblScope unit="volume">3140</biblScope>
			<biblScope unit="page" from="60" to="73" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Modelling Adaptivity with Aspects</title>
		<author>
			<persName><forename type="first">Hubert</forename><surname>Baumeister</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Alexander</forename><surname>Knapp</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Nora</forename><surname>Koch</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Gefei</forename><surname>Zhang</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">International Conference on Web Engineering (ICWE 2005)</title>
		<title level="s">LNCS</title>
		<meeting><address><addrLine>Sydney, Australia</addrLine></address></meeting>
		<imprint>
			<publisher>Springer Verlag</publisher>
			<date type="published" when="2005-07">July 2005</date>
			<biblScope unit="volume">3579</biblScope>
			<biblScope unit="page" from="406" to="416" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Finding usability problems through heuristic evaluation</title>
		<author>
			<persName><forename type="first">J</forename><surname>Nielsen</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of the SIGCHI Conf on Human factors in computing systems</title>
				<meeting>of the SIGCHI Conf on Human factors in computing systems<address><addrLine>Monterey, California, United States</addrLine></address></meeting>
		<imprint>
			<date type="published" when="1992">1992</date>
			<biblScope unit="page" from="373" to="380" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Designing Personalized Web Applications</title>
		<author>
			<persName><forename type="first">G</forename><surname>Rossi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Schwabe</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Guimaraes</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of the World Wide Web Conference (WWW&apos;10)</title>
				<meeting>of the World Wide Web Conference (WWW&apos;10)<address><addrLine>Hong Kong</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2001-05">May 2001</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<monogr>
		<ptr target="www.omg.org/technology/documents/formal/xmi.htm" />
		<title level="m">XML Metadata Interchange</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">AHAM: A Reference Model to Support Adaptive Hypermedia Authoring</title>
		<author>
			<persName><forename type="first">H</forename><surname>Wu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><forename type="middle">J</forename><surname>Houben</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>De Bra</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of the &quot;Zesde Interdisciplinaire Conferentie Informatiewetenschap</title>
				<meeting>of the &quot;Zesde Interdisciplinaire Conferentie Informatiewetenschap<address><addrLine>Antwerp</addrLine></address></meeting>
		<imprint>
			<date type="published" when="1998">1998</date>
			<biblScope unit="page" from="77" to="88" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<monogr>
		<title level="m">WISM&apos;06</title>
				<imprint/>
	</monogr>
</biblStruct>

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