0% found this document useful (0 votes)
22 views57 pages

Computer Science and Engineering Theory and Applications Coll. - Read The Ebook Online or Download It To Own The Complete Version

The document promotes a collection of ebooks available for download at textbookfull.com, focusing on various topics in computer science and engineering. It highlights the importance of context-aware recommender systems and introduces a software framework called MoRe, designed to assist developers in building such systems. The book aims to provide a comprehensive overview of advances in computer science and engineering, catering to students, researchers, and professionals in the field.

Uploaded by

gabessafija
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views57 pages

Computer Science and Engineering Theory and Applications Coll. - Read The Ebook Online or Download It To Own The Complete Version

The document promotes a collection of ebooks available for download at textbookfull.com, focusing on various topics in computer science and engineering. It highlights the importance of context-aware recommender systems and introduces a software framework called MoRe, designed to assist developers in building such systems. The book aims to provide a comprehensive overview of advances in computer science and engineering, catering to students, researchers, and professionals in the field.

Uploaded by

gabessafija
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 57

Explore the full ebook collection and download it now at textbookfull.

com

Computer Science and Engineering Theory and


Applications Coll.

https://textbookfull.com/product/computer-science-and-
engineering-theory-and-applications-coll/

OR CLICK HERE

DOWLOAD EBOOK

Browse and Get More Ebook Downloads Instantly at https://textbookfull.com


Click here to visit textbookfull.com and download textbook now
Your digital treasures (PDF, ePub, MOBI) await
Download instantly and pick your perfect format...

Read anywhere, anytime, on any device!

Advances and Applications in Computer Science, Electronics


and Industrial Engineering: Proceedings of the Conference
on Computer Science, Electronics and Industrial
Engineering (CSEI 2019) Jyrki Nummenmaa
https://textbookfull.com/product/advances-and-applications-in-
computer-science-electronics-and-industrial-engineering-proceedings-
of-the-conference-on-computer-science-electronics-and-industrial-
engineering-csei-2019-jyrki-numme/
textbookfull.com

Algebra Topology Differential Calculus and Optimization


Theory For Computer Science and Engineering Jean Gallier

https://textbookfull.com/product/algebra-topology-differential-
calculus-and-optimization-theory-for-computer-science-and-engineering-
jean-gallier/
textbookfull.com

Cognitive Informatics, Computer Modelling, and Cognitive


Science: Theory, Case Studies, and Applications: Volume 1:
Theory, Case Studies, and Applications 1st Edition Ganesh
R. Sinha (Editor)
https://textbookfull.com/product/cognitive-informatics-computer-
modelling-and-cognitive-science-theory-case-studies-and-applications-
volume-1-theory-case-studies-and-applications-1st-edition-ganesh-r-
sinha-editor/
textbookfull.com

Computer Science Theory and Applications 15th


International Computer Science Symposium in Russia CSR
2020 Yekaterinburg Russia June 29 July 3 2020 Proceedings
Henning Fernau
https://textbookfull.com/product/computer-science-theory-and-
applications-15th-international-computer-science-symposium-in-russia-
csr-2020-yekaterinburg-russia-june-29-july-3-2020-proceedings-henning-
fernau/
textbookfull.com
Transactions on Engineering Technologies World Congress on
Engineering and Computer Science 2015 Amouzegar

https://textbookfull.com/product/transactions-on-engineering-
technologies-world-congress-on-engineering-and-computer-
science-2015-amouzegar/
textbookfull.com

Probability and statistics with reliability queueing and


computer science applications Trivedi

https://textbookfull.com/product/probability-and-statistics-with-
reliability-queueing-and-computer-science-applications-trivedi/

textbookfull.com

Advances in Computer Science for Engineering and Education


II Zhengbing Hu

https://textbookfull.com/product/advances-in-computer-science-for-
engineering-and-education-ii-zhengbing-hu/

textbookfull.com

Advances in Computer Science for Engineering and Education


III Zhengbing Hu

https://textbookfull.com/product/advances-in-computer-science-for-
engineering-and-education-iii-zhengbing-hu/

textbookfull.com

Academic English for Computer Science An English for


Specific and Academic Purposes Course for International
students of Computer Science Computer Engineering
Information and Communication Systems Rizopoulou
https://textbookfull.com/product/academic-english-for-computer-
science-an-english-for-specific-and-academic-purposes-course-for-
international-students-of-computer-science-computer-engineering-
information-and-communication-systems-riz/
textbookfull.com
Studies in Systems, Decision and Control 143

Mauricio A. Sanchez
Leocundo Aguilar
Manuel Castañón-Puga
Antonio Rodríguez-Díaz Editors

Computer
Science and
Engineering—
Theory and
Applications
Studies in Systems, Decision and Control

Volume 143

Series editor
Janusz Kacprzyk, Polish Academy of Sciences, Warsaw, Poland
e-mail: [email protected]
The series “Studies in Systems, Decision and Control” (SSDC) covers both new
developments and advances, as well as the state of the art, in the various areas of
broadly perceived systems, decision making and control- quickly, up to date and
with a high quality. The intent is to cover the theory, applications, and perspectives
on the state of the art and future developments relevant to systems, decision
making, control, complex processes and related areas, as embedded in the fields of
engineering, computer science, physics, economics, social and life sciences, as well
as the paradigms and methodologies behind them. The series contains monographs,
textbooks, lecture notes and edited volumes in systems, decision making and
control spanning the areas of Cyber-Physical Systems, Autonomous Systems,
Sensor Networks, Control Systems, Energy Systems, Automotive Systems,
Biological Systems, Vehicular Networking and Connected Vehicles, Aerospace
Systems, Automation, Manufacturing, Smart Grids, Nonlinear Systems, Power
Systems, Robotics, Social Systems, Economic Systems and other. Of particular
value to both the contributors and the readership are the short publication timeframe
and the world-wide distribution and exposure which enable both a wide and rapid
dissemination of research output.

More information about this series at http://www.springer.com/series/13304


Mauricio A. Sanchez Leocundo Aguilar

Manuel Castañón-Puga Antonio Rodríguez-Díaz


Editors

Computer Science
and Engineering—Theory
and Applications

123
Editors
Mauricio A. Sanchez Manuel Castañón-Puga
Calzada Universidad Calzada Universidad
Tijuana, Baja California Tijuana, Baja California
Mexico Mexico

Leocundo Aguilar Antonio Rodríguez-Díaz


Calzada Universidad Calzada Universidad
Tijuana, Baja California Tijuana, Baja California
Mexico Mexico

ISSN 2198-4182 ISSN 2198-4190 (electronic)


Studies in Systems, Decision and Control
ISBN 978-3-319-74059-1 ISBN 978-3-319-74060-7 (eBook)
https://doi.org/10.1007/978-3-319-74060-7
Library of Congress Control Number: 2017963287

© Springer International Publishing AG, part of Springer Nature 2018


This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part
of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations,
recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission
or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar
methodology now known or hereafter developed.
The use of general descriptive names, registered names, trademarks, service marks, etc. in this
publication does not imply, even in the absence of a specific statement, that such names are exempt from
the relevant protective laws and regulations and therefore free for general use.
The publisher, the authors and the editors are safe to assume that the advice and information in this
book are believed to be true and accurate at the date of publication. Neither the publisher nor the
authors or the editors give a warranty, express or implied, with respect to the material contained herein or
for any errors or omissions that may have been made. The publisher remains neutral with regard to
jurisdictional claims in published maps and institutional affiliations.

Printed on acid-free paper

This Springer imprint is published by the registered company Springer International Publishing AG part
of Springer Nature
The registered company address is: Gewerbestrasse 11, 6330 Cham, Switzerland
Preface

The fields of computer science and computer engineering are rich within them-
selves such that they are comprised of a vast amount of areas, such that most books
decide to better separate their contents into specialized areas, ignoring the rest
of their field. But this book takes on a different point of view when compared to
most of existing literature, that is, to collect from different areas within these two
fields to demonstrate the great variety which exists, where by harboring different
contributed research chapters in a single book, instead of granular specialized areas,
the concept of the complete fields is once again grasped.
As computer science and computer engineering are two different fields, they
have more in common than differences; therefore, the objective of this book is to
convey their involvement in society by showing advances in theoretical practices,
new uses for existing concepts, and applications.
This book is intended as a reference for pre-graduate students who wish to know
more about advances in the fields of computer science and computer engineering, or
acquire ideas as to what types of areas can be researched, exploited, or applied; for
graduate students and researchers, who might need to know the current state of
included contributed research, as well as acquire ideas for their own research; and
for professionals, who would want to know the current state of their fields, get ideas
to solve problems at their workplace, or simply to get a sense of direction as to
where these fields are going.
The contents of this book traverse various areas in the fields of computer
science and computer engineering, such as software engineering, computational
intelligence, artificial intelligence, complex systems, systems, engineering, and
embedded systems.

v
vi Preface

Provided diversity in the contents of this book is the strength between its covers,
we hope that readers enjoy our book and find some utility within its covers. And
that they start seeing that the fields of computer science and computer engineering
can also be seen as complete and diverse fields, instead of only parts of them.

Tijuana, Mexico Mauricio A. Sanchez


November 2017 Leocundo Aguilar
Manuel Castañón-Puga
Antonio Rodríguez-Díaz
Contents

A Comprehensive Context-Aware Recommender


System Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Sergio Inzunza and Reyes Juárez-Ramírez
Executive Functions and Their Relationship with
Interaction Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Andrés Mejía Figueroa, J. Reyes Juárez Ramírez and David Saldaña Sage
Integrating Learning Styles in an Adaptive Hypermedia System with
Adaptive Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Carlos Hurtado, Guillermo Licea and Mario Garcia-Valdez
On Modeling Tacit Knowledge for Intelligent Systems . . . . . . . . . . . . . . 69
Violeta Ocegueda-Miramontes, Antonio Rodríguez-Díaz, Juan R. Castro,
Mauricio A. Sanchez and Olivia Mendoza
Influence of the Betweenness Centrality to Characterize the Behavior
of Communication in a Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
K. Raya-Díaz, C. Gaxiola-Pacheco, Manuel Castañón-Puga, L. E. Palafox
and R. Rosales Cisneros
Multi-layered Network Modeled with MAS and Network Theory . . . . . 103
Jose Parra, Carelia Gaxiola and Manuel Castañón-Puga
A Fuzzy Inference System and Data Mining Toolkit for Agent-Based
Simulation in NetLogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Josue-Miguel Flores-Parra, Manuel Castañón-Puga,
Carelia Gaxiola-Pacheco, Luis-Enrique Palafox-Maestre, Ricardo Rosales
and Alfredo Tirado-Ramos
An Approach to Fuzzy Inference System Based Fuzzy
Cognitive Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Itzel Barriba, Antonio Rodríguez-Díaz, Juan R. Castro
and Mauricio A. Sanchez

vii
viii Contents

Detecting Epilepsy in EEG Signals Using Time, Frequency


and Time-Frequency Domain Features . . . . . . . . . . . . . . . . . . . . . . . . . . 167
D. E. Hernández, L. Trujillo, E. Z-Flores, O. M. Villanueva
and O. Romo-Fewell
Big Data and Computational Intelligence: Background, Trends,
Challenges, and Opportunities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Sukey Nakasima-López, Mauricio A. Sanchez and Juan R. Castro
Design of a Low-Cost Test Plan for Low-Cost
MEMS Accelerometers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Jesús A. García López and Leocundo Aguilar
Evaluation of Scheduling Algorithms for 5G Mobile Systems . . . . . . . . 213
Christian F. Müller, Guillermo Galaviz, Ángel G. Andrade, Irina Kaiser
and Wolfgang Fengler
User Location Forecasting Based on Collective Preferences . . . . . . . . . . 235
Jorge Alvarez-Lozano, J. Antonio García-Macías and Edgar Chávez
Unimodular Sequences with Low Complementary
Autocorrelation Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
Israel Alejandro Arriaga-Trejo and Aldo Gustavo Orozco-Lugo
A Comprehensive Context-Aware
Recommender System Framework

Sergio Inzunza and Reyes Juárez-Ramírez

Abstract Context-Aware Recommender System research has realized that effec-


tive recommendations go beyond recommendation accuracy, thus research has paid
more attention to human and context factors, as an opportunity to increase user
satisfaction. Despite the strong tie between recommendation algorithms and the
human and context data that feed them, both elements have been treated as sepa-
rated research problems. This document introduces MoRe, a comprehensive soft-
ware framework to build context-aware recommender systems. MoRe provides
developers a set of state of the art recommendation algorithms for contextual and
traditional recommendations covering the main recommendation techniques exist-
ing in the literature. MoRe also provides developers a generic data model structure
that supports an extensive range of human, context and items factors that is
designed and implemented following the object-oriented paradigm. MoRe saves
developers the tasks of implementing recommendation algorithms, and creating a
structure to support the information the system will require, proving concrete
functionality, and at the same time is generic enough to allow developers adapt its
features to fit specific project needs.

1 Introduction

Recommender systems or recommendation systems are information filtering tools


that alleviate information overload to users, mainly by predicting the preference of
the user for certain items and presenting the users the items more likely to be
consumed by the user [1].
Context-Aware Recommender Systems (CARS) aims to further improve recom-
mendation accuracy and user satisfaction by taking into account contextual infor-
mation [2]. The inclusion of this new information into the recommendation process
has proved to help increasing prediction accuracy of recommender systems [3].

S. Inzunza (&)  R. Juárez-Ramírez


Universidad Autónoma de Baja California, Tijuana, Baja California, Mexico
e-mail: [email protected]

© Springer International Publishing AG, part of Springer Nature 2018 1


M. A. Sanchez et al. (eds.), Computer Science and Engineering—Theory
and Applications, Studies in Systems, Decision and Control 143,
https://doi.org/10.1007/978-3-319-74060-7_1
2 S. Inzunza and R. Juárez-Ramírez

CARS are based on the idea that similar user in similar context will like similar
items, and that the user preferences for certain item change according to the con-
textual situation [4].
In the beginning, the research in CARS is leaned toward the development of
new, and optimizing the existing algorithms to support contextual information and
to generate better recommendation by improving the accuracy [5].
In recent years, researchers have become more aware of the fact that effective-
ness of recommender systems goes beyond recommendation accuracy. Thus,
research in the context and human factors has gained increased interest [6] as a
potential opportunity to increase the user satisfaction with the recommendation
results.
Despite the strong tie between the recommendation algorithms and the data
about user and context factors, both elements have been treated as separated
research problems. Because of this separation, to implement a CARS nowadays,
software developers, and architects must divide their efforts into 2 topics: (i) The
recommendation system topic to choose and implement the best algorithm for their
CARS domain; (ii) The second topic that also requires a significant amount of effort
is the user modeling. In the first topic, according to [7], the implementation of
recommendation algorithms can be a complicated task, especially for developers
who are not experts in the field [5]. As for the second topic, software architects need
to come up with a data model that is capable of holding all the needed information
for the algorithms to work, if the model designer has no experience with CARS
over what aspects to model for better recommendations, this can result in an
incomplete and overspecialized model [8], that can limit the functionality of the
recommendation algorithms.
A software framework to support the development of advanced, complex con-
textual recommender systems should provide the developer both main elements of a
CARS, implemented algorithms from different recommendation techniques so
developer can select the one that better work for CARS item domains (e.g. songs,
movies, etc.) [9], as well a data model structure generic enough to work with most
CARS domains and give developers the option to adapt it to suit the specific need
of the project. Such a framework is, to the best of our knowledge, currently no
available. Even when some framework and libraries proposals exist to help in the
creation of contextual recommender systems, they are focused on either modeling
the user and context information [10] and do not include recommendation features,
or focus only in the algorithms for recommendation (like Hybreed [5]) and don’t
considered modeling the user and context information and rely on the information
being in a dataset file, which is not practical for a real-world applications.
In this paper, we introduce MoRe (Modeling and Recommendation framework),
a software framework designed to support the creation of CARS by proving
developers a set of state of the art contextual algorithms, and a generic user model
capable of structure and manage the information required by the CARS. We con-
sider MoRe to be a comprehensive framework, as in a single proposal, provides
means to solve both main problems developers encounter when implementing
CARS (i.e. data modeling and recommendation algorithms). MoRe provide
A Comprehensive Context-Aware Recommender System Framework 3

developers object-oriented classes and methods they can use to store, retrieve and
perform recommendation over the user, context and item data.
MoRe aims at serving as a tool for new CARS development, helping developers
in the algorithm implementation by providing ready to work algorithms from main
recommendation techniques for multidimensional data (transformation and adap-
tation). MoRe also helps in the creation of the data architecture by proving an
extensive class architecture capable of organizing, persisting and retrieving data
about the user, context, and items for most popular recommendation domains, like
movie, song, hotels, restaurants, and travel recommendation among others. For the
data structure, uses GUMORS, a General User Model for Recommender System
presented in our previous work [11].
The rest of this document is organized as follows: Sect. 2 describes the back-
ground and related work, Sect. 3 describes the MoRe framework, Sect. 4 present
some evaluation performed, and Sect. 5 present conclusion and future work.

2 Background and Related Work

The implementation of CARS requires modeling of the data and implementation of


algorithms that use such data to generate predictions, as mentioned earlier, both
tasks are treated separately in literature. The same way, in this section we review
and analyze the most relevant proposals related to modeling the context for adaptive
systems and compare them with [11], the data model used in MoRe. Then we
review and analyze most relevant proposals of software libraries and frameworks
created to generate context-based recommendations.
This section concludes with a set of requirements derived from literature that a
software framework intended to help developers in the creation of CARS should
fulfill.

2.1 Context and Context Awareness

The definitions for context varies depending in the domains of applications, in


computer science Schilit et al. [12] described context as a union of three aspects:
“the location of user, the collection of nearby people and objects, as well as the
change to those objects over time”, but such definition is rather broad. Dey and
Abowd [13] provide another definition that is commonly accepted in computer
science areas:
Context is any information that can be used to characterize the situation of an entity. An
entity is a person, place or object that is considered relevant to the interaction between a
user and an application, including the user and the applications themselves.
4 S. Inzunza and R. Juárez-Ramírez

Certainly, based on this definition of context, the user plays an important role,
the context of a user can include any information that describes his situation, like
his location and time, emotional, mental and physiological information, etc. The
amount and type of information to include in the contextualization of the user
depends on the system and the purpose of such information.
A system is considered to be context-aware if it can express aspects of the
environment and subsequently uses such information to adapt its functionality to
the context of use [14]. Therefore, context-awareness refers to the capability of an
application being aware of its physical environment or situation and responding
proactively and intelligently based on such awareness.
Context-aware systems aim at somehow gathering (through sensing, inferring or
directly asking for) human and environmental phenomena for later assisting users to
archive a desirable quality of living standards [15].
From an informational perspective, context provides information that systems
can use to form a contextual space, which virtually represents the situation of the
user [16].
From a software infrastructural perspective, context provides computing devices
with information about its environment as provided by other parts or modules of the
system (sensing module for example). As a consequence, different ‘types’ or ‘di-
mensions’ of context emerge, e.g. physical and computation dimensions.

2.1.1 Context Representation

There are several techniques that will allow a developer to represent the contextual
information inside a computational system, thus to be used in a CARS. Works like
[17–19] present extensive surveys on the difference of each technique. Next, we
describe and discuss the most commonly used representation techniques at
high-level, and present the main advantages and disadvantages of each one.
• Key-Value models. These models use pairs of a key and value to enumerate
attributes (key) and their values to describe the contextual and user information.
These models are the simplest data structure and are easy to manage, especially
when they have a small amount of data. However, key-value modeling is not
scalable and not suitable to represent complex data models [19]. This technique
is best suited to represent and store temporary information, therefore is
increasingly less used in recent contextual and user models.
• Markup scheme models. These models use a hierarchical data structure formed
by markup tags with attributes and content. To represent the user and context
aspect, markup models use a set of symbols and annotations inserted in a text
document that controls the structure, formatting, and relations among annota-
tions [20]. As markup languages do not provide advanced expressive capabil-
ities, reasoning over the data they represent is hard. Further, retrieval,
interoperability, and re-usability of the data over different models can be diffi-
cult, specifically if such models use different markup schemes [17].
A Comprehensive Context-Aware Recommender System Framework 5

• Ontology-based models. Ontologies represent a description of the concepts and


relationships. Ontologies incorporate semantics into XML-based representation
or Resource Description Framework [21]. Ontology-based context models are
fairly common, because of the formal expressiveness and the ability of
ontologies to support reasoning. However, is hard to construct complete
ontologies and avoid the ambiguity in the ontology [18]. Also the information
retrieval can be computationally intensive and time-consuming when the
amount of data is increased [17].
• Graphical models. These models are mainly based on the Unified Modeling
Language (UML) [22] and Entity-Relationship Model (ERM) [23]. UML is a
standardized general-purpose modeling language used in software architecture
description, which can represent the user and context aspects, as well as its
relations. Graphical models are capable of expressing the modeled aspects by
graphical diagrams, and regarding expressive richness, graphical modeling is
better than markup and key-value modeling as it allows relationships to be
captured into the model [17].
• Object-oriented context model. These technique models the data by using
object-oriented techniques, this offers the full power of object orientation like
encapsulation, reusability, and inheritance. In most cases, this model technique
encapsulates the processing of context at the object level and allows instances to
access context and user information by inheritance mechanism [18]. The main
flaw of this technique is the lack of direct model validation, and when complex
models are created, it may not be supported by limited resources hand-held
devices [19]. Nevertheless, as most of the high-level programming languages
support object-oriented concepts, these models can be integrated into
context-aware systems easily. This makes object-oriented modeling to be used
as code base, run-time, manipulation, and storage mechanism for user and
context models.
As there are various model representation techniques, each with their advantages
and disadvantages, a challenged to overcome in our development was to choose the
one that better suit the need to represent a data model for a context-aware rec-
ommendation systems framework. We opted to create a combination of graphical
modeling, which allowed us to create a reach and expressive data model that
contains the intrinsic relationships of the user, context and items information.

2.2 Frameworks for Context-Aware Recommendations

Context-Aware Recommendation Systems has gained a lot of attention in the


personalization and data mining communities, as a result, there exist a lot of lit-
erature focused on different aspects of CARS. Next, we review and analyze CARS
literature that proposed frameworks aimed at supporting developers in the
6 S. Inzunza and R. Juárez-Ramírez

implementation of these type of systems and compares how each of the presented
proposals relates to MoRe.
MyMediaLite [24] is a recommendation library implemented in C# and aimed
towards recommending items based on collaborative filtering recommendation
technique. Even when MyMediaLite was designed to work in traditional (2D)
recommendations, it has been used by [25] as a base-line recommender in
context-aware recommendation. MyMediaLite is similar to our proposal in the fact
that both provide the feature of 2D collaborative-filtering algorithms, but MoRe
goes far beyond providing nD recommendation algorithms.
Hybreed [5] is a Java-based recommendation framework designed specifically to
help developers in the creation CARS. Hybreed focuses on the integration of
external context to recommendation systems and the hybrid combination of dif-
ferent basic recommendation methods. A notable feature of Hybreed is its dynamic
contextualization approach that creates an in-memory temporal model of the user
containing his current situation. Hybreed and MoRe had in common the feature of
proving developers working ready algorithms to generate contextual prediction
based on filtering techniques. But unlike More, Hybreed do not provide recom-
mendation algorithms based on the context-modeling technique. In addition,
Hybreed stands behind in the data modeling technique, as it uses a limited
Key-Value pair, while MoRe uses a context-aware user model.
ConRec [1] is a context-aware recommendation framework focus on serving as a
tool for developers when implementing CARS, ConRec mainly focuses on a
temporal dynamic representation of context, which can automatically aggregate
different contextual features into a single one, so it can be easier for algorithms to
process. ConRec includes its own multi-dimensional recommendation algorithms
that works as an extension to Apache Mahout. This proposal does not describe how
user or context factors are considered into the framework, nor how they are stored.
Compared to MoRe, ConRec includes only one algorithm, that is not supported by
other literature, while MoRe contains implementation for various algorithms that
are well supported by previous research. Also, MoRe present an clear and
well-structured manner of managing the data, while ConRec only mentions that
uses it a user, item, rate and context format, and no information in how to take such
approach to implementation is described.
CoGrec [26] is a theoretical recommendation framework designed to gather
latent features of a group of users based on their social networks then uses such
gathered information to predict items that better suit the preferences of all the
individuals in the group. This proposal is described theoretical, and even when
some evaluation results are presented, no implementations details were given.
CoGrec differs from MoRe, on being a group-based recommendation only, while
MoRe is flexible in the target user(s). Also, MoRe is closer to implementation
providing a working-ready framework.
In [27] a context-aware architecture for mobile recommendation systems are
proposed. The architecture is designed to be generic enough to work in any CARS
domain, and focus on supporting the mobility of CARS, and the communication
between the mobile device and the server where the recommendation take place.
A Comprehensive Context-Aware Recommender System Framework 7

A downfall of this architecture only provides a template for pre-filter recommen-


dations only, while MoRe provides templates and implementation for a range of
recommendation techniques. MoRe is also ahead of this proposal in the manage-
ment and modeling of the data, as the proposal only provides the means of storing
and retrieving the information, while MoRe provides, this functionality along with
the design of a generic data structure.
CARSKit [28] is a Java-based algorithms library, which contains implementa-
tions for various recommendation techniques, for traditional (e.g. average and
collaborative filtering) and contextual (e.g. item splitting and context-aware matrix
factorization) recommendations. Even when CARSKit contains one of the most
complete set of algorithms, these are designed for scientific purposes, focused
mainly in the evaluation of algorithm results, and are not capable of recommending
items to a specific user, which is the main function of the algorithms in a real CARS
implementation. MoRe uses some of the algorithms implementation of CARSKit
and adapted them to be able to recommend items to users. CARSKit and More
differ in their nature, as CARSKit is a set of algorithms, while MoRe is a recom-
mendation framework that as part of its features, contains a set of algorithms.

2.3 Requirements for a Context-Aware Recommender


System Framework

Based on related literature presented above, an in the work of [5, 15, 29, 30], this
section describes a series of high-level functional requirements any software
framework aimed to facilitate the creation of context-aware recommender systems
should fulfill.
First of all, such a framework should include recommendation algorithms from
the most relevant contextual recommendation techniques, which developers can set
up with a few lines of code, and be able to obtain the list of recommended items.
These algorithms should cover the main techniques existing nowadays, which
according to Adomavicius [31] are Contextual Filtering and Contextual Modeling.
To support contextual modeling recommendation, the framework should include
multi-dimensional recommendation algorithms, and to support contextual filtering,
traditional recommendation algorithms are needed as well. Apart from the imple-
mented and ready to work algorithms, the framework should support the integration
of custom techniques and new algorithms.
With regard to the data needed by CARS, the modeling of contextual infor-
mation has been treated separately from the recommendation functions, and none of
the currently existing frameworks support the management of the CARS data in the
same proposal as contextual recommendation algorithms. Therefore, a compre-
hensive contextual recommendation framework should provide a baseline data
structure that supports the data about the users of the system, their context, the items
that the CARS will recommend, and the relations among the different aspects. In
8 S. Inzunza and R. Juárez-Ramírez

this aspect, diversity has a great importance [6], as the framework should support
CARS from different items domains, i.e. the framework should be able to recom-
mend movies, as well as restaurants or pets.
Besides this specific requirements, a framework targeting developers should
meet general software engineering requirements, for example, the set of guidelines
for software architecture proposed by Microsoft Application Architecture Guide
[32]. Such a framework should make easy for developers to adapt existing and to
add new functionality.
According to [5], the expected solution is not as simple as combine all features
from different proposal that meets certain requirements to create a framework that
covers them all. The challenge is to select the most valuable concepts of all these
existing approaches, reduce their programming complexity and combine them, such
that the resulting framework coverts the described requirements with a rich set of
functionalities, and at the same time is easy to use and reduce development effort.

3 The Comprehensive Context-Aware Recommender


System Framework

This section describes the MoRe (Modeling and Recommendation) framework that
was created to support the creation of context-aware recommender systems, by
providing a comprehensive class architecture that can model and manage the
information required for the CARS systems to work, and by incorporating a set of
state of the art recommender algorithms.
MoRe target, but is not limited to, the following users:
• Software developers who want to create a new CARS, either with or without
experienced creating this type of applications. To these users MoRe offers a data
modeling feature that developers can rely on to manage the information needed
by the recommender algorithms. MoRe also includes a set of state of the art that
with a few lines of code, developers can set up to generate the contextual
recommendations.
• Software architects who want to create a data architecture to support the user,
context and item information for a CARS. To these users MoRe presents an
extensible class structure that supports all this information, and they can extend
or user it straight into the system architecture.
• Researchers of recommendation systems area, who want to compare existing
recommendation algorithms with a new approach, as they can use load their
dataset(s) into MoRe data model and perform recommendations over it using the
contextual algorithms included. Or researchers who just want to put their
algorithms to test in a real scenario, and don’t want to spend time designing a
data model.
A Comprehensive Context-Aware Recommender System Framework 9

Fig. 1 Architectural view of


MoRe framework

MoRe is implemented as a C# Framework following the Object-Oriented


Paradigm (OOP). MoRe can be set up with a few lines of code, and can help in the
modeling and management (storage and retrieval) of user, context, and item
information, as well in the process of generating contextual recommendations based
on the acquired information. The central element of the framework is a
context-aware user model designed specifically for CARS, that along with a data
management module, and with a recommendation algorithms constitute the pro-
posed MoRe framework.
Next, Fig. 1 presents an overall view of MoRe framework architecture, then
each component of the framework is described. Section 3.1 describes the data
model, 3.2 describes de data management, and Sect. 3.3 describes the algorithms
included in MoRe framework.

3.1 The Model

In our previous work [11] a Generic User Model for context-aware Recommender
System (GUMORS) was proposed to solve the problem of not existing an extensive
model that can be used as a reference to structure the user and context aspects inside
CARS. GUMORS provides a large set of user, context, and items working together
to create a CARS specific data model, that can be used into multiple CARS
domains. MoRe uses GUMORS as data structure to manage all the information
needed by prediction functions.
GUMORS organize the CARS information into 4 main top-level categories,
namely: User, Context, Item, and Activity information. Next, the four top-level
categories are briefly described, for a more detailed description please refer to [11].
10 S. Inzunza and R. Juárez-Ramírez

3.1.1 User Aspects

User aspects represent the user as a human being, which CARS can use to infer the
user preferences and behavior to better suit the recommendation results.
User aspects are categorized into Contact, Demographic, Physiological, Interest
and Preferences, Role, Personality, Emotion, and Mental information. Next Table 1
describes each category.

3.1.2 Context Aspects

GUMORS represent the context information in 6 categories, namely: Computing,


Location, Time, Physical Conditions, Resource and Social Relation. Next Table 2
briefly describe each context category.

3.1.3 Activity Information

The activities information that can be useful for CARS are also modeled into
GUMORS. An activity relates information about the User that is performing it, in a
specified Context. A more specialized type of activity is called RatedActivity which
also includes information about the item consumed during the activity, and the
feedback (Rating) the user provided. The activity information is used for example
by Google Maps, to suggest the user navigation route according to his displacement
activity (walking, biking, driving, etc.). Spotify also uses activity information to

Table 1 User aspect considered by GUMORS


Category Category description
Contact Refers to identify the user from the rest of the user in the system, this also
includes information about the user account in the system like the full
name of the user, his email and address
Demographic Describes the demographical information of the user like gender, birthday
and language that the user
Emotion Represents information about the subjective human emotions of the users
Interest and Explicitly describes the interests and preferences of the user for certain
preferences items, and can also be used to store system preferences (e.g. font size)
Mental Used to describe the user’s state of mind, this category includes
information about user’s mood; mental state and cognitive style that can
be used to provide more tailored recommendations
Personality Describes permanent or very slow changing patterns that are associated
with an individual
Physiological Models the aspects of the human body and its functionality
Role This category represents the roles the users play during their activities
A Comprehensive Context-Aware Recommender System Framework 11

Table 2 Contextual information considered by GUMORS


Category Description
Computing This category refers to information about computational elements that the
user is interacting with, or that are blended into the environment
Location Refers to information that relates an item, user, or other context information
with a geographical position. Location include information about the Place
either Physical or Digital, Address and Coordinates for physical
Time Used to capture information about time, such as Date, TimeOfYear,
TimeOfDay, etc.
Physical Describes environmental conditions where the system or user is situated at
condition certain point on time
Resource Model relevant characteristics of the physical or virtual environment
Social Refers to social associations or connections between the user of the system
relations and other persons

Table 3 Classes used by GUMORS to represent the activity information category


Class Description
Activity Main class used to represent the activities. This class has attributes like the Time
Stamp, Name of the activity, and relations to a User and a Context
Rated This class is a specialization of the Activity class. This class includes information
activity of the Item involved in the activity, and the Rating the user gives to such
experience. GUMORS include the following concrete specialization of Rated
Activity: View, Listen, Eat, Travel and Purchase

recommend users songs which rhythm matches his running speed. Next Table 3
shows the classes used by GUMORS to model the activity information.

3.1.4 Items Information

GUMORS also manages the information about the Items the CARS will recom-
mend. For this feature, GUMORS uses an Item super-class that developers can
further specialize through inheritance to fit their specific needs. GUMORS also
contains a series of Item specialization based on the most commonly used items in
CARS literature and considers the commonly used attributes for each item (as
shown in Fig. 2).

3.2 Data Management

The data management module is in charge of persisting the data from the model to a
database and retrieving it back when asked. MoRe uses Entity Framework [33] for
the Object-Relational Mapping (ORM). The use of an ORM for the data persistence
12 S. Inzunza and R. Juárez-Ramírez

Fig. 2 Classes used by GUMORS to model the items of CARS

allows the framework to perform CRUD (Create, Read, Update and Delete) oper-
ations directly over the model classes that is automatically translated into the
database without the need to directly perform queries to the db.
MoRe uses a ModelEntity superclass that contains generic methods with the
logic for all the CRUD operations, using both, synchronous and asynchronous calls.
This superclass is inherited from all the model classes that should be mapped to
database, which inherits the CRUD operations, e.g. Find, FindAll, Save, Delete,
Get, GetAll, etc.

3.2.1 Dataset Generator

The dataset generator is responsible for collecting the data from the database and
organize it so recommendations algorithms can understand it, e.g. Comma
Separated Values (CSV) or Binarized format [34].
MoRe uses Data Annotations to annotate the classes and attributes that will be
part of the resulting dataset. Annotating classes and attributes work as rules that
latter the framework will use to automatically create the dataset, which can be read
by algorithms from memory. As MoRe is designed to work custom internal or
external algorithms, the dataset can also be exported to a file in the specified format,
so any existing algorithm can use the data to generate recommendations.

3.3 Recommendation Algorithms

MoRe uses a large set of algorithms for both, traditional (2D) and contextual
(nD) recommendation. For this first iteration, MoRe uses the set of algorithms
implemented by [28] and a custom wrapper to execute them from C# as originally
the implementation were made under Java development language.
A Comprehensive Context-Aware Recommender System Framework 13

As the framework contained a large set of ready to use algorithms, it can be used
by developers who don’t want to spend too much time implementing existing
recommendation techniques, or by developers that have little experience imple-
menting this type of complex systems [5], the recommendation algorithms can be
used as a black-box, that need to fed whit a dataset (described in previous section),
and will yield a list of recommended item for the specified user.
The framework also allows for custom algorithms to be included, which makes
MoRe ideal for researchers who want to test their new algorithm or recommen-
dation approach against existing state of the art algorithms.
Next, the traditional and contextual recommendation algorithms are described.

3.3.1 Traditional Recommendation Algorithms

Even when MoRe is created to be a context-aware recommendation framework, it


includes traditional recommendation as they are used by filtering recommendation
techniques, described in later section, and even when is not the goal, the framework
can be used for traditional recommendation systems. For this iteration, MoRe
include some of the main traditional recommendation algorithms for every category
(as shown in Table 4), based on the implementation provided by LibRec [35].

3.3.2 Contextual Recommendation Algorithms

The multi-dimensional recommendation algorithms are the core of any recom-


mendation framework, therefore MoRe provides several different algorithms from
state of the art techniques, which gives developers the ability to choose the algo-
rithm that yields better results for their specific domain, as some algorithms may
perform better when recommending movies based on user’s companions, and
others perform better when recommending songs or books.

Table 4 Traditional recommendation techniques and algorithms supported by MoRe


Technique Brief description Algorithms
Ranking This recommendation technique build a SLIM BPR
recommendation recommendation model by analyzing the importance
of each with respect all other items in the system [36]
Average A simple recommendation technique that perform GlobalAvg
recommendation prediction by the average rating given to an element UserAvg
[37] ItemAvg
Collaborative Collaborative-Filtering (CF) techniques construct a UserKNN
filtering model of similarities between users or items based on ItemKNN
recommendation the idea that if two users gave a similar rating for a SVD ++
specific movies, the users or items are very similar
[38]
14 S. Inzunza and R. Juárez-Ramírez

In addition to the list of implemented and ready to work algorithms, MoRe allow
developers to implement their own algorithms o to create hybridizations combining
multiple of the included ones. To implement new algorithms, developers need to
implement the IRecommender or IContextualRecommender class for a new tradi-
tional or contextual algorithms respectively and implement the methods each
interface enforces.
Contextual Filtering Algorithms, try to pre- or post-process the information and
convert it from a multi-dimensional matrix to a 2-dimensional rating matrix that
contains only the user reference (Id), item reference, and rating. Then, this
two-dimensional matrix can be used in traditional algorithms to generate recom-
mendations. There exist many contextual filtering algorithms, one of the most
effective is the context-aware splitting [39]. MoRe includes the three main variants
of this algorithm:
– UserSplitting: From a user point of view, the preference for certain items may
vary depending on the context. User Splitting group items based on the context
and the rating the user gave to them, so when a user gives items good values in a
certain context (e.g. sunny weather) and gives bad rating in another context
situation (e.g. rainy weather), the user can be divided into two users based on
such context (weather in this example).
– ItemSplitting: Separate the item that was rated differently under different context
as being different items. Based on the same rules of UserSplitting to decide
when some instances should be divided, but this process divide items instead of
users.
– UserItemSplitting: Combines both previous separations, the result is that an item
rated by a user in different context, is converted into 2 items, and the user is also
divided into 2 users.
Contextual Modeling Algorithms, unlike splitting approaches, take into account
the influence of context all context aspect on the rating prediction model, which
required the development of new algorithms capable of processing multi-
dimensional matrix and produce a recommendation. The algorithms used for con-
textual modeling supported by MoRe are:
– Tensor Factorization (TF) [40] This algorithm is based on the Matrix
Factorization (MF) dimensional reduction technique which is used for 2D rec-
ommendations. TF consist of extending the two-dimensional MF problem into a
multi-dimensional version, where the rating tensor is converted into a
lower-dimensional vector space. Such that the interactions between users, items,
and contextual factors are represented by a latent factor vector.
– Context-Aware Matrix Factorization (CAMF) [41] is a more scalable (than TF)
contextual modeling approach based on MF. CAMF uses a contextual baseline
prediction function to represent the interactions of contextual information with
the items or users. Baltrunas et al. [42] proposed different variants of CAMF that
model the influence of contextual conditions at different granularities. CAMF-C
assumes that a context factor affects the user and items in the same way.
A Comprehensive Context-Aware Recommender System Framework 15

CAMF-CI models the in influence of a contextual aspect over items. And


CAMF-CC assumes the context affects the ratings for all the items, ignoring the
effect of context over users. MoRe contains the three variants (CAMF-C,
CAMF-CI and CAMF-CC) variants of this algorithm.
Custom Context-based Algorithms, MoRe supports the addition of new algo-
rithms defined by developers and researchers, which allow them to use the
framework to implement and put their theoretical algorithm to test. Any new
contextual algorithm that will be added to MoRe must implement the
IContextAwareRecommender interface, which defines a method to build, save and
load the prediction model, as well as the recommend method what should return a
list of RecommendedItems.

4 Evaluations

Assessing the quality of complex software systems is generally a difficult task,


especially when the software provides new functionality that is not supported by
other software. As previously mentioned, MoRe is the only one of its kind, com-
prehensive Context-Aware Recommender Systems framework. Therefore a direct
comparison with any other proposal can yield inaccurate and misleading results.
To validate MoRe applicability and effectiveness, first, we perform comparative
assessments with other frameworks and libraries’ features. Then some use cases are
implemented using MoRe. For both tests, Microsoft Visual Studio 2017 was used
as development IDE, along with Sql Server 2012 express as database engine, with a
Core i7, 16 GB Ram on Windows 10 computer.

4.1 Comparative Assessment

This section compares MoRe with other framework and libraries discussed in
Sect. 2 of this document.
Next Table 5 presents a comparison between MoRe and other related
context-aware recommender frameworks. The Type section describes whether the
proposal is presented as a theory, a library or a framework; the Data section
describes if the proposal presents a way to structure the information about the user,
context, and items, and if it supports a temporal state profile which maintains a
sub-profile of the user with the current information so it can be quick and easily
accessible by the application. The Algorithm section describes the recommendation
techniques supported by each proposal, and finally, the last section describes the
programming language used by the proposal and if it is available as an open source
(OS), not disclosed (ND) or not available (NA).
16 S. Inzunza and R. Juárez-Ramírez

Table 5 Comparison of recommendation frameworks


MoRe Hybreed MyMediaLite ConRec CoGrec CARSKit
Type
Theoretical •
Library • • •
Framework • •
Data
User model • ◦ ◦ ◦
Context model • ◦ ◦
Item model •
Temporal state • • ◦
Algorithms
Traditional
Ranking • • ◦
Average • • • ◦
Col. filtering • • • ◦
Contextual
Contextual • ◦ ◦
filtering
Contextual • • • • ◦
modeling
Group • •
recommender
Other
Language C# Java C# Java Java
Availability OS OS OS ND NA OS
• Denotes full support; ◦ Partial support; OS: Open Source, ND: Non Disclosed

MoRe is compared against Hybreed [5], MyMediaLite [24], ConRec [1],


CoGrec [26] and CARSKit [28].

4.2 Use Cases

MoRe is framework created to support the creation of context-aware recommender


systems, so is very important the framework work in real-world usages as described
conceptually. To test the applicability of the framework in CARS developments,
and to validate that the resulting framework fulfills the requirements described in
Sect. 2, some use cases where implemented. These use cases represent essential
task of any CARS development (i.e. data storage and retrieval, and performing
recommendations on the stored data).
A Comprehensive Context-Aware Recommender System Framework 17

Fist, the data management feature of the framework is tested selecting a


real-world dataset from literature and loaded into MoRe’s data model. Then, the
ability of the framework to generate recommendations is tested using the loaded
data, and generating predictions using different recommendation techniques.

4.2.1 Data Management Feature

Part of the MoRe’s core is a data structure capable of modeling the users, context,
and items information that will be used by recommendation algorithm to generate
predictions. To test this feature, the LDOS CoMoDa [43] dataset was used loaded
into MoRe’s model. LDOS CoMoDa is a movie dataset that contains 2296
instances, and 32 attributes. The attributes are 9 corresponding to user information,
9 of contextual information and 14 attributes used to describe the items (movies).
Process
The process followed was to set up a new C# project in Visual Studio, and add
references to MoRe framework. As the dataset’s data is separated in 3 files, first the
Items information was loaded into the model by reading the itemsTitles and
itemsMetaData files, then the user, context and ratings information was loaded from
the LDOS-COMODA file. Next Table 6 show the user, context and items aspects
considered in the dataset and how they were mapped to MoRe data model.
Once the data was loaded into the model, and to test the ability of the framework
to serve the data, a dataset was creating using class annotation (as described in
Sect. 3.2) to configure the exportation behavior of the classes. Such recreated
dataset set was used in the next section of use case, where the functionality of the
recommendation algorithms is tested.
Results
The use case of loading data to MoRe’s model showed that the framework was
capable of supporting all LDOS CoMoDa dataset features, most of them (93%)
without the need of any adaptation to the model. Two features (Decision and
Interaction, the first refers to what motivate the user to watch the video, and the
latter refers to the number of interactions of the user with the video) were not
directly supported by the model as shipped with the framework.
To support these two features into the model, some adaptations were required,
the adaptations consisted of further specializing (through inheritance) the Video and
ModelORM classes, adding the required features to the new video (CoMoDaVideo)
class, then registering this CoMoDaVideo class to the specialized ModeORM class.
As the data structure has changed, a database migration was required to synchronize
the data structure with the database structure.
18 S. Inzunza and R. Juárez-Ramírez

Table 6 LDOS CoMoDa dataset attributes mapped to MoRe data model


Category Aspects Supported in
User Id User.Id
Age User.Demographic.Birthday
Gender User.Demographic.Gender
City User.Contact.Address.City
Country User.Contact.Address.Country
EndEmotion User.Emotions.EmotionalState (list)
DominantEmo User.Emotions.EmotionalState (list)
Mood User.Mental.Mood
Physical User.Physiology.PhysiologicalState (list)
Context Id Context.Id
Time Context.Time.TypeOfDay
DayType Context.Time.DayType
Season Context.Time.Season
Location Context.Place.PlaceType
Weather Context.PhysicalCondition.Weather
Social Context.SocialRelation.SocialRelation (list)
*
Decision not directly supported
*
Interaction not directly supported
Item Id Video.Id
Title Video.Title
Director Video.Director
Country Video.Conuntry
Language Video.Language (list)
Year Video.Year
Genre (3) Video.Genre (list)
Actor (3) Video.Actor (list)
Budget Video.ItemAttributes (list)
ImdbUrl Video.ItemAttributes (list)
*
denotes attributes not directly supported in the model, some adaptation was required

Discussion
The selected dataset can be seen as having a small number of features (32), but most
of the existing dataset for CARS have fewer features (e.g. InCarMusic [41] as 18,
DePaul Movie [28] has 6, and Trip Advisor [39] has 9). Even though, being able to
use a bigger dataset is an interesting challenge that would allow us to test more
attributes of the model, having used LDOS CoMoDa dataset allow us to test the
ability of the model to store data, to maintain the relationship between the data
categories (user, context, and item), and the ability to serve back the stored data.
The age attribute contained in the dataset was considered supported even when it
was not stored directly as an integer, rather the model stores the birthday that which
can be easily converted into age with a little processing. Maybe such processing of
converting birthday into age should be directly included in the model in a future
release of MoRe. The emotions (endEmotion and dominantEmo) and mood are
considered as part of the user information, but as they are intended to reflect the
user’s state of mind in a specific situation, they are linked to the context, as the
A Comprehensive Context-Aware Recommender System Framework 19

MoRe models support to assign a specific context to emotional situation, meaning


that the stored emotion was triggered/reading from the specified (if any) context.

4.2.2 Contextual Recommendation Feature

To test the ability of MoRe framework to generate context-based recommendations,


which is the core functionality of the framework, the following use case was
implemented.
Process
The process for this experiment consisted of using the framework’s dataset gen-
erator to create the data in the database into a data matrix that can be fed to the
algorithms, to generate recommendations, simulating the process that will be fol-
lowed in a real-world CARS implementation.
The data used for this experiment was LDOS CoMoDa dataset that was loaded
onto the framework model (as described in previous section). Having the dataset
created, it was used to generate predictions using the both, contextual filtering and
contextual modeling techniques.
Typically, algorithms are evaluated on their rating prediction ability, using
metrics like Mean Absolute Error (MAE) and Root Mean Square Error (RMSE),
such metrics were used to evaluate MoRe algorithms, except for SLIM and BPR
algorithms, are they only support Top-N item recommendation, and not rating
prediction, these algorithms were evaluated using ranking metrics Area Under the
Curve (AUC) and Recall for 5 elements (Rec5).
In this experiment, all the techniques and algorithms of MoRe were tested,
including the 24 combinations of the three splitting approaches (UserSplitting,
ItemSplitting and UISplitting) with the 8 traditional recommendation algorithms
(SLIM, BPR, GlobalAverage, UserAverage, ItemAverage, SVD++, UserKNN and
ItemKNN).
Results
The obtained results loading the LDOS CoMoDa dataset into MoRe, generating a
dataset with such information and applying the recommendation algorithms are
shown next. Figure 3 shows the RMSE and MAE values for the contextual mod-
eling algorithms; then Table 7 shows the result of the combination of filtering
techniques with the baseline recommender algorithms.
Discussion
This experiment was used as a proof of concept and allows us to test the func-
tionality of one of the main features MoRe provides: generating recommendations
over stored data. All the algorithms contained in MoRe were testes with the same
dataset, yielding somewhat similar results. The better performing algorithm was
ItemAverage when used with ItemSplitting approach. In general, the contextual
20 S. Inzunza and R. Juárez-Ramírez

Fig. 3 Evaluation of contextual modeling algorithms on LDOS CoMoDa data

Table 7 Evaluation of contextual filtering algorithms on LDOS CoMoDa data


Technique Algorithm UserSplitting ItemSplitting UISplitting
AUC Rec5 AUC Rec5 AUC Rec5
Ranking SLIM 0.5522 0.0710 0.5507 0.6800 0.5526 0.0730
BPR 0.5029 0.0030 0.5019 0.0030 0.5036 0.0039
MAE RMSE MAE RMSE MAE RMSE
Collaborative filtering GlobalAvg 0.7700 0.9789 0.8509 1.0590 0.8509 1.0580
UserAvg 0.7700 0.9789 0.7615 0.9757 0.7697 0.9788
ItemAvg 0.4728 0.7461 0.4870 0.0770 0.4969 0.7701
Average SVD ++ 0.8573 1.0662 0.8561 1.0686 0.8552 1.0643
UserKNN 0.8125 1.0447 0.8173 1.0501 0.8210 1.0502
ItemKNN 0.7041 0.9272 0.7089 0.9331 0.7170 0.9388
Bold values are the best performing results

splitting approach yield slightly better results, especially when paired with
ItemAverage baseline recommender.
The obtained results not necessary means that this will be the better performing
algorithms in all cases, as these results are specific to recommend movies, and
taking in consideration the specific characteristics of the LDOS CoMoDa dataset
(user and context aspects considered, the data sparsity, and the number of instan-
ces). When recommending other elements, and using other contextual information,
the algorithms will perform differently, fortunately, MoRe contains a large set of
algorithms so developers can use the better performing one in their specific CARS.

5 Conclusions and Future Work

In this document, we have introduced MoRe, a comprehensive software framework


to build context-aware recommender systems. To our knowledge, MoRe is the first
CARS framework that provides developers a context-aware user model structure
Exploring the Variety of Random
Documents with Different Content
och vind och nött till en ändamålsenlig form, och verkade som en
skulpterad krok av ben. Sådant är konst, sådant är liv. Farväl,
Nikolai!

Vi gå in i Reine hamn, dit alla båtarna samlas i kvällningen. Men


där har också samlats en massa slödder, parasiter som suga ut
arbetarna och sälja kram, som köpes då akvaviten börjar verka. Där
finnas bodar med leksaker och plyschalbum och vykortsalbum. Ägde
jag Reine skulle jag förbjuda denna kommers, ty det är fattiga
fiskare som bli lidande på den.

Reine är vackert, och där koncentrerar sig fisket och handeln just
nu. Allt är torsk och torsklukt. Torskslem och tran ligger som en
hinna överallt, man halkar och vadar i torskavfall. Inne på telegrafen
luktade det torsk och i den enda salong jag besökte i Reine luktade
det torsk. Båt efter båt lägger till vid bryggorna med torsk upp till
relingen och karlarna diskutera lastens värde. Där är rop och glam
och skratt, mäns djupa bas och pojkars diskant. Pojkarna se helt
stolta ut i sina oljekläder, ty den uniformen likställer dem med
fäderna och i den fostras de till hjältar på havet. Kvinnor ser man ej.
De sitta hemma och vagga de sista tvillingarna. Det är gott om barn
i Lofoten, 10 till 15 barn av samma mor är icke ovanligt. Vad beror
detta på? Månne på Golfströmmen, ty den inverkar nästan på allt i
Norge.

Jag besöker fiskoljefabriken och trankokeriet och inspekterar


torkningen av torsken, den saltade klippfisken och den osaltade
stockfisken, som hänger i hundratusental på sina torkställningar. Jag
förstår att livets mening delvis är torsk. Allt är stort tilltaget här
under de vita fjällen. Bara skillnaden mellan ebb och flod är 5 meter.
Vi lämnade Reine och ångade hem till Svolvær. Jag läste
Lofotposten en gång till och somnade vid fisketelegrammen.

Vaknade åter och vi satte kurs på Narvik, sedan vi först gjort en


titt in till Kabelvaag, som en gång var Lofotens huvudort, där det
levdes Klondykeliv under fisket. Där dansades cancan och spelades
kort. Akvaviten flöt och båtlaster bytte ägare.

Havet låg vitt som mjölk under den bleka solen. Och då ejdrarna
lyfte och slogo ned, sprutade det som av silver i mjölkhavet. Vi gingo
in i den beryktade Troldfjorden, "det styggeste sted i Lofoten", säga
en del Lofotenbor. Det tycker icke jag. Möjligen hemskt vackert. På
en fjällsida stod ett färskt utterspår, om det kan intressera. Och små
snöskred stodo som skidspår från fjälltinnarna ända ned i havet.

Strax innan det mörknade passerade vi Skjærvö, ty vi gingo en


annan väg hem än bort. Man berättade mig att på Skjærvö ligger en
skatt nedgrävd. Den kan upptäckas endast Sankt Hansnatten och
endast av en 40 års jungfru. Den blir nog aldrig bragt i ljuset.

Snart glimma ljusen i Narvik, och med ljuskastaren söka vi oss väg
till kajen.

Lofoten har tagit mig och jag måste se det en gång till!
HOS LAPPAR.

Med snöglasögon på näsorna och liggande på rygg i våra


vargskinnspälsar hade vi åkt ut till lapparna, som höllo till en mil norr
om Kurravaara. Det blev liv och rörelse utanför kåtorna, när vi
pinglade uppför fjällsluttningen.

Solen sken klart och snön bländade och som glada färger på en vit
palett lyste och skimrade lapparnas dräkter. Hundarna skällde, våra
hästar stegrade sig och skakade bjällrorna, man ropade hälsningar,
barnen pulsade omkring i drivorna. Där var liv och lustighet.

Vi skulle köpa torrkött och ett par färska renstekar. Handeln var
snart uppgjord och ett par pojkar gåvo sig av för att hämta en ren.
Vi hade passerat hjorden på andra sidan sjön. Under tiden skulle vi
vara gäster i kåtorna, där maten just kokades och det starka, gröna
kaffet stod på elden. Om några ögonblick lågo vi bekvämt utsträckta
på renhudarna bland hundarna, som motvilligt makade åt sig.

Det var i gubben Sarris kåta. Sarri är gammal och rik och hans
gumma, som är mörkbrun och har tusen rynkor i sitt kloka ansikte,
där ett par svarta, glänsande ögon slugt betrakta främlingarna, rör
om i grytan med doftande renkött och renben. Så småningom fylles
kåtan alltmera med lappar från andra hushåll. Där rökes och skrattas
och vår finske tolk får hundra frågor att besvara. Men han frågar
också tillbaka. En av flickorna i kåtan är 25 år gammal och ogift. Hon
säger att hon törs inte. Skoj och skratt bland oss och lapparna. En
unge kryper omkring på björkrismattan, där snön skiner igenom.
Han är naken om ben och mage, men han skrattar och leker som om
ingen köld funnes.

Middagen är färdig. Renkött och rentunga, renben och renbuljong!


Jag undrar just hur den av oss mår just nu på jaktstigen efter de tre
liter buljong han satte i sig utom de kilo kött och de meter renben
han lät försvinna. Men härligt är det och passar bland fjällen och
buljongen är icke alls gjord på Liebigs köttextrakt eller några slags
kapslar, utan är den enda riktiga buljong i världen. Så 4 koppar kaffe
och fram med piporna. Mätta luta vi oss bakåt på de mjuka
renfällarna och se på hur röken stiger blå genom fånget mot
solbelysta moln.

När vi kommo ut ur kåtan, var renen hämtad och stod bunden vid
en björk. Litet ackorderande om priset, ett par pojkar draga omkull
honom, den ena sticker sin kniv mellan hans framben, tar ett par
steg åt sidan och låter honom sköta sig själv, fast han håller fast i
grimman. Renen springer upp, gör några kast, vacklar och faller
tungt åt sidan. Han är död och om några minuter är han styckad.
Sådant är livet.

Ännu dröja vi ett par timmar hos gubben Sarri. Kaffet flödar åter
och språklådan är öppen. Men när solen börjar sjunka ta vi avsked,
ta på pälsarna och äro inom kort på återvägen.

Moln dragas ihop i söder. Snart börjar snön falla. Det mörknar och
i kolsvarta natten åker jag sovande in i Kiiruna. Dess elektriska ljus
väcker mig, och vit som en snögubbe stiger jag ur släden. En smak
av renben och buljong sitter kvar i munnen, men inom 5 minuter är
den borta. Minnet är varaktigare.
ÅTER HOS LAPPAR.

För några dagar sedan fick jag ett brev från Luleå. Där stod att solen
höll på att komma och att isarna hade gått och att allt var härligt.

Nu när jag sitter på mitt ägande hemman i Grisslehamn, där havet


är sommarblått och träden ännu ha vårens unga gyllene grönska,
där hundkaksen växer mitt yngsta barn över huvudet och man
önskar att man vore oxe för att riktigt kunna njuta av det kraftiga
gräset, kommer jag att tänka på Lappland, där snön ligger kvar än.
Förra gången jag var där, snöade det midsommaraftonen i Kiiruna,
så att landskapet några timmar verkade vinter. Men solen är
kraftigare där än här nere, och dagen därpå var det vår igen.

Över myrar, som ångade i solhettan, genom våta drivor på fjällens


nordsidor, över bäckar med skvalande isvatten hade jag tagit mig
fram till ett lappläger och var gäst i en kåta.

Jag kommer ihåg, hur jag genast kände en stark hemkänsla i


tältet. Det föreföll mig som om jag varit borta i främmande land hela
mitt liv och först nu kommit hem. Jag njöt så som jag aldrig förut
njutit av livet. Ett stort och starkt, medvetet lugn kom över mig, och
jag kände som om musklerna knötos hårdare och kraftigare av hälsa
och lycka. Det var just lyckokänslan jag kände. Luften var som kyligt
vin, och människorna bland vilka jag satt verkade upphöjda över
småaktigheter och futtighet. Jag fick klart för mig att denna min
känsla av lycka måste bero på någon släktskap med fjällfolket. Jag
känner inte till min släkt så värst långt tillbaka i tiden, men med all
säkerhet har någon lapp eller annan nomad varit framme och tittat.

Nu, när jag kom upp till Lappland igen i vintras och kom in i en
kåta, kände jag denna hemkänsla om möjligt starkare. Jag skulle
vilja följa med fjällapparna och leva mitt återstående liv med dem.
Jag känner visserligen att jag borde ha tänkt på detta förut och att
det är för sent nu, men jag känner samtidigt, att jag har gått miste
om den verkliga lyckan i livet, därför att jag icke bröt nog tidigt med
den så kallade kulturen.

Det här artar sig tydligen till ett kåseri om mig själv. Min avsikt är
emellertid att skriva något om lapparna.

Jag var i Jukkasjärvi på ett stort möte mellan landshövdingen och


en massa lappar. Lapparna ha också sin norska fråga. Norrmännen
klaga över att renarna göra skada på deras odlingar, då de komma
över fjällen ned mot havet. Så snart en norsk bonde hittar en tuss
renhår på sina ägor, begär han skadeersättning. Odlingar, som skulle
kunna inhägnas, inhägnar han ej, ty då kan han ej begära
skadeersättningen, vilken han betraktar som en inkomst. Lapparna,
som följa sina renar över gränsfjällen, äro svenska undersåtar. Därav
följa konflikter naturligtvis. Men lapparna borde naturligtvis också
vara norska undersåtar, ty de måste ju följa sina renar, då dessa gå
till Norge. Frågan är svårlöst, men min åsikt är, att vi i det längsta
böra undanröja svårigheterna för det folk, vars land vi erövrat och
dragit järnvägar igenom och som vi underminera med gruvhål.
Lappland är lapparnas land och vi äro inkräktarna. Vi böra
åtminstone låta lapparna dö ut så smärtfritt som möjligt, om de
nödvändigt måste gå under för den annalkande kulturen.

Om allt detta pratade vi i gubben Sarris kåta, medan kaffepannan


sjöng över elden och vi bolmade vår norska tobak. Det var festdag i
Jukkasjärvi och solen strålade med värme och glädje över de vita
fälten och de grå stugorna. Framför skolhuset hade man slagit upp
två kåtor och vi frossade på kaffe med torkad renmjölk i. Vi voro
gäster hela dagen. Vi köpslogo med finnarna om bonader och ryor
och gjorde storartade affärer med lapparna i knivar och skor. Jag
köpte ett par bandskor av min väninna, gumman Prosti, som är
absolut säker på att jag har ett stort hus i Stockholm och är en av
Skandinaviens rikaste män. Nå, man uppträder ju stundom så!
Gumman Prosti och jag kallade varandra du efter landets sed.

Jag fick undervisning i lapparnas sätt att märka sina renar. Jag
misstänker att få svenskar söder om Jämtland ha reda på det.
Renmärkena inregistreras, och myndigheterna i Lappland ha måst
göra studiet av dem till en särskild och ganska besvärlig vetenskap.
Om det roar skall jag här nedan lämna ett litet schema över
märkningens grundtyper och några prov på renmärken. Mig
intresserar detta, och möjligen kan någon annan bli intresserad.

Man påstår, och jag anser det ganska troligt, att en lapp bland
sina hundra renar genast upptäcker om någon med en annans
märke kommit i hjorden. Han går upp på någon höjd, så att han får
en överblick över djuren, och om något har ett hak mer eller mindre
i ena örat än hans egna, kommer lasson fram och främlingen
avlägsnas.
Vid den femte koppen kaffe börja jakthistorierna. Niia är en stor
jägare. Han har skjutit 6 björnar. Vargarna har han inte räknat, och
järvarnas antal har han glömt. Men hans svarta ögon lysa, då han
talar om, hur han skidat efter vargen, tills han måst slänga av sig
alla plaggen utom byxorna och hur svetten blev ispärlor på hans
bröst, innan han fick knäcka ryggen på fienden.

I Jukkasjärvi kyrka är det gudstjänst, och det är en stor händelse,


ty det är endast en gång om året lapparna kunna komma dit. Då
viges det, döpes och begraves. Då är där liikutuksia, den
læstadianska extasen med gråt och omfamningar. Framme vid
altaret stå kistorna och prästen läser. Lapparna gråta i kör, rytmiskt
med stigande och fallande styrka, en underlig låt som av vilsna
hundars tjut och skall. De döda i kistorna ha kanske legat där i
månader, och sorgen bör ha trätt i bakgrunden, men anständigheten
fordrar högljudd klagan.

Jag går in i sakristian och läser på en träplatta verserna av de tre


fransmän som år 1681 besökte Jukkasjärvi och Torneträsk:

Gallia nos genuit, vidit nos Africa, Gangem


Hausimus, Europam que oculis lustravimus omnem,
Casibus et variis aeti terra que mari que
Stetimus hic tandem. Nobis ubi defuit orbis.

Vi lämna kyrkan och gå på stor fest hos gubben Sarri. Renbuljong,


renkött, renben. Vi äta såsom de där aldrig ha ätit, och
anständigheten fordrar att vi äta mer än vi behöva. Flottet breder ut
sig från mungiporna över ansiktet och vi skina av tillfredsställelse,
där vi hugga in med slidknivarna på de väldiga köttbitarna. Renmärg
med renlever, salt och peppar är en mat för de odödliga gudarna.
Men det börjar skymma och risslorna med sina fällar äro i ordning.
Hästarna frusta vit rök, ty på kvällen smäller kölden till. Utanför
stugan, där vi ha kvarter, står en säng halvt begravd i snön. Ty en
finne dog i den sängen för 14 dagar sen och hans ande kommer
varje natt och vilar sig i den. Han kommer inte ensam utan följd av
andra dödas andar, och man vill naturligtvis inte ha allt det följet
inomhus. Därför skall sängen stå ute minst tre veckor. Efter den
tiden komma andarna inte dit. Om man slår någon i ansiktet med
den trasa, varmed liket tvättats, får han förmågan att se andarna,
både den sist dödes och andra begravdas.

Nu resa vi från Jukkasjärvi i den mörknande kvällen. Det är kallt


och vi tala med varandra ur molnstoder. Då det svartnar till natt fara
vi över Luossajokki, vars vatten sorlar dovt under snön, och om ett
par timmar få vi till ledstjärnor de elektriska ljusen på Kiirunavaaras
sluttning.

Tvärs över himlen, från horisont till horisont, står ett norrsken i
fyra böljande blåvita band. Det knarrar under medarna och kölden
biter i ögonlocken. Hästarna äro vita av rimfrost och min högra
mustasch har frusit fast vid vargskinnspälsen, men nu äro vi hemma.
REVAL

Reval den 30/7 05.

Söndagsstillhet nere i Mejts salong. Gastarna spola däcket över


mitt huvud och en av dem sjunger:

Gråt ej, om på det vida hav en enslig grav jag får. Du kan
ej pryda där min grav med rosor och en tår.

Genom springan under skylightet ser jag ett virrvarr av master


mot den varmblå luften och längst borta Reval med gamla svenska
murar och torn.

Men över den gammalvärdiga stadens grå och röda silhuett skrika
Alexander-Newskijkatedralens fem barbariskt gyllene lökkupoler, att
det gamla svenska Reval vid vårt gamla svenska hav nu är en av
trösklarna till Orienten. I väldiga slupar passera ryska matroshopar
på väg till staden. På piren mitt emot oss hojta vodkastinkande
kuskar, höljda i lumpor av orientaliskt snitt med pärlstickade skärp
och låga, på mitten åtsnörda stormar. Estniska bönder med vilda
skägg och obarmhärtiga ögon hänga över vedskutornas relingar och
bekika de ryska bönderna i röda blusar som ro stenlastade båtar,
besläktade med nordlandsbåten och dschonken. På kajen bakom vår
blågula fladdrande duk stå Yachtsmän och tala tyska, ryska, estniska
och beundra vår båt, ty den är ren och fin, ädlingen bland yachterna
i klubbhamnen. Ville jag, som jag nyss gjorde, klättra upp i
klubbhusets flaggstång, skulle jag kunna se en rysk eskader ute på
redden, farlig att skåda som ett rövarband på en sekundateater, och
bakom den utanför sandrevlarna en kappsegling — ty det är söndag
och frisk bris.

Sådan är ögonblickets situation.

Det ligger en viss tjusning i att okänd, utan idiotiska guider ströva
igenom en gammal stad av Revals valör. Och dess valör är mycket
hög. Jag ville smeka de gamla husens buktiga, av århundradena
adlade linjer. De växa ej brutalt upp ur gatan utan deras väggar äro
en omärklig fortsättning av den. Det nyas, det oanvändas stelhet är
borta och hemmets värme och åldringens överseende slår emot dig i
varje hörn. Deras kanter äro rundade som i avsikt att ej skada dig.
Och gotikens längtan uppåt stämmer dig till poesi. Tag bara
kärleksfullt i de gamla dörrhandtagen som nötts av generationer och
stig aktsamt på trappstegen, dem århundraden ha slipat med alla
slags steg, rädda, djärva, värdiga, sorgsna.

Du stiger in på gamla gårdar, där varje kvadratfot är en dikt, en


historia om allt av himmel och helvete som kan rymmas i en själ. Bry
dig inte om soporna, om stanken, om trasorna och fattigdomen. Men
se in genom något litet fönster, om ditt öga hittar genom geranierna
och Kristiblodsdropparna. Bakom vart och ett sitta människor i de
små rummen och vänta på döden. Strumpstickorna klirra mot
varandra, man älskar, man äter, som man älskat och ätit därinne i
många hundra år. Det är som då jag står i skogen och ser på en
myrstack, som halvsover. Det sysslas därinne, man släpar på ett
gammalt nött barr, en takbjälke eller en gammal kär möbel, alldeles
som du flyttar en länstol i ditt rum.

Jag hör icke bullret på gatan bakom mig, där jag står med ansiktet
tryckt mot rutan. Jag bryr mig ej om de fulla kuskarna eller
småstadseleganternas sladder eller kvinnornas fnitter på trottoaren.
Jag lyssnar till tystnaden i själva muren, och till sorlet av skuggorna
som jag älskar att skapa därinnanför. Kanske dog någon av min egen
släkt därinne. Han slogs som en djävul under den tappre grev
Pontus och roffade åt sig så mycket av bytet att han blev en
välbesutten man, och blev kär i en halvvild estnisk bondflicka och
gifte sig och lade bort soldatmaneren och dog som jämförelsevis
hederlig borgare just i den här kammaren. Requiescat in pace!

Med mössan i hand går jag in i den gamla domkyrkan. Under de


nötta golvstenarna sova våra gamla slagskämpar, ädlingarna från
1500-talet, som voro gentlemän av sin tid utan näsduk, ty de snöto
sig i fingrarna och ströko av på de vackert stickade skörten, medan
de höviskt konverserade med sina ädelborna damer, på vilkas
spetskragar lössen kröpo i väldiga processioner. Sådan var tiden. Jag
tänker mig den gamle fältöversten Karl Horn och hans gemål, som
okunniga om vår tids ondska sova under stenen som jag trampar på
med mina moderna gummiskor. Jag tänker mig honom med
dödmannens stränga och hemlighetsfulla min och de uttorkade
ögonhålorna skådande in i det som ännu är gåtor för de nu levande,
med handen på det vackra värjfästet och rocken gulnad och skör
som fnöske. Och i kistan bredvid hans gemålen, ur vars sköte en ny
gren på det gamla stamträdet växte fram, frisk och grönskande. Jag
vet ej, varför jag vill stryka hennes döda stenpanna med min
levande varma hand — det är ett slags hälsning både till de döda
och de ännu ofödda släktena — kanske också en hälsning till min
egen mor — vad vet jag?

Här ligger Pontus de la Gardie med kung Johans dotter vid sin sida
på sarkofagen. Hon är vacker och mild, han är hård och obeveklig,
men med knäppta händer vänta de på samma förintelse. Över dem
skymmer det i de grå valven. På väggarna hänga vapensköldar av
ätter, vilkas namn nu äro halvt bortglömda i det gamla fosterlandet.
Luften är tung av minnen och dammet som virvlar i solskenet är som
om det vore upprört av mäktiga vingslag från de gamla seklernas
jätteörnar, som osynliga kretsa omkring däruppe under taket med
kronor om halsarna och svärd och äpplen i klorna.

Jag är ingen Bædeker och min mening är icke att föra någon
staden runt och slösa med gamla minnen, dem jag helst behåller för
mig själv. Jag vill endast upplysa om att i Schwarzhäupterhaus finnas
goda porträtt av våra svenska regenter från Gustav Vasa till och med
Ulrika Eleonora. Två porträtt finnas av Karl XII, av vilka det ena
föreställer någon engelsk barnkung. Jag skulle kunna beskriva
vaktmästarens suveränt överlägsna min, då jag förklarade att det
ena icke är äkta. Men äkta var hans vaktmästarlogik, då han
invände: Wenn das Eine echt ist, muss auch das Andere echt sein.

Han var tydligen ein echtes Schwarzhaupt.

Jag går på måfå in genom en vacker femtonhundratalsport i ett


vackert hus och går uppför en trappa. Det är kanske ingen trappa,
utan en stege, som man slagit sönder och satt ihop igen och vridit i
spiral. Det stinker av smuts, det är kolsvart. På små dörrar i
våningarna läser jag estniska, gamla svenska, tyska och ryska namn.
Sopor fylla hörnen, blecksaker, buteljskärvor, trasor, ben, träbitar, och
själva skymningen luktar snusk. Jag har föresatt mig att gå ända upp
på vinden, om också en bov står bakom varje dörr. Jag kommer in i
en familj, som inte kan mer än estniska utom husmodern, som kan
litet tyska. Och genom att använda min tyska och blanda upp den
med finska lyckas jag förvärva mig så mycket förtroende, att jag icke
blir utkastad. Jag blir till och med bjuden på öl av husfadern, ty jag
är svensk, och husmoderns mormor var svenska. Varifrån? Visste
icke!

Jag reser ut ur staden till Katharinenthal för att äta middag. Där
finns Peter den stores lilla hus och jag beskådar hans sängkammare,
där han sov med sina kvinnor och sina tre adjutanter. Jag gråter
nästan, icke av rörelse, ty jag är icke ryss, men något av storhet låg
i alla fall över sängarnas enkelhet och hans tofflor, som han glömt
att taga med sig i graven. Jag skulle gärna ha velat träffa honom
personligen.

Jag åt middag med vodka, stäppgräsvodka, som egentligen bör


slås på kläderna, ty det luktar av stäppens hö och något masurka,
jag åt Borschtschxstswsch, en härlig soppa, och ryska gurkor, med
vilka änglarna borde livnära sig. Jag drack kaukasiskt vin och talade
ryska med slavarna.

Jag har nu varit i Reval i tre dagar och i natt segla vi till Wormsö.

Jag tror mig ha studerat Revals karaktär tillräckligt för att bilda
mig ett omdöme.

På kvällarna, när allt flyter ihop i skuggor mellan husraderna och


skymningen lägger sig över de ryska skyltarna och butikfönstrens
kram och allt är tyst, kan jag lätt drömma mig sexhundra år tillbaka i
tiden. Samma hus som då peka med sina spetsiga gavlar mot
stjärnorna, fast ett annat släkte klättrar i deras trappor. Men jag kan,
när jag vill, låta fantasin befolka gator och torg med gubbar i
snabelskor och uddskörtade rockar och ställa till ett litet
medeltidsbråk mellan en vildsint estnisk fiskarpojke och en tungrodd
dansk lansknekt.

Vill jag ha sagan tillbaka, går jag upp på Slottsberget, där


Lindanissa, esternas gamla fästning, en gång stod, och där
dannebrogen föll ned från himmelen. Djupt nere i berget sover
Kalev, sagohjälten Kalevipoegs fader, en sömn som kanhända icke
kommer att vara i evighet.
ODENSHOLM.

Så länge jag lever, skall jag minnas en liten havsvik med solbelyst
sandstrand, där små ilskna vågor krossas till skum bland lösryckt
tång och glattslipade kalkstenar. Utanför en rad klippor och grund,
där vita bränningar dåna, rullar Finska viken mörkblå med fräsande
toppar. Det blåser storm, men luften är ljum och på stranden, där
havsvinden brett ut enbuskarna som gröna mattstumpar, springa tre
män omkring som vilda och glada barn, Zorn och Gallén och jag. Vi
ha badat och dricka solen och dofterna från havet med våra munnar
och kroppar. Och när vi lägga oss på rygg på den torrbrända marken
där små tvinande blommor dofta, sveper blåsten om oss som
böljande silke och vi spänna och knyta musklerna i glädje över att
vara till. Vi känna oss i släkt med ejdrarna som kretsa utanför
näthusen och i släkt med de vita stormmolnen som jaga varandra in
mot Estland.

I går kommo vi hit i den börjande skymningen. Under långa


timmar av stiltje hade vi sett den lilla öns kapell och fyrtorn hägra i
vår kurs från Baltischport, där barbarer i gendarmuniform sökt göra
vårt liv surt.
Alltnog — vi närmade oss Odensholm. Ön är skyddad av
fästningsverk, byggda av istidens ingenjörer, en ringmur av grund
med små kryphål emellan, där inseglingen är hasard, om man inte är
i besittning av de hemliga korten, och det voro vi icke. Kvällsbrisen
gav fart åt skutan, och plötsligt gulnade vattnet. Mellan de ljusa
bottenstenarna vaggade tångruskorna och vi beredde oss på en liten
grundstötning, då vi upptäckte en fiskarbåt på väg ut till havs. Vi
hissade lotsflaggen, vi varsnade grund överallt. Vi sökte gå ut
samma väg vi kommit. Då vänder fiskarbåten, man svänger armarna
och pekar. Vi falla av, skutan får fart och vi tro oss klara, då
fiskarbåten, rodd av kraftiga armar, är alldeles inpå oss, och en man
ropar på svenska: — Fall mera! Det ligger en stor sten framför er! Vi
föllo förbi ett grund som annars skulle ha skaffat oss nattarbete, och
voro räddade.

Båten lägger till längs Mejt, och lotsen stiger ombord. Hans gång
på vårt däck är stolt som en vikings och med sina nakna fötter går
han säkert som på sitt eget stugugolv. Lova, falla, lova, falla, och
under det han lotsar oss in i hamnen, lär han oss vägen ut därifrån,
vårt nästa behov.

— Här på stranden ser ni tre stora stenar. Då ni seglar ut, skall


kapellet vara i linje med den mellersta stenen. Strax till vänster om
kapellet står en rönn. Tar ni den rönnen i linje med stenen, så går ni
på grund.

Så säger han plötsligt: — Är ni svenskar?

— Ja.

— Vi äro av samma stam. Gud välsigne!


Och han räckte fram handen åt oss. Det var, som om vi skulle ha
hälsat på någon av våra förfäder tio släktled tillbaka i tiden. Hans tal
flöt lugnt och klart utan onödiga ord, värdigt och vackert, och då vi
äntligen lågo i hamn och han gått ombord på sin skötbåt, kände vi
att vi voro hela öns välkomna gäster.

Det var sent, men vi gåvo oss ej tid att vänta till följande morgon.
Vi rodde i land vid ett litet hus med livräddningsstationernas
allvarliga röda kors på dörren och vandrade upp mot byn, vars gråa
tak skymtade bland gröna träd på halvannan värsts avstånd. Vägen
gick över en sandslätt med låga enbuskar och här och där små
sävkantade gölar, där ejdrar, måsar och småspovar orädda simmade
omkring eller gravitetiskt spatserade på stränderna. Vi komma till det
lilla kapellet med sin kyrkogård, över vilkens port en gammal
galjonsbild, föreställande en präst i 1700-talets dräkt, tronade.

Kapellet verkar blankslitet av stormarna och gravstenarna se ut


som tvinande växter av förhistoriskt ursprung. Det torra gräset frasar
under våra steg och jag tänker på de döda gamla svenskarna som
trötta av brottningar med havet slumra härnere.

Vi fortsätta vägen och snart äro vi i byn. Askar skugga de grå,


sävtäckta husen, och medan skymningen sänker sig får jag en
stämning av medeltid. Så här ungefär bör det ha sett ut hemma för
500 år sedan, och jag är viss om att det gjorde det. Ur en ladugård
kommer en kvinna tassande i sälskinnsskor och vi tilltala henne. Hon
svarar på en underlig gammalsvenska, och medan vi prata, kommer
folk till. Om några minuter äro vi förstådda, välkomna, och gäster i
en stuga, som snart fylles av byns män och kvinnor. Ty vi äro
svenskar, riktiga svenskar från det gamla Sverige och blodet binder.
Varför får jag icke bli sentimental? Låt mig vara omodern och för
några ögonblick känna, hur tårarna fylla mina ögon, tårar av glädje
över att ha fått komma hit.

I den stora, svartrökta, rena stugan dukas vår kvällsvard upp av


kraftiga blåögda kvinnor. På bänkarna bredvid oss sitta våra gamla
blonda vikingar med vackert skurna ansikten och fråga oss om
Sverige, men vi överväldiga dem med frågor om Odensholm.

Över dörrposten läser jag årtalet 1905 och frågar, varför just det
årtalet står där. Varje nyår målas det nya årtalet dit i varje stuga för
att öborna skola komma i någon slags kontakt med tiden, som flyr.
Ty faktiskt är deras liv inrättat på samma sätt som vårt för ett halvt
årtusende sedan.

Sedan många århundraden har Odensholm varit befolkat av


svenskar, men för 600 år sedan kom pesten och gjorde ön till en
öken. Sedan kom en man från Sandhamn dit med sin familj. Vår
värd pekar på en liten pojke och säger: — Den där pojken är tionde
ledet från den Erik, som seglade hit från Sandhamn. Vi kalla oss
Erkas efter honom.

Efter pesten hade estniska sjörövare sitt tillhåll här, men Gustav II
Adolf lät befolka ön med svenskar för att få ordning i trakten. En
gång länge efteråt kommo kapare från fastlandet för att röva och
plundra. Men dimma kom från sjön, och Odensholmsborna togo sig
före att dunka på sina kokkärl, varpå kaparna blevo rädda och
lämnade ön. De hade satt sina båtar i land vid ett rev, som därefter
kallas Kaparevi.

Sagans ande fyller stugan, och det berättas den ena historien
efter den andra.
Ön har privilegier från Gustav II Adolf eller Kristina och lämnar i
skatt sedan urminnes tider 4 tunnor salt fisk och 4 tunnor torkad,
sammanskott från de 7 familjer med tillsammans omkring 100
medlemmar, som bo där. Men nu vet man icke, till vem det där skall
lämnas. En estländsk baron sades ha köpt ön och kom för att
förändra villkoren, men öboarna betrakta sig fortfarande som
svenskar och i sin goda rätt på grund av de månghundraåriga
privilegierna och underkasta sig ingen förändring.

Vi sågo deras ögon glöda, då de talade om baronens försök. De


talade om sina sälbössor och försäkrade att de skulle ha gått man ur
huse och skjutit så länge krut och bly fanns.

Min själ blev varm.

Vi åto kvällsvard. Brunt bröd, smör, flundra, stekt i svinflott, rökt


torsk, Odensholms specialité, rökt flundra, filbunke, hembryggt öl,
mjölk — som man ser mat för gudar och hyggliga människor. Sällan
har jag njutit av något så mycket som av den rökta torsken och det
goda brödet. Så snart ett glas var tömt, påfylldes det genast av den
vaksamma värdinnan, ända tills man insåg, att man måste vända det
upp och ned. Svensk uppmärksamhet.

Under tiden talades om Odensholm och om Sverige. Med oss


talades en noggrant grammatikalisk högsvenska, inlärd ur svenska
tidningar och svenska böcker, men sinsemellan och till kvinnorna
talades gammalsvenska, vårt och deras fäders språk, fast på en
särskild dialekt.

Nu vill jag översätta lotsens, som seglade oss in i hamn, samtal


med oss på Odensholmsvenska. Eller kanske det närmar sig
Runösvenska. I varje fall är det intressant:
— Fall maira! En storan stain er frafere!

Här oba stråndi sen I tri stor stain. Tåtå ni gå segol, tå ska kappli
bli uti räsa mä mittmillastain.

Oba vinstursia kappli står en rauni braiver. Om ni tova hon raunia


uti räsa mä han stain, så gå ni på grunne.

Bara uti hit hamne hövan I inga räddoa fer inga vär! (Men här i
hamnen behöver ni inte vara rädda för någon storm.)

Mitt i natten gå vi ombord igen för att sova. Skummet ryker över
jöllen och stormen tjuter i vanterna. Men vi bara längta till
morgondagen och våra släktingar i land.

*****

"Um Geesa givor en vikar, så ska skrävlinga bli tiner!"

Detta är ett ordspråk som användes då man vill underskatta en


karl, och betyder fritt översatt: — Om gud låter mej få en säl, ska du
få framfötterna!

Framfötterna äro nämligen intet värda. Men Odensholmarna


visade oss de riktiga framfötterna, för att nu för en gångs skull göra
en ordlek.

Deras stugor stodo öppna för oss, och vid måltiderna bullades allt
upp. Vi drucko tremännings öl ur trästånkor, där träet hade insupit
ölets själ så att kanten kändes stark och god att suga på. Torsken
doftade och brödet doftade.
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

textbookfull.com

You might also like