To create a system, it is first necessary to realize a design phase, which allows to formalize the preliminary steps of the system development and to identify its architecture, in order to propose a feasible solution. To customize learning content based on the individual learner's preferences, a number of features and details about the learner need to be understood. To achieve this goal, the location, learning style as well as the learner's profile were taken into account. This means that we need our ubiquitous learning system to be able to react automatically to these changes in a dynamic way. Furthermore, it is essential to provide each individual user with learning objects that are appropriate to his or her context. Our architecture must take advantage of 3G, 4G, Wi-Fi, and sensors such as GPS.
The process of context acquisition is performed in an explicit or implicit manner:
-
Explicit context acquisition: The contextual data is collected as a result at the end of the user's interaction with the system. It enables each user to communicate to the system the information they need most, so that it can provide them with the right answers. With our system, any user can select his preferences or according to their individual needs.
-
Implicit context acquisition: Contextual data is captured using either physical devices or software. In this case, any user interaction is ignored, and the sensor techniques are used to provide the contextual parameters. GPS (Global Positioning System) is used to measure a user's location.
Thus, The three kinds of context:
- The Detected Context: acquired the contextual information of location through physically based sensors including GPS. (Location awareness).
- The Derived Context: The user's context parameters are created as the system runs.
- The context provided: The context information is generated once the user explicitly submits the required data directly at the operating system.
Figure 2 presents the working area. This new approach is based on the principles of distributed artificial intelligence (DAI) technology and ubiquitous computing (ubicomp).
The basic design of our system is based on agent paradigm. We used concept of multi-agent system because of its characteristics: provided by the agent: autonomy, intelligence, parallel processing, and cooperation.
A. The global architecture of the proposed U-Learning System
We aim to develop a multi-agents’ architecture for the implementation of an ubiquitous learning system. The actors present in our approach are shown in Fig. 3.
To reach the whole system objective, our system architecture is a layered structure that works together (as shown in Fig. 4). Our system is composed of precisely three layers. The individual layers perform specific tasks.
- User layer: the proposed system's interactive behavior with the user.
- Processing layer: it executes all the operations necessary to provide recommendations that are customized to user preferences.
- Information layer: it provides the interaction with the data sources of the ubiquitous learning system
-
Detailed architecture of the proposed U-learning system
Figure 5 shows the detailed architecture of the proposed system and the position of the agents that are used in the current system
-
Description of the agents
In this section, the structural and functional aspects of each agent is described in detail. Figure 21 presents JADE platform GUI.
The interface agent represents the frontal part of the system, providing the learner with interaction with the system. This agent communicates directly with the user through an interface that runs on the user's device. The architecture of the interface agent is illustrated in Table1.
The functions supported by the interface agent are:
1. Acts as a mediator between the learner and the backend of the system.
2. Provides the appropriate space for the user (student space, teacher space, administrator space) after the authentication step.
3. Manages the appropriate interfaces for the users.
4. Shows educational resources adapted to the student's learning style, profile, and location.
5. Sends the queries to the appropriate agents to present the results to the learners.
This agent searches for educational resources in a ubiquitous learning database. Table1 illustrates the architecture of the extraction agent.
The functions of the extraction agent are:
- It searches for pedagogical resources in ubiquitous learning database. Teachers according to the context (location, specialty, level, and module) have created these resources.
- It sends the search result to the content adaptation agent.
It is responsible for logging in and signing up users, as well as database storage and updates when any changes are made. The architecture of the administrator agent is presented in Table1.
The main role of this agent is to communicate with learners, receiving all requests for services and choosing modules depending specifically on the learner's context. Requests are forwarded to the context agent where they are filtered .Then; it sends the results from the content adaptation agent to the interface agent to display them to the learners. Table 1 shows the architecture of the tutor agent.
The functions of the tutor agent are:
- A communication point between the learners' devices and the system.
- A receiver of learners' requests for pedagogical resources.
- It is used to specify course modules that are personalized according to the learner's context.
- Sends the requests to the context agent.
- Receives replies from the content adaptation agent.
- Sends the educational resources to the interface agent to display to the learner.
A situated agent analyzes the learner's contextual information. Table 1 illustrates the architecture of the context agent.
In this approach, the following contextual information will be of interest to us:
- Location of learner (University).
- Learning style (how to present the subject...).
- The learner's profile (skill level, specific field of study, etc.).
a. Contextual analysis Module
The contextual analysis module is responsible for aggregating information according to profile context, location context and learning style context.
The goal is to formulate a contextual query that respects all the learner's contexts.
Because the learners have different learning styles and locations, the need to personalize learning objectives. This task is performed by the content adaptation agent. Table 1 shows architecture of the content adaptation agent. Figure 20 illustrates part of Content Adaptation Agent code. The functions of the content adaptation agent are:
- Its role is to customize the learning object to match the individual context.
- It sends a request to the extraction agent to search the learning contents according to the context.
- After receiving the adapted content from the extraction agent, the adaptation agent then matches the received content with the context. Then it links contextual information with the content as a record to identify the content before sending it to the tutor agent.
- It sends the adapted learning content to the tutor agent for display.
a. Adaptation module
The adaptation module is responsible for matching the results of the context agent to the content received by the search agent. Then, it will identify the content by the information stored in the content database. Finally, the content will be transferred to the tutor agent, which will display it to the learner.
This agent is called a "sensor" precisely because of its ability to sense the pervasive environment of learning and adapt to contextual changes.t. It performs a surveillance and feedback role. Contextual information (location) collected by sensors enables the system to function correctly. Figure 19 illustrates part of sensor Agent code. The architecture of the sensor agent is shown in Table 1.
The sensor agent has the following functions:
- It captures the ubiquitous learning environment.
- It receives contextual information about the learner's location coordinates from the GPS location. The sensor is integrated into a mobile device.
- It compares the learner's location coordinates with the stored coordinates in the database to detect the city name from the location database.
The sensor agent has the following modules:
- Communication module
This module is responsible for sending and receiving messages to/from other agents.
b. Location module
This module receives the coordinates from a satellite positioning system called GPS. Then, it sends the geolocation information to the database management module, to detect and display the current city name. In case of a change of position, it updates it automatically.
c. Database management module
This module manages (and updating) the location databases. When the sensor agent receives coordinates (X, Y), this module compares the detected coordinates to the coordinates in the database to detect the appropriate city name. Then it will send it to the localization module.