Escolar Documentos
Profissional Documentos
Cultura Documentos
Thesis CarlosPereira2016
Thesis CarlosPereira2016
Abstract The dynamic nature of scenarios such as Ambient Assisting Living and
Ubiquitous and Pervasive environments turns them into challenging
evaluation contexts not properly addressed by existing methods. We
argue that it is possible to have evaluations that take into considera-
tion the dynamic and heterogeneous nature of reactive environments
by integrating aspects such as context-awareness, user adaptability,
complex event handling, and environment diversity.
In this context, the main objective of this work was to develop a solution
providing evaluators with the ability to define and apply evaluation tests
to end-users supported by a flexible evaluation model allowing them
to create or reuse evaluation instruments and specifications without
changing the infrastructure or the need for other logistical necessities.
To pursue this goal, we adopted an engineering approach encompass-
ing: a) requirements definition; b) conceptualization of a general so-
lution comprising paradigm, methodology, model, and architecture; c)
implementation of its core components; and d) development and de-
ployment of a proof of concept.
The result was a dynamic evaluation solution for reactive environments
based on three major parts: a paradigm, a methodology and its model,
and a support architecture. Altogether, they enable the creation of
scalable, flexible and modular evaluation systems for evaluation design
and application in reactive environments.
Overall, we consider that the proposed approach, due to its flexibility
and scope, widely surpasses the goals considered on the onset of this
work. With a broad range of features it establishes itself as a general
purpose evaluation solution, potentially applicable to a wider range
of scenarios, and fostering the creation of ubiquitous and continuous
evaluation systems.
Contents
Contents i
List of Figures v
1 Introduction 1
1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Thesis Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 Main Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.5 Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.6 Published Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 Background/Related Work 7
2.1 Common Evaluation Methodologies . . . . . . . . . . . . . . . . . . . . . . 7
2.1.1 Test Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.2 Enquiry Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Experience Sampling Methodology . . . . . . . . . . . . . . . . . . . . . . 9
2.3 Support Technologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3.1 Service Oriented Architecture . . . . . . . . . . . . . . . . . . . . . 14
2.3.2 Context Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.3 User Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3.4 Ontologies and the Semantic Web . . . . . . . . . . . . . . . . . . . 23
2.4 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
i
3.2.2 Considering the environment . . . . . . . . . . . . . . . . . . . . . . 31
3.2.3 Enhancing evaluation definitions . . . . . . . . . . . . . . . . . . . . 32
3.2.4 Automating the execution . . . . . . . . . . . . . . . . . . . . . . . 34
3.3 The Conceptual Architecture . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.3.1 Evaluation Domains . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.3.2 Evaluation Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.3.3 Support Infrastructure . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.4 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
ii
5.4.4 EPR Engine and Event Logger+Dispatcher . . . . . . . . . . . . . 101
5.4.5 User and Context Models . . . . . . . . . . . . . . . . . . . . . . . 104
5.5 Support Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
5.5.1 Node Registry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
5.5.2 Domain Registry . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
5.5.3 Attribute Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
5.5.4 Interface and Event Producer Repository . . . . . . . . . . . . . . . 110
5.5.5 Association Service . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
5.5.6 Evaluation Mediation Service . . . . . . . . . . . . . . . . . . . . . 112
5.6 Evaluation Hub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
5.7 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
7 Conclusions 147
7.1 Developed Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
7.2 Main Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
7.3 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
7.4 Epilogue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Acronyms 153
Bibliography 155
Annexes 165
iii
A General Evaluation Language 165
A.1 Enquiry Ontology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
A.2 Event Ontology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
A.3 Event Processing Rules Ontology . . . . . . . . . . . . . . . . . . . . . . . 167
A.4 Evaluation Ontology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
A.5 Evaluation Assessment Ontology . . . . . . . . . . . . . . . . . . . . . . . 170
A.6 Evaluation Control Flow Ontology . . . . . . . . . . . . . . . . . . . . . . 172
iv
List of Figures
2.1 Screenshots of a multiple choice question screen and a tutorial screen for an
audio note sample using CAES . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2 CAESSA Visual Editor Screenshot . . . . . . . . . . . . . . . . . . . . . . 11
2.3 MyExperience ESM Tool Screenshot . . . . . . . . . . . . . . . . . . . . . 12
2.4 MovisensXS Tool Sampling Screenshot . . . . . . . . . . . . . . . . . . . . 13
2.5 Maestro Tool Sampling Screenshot . . . . . . . . . . . . . . . . . . . . . . 14
2.6 CSCP Profile Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.7 COBRA-Ont List of Classes and properties [Chen et al., 2003] . . . . . . . 19
v
4.16 Domain Language Creation: Interface Association . . . . . . . . . . . . . . 64
4.17 Domain Language Creation: EPR Ontology . . . . . . . . . . . . . . . . . 65
4.18 Evaluation Creation Process Flow . . . . . . . . . . . . . . . . . . . . . . . 67
4.19 Evaluation Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.20 Evaluation Assessment Specification . . . . . . . . . . . . . . . . . . . . . . 69
4.21 Enquiry Instantiation Example . . . . . . . . . . . . . . . . . . . . . . . . 70
4.22 EPR Instantiation Example . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.23 Evaluation Assessment Example . . . . . . . . . . . . . . . . . . . . . . . . 73
4.24 Execution Specification Transformation Process . . . . . . . . . . . . . . . 74
4.25 Evaluation Instance Example . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.26 Execution Specification - Step One . . . . . . . . . . . . . . . . . . . . . . 77
4.27 Execution Specification - Step Two . . . . . . . . . . . . . . . . . . . . . . 78
4.28 Execution Specification - Step Three . . . . . . . . . . . . . . . . . . . . . 79
vi
6.12 Defining an Evaluation Assessment using DynEaaS . . . . . . . . . . . . . 138
6.13 Distribution of the software components for the execution of the TeleReha-
bilitation evaluation test . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
6.14 Conducting the evaluation test during a TeleRehabilitation session between
a user and a therapist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
6.15 Example of the DynEaaS UI regarding a question in one of the evaluation
test’s assessments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
6.16 Example of a SPARQL query applied to the evaluation results in DynEaaS 144
vii
viii
Chapter 1
Introduction
1.1 Motivation
Technology can be found on every day objects like phones, cars, cloth or in our own
homes. A big challenge however remains on how to create technology that can integrate or
even cooperate with already existing technology. Technology should be as transparent as
possible to the user. Systems and services should not be required to compete for the user
and if they are, the user should not be aware of it. In order to guarantee their success, it is
necessary to heavily test these systems in real-life situations with the users and guarantee
that they operate according to expectations. It is necessary to involve users in development
particularly within tests and evaluations. Otherwise, due to competitiveness of the market,
these systems and applications risk not being accepted, not used and soon forgotten by
the users.
Evaluation processes are fundamental to assess the merits of a given research or a prod-
uct. They are applied in many forms, from written enquiries [Bevan and Bruval, 2003] to
observation practice [Hanington and Martin, 2012], and provide evaluators with data from
which it is possible to extract results and conclusions and thus determine the success of the
research or its utter failure. To apply an evaluation is a hard process. Independently of the
research area, evaluations require planning on both content and application. From creating
enquiries, preparing locations, instructing the users or analyzing the results, evaluations
cost time. It is often harder for evaluators to handle logistical aspects such as the location
than to design the actual evaluation test. These necessities range from area to area, and
while certain areas have hard restrictions which evaluators must comply with, others have
methodologies which do not fit their necessities.
Due to our work in projects such as the Living Usability Lab [LUL Consortium, 2012]
and the AAL4ALL [AAL4ALL Consortium, 2015], we came upon examples of both sce-
narios. In one test, we had the objective of applying an evaluation to a set of users which
had a common disability. The objective was to conduct a test for two months consisting
on a set of pre-validated enquiries to the user using a browser [Martins et al., 2014]. The
browser would apply the test exactly as its paper version and collect data that can only
1
be analyzed when the full test ends. In another test, we intended to analyze the usability
of an Ambient Assisted Living (AAL) application. In it, the objective was to test the
application in real life conditions and analyze if the user’s reactions and feedback in regard
to the application. We intended to check which options did the user preferred and why.
We intended to analyze results as the test was performed and conduct new tests on the fly
if necessary. We intended to verify if the environment itself compromised the application
and if it did, then how or why.
On these cases, we found very different realities. In the first, a typical methodology
based on enquiries proved sufficient. It applied the enquiries on a browser to the user who
would select answers from a predefined set, thus submitting them to a database. At the end
of the trial the database became closed and the results became accessible to the evaluators.
On the second we found a gap as common methodologies were not capable of realizing the
entire set of constrains and requirements that environments such as AAL or pervasive
environments comprehend. To apply a set of enquiries would disregard the reactive nature
of the environment itself and leave questions open. Conducting an observational test,
can limit the user in the sense of him performing its normal routines. To create a focus
group posteriously to the test within a group could result in cases where the users are
either too nice or do not remember what occurred. In addition, neither methodology
provided an answer as to how to assess the effect that the environment had on the user
performance, on to how to detect extraordinary events and data related to them, on how
to apply consecutive tests without disrupting the user’s routines, or on how to suit the
test to the user’s characteristics, preferences or interests. In all, it was clear that common
methodologies were not suited for reactive environments such as AAL.
In an AAL environment, users are constantly interacting. Whether directed to an
application or to a sensor, users interact actively or passively. In some situations, these
interactions may interfere with one another as they may clash and cause drastic changes on
usability. A sudden change caused by an application can directly influence the conditions of
the environment, thus making it highly reactive. Applications that operate simultaneously
or using the same medium (such as sound) may see their conditions deteriorated which
can cause high drops in user experience. To really test an application in such a scenario it
is necessary to envision these situations and, if possible, extract data from them in order
to verify their importance. In such environments, another important factor is context.
For instance, an obtained result can be directly dependent on previous actions. Having
knowledge of these actions can lead to a better comprehension of the user’s answers. Dis-
regarding them can lead evaluators to compare situations where the users where not in
similar conditions thus leading to incorrect conclusions.
In all, the differences between reactive environments, such as AAL, and other areas,
hinted that these environments have different necessities, requirements and objectives. In
some cases, the evaluator may want to directly pose a question to the user while in others
he might find it better to analyze the user’s behavior. In some cases, the test must be
performed exclusively at the user’s home but in others, it may be necessary for the test
to available at all times. A methodology for reactive environments should contemplate
alternative solutions from which evaluators may choose from. They must be allowed to
2
simply build and apply their evaluations according to their realities and without constrains
from the methodology, something that common solutions are not suited for.
In the literature, a methodology called Experience Sampling Methodology (ESM) [Lar-
son and Csikszentmihalyi, 1983] with context-awareness has been used by some researchers
as a way of evaluating the effect that other sources of information may have on the user
during an evaluation. This methodology mainly consists on allowing evaluators to link
events with specific enquiries which are triggered only when the event occurs and obtain
information on site. They are able to detect events that a device produces and apply
the enquiries via the device. While these solutions point in the right direction, most are
directed for mobile application testing [Consolvo and Walker, 2003] and only contemplate
a single device (like a specific phone device) and not the whole environment [Froehlich,
2009, Intille et al., 2003]. Others are standalone solutions and are not prepared for multiple
user evaluation or mass scale instantiations [Barrett and Barrett, 2001]. They are restric-
tive in the type of answer that can be posed to the user and do not offer the flexibility to
change the procedure by maintaining a fixed methodological process on how to apply to
test. Finally, they disregard aspects such as multimodality and are often too complex for
evaluators as they require programming knowledge in order to set up an evaluation.
Driven by the necessities of AAL and the limitations of ESM solutions, it was clear that
an evaluation solution that fits the dynamic nature of reactive environments is necessary.
The solution should focus on allowing evaluators to create, apply and analyze evaluations
in scenarios where the environment can directly influence the outcomes of a test. It should
allow evaluators to gather data that can assist them in interpreting unexpected situations,
the effect they have on the user’s objectives and establish more accurate conclusions. It
also requires a strong focus on dynamicity. Since environments change from one to another,
evaluations may not perform identically. The reactive nature of an environment can lead
one evaluation to go in a completely different way to another due to a sudden change
in context. Rather than considering that user as an outlier, extracting data from that
particular user may lead to results that may result in valuable information. Following
these thoughts, a dynamic environment requires a dynamic evaluation methodology in
which it is possible to evaluate the user under certain conditions and see the user as an
individual rather than a simple element of a set.
3
1.3 Objectives
The main objective of this thesis is to provide evaluators with the necessary tools to
create and apply evaluations within reactive environments. This objective focuses on gath-
ering additional data that allows evaluators to analyze the implications of the environment
on the evaluation subject and extract better conclusions for the evaluation.
To realize this objective, this work focuses on the development of a solution that pro-
vides evaluators with the ability to define new evaluation practices or methodologies with-
out requiring a strong logistical effort in preparing the subjects for these changes. Simulta-
neously, it intends to prove that it is possible to create a scalable evaluation solution that
is not based on a simple methodology and that provides evaluators with the freedom to
change specifications, introduce new evaluation elements, use contextual data and apply
remote evaluations without implementing new systems for each new iteration.
Altogether, our approach is divided in three parts: an evaluation paradigm, an evalua-
tion methodology and a supporting architecture. These three elements are combined into
an evaluation solution that offers a set of tools to evaluators with the purpose of facilitat-
ing the creation and application of evaluations. In addition to its focus on context, the
solution tackles aspects that often plague evaluators like user recruitment, user adaptation
to context, deployment and result gathering and at the same time promotes concepts like
evaluation reusability, flexibility, and multi-environment support. Together, they provide
evaluators with the ability to design evaluations in whatever manner they require and
without the limitations of a common methodology.
4
• A proof of concept that implements the evaluation solution and demonstrates its
applicability.
1.5 Structure
This thesis is structured as follows. In Chapter 2, we present related work regarding
common evaluation methodologies with a special focus on ESM solutions, as well as sup-
porting technologies that influenced our solution. In Chapter 3 we present the main issues
and ideas associated with the necessity of a dynamic evaluation paradigm as well as a
conceptual architecture for this purpose. In Chapter 4 we present an evaluation method-
ology and a model to allow the specification of dynamic evaluation tests. In Chapter 5, we
propose a service architecture that implements our evaluation methodology and allows the
creation, design and application of evaluations on a large scale. Chapter 6 demonstrates
the feasibility of the solution by featuring a proof of concept that implements it. Chapter 7
enumerates the main conclusions of the thesis and possible future work topics. Additional
aspects considered important were added in the Annex.
• The dynamic evaluation methodology and its model ([Pereira et al., 2014] and [Luz
et al., 2014]);
• The architecture and its proof of concept scenario ([Pereira et al., 2015]).
Several contributions were also made in areas that although not directly associated with
the thesis, were fundamental to its successful development as they contributed to decisions,
requirements and conclusions taken during this research. From this work we highlight the
following publications: in multimodal interfaces ([Teixeira et al., 2011a] [Silva et al., 2015]);
in AAL architecture proposals ([Teixeira et al., 2015] [Teixeira et al., 2011b] [Pereira et al.,
2013b]); in application development ([Teixeira et al., 2013] [Teixeira et al., 2012]); and in
generic evaluations ([Pereira et al., 2013a] [Martins et al., 2014]).
Finally, it is important to note that the development of this thesis was created within the
context of European projects Living Usability Lab [LUL Consortium, 2012] and AAL4ALL
[AAL4ALL Consortium, 2015], both of which were completed with high levels of success.
5
6
Chapter 2
Background/Related Work
The evaluation of users within reactive environments in normally made through general
purpose evaluation methods such as enquiries, observation or interviews. Due to this, we
start this chapter by listing the most used evaluation methodologies and briefly describing
their characteristics and advantages. Following, we introduce the ESM as an alternative
and describe existing frameworks and tools that support it. Finally, to better contextualize
this thesis, we present a brief description of key technologies used on the scope of this work,
namely SOA, user and context models and ontologies.
7
• Rapid prototyping is a technique that uses a low fidelity prototype (not implemented)
called mock up, used to collect preliminary data about user interaction [Bernsen and
Dybkjr, 2009]. A mock up can be quickly created and changed. Despite being
gathered in a preliminary stage of development, the collected information is valid
and reliable [Bernsen and Dybkjr, 2009].
• Performance evaluation is centered in the users and the tasks they perform, and
it involves the collection of quantitative data. The participant’s performances are
evaluated by recording elements related to the execution of particular tasks (e.g.
execution time, success/failure, or number of errors) [Nielsen, 1993]. Log file analysis
is used to collect information about users’ performance. The logs recorded by the
system are important to supplement data collected by observers, as they enable the
realization of triangulations.
8
interviews are usually conducted by an interviewer who conducts a dialog with the
participant. Because interviews have a one-to-one nature, errors and misunderstand-
ings can be quickly identified and clarified [Bevan and Bruval, 2003].
• The questionnaire is a tool to collect self-registration information as characteristics,
thoughts, feelings, perceptions, behaviors or attitudes, usually in a written form [Han-
ington and Martin, 2012]. A questionnaire has the advantage of being cheap, do not
require test equipment, and the results reflect the user’s opinions, namely about the
strengths and weaknesses of the user interaction.
• Diary study is a non-intrusive field method in which the users are in a different
location of the evaluators and can manage their own time and means of gathering
information [Brandt et al., 2007]. The data are recorded in the moment that occurs,
which reduces the risk of false information [Tomitsch et al., 2010]. Participants record
specific events throughout the day. The data resulting from this collection can then
be used to guide the implementation of clarification interviews.
ESP The Experience-Sampling Program version 2.0 (ESP) is a software package reported
from 1999 [Barrett and Barrett, 2001, Barrett, 1999] containing a native application to trig-
ger and run ESM enquiries on a PDA Palm Pilot, and a desktop application for structuring
9
the questionnaires. As an advanced version to ESP, [Consolvo and Walker, 2003] introduces
iESP as a tool focused on ubicomp application evaluation.
CAES and CAESSA Intille et al. [Intille et al., 2003] introduced the concept of Context-
Aware Experience Sampling (CAES) by designing a tool capable of sampling the user di-
rectly via questioning as well as sampling from sensors that were on the user or nearby.
Their tool, developed for PocketPC, features the ability to pose multiple choice questions
only through the phone’s interface (showcased in Figure 2.1). Additionally, the tool permits
some level of question answer chaining based upon particular question responses.
Figure 2.1: Screenshots of a multiple choice question screen and a tutorial screen for an
audio note sample using CAES [Intille et al., 2003]
In [Fetter et al., 2011], the authors proposed an extension of CAES by building CAESSA
- a toolkit enabling researchers to setup CAES studies through a visual editor. The toolkit
was developed for PDAs, and supports a fixed set of question types as well as answers via
text input, microphone and camera. CAESSA is composed of three main parts: a daemon
for collection sensor data, an editor for handling event streams, and a question actuator
daemon for presenting the questions to the user. CAESSA features a plug-in mechanism for
sensor inclusion and its visual editor allows the creation of flows between sensors, engines
and actuators. Questions are restricted to free text, numerical text, ratting scale and yes/no
questions and are defined in a XML file. Figure 2.2 illustrates the CAESSA Visual Editor.
The same authors proposed another version of their work with PRIMIExperience [Fetter
and Gross, 2011], by use of Instant Messaging (IM) as a cost-effective mean for carrying
out ESM studies.
10
Figure 2.2: Screenshots of the CAESSA Visual Editor [Fetter et al., 2011]
as to initiate wireless database synchronization, send SMS messages to the research team
and/or start “in situ” self-report surveys. Additional sensors can be added via its plug-in
architecture.
The tool provides evaluators with the ability to pose questions in a set of fixed formats,
including closed-form and open-form data. In total, the latest version of MyExperience
provides fourteen separate survey response widgets (a selection of which are shown below
in Figure 2.3) from radio button lists and text fields to widgets that allow the subject to
take pictures, video, or even to record their responses audibly. Regarding the usage of
the tool, MyExperience allows evaluators to define a test using a XML structure. Data is
stored at the phone using SQL Compact Edition and thus, can only be consulted after the
experiment ends.
Momento Momento is a ESM tool that provides integrated support for situated evalua-
tion of ubicomp applications [Carter et al., 2007]. Momento can gather log data, experience
sampling and user diaries using a client-server architecture. It features a desktop appli-
cation designed for experiment management and uses the SMS and MMS capabilities of
mobile devices to share information between the end users and the evaluators. Through
it, the tool permits evaluators to answer end user requests, ask participants to capture or
record data, or automatically gather data from the mobile device. To support multiple
evaluations, the tool includes a fixed server to store gathered data.
11
Figure 2.3: Screenshots of the MyExperience tool regarding its possible response meth-
ods [Froehlich, 2009]
12
Figure 2.4: MovisensXS Tool Sampling Screenshot [movisens GmbH, 2015] for specifying
sampling schemas
Maestro Maestro is an ESM tool that proposes itself to enhance ESM solutions by ex-
ploiting long term user behaviour and usage patters for ESM triggering [Meschtscherjakov
et al., 2010]. According to the authors, user behavior and context triggered ESM enables
the evaluator to trigger ESM questions based on past user behaviour and dinamically adapt
the ESM questions whenever the user changes his/her behaviour. At the same time, it also
allows evaluators to log and monitor real-time comprehensively and flexible user behavior
with meaningful context information [Meschtscherjakov et al., 2010].
The maestro tool follows a client-server architecture. Events are stored at the central
server thus requiring a constant connection between the client and the server. A rule based
mechanism allows evaluators to specify event triggers for ESM questions. Communication
between the server and the client is made through XML (regarding configuration files) and
HTTP/XML for handling enquiry data. Configuration can be performed remotely through
the server’s web application. Events are captured at the client, transferred to the server
through HTTP via GPRS/EDGE and there evaluated. If the evaluation of the rule is
positive, the server contacts the client with the corresponding question(s). The client was
13
developed for Blackberry and uses its internal web browser. Figure 2.5 showcases some
ESM questions displayed on the Blackberry.
Figure 2.5: Example questions on the Blackberry device created by the Maestro ESM
Tool [Meschtscherjakov et al., 2010]
In [Fischer, 2009], Fischer makes a critical review of some ESM tools and indicates
several principles that should be considered when designing an ESM tool. The author
claims that (1) ESM tools should follow a client-server logic to make use of the growing
connectivity of today mobile device’s and the internet; (2) evaluation creation interfaces
should be accessible to evaluators and not require in-depth programming knowledge; (3)
users have their own devices and these should be prefered for ESM evaluations; (4) ESM
tools should include different configuration options for the ESM study and not be based on
a certain area; (5) Logging and enquiries should be separated regarding setup on devices;
(6) be aware of the limitations of client-side devices and their interfaces when implementing;
(7) ESM evaluations should be accessible from a server-side to allow evaluators to monitor
the progress of the study.
14
architectural style. Summarily, SOA can be described as an architectural model where
applications are “encapsulated” as services, and where communication is provided via a
self-contained communication system inherent to the architecture.
SOA as an architecture proposes itself to several objectives. One of them is related
to its inherent interoperability which allows for any component within the architecture to
be remotely invoked by any potential client. Given that every component involved in the
architecture must provide a standard interface by which it can be invoked (using a protocol
known by all clients), this is a capability that rests assured. With it, new components can
be easily discovered and included by the architecture by themselves or for the construction
of new software systems. These can later also be published and made available as new
services entering an “infinite” cycle limited only by hardware capabilities.
Another main objective is the aggregation and abstraction of complex business logics
under standardized service interfaces to allow simpler integration of complex services in
novel applications. This way, business processes are hidden and become irrelevant to the
development of newer applications.
In order to be discussed at a conceptual level, a typical SOA architecture is composed
by four basic layers [Thies and Vossen, 2008]:
• Applicational Layer - which may include legacy systems, Customer Relationship Man-
agement (CRM) software, Enterprise Resource Planning (ERP) systems or additional
databases.
• Service Layer - where services are provided on top of the applicational layer. An
important note is that services are normally described using Web Service Definition
Language (WSDL).
• Processing Layer - where services are orchestrated into processes using, for instances,
Business Process Execution Language (BPEL).
• Presentation Layer - where functionalities are made available to users via desktop or
web applications.
15
According to the same author, other more concrete principles should still be considered
such as the separation of business logics from base technology, reusing business logics
whenever necessary, lifecycle management or the efficient usage of system resources.
Later on, in the same article, Abowd would consider a context-aware system, a sys-
tem that uses context to provide relevant information and/or services to the user, where
relevancy depends on the user’s task’ [Abowd et al., 1999]. In this case, the definition of
Fickas et al. [Fickas et al., 1997] is perhaps more practical by defining context-aware sys-
tems as “applications that monitor changes in the environment and adapt their operations
according to predefined or user-defined guidelines”.
The first contextual application remotes to 1992 when [Want et al., 1992] created the
Active Badge Location system. The system was based on infrared technology to determine
the user’s location and had the objective of forwarding telephone calls to a phone that
was nearby the user. Since then, a wide number of contextual applications have been
researched and developed. However most can be cataloged and pointed to a strict number
of architecture definitions.
16
• Direct Sensor Access - client software gathers the information directly from sensors.
This means that sensors become “embedded” in the application and can only be
accessed by it. Concurrency is very hard to achieve due to this fact, and as such
proves to be a improper choice for distributed systems.
17
process [Baldauf et al., 2007]. However, it is possible to summarize the most relevant con-
text modeling approaches based on data structures and exchange of information [Strang
and Popien, 2004]:
• Key-Value Models. These models represent the simplest data structure for modeling
contextual information. They are often used to described the capabilities of services
within distributed frameworks. Matching algorithms are used by service discovery
methods to find key-value pairs (ex. CAPEUS [Samulowitz et al., 2001]). Their ad-
vantages are mainly associated with simplistic representation and easy maintenance.
• Markup scheme models. All markup scheme modeling approaches use a hierarchi-
cal data structure comprised by markup tags with attributes and content. Profiles
represent typical markup-scheme models. Some are defined as extensions to the Com-
posite Capabilities / Preferences Profile (CC/PP) [W3C, 2007] standard possessing
Resource Description Framework (RDF) encoding and eXtensible Markup Language
(XML) serialization. One such example is the Comprehensive Structured Context
Profile (CSCP) [Indulska et al., 2003] shown on Figure 2.6. Other examples can be
found in [Strang and Popien, 2004].
18
etc.), and the details of context processing become encapsulated on an object level
and hence hidden to other components. One such example is Hydrogen [Hofer et al.,
2003], specialized for mobile devices and inspired by a decentralized approach where
context is divided into local (context values relative to the client itself) and remote
(context values from other devices) types.
• Logic based models. Logic-based models based themselves upon facts, expressions
and rules to defined the context model. Normally, a logic system is used to manage
those terms and adding, removing or changing the existing facts. Existing systems
are usually constructed upon Prolog (to facilitate reasoning on the facts) but more
“theoretical” examples also exist being based on first-order logic for instances.
• Ontology base models. Ontologies are a common method for specifying concepts and
relationships between them. Due to their formal inclination, they become a good
method to modeling contextual information. Several context-aware frameworks and
systems use ontologies as their representation model such as COBRA [Chen et al.,
2003] which uses a OWL-based ontology approach, named COBRA-Ont, exemplified
on Figure 2.7.
Figure 2.7: COBRA-Ont List of Classes and properties [Chen et al., 2003]
19
really is. Nonetheless, Kobsa’s [Kobsa, 2007] definition of a user model is probably the
most widely accepted:
There is today a wide number of systems which use some level of adaptation in or-
der to increase usability, normally provided by some kind of user analysis and reasoning.
Kay [Kay, 2000] enumerates a broad number of systems ranging from advisors or consul-
tants to fully fledged systems that adapt interaction to the user’s preferences, goals, task,
needs and knowledge.
In order to compose a user model, several techniques exist and are applied at different
stages of development. In her work, Kay [Kay, 2000] enumerates four main techniques for
this purpose.
Elicitation of User Modeling Information This is the most direct way of obtaining
user information. Whenever the system aims to obtain information about the user, it
simply asks him. For this purpose, several methods can be used such as direct question
and answer, through forms or a simple wizard tool. In a sense, this method is better for
applications which contain an exclusive user model, where the questionnaires are aimed
for that specific application.
Modeling Based Upon Observing Another method is to compose the model through
user observation. The main advantage of this approach is the ability to collect large
quantities of data without disturbing the user. One can argue that capturing data while
the user is interacting with the application leads to more a genuine evaluation, in the
sense that the user will not stop the interaction to answer the questionnaire. On the other
hand, the evaluation may also be biased by the person who is analyzing the interaction,
later leading to errors. However this can be countered by using many observers and later
merging their impressions into a more solid and trustworthy report.
20
A simple example may be explained by conceptualizing the stereotype “bad sight”. If
a user has difficulties in seeing, then he’s “labeled” with this stereotype. Now, imagine
that an application possesses a routine that increments font size if the user belongs to that
stereotype. When interacting with the application, the user will now experience a larger
font compared to other users who don’t share this stereotype leading to “user-adaptation”.
Stereotyping is perhaps the most used technique when developing a user model for ap-
plications. This technique involves establishing specific groups where users will be inserted
depending of certain characteristics. These groups are based on categories (or events)
established by the developer to whom applications will react differently.
On her work, [Kay, 2000] divides the essential elements of stereotyping in three parts:
• triggers - activate the stereotype, if the user has “bad sight” then it triggers that
stereotype;
21
Shell User Model Examples For Kobsa [Kobsa, 2007], “user model shell systems”
are systems that are integrated into applications, dependent from applications and in most
cases, embedded into the own logic of the corresponding applications which leads to a clear
distinction between both being non existent.
Examples of “shell” modeling systems can be found in the works of [Huang et al.,
1991], [Kono et al., 1994], [Brajnik and Tasso, 1994] or [Kay, 1994], these last two being
examples of user modeling based on stereotyping - matching users to previous defined
profiles [Kay, 2000]. Braijnik’s work [Brajnik and Tasso, 1994], UMT allows the user
model developer the possibility of defining hierarchically ordered stereotypes as well as
rules for user model inference and contradiction detection. When new information about
the user is received, it is classified by UMT based on a set of premises or assumptions.
Based on these, stereotypes may be triggered and their contents added to the user model.
Thanks to these stereotypes, the application will be able to adapt itself considering this
particular type of user. PROTUM [Vergara, 1994] is a similar approach to UMT including
more sophisticated stereotypes.
While not being a “shell” user model system in a strict sense, um [Kay, 1994] is a toolkit
for user modeling that represents assumptions about the user using attribute-value pairs
that may describe the user’s preferences, beliefs or other information considered relevant.
In order to evaluate assumptions, um tags each pair with a list of evidence for its truth
and and falsehood. At runtime, interpreters are used to evaluate evidences and compose
conclusions.
Server User Model Examples In truth, the work by [Finin and Drager, 1986] is
considered to be the starting point for application-independent user modeling systems.
GUMS is a Prolog designed system aiming to compose long term models of individual users.
Its objective is to provide a well defined set of services for an application system interacting
with various users. As the application system interacts with the user, it simultaneously
acquires information on the user and maps it to an user model maintenance system for
incorporation. The application provides new facts about the system which is then verified
with some assumptions thus generating new assumptions about the user which later may
be queried by the application.
Server models are nowadays much more common than their alternative. In fact, given
their success, numerous commercial user model examples are currently available to develop-
ers. This comes as no surprise given the numerous advantages this model imposes [Kobsa,
2007]:
22
• Other information dispersed across the enterprise (past purchases, demographic da-
ta), can be more easily inserted into the user model repository;
On the other hand, a major disadvantage comes from the fact that this model is based
on a central server, accessible only through the network which may lead to availability or
performance issues. In order to diminish these problems, redundancy is often used.
The server system “Doppelganger” [Orwant, 1994] gets all its information by means
of sensors (either software or hardware). In order to analyze this information, developers
are able to use several techniques such as beta distributions, linear prediction or Markov
models. Individual user models are collected into so-called “communities” leading to a
similar stereotyping concept. It differs from traditional stereotyping due to being in a
sense dynamical due to being based on probabilistics [Kobsa, 2007].
Personis [Kay et al., 2002] is an “extended server” version of um using the same base
components residing in an object data layer over a database. User models are hierarchically
ordered contexts which are structured on the object database structure. The authors
distinguish two basic operations upon this representation: accretion - collecting evidence
about the users - and resolution - interpreting the collected evidence.
A more concrete example is contained on KnowledgeTree [Brusilovsky, 2004], a student
adaptive education system which includes a user model functionality by collecting evidence
from students obtained by their interaction with multiple servers. The activities performed
by students are stored and inferred by agents which process the flow of events and updates
the model. Each agent is responsible for a specific property such as motivation level or
level of knowledge for a specific course [Kobsa, 2007].
BGP-MS [Kobsa and Pohl, 1994] is another user model server system using assumptions
about the user by techniques of stereotyping based on a first-order predicate logic. Different
assumption types such as beliefs and goals are represented in different partitions which are
hierarchically ordered to exploit inherence [Kobsa, 2007].
23
Regarding granularity, ontologies can be fine-grained (or offline) or coarse- grained (or
on-line). Fine-grained ontologies include a more detailed description of the knowledge do-
main, while coarse-grained ontologies tend to be more abstract [Silva, 2004]. To choose
one, it is necessary to counterbalance accuracy and computational complexity. When accu-
racy is required, fine-grained ontologies are better suited but require more computational
resources. When usability is more important, coarse-grained ontologies are often choosen,
the Semantic Web being one of those cases.
2.4 Summary
In this chapter, we presented the related work on evaluation methodologies with a
special focus on ESM tools and their characteristics. Additionally, and for a better un-
derstandment of the thesis, a brief description of key technologies and concepts within the
scope of this work was also included.
24
Chapter 3
25
by the user which can lead to his desistance. However, cases may also happen where the
user wants to comply and can not because he does not have any access the evaluation
itself, he is away from the evaluation data gathering point or because of a malfunction in
which data could not be gathered. The existence of alternatives could in both cases be a
possible solution. Note that many evaluations are performed in the user’s home. Pervasive
environments such as the user’s habitation can be used to perform “custom evaluations”
which do not derive from the original objectives but provides more comfort by means of
adaptability to the user.
Issues do not only exist from the user’s standpoint but also from the evaluator’s stand-
point. Evaluators are normally limited to simple enquiries for most evaluations despite
wanting more information, which is often insufficient to perform a thorough analysis. In
these cases, the existence of more data, by means of contextual information could help
evaluators when assessing more specific and less common results. Real time data can help
provide a “visual picture” which can lead to new and interesting results or at least portray
the necessity of further research.
Another issue concerns recruitment. The selection process in regard to the users re-
quires the evaluator to analyze each one personally and provide an assessment. When
contemplating large user groups, this task can take weeks or even months to execute.
It is necessary to provide a unified answer to these issues and allow evaluators to
conduct evaluations in a more dynamic and flexible manner. The next sections detail a set
of requirements that we feel are important for a concept of dynamic evaluation for reactive
environments.
26
a dynamic paradigm that offers customization as its main statement. In the next sections,
we detail the aspects that allow the necessary customization in the scope of a dynamic
evaluation paradigm.
27
to the interaction modality. The diversification that this causes provides evaluators with
new, comparable data, in which different users in different settings, answered to a question
which was posed differently. In some situations, the environment and its user might even
have a different behavior than another which leads to a certain test element being posed
to one but not to the other. We believe that this is acceptable and desirable as options of
a dynamic evaluation paradigm.
The conjunction of context and environment heterogeneity can help the evaluator to
reach new and interesting results since it allows him to test a given subject in different
conditions and observe changes and reactions of the subject. Conducting the same test on
different environments can provide valuable information in regard to the adaptability and
overall feel of the different conditions of the test.
Note that we do not intend to dispute the necessity of generic evaluation testing as it
is still a major part of most evaluations performed. We intend to simply provide choice
for those who can go beyond those boundaries and conduct evaluations on a more diverse
manner.
28
evaluator intends to conduct an evaluation through a certain modality, he should be able to
do so. But if he intends to gain information in whatever manner, if he intends to provide
maximum adaptability or usability, or if he simply intends for diversity, the evaluation
paradigm should allow him to do so as well.
29
The evaluation process should be based on a systematic approach. One that establishes
a distinction between evaluator and targets of evaluation. One that allows the evaluator
to specify the test, the method of execution and simply distribute the test to a set of
users. In a way, the evaluation should function much like a computer program, something
that is delivered and executed by the user remotely. By borrowing ideas from concepts
like Crowdsourcing [Brabham, 2008], it could be possible to look at users as resources,
to whom evaluations could be delivered automatically. Evaluators would become able to
define certain selection criteria as quickly define user groups to whom they could apply the
evaluation. The main challenge here is to allow a dynamic approach since every environ-
ment can be distinct.
So far, we identified key issues associated with general evaluation pratices. In the next
section we will further explore these issues by presenting the main cornerstones on which
our “dynamic evaluation” proposal is based on.
30
the user participates in evaluations where certain patterns or behaviors can lead to a user
modeling.
By characterizing the user, it becomes possible to conduct the same evaluation process
and obtain different executions. Evaluations can include specific evaluation items which
only are triggered if the user possesses some sort of characteristics. It becomes possible to
conduct user-friendly interactions by adapting the interaction to the user and even facilitate
the task of recruitment. By using information such as interests or even characteristics,
it becomes possible to create and establish groups which share common features thus
facilitating the evaluator when searching for participants.
It is important to note that we are disregarding the ethical constraint here and assuming
the user cooperation and permission in the process.
31
Vehicle
Infotainment
System
House
Screen
Running
Calory Brightness
(Activity)
Counter Graphical User
Interface
Phone
GPS External
Coordinates User Temperature
Meter
Accelerometer
Working
Location Laptop
32
actual feedback which can be very valuable in regards to the conducted research. Note
that the same evaluation can be applied to different users, possible resulting in different
applied evaluation items and different collected data from user to user.
The objective of an evaluation is information. Not random but specific information
which provides answers to research questions. The necessity of when and how to obtain
information can only be set by the evaluator since the content of the test as well as its
moments of execution and overall calendarization are his responsibility. All of these aspects
constitute the evaluation’s specification. In our approach, the specification of an evaluation
plan is composed of evaluation assessments. An evaluation assessment is an execution
flow which consists on a series of evaluation elements linked to one another in a specific
order. The flow is oriented, and its elements are executed one by one, based on their order
of completion. Each element on the assessment can be either an atomic operation, like an
event generated by a sensor, or a non-atomic operation like a question within an enquiry.
Every assessment executes and terminates according to a given schedule.
There are many advantages to this approach but first and most importantly is the fact
that the evaluator is offered with choice when designing the evaluation. He can either
design an evaluation with elements that are common to all involved users, or he can create
a more global set of assessments in which some will be executed and others will not.
Assessments allow him to design an evaluation which can range from fixed, timed enquiries
to complete ambient-dependent execution flows. Figure 3.2 illustrates an example of an
evaluation which includes two evaluation assessments. The first shows a flow in which
an enquiry (Enquiry 1) only occurs when an event (Event X) is detected, featuring, for
instance, an ambient-dependent example. The second links another enquiry (Enquiry 2)
to a time specific period. These examples show the ability to associate different evaluation
instruments to create fine-tuned data gathering situations.
Evaluation Starts
Event X Enquiry 1
Assessment A With
Evaluation ABC
Time Interval/
Specific Time
Evaluation Followed
Evaluator Enquiry 2
Assessment B By
10/04/2014
:14:00
Another aspect of the specification is the modularity involved. Each assessment consists
on a series of elements - questions, enquiries or events - elements which can be shared
between evaluations. By using semantics in their definition, each of these elements can
represent research concepts by themselves instead of being just common descriptions. By
making this change, we enable evaluation elements to be extended much like programming
objects. For instance, let us observe a simple example: an enquiry can be declared as an
Ambient Assisted Living enquiry and another enquiry as an Usability enquiry. If we state
33
that the former extends the latter, then this implies that the Usability enquiry is also an
AAL enquiry. By providing this type of relationships between elements, evaluators become
able to establish domain areas that include evaluation elements associated with specific
research areas. It also becomes possible for evaluators to use and integrate evaluation
elements that were produced by others thus creating a level of reusability that is important
to facilitate the creation of evaluation tests.
In addition to the forms of obtaining data and modularity, an evaluation specification
must contemplate answers to issues such as ease of creation, privacy and other detailed
aspects regarding assessments like priority, cooldowns, interaction with the user among
others. We will tackle them at a later time.
Figure 3.3 represents an evaluation’s lifeline divided into four phases, each depicting
essential steps to the successful creation and application of an evaluation test. The flow
integrates the main aspects and requirements presented previously as a systematic way to
achieve a dynamic evaluation.
Create Evaluation
User Selection
- Create Evaluation
- Set Inclusion Apply Evaluation Gather Results
Elements
Specifications - Deploy Evaluation - Obtain Data
- Create Evaluation
- Verify Compatibility - Execute Evaluation - Analyze Information
Assessments
- Check Acceptance
- Set Schedule
The first phase is linked to the creation and design of an evaluation by the evaluator.
It implies the creation of the evaluation assessments composed by events or enquiries to
gather data from the user. The second phase is associated with the user selection, that
is, the creation of the target group, and the verification that they are ready to receive
the evaluation. The third phase is linked to the execution of the evaluation by the target
group, and the fourth and final phase is associated with the resulting data analysis.
34
3.3 The Conceptual Architecture
To support the proposed evaluation methodology a conceptual architecture was con-
ceived. It was envisioned with the major objective of facilitating the creation, management
and analysis of dynamic evaluation scenarios on a large scale.
Due to all of the requirements, there are many variables involved in designing the
architecture. We want to allow dynamic evaluations that respond to the user’s environment.
We want to simplify the creation, distribution, and collection of evaluation data. We want
to allow semantic data and the creation of evaluation areas. We want both general and
detailed, customizable evaluations. To achieve all of this, we needed to go step by step,
analyzing each requirement and each possible solution.
We started by analyzing the involved actors and their responsibilities. The evaluator
has the responsibility of designing and applying the evaluation tests while the user has the
responsibility of complying with the test. Based on this premise, our first decision was to
separate the architecture into two: a part dedicated to the evaluator and a part dedicated
to the user. This way, it becomes possible to address both the user and the evaluator’s
necessities.
In regards to the user, its objective is self-contained, that is, it only concerns himself.
The user is asked to participate in a test to which he may concur or not. He has however
no responsibilities in designing the evaluation. On the other hand, the evaluator has need
of users in order to apply the evaluation, as recipients for the test. In a sense, the user
is something like a resource to the evaluator, one to whom he asks a specific task and
expects the results. From this perspective, we choose to look at the user as a resource.
An independent, autonomous resource that possesses properties like user characteristics,
interests and preferences as well as its own context. Figure 3.4 shows an example of an
user in this light.
ENVIRONMENT INCLUDES:
- SENSOR A
- SENSOR B
- LAPTOP
- MICROPHONE
INTERESTS INCLUDES:
- AAL
- SMARTPHONE APPS
- WOMEN FASHION
User
CHACTERISTICS INCLUDES:
- SHORTSIGHTEDNESS
- WEIGHT
- HEIGHT
- BIRTHDATE
In this example, we are characterizing the user with a few aspects which are divided in
35
three areas: environment, interests and characteristics. The environment encompasses all
specifications of the user’s surroundings. This particular user includes only a few hardware
items: two sensors, A and B, a laptop and a microphone. The interests area features
topics in which the user may be interested in. Topics can range from specific elements
like AAL to more general area like women fashion. The last area includes a more personal
characterization of the user himself such as height, weight, birth date or the fact that he
is shortsighted.
The characterization is not associated with any evaluation. The user exists beyond any
concrete evaluation and is a possible target for evaluations.
36
ENVIRONMENT INCLUDES:
- SENSOR A
- SENSOR B
- LAPTOP
- MICROPHONE
INTERESTS INCLUDES:
- AAL
- SMARTPHONE APPS
- WOMEN FASHION
ENVIRONMENT INCLUDES:
- SENSOR A
User CHACTERISTICS INCLUDES:
- SHORTSIGHTEDNESS
Fullfils the - WEIGHT = 75kg
specification - HEIGHT = 1,80m
- GENDER = FEMININ
INTERESTS INCLUDES:
- SMARTPHONE APPS
ENVIRONMENT INCLUDES:
Evaluator CHARACTERISTICS - SENSOR B
INCLUDES: - TABLET
- WEIGHT > 65kg
- GENDER = FEMININ
INTERESTS INCLUDES:
- AAL
- SMARTPHONE APPS
Does not fullfill
- WOMEN FASHION
the specification
User CHACTERISTICS INCLUDES:
- WEIGHT = 85kg
- HEIGHT = 1,90m
- BIRTHDATE = 05/06/1993
- GENDER = MASCULIN
like AAL or it can be about a human pathology like hypertension, both of which are fairly
different. Difference which can also translate to their terminology and content.
In order to help the characterization of evaluation scenarios, we have introduced the
notion of evaluation domains. An evaluation domain is an architectural building block
that sets both a language to produce evaluations and the users these evaluations can be
applied to. Consequently, the evaluation domain defines an abstract evaluation network
where all associated users comply with a set of guidelines that the evaluation domain
enforces. Concretely, an evaluation domain is characterized by three main components:
• Evaluation Scope - States one or more topics which represent the domain. For in-
stance, AAL or Ambient Intelligence. These scopes are comparable to the user’s
interests and are used to distinguish different domains.
• Applicability Criteria - Represents the set of characteristics which all associated users
must fulfill. If a user fulfills the criteria, it can become part of the domain’s evaluation
network.
• Domain Language - Represents the set of evaluation elements - the Vocabulary - and
how they can be used to create evaluations.
A domain can be compared to a factory where evaluators are able to create new eval-
uations. Using applicability criteria and evaluation scopes, a domain defines a complete
network where the evaluator is given a set of users that are compatible with the type of
37
evaluation that he intends to perform. With these users, the evaluator is able to easily
apply an evaluation scenario without doubts of the user’s willingness or compatibility.
The domain language guarantees that evaluation domains are in accordance with the
support architecture, and more importantly, that all evaluations are executable by the
users that belong to the domain’s network. In addition, the domain language defines a
vocabulary composed by a set of evaluation elements that evaluators will be able to use
to create new evaluations. These elements are defined in the language using a semantic
approach. For instance, rather than specifying a question and its content, the specification
defines something like an AALQuestion. The element can then be instantiated within
future evaluations with actual questions (f.i. “Did you find this application accessible?”).
These definitions allow domain languages to integrate elements from other specifications
thus promoting reusability. We will fully tackle these concepts on Chapter 4.
Domains are used by evaluators to create and apply evaluation tests. The definition
of an evaluation domain however is not associated with an evaluator but with a designer.
The designer represents the owner of the evaluation domain and is responsible for creating
the domain specification, including the scope, the applicability criteria and the domain
language. While the evaluator simply accesses and uses the evaluation domain, it is designer
who is responsible for guaranteeing its proper operation.
To establish an evaluation domain, it is necessary to undergo a set of phases that
validates its content and specifications. The diversity of user environments implicates that
one evaluation element such as an event can be supported by an user and not supported
by another. When establishing a domain, this verification must be performed in order to
include the user within the domain’s network. The verifications are based on the inclusion
criteria that defines the domain and matched with the user characteristics/environment
listings associated to each user. Figure 3.6 illustrates an example of associating two users
into a domain’s network.
In the figure, it is noticeable that the first domain is rather simple and only composed
of a single criteria. In this case, both users are compatible and thus become part of the
domain. In the second domain however, only user two fulfills the criteria thus leaving user
one out of the domain’s network. General or more abstract domains have lesser criteria
and include higher number of users than their opposite. Nonetheless, the same user can
be part of multiple domains at the same time as long as it fulfills their criteria.
Every domain has an owner/designer which is responsible for it. Evaluators are able to
use domains as they use a service, but do not own it. This simplifies the evaluator’s task
by providing him with a set of domains from which he may choose from. If a domain fulfills
the evaluator’s objectives, then the evaluator may simply use the domain to construct and
apply an evaluation scenario to a set of users which fulfill the domain’s criteria. While
a domain belongs to an owner, it is the owner decision if a domain is private or public.
The domain may impose access privileges which only provide authorization to a set of
evaluators or define an open-policy which offers free access to all who might be interested.
38
ENVIRONMENT INCLUDES:
- SENSOR A
- SENSOR B
- LAPTOP
- MICROPHONE
DOMAIN A
INTERESTS INCLUDES:
INTERESTS: - AAL
AAL - SMARTPHONE APPS
- WOMEN FASHION
CHARACTERISTICS:
WEIGHT > 60kg
User One CHACTERISTICS INCLUDES:
- SHORTSIGHTEDNESS
- WEIGHT = 75kg
- HEIGHT = 1,80m
- GENDER = FEMININE
ENVIRONMENT INCLUDES:
- SENSOR B
- TABLET
DOMAIN B
ENVIRONMENT:
SENSOR B INTERESTS INCLUDES:
TABLET - AAL
- SMARTPHONE APPS
INTERESTS - WOMEN FASHION
SMARTPHONE APPS
User Two CHACTERISTICS INCLUDES:
- WEIGHT = 85kg
- HEIGHT = 1,90m
- BIRTHDATE = 05/06/1993
- GENDER = MASCULINE
39
Associated
To
NODE ONE
Includes
User One
Characteristics Interests Environment
- Weight - AAL
- Height - Smartphone Apps
- Age
Includes
evaluator can create an assessment which starts an enquiry whenever “Sensor A” produces
information. With examples such as this, it becomes possible to extract information in
very concrete situations and provide contextualized, specific data for analysis.
Every node is independent. It applies the evaluation but it does so according to its own
conditions, especially when interacting with the user. Since a node may not be limited to
a simple interface, modalities may - depending of the evaluator’s wishes - vary and adapt
themselves to the user and the environment (f.i. by changing their volume according to
noise). By using the node’s own data, interaction modalities can determine if they are
the best suited to gather information at a specific timing thus improving the chances of
gathering the data at that specific moment. This of course depends of the evaluator’s
wishes since he determines the evaluation itself.
40
In order to manage evaluation domains, the architecture includes a final component,
called Evaluation Hub, composed by a single service to facilitate the registration of new
domains and offer a general view of existing ones. The objective here is to provide the
evaluators with a search unit where they can analyze existing domains and decide whether
the domains suits their objectives or not. Similarly, the evaluation hub also allows de-
signers to inspect existing domains and their vocabulary, and extract elements which they
find relevant to new domains. By allowing this, the architecture enforces the concept of
reusability, thus promoting a sort of involuntary cooperation between designers.
Figure 3.8 shows a conceptual view of the entire architecture. In the figure it is possible
to observe that evaluators are able to find domains via the evaluation hub. From its part,
the hub is capable of accessing all domains and services of the architecture. Each domain is
linked to the support unit in order to search for compatible nodes, for deploying evaluations
and retrieving evaluation data. Finally, the nodes apply the received evaluations while
being oblivious of any other architectural elements.
Evaluators Designers
EVALUATION HUB
SUPPORT UNIT
DOMAIN A DOMAIN B
INTERESTS: INTERESTS:
AAL SMARTPHONE APPS
CHARACTERISTICS: ENVIRONMENT:
WEIGHT > 60kg SENSOR A | SENSOR B
The architecture relies on services not only as a support option but also as a method-
41
ology. In others words, by allowing users and evaluators to look at evaluation as services,
we are abstracting many layers of complexity which they do not require. To the evaluator,
a domain constitutes a way for him to create and define evaluations to apply to a set of
users. From his part, the user simply knows that he can be subjected to an evaluation
at any time. It is important to note that both domains and nodes are linked only if they
accept to.
3.4 Summary
In this chapter, we started by analyzing classical evaluation environments, pointing to
the relevance of dynamic evaluation. Then, we covered the requirements that the dynamic
evaluation paradigm should fulfill. On observance of these requirements, the guidelines to
define a dynamic evaluation solution were presented. Finally, a conceptual architecture
for dynamic evaluations, based on evaluation domains, evaluation nodes and a support
infrastructure were proposed and generally explained. This architecture separates the
evaluator from the user, allowing for the construction of flexible and expansible dynamic
evaluation systems.
In the next chapter, we will explain the evaluation methodology and model that sup-
ports the proposal, including their definition and specification processes.
42
Chapter 4
4.1 Requirements
In the previous chapter, domain was introduced as an evaluation instrument, defined
by a scope, some applicability criteria and a domain language. We claimed that to assure
the successful growth of a global evaluation solution, it is necessary to allow new domains
to come forth as time goes by and guarantee that they are compatible with the existing
architecture. We also claimed to be necessary to guarantee the possibility of new users -
that is, nodes - to be added and become compatible not only with the existing domains
but also with future ones that are yet to be formed. With the diversity of domains and the
consequence of different evaluation methods and practices, it becomes necessary to develop
a way to specify evaluations that provides the necessary flexibility for designers and com-
patibility for users/nodes. It is necessary to allow designers to create their domains at will,
without a limitless number of restrictions and at the same time make sure that nodes will
be able to interpret and execute evaluations without changing their whole infrastructure.
At the same time, understanding how data is collected and stored from evaluation is also
a common issue. While differences from domain to domain exist, establishing a software
solution that sustains this diversity can be hard. Results change from domain to domain
and are dependent of the domain’s definition. To support these variations, it becomes
43
necessary to balance between the stability and rigidity of a closed data specification and
the lack of structure and flexibility of a more open one. The architecture must be taken
into account in this decision as it configures the backbone of the entire solution. Above
all the approach must support the creation and application of evaluations that defend the
main objectives of the paradigm and establish a common ground between all evaluation
participants.
Generic Domain 1 Extends * Domain 1 Defines * Evaluation 1 Defines * Evaluation 1 Generates * Execution
Language Language Domain Specification Specification
Figure 4.1: Processing phases from the creation of an evaluation to its execution
44
As an innate characteristic, the model features a language that designers must follow
in the creation of domains. This language, referred to as generic domain language, assures
that domains are in accordance with the architectural rules.
In the second stage, domain languages are specified. They must be in accordance
with the generic domain language rules. As stated before (see Section 3.3.1), this mainly
corresponds to specifying the domain vocabulary (evaluation elements) and the rules to be
observed in its usage in the construction of evaluations. These domain languages will be
used afterwards, in the third stage, for the creation of evaluation domains in the dynamic
evaluation architecture. Recall that a domain is composed of a domain language plus a
scope and applicability criteria and, thus, the same domain language can be used in the
creation of different evaluation domains.
The specification of evaluations is the forth stage of the evaluation model. An eval-
uation specification, defined in the scope of an evaluation domain, is composed of a set
of evaluation assessments, created with the purpose of applying a test to a set of users.
It constitutes a planification for the evaluation in regard to its methodology/procedure.
The specification however is abstract since it does not include the actual set of users and
schedule. It is necessary to instantiate the specification in order to deploy and start the
actual evaluation.
This is the role of the final stage of the evaluation model, referred to as the execution
specification. Taking an evaluation assessment from a given evaluation specification, the
evaluator selects a set of target users and defines an application schedule, giving rise to an
execution specification. This execution specification is then deployed to the users’ nodes,
where the actual executions take place. Finally, the results of the executions are received
and attached to the evaluations assessments for posterior analysis. The separation between
the evaluation and execution specifications is justified by the diversity of domains. Every
evaluation is defined in a domain and consequently dependent of its specification. This
approach allows nodes to not be dependent of any domain and be accessible to all domains
if they match their criteria. As such, and also to simplify the distribution and execution
of evaluations, this is supported by a common language that all nodes understand, thus
making possible to look at the evaluation as a program and distribute it remotely.
The process of converting the information of the fourth part of the model to the fifth
part of the model is similar to a transformation method. This transformation takes an eval-
uation specification and parses it into a set of execution specifications using the domain’s
specification from part two. Figure 4.2 exemplifies the process by illustrating the creation
of an evaluation in a domain by an evaluator and its subsequent deployment into two
nodes. The evaluation is stored within the domain as an evaluation specification. When
triggered to start, the specification is transformed into a set of execution specifications
(one per evaluation assessment) to be deployed to the nodes. The node is then responsible
for processing and applying the assessment to the user.
45
EVALUATION DOMAIN A
INTERESTS:
Uses AAL
Execution Deployed
CHARACTERISTICS: NODE ONE
Specifications into
WEIGHT > 60kg
Evaluator
Creates Evaluation
User One
Evaluation Specification Generates
User Two
one hand, a rigid model can pose an easier solution but would place limitations to designers
and evaluators. On the other hand, a flexible model is more desirable but can be harder
to support in actual implementations of the architecture. The selection and adoption of
an adequate data model is critical to our evaluation model.
The decision to use ontologies for model definition comes naturally from the previous
requirements. Ontologies are a flexible data representation method that supports the
inclusion of new classes and properties in existing specifications. In our scenario, this allows
us to include new domains without breaking the architecture’s constrains and without
limiting the designers objectives. A major advantage of using ontologies is the ability
to allow designers to bring existing ontologies and their knowledge into their domains
and apply them in their evaluations. By allowing this, we are enabling evaluators to use
specifications which are standards in certain areas or widely used by their peers in the
architecture without changing the existing infrastructure.
The inclusion of ontologies into our evaluation model leads to another advantage in
regard to the feasibility of the model and the architecture itself. Each specification is
defined as an ontology and built upon the other specifications. In other words, the domain
language is built on top of the general domain language, the evaluation specification on
top of the domain language, and the execution specifications on top of the evaluation
specification. This method configures an incremental approach which is assisted by the
architecture and guarantees that the rules for each layer are fulfilled. At the nodes, the
evaluation is performed by the users. Figure 4.3 illustrates this incremental approach from
top to bottom.
To explain other advantages of this approach and the details of each specification,
namely how are they built and associated with each other, the following sections feature
a full explanation of the model from a top to bottom perspective, starting from the gen-
eral domain language. The evaluation domain is not further explained, since it is not a
specification and the already given description is enough to understand its role.
46
Generic Domain Language
EVALUATION DOMAIN
Domain Language
Designer
Evaluator
deployed deployed
NODE NODE
User User
47
2014a]. Presented classes and properties follow common nomenclatures by being defined
by a namespace and a unique ID1 . This definition is important given the variety of domains
and nodes and allows us to guarantee that every element is not repeated. It also opens
a door for data mining options by allowing algorithms to inspect multiple specifications
from both domains, evaluations and executions and extract new knowledge from them.
In our description of the ontologies, we will resort to a simple description rather than
full description logics. As such, ontology models are illustrated using a conceptual represen-
tation composed by their classes and properties for easier comprehension. To complement
this information, Annex A presents a full listing of every ontology’s classes and properties.
4.3.1 Enquiries
The most normal evaluation procedure involves questioning the user. Specifying a set
of questions and a set of possible answers is a typical procedure that offers low complexity
and short preparation periods. Despite the commonness of this procedure, in itself, the
procedure suffers from already stated issues like repetitiveness or rigidity. Nonetheless, the
importance of enquiries in an evaluation is consensual. The necessity of building a series
of questions and establish an order to those questions is fundamental when gathering
information from the user especially in feedback scenarios.
In our proposal, we opted to create an abstract structure which allows evaluators to
design enquiries easily but without limitations. Initially, we intended to create a language
capable of producing the most common question and answer types such as multiple choice,
open answer or Likert scale questions but decided otherwise since it would impose a fixed
set of options to evaluators thus restricting them. As such, we choose to design a simplistic
but extensible structure for direct assessment based on two elements: Question and Answer.
Figure 4.4 showcases the Enquiry conceptual specification.
The Question and Answer elements establish an action which is made to an actor where
the Question acts as the input and the Answer acts as the output. The actor can be a
human but such is not mandatory since it may be possible to use Question and Answer
elements when communicating with an external system for instance. In order to allow
evaluators to establish multiple interrogations in some order, we introduced the element
Enquiry and an EnquiryGroup element to group enquiries. To establish the sequence
when applying the enquiry, the specification includes a enq:followedBy property between
question elements.
These elements allow evaluators to create assessment elements which will be applied to
an actor. The Question, Answer and Enquiry elements are only abstract elements. Their
values come when extending them or when forming new relationships between them. It
is possible to enrich the type of interrogations to the user by adding semantics to them,
or simply adapting the element to the evaluation’s needs. With this flexibility, we are
guaranteeing that no limitations are placed when applying enquiries in different scenarios.
1
Normally the ID represents an URI. As an example, the uri “http://enquiryOntology#Question”
would refer to the “Question” element of a “enquiryOntology” specification.
48
rdfs:Class
enq:hasFirstElement
rdfs:subClassOf enq:hasTransitionTo
Usability
Question
Concretizations of this specification extend the base elements. For instance, in an area
like AAL, evaluators can define concepts like AALQuestion or UsabilityRelatedQuestion
which would provide semantic information regarding the question itself. On the other hand,
elements like OpenQuestion or MultiChoiceQuestion could be created to specify a more
concrete type of question. Note that these elements can possess other relationships as well.
The MultiChoiceQuestion element requires a property entitled enq:hasPossibleAnswer
which defines the set of possible choices from which the actor must select.
The specification itself possesses no limits and a single rule. Relationships with the
Enquiry, Question or Answer are allowed only via rdfs:subClassOf property. From then
on, every added concept possess no restrictions on its specification. In Figure 4.4, the
element UsabilityQuestion shows an example of an added concept which extends the
base specification.
4.3.2 Events
The utilization of events is crucial for a dynamical approach to an evaluation. An
environment is typically reactive and its influence on the user’s behavior can be high,
since devices, applications or appliances normally share the same medium. As such, it
becomes of higher importance to allow a measurement of this influence and the possibility of
analysis regarding its consequences. To do that, the inclusion of events became mandatory.
An event can be seen as an action or an occurrence of something that follows a certain
49
typification. By detecting it, evaluators gain a much ampler array of evaluation tools. On
its simplest form, it becomes possible to perceive if a certain action does occur and how
many times does it occur in a certain period of time. But it also becomes possible to
trigger sequences consisting on inquiring the user regarding that event or analyze scenarios
in which multiple events occur simultaneously or within a span of time.
In our proposal, an event is seen as a conceptual element that represents something
that occurs at a precise timing. In that sense, the specification’s top element is an Event
class with a Timestamp property. New events can be created as subclasses of the Event
class. Figure 4.5 shows the Event specification.
evt:hasTimestamp
Timestamp Event
evt:hasTimestamp
Specification
evt:hasTimestamp Example
rdfs:SubClassOf
Increase Decrease
rdf:type Volume Volume
rdf:type
evt:hasTimestamp
15 Jan 2020 Increase
18pm Volume 1a.1
50
To allow evaluators to detect more specific situations, our proposal includes Event
Processing Rules (EPRs) as an extension to event support. By using the Event as the
base element, an EPR represents a tree-like structure associating multiple events. Within
literature, EPR specifications can range from complete languages based on first order logics
[Anicic et al., 2010] to query languages which extend query standards like Sparql [Anicic
et al., 2011]. ESM tools make use of EPRs to trigger data gathering actions, but their
specifications offer low flexibility and don’t allow the creation of new operations past their
original definition. Because of this, our approach includes a new EPR specification.
Our EPR specification is recursive and allows the creation of complex EPRs com-
posed by unlimited events. Their base objective is to allow the evaluator to be able to
predict, analyze and gather data regarding any situation within the environment that
is associated with events. At its basis, every EPR instance has a root element which
is specified via the epr:hasRootElement property. The root can be either a simple
Event or an EventOperation, both of which are abstracted in the specification by an
EventRuleElement class. If the root of an EPR is a simple event, then it amounts to a
single occurrence of that event. On the other hand, if it is an event operation, the rule will
be fulfilled only when all included conditions are satisfied.
The EventOperation element represents all event operations within the specification:
the And, Or and Not operations which derive from first-order logic prepositions; and the
Delay and Repetition operations which provide a more functional approach. All of them
are able to receive other operations as arguments thus allowing recursivity. The speci-
fication is also extensible to new operations, but dictates that every non-abstract oper-
ation needs to implement the epr:hasRuleElement property which specifies the cardi-
nality of every operation. For instances, both the And and Or operations require two
EventRuleElement elements as arguments while the Not operation requires only one, both
of which are manifested by the epr:hasRuleElement property. The first possesses cardi-
nality two while the second possesses cardinality one. A visual representation of the EPR
base specification is presented in Figure 4.6.
Less common operations were also added in the specification. One such example is the
Delay operator which allows evaluators to include waiting periods within EPRs. The delay
is imposed from the time when the condition is fulfilled to when the actual operation is
triggered. This operator allows the evaluator to, for instance, include an interval between
the execution of an EPR and the start of a subsequent enquiry. It is applicable in cases
where the evaluator intends to impose a waiting period. To specify the interval, the
operation includes an epr:hasInterval property.
Another less common function is the ActiveTimeInterval. This function mandates
that the operation is only active for a given period of time. During that time, the associated
element (either an operation or an event) is active and, if it is fulfilled, the operator will
trigger. After the interval is surpassed however, the operation is considered as terminated.
In order to allow the trigger to be performed only at the end of the interval, we included an
additional property - epr:evaluatesAtEnd - to allow it. In this scenario, the associated
element may constantly change its status during the active interval and is only verified at
its end. Altogether, the ActiveTimeInterval operation allows the evaluator to analyze a
51
Event
Processing
Rule
epr:hasRootElement
Event
Processing
Rule Element
rdfs:subClassOf rdfs:subClassOf
epr:hasRuleElement
(only 1)
epr:evaluatesAtEnd
epr:hasRuleElement Event Event
Event Boolean
(only 1) Operation Operation
epr:hasRuleElement
ActiveInterval
(exactly 2) epr:hasInterval
Event
rdfs:subClassOf rdfs:subClassOf rdfs:subClassOf Operation Integer
epr:hasInterval
Delay
...
situation within a specific period of time. When linking EPRs with other elements, this
operation allows the evaluator to check if something happens during a span of time and,
if so, to trigger a subsequent action. Like the Delay operation, the ActiveTimeInterval
is also associated to the an epr:hasInterval property to define the interval.
Another less common operation which was added is the Repetition Operation. The
Repetition Operation allows evaluations to specify how many occurrences are needed
for a certain event or operation to be considered as fulfilled. To specify this, the operation
possesses an epr:hasRepetitionTimes property as well as a epr:hasInterval to define
the period of time in which these occurrences must occur. Together with the delay opera-
tion, these operations provide a helpful method to allow the detection of situations where
a number of events are detected within a specific time frame.
Both the delay and repetition operations are predicates. A predicate allows the inclusion
of variables which can be other than booleans but still produces a boolean result. In
our specification, we represent these types of functions as EventOperationFunctions.
Function operations make the EPR specification extensible and capable of receiving new
operations if so is needed. For example, in cases where it becomes necessary to inspect
Event parameters, new functions such as BiggerThan, SmallerThan or EquivalentTo
could be added to the EPR specification and used by the evaluator. Due to their specificity,
we choose to exclude these operations from the base EPR representation, thus including
only the most relevant and necessary ones.
When executing, an active EPR is the target of events which will constantly change
its state by fulfilling or not its operation’s conditions. Within an EPR, the occurrence
of an Event is treated like a True statement, while its non-occurrence represents a False
statement. Event operations represent prepositions, that is, boolean expressions which
associate multiple events. When an event occurs, the operation is verified and assumes
52
a True or False value according to its condition. It is also important to note that all
operations are verified initially. For instance, the Not operation is True at the start. More
aspects regarding EPR execution practices will be fully described in Chapter 5.
53
node independently of the domain that produced it. By parsing evaluation elements into
Executables (Tasks or Events), we are able to define a series of evaluation elements, and
through interfaces, to outsource their execution to a specific component (represented by
the interface) that applies it to the user.
A Task element represents the most basic execution element of a Compflow instanti-
ation. Each instance possesses an Input declared via cfw:hasInput, an Output declared
via cfw:hasOutput and one or more Interfaces declared via cfw:executedBy. Figure 4.7
illustrates this description.
cfw:hasInput cfw:executedBy
Input Task Interface
cfw:hasOutput
Output
In our evaluation scenario, it is possible to use the Task element as a way of defining
how should a Question element be executed. By extending the Input and Output elements
as Question and Answer elements respectively, we are able to create a Task that receives
a specific type of question and produces a specific type of answer without changing the
node itself. To assure that the elements are interpreted as required, the Task is associated
to a subclass of the Interface element. By establishing the interfaces as outsourcing
components, we are able to create a single execution structure supported by a modular
mechanism based on interfaces. We will dwell on this process in more detail in Section 4.6.
Figure 4.8 contains a more ample view of the Compflow specification. Every instance
of Compflow ontology is formed by a Job at its root. Besides the Executable elements,
Compflow is characterized by a Workflow element which groups Activity elements. A
Workflow represents a series of activities linked to one another in a deterministic manner.
An Activity represents an abstract class that can either be an Executable element or
a Gateway element. Gateway elements constitute decision points which can be applied to
both input - by waiting for two or more activities to be completed before executing - or to
output - by launching multiple activities. An optional element such as Priority can be
used to introduce a more direct control over the execution of the workflow, and the State
element is used to denote the status of an activity when in execution. The full Compflow
specification includes additional elements which we will not require and thus ignore.
Another important element of the Compflow specification is the Event class. It is
important to note that the Compflow Event is different from the Event class from before.
Unfortunately, we can not change the naming of the class as it is mentioned in the literature.
For this reason, we will refer to the control flow ontology event class as Compflow Event
54
Job Priority State
cfw:hasWorkflow cfw:hasState
cfw:hasPriority
cfw:hasFirstActivity
cfw:hasCurrentActivity
cfw:hasActivity
Workflow Activity cfw:transitionTo
rdfs:subClassOf
rdfs:subClassOf
rdfs:subClassOf
rdfs:subClassOf
Event Executable Gateway
cfw:executedBy rdfs:subClassOf
cfw:executedBy
Interface Task
rdfs:subClassOf cfw:executedBy
rdfs:subClassOf
EventInterface TaskInterface
as opposed to the event specification Event class presented before. The Compflow Event
class represents an operation with a specific input used within Workflows while the base
Event class represents an event occurrence used for EPR specifications.
55
this process creates the vocabulary which can be later used by evaluators to define new
evaluation scenarios. The second phase has the objective of making the added content
usable in the architecture and subsequently, in evaluation scenarios. The result of this pro-
cess is a set of association rules that will allow evaluation specifications to be automatically
transformed into execution specifications. Figure 4.9 illustrates the processes associated
with creating a domain language.
Domain Evaluator
Specification
Association Process Defines Used By
Association
Rules
Designer
By splitting the domain language into two: schema extension and association process,
we are separating the domain into two parts as well. The first is directed at evaluators
and consists on enabling them to create new evaluations using a set of elements defined
in a vocabulary. The second is associated with the execution of the evaluations, and
consists on deploying evaluations by transforming the evaluation into a language that
nodes universally understand. The main advantage of this approach is that evaluators are
spared from dealing with the deployment phase themselves, and the domain assumes that
step. This removes a strong logistical necessity from evaluators and allows them to focus
on the evaluation itself rather than its distribution and execution. In addition, the process
itself is automatic and is made using the domain language itself which also simplifies the
designer’s responsibilities.
On a different note, to easily comply with the following rules and create a correct domain
language, designers may resort to ontology creation programs like Protégé [Stanford Center,
2015] which verify ontology correctness, linkage between multiple ontologies and facilitate
multiple exporting formats.
56
with new evaluation elements that represent the domain’s scope and objectives. These
evaluation elements are concepts which can be individually introduced or be part of already
existing ontologies. By fusing the concepts with the base specifications (enquiry, event), the
designer is creating evaluation elements which will compose the vocabulary of the domain.
The result of this process, establishes the elements which evaluators are able to use in order
to create evaluation scenarios in the domain. Figure 4.10 illustrates this process.
Enquiry Extended
Enquiry Specification
Specification
Analyzes Extends
Event Extended
Event Specification
Specification
Domain
Concepts EPR Extended
Designer EPR Specification
Specification
The extension phase consists on expanding specific elements from the base specifications
with concepts related with the domain’s research areas. As an example, let us consider a
domain whose focus is Literature Habits. In this domain, the designer/evaluator’s objective
is to obtain information regarding the users’ habits about literature such as what type of
books they read, where they prefer to read them, in what kind of conditions do they read,
etc.. For this, the designer introduces the concepts Author, Book and Genre. The elements
however do not yet represent evaluation elements. They must be inserted into the existing
evaluation elements specification: either the enquiry or the event specifications.
57
Author domain:hasAuthor
rdfs:subClassOf
Recommend Feedback Author
Question
Question Question
rdfs:subClassOf
rdfs:subClassOf
rdfs:subClassOf
Genre domain:hasGenre
Feedback Genre
Question
backQuestion elements. Note that only elements who extend the main Question elements
via subclassing become qualified as evaluation elements of the domain’s vocabulary.
The Question extended specification describes the structure of our future questions.
While we choose to describe a simple specification as an example, other elements could
easily be included. The Book element could be linked to the Author via a hasAuthor
property or include elements like date of publishing, editor, number of pages, etc. Similarly,
the example follows a more semantical approach but the designer could also add a set of
properties focusing on other aspects like interaction. In that particular case, the designer
could include properties like hasContent, representing a text that should be present to
the user, or hasReproductionSpeed, indicating in case of a speech modality, the speed at
which the question should be presented.
While the Question extension describes the specification on which the evaluator will
create actual instances of enquiries for evaluations, the Answer extension describes the
structure which will store the content produced by the user, that is, how will the received
data be organized and structured. Following similar principles to the question extension
example, we present in Figure 4.12 an example of the Answer extension for the Literature
Habits domain.
For this example, we choose to create elements that counterpose the created question
elements. This is optional since the designer can go as far as creating a single class who
represents the entire answer structure. Nonetheless, we choose this method due to its
higher organization and overall understandment. As such, the AuthorFeedbackAnswer,
GenreFeedbackAnswer and BookFeedbackAnswer directly counterpose the AuthorFeed-
backQuestion, GenreFeedbackQuestion and BookFeedbackQuestion. Both the Genre-
FeedbackAnswer and BookFeedbackAnswer elements are linked to a Description element
via a hasDescription property. The BookFeedbackAnswer however is linked to a Rating
element. Both the Description and Rating elements are focused on the actual content of
the user’s feedback answer and less on other factors, like interaction. Once again, this is
58
rdfs:subClassOf Author
Recommend
Answer Feedback
Answer
Answer
rdfs:subClassOf
domain:hasDescription
rdfs:subClassOf
rdfs:subClassOf Genre domain:hasDescription
Feedback Feedback Description
Answer Answer
rdfs:subClassOf
Book domain:hasRating
Feedback Rating
Answer
merely optional.
Creating the enquiry specification does not place a limit on the created elements as
long as they extend the main classes - Question and Answer - as subclasses or by being
linked to elements who do so (either directly or transitively). The specification must also
be a correct ontology. In exception to these rules, the designer is free to include whichever
elements or concepts as he desires.
59
For this purpose, the designer introduces two new events: StartedReadingEvent and
EndedReadingEvent. The first indicates a precise time in which the user has started
reading while the second indicates when the user has finished reading. Remember that in
our approach, events are atomic by definition and as such it is more correct to produce two
events than a single one with an interval property (although also possible). Figure 4.13
illustrates the full resulting specification.
evt:hasTimestamp domain1:hasBook
rdfs:SubClassOf
rdfs:SubClassOf
Ended Started
Timestamp Reading Reading Book
Event Paper Event
rdfs:SubClassOf
domain1:hasBook
Ended
Reading
rdfs:SubClassOf Ebook Event
Ended
Reading
Paper Event
60
to vision a process which is capable of assessing which book is the user reading without
requiring the user’s intervention.
The subclassing mechanism also has a different role here in comparison to the Enquiry
specification due to the existence of the EPRs. If the designer later creates an EPR linked
to an event like the StartedReadingEvent, both the StartedReadingPaperEvent and
the StartedReadingEbookEvent will fit the EPR and might trigger it according to its
dependencies.
Like the Enquiry specification, the Event specification does not pose any limitation in
regard to which elements are linked to the added events, as long as they extend the main
Event class or are linked to elements who do so (directly or transitively). The specification
must also be a correct ontology.
61
specifications due to the diversity and independence of the domains, they are able to un-
derstand control flow instantiations natively. Phase two of the domain’s creation process
focuses on this connection by featuring an association between the extended specifications
and the control flow ontology.
The result of this association is the final domain language that defines evaluations in
the concept of the domain, that is, what assessment elements does it include in the form
of questions or events and also how will they be interpreted and executed in the domain’s
associated nodes. Figure 4.14 illustrates this process conceptually.
Domain Specification
Merges Produces
Enquiry Extended Control Flow Enquiry Domain
Specification Ontology Ontology
Merges Produces
Event Extended Control Flow Event Domain
Specification Ontology Ontology
In the figure, the Enquiry, Event and EPR specifications are associated with the control
flow ontology resulting in an enquiry domain ontology, an event domain ontology and an
EPR domain ontology. Globally, they constitute the domain language of the future domain
but while all three require an association with the control flow ontology, all of them follow
different processes.
4.4.2.1 Introducing control flow elements into the Enquiry extension specifi-
cation
In order to better explain the association process, we will once again resort to the
Literature Habits domain and use the resulting specifications from phase one. The extended
Enquiry specification featured two new types of Questions: a FeedbackQuestion and
a RecommendationQuestion. The former was also extended by three additional types:
an AuthorFeedbackQuestion, a BookFeedbackQuestion and a GenreFeedbackQuestion.
The association process requires the designer to associate each question type with a Task
element using the cfw:hasInput property. Figure 4.15 illustrates the result of this process
for our example.
The figure focuses on the FeedbackQuestion element and one of its descendants. In it, a
newly formed FeedbackQuestionTask receives the FeedbackQuestion as an input. Similar
processes should be made for the AuthorFeedbackQuestion, BookFeedbackQuestion and
62
Question Task Answer
Figure 4.15: Linking task elements with the Enquiry specification of the extension phase
to compose the enquiry’s domain language
63
cfw:isExecutedBy
cfw:isExecutedBy
Figure 4.16: Integrating interface elements within the enquiry’s domain language
To each added Task element, the designer must explicitly indicate which interface
or interfaces are responsible for interpreting that task’s input and output elements. In
the provided example, this is done by associating the FeedbackQuestionTask to the
FeedbackQuestionTaskInterface with the cfw:isExecutedBy property. This association
states that within this domain, the FeedbackQuestionTaskInterface is the responsible
for dealing with every task which is a FeedbackQuestionTask. Since the AuthorFeedback-
QuestionTask is a subclass of the FeedbackQuestionTask, then it is forcibly compatible
with the FeedbackQuestionTaskInterface. Optionally, the designer may also include
a timeout indication stating how long can a Task be active using the cfw:hasTimeout
property.
When dealing with an evaluation, a node will receive the corresponding domain’s spec-
ification and use it to process the received tasks. For each Task, the node will check which
interface (or interfaces) is (are) linked to it and make a request to the interface with the
corresponding input information. The interface then processes the request and replies with
an output structure which must correspond to the Answer specification that the Task is
linked to as its output.
4.4.2.2 Introducing control flow elements into the EPR extension specification
EPRs follow a different approach to the Enquiry specification. Chapter 5 explains the
node’s architecture in detail but for comprehension purposes it is important to anticipate
that, within a node, EPRs are processed by an individual component called the EPR
Engine. As previously explained, the node’s main component (who controls the node) is
only able to interpret Compflow representations for compatibility purposes, relying on the
interface mechanism for input and output processing. Because of this, the EPR Engine
is seen by the main component as an interface and requires an explicit indication within
64
the domain’s specification. Due to this, the designer must associate the extended EPR
ontology like he did for the Enquiry with the indication of the interface that interprets it.
Contrarily to the Enquiry specification, the EPR resulting ontology is only composed
of a single association and does not change from domain to domain unless changes are
made in the node’s architecture. Because EPRs represent passive assessment instruments
within evaluation assessments (contrarily to Enquiries who represent direct assessment
instruments), they are linked with Compflow’s Event element within the EPR domain
ontology. Figure 4.17 shows this ontology.
Compflow cfw:isExecutedBy
Event Interface
Event
rdfs:subClassOf rdfs:subClassOf
In the figure, the CompflowEvent class is extended into an EPREvent class and linked to
an EPRInterface. This association indicates to the node’s main component that all EPRs
are processed by the EPRInterface which is the EPR Engine. Despite being composed
by multiple events, the ocurrence of the EPR is seen by the node’s main component as
a single event, the EPREvent. As such, the EPR itself will be given to the node as the
input of the EPREvent class and eventually passed to the interface - the EPR Engine. It
is the responsibility of the EPR Engine to process all events within the node and create
an instance of the EPREvent when the EPR is considered completed. This instance is
then used by the node’s main component to advance within workflows and process ongoing
evaluations.
4.4.2.3 Introducing control flow elements into the Event extension specifica-
tion
In our model, enquiries represent direct assessment instruments while EPRs represent
indirect/passive assessment instruments. EPRs are defined as a combination of events
and event operations which can range from a single event to a complex combination of
elements. Because events are part of EPRs, we decided that events should be indicated
within evaluation assessments always as a part of an EPR and never on their own. While
this has no consequence to the evaluator, by using this definition, we are able to link events
with the EPR Engine on the nodes, thus concentrating the detection of events on a single
component.
65
In regard to the specification, this definition is a major difference. While EPRs and
enquiries have inputs and outputs, events do not. By being specified as part of EPRs,
events can be only considered when EPRs are active and since they do not require an
input, interfaces are not appropriate. Nonetheless, it is necessary to specify who creates
the event, and to do so, we introduced the notion of an atomic event producer which
represents a software component that creates events.
In our approach, interfaces and producers have very different objectives. An interface
is something that receives requests which it interprets, processes and returns a result. It
possesses an API which others may use to contact it. EPRs and enquiries require this
in order to execute accordingly. A producer however is a mere content creator. It does
not need to receive requests and as such, applies a unidirectional communication method.
This decision will be important when discussing the architectural aspects of our solution
as producers and interfaces have different methods of operation inside nodes.
In regard to the association process, the designer still has to associate each event of the
event extended specification to an event producer via the cfw:isExecutedBy property. In
this association, every event producer must be a descendant of the AtomicEventProducer
class (which belongs to the Event ontology). The resulting event domain ontology will
later be used to explicitly indicate to the node which producers does it require in order to
be compatible with the domain.
66
simple enquiry.
The process of creating an evaluation specification was started at the previous section
when the domain’s vocabulary was defined. The elements on the vocabulary however are
abstract, or in other words, they are similar to classes within programming. To use them in
actual evaluations, evaluators must create instances of these elements and establish actual
questions and EPRs. Note that, much like a class, instances may differ in content but will
follow the same procedure of the mother class when executing. The result of this process
is a set of instances which evaluators can utilize to build a set of evaluation assessments
following the assessment ontology specification. Figure 4.18 illustrates the involved steps
for creating an evaluation specification.
Evaluation +
Evaluation
Assessment
Ontologies
Creates Selected In
Enquiry Extended Enquiry
Specification Instances
Evaluation
Specification
Creates Selected In
EPR Extended EPR
Specification Instances
Evaluator
The figure represents the steps involved with creating an evaluation specification. To
better explain this process, we now present each step for creating and applying the eval-
uation specification in detail, starting with the evaluation and evaluation assessment on-
tologies.
67
eval:hasCreator eval:hasEvaluation eval:hasUser
Evaluation
Evaluator Evaluation User
Instantiation
eval:hasStartDate
eval:hasEndDate
Timestamp
68
eval:hasEvaluation
Evaluation
Evaluation
Instantiation
ast:hasEvaluation
ast:hasEvaluation
Instantiation
ast:hasEvaluation
Assessment Evaluation
Evaluation
Assessment
Assessment
Instantiation
ast:hasFirstElement
ast:represents
Evaluation
ast:followedBy Assessment Evaluation Item
Element
rdfs:subClassOf rdfs:subClassOf
Event
Enquiry Processing
Rule
included, evaluators will be able to add them without changing the entire specification.
It is also important to note that assessments can be applied at a single moment of the
entire evaluation, periodically while following a schedule, or dependent of a certain action
or event.
69
Figure 4.21. In it, the BookFeedbackQuestion is associated to a BookFeedbackQuestionA
and BookFeedbackQuestionB by an rdf:type property, specifying them as instances. To
enhance the example, we also added a Title element to the Enquiry extended specification
and much like the BookFeedbackQuestion instances, Book and Title instances were also
included.
rdf:type enq:hasTransitionTo
rdf:type rdf:type
In the example, we are creating two actual questions. One of the questions is associated
with the “Pride and Prejudice” novel while the second concerns the “Brave New World”
book. Both of them answer to the base BookFeedbackQuestion class correctly and can be
used by evaluators within any evaluations belonging to this domain. Our base evaluation
assessment specification was not designed to receive individual questions but only EPRs or
enquiries and as such, the questions must be contained within an Enquiry element. This
decision was made to maintain a direct correspondence between the evaluation assessment
elements and the Compflow elements but can be changed if necessary.
Since the Enquiry extended specification from before did not include any subclasses to
the Enquiry class, we have created an instance of the base Enquiry class, which we called
EnquiryA. To adhere with the base Enquiry specification, the enq:hasFirstElement and
enq:hasTransitionTo properties were also included and linked to the question instances.
The enq:hasFirstElement indicates which question is the first to be executed within the
Enquiry while the enq:hasTransitionTo links each Question element to the next, giving
them an executing order. In the example, the BookFeedbackQuestionA is constituted as
the first element of EnquiryA and is followed by the BookFeedbackQuestionB.
This example provides a complete enquiry - EnquiryA - which becomes available for
inclusion in every evaluation that belongs to the domain.
The creation of an EPR instance focuses on the association between operations from the
EPR’s extended specification and Event classes from the Event specification. To exemplify,
70
we will create an EPR instance with the objective of determining if a StartedReading-
EbookEvent or a StartedReadingPaperEvent are produced between 19:45m and 20:45m
on the 12th of September of 2015. We choose this example in order to include operations
from the base specification, operations from the extended EPR specification and events
from the Event extended specification.
For this example, we instantiated the EPR class with an EPR A element to represent a
specific EPR instance. At the top of the EPR, we introduced an EventOperationSchedule
instance and specified the start and end timestamps as required by the operation’s spec-
ification. Then, we used the epr:hasRuleElement property to link the operation to its
argument. Since we want the EPR to be triggered if either the StartReadingEbookEvent
or the StartReadingPaperEvent occur, the option fell on the OR operation. Then and
once again by using the epr:hasRuleElement, we linked the OR operation to the base
events. The result of this process is shown in Figure 4.22. Despite not being represented
in the figure, all operation instances are associated with their respective classes via the
rdf:type class.
Event
Processing
Rule
epr:hasStartTimestamp
rdf:type 12/09/2015
19h:45m
Event
Operation OR
A
epr:hasRuleElement epr:hasRuleElement
Started Started
Reading Reading
Ebook Event Paper Event
The construction of EPR instances is simple and mainly based on linking operations
between one another with the epr:hasRuleElement property. The only rule for EPR
creation is that all operations must be instantiated in accordance with their specification.
Events do not require instantiations and should be included directly into the instantiation.
Also note that certain EPR instantiations can later result in impossible situations. This
71
must be verified by the evaluator, and is considered a valid EPR instantiation if it abides
by the EPR specification.
Like in the Enquiry instantiation, the result of this operation produces an EPR instance
- EPR A - which can be used within every evaluation of this domain.
72
rdf:type
Evaluation Evaluation A
ast:hasEvaluation ast:hasEvaluation
rdf:type Evaluation
Evaluation
Assessment
Assessment
A
ast:hasFirstElement ast:hasFirstElement
ast:followedBy
Evaluation ast:represents
Assessment Enquiry A
Element A2
the evaluation.
73
the same incremental methodology but a generation process based on the domain language
where each assessment on the evaluation specification will result in a generated execution
specification. The full set of execution specifications represents the evaluation sent to the
node. Figure 4.24 illustrates the method.
Scheduling
Properties &
Users
Evaluator
Parsed
Through
User
The figure shows the process of instantiating an evaluation to a set of users. The figure
illustrates the transformation process from the evaluation specification into a set of exe-
cution specifications using the domain language and the control flow ontology. Remember
from the previous section that besides the vocabulary, the domain language also encom-
passes a set of association rules that link enquiry and EPR elements to control flow classes.
Those rules establish a direct correspondence between elements like Question, Answer or
EPR elements to control flow elements like Task, Event or Workflow which form the basis
of what the node is able to interpret. The transformation process uses these associations -
as well as other control flow ontology elements - to generate an execution specification from
an evaluation assessment (in the evaluation specification). The result is a specification that
is independent from the domain and understandable by all nodes in the infrastructure.
While an evaluation specification is a generic representation of an evaluation, each
execution specification targets a single user. The reason for this is that each execution
specification does not only specify the content of an evaluation assessment in an under-
standable format for the node but will also become the repository for gathered data. In
other words, nodes will not only read the specification to know how to apply the evaluation
but also write in it, thus placing the gathered data in the same structure. Once again, this
method guarantees a generic treatment to gathered data in the nodes without breaking
the architectural support. In execution, results can be added as each evaluation element is
filled and evaluators become able to access the specification and analyze results from the
assessment without disrupting the evaluation. In addition to the actual results gathered
74
from interacting with the user, the usage of the control flow ontology as a basis for the
specification becomes also a source of new data as information related with the application
of the evaluation itself is stored as well.
In this section, we will describe the process of creating the execution specification for
an evaluation. It is important to note that within the architecture the process will be
automatic, thus not requiring any human intervention.
eval:hasStartDate
eval:hasEndDate
eval:hasEvaluation eval:hasUser
Evaluation
Evaluation User Timestamp
Instantiation
rdf:type rdf:type
eval:hasUser
eval:hasEndDate
The example includes two users who will participate in the evaluation, UserU1 and
UserU2. To signalize this specific evaluation, the element EvaluationInstantiationA1
is associated with EvaluationA as an instance of it. Associated to the instance are also
two timestamp elements via the eval:hasStartTimestamp and eval:hasEndTimestamp
properties.
75
It is important to denote that evaluation assessments from EvaluationA are also in-
stantiated and associated with EvaluationInstantiationA since they are relative to that
evaluation’s occurrence in particular and not to the evaluation’s specification. This pro-
cess however is no longer relative to the evaluation’s specification but to its execution
specification.
76
eval:hasStartDate
ast:hasEvaluation
eval:hasEndDate
Instantiation
Figure 4.26: Creating assessment instances for a single user within a single evaluation
instantiation - EvaluationInstantiationA1
77
Evaluation Evaluation
Assessment Instantiation User U1
Instantiation A1
ast:hasEvaluation
Evaluation Assessment cfw:hasJob cfw:hasWorkflow
Workflow
Assessment A_A1_U1 Job A_A1_U1
A_A1_U1
A
Figure 4.27: Creating a bridge between the evaluation assessment and the execution spec-
ifications
is introduced, - EPREvent A A1 E1 - which receives the EPR A as its input and is executed
by the EPRInterface.
The second element of the assessment is the EnquiryA. The enquiry is seen as a con-
tainer element. An Enquiry element (or any of its subclasses) becomes the input of an
EnquiryWorkflow instance by definition. Despite not being in the domain language, this
association is fixed and will later permit evaluators to obtain data regarding the enquiry
itself (and not its questions) through the workflow’s instance.
Question elements follow a similar process to EPRs. According to the class of the
Question, the corresponding Task element from the domain language is instantiated and
associated with the Question via the cfw:hasInput element. In the example, the enquiry’s
first question is the BookFeedbackQuestionA. As a result, a BookFeedbackQuestionTask
instance is produced and linked to the question and its associated interface, Feedback-
QuestionTaskInterface. The same is done to the final element of the enquiry, the
BookFeedbackQuestionB.
To adhere with the control flow ontology specifications, two additional properties have
to be considered: 1) the first element of every Workflow must be associated with the work-
flow with the cfw:hasFirstActivity element. 2) every element within a Workflow must
be separated by the cfw:isFollowedBy property is accordance to the association between
the corresponding elements of the assessment (represented by the ast:followedBy prop-
erty). The resulting execution representation for EvaluationAssessmentA is illustrated in
Figure 4.28.
At the end of this process, an execution specification is formed containing execution rep-
resentations for all assessments which belong to the selected evaluation. This specification
will then be sent to a node where it will be applied to the user.
4.7 Summary
In this chapter we explained the underlying specifications which are associated with
our proposal. We explained our evaluation model which ranges from a set of predefined
ontologies to a fully compatible and generic execution specification. Throughout the chap-
78
Evaluation Evaluation
Assessment Instantiation User U1
Instantiation A1
rdf:type
eval:hasEvaluation eval:hasUser
Instantiation (exactly 1)
ast:hasEvaluation
Evaluation Assessment cfw:hasJob cfw:hasWorkflow
Workflow
Assessment A_A1_U1 Job A_A1_U1
A_A1_U1
A
ast:followedBy cfw:isFollowedBy
cfw:hasInput rdf:type
Book Feedback Feedback
Book Feedback BFQTask
Question Question Task
Question A A_A1_U1_T1
Task Interface
enq:hasTransitionTo cfw:isFollowedBy
rdf:type
cfw:hasInput
Book Feedback BFQTask
Question B A_A1_U1_T2 cfw:isExecutedBy
Figure 4.28: Creating control flow instances for the Evaluation Assessment A within a
single evaluation instantiation - EvaluationInstantiationA1
ter, we explained the decisions which lead to the creation of such a model as answers to
the constrains of dynamic and flexible evaluation support. The resulting model allows
evaluators to include new evaluation elements or simply reuse existing ones and it allows
designers to create domains according to their ideas and objectives.
To provide the necessary flexibility and still guarantee its applicability, the model uses
ontologies for its specifications. The usage of ontologies not only safeguards aspects like
flexibility and diversity but also provides a unified data structure which is transversal to
the entire architectural proposal. By using ontologies, the model also gains an unlimited
life span as new evaluation methods can be incorporated into the model without changing
its core definitions.
In the next chapter, we will explain the architectural definitions that implement this
model and provide designers, evaluators and users with a ready environment for evaluation
development.
79
80
Chapter 5
5.1 Requirements
In Chapter 3, we have introduced the concepts of domains and nodes as the base
elements of a conceptual architecture for evaluation support. We characterized a node as a
resource centered on a single user and described him/her according to interests, preferences
and environment definitions. We characterized a domain as a dedicated evaluation network
based on specific criteria, a domain language and an application scope. By joining them, we
described an evaluation approach where domains are linked with nodes that are compatible
with them and become able to receive context-aware evaluations. To achieve this approach,
it becomes necessary to materialize it into a software architecture.
To create a global evaluation platform, the architecture must allow domains and nodes
to be included rapidly and without changing the existing infrastructure and its integrity.
The creation of evaluations and evaluation networks should be facilitated by allowing
evaluators to focus on the design and content of the evaluation and delegate operations
regarding distribution and execution to the architecture. Results from ongoing evaluations
should be accessible on-demand.
The architecture must allow evaluations to be performed on low processing devices,
such as smartphones, by having computational necessities fulfilled in the cloud or in private
servers if necessary. It must allow a user to be associated to several locations and several
devices, which altogether form a single abstract environment where evaluations can be
performed. Domains should be able to reuse elements such as specifications or software
components from other domains. Evaluators must be given tools to find existing domains
which are ready to be used.
81
5.2 Architectural Proposal
Our architectural proposal is strongly coupled with the evaluation model specifications
explained in Chapter 4. Following the incremental approach of the model, domains and
nodes become software components in a global network supported by a set of specific
services which guarantee the functioning and safety of the entire model.
From an organizational standpoint, we propose a distributed architecture inspired in
Service Oriented Architecture (SOA) practices. Nodes and domains become software el-
ements which are seen by the architecture as services accessible through communication
APIs. To support them, the architecture is surrounded by a Support Unit which includes
auxiliary services to which nodes and domains can resort to for several operations. Resum-
ingly, from a bottom-up perspective the architecture is composed at the bottom by nodes
representing users that can become subjects for evaluations. In the middle, the support
unit layer assures the connection of the nodes with the architecture and guarantees their
anonymity by storing their actual locations and other properties. Above this layer are
virtual domains in which evaluators may create and apply evaluation scenarios following
the domain’s criteria and specifications. Finally, and also linked to the support unit, an
Evaluation Hub provides designers and evaluators access to certain functionalities related
with the infrastructure such as registering new domains or searching for existing ones using
certain criteria. Figure 5.1 illustrates the design of the architecture.
EVALUATION HUB
SUPPORT UNIT
The choice of a SOA model is mainly based on its ability to easily include or exclude
elements without endangering the entire architecture. By guaranteeing the stability of the
support unit, nodes and virtual domains can be defined in any location, and be added to
82
the architecture without much effort. In the case of virtual domains, they can even be
placed in the cloud since they do not require the physical presence of the node. Using
a middleware approach (with the Support Unit) guarantees that the extensibility of the
architecture is assured by the infrastructure itself and not its components, thus removing
complexity from both users, evaluators and designers.
In our definition, nodes and virtual domains are not dependent of the infrastructure.
They are independent components that can be dynamically added or removed from the
architecture. In the case of a node, the correspondent user is the responsible for its setup
while in the case of a virtual domain, that responsibility falls over the domain’s design-
er/owner. To be added to the infrastructure, the nodes and virtual domains must fulfill
a set of specifications and be registered within the Support Unit registries. When regis-
tered, they are considered as elements of the architecture and become eligible for evaluation
practices.
The stability of the infrastructure is assured by the support unit. The support unit is
composed by a set of services with the objective of assuring the correct operation of the
entire infrastructure. For this, the unit includes services such as the virtual domain registry
and the node registry services, with the objective of masking nodes and domains from each
other and assuring their anonymity in the infrastructure; services such as the evaluation
mediation and association services establish communications between nodes and virtual
domains, and services like the attribute service guarantees a unified approach to criteria.
Altogether, the support unit interconnects the entire infrastructure.
Before, we stated that nodes can be part of a domain as an element of the domain’s
evaluation network. Following this premise, each virtual domain is linked to a set of nodes
which are compatible with its definitions. The compatibility process is assured by the
support unit - based on its registries - and consists on matching nodes and domains in
regard to the domain’s ontology, the criteria and the user’s interests. If a node supports
(or is able to support) a given domain, an installation process is started which consists on
preparing the node for the domain. At the end of the process, the node becomes part of
the domain’s evaluation network and can be the target of evaluations from that domain.
Overall, the architecture is based on a separation between nodes, domains and the
support unit which configures a decoupled approach with advantages for all stakeholders.
Evaluators can focus on evaluation definitions and scenarios. Users can focus on their
context, their interests and participating on evaluations. The support unit focuses on
facilitating both node and virtual domain inclusions, providing support services for them
and dealing with infrastructural aspects like availability and expansibility.
In order to operate the architecture and assure the well functioning of the entire pro-
posal, we identify four main stakeholders: user, evaluator, designer and the administrator.
• User - The user participates in the evaluations and provides data that is used by
evaluators to establish conclusions. The user represents an evaluation resource per-
sonified by a node.
• Evaluator - The evaluator is responsible for creating and launching evaluations and
later analyzing evaluation results. It is the target of the virtual domain concept.
83
• Designer/Owner - The designer is the responsible for creating new virtual domains.
The main difference to an evaluator is that evaluators use virtual domains, while a
designer creates and maintains virtual domains by specifying the domain language,
its criteria and application scope.
In the following sections we will describe the elements which compose the architectural
proposal in more depth and how they apply the evaluation methodology and its model.
In order to facilitate the exposure of the concepts, we will start by explaining the Virtual
Domain element due to its lesser dependence in regard to the other elements.
84
nodes which may become subjects of evaluation for a given domain thus facilitating the
evaluator’s job in finding them. Altogether, the criteria establishes an evaluation domain’s
evaluation network.
In the infrastructure, VDs can assume public or private definitions according to its
designer objectives. In public profiles, VDs are accessible to all evaluators and their spec-
ifications can be reused freely by other designers. Users who may find the VD interesting
can solicitate their association with the VD and become part of the domain’s network if
they fulfill all requirements. In private profiles, the VD does not allow user associations
to occur by user initiative, the specifications are not publicly available and evaluators can
only access the VD with proper authentication. In order to establish a middle ground
between these settings, VD designers may also declare the VD as an invite-only domain,
thus being able to receive requests for either user association or evaluator accesses. In
order to know these aspects and be able to apply these constrains, every VD must register
its existence before the infrastructure using a specific registry service. The registration not
only consists on the indication of its profile status but also the domain’s criteria and the
domain language. Based on the declared information, the support structure of the archi-
tecture will react and apply the necessary procedures to ensure the proper functioning of
the VD.
85
SUPPORT UNIT
VIRTUAL DOMAIN
VIRTUAL DOMAIN
DOMAIN MANAGER
DATA PERSISTENCE
UNIT
EVALUATION
MODULE
86
facilitates the creation of the VD and, in a way, guarantees the interoperability between it
and the infrastructure.
The creation unit has the objective of facilitating the creation and design of new eval-
uations for the domain. The unit is based on two main areas of operation: the creation
of instances for the EPR and Enquiry specifications, and the creation of evaluation as-
sessments. Both of these areas are based on the processes from Section 4.5.2 and 4.5.3
respectively of the evaluation model. In itself, the unit abstracts the ontological aspects of
the specifications by focusing only on retrieving the necessary content from the evaluator
using an UI.
87
SUPPORT UNIT
DOMAIN MANAGER
DATA PERSISTENCE
UNIT
EVALUATION
CREATION
UNIT
EVALUATION
INSTANTIATION
UNIT
EVALUATION
RESULTS
UNIT
EVALUATION MODULE
VIRTUAL DOMAIN
In order to exemplify the procedure regarding the Enquiry specification, we will resort
to the example of Section 4.5.2 based on the literature habits domain. In the enquiry
specification example, to create a question regarding the user’s feedback of a book, we
needed three elements: BookFeedbackQuestionA, BookA and a title, “Pride and Prejudice”.
In addition to the elements, we linked the elements using properties from the domain like
domain:hasBook, domain:hasTitle and enq:hasFirstElement. In all, we created an
instance for the BookFeedbackQuestion.
In order to simplify this process, we can divide it in what can be filled automatically
and what must be filled by the evaluator. For this example, only the title of the book
does in fact require the evaluator’s input. The other elements can be easily generated
using the base specification as a set of rules for associating the necessary properties and
a random ID generator for the classes’ instances. Regarding the enquiry itself, the eval-
uator could specify the order of the questions through a drag and drop approach. The
creation unit then automatically creates the associations between the question elements
using the enq:hasTransitionTo and links the first element to the enquiry instance using
the enq:hasFirstElement property.
Note that this example is merely a suggestion of how can the domain designer/owner
88
approach the evaluation model mandatory processes and create an UI which simplifies the
evaluators task. This is possible because every VD is based on a domain language that
is immutable. A domain can create new evaluations, but the evaluations always follow
the incremental nature of the evaluation model and thus, automatically comply with the
domain language. Similar steps can be taken in regard to the EPR specification and the
assessment creation UIs. Later on, in Chapter 6, we will provide an example of a creation
unit built for a specific domain using these recommendations (see Section 6.1.2.2).
89
phase and has the objective of facilitating the consultation of results from the execution
phase of the evaluation.
In Section 5.4.2, we will explain the process associated with the execution of evaluations
at the nodes in detail. In the context of the results unit, we will focus on the results of the
process. After an evaluation is executed at the node, the data is returned to the domain.
The data is mainly composed by instances of the EPR and Enquiry extended specifications
and execution data regarding the process itself declared in control flow ontology elements.
As said before, data is returned to domains inside the original execution specifications.
During the execution process, gathered data is linked with the original structures that
define the procedure to facilitate both the persistence of the data and its analysis as well.
In regard to EPR data, the node uses the EPR specification and associates triggered
events with the corresponding Event class elements. In regard to the Enquiry specifica-
tions, gathered data is instantiated in accordance to the Answer specifications. On both
situations, the results comply with the specifications of the domain. As such, the designer
knows before hand what type of results it may obtain and is able to create UIs that allow
evaluators to visualize data either graphically or in a more treated way in comparison to
the ontological format. In addition, the designer can provide analysis tools that compare
multiple execution specifications or apply analysis algorithms over them.
Once again, this unit is not mandatory as results are embedded in the execution spec-
ifications and can be analyzed simply through them.
90
specification and in accordance with its own processing routines.
When constructing the VD, each declared interface or producer of the domain’s ontology
must exist as a software component. These components are fundamental to the execution
of evaluations as they interpret the actual content of evaluations and retrieve data from
the user. The components actually also represent the structural criteria of the VD and
must be part of every node who belongs to the domain’s evaluation network. By assuring
that the node possesses all interfaces/producers of the domain language, it is guaranteed
to evaluators that the node will be able to handle every evaluation from that domain.
Interface and event producer components are deployed into nodes during the association
process between a node and the VD (see Section 5.5.5). When installed, every interface has
to register itself in the node’s interface manager in order for the node to know the location
of the interface and communicate with it during evaluations. By its part, every producer
must register itself in the event logger. When doing so, the node uses the interface’s ID
from the domain language to identify and verify the component(s).
The implementation of an interface or a producer can be done using any language and
can only be created by the domain’s designer since it is based on the domain language.
The internal processing of the interface/producer is unknown by the architecture, as it
operates like a black box. Security issues can be raised by this, but it is important to note
that the component is only installed on the node by the user’s choice.
Domain interfaces and producers are not a part of a VD implementation but are manda-
tory requirements for its successful operation. They are registered in the architecture’s do-
main registry along with the domain’s ontology and criteria. The full registration process
of a virtual domain will be explained later on. To explain the implementation process of
an interface/producer, following are some examples using the literature habits domain.
91
Input Feedback Question Output
Task Interface
This endpoint allows the node to communicate with the interface and start or cancel
ongoing tasks. The communication itself should be performed using serializable formats.
Subscriber A
Subscriber B
Figure 5.5: Example of an event producer communicating with the event logger
92
EPRs subscribe to the logger to receive associated events when active. When they
become inactive, they simply unsubscribe their respective events. The registration itself is
made using the Event full URI (ex.: http://domain1#StartReadingEbookEvent). It is also
important to note that an event component can be associated with more than an event,
and as such can produce more than one type of event if so necessary depending on the
domain language. In our definition however, an Event can not be produced by multiple
event producers as it might bring inconsistency into the evaluation. In the scenario of the
same action being detected by two producers, it could result in two different events that
mean the same occurrence. A compatible and simple solution would be to synchronize all
event producers and manifest the event only through one. In regard to communications,
event producers connect with the logger using standardized messages.
93
the original domain language is extended to a new domain language, the same can be done
regarding the virtual domains.
This mechanism can be helpful for developers as every interface/producer that was im-
plemented for the original virtual domain can be reused in the new. In such a scenario, the
developer of the new virtual domain only has to implement the new interfaces/producers
and the UIs that extend the original virtual domain. The mechanism can be important for
reducing the implementation times of VDs and facilitating their proliferation.
5.4 Node
A node is a software component that represents a user to whom evaluations can be
applied. The component is seen by the architecture as an autonomous service linked to
the support unit and administrated by a single user, its correspondent user. Conceptually,
a node personifies a single user and its environment as an abstract location where evalua-
tions can be executed while accounting for contextual changes. To virtual domains, nodes
represent evaluation targets by being part of evaluation networks who establish them as
suitable for receiving evaluations.
Each node can be part of multiple evaluation networks at the same time. To assure that
a node is compatible with a domain, the node features an expansible structure which is able
to include new components (interfaces and producers) as extensions of its core features.
Regarding evaluations, nodes apply execution specifications which result from instantiating
an evaluation specification at a VD, and interact with the user and the environment to
gather the necessary data. Resulting data is added to the specifications and returned to
the VDs for posterior analysis.
A node includes several modules who cooperate to apply evaluations to the user. At
its core, the node features an evaluation engine responsible for processing execution speci-
fications. To aid it, the node includes three assisting modules: the EPR Engine, the Event
Logger+Dispatcher and the Interface Manager. The EPR Engine and the Event Logger
are responsible for event-handling in the node while the Interface Manager is responsible
for managing third-party components - the interfaces. To store evaluation data, the node
features a data persistence unit and to store data regarding user preferences, characteristics
or other elements associated with criteria, the node includes two components: the user and
context models. Finally, to connect the node with the architecture, the node includes a
Node Manager which handles all communication between the node and the support unit.
Figure 5.6 illustrates the node design structure.
Evaluations are created in domains and sent through the support unit to the associated
nodes. They are received by the node manager who verifies if the evaluation corresponds to
an associated domain. If so, the node manager delivers the execution specification to the
evaluation engine (according to its associated schedule). From this point on, the evaluation
is considered as being in execution. The evaluation engine applies the received specification
and delegates to the Interface Manager the routing of either Tasks (to Task Interfaces)
or Complow Events (to the EPR Engine). When all specifications are completed (or the
94
SUPPORT UNIT
NODE MANAGER
DATA PERSISTENCE
UNIT
EVALUATION ENGINE
EPR ENGINE
USER MODEL
INTERFACE MANAGER
EVENT LOGGER
CONTEXT MODEL
+DISPATCHER
INFRASTRUCTURE
NODE
95
accessible locally. Modules can be split by several locations and still operate accordingly
as long as communications are assured. For example, the main node manager can be a
software module on the cloud, the evaluation module a component at the user’s home, the
persistence unit on a distributed server, and so on. The goal is for the architecture to be
sufficiently modular in order to be adaptable to the user’s circumstances and still be able
to guarantee the correct execution of evaluation scenarios. To achieve this, all modules
possess specific communication APIs.
96
5.4.2 Evaluation Engine
The evaluation engine is the main execution module of the node, responsible for manag-
ing and applying evaluations to the user. The module is based on the control flow ontology
and uses the domain’s ontology to parse incoming evaluations. As seen in Chapter 4, each
evaluation is traduced to an execution specification and it is the evaluation engine’s re-
sponsibility to apply the specification step by step in order to obtain data from the user.
To do so, the module is linked to three other components, the persistence unit, the node
manager and the interface manager.
The module is associated with the node manager in order to receive evaluations to
execute. Since the manager is the entry point of the node, it is the manager who makes
execution requests to the engine. In similar manner, the engine can also receive requests
to cancel ongoing evaluations.
In the persistence unit, the engine stores all data that is gathered during the evaluation’s
execution. The data is saved in ontological format, and follows an incremental approach
to the corresponding execution specification which lead to its gathering. In other words,
the engine stores obtained data as the output of the control flow element that produced
it, like a Task or an EPREvent.
The association between the interface manager and the engine is fundamental to the
execution of evaluations. When parsing a Task or a Compflow/EPREvent, the engine del-
egates the interpretation of its input to the corresponding interfaces. In this regard, the
engine contacts the interface manager who is able to contact any interface in the node, and
requests the delivery of the input to the interface. In the same way, when the interface
completes its task, the interface manager alerts the engine so that it may proceed in the
workflow.
When a task or an event ends, the result is sent to the engine as output, which the engine
associates to the execution specification using the cfw:hasOutput property. It is important
to note, that every action taken by the engine is stored using timestamps and other de-
scriptive attributes. Timestamps are added to control flow instances - Task, Compflow/EPR
Event, Workflow - and indicate when was the element executed or started. As the en-
gine advances through each element, the process marks its State as ‘In Progress’,
‘Finished’, ‘Canceled’, ‘With Error’ and ‘Timed Out’ depending of its execution.
All of these can be accessed by evaluators as they become part of the results.
97
the workflow and finds its first element using the cfw:hasFirstActivity property, an
EPREvent, the EPREvent A A1 E1.
Job A_A1_U1
cfw:hasWorkflow
Workflow
A_A1_U1
cfw:hasFirstActivity
cfw:hasInput cfw:isExecutedBy
EPR Event EPR
EPR A
A_A1_E1 Interface
cfw:isFollowedBy
cfw:hasInput Enquiry
Enquiry A Workflow
A_A1_U1_W1
cfw:hasFirstActivity
cfw:isFollowedBy
cfw:isExecutedBy
cfw:hasInput
Book Feedback BFQTask
Question B A_A1_U1_T2
The entire process is iterative. When it finds an EPREvent, the engine knows that
according to the domain language, the element possesses an EPR as input. The engine
checks which interface resolves it and contacts the Interface Manager component in order
to redirect the EPR to the corresponding interface. Since the EPR Event is associated with
the EPRInterface, the node annexes EPR A - its input - as an argument to the request and
sends it to the Interface Manager.
When the engine delegates either a Task or an EPREvent to the interface manager, the
element is considered ‘In Progress’ and the process stays on hold. The engine waits for
the interface manager to answer the request and when it does so, the answer is associated
to the corresponding element as an output. In some situations, it may not exist an output
as it may not occur in time (‘Timed Out’), it might be canceled (‘Canceled’) or a failure
may happen (‘With Error’). If either of these happen, the execution ends. If on the
contrary, all goes well, the resulting output is received by the engine, it associates it to
the element using the cfw:hasOutput element, denotes that element ended with success
(‘Finished’) and continues the workflow.
98
In the example, after executing the EPREvent A A1 E1, the engine checks the cfw:is-
FollowedBy property and finds another Workflow. Once again, the engine checks its first
element, and finds a BFQTask1 associated to a FeedbackQuestionTaskInterface. The
engine repeats the previous process and sends a request to the interface manager with the
indication of the interface (or interfaces) and its input and waits for an answer. Upon
receiving it, it associates the answer to the task and continues the workflow. Figure 5.8
shows an example of the result from both BFQTask elements.
domain:hasRating Book
12/09/2015
Rating Feedback
20h:05m:30ss
Answer
cfw:hasStartDate
rdf:type rdf:type
cfw:hasState
cfw:hasCompletedDate
12/09/2015
'Completed'
20h:06m:42ss
In the figure it is possible to observe that associated to the Tasks are now two new an-
swer elements, BookFeedbackAnswerA I1 and BookFeedbackAnswerB I1 via the cfw:has-
Output property. In each of them is data which resulted from applying the task to the user.
In this example, the data corresponds to two Rating elements linked to the base answer
elements. Note that the structure follows the Answer specification from Section 4.4.1 on
which this example was based.
The evaluation engine supports concurrent evaluations as it handles each execution
specification individually. The coordination between multiple and active evaluations how-
ever is not handled by the engine itself, and is left to the user. Overall, the evaluation
engine is an iterative component which parses control flow executions. It is its job to pro-
cess execution specifications and persist data results. The component is a fixed module
which functions in an abstract manner which reduces the received elements to their base
classes. In addition to the node manager, the engine is the only module with access to the
data persistence.
1
Represents the BookFeedbackQuestionTask element in the figure for simplification purposes
99
5.4.3 Interface Manager
In Chapter 4 we introduced interfaces as an answer to domain-node compatibility. With
interfaces, it is possible to create domains with new evaluation instruments and apply them
to already existing nodes by outsourcing their execution. Interfaces can represent devices,
software systems or user interfaces and be local or remote. With them, we give answer
to an important requirement, the ability to apply evaluations anywhere. For example,
we become able to make an evaluation on a lower power device such as smartphones, by
making all interaction necessities on the interface, and placing the entire node on the cloud
or a dedicated server. To the node, the interface is a black box which is able to interpret
a specific type of content.
When linking a node to a domain, interfaces that are part of the domain’s ontology
are “placed” on the node. From its part, the node maintains its original structure and
interfaces are seen as external content providers. To allow this concept to occur, it is
necessary to embed the node with a module that controls which interfaces are linked to it.
The interface manager fulfills this role by maintaining a registry of linked interfaces and
by being a communication bridge between the interfaces and the node. The manager itself
is a software module divided in two components: a registry and a controller. The registry
allows interfaces to inscribe themselves and insert their access points (API endpoints).
The controller manages requests from the evaluation engine and redirects them to the
appropriate interfaces. Figure 5.9 illustrates the module’s structure.
EVALUATION ENGINE
(QUESTION/
EPR INPUT, OUTPUT
INTERFACES)
Figure 5.9: Interface manager component organization and connection to the infrastructure
100
and state the endpoint of its mandatory operations. In the case of a Task Interface, the
interface must state two operations, the start and cancel operations. For this, the manager
has a public method - registerTaskInterface(start endpoint, cancel endpoint,
interface uri). Events created by event producers are not handled by the manager but
by the Event Logger+Dispatcher. Event Interfaces however are, and need to declare their
API similarly to Task Interfaces using the registerEventInterface(start endpoint,
cancel endpoint) operation. It is important to remember that the standard event inter-
face of the node is the EPR Engine, but that the node is able to insert other interfaces if
necessary using this mechanism.
Start and cancel operations are used by the interface controller to make requests to
interface components. When the evaluation engine asks the manager to route either a
Task or an EPREvent to an interface for interpretation, the controller searches the start
endpoint on the registry and forwards the request to the interface. When the interface
answers back, the controller forwards the answer to the engine. Note that if a request is
made to multiple interfaces, the manager makes the request to all interfaces and waits for
an answer from any of them. When one does so, the manager forwards the answer to the
evaluation engine and contacts the other interfaces using the cancel endpoint for them to
stop their operation. This decision is predefined at the node but other policies involving
cooperation or redundancy algorithms with multiple interfaces can also be included within
the interface manager. By using endpoints and centralizing all communication between
the node and the interfaces in the interface manager, it becomes possible to have remote
interfaces and thus conduct evaluations which go beyond the house of the user.
101
be installed in a simple device, a server or in the cloud. Posterior to its registration, the
engine is ready to execute incoming EPRs.
In order to receive new events, the engine is connected to the Event Logger+Dispatcher
module. This module acts as a postman unit where every event producer in the node is able
to publish their events. Using a publish-subscribe mechanism, the module is fundamental
for assuring a decoupled communication method where all producers can place new events
regardless of their location or implementation. On the other end, the module allows every
component on the node to subscribe to certain producers and receive notifications when new
events occur. This mechanism not only allows the EPR Engine to subscribe to events which
are part of active rules but also allows interface components to receive event notifications
and apply those notifications to adapt themselves to current conditions.
startEPR(EPR, registerEventProducer
interfaceUri) (eventProducerUri)
checkStartEndpoint(
interfaceUri)
start(EPR)
parseEPR(EPR)
loop
publish(event)
notify(event)
evaluateEPR(EPR,event)
alt
Figure 5.10: Sequence Diagram for processing an Event Processing Rule in the Node
102
received by the manager, the interface(s) uri(s) are translated into actual endpoints. Then
and using the start endpoint, the manager forwards the request to the actual interface
component(s) for its handling. By predefinition, that interface is the EPR Engine, who
will receive the request and begin its processing.
Prior to the execution of the EPR by the EPR Engine, it is noteworthy to explain
that all event producers on the node have (forcibly) made their registration in the Event
Logger+Dispatcher. The publish/subscribe methodology uses the same endpoint mecha-
nism of the interfaces. Interested parties must make a request to the logger stating their
interest, that is the event, and how to notify them for new iterations. To do that, the
logger provides two operations, a subscribe and an unsubscribe method. The full logger
API is completed by the registration operation and a publish operation which is used by
producers to indicate new event iterations.
When an EPR is received by the EPR engine, the engine starts by parsing the received
EPR and checking which Events are associated to it. For each found Event, the engine
subscribes to it in the Event Logger+Dispatcher in order to receive new instances of it.
Whenever a new event is published in the logger, the logger forwards it to every subscriber.
The EPR Engine receives the notification and propagates the event to every active EPR
that is interested in the event.
If an EPR has the event in its specification, the engine starts an execution process.
The process checks its operations and conducts an internal evaluation. Given that opera-
tions are predicates, at the root level a true or false value will be formed. If the value
corresponds to true, the engine returns the gathered data to the interface manager who
will forward it to the evaluation engine. There, the data is associated with the EPR Event
instance that started the EPR and stored in the data persistence unit.
As an example of the EPR Engine execution process, observe the following EPR:
The above EPR represents a situation where the evaluator intends to check whenever
the user increases or decreases the volume of a speaker that must not be offline. Figure 5.11
demonstrates the evolution of the EPR when it receives an occurrence of the Increase
Volume event.
EPR Idle 'Increase Volume' EPR Satisfied
Event
Figure 5.11: EPR Engine execution example for the IncreaseVolume Event
103
In the figure, the engine receives an IncreaseVolume event and propagates it to its
leafs. The corresponding leaf returns a true value which provokes a change in the Or
operation which instead provokes a change in the And operation. Since the And operation
represents the root element of the EPR, the EPR is considered as fulfilled. Then, the EPR
Engine alerts the Evaluation Engine to the termination of the EPR who consequently links
the result with the correspondent EPREvent.
Certain operations like Delay or Not operations can alter their state without incoming
events. The engine is aware of this and allows operations to self-trigger it necessary and
ask for an EPR evaluation which checks if the rule became fulfilled.
Contrarily to most complex event processing (CEP) engines, the EPR Engine evaluates
each EPR instantiation separately. Since evaluations can be started at any point in time,
multiple instantiations of the same EPR can be received at different moments of time. In
this scenario, an event that occurs when two instances of the same EPR are active can
provoke very different results (depending on the EPR’s operations). Because of this, events
are considered individually for each EPR instance.
104
Event rdf:type Event
Processing Processing
Rule A_I1 Rule A
epr:hasRootElement epr:hasRootElement
epr:hasRuleElement
epr:hasRuleElement epr:hasRuleElement epr:hasRuleElement
Increase rdf:type
Increase Decrease SpeakerOff
Volume Event
Volume Event Volume Event Event
I1
evt:hasTimestamp
12/09/2015
20h:05m:53ss
eighty percent. This requirement is what we call a non-structural criteria. It implies that
if a node is part of a domain in which this criteria was specified, then it forcibly fulfills this
condition.
As said before, criteria is split into two types: structural criteria and non-structural
criteria. Structural criteria is associated with the interface and event producer components
that nodes must possess in their infrastructure. Non-structural criteria is related to the
user and its environment properties. Taking the previous example, a non-structural criteria
element is always composed by an attribute - ‘hearing disability’, an operation - ‘bigger
than’, and a value - ‘eighty’.
In regard to the node’s architecture, it is necessary to store these attributes and allow a
way for users to add or update them. In this sense, the node includes two dedicated com-
ponents to store and categorize non-structural criteria: the user and context models. Both
models cooperate with the node in verifying node-domain compatibility. The existence
of both models allows a separation to be made between what is related to the user and
what is related to the environment. As such, each attribute is associated with either the
context or user model. When a criteria is received to which the node has no information to
answer, the corresponding attribute is requested to the user using a dedicated user/context
UI by the node manager. The result is stored in the user and context model and used as
a reference for future requests.
Both models are accessible (by other node components) via a well-defined API com-
105
posed of the following operations:
• requestAttribute(attribute)
• addAttribute(attribute, value)
• changeAttribute(attribute, value)
• removeAttribute(attribute)
The first operation is used by the node to compare criteria in the event of an association
between the node and a VD. When it receives the association request, the node manager
uses this operation to query the user/context model and verify the criteria. Upon receiving
the query, the user/context module checks if it has the attribute in store and attempts to
match it with the received operation and value. As a result, there are three possible
scenarios: (1) the module states the criteria as valid; (2) the module states the criteria as
non-valid; (3) the module states that the attribute was not yet defined. Independently of
the outcome, the result is returned to the node manager.
The second operation is used in an internal manner. It has the objective of allowing
other modules in the node to use user/context data within their operation. For instance,
one of our requirements was linked with the need to adapt evaluations to the user. If the
interface which interacts with the user has knowledge regarding the user itself, for example,
using the hearing disability attribute, the interface can adapt its functionality to it and
increase the volume, thus better conducting its objectives [Teixeira et al., 2011a].
Finally, to enable the management of attributes and their data, the models include three
additional operations. With them, users are able to add, remove or change attributes and
their values in the models.
user.characteristics.physical.hearing.disabilityLevel
The selected nomenclature is global to the entire architecture. The format was chosen
due to its clearness and ease of implementation but different formats can be used if nec-
essary. Each entry is unique and its tree representation intends to resolve problems which
could arise with their naming, re-utilization of attributes, ownership, among others. The
106
representation is structured by levels/prefixes in which every level has an owner, and new
levels can only be added with his consent. The management of new attributes is performed
at a support unit level and its functionalities accessible via the designers account on the
Evaluation Hub.
SUPPORT UNIT
INTERFACE
EVALUATION MEDIATION ASSOCIATION ATTRIBUTE
NODE REGISTRY DOMAIN REGISTRY REPOSITORY
SERVICE SERVICE SERVICE
SERVICE
It is important to note that the support unit represents a middleware decoupled from
both nodes and domains. As such, the scalability of its services is the responsibility of the
architecture itself and not a concern for either end users, evaluators or designers.
• IP Address - indicates the IP of the node’s node manager module which will be used
to communicate with the node.
107
• Invitation Profile - determines if the node has a public/private/invitation. On a
public profile, all VDs who want to include the node in their network are able to do
so (depending on further criteria verification). On a private profile, only the node is
able to pinpoint to which VD it wants to associate with. On an invitation profile,
the node receives invitations wherever a VD wants to link it to a network to which
the user can either accept or refuse.
• Interests - indication of a few keywords that declare the user’s interests.
Only after registration can a node be associated with a VD and subsequently, receive
evaluations.
108
• Non-Structural Criteria - defines a set of criteria that will be used by the association
service to verify if a node is within the VD’s research purposes. The definition is
made using a list of public attributes (via the attribute service).
• Interfaces and Event Producer components - for every interface/event producer in the
domain language, the designer must indicate a component, as well as a description of
its (software) requirements. The same component can be linked to several interfaces
if so specified.
Some of these elements are dependent of others. For instance, the interface and event
producer components are dependant of the domain language. As such, an implementa-
tion of the service should divide the registration into several stages (f.i. using a wizard
approach).
The attribute service is an auxiliary service with the objective of maintaining a central-
ized registry of usable attributes. Attributes represent characteristics or properties that
designers may use to create non-structural criteria to filter domain-node associations.
As stated before, our solution proposes attributes as a key-value structure follow-
ing a tree like representation. Besides its clearness, this specification is also a good
choice for guaranteeing that attributes are not build at random or without meaning for
stakeholders. Their creation logic follows a level based composition, where each level
as an owner, either a designer or an administrator and every new level can only be
created if the owner of the attribute accepts it. For example, creating the attribute
user.characteristics.hearing.disabilityLevel can only be done if the owner of the attribute
user.characteristics.hearing accepts it. This way, the responsibility for each attribute is
associated to an account (designer/admin) that allows or not the new attribute’s creation.
At the initialization of the infrastructure, a set of prefixes can be provided by the archi-
tecture itself under the responsibility of the administrator.
In this specification, each attribute also possesses several properties which must be
registered:
• Model Correspondence - Every usable attribute either has a correspondence with the
user or the context model of a node. The node uses this information at runtime to
know to whom to request the attribute value and verify criteria.
109
• Private/Public - Every attribute is either private or public. If it is private, it can
only be used by its creator. If its public, then it accessible to every designer.
• Durability - Every attribute has a validity. Since the attribute is part of a criteria,
its value is solicited to the user. Depending on the durability, the value is used as
reference for future criteria solicitations. If the attribute has no durability, then its
value is solicited to the user on every criteria verification.
• Type - Represents the attribute’s value type. This value influences the operations
which can be used when composing new criteria. Possible options are integer, long,
string, boolean and datetime.
Upon registration, attributes becomes accessible (if public) for usage within criteria
when registering new virtual domains.
110
5.5.5 Association Service
The association service is a support unit service with the objective of mediating the
association between nodes and domains, and consequently, the creation of evaluation net-
works. It provides a set of operations to both nodes and domains, allowing them to identify
targets to whom they wish to become connected to, or to request the service to find targets
that match both their criteria and their interests. On an architectural level, the service is
part of the Support Unit and is accessible by both nodes and domains.
An indication by either a node or a domain regarding the association with another
domain or node respectively marks the start of the association process. When the target is
identified, the service is responsible for creating an association request to the node’s user
or the domain’s designer (depending on who started the process). The request is an invite
made to the owner of the domain/node questioning him on whether or not does he wish
to accept/belong to the node/domain. It is important to note that in cases where either
the node or the domain are public, the invitation is not presented, and in cases where the
node or the domain are private, the invitation is automatically declined.
If an invite is answered positively then the association service starts the next phase
of the association process by applying the domain’s criteria. It is debatable whether or
not should the criteria be applied prior to the invitation. Applying the criteria before the
invitation may lead to cases where the criteria requires user intervention because attributes
have no correspondence in the node’s user or context models. This seems illogical since
the user is being asked to provide an answer to attributes which only have relevance if he
accepts a future invitation. On the other hand, applying the criteria after the invitation
results in weaker matching between nodes and domains. In this case, the matching can
only be performed by using the user’s and domain’s declared interests. Overall, there are
trade-offs on both options and perhaps a mixed solution could prove best. Due to this,
we decided to label this decision as an implementation option to whom implements the
Support Unit services.
In spite of whatever option is selected, the criteria verification is a fundamental step
of the association process. After receiving a positive invitation answer, the association
service fetches the domain’s criteria from the domain registry and sends it to the node
for verification. The verification process is started and composed of two individual parts,
one which is applied to the structural criteria and the other applied to the non-structural
criteria. Figure 5.14 illustrates criteria handling in the node in respect to its modules.
As said before, the non-structural criteria is composed of attributes which depict user or
context model information. The node receives the verification and for each attribute in the
request, asks the user or context model for its value. If a value is non-existent in the models,
the node either rejects or asks it to the user (depending on the user/context implementation
policies). In either case, the attribute’s value is matched with the criteria’s operation and
its own value. If globally, all criteria is fulfilled, the verification of non-structural criteria
is considered successful.
If the result of verifying non-structural criteria is successful, the node then starts the
verification of the structural criteria. Structural criteria is composed by the domain’s inter-
111
Association
Service
Criteria
Node Manager
Interface Event
User Model Context Model
Manager Logger+Dispatcher
Figure 5.14: Criteria Handling in the node - Propagating structural and non-structural
criteria between the node’s modules
faces and event producers. The condition for fulfilling it states that the list of all interfaces
and producers sent by the association service must exist in the node. The list itself is based
on the domain’s registration and its domain language. The node verifies the list by con-
sulting with its own interface manager and Event Logger+Dispatcher modules. For each
interface missing, the node asks the user to install it (via the interface/producer reposi-
tory). At this point, the user can cancel the installation or perform it. If the user does
install all interfaces as requested, the verification of structural criteria is performed once
more. If successful, the node informs the association service that the node is now compat-
ible with the domain. When the service receives confirmation, it alerts the corresponding
domain and persists this information.
To support all of these steps the association service maintains an API providing multiple
operations for this purpose. The process is not instantaneous and may take a large period
of time since it may require user interaction. For this purpose, the APIs may apply a
ticket methodology for identifying ongoing associations. The service itself is also able to
communicate with other services like the domain or node registry, and includes auxiliary
operations which allow other services to make requests to it. Finally, and in addition to the
support for association between nodes and domains, the service also provides operations
responsible for their dissociation.
112
domains that applies this principle. Nodes require a connection to the infrastructure to
receive evaluations, but afterwards, they are able to apply the evaluation autonomously
and independently. They can be offline if necessary, and still execute evaluations normally
as long as the node is functioning normally. The ability to be offline can be important
on some scenarios. While communications are almost always accessible, they may impose
issues on data plans or battery life that can be important to a user.
A different but as important requirement was the ability to provide evaluators with
updated results on-demand. In this case, the ability to go offline acts counter-productively
since if a node is disconnected, it is not able to sent new data to the domain. Our archi-
tecture flexibility enables implementations to address both requirements with more or less
importance. For instance, it is possible to address permanent connectivity on nodes by
dividing it in several components, some of which need to be always online. These options
depend on the architecture’s goals and as such we do not impose “always on” communica-
tions at the architecture level and leave it as an implementation option. On the other hand,
direct communication between nodes and domains is something that should be avoided for
security reasons. For this purpose, we decided to create an intermediary service that facili-
tates evaluation management by acting as a mediator between domains and nodes through
specific operations aimed at dealing with evaluation deployment, cancellation and data
gathering. This way, not only is direct communication avoided but it becomes possible to
apply fault-tolerance policies when a node or a domain becomes offline.
113
SU:Evaluation SU:
Virtual SU: Node
Mediation Node Association
Domain Service Registry
Service
startEvaluation(nodeID, evalSpec,
execSpec)
ticketID
verifyAssociation(nodeID, domainID)
association
alt
[association == true]
getNodeSpecs(nodeID)
nodeSpecs
startEvaluation(domainID,
evalSpec, execSpec)
notifyRequest(ticketID, returns ack
'true') executesEvaluation()
[else]
notifyRequest(ticketID,
'false')
Figure 5.15: Sequence Diagram regarding the initialization of an evaluation and its medi-
ation through the Evaluation Mediation service
The existence of the Evaluation Hub is necessary to assure the correct operation of the
infrastructure by guaranteeing that all accesses to the support services on the Support Unit
are done with proper authorization. In this regard, the hub constitutes the first line of
interaction with the infrastructure by providing UIs which designers and users have access
to via accounts which they are also able to create in the hub. As such, the hub acts as a
presentation layer to the architecture.
The Evaluation Hub’s primary function for designers is the ability to register virtual
domains. It provides a UI in which the designer must indicate the VD’s location, interests,
interfaces, criteria and other properties which are fundamental to registering a VD. The
hub then assumes the responsibility of verifying the inserted information and either validate
the new virtual domain or decline its registration.
In addition to the registration of virtual domains, the designer is able to view (public)
existing virtual domains and their domain languages. The objective is to allow the designer
to verify if elements from existing domain languages can be useful in its own domains. With
a similar purpose, the designer is given access to attribute and interface repositories via
specific UIs. In regard to the attribute service, the designer is able to create new attributes
by requesting them and verify extension requests for his own attributes. In regard to the
interface/producer repository, the designer is able to analyze public interfaces/producers by
verifying their input/output structures and other properties. The access to both interests
and interfaces/producers is provided to designers with the purpose of enabling their reuse
if the designers intend to so.
Concerning the user, the hub allows him to register his/her respective node. Like the
virtual domains, the hub validates the registration and inscribes it into the node registry
if successful. To end users, the hub also provides searching functions through existing
114
Evaluator User Designer
EVALUATION HUB
ACCOUNT
DOMAIN/NODE ATTRIBUTE
AUTHENTICATION/ DOMAIN SEARCH INTERFACE REPOSITORY
REGISTRATION CREATION/LOCATION
REGISTRATION UI UI
UI UI
UI
SUPPORT UNIT
INTERFACE
EVALUATION MEDIATION ASSOCIATION ATTRIBUTE
NODE REGISTRY DOMAIN REGISTRY REPOSITORY
SERVICE SERVICE SERVICE
SERVICE
domains which they may use to find virtual domains that may interest them.
Evaluators have access to the infrastructure as well. Since virtual domains are inde-
pendent, evaluators must abide by each VD’s own rules in regard to authorizations and
authentications. To search for VDs however, the evaluators may resort to the Hub and
inspect existing VDs conditions and endpoints.
5.7 Summary
In this chapter we explained our architectural proposal. The proposal is transversal
to our evaluation model and provides users, evaluators and designers with a scalable so-
lution based on SOA principles that embodies the fundamental principles of our dynamic
evaluation paradigm.
Resumedly, the architecture features a core unit represented by the Support Unit and
the Evaluation Hub to ensure the proper operation of the infrastructure. The flexible
nature of virtual domains allow designers to create evaluation methodologies in a stable
backbone, and gives evaluators the tools to build evaluations taking context into account,
conduct them with the target audience and to obtain the necessary data to aid them in their
objectives. Nodes allow users to become part of evaluation areas that interest them and
participate in evaluation tests without constant logistical intervention and give evaluators
the ability to apply evaluations on multiple locations, using diverse hardware devices and
with adaptable interaction. In all, the proposal is supported by an evaluation model which
guarantees the correct operation of the entire solution.
115
In the next chapter we will join the model, the methodology and the architecture and
describe the implementation of our solution and its usage in a proof of concept scenario.
116
Chapter 6
Proof of Concept
In order to demonstrate the validity and feasibility of our evaluation solution, we decided
to create a proof of concept to verify our main contributions and analyze its usage in real
scenarios [Pereira et al., 2015]. Based on this objective, our proof of concept is divided into
three major parts: (1) developing an instance of our architectural approach; (2) creating
a domain language and an evaluation test using the developed solution; and (3) applying
the evaluation test to a set of users using the developed solution.
The development was centered on the creation of two base frameworks, representative
of the node and the virtual domain. The domain and the evaluation was centered on a
TeleRehabilitation application. The application of the evaluation was performed to a set
of users while using the application in an AAL environment.
In this chapter, we will start by presenting the implemented solution, starting with
both frameworks. Then, we will explain the creation of the Rehabilitation virtual domain
and the details of the TeleRehabilitation evaluation test. Finally we will describe the
application of the test and its results.
117
scenarios in predefined conditions. Virtual domains are abstract locations that represent
specific objectives, conditions and evaluation methods that can be used by evaluators
to rapidly create and apply evaluation tests. On both cases, a logic of Software as a
Service [Ma, 2007] is underlined, or more concretly, a logic of Evaluation as a Service.
Evaluators resort to VDs to create evaluations. VDs resort to nodes to apply evaluations.
Behind them, a backbone structure also composed by services concludes the assembly of a
decoupled, modular and distributed evaluation solution.
Given the specifications of our scenario, rather than fully implement the architectural
proposal, the DynEaaS platform is formed by two frameworks that can be reused by
developers for the creation of new nodes and new virtual domains: the node and VD
frameworks. Regarding the support unit, to reduce implementation times, we choose to
embed part of their functionalities within the frameworks. Despite this, we still created
embrionary versions of the services but did not used them for this proof of concept.
In the case of the node, we have developed an ‘almost ready to use’ solution that can
be installed and rapidly initialized. This solution is a standard representation of a node
and follows the specifications of the evaluation definition model. It is composed by a series
of modules that were implemented according to the architectural specification of node. Its
objective is for any user to be able to setup a simple node, be ready to become linked with
a virtual domain and consequently receive evaluation tests.
The design of the virtual domain is different. Since the VD depends on the domain
ontology and its specifications, it is not possible to create a unified component that repre-
sents all possible virtual domains. Architecturally, we accounted for this aspect by splitting
the VD into two main modules, one which was generic - the domain manager - and the
second which was auxiliary and dependent of the specification - the evaluation module.
To facilitate the design and incorporation of new VDs, we have developed a version of
the domain manager module and implemented a sample version of an evaluation module.
This sample version is associated with an example evaluation domain and can be used by
designers as a starting point to create or extended new VDs.
118
to install a full node given the low processing capabilities of those devices as well as the
short battery life. By using web services, it also becomes possible to place the modules
in a remote server (or the cloud) and place the interfaces and producers modules near the
user, thus creating a distributed node with the user at the center.
To install the node, the user can choose to install all modules in the same device. In
this case, the module will operate on a local logic. If the user however wants to install each
module on a different location, it will have to change the standard (localhost) addresses of
the modules. As already stated, the modules communicate via web services, specifically,
using REST [Fielding, 2000]. The choice of REST instead of SOAP [W3C, 2000] was due
due to its simpler nature, popularity and its base HTTP usage.
119
6.1.1.3 Interface Manager
The EPR Engine was implemented according to the base specification for EPRs. In this
sense, new operations which may be added (via the EPR Extended Specification) require
a revision in this module for it to operate accordingly. The implemented version that is
part of the node framework however, the engine includes additional operations such as
EventOperation BiggerThan or EventOperation SmallerThan, both as subclasses of the
EventOperationFunction, to allow evaluators to compare parameters that may be linked
to the events.
In the node, the module operates as the sole EventInterface. As such, it receives
every EPR instance that every active evaluation may contain. The standard module was
developed in Java. As the module is an Event Interface, it possesses two main commu-
nication endpoints, the start and cancel operations. In the implemented version, these
operations were developed using a REST API and allow the module to communicate with
the interface manager as the event logger+dispatcher.
2
In our implementation, all elements are identified by an URI which is unique and must be in accordance
with the domain language.
120
Event Logger+Dispatcher The Event Logger+Dispatcher acts as an intermediary be-
tween all event producers that belong to the node and any party that is interested in them
(such as the EPR Engine). Because of this, the module is similar to the interface manager
as it is also based on a publish-subscribe methodology. Due to the possible issues on han-
dling a high number of publishers and their events, it was necessary to use a developed
solution that guaranteed a scalable implementation. In this sense, the module incorporates
the Rabbit Message Queue [Pivotal Software, 2015] software. This software guarantees a
safe and scalable solution that consists on placing received events in an message queue, and
rapidly handle and route them to interested parties upon a quick analysis of the messages’
header. The usage of a message queue like Rabbit MQ guarantees that a high number of
producers or subscribers will not constitute a bottleneck in the node.
To communicate with the module, event producers encapsulate their events in JSON
(in accordance with the Event Extended Specification). To identify components and route
the messages, all modules are identified via their URIs, which are unique according to the
evaluation definition model.
121
• getEvaluationResults(nodeUri, evaluationUri) - gets the results of an evalua-
tion that either is in execution or has already ended in a node;
• addNodeToDomain(nodeUri) - requests the addition of a node into the domain’s
network. Subsequently creates an invitation that is received by the node;
• searchCompatibleNodes() - requests the association service to find compatible
nodes (in regard to criteria);
• removeNodeFromDomain(nodeUri) - requests the dissociation of a node from the
domain’s network;
• applySparqlQuery(sparqlQuery) - applies a SPARQL query to the persistence unit.
These operations allow developers to link their own evaluation modules, and other UIs,
to a implementation that provides them with a set of predefined operations.
• instantiate an evaluation;
• verify node status (f.i. to verify if they are active before starting an evaluation);
• creating evaluation assessments;
• creating EPRs;
• retrieve evaluation results from a node;
• analyze assessments, enquiries and EPR results individually;
• analyze evaluation results from the procedure standpoint (using compflow elements);
• SPARQL query creation and application to extract new data.
122
EPR Creation UI Due to the complexity of the EPR specification, we created a visual
UI where evaluators are able to specify EPR instances. The UI is based on the generic
EPR specification and as such, includes the base operations (as well as a couple more that
were important for our test example). The UI abstract the EPR instantiation step from
Section 4.5.2.1. Figure 6.1 showcases an example of the UI.
The UI presents a tree like representation that can be built from the root to its leafs.
It allows the evaluator to select the operation and automatically creates the associated
structure for the operation. For instance, if the evaluator selects an And operation, then
the UI automatically places two elements that must be filled. The UI also verifies the
correctness of the EPR instance and only allows the evaluator to save the EPR in that
condition.
Note that according to the EPR specification, all leaf elements must be evt:Event
subclasses only. Because the Event specification varies depending from domain to domain,
the DynEaaS sample evaluation module also includes an UI that allows evaluators to define
their events without handling the ontology. After doing so, it is then possible to include
those events within EPR instances. That UI however only allows the insertion of Events
at their raw format, that is, without any associated properties.
Due to its genericity, the UI can be reused by designers in their own evaluation module
123
implementations.
Evaluation Creation UIs The evaluation creation UIs allows evaluators to create eval-
uation specifications using a visual interface. By using the instances of the enquiry spec-
ification and the event/EPR specifications, this unit is split into two main parts: a UI
dedicated to the creation of evaluation assessments, and a second UI directed to the in-
stantiation of the specification.
Regarding the creation of assessments, the module includes a UI similar to the EPR
creation UI. The UI features a flow like representation where evaluators can link either
Enquiry or EPR instances that have been previously created. When submitted, the soft-
ware automatically links the evaluation assessment with the corresponding evaluation thus
removing the need for evaluators to dwell with ontology details.
Regarding the second part of this feature, the UI allows evaluators to select a set
of target nodes and according to a schedule, directly instantiate the evaluation. This
functionality uses the generation algorithm to generate the execution specifications from
the set of assessments on the evaluation specification and the domain manager’s API to
hide programming details from the evaluator when deploying evaluations to the nodes.
Evaluation Result Access UIs The evaluation result unit provides a series of UIs that
evaluators can use to access and analyze the results of an evaluation instantiation. Beside
allowing evaluators to view enquiry or EPR results, the unit includes UIs to access assess-
ment execution detail, checking previous evaluation instantiations, verify event occurrences
or analyzing individual performances. Figure 6.2 illustrates a simple assessment displayed
using in timeline format.
Figure 6.2: DynEaaS Timeline feature for representing an evaluation assessment’s results
through time
124
The UI allows evaluators to access all the instantiations of an evaluation, verifying each
assessment on detail, each node to whom it was applied and even analyze details regarding
the procedure via control flow data. In addition to the viewing features of the unit, the
sample version of the evaluation module also includes an UI to retrieve the most recent
results for ongoing evaluations from the nodes.
SPARQL Query Viewer To provide the ability for more technical evaluators to ques-
tion the data results and extract more precise information, we included a SPARQL UI
where evaluators can view the results in a raw format using XML. Figure 6.3 illustrates
the application of a sample query using the UI.
Figure 6.3: Using SPARQL queries to access data within the DynEaaS platform
As a virtual domain requires a set of interfaces and producers to interpret its domain
language, the VD framework includes sample versions for an interface and a producer
components.
125
6.1.3 Support Unit and the Evaluation Hub
For our proof of concept, there was no need to implement the full Support Unit. To
diminish development times, we opted to embed fundamental aspects of its services within
the VD Framework and allow evaluators/designers to control those aspects via UIs that
the framework includes. Given this choice, services like the attribute service, the domain
registry or the interface repository were not fully developed, and thus not used in our proof
of concept.
Node Association The node registry was implemented as part of the VD framework and
indicates the list of all nodes linked to the VD. Rather than being a centralized service, we
choose to register the nodes locally within the VD. The business logic is however, similar.
Regarding the implementation, the VD framework includes an UI that evaluators can use
to register nodes, showcased by Figure 6.4.
For our proof of concept, we considered that all nodes are registered in the VD and form
the VD’s network. Given this fact and that the fact that node registration is part of the
VD framework, the association service was not implemented as most of its operations are
fulfilled by the node registry. As a consequence, the evaluation mediation service was also
implemented as part of the VD framework. The module abstracts three main operations:
starting evaluations, cancel ongoing evaluations and retrieve evaluation results. These
operations are split from the main implementation in order to allow their reusability if
necessary.
126
Finally, since our proof of concept involved a single domain, we also chose to embed
the evaluation hub as part of the VD framework. The implementation included account
authentication, registration and some search UIs regarding the domain language.
For our test, we targeted the patient side as the focus of the evaluation. The therapist
side was contemplated only as an event producer. The objective was to obtain “in situ”
data that could provide evaluators with information regarding the patient’s experience with
127
the application. In addition, results should also provide developers with indications that
can assist them in future iterations of the application. With these premises, the evaluation
focused in aspects such as:
• the user’s opinion of the application when using it and after using it;
• if all components were working as the user expected them to work (namely the
exercise demonstration, the communication windows, the voice commands and the
initialization stages);
Rather than a typical evaluation test in which users are prompted with dozens of ques-
tions, evaluators intended to use DynEaaS to obtain data which otherwise they were not
able to. As such, questions regarding the color of the interface, the overall feel of a compo-
nent, classifying the application using selective words among others, were not inserted in
the evaluation. Evaluators also did not want to overload the user by interrupting its usage
of the application. Because of this, VD interfaces were embedded into the application itself
as a way of removing the need for the user to focus elsewhere during the rehabilitation
session.
The test was programmed for half an hour, and began when the user logged into the
application. As the cooperation of evaluators and developers was necessary to the creation
of the scenario, it was also possible for us to analyze their usage of DynEaaS through the
entire preparation and execution process regarding aspects such as:
• the developers difficulties to use the node’s functionalities to design and integrate
new interfaces/producers;
128
• the overall value of the results to the evaluators.
It is important to note that, to use DynEaaS, designers and evaluators were subjected
to a short presentation in which the dynamic evaluation paradigm was presented as well
as the main features of our DynEaaS solution.
Event Extended Specification Following this specification, the designers were asked
to create the Event Extended specification in regard to the concept of a Rehabilitation
domain. For this step, they choose to incorporate a set of events linked to the applica-
tion’s execution from both the patient and the therapist sides. The resulting specification
included events to provide feedback regarding several phases of a rehabilitation session as
well as events that point the usage of a certain component. In addition, the specifica-
tion also included events to represents certain requests that can be made by the therapist
129
Multiple rdfs:subClassOf
rdfs:subClassOf
Boolean
Question Choice
Question
Question
domain: domain:
rdfs:subClassOf hasPossibleAnswer hasPossibleAnswer
Open Possible
Question Answer
rdfs:subClassOf rdfs:subClassOf
MultipleChoice Boolean
Answer
Answer Answer
rdfs:subClassOf
Open
Answer
and that could influence the user’s behaviour. Altogether, the full list of events ranged
from the login stages to the exercises and to the interaction components. In Table 6.1,
we present the full list of events contemplated by the Rehabilitation domain associated to
their respective producer.
It is important to note that some of these events incorporate parameters not presented
at the table. For instance, the TR ExerciseStatus event showed the percentage of exercises
already completed by the user.
130
Event Designation Description Producer
TR NextExercise Advancement to a new exercise. Patient
TR newExerciseList Activation of a new exercise list. Therapist
TR SensorSelect Selection of a sensor in the interface. Therapist
TR SendExercise Sending a message to the other user. Patient
TR RemoveExercise Elimination of an exercise from the exercise Therapist
list.
TR Login Successful authentication. Patient
TR PreviousExercise Selection of a previous exercise. Therapist
TR TimeChangeExercise Changing the time period of an exercise. Therapist
TR SensorZoomReset Resetting the sensor viewing component. Therapist
TR ExerciseStatus Indication of the status of the currently ac- Patient
tive exercise.
TR SensorZoom Performing zoom on the sensor component. Therapist
TR ReceiveMsgChat Receiving a message on the chat component. Patient
TR SendMsgChat Sending a message via chat component. Patient
TR SelectExercise Selecting an exercise. Patient
TR endExerciseList Finishing an exercise list. Patient
TR SessionStart Initiating an exercise session. Patient
TR SessionEnd End an exercise session. Patient
Table 6.1: List of Events that compose the Event Extended Specification
required specification. Figure 6.7 illustrates the result of this process. Due to the difficulty
of the process however, this step had a high degree of assistance by us.
The result of this process defines three types of tasks that will form the future execution
specifications: the OpenQuestionTask, the MultipleChoiceTask and the BooleanQues-
tionTask. Each of these tasks classifies the correspondence between the question elements
and the answer elements and more importantly, how should the nodes handle them.
Concerning the Event extended specification, it is important to remember that since
events are always part of EPRs, they do not require an association with control flow
elements at this phase.
Associating the Interfaces Upon completing the association between the new ele-
ments and the control flow ontology, it was necessary to discuss how should the user be
presented with the enquiries and by whom were the events produced in order to define the
Interfaces and AtomicEventProducers of the specification. As a result, it was concluded
that questions to the user should be presented inside the application itself. In a similar
fashion, most events would also be produced by the application.
Since the newly created question types differed in their nature, it was necessary to
create specific interfaces for each one of them. All question classes have a content repre-
sented by the domain:hasText property but differed in regard to what they involve as the
131
Question Task Answer
cfw:hasInput cfw:hasOutput
Boolean Boolean Boolean
Question Question Task Answer
OpenQuestion allows the user to provide any kind of answer while the MultipleChoice-
Question places a restrictions on which answers are possible. Because of this, the interfaces
that manifest each of these questions to the user could not be the same, even if embedded
into the same application.
As a result, we defined two new interfaces. A TROpenQuestionInterface that would
deal with OpenQuestionTask elements and a TRMultipleChoiceInterface that would
deal with the MultipleChoiceTask (and BooleanQuestion task) elements. Figure 6.8
illustrates the end result of the domain language in regard to the Enquiry specification.
Associating the Event Producers Regarding the Events, it was necessary to define its
producers. Since some of the Events are produced by the patient side of the application and
others by the therapist side, the definition included two AtomicEventProducer subclasses:
the TeleRehabilitation PatientAEP and the TeleRehabilitation TherapistAEP. As
such, the result domain language (regarding the Events) explicitly associated the events
with the corresponding event producer. To exemplify this, part of the specification is
illustrated by Figure 6.9.
After performing all these steps, the complete domain language was then formed by
joining all specifications into a single ontology that was used as the model of the VD.
132
cfw:isExecutedBy
TR
MultipleChoice cfw:hasInput MultipleChoice cfw:hasOutput MultipleChoice MultipleChoice
Question Task Answer Question
Interface
cfw:isExecutedBy
rdfs:subClassOf rdfs:subClassOf rdfs:subClassOf
cfw:hasInput cfw:hasOutput
Boolean Boolean Boolean cfw:isExecutedBy
Question Question Task Answer
Figure 6.8: TeleRehabilitation Domain - Resulting domain language regarding the Enquiry
specification
rdfs:SubClassOf domain:hasPercentage
TR_Exercise AtomicEvent
Event Double Producer
Status
cfw:isExecutedBy Tele
Timestamp TR_Login Rehabilitation
_PatientAEP
rdfs:SubClassOf
rdfs:SubClassOf
cfw:isExecutedBy Tele
TR_new
Rehabilitation
ExerciseList
_TherapistAEP
Figure 6.9: TeleRehabilitation Domain - Resulting domain language regarding the Event
specification
133
ager and an evaluation module. Since the domain manager does not change, the designers
task was centered in developing a version of the evaluation module that incorporated the
changes of their domain language.
To facilitate the creation of new domains, the VD framework included a sample evalua-
tion module that incorporated UIs and algorithms that could be reused by developers/de-
signers if necessary. Since no modifications were made to the EPR specification, designers
were able to use the EPR creation UIs that were part of the base VD framework. In
the same way, UIs and back-end operations to create assessments or evaluations were also
reused.
Since the Enquiry specification changed, it was necessary to develop a new UI where
evaluators were able to create new Enquiries without handling ontology details. Figure 6.10
shows the aspect of the Question creation UI based on the domain language from the
previous section.
To develop this UI, designers had to develop code regarding the new elements of the
Enquiry specification. It is important to note that this step was the biggest implementation
requirement for the creation of the VD and was unavoidable. The front-end was developed
by using the sample VD framework Enquiry Creation UI as a base.
The resulting UI allows evaluators to create three types of questions, thus matching
the specification. Since no other changes were made to the other specifications, the VD
required no further changes. As such, after creating the Enquiry UI, the VD was completed
and ready to be used.
134
6.2.3.2 Implementing the interface/event producer components
In order to apply an evaluation test based on the created VD, the respective interfaces
and event producers within the domain language must be implemented into real compo-
nents. As stated before, for the Rehabilitation scenario, designers (and evaluators) chose
to embed the interaction into the actual TeleRehabilitation application. This way, the user
would answer the questions while doing the rehabilitation session and thus not have to
direct his attention elsewhere. At the same time, the domain language also noted that all
events were either produced by the patient side of the application or by the therapist side
of the application. These choices mean that the patient application is both a interface and
an event producer, and the therapist application is a event producer.
Starting with the interface, the specification pointed to three types of Tasks that the
interface should be able to handle: OpenQuestionTask, MultipleChoiceTask and the
BooleanTask. For each of them, the application developers created a specific GUI where
the user could view the question and answer it within the application. To connect them
with the node framework, the developer used the method specified in Section 5.4.3 thus
creating a REST API composed by operations through which it would receive the ques-
tions. Figure 6.11 illustrates the question GUI created in the patient TeleRehabilitation
application.
Figure 6.11: Screenshot of the TeleRehabilitation application GUI for answering an eval-
uation question
Regarding the event producers, developers had to start by inserting into the applications
the ability to detect the events through the user’s interaction. Then, in both the patient and
the therapist’s applications, the developers implemented a module for creating the events
according to their specification and send them to the node framework using the API of
135
the Event Producer+Dispatcher module in a JSON format. Following is an example of an
event in this format:
{
" eventType " : " http : // domain # TR_ExerciseStatus " ,
" timestamp " : " 1 4 3 1 3 5 6 6 6 5 0 0 0 " ,
" data " : {
" percentage " : " 8 0 "
}
}
After completing these steps, the interfaces and event producer components were com-
pleted, and the application ready to be used within evaluations.
136
The assessments ranged from applying general questions to conjunctural assessments
based on situations where the utilization of the application determines if they are triggered
or not. Since the assessments used both EPRs and Enquiries, to specify them in the VD, it
was necessary to first define their parts in their respective UIs. As such, for each assessment,
evaluators were asked to use the EPR and Enquiry creation UIs and insert the necessary
elements.
The highlighted assessments were all directed linked to an EPR as the trigger of the
entire assessment. Using the Events of the domain language, evaluators specified these
EPRs using the EPR Creation UI. Based on the conceptual assessments, the resulting
EPRs were:
• EPR should trigger five minutes after the login was performed - Defined by:
EventOperationDelay(TR Login, interval=‘300’).
• EPR should trigger if a ’send chat message’ is performed five times under five seconds
- Defined by:
EventOperationRepetition(TR SendMsgChat, repetitionTimes=‘5’, interval=‘5’).
• EPR should trigger if the user surpasses thirty percent of the exercise list - Defined
by:
EventOperationBiggerThan(TR ExerciseStatus, value=‘30’, parameter=‘percen-
tage’)
• EPR should trigger if the user did not use the chat component ten minutes after the
login - Defined by the two EPRs:
TR Login followed by EventOperationActiveInterval(EventOperationNot(TR Send-
MsgChat), interval=‘600’, evaluatesAtEnd=‘true’).
After defining the EPRs within the VD, the next step was to define the enquiries that
would be integrated into the evaluation assessments. Therefor, for each assessment, it was
necessary to create the corresponding questions within the VD. In our implementation
solution, it is not possible to include questions into an assessment without wrapping them
into an enquiry. As such, evaluators had to create a set of enquiries, each containing one
or more questions. Note that since the created enquiries were directly associated with the
objective of the assessment, most enquiries were composed of a single question.
137
6.2.4.3 Creating the Evaluation Assessments
After defining the enquiries and the EPR, it was now possible to define the evaluation.
To do so, evaluators defined their assessments using the Evaluation Assessment Creation UI
by selecting EPRs or Enquiries from the list of evaluation elements. Figure 6.12 showcases
one of those assessments, the example being the non usage of the chat component ten
minutes by the user after his login.
The assessment possesses there elements: two EPRs and a subsequent enquiry. Sequen-
tially, the example assessment is defined by: (1) an EPR trigger that triggers if the login is
performed - EPR(TR Login) ; (2) an EPR that verifies if within ten minutes no chat mes-
sages are received - EPR(EventOperationActiveInterval(EventOperationNot(TR Send-
MsgChat), interval=‘600’, evaluatesAtEnd=‘true’)); (3) an enquiry containing a
single question - “As of now, you still have not used the chat component. Why is that?”.
After inserting all assessments in the VD, the evaluation was then ready to be instan-
tiated and applied to the users.
138
patient in a controlled environment, our Living Lab environment3 . We choose the Living
Lab because we required a test in which we could not only verify the different aspects
that formed our dynamic evaluation solution, but in which we were also able to test the
DynEaaS platform itself. Regarding the therapist application, we selected an empty room
where the therapist could calmly administer the rehabilitation session.
After selecting the locations, the first step was to prepare the node in the AAL Living
Lab and link the applications to it. Since the node contemplated the AAL Living Lab,
all modules were installed in the same machine as the laboratory includes a private net-
work that can be accessed by all devices in the building. Since the therapist application
could also create events, the application was configured to be able to access the Event
Logger+Dispatcher module of node. Regarding the virtual domain, we installed it in a
server and added the node using the DynEaaS UI. Figure 6.13 illustrates the result of this
process.
TeleRehabilitation_MultipleChoice
Questions
QuestionInterface
Interface
Manager
Node TeleRehabilitation_OpenQuestion
Modules Questions
Interface
Event
Logger+Dispatcher Events TeleRehabilitation_PatientAEP Patient
Evaluator Therapist
Server Exterior Room
Figure 6.13: Distribution of the software components and their communication routines
for the execution of the TeleRehabilitation evaluation test
After setting up all components and configuring the IP addresses, the scenario was set
to start the evaluation. Note that some components (such as the therapist application)
are set at a remote location thus configuring a distributed environment that the solution
supports.
3
The Living Usability Lab is an AAL laboratory that simulates a user’s house and in which we are able
to test products or applications aimed at the AAL paradigm.
139
6.3.1 Starting and applying the test
Rather than choosing a high number of users, evaluators decided to conduct a small
evaluation as an experiment of the dynamic methodology. As such, the test was applied
to two users individually, one after the other within the Living Lab. The session was
coordinated by the therapist.
Before starting the test, the users were given a brief explanation of the application
and alerted to the fact that they might receive some questions during the execution of
the rehabilitation session. Also before the start of the session, the evaluators deployed the
evaluation into the node using the DynEaaS platform. As all was then ready, the users
were placed before the application and started the test.
Throughout the test, the users performed the session as requested and answered the
posed questions from the evaluation. The rehabilitation session was composed by a 12 step
exercise list for the patient to complete. Figure 6.14 shows the user and the therapist using
the TeleRehabilitation application as part of the evaluation test.
Figure 6.14: Conducting the evaluation test during a TeleRehabilitation session between a
user and a therapist
During this period, the evaluators periodically updated the evaluation results on the
virtual domain by using DynEaaS to fetch the results from the node.
First impressions An early result of the evaluation test was that the application’s
interface was not suited for the evaluation. Asking the user to answer the questions using
the keyboard and mouse was uncomfortable. Since the rehabilitation session was performed
a couple of meters away from the interface, answering evaluation questions forced the user
to stop his current task, approach the monitor and then enter the information.
After this finding, evaluators decided that the interaction with the user should be
allowed via speech as well rather than using only the keyboard and mouse. As such, it
would be necessary to rewrite the evaluation test and the subsequent domain.
140
6.3.2 Performing a second iteration of the evaluation
The major modification the evaluators wanted was to allow the user to also answer
questions using speech as a way of improving user experience. To permit this, first of all,
it was necessary to change the applications in order to include speech technology. As a
consequence, the underlying interfaces (TeleRehabilitation MultipleChoiceInterface
and TeleRehabilitation OpenQuestionInterface) of the application would also have to
be altered. As a result, developers implemented a new version of the application and its
interfaces supporting speech.
Regarding the evaluation, since the interfaces were altered but no changes would be
made to the actual domain language, the same VD could be used. However, after perform-
ing the modifications to the application, the evaluators thought it important to include
a new assessment on the test regarding the usage of the new included speech support
and voice commands. This newly created assessment required an event that was not in
the original specification thus creating the need for alterations to be made to the domain
language.
Changing the virtual domain implementation The only modification made to the
domain language was the inclusion of the TR SpeechCommand event. Due to it, the VD
required no modifications except the addition of the event. Since the domain language
was changed due to the interfaces, the VD was also updated with the new version in
order to correctly perform the generation process (from the evaluation to the execution
specification). After doing these steps, the VD was updated and ready to be used.
141
only necessary to add a new assessment, evaluators were able to use the previous evaluation
specification and extend it.
To create the new assessment, once again, the evaluators had to introduce the EPRs and
the Enquiries prior to introducing the assessment. This assessment in particular had the ob-
jective of questioning the user if he did not use any voice commands five minutes after the lo-
gin was made. To trigger the question, the assessment included two EPRs to verify its con-
dition: EPR(TR SpeechCommand) followed by EventOperationActiveInterval(EventOpe-
rationNot(TR SpeechCommand), interval=‘300’, evaluatesAtEnd=‘true’).
After inserting both the enquiry and the EPRs, it was then possible to add the assess-
ment to the evaluation. Having completed it, the evaluation was once again ready to be
applied.
142
Figure 6.15: Example of the DynEaaS UI displaying information about a question in one
of the evaluation test’s assessments.
143
Figure 6.16: Example of a SPARQL query applied to the evaluation results in DynEaaS
Although most information is accessible via the DynEaaS platform UIs, by using SPARQL
queries, evaluations could associate different elements and even try to infer new knowledge.
• the node framework versatility and ease of installation - although it was not possible
to assess if a common user would be able to install it, due to its ‘out-of-the-box’
nature, the node framework was installed without any modifications to its imple-
mentation (with the exception of the network configuration).
• the node’s ability to integrate well with other applications - the TeleRehabilitation
application designers had to configure their application to connect with both the
node’s interface manager and event logger+dispatcher modules. As the modules
possessed a simple REST API, the integration was made with small effort.
144
• the developers difficulties to use the node’s functionalities to design and integrate new
interfaces/producers - as stated in the previously point, the application was easily
integrated. Additionally, when having to change the interfaces and event producers
from the first iteration to the second, no changes were necessary to the modules that
connected the application with the node.
• the designer’s ability when creating a domain language - the designer was capable
of building a domain language and later on, extend it. The process however was
not direct and required help from us as some ontology concepts were complex for a
non-specialist. A future work result of this process is the creation of an IDE that
assists them with the process.
• the evaluator’s comprehension of the solution - via presentations and through simple
examples using DynEaaS, evaluators comprehended the concept of the solution. In
addition, we felt from the evaluators some expectation regarding the possibilities of
the methodology.
• the evaluator’s ability to successfully use a virtual domain / the evaluator’s ability to
create an evaluation without assistance - through DynEaaS, evaluators were able to
create, deploy and analyze the evaluation test with a low level of assistance (mainly
due to some unknown terminology).
It is fair to point to some difficulties in using the solution without prior knowledge and
experience. Ontologies can be complex and more so when having to implement software
solutions. The existence of the VD and node frameworks though proved that it is possible
for designers and developers to create new domains that include their own evaluation
methods and properties. Regarding the evaluation, the existence of DynEaaS as a GUI of
the VD was highly important and praised by the evaluators. Overall, the ability to create,
apply and analyze test results joined with the stakeholders feedback proved the feasibility
and validity of dynamic evaluations.
6.4 Summary
In this chapter we described a proof of concept based on our evaluation solution. We
divided the proof of concept in three areas, starting with the implementation of a software
145
solution consisting on two frameworks that could be reused by designers to create and
establish dynamic evaluation systems.
To test the solution, an evaluation test was created for a TeleRehabilitation application
based on an AAL environment. The test introduced the ability to pose questions to the
user in specific situations, thus bringing context into the evaluation. Using the created
software solution, designers were able to create an evaluation system consisting of one
virtual domain and one node. Using the resulting system, they were also able to create
and apply the evaluation test as intended.
Besides the TeleRehabilitation evaluation itself, the proof of concept intended to analyze
the stakeholders ability to implement and use our evaluation solution. Results showed they
were able to do so despite initial difficulties. Added to the positive results from the test
itself, the proof of concept allow us to verify the feasibility of the dynamic evaluation
solution and conclude its overall value.
146
Chapter 7
Conclusions
147
a dynamic evaluation methodology supported by a flexible ontology model. The method-
ology had the objective of supporting the concepts of the dynamic evaluation paradigm,
especially by enabling the contemplation of context within evaluations thus providing eval-
uators with the ability to perform “in situ” assessments triggered by specific situations.
Aided by concepts such as EPRs and enquiries, evaluators are able to define situations
using complex event composition and gather data in real-time. Through a multiple level
approach, the methodology enables the creation of diverse domain specifications, provid-
ing designers with the ability to define new evaluation instruments applied according to
their own wishes and objectives. Due to its systematic nature, it ensures reusability and
guarantees the ability to bring semantics into the specifications. Finally, it contemplates
the diverse nature of nodes by including a common specification for execution.
The forth part of this work focused on the creation of a software architecture capable
of supporting the creation, application and analysis of evaluations based on the dynamic
evaluation paradigm. The architecture materializes concepts such as domains and nodes
into services aided by a common infrastructure based on a support unit and an evalua-
tion hub. The architecture operates on a SOA logic and internally adopts the dynamic
evaluation methodology and its model by configuring a set of operations based on their
specification principles. In short, a domain is seen as an evaluation creation service based
on a domain specification. A node is seen as an evaluation resource where evaluations
can be executed and performed by its user. A support unit links them and enables the
creation of evaluation networks using criteria associated to the domain specifications and
the node’s characteristics. Through these networks, we provide evaluators with a set of
users guaranteed to be compatible with the domain and to whom they can immediately
sent evaluation tests without any logistical effort. Altogether, they enable the creation of
mass-scale systems for dynamic evaluations.
The final part of the work proved the feasibility of the dynamic evaluation solution. To
do so, we designed a proof of concept based on three main parts: the implementation of a
software solution based on the principles of our contribution, the creation of a test using
the implementation solution and finally, its application to the users in a concrete evaluation
scenario. The software solution consisted on developing two frameworks representing the
most important parts of our solution, the node, the domain and the underlying dynamic
evaluation methodology. With it, we created an evaluation test for a TeleRehabilitation
application in an AAL environment and successfully applied it to a set of users. Subsequent
results provided important evaluation data, and stakeholders pointed to the value of the
dynamic evaluation proposal.
148
paradigm, a methodology and its model, and a support architecture. Altogether, they
configure a scalable, flexible and capable evaluation proposal for evaluation design and
application in reactive environments.
In Chapter 1, we indicated some objectives that we felt were essential to the realization
of this thesis. First of all, we pointed to the need of incorporating context when performing
evaluations in reactive environments such as AAL. Our second objective concerned the low
reusability rates of evaluation tests and the need to develop new software whenever the
evaluation method changes. The third objective pointed to the necessity of facilitating
evaluation application by simplifying logistics and allowing evaluators to focus on the test
rather than on its deployment.
Regarding contextual data, we proposed an evaluation methodology where contextual
aspects can be part of evaluations. We introduced extensible specifications for elements
such as Enquiries, Events and EPRs assisted by concepts such as evaluation assessments
to allow evaluators to define specific evaluation situations and obtain “in situ” data about
them. To tackle the low reusability rates of evaluation tests, our evaluation model was
designed using ontologies. Through a systematic approach to specify evaluations, we al-
lowed them to bring concepts, specifications or even whole ontologies from their research
areas into the evaluations. With this semantic approach, we open the way for future
inter-evaluation inference and the possibility of obtaining additional knowledge.
To facilitate the creation and application of evaluation tests, we introduced a software
architecture based on the concepts of domains and nodes. Domains represent evaluation
creation areas where it is possible to create new evaluation tests using a set of predefined
elements (according to a domain specification) and automatically send them to a set of
users. Using criteria, domains are matched with nodes that met their conditions and
incorporate them within evaluation networks that become ready to use by evaluators. On
the other hand, nodes encapsulate the user by defining him as an evaluation resource and
feature an architecture capable of applying evaluations to the user.
Altogether, the methodology, the model and the architecture confirm the value of the
solution, its ability to creation dynamic systems and subsequently, dynamic evaluation
tests. To prove the feasibility and overall value of our proposal, we created a proof of
concept scenario. Obviously, within the context of a PhD, the proof of concept could not
be exhaustive given time and resource constrains. Our choice was to implement the main
elements of our proposal and perform a detailed but minimalistic test. Despite this however,
the developed solution has already permitted interesting evaluations to be performed, and
provided data that otherwise would be difficult to obtain.
In comparison with the existing ESM solutions presented at Chapter 2, our implemented
solution is capable of offering similar features such as event composition or applying an
evaluation on a phone like Momento[Carter et al., 2007] and Maestro[Meschtscherjakov
et al., 2010] do so. On the other hand, DynEaaS provides a set of features they do not,
such as the ability to consider multiple event producers or multiple interfaces and enabling
evaluators to consider more than the phone1 . In [Fischer, 2009], the author made a critical
1
Annex B shows a more in-depth analysis of our solution in comparison with the Momento and Maestro
149
review of some ESM tools and indicated several principles that should be considered when
designing an ESM tool (see Section 2.2). Our solution meets these principles as all seven
are either fulfilled or surpassed.
Overall, we consider that our evaluation solution surpassed the objectives of this thesis.
Due to the flexibility and range of the proposal, the proposed solution goes beyond the
requirements and establishes itself as a general purpose evaluation solution.
IDE for Domain Language Creation The development of an IDE for domain language
creation would be a helpful tool for designers. Using a visual interface with a drag and
drop method, developers would be able to create the domain language more easily as the
IDE would verify the correctness of the language and guarantee the necessary restrictions
of the domain language regarding the generic domain language.
Although complex, the IDE could include features that automatically generated UIs or
a generic code structure based on Question and Answer extended specifications thus aiding
designers when implementing new virtual domains.
Dynamic Execution Solution Our dynamic evaluation solution goes beyond the scope
of evaluation. The generic nature of the solution (methodology, model and architecture)
ESM tools
150
makes it possible to envision its usage in additional areas. By expanding the evaluation
assessment ontology with new items such as commands, and by using the Enquiry or
Event specifications as Inputs/Outputs of the assessments, our approach can be used as
a generic execution solution. Due to the outsourcing mechanism linked with the interface
components, it is possible to include not only different users in a cooperative network but
other systems as well in a distributed ecossystem. The applicability of such a solution could
range from handling a robotic device in a controlled environment to manage orchestration
in a service oriented architecture.
Introduce Enquiry Decision Points The enquiry specification presented in this PhD
does not allow evaluators to create enquiries that evolve according to the answers of the
user. We chose to leave it as future work as it would either be very limited (f.i. by being
based on multiple choice questions) or very complex for evaluators to use (as it would
require coding to interpret the output of the user). Despite this, we made the initial steps
to allow this feature (through the Gateway element of the control flow ontology) and expect
to introduce it in the future.
7.4 Epilogue
Now this is not the end. It is not even the beginning of the end. But it is,
perhaps, the end of the beginning.
151
152
Acronyms
IM Instant Messaging. 10
153
URI Uniform Resource Identifier. 85, 93
154
Bibliography
[Abowd et al., 1999] Abowd, G. D., Dey, A. K., Brown, P. J., Davies, N., Smith, M., and
Steggles, P. (1999). Towards a better understanding of context and context-awareness. In
Proceedings of the 1st international symposium on Handheld and Ubiquitous Computing,
HUC ’99, pages 304–307, London, UK. Springer-Verlag.
[Afonso et al., 2013] Afonso, A., Lima, J., and Cota, M. P. (2013). Usability Assessment
of Web Interfaces: User Testing. In de Informação, S. e. T., editor, Conferência Ibérica
de Sistemas e Tecnologias de Informacão, volume 1, page 150, Lisboa, Portugal.
[Ailisto et al., 2002] Ailisto, H., Alahuhta, P., Haataja, V., and Kylloenen, V. (2002).
Structuring context aware applications: Five-layer model and example case. Proceedings
of the Workshop on Concepts and Models for Ubiquitous Computing.
[Anicic et al., 2011] Anicic, D., Fodor, P., Rudolph, S., and Stojanovic, N. (2011). Ep-
sparql: A unified language for event processing and stream reasoning. In Proceedings
of the 20th International Conference on World Wide Web, WWW ’11, pages 635–644,
New York, NY, USA. ACM.
[Anicic et al., 2010] Anicic, D., Fodor, P., Rudolph, S., Stühmer, R., Stojanovic, N., and
Studer, R. (2010). A rule-based language for complex event processing and reasoning.
In Hitzler, P. and Lukasiewicz, T., editors, Web Reasoning and Rule Systems, volume
6333 of Lecture Notes in Computer Science, pages 42–57. Springer Berlin Heidelberg.
[Atrey et al., 2010] Atrey, P. K., Hossain, M. A., El Saddik, A., and Kankanhalli, M. S.
(2010). Multimodal fusion for multimedia analysis: a survey. Multimedia systems,
16(6):345–379.
[Atzori et al., 2010] Atzori, L., Iera, A., and Morabito, G. (2010). The internet of things:
A survey. Comput. Netw., 54(15):2787–2805.
155
[Baldauf et al., 2007] Baldauf, M., Dustdar, S., and Rosenberg, F. (2007). A survey on
context-aware systems. Int. J. Ad Hoc Ubiquitous Comput., 2:263–277.
[Barrett, 1999] Barrett, L. (1999). Esp: The experience sampling program. http://www.
experience-sampling.org/. [Online; accessed 20-September-2015].
[Bernsen and Dybkjr, 2009] Bernsen, N. O. and Dybkjr, L. (2009). Multimodal Usability.
Springer Publishing Company, Incorporated, 1st edition.
[Bevan and Bruval, 2003] Bevan, N. and Bruval, P. (2003). Usability Net:Tools &
Methods. http://www.usabilitynet.org/tools/list.htm. [Online; accessed 20-
September-2015].
[Bieberstein et al., 2005] Bieberstein, N., Bose, S., Fiammante, M., Jones, K., and Shah,
R. (2005). Service-Oriented Architecture Compass: Business Value, Planning, and En-
terprise Roadmap. Prentice Hall PTR, Upper Saddle River, NJ, USA.
[Brajnik and Tasso, 1994] Brajnik, G. and Tasso, C. (1994). A shell for developing non-
monotonic user modeling systems. Int. J. Hum.-Comput. Stud., 40:31–62.
[Brandt et al., 2007] Brandt, J., Weiss, N., and Klemmer, S. R. (2007). Txt 4 l8r: Lowering
the burden for diary studies under mobile conditions. In CHI ’07 Extended Abstracts on
Human Factors in Computing Systems, CHI EA ’07, pages 2303–2308, New York, NY,
USA. ACM.
[Carter et al., 2007] Carter, S., Mankoff, J., and Heer, J. (2007). Momento: Support for
situated ubicomp experimentation. In Proceedings of the SIGCHI Conference on Human
Factors in Computing Systems, CHI ’07, pages 125–134, New York, NY, USA. ACM.
[Castillo, 1997] Castillo, J. C. (1997). The User-Reported Critical Incident Method for Re-
mote Usability Evaluation. Master’s thesis, Faculty of the Virginia Polytechnic Institute
and State University.
[Chen, 2004] Chen, H. (2004). An Intelligent Broker Architecture for Pervasive Context-
Aware Systems. PhD thesis, University of Maryland, Baltimore County.
156
[Chen et al., 2003] Chen, H., Finin, T., and Joshi, A. (2003). An ontology for context-
aware pervasive computing environments. Knowl. Eng. Rev., 18:197–207.
[Consolvo et al., 2007] Consolvo, S., Harrison, B., Smith, I., Chen, M. Y., Everitt, K.,
Froehlich, J., and Landay, J. A. (2007). Conducting in situ evaluations for and with
ubiquitous computing technologies. International Journal of Human-Computer Interac-
tion, 22(1-2):103–118.
[Consolvo and Walker, 2003] Consolvo, S. and Walker, M. (2003). Using the experi-
ence sampling method to evaluate ubicomp applications. IEEE Pervasive Computing,
2(2):24–31.
[Dey et al., 2001] Dey, A. K., Abowd, G. D., and Salber, D. (2001). A conceptual frame-
work and a toolkit for supporting the rapid prototyping of context-aware applications.
Hum.-Comput. Interact., 16(2):97–166.
[Fetter and Gross, 2011] Fetter, M. and Gross, T. (2011). Primiexperience: Experience
sampling via instant messaging. In Proceedings of the ACM 2011 Conference on Com-
puter Supported Cooperative Work, CSCW ’11, pages 629–632, New York, NY, USA.
ACM.
[Fetter et al., 2011] Fetter, M., Schirmer, M., and Gross, T. (2011). Caessa: Visual au-
thoring of context-aware experience sampling studies. In CHI ’11 Extended Abstracts on
Human Factors in Computing Systems, CHI EA ’11, pages 2341–2346, New York, NY,
USA. ACM.
[Fickas et al., 1997] Fickas, S., Kortuem, G., and Segall, Z. (1997). Software organiza-
tion for dynamic and adaptable wearable systems. In Proceedings First International
Symposium on Wearable Computers (ISWC Äô97, pages 13–14.
’
[Fielding, 2000] Fielding, R. T. (2000). REST: Architectural Styles and the Design of
Network-based Software Architectures. Doctoral dissertation, University of California,
Irvine.
[Finin and Drager, 1986] Finin, T. and Drager, D. (1986). Gums: a general user modeling
system. In Proceedings of the workshop on Strategic computing natural language, HLT
’86, pages 224–230, Stroudsburg, PA, USA. Association for Computational Linguistics.
157
[Foundation, 2015] Foundation, T. A. S. (2015). Apache Jena. https://jena.apache.
org/. [Online; accessed 20-September-2015].
[Froehlich et al., 2007] Froehlich, J., Chen, M. Y., Consolvo, S., Harrison, B., and Landay,
J. A. (2007). Myexperience: A system for in situ tracing and capturing of user feedback
on mobile phones. In Proceedings of the 5th International Conference on Mobile Systems,
Applications and Services, MobiSys ’07, pages 57–70, New York, NY, USA. ACM.
[Group, 2011] Group, O. M. (2011). Business Process Model and Notation (BPMN) Ver-
sion 2.0. Technical report.
[Hanington and Martin, 2012] Hanington, B. and Martin, B. (2012). Universal Methods
of Design: 100 Ways to Research Complex Problems, Develop Innovative Ideas, and
Design Effective Solutions. Rockport Publishers, Beverly, MA.
[Hektner et al., 2007] Hektner, J. M., Schmidt, J. A., and Csikszentmihalyi, M. (2007).
Experience sampling method: measuring the quality of everyday life. SAGE Publications,
Thousand Oaks, CA, USA.
[Hofer et al., 2003] Hofer, T., Schwinger, W., Pichler, M., Leonhartsberger, G., Altmann,
J., and Retschitzegger, W. (2003). Context-awareness on mobile devices - the hydrogen
approach. In Proceedings of the 36th Annual Hawaii International Conference on System
Sciences (HICSS’03) - Track 9 - Volume 9, HICSS ’03, pages 292.1–, Washington, DC,
USA. IEEE Computer Society.
[Huang et al., 1991] Huang, X., McCalla, G. I., Greer, J. E., and Neufeld, E. (1991).
Revising deductive knowledge and stereotypical knowledge in a student model. User
Modeling and User-Adapted Interaction, 1(1):87–115.
[Huhns and Singh, 2005] Huhns, M. and Singh, M. (2005). Service-oriented computing:
key concepts and principles. Internet Computing, IEEE, 9(1):75–81.
[Indulska et al., 2003] Indulska, J., Robinson, R., Rakotonirainy, A., and Henricksen, K.
(2003). Experiences in using cc/pp in context-aware systems. In In Proc. of the Intl.
Conf. on Mobile Data Management (MDM, pages 247–261. Springer.
158
[Intille et al., 2003] Intille, S. S., Rondoni, J., Kukla, C., Ancona, I., and Bao, L. (2003).
A context-aware experience sampling tool. In CHI ’03 Extended Abstracts on Human
Factors in Computing Systems, CHI EA ’03, pages 972–973, New York, NY, USA. ACM.
[Kay, 1994] Kay, J. (1994). The um toolkit for cooperative user modelling. User Modeling
and User-Adapted Interaction, 4:149–196. 10.1007/BF01100243.
[Kay, 2000] Kay, J. (2000). User modeling for adaptation. In User Interfaces for All:
Concepts, Methods, and Tools (Human Factors and Ergonomics), Human factors and
ergonomics. CRC Press, 1 edition.
[Kay et al., 2002] Kay, J., Kummerfeld, B., and Lauder, P. (2002). Personis: A server
for user models. In Proceedings of the Second International Conference on Adaptive
Hypermedia and Adaptive Web-Based Systems, AH ’02, pages 203–212, London, UK,
UK. Springer-Verlag.
[Kelly et al., 2008] Kelly, D., Harper, D. J., and Landau, B. (2008). Questionnaire mode
effects in interactive information retrieval experiments. Information Processing & Man-
agement, 44(1):122–141.
[Kobsa, 2007] Kobsa, A. (2007). Generic user modeling systems. In The adaptive web:
methods and strategies of web personalization, volume 4321 of Lecture Notes In Computer
Science, pages 136–154. Springer Verlag.
[Kobsa and Pohl, 1994] Kobsa, A. and Pohl, W. (1994). The user modeling shell system
bgp-ms. User Modeling and User-Adapted Interaction, 4:59–106. 10.1007/BF01099428.
[Kono et al., 1994] Kono, Y., Ikeda, M., and Mizoguchi, R. (1994). Themis: a nonmono-
tonic inductive student modeling system. J. Artif. Intell. Educ., 5:371–413.
[LUL Consortium, 2012] LUL Consortium (2010-2012). LUL - Living Usability Lab
for Next Generation Networks. http://www.livinglab.pt/. [Online; accessed 20-
September-2015].
[Luz, 2015] Luz, N. (2015). Ontology-based representation and generation of workflows for
micro-task human-machine computation. PhD thesis, University of Minho, Porto and
Aveiro.
[Luz et al., 2014] Luz, N., Pereira, C., Silva, N., Novais, P., Teixeira, A., and Oliveira e
Silva, M. (2014). An ontology for human-machine computation workflow specification.
In Polycarpou, M., de Carvalho, A. C., Pan, J.-S., Wozniak, M., Quintian, H., and
159
Corchado, E., editors, Hybrid Artificial Intelligence Systems, volume 8480 of Lecture
Notes in Computer Science, pages 49–60. Springer International Publishing.
[Martins et al., 2014] Martins, J., Alves, M., Andrade, S., Pereira, C., Teixeira, A., and
Fale, I. (2014). Central auditory processing evaluation - normative data for portuguese
pediatric population. In Proceeding of HealthIPLeiria2014 - Segundo Congresso Inter-
nacional de Saude do IPLeiria.
[MetricWire, 2015] MetricWire (2015). MetricWire: Mobile Data Collection made easy.
https://metricwire.com/. [Online; accessed 20-September-2015].
[Oracle Corporation, 2015] Oracle Corporation (2015). GlassFish - World’s first Java EE
7 Application Server. https://glassfish.java.net/. [Online; accessed 20-September-
2015].
160
[OWL Working Group, 2009] OWL Working Group, W. (27 October 2009). OWL 2 Web
Ontology Language: Document Overview. W3C Recommendation. Available at http:
//www.w3.org/TR/owl2-overview/.
[Papazoglou and van den Heuvel, 2007] Papazoglou, M. and van den Heuvel, W.-J. (2007).
Service oriented architectures: approaches, technologies and research issues. The VLDB
Journal, 16(3):389–415.
[Paschke and Kozlenkov, 2009] Paschke, A. and Kozlenkov, A. (2009). Rule-based event
processing and reaction rules. In Governatori, G., Hall, J., and Paschke, A., editors,
Rule Interchange and Applications, volume 5858 of Lecture Notes in Computer Science,
pages 53–66. Springer Berlin Heidelberg.
[Pereira et al., 2015] Pereira, C., Almeida, N., Martins, A., Silva, S., Rosa, A., Oliveira e
Silva, M., and Teixeira, A. (2015). Evaluation of complex distributed multimodal appli-
cations: Evaluating a telerehabilitation system when it really matters. In Zhou, J. and
Salvendy, G., editors, Human Aspects of IT for the Aged Population. Design for Every-
day Life, volume 9194 of Lecture Notes in Computer Science, pages 146–157. Springer
International Publishing.
[Pereira et al., 2013a] Pereira, C., Teixeira, A., and e Silva, M. O. (2013a). Towards an
integrated view of reported outcomes. In CISTI’2013 (8th Iberian Conference on Infor-
mation Systems and Technologies), Lisbon.
[Pereira et al., 2014] Pereira, C., Teixeira, A., and e Silva, M. O. (2014). Live evaluation
within ambient assisted living scenarios. In Proceedings of the 7th International Confer-
ence on PErvasive Technologies Related to Assistive Environments, PETRA ’14, pages
14:1–14:6, New York, NY, USA. ACM.
[Pereira et al., 2013b] Pereira, C., Teixeira, A., Rocha, N., Oliveira e Silva, M., Ferreira,
F., and Oliveira, A. (2013b). Arquitectura de Desenvolvimento. In Laboratório Vivo de
Usabilidade (Living Usability Lab, pages 123–140. ARC Publishing.
[Reis and Gable, 2000] Reis, H. T. and Gable, S. L. (2000). Event-sampling and other
methods for studying everyday experience, chapter 8, pages 190–222. Cambridge Univer-
sity Press, Cambridge, UK.
[Rich, 1979] Rich, E. (1979). User modeling via stereotypes. Cognitive Science, 3(4):329–
354.
161
[Samulowitz et al., 2001] Samulowitz, M., Michahelles, F., and Linnhoff-Popien, C. (2001).
Capeus: An architecture for context-aware selection and execution of services. In Pro-
ceedings of the IFIP TC6 / WG6.1 Third International Working Conference on New
Developments in Distributed Applications and Interoperable Systems, pages 23–40, De-
venter, The Netherlands, The Netherlands. Kluwer, B.V.
[Schilit et al., 1994] Schilit, B. N., Adams, N., and Want, R. (1994). Context-aware com-
puting applications. In In Proceedings of the workshop on mobile computing systems and
applications, pages 85–90. IEEE Computer Society.
[Sheng and Benatallah, 2005] Sheng, Q. Z. and Benatallah, B. (2005). Contextuml: a uml-
based modeling language for model-driven development of context-aware web services.
In In: The 4th International Conference on Mobile Business, pages 206–212.
[Shneiderman, 1997] Shneiderman, B. (1997). Designing the User Interface: Strategies for
Effective Human-Computer Interaction. Addison-Wesley Longman Publishing Co., Inc.
[Silva, 2004] Silva, N. (2004). Multi-Dimensional Service-Oriented Ontology Mapping. PhD
thesis, Universidade de Trás-os-montes e Alto Douro.
[Silva et al., 2015] Silva, S., Almeida, N., Pereira, C., Martins, A. I., Rosa, A. F., Oliveira e
Silva, M., and Teixeira, A. (2015). Design and Development of Multimodal Applications:
A Vision on Key Issues and Methods. In Antona, M. and Stephanidis, C., editors, Uni-
versal Access in Human-Computer Interaction. Access to Today’s Technologies, volume
9175 of Lecture Notes in Computer Science, pages 109–120. Springer International Pub-
lishing.
[Stanford Center, 2015] Stanford Center, B. (2015). Protégé. http://protege.stanford.
edu/. [Online; accessed 20-September-2015].
[Strang and Linnhoff-Popien, 2004] Strang, T. and Linnhoff-Popien, C. (2004). A context
modeling survey. In Workshop on Advanced Context Modelling, Reasoning and Manage-
ment, UbiComp 2004 - The Sixth International Conference on Ubiquitous Computing,
Nottingham/England.
[Strang and Popien, 2004] Strang, T. and Popien, C. L. (2004). A context modeling survey.
In Workshop on Advanced Context Modelling, Reasoning and Management, UbiComp
2004 - The Sixth International Conference on Ubiquitous Computing.
[Studer et al., 1998] Studer, R., Benjamins, V. R., and Fensel, D. (1998). Knowledge
engineering: Principles and methods. Data Knowl. Eng., 25(1-2):161–197.
[Teixeira et al., 2012] Teixeira, A., Pereira, C., e Silva, M. O., Almeida, N., Pinto, J. S.,
Teixeira, C., Ferreira, F., and Mota, A. (2012). Health@home scenario: Creating a new
support system for home telerehabilitation. In AAL 2012 - 2nd International Living Us-
ability Lab Workshop on AAL Latest Solutions, Trends and Applications (In conjuction
with BIOSTEC 2012), Vilamoura, Portugal.
162
[Teixeira et al., 2013] Teixeira, A., Pereira, C., e Silva, M. O., Alvarelhao, J., Silva, A.,
Cerqueira, M., Martins, A. I., Pacheco, O., Almeida, N., Oliveira, C., Costa, R., Neves,
A. J. R., Queiros, A., and Rocha, N. (2013). New telerehabilitation services for the
elderly. In Isabel Maria Miranda, M. M. C.-C., editor, Handbook of Research on ICTs
for Healthcare and Social Services: Developments and Applications. IGI Global.
[Teixeira et al., 2015] Teixeira, A. J. S., Nelson Rocha, C. P., Pinto, J. S., Dias, M. S.,
Teixeira, C., e Silva, M. O., Queirós, A., Ferreira, F., and Oliveira, A. (2015). The
Living Usability Lab Architecture: Support for the Development and Evaluation of
New AAL Services for the Elderly. In Ambient Assisted Living: From Technology to
Intervention, pages 477–508. CRC Press.
[Teixeira et al., 2011a] Teixeira, A. J. S., Pereira, C., e Silva, M. O., Pacheco, O., Neves,
A. J. R., and Casimiro, J. (2011a). Adapto. adaptive multimodal output. In Benavente-
Peces, C. and Filipe, J., editors, Proceddings of the International Conference on Per-
vasive and Embedded Computing and Communication Systems (PECCS), pages 91–100.
SciTePress.
[Teixeira et al., 2011b] Teixeira, C., Pinto, J. S., Ferreira, F., Oliveira, A., Teixeira, A.,
and Pereira, C. (2011b). Cloud computing enhanced service development architecture for
the living usability lab. In Cruz-Cunha, M., Varajao, J., Powell, P., and Martinho, R.,
editors, ENTERprise Information Systems, volume 221 of Communications in Computer
and Information Science, pages 289–296. Springer Berlin Heidelberg.
[Thies and Vossen, 2008] Thies, G. and Vossen, G. (2008). Web-oriented architectures:
On the impact of web 2.0 on service-oriented architectures. In Asia-Pacific Services
Computing Conference, 2008. APSCC ’08. IEEE, pages 1075–1082.
[Tomitsch et al., 2010] Tomitsch, M., Singh, N., and Javadian, G. (2010). Using diaries
for evaluating interactive products: The relevance of form and context. In Proceedings
of the 22Nd Conference of the Computer-Human Interaction Special Interest Group of
Australia on Computer-Human Interaction, OZCHI ’10, pages 204–207, New York, NY,
USA. ACM.
[Vergara, 1994] Vergara, H. (1994). Protum - a prolog based tool for user modeling. Berich
Nr.55/94; WIS-Memo 10.
[W3C, 2007] W3C (2007). Composite Capabilities / Preferences Profile (CC/PP). http:
//www.w3.org/Mobile/CCPP/. [Online; accessed 20-September-2015].
163
[W3C, 2008] W3C (2008). SPARQL Query Language for RDF. http://www.w3.org/TR/
rdf-sparql-query/. [Online; accessed 20-September-2015].
[Want et al., 1992] Want, R., Hopper, A., Falcão, V., and Gibbons, J. (1992). The active
badge location system. ACM Trans. Inf. Syst., 10:91–102.
[Weiser, 1991] Weiser, M. (1991). The computer for the 21st century. Scientific American.
164
Appendix A
Classes
Class: enq:Answer
– Class used to represent an Answer.
– SubClassOf: cfw:Output
Class: enq:Enquiry
– Class used to represent an Enquiry.
Class: enq:EnquiryGroup
– Class used to classify types of enquiries.
Class: enq:Question
– Class used to represent a Question.
– SubClassOf: cfw:Input
Properties
Property: enq:belongsToEnquiry
– Defines to which enquiry does a question belong to.
– Domain: enq:Question
– Range: enq:Enquiry
Property: enq:hasTransitionTo
165
– Identifies the next question in a sequence of questions inside an enquiry.
– Domain: enq:Question
– Range: enq:Question
Property: enq:hasEnquiry
– States a sub-enquiry’s owner.
– Domain: enq:Enquiry
– Range: enq:Enquiry
Property: enq:hasEnquiryGroup
– Identifies the enquiry group of an enquiry.
– Domain: enq:Enquiry
– Range: enq:EnquiryGroup
Property: enq:hasFirstElement
– Identifies the first element of an Enquiry.
– Domain: enq:Enquiry
– Range: enq:Question, enq:Enquiry
Property: enq:hasDescription
– Defines a description of an enquiry or an enquiry group.
– Domain: enq:Enquiry, enq:EnquiryGroup
– Range: xsd:string
Classes
Class: evt:Event
– Represents an event that may occur in nodes and is extended in virtual domain.
– SubClassOf: epr:EventProcessingRuleElement
Class: evt:Timestamp
– Represents the instance in time that the event has occurred.
– Is Equivalent To: xsd:dateTime, eval:Timestamp
Class: evt:AtomicEventProducer
– Represents a producer of an evt:Event.
166
Properties
Property: evt:hasTimestamp
– Indicates the date and time that the event has occurred.
– Domain: evt:Event
– Range: evt:Timestamp
Classes
Class: epr:EventProcessingRule
– Represents an event processing rule.
Class: epr:EventProcessingRuleElement
– Represents an element which belongs to the EPR.
Class: epr:EventOperation
– Represents an event operation of an EPR.
– SubClassOf: epr:EventProcessingRuleElement
Class: epr:EventOperationNOT
– Represents the event operation applying a ‘Negation’ logic to an event rule
element.
– SubClassOf: epr:EventOperation
Class: epr:EventOperationAND
– Represents the event operation applying an ‘And’ logic to two event rule ele-
ments.
– SubClassOf: epr:EventOperation
Class: epr:EventOperationOR
– Represents the event operation applying an ‘Or’ logic to two event rule elements.
– SubClassOf: epr:EventOperation
Class: epr:EventOperationFunction
167
– Represents the event operation ‘Function’ which abstracts operations that rep-
resents predicates that have arguments.
– SubClassOf: epr:EventOperation
Class: epr:EventOperationDelay
– Represents the event operation ‘Delay’ which defines an operation that imposes
a waiting period of time to the EPR.
– SubClassOf: epr:EventOperationFunction
Class: epr:EventOperationActiveInterval
– Represents the event operation ‘ActiveInterval’ which defines an operation that
is only active during an period of time after the initialization of the EPR.
– SubClassOf: epr:EventOperationFunction
Class: epr:EventOperationRepetition
– Represents the event operation ‘Repetition’ which defines an operation that
imposes that its associated event rule element must occur a specific number of
times to be considered as fulfilled.
– SubClassOf: epr:EventOperationFunction
Properties
Property: epr:hasRootElement
– Identifies the root element of the EPR.
– Domain: epr:EventProcessingRule
– Range: epr:EventProcessingRuleElement
Property: epr:hasRuleElement
– Indicates to whom - event processing rule element - is an event operation applied
to.
– Domain: epr:EventRuleElement
– Range: epr:EventRuleElement
Property: epr:hasRepetitionTimes
– Indicates the number of repetitions for the event operation repetition.
– Domain: epr:EventOperationRepetition
– Range: xsd:integer
Property: epr:hasInterval
168
– Indicates the interval for the event operation delay.
– Domain: epr:EventOperationDelay, epr:EventOperationActiveInterval, epr:EventOperation
– Range: xsd:double
Property: epr:evaluatesAtEnd
– Indicates the whether the event operation ‘ActiveInterval’ evaluates its associ-
ated element during or only when the interval terminates.
– Domain: epr:EventOperationActiveInterval
– Range: xsd:boolean
Property: epr:hasName
– Allowing the specification of a name to an EPR.
– Domain: epr:EventProcessingRule
– Range: xsd:string
Classes
Class: eval:User
– Identifies a user (node) via its ID.
Class: eval:Evaluator
– Identifies an evaluator in a virtual domain.
Class: eval:Evaluation
– Identifies an evaluation scenario created in the scope of a virtual domain.
Class: eval:EvaluationInstantiation
– Identifies an instance of an evaluation in a virtual domain.
Class: eval:Timestamp
– Identifies an instance of an evaluation in a virtual domain.
– Is Equivalent To: evt:Timestamp, xsd:dateTime
169
Properties
Property: eval:hasCreated
– Defines who was the creator of an evaluation in a virtual domain.
– Domain: eval:Evaluation
– Range: eval:Evaluator
Property: eval:hasEvaluation
– Defines the evaluation specification to whom the instance corresponds to.
– Domain: eval:EvaluationInstantiation
– Range: eval:Evaluation
Property: eval:hasUser
– Defines the users to whom the evaluation instantiation is/was applied to.
– Domain: eval:EvaluationInstantiation
– Range: eval:User
Property: eval:hasStartDate
– Defines the start date and time for an evaluation instantiation.
– Domain: eval:EvaluationInstantiation
– Range: eval:Timestamp
Property: eval:hasEndTime
– Defines the end date and time for an evaluation instantiation.
– Domain: eval:EvaluationInstantiation
– Range: eval:Timestamp
Classes
Class: ast:EvaluationAssessment
– Represents an evaluation assessment which defines a set of evaluation elements
to be applied to the user.
Class: ast:EvaluationAssessmentElement
170
– Represents an evaluation assessment element which belongs to an assessment.
Class: ast:EvaluationAssessmentInstantiation
– Represents an instantiation of an evaluation assessment when an evaluation is
instantiated to a set of users.
Class: ast:EvaluationItem
– Represents evaluation instruments which can be applied to a user in the scope
of an evaluation assessment (ex.: enquiries and EPRs)
Properties
Property: ast:hasEvaluation
– Defines the evaluation to whom the evaluation assessment belongs to.
– Domain: ast:EvaluationAssessment
– Range: eval:Evaluation
Property: ast:hasEvaluationAssessment
– Defines the evaluation assessment to whom the instance is related.
– Domain: ast:EvaluationAssessmentInstantiation
– Range: ast:EvaluationAssessment
Property: ast:hasEvaluationInstantiation
– Defines the instantiation to whom the assessment instantiation is associated
with.
– Domain: ast:EvaluationAssessmentInstantiation
– Range: eval:EvaluationInstantiation
Property: ast:hasFirstElement
– Defines the evaluation element which initiates the evaluation assessment.
– Domain: ast:EvaluationAssessment
– Range: ast:EvaluationAssessmentElement
Property: ast:represents
– Indicates which evaluation instrument/item does the evaluation assessment el-
ement correspond to.
– Domain: ast:EvaluationAssessmentElement
– Range: ast:EvaluationItem
171
Property: ast:followedBy
– Indicates the next evaluation assessment element within the evaluation assess-
ment.
– Domain: ast:EvaluationAssessmentElement
– Range: ast:EvaluationAssessmentElement
Classes
Class: cfw:Job
– Represents the top level of a compflow specification. Indicates the first workflow
of an execution specification.
Class: cfw:Workflow
– Defines a series of ’Activity’ elements in a sequential flow.
– SubClassOf: cfw:Activity
Class: cfw:Activity
– Represents the set of possible classes that can be part of a workflow.
Class: cfw:Executable
– Represents all executable elements that can be found in a workflow.
– SubClassOf: cfw:Activity
Class: cfw:Task
– Represents an executable element with an input and an output, executed via a
TaskInterface.
– SubClassOf: cfw:Executable
Class: cfw:Event
– Represents an executable element with an input, executed via an EventInterface.
– SubClassOf: cfw:Executable
Class: cfw:InstantiationEvent
– Extends the Event as an executable element. When it executes, renews itself
and continues active.
172
– SubClassOf: cfw:Event
Class: cfw:Interface
– Executes an executable element.
Class: cfw:EventInterface
– Executes an Event element.
– SubClassOf: cfw:Interface
Class: cfw:TaskInterface
– Executes a Task element.
– SubClassOf: cfw:Interface
Class: cfw:Priority
– Determines the priority of an activity element.
Class: cfw:State
– Determines the execution state of an activity element.
Class: cfw:Gateway
– Indicates a decision point in the workflow that may the execution in one way or
another.
– SubClassOf: cfw:Activity
Class: cfw:Input
– Indicates the input of either a task or an event class.
Class: cfw:Output
– Indicates the output of a task.
Properties
Property: cfw:hasJob
– Indicates which Job corresponds to the execution of an evaluation assessment
instantiation.
– Domain: eval:EvaluationAssessmentInstantiation
– Range: cfw:Job
Property: cfw:hasWorkflow
173
– Indicates the first workflow of a Job element.
– Domain: cfw:Job
– Range: cfw:Workflow
Property: cfw:hasFirstActivity
– Indicates the first activity within a workflow.
– Domain: cfw:Workflow
– Range: cfw:Activity
Property: cfw:hasCurrentActivity
– Indicates what activity is currently being executed at a workflow.
– Domain: cfw:Workflow
– Range: cfw:Activity
Property: cfw:hasActivity
– Indicates the activities that belong to the workflow.
– Domain: cfw:Workflow
– Range: cfw:Activity
Property: cfw:hasPriority
– Indicates the priority that an activity may have within a workflow. The priority
may be used in execution to decide which activity will run first.
– Domain: cfw:Activity
– Range: cfw:Priority
Property: cfw:hasState
– Indicates the current status of an activity when in execution.
– Domain: cfw:Activity
– Range: cfw:Status
Property: cfw:executedBy
– Indicates who is responsible for executing an ’Executable’ element.
– Domain: cfw:Executable
– Range: cfw:Interface
Property: cfw:hasInput
– Indicates the input of a Task or Event element.
174
– Domain: cfw:Task, cfw:Event
– Range: cfw:Input
Property: cfw:hasOutput
– Indicates the output of a Task element
– Domain: cfw:Task
– Range: cfw:Output
Property: cfw:transitionTo
– Indicates the following element within a workflow.
– Domain: cfw:Activity
– Range: cfw:Activity
175
Appendix B
Table B.1: Comparison between our solution and other ESM tools
176