# Learn-CIAM: A Model-Driven Approach for the Development of Collaborative Learning Tools
## 3 The Learn-CIAM Proposal: Supporting Model-Driven Development of Collaborative Learning Tools
### Technological Framework
#### 3.2.1 Eugenia and Epsilon Core Languages
\begin{table}
\begin{tabular}{c c} \hline \hline \multicolumn{2}{c}{**Social Interaction**} \\ \hline
**S1** & The learning system allows the students to work collaboratively \\
**S2** & The learning system allows you to communicate with other users (chat, e-mail, forum, etc.) \\
**S3** & The learning system allows us to share information (photos, videos or documents related to the task) \\
**S4** & The learning system motivates competitiveness among users (achievements, scores, etc.) \\ \hline \hline \multicolumn{2}{c}{**Personalization**} \\ \hline
**P1** & The students have freedom to direct their learning \\
**P2** & The students have control over the content that they want to learn and the sequence that they want to follow \\
**P3** & The activities represent multiple views of the content \\
**P4** & The students can personalize their learning through material (videos, texts or audios) \\
**P5** & The questionnaires and assessments can be customized to fit the student’s profile \\ \hline \multicolumn{2}{c}{**Multimedia**} \\ \hline
**M1** & The activities present elements that facilitate learning (animations, simulations, images, etc.) \\
**M2** & The multimedia resources have been appropriately selected to facilitate learning \\
**M3** & The multimedia resources have a duration of less than 7 min \\
**M4** & The multimedia resources have good video, audio, and image quality \\
**M5** & The multimedia resources can be downloaded \\
**M6** & There is an adequate proportion of multimedia resources \\ \hline \hline \end{tabular}
\end{table} 
Table 3: _Cont._model validation. In the Learn-CIAM context, Eugenia is used for a faster and easier generation of graphical editors. Specifically, it should be used in the generation process of the collaborative modeling tools. Initially, these graphical editors are single user; however, the Epsilon platform incorporates a series of high-level languages that allow the manipulation, validation, and modification of the final generated code, allowing to make the generated graphical editor collaborative. Epsilon is composed of many languages and tools. Thus, the set of languages that must be known by Learn-CIAM end users is the following:  
* The _Epsilon Object Language (EOL)_, whose main objective is to provide a reusable set of functionalities to facilitate model management. In the Learn-CIAM context, EOL is required when the user wants to customize a graphical editor or add additional functionality (e.g., reduce the distance between labels and nodes, or embed custom figures to the nodes). * The _Epsilon Validation Language (EVL)_, whose main objective is to contribute to the model validation process. Specifically, it allows the user to specify and evaluate constraints on models which come from different meta-models and modeling technologies. In the Learn-CIAM context, EVL is required when the user needs to implement additional validations to the conceptual framework (e.g., to check whether the specification of a concrete collaborative tool respects some of the Learn-CIAN, the workspace and the pedagogical usability rules). * Finally, the _Epsilon Generation Language (EGL)_, as the language that transforms the information specified in the models into the desired code. In other words, it is the language used to carry out the M2T (model-to-text) transformations. In the Learn-CIAM context, EGL is required to implement the templates that will guide the automatic generation process of the final collaborative tools. This generation process will be triggered from a specific diagram, previously modeled and validated by the professor using the Learn-CIAT graphical editor, introduced in the next subsection.