Authors:
(1) Oscar Pedreira, Universidade da Coruna, Centro de Investigacion CITIC, Laboratorio de Bases de Datos, Facultade de Informatica;
(2) Felix García, Universidad de Castilla-La Mancha, Grupo Alarcos, Escuela Superior de Informatica, Paseo de la Universidad;
(3) Mario Piattini, Universidad de Castilla-La Mancha, Grupo Alarcos, Escuela Superior de Informatica, Paseo de la Universidad;
(4) Alejandro Cortinas, Universidade da Coruna, Centro de Investigacion CITIC, Laboratorio de Bases de Datos, Facultade de Informatica;
(5) Ana Cerdeira-Pena, Universidade da Coruna, Centro de Investigacion CITIC, Laboratorio de Bases de Datos, Facultade de Informatica.
Table of Links
Abstract and 1 Introduction
2 Related Work
3 A Software Architecture for the Gamification of SE Environments and 3.1 Software architecture
3.2 Gamification model
4 Gamification Engine for SE Environments
4.1 System architecture and design
4.2 Integration
4.3 Other functionalities
4.4 Support of game mechanics and elements and 4.5 Player’s site
4.6 Advanced functionalities
5 Case Study: Application of the Gamification Engine in a Real Company and 5.1 Description of the organization and its tool suite
5.2 Design
5.3 Subjects and analysis units and 5.4 Field procedure and data collection
5.5 Intervention
5.6 Analysis of results from the case study
5.7 Validity threats and limitations of the case study
Discussion
Conclusion and Future Work, Acknowledgment, and References
4.6 Advanced functionalities
In this section, we describe other advanced functionalities of the engine, such as the support for customization and a virtual assistant that can provide help to the users using natural language; we also give a description of functionalities for sentiment analysis and interaction network analysis.
4.6.1 Customization
This module supports the inclusion of personalization rules in the system. The administrator can define variables with an associated condition. That condition is an arithmetic-logic predicate that can use the attributes of the user’s profile. In this way, when evaluated for a particular user, each variable will return a true/false value. This would allow us to show some parts of the environment to one group of users, and not to others.
The expression elements we can currently include in the definition of customization rules are listed in Table 4.
Example: Using the customization variables presented, we could define the following customization rules (shown in Table 5): the first rule would tell us to search for, and suggest friends for, those people who have not
reached Level 5, and who have fewer than 20 friends. In the second case, the rule would tell us to show a system tour for rookies, that is, for users that have not reached even Level 2.
4.6.2 Virtual assistant
We have included a virtual assistant in the engine, based on natural language generation technologies. Its purpose is to provide help about the work environment, not with static pages, but with generated dialogues, which is closer to what happens in real videogames.
This assistant has been implemented as a chatbot using Alice (i.e., Artificial Linguistic Internet Computer Entity)[22], a natural language chatterbot that generates dialogues by applying heuristic pattern-matching rules to the texts introduced by people. The dialogues the virtual assistant can process are expressed in AIML (i.e., Artificial Intelligence Mark-up Language)[23] files, based on categories, patterns, and templates. Wedo not provide more details on how to write the AIML files, since this would be outside the scope of this paper.
Leaving the internal details of dialogue writing aside, this functionality allows us to provide the players with an interface with the system in natural language. This virtual assistant can give, for example, information about the different tools and processes the organization applies in the SE environment, as well as about how to progress in the gamified environment.
4.6.3 Interaction network analysis
When used in an organization with many people working together with different gamified tools, the gamification engine will receive and generate a lot of information about the behavior of the users, the results they achieve with their work, and how they interact and collaborate. This is especially important in software projects, which has motivated us to incorporate additional components into the engine, aiming to provide the administrator with tools to analyze information that would be difficult to obtain without the use of the engine.
An interaction graph can be derived from the set of interaction behaviors received by the engine. The set of users of the gamified environment is the set of nodes of the graph, and the set of interaction behaviors is the set of edges. Notice that the edges are labeled, since the administrator can define different types of interaction behavior. For example, we could create an interaction behavior Collaborate, with the semantics registering that two users have collaborated in the completion of a task; that is, they have worked together to carry it out. In addition, we could create a second type of interaction behavior Helps to represent that a user has helped another user in his/her work (by providing information or knowledge, for example).
This interaction graph is a valuable information asset to see the behavior of all the members of an organization and how they interact. The engine thus does not only provide a way of gamifying a workplace, but also a system with which to gather and analyze relevant information on the organization’s dynamics. This graph may allow us to identify flows of information in the company, relevant users that act as hubs (that is, they are central to the connection of many people), and even to detect communities inferred from interaction information.
Figure 9 shows a screenshot of the community detection module. In this example we can see that two communities have been identified (the nodes of each community are shown in purple and green, respectively). This module provides different algorithms for the detection of communities, namely Edmonds-Karp[24], Girvan-Newman[25], Tarjan[26], and Louvain[27]. The example seen in Fig. 9 has been created from a sample of the interaction graph obtained in the application case study we present in the next section.
4.6.4 Sentiment analysis
The social network included in the engine will contain a lot of information as messages exchanged between the users. This happens with messaging or chatting, or with the gamification engine, as is the case of a chat with the virtual assistant. Between users, this information will usually reflect more personal communications, with a different register from those texts written by the users in work tools, such as Redmine, for example. These social network texts can therefore show a more biased content, and so be subjected to sentiment analysis.
The goal of a sentiment analysis classifier is to take a given text and classify the polarity of that text automatically into positive, negative, or neutral[28]. The engine includes a sentiment analysis module that allows the texts written by the users to be analyzed; it can then tell us their polarity. This module has been implemented using a machine learning approach[28] with Support
Vector Machines (SVM), which is a supervised machine learning method. The training set (a collection of texts that have already been classified by a human) for this classifier includes an ad-hoc dataset created for the project from the database of work tools of a real company. It could, nonetheless, be easily enriched with data from other companies. The classifier currently reports text polarity with a precision of around 80%, which is consistent with the current results of the state of the art in this field.
This component allows us to analyze every text introduced by the user, and to detect situations in which a user clearly shows a negative trend in his/her latest messages. These data complement the user profiles with information that goes beyond their personal data, and beyond the log of their actions at work. The output of this component is stored in the database of the gamification engine as a list of classified texts for each author. In addition, as we said earlier, the output of the sentiment analysis component can be used in the personalization component as well. This would allow us to detect users with a negative tendency, show them personalized contents, or suggest that they talk to their friends (who are also kept in the gamification engine). The operations for sentiment analysis are also accessible from the gamified tools through the integration API.