# Analysis of Student Academic Performance Using Human-in-the-Loop Cyber-Physical Systems
## 2 ISABELA Platform
### Processing in the Cloud  
The cloud of ISABELA is implemented using the FIWARE platform [19], which is a modular framework developed to offer a standard applicable to IoT platforms in Europe. FIWARE provides several Generic Enablers (GE), which implement different functions that are required in an IoT platform. Our implementation of the FIWARE uses five of those GEs, namely, the ORION, the CYGNUS, the STH COMET, the Intelligence Data Advanced Solution (IDAS), and the KEYROCK. The ORION allows for the management of the entire lifecycle of context information, using a NGSlv2 REST API. Furthermore, the ORION can also manage subscriptions for context information and allows for advanced filtering of the data in those subscriptions. The Short-Term-History or STH-Comet is another GE that provides a RESTFUL API offering historic-queries capabilities, and aggregation methods. Thus, each time the ISABELA application needs to access historic data, the Comet GE will connect to the MongoDB to retrieve the data. The connection of IoT devices with entities from the real world is achieved by connecting the ORION with the IDAS. An attribute of an entity represented in ORION can be associated to a specific sensor of an IoT device. Consequently, several entities can be associated with a set of sensors, and at the same time, the same sensor can be associated with several entities. The CYGNUS manages and enables communication between the different modules. Moreover, the KEYROCK serves as an authentication module for the system and manages the identity of the users to ensure data privacy and security. Figure 2 depicts the GEs used into the ISABELA cloud.  
The functionalities corresponding to sleep recognition and sentimental state recognition were performed in the Cloud of ISABELA. Because FIWARE could not provide these functionalities natively, we extended its capabilities by implementing a server with Spring Boot [20]. The server has a subscription for content in the ORION, and each time the specific entity type is updated, a notification is sent to the server with the content of the entity to be processed. The server, according to the entity type, initiates one of two modules: the sleep detection module or the sentiment analysis module. After the modules process the information, the result is sent to FIWARE for safeguarding.  
The implementation of the modules was carried out as follows:  
1. Sleep Recognition: It was made using an implementation of the random forest algorithm, which was implemented in java based on the analysis realized with the WEKA framework;
2. Sentimental State Recognition: It was implemented using a module called sentimental analysis, which processes the textual data collected from social networks, such as Facebook and Twitter, to infer the sentiment of students using polarities.  
The results of both modules are not presented in the present article, as they are already detailed in [16]. Further implementation details of the system are also explored in the aforementioned article.  
As part of the HiL (Human-in-the-Loop) model, ISABELA closed the loop with feedback sent to the student through a chatbot, i.e., the system sent some recommendations based on the data collected.