CEPIA - Spécifications

Recherche



Sommaire version courante


Toutes les versions

Spécifications du module CEPIA-LMS

Le module est constitué d'un composant PHP5 pour Moodle (1.9.5+) et d'un composant Java/J2EE, l'ensemble assurant l'interfacage et l'interopérabilité entre Moodle et ORI-OAI.

Ce module utilise les techniques Java utilisées dans ORI-OAI telles que Spring, Hibernate, XFire. Il implémente les actions décrites plus haut, qui sont disponibles en ligne de commandes ou en appel distant via le MVC Spring.

Voici un tableau des actions et de leurs contraintes et incidences :

Action

Conditions

Description

Etats requis

Type requis

Redirection

Générer la fiche LOM

1+2

Génère la fiche LOM dans CEPIA/ORI-OAI

Aucun

Cours/Section/ressource

si *.redirect=true ou rechargement

Action du Workflow

3

Effectue une action du Workflow ORI-OAI

private,pending,public

Cours/Section/ressource

Rechargement page courante/sous-partie ajax

Voir la fiche publiée

4

Affiche la fiche publiée dans le moteur de recherche

public

Cours/Section/ressource

URL vers search

Conditions :

Numero

Test

1

has_capability “moodle/course/update”

2

WS getMetadataType(username) contient transfer.batch.metadataType=ressource_pedago

3

WS getAvailableActions(idp, lang)

4

WS getCurrentStates(idp, lang)

Voir la fiche publiée :

Calcul de l'identifiant de la fiche à partir de la proprité du Workflow :

WORKFLOW_LOCAL_APPLICATION_PREFIX=cepia:inpt:repository

A ce préfixe s'ajoute un identifiant interne qui correspond à l'ID de la fiche (wfInstanceId) moins un, ex. :

Pour un wfInstanceId de 6, on a l'identifiant : cepia:inpt:repository-5

Mises à jour

Une mise à jour de fiche depuis Moodle via cepia-lms s'entend uniquement en terme de relations ajoutées ou enlevées : c'est une mise à jour des relations uniquement.

En effet, une fois la fiche générée dans ORI-OAI-workflow, ORI-OAI-md-editor prend la main pour la gestion des métadonnées. Chaque fois qu'une mise à jour de fiche est faite depuis Moodle, les relations de la fiches LOM et uniquement elles sont mises à jour.

Régles de mise à jour des relations :

  • On ne créé les relations que vers les fiches publiées.
  • La mise à jour des relations haspart niveau Cours implique la mise à jours des relations ispartof au niveau des sections et reciproquement
  • La mise à jour des relations haspart niveau Section implique la mise à jours des relations ispartof au niveau des ressources et reciproquement

Tableau des dépendances de mise à jour des relations :

Type

Cours

Section

Ressource

Cours

-

X

-

Section

X

-

X

Ressource

-

X

-

Tableau des cas de mise à jour des relations

Cas

Action

Déclencheur

Fiche Cours

Fiches Section

Fiches Ressources

Création fiche cours

Bloc Cepia : créer la fiche du cours

auto

-

MAJ si course.autoindex

-

Création fiche cours et sections

Bloc Cepia : créer les fiches du cours et sections

auto

MAJ si section.autoindex

MAJ auto si course.autoindex

MAJ si section.autoindex et ressource publiée

Création fiche section

Bouton Cepia de la section

auto

MAJ si section.autoindex et cours publié

-

MAJ si section.autoindex et ressource publiée

Création fiche ressource

Bouton Cepia de la ressource

auto

-

MAJ si ressource.autoindex et section publiée

-

Publication cours

Workflow publier

Bloc Cepia : mettre à jour les relations du cours

-

MAJ si section publiée

-

Publication section

Workflow publier

Bloc Cepia : mettre à jour les relations du cours

MAJ si cours publié

-

MAJ si ressource publiée

Publication ressource

Workflow publier

Bloc Cepia : mettre à jour les relations du cours

-

MAJ auto si section publiée

-

La maj des relations est donc dépendantes du droit de publication/dépublication. Toutefois, comme ces relations ne sont mises à jour que dans le cas des fiches publiées, ce qui a necessité l'action d'un utilisateur autorisé, un compte admin est utilisé pour les effectuer, et non le compte initiateur de la mise à jour manuelle ou automatique (colonne “Déclencheur” dans le tableau plus haut).

Dans le cas des autopublications de cours et de section, les boutons mise à jour de relations des sections n'apparraissent pas.

Contrôleur

Un controlleur d'action multiples répond aux différentes actions passées en paramètre dans les requêtes :

ActionsController

Action

Paramètres

Commande

Description

Implementation/evolution

getTimeModified

moodleId, type

UtilsCommand

Renvoie la date de création ou de modification de la fiche, null si pas de fiche

Ok

getButtons

moodleId, type, username,backUrl,divId

UtilsCommand,

Renvoie une vue “boutons” des actions sur la section/ressource

ressource Ok, section en cours

createMD

resourceId,username

ORICreateMDCommand

Créé la fiche

Ok

performAction

typeId,type,username,backUrl

ORIPreformActionCommand

Effectue une action disponible pour l'utilisateur

Ok

updateCourse

courseID,backUrl

ORILOMCourseUpdateCommand

Obsolescent - Créé les fiches pour cours et section (properties autoindex)

renommer ORICreateCourseSectionCommand

updateRelations

typeId,type,backUrl

ORIUpdateMDCommand

Mettre à jour les MD (relations, selon properties autoindex)

En cours…

exportFile

typeId, type,username

ORIViewFileCommand

export les fichiers ressource attachés

En cours…

Vues attachées au controleur

Le fichier cepia-lms-servlet.xml définit la liaison entre le contrôleur et les vue JSP utilisées :

<bean id="paramMultiController"
        class="org.springframework.web.servlet.mvc.multiaction.MultiActionController">

        <property name="methodNameResolver">
            <bean
                class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
                <property name="paramName" value="action" />
            </bean>
        </property>

        <property name="delegate">
            <bean>
                <property name="xmlRecordBuilder"
                    ref="xmlRecordBuilder" />
                <property name="resourceMapper"    ref="resourceMapper" />    
                <property name="transferService" ref="transferService" />
                <property name="lmsService" ref="moodleService" />
                <property name="privateFileTransferService" ref="privateFileTransferService" />
                <property name="publicFileTransferService" ref="publicFileTransferService" />
                <property name="redirectService" ref="redirectService" />
                <property name="observation" value="${worfklow.action.message}" />
                <property name="metadataType" value="${transfer.batch.metadataType}" />
            </bean>
        </property>
    </bean>

    <bean id="jspViewResolver"
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass"
            value="org.springframework.web.servlet.view.JstlView" />
        <property name="prefix" value="/WEB-INF/stylesheets/" />
        <property name="suffix" value=".jsp" />
    </bean>

Les vues

  • buttons.jsp : les boutons des actions disponibles pour une ressource
  • courseBlock.jsp :  les boutons des actions au niveau du bloc Moodle (cours)
  • errors.jsp : affichage d'un message en cas d'erreur
  • record-list.jsp : affichage de la liste des fiches générées depuis Moodle.

Paramétrage du Workflow cepia_lom_easy

Certains paramètres du workflow sont modifiés par rapport au workflow d'origine "lom_easy" du module ORI-OAI.

  • Les contraintes de publication définies par le schematron
  • La transition d'état depuis l'état publié vers l'état pending par l'action "rendre privé" et le non-ajout de LOME_USE_CREATE_FORM dans les post fonctions.

Utilisation de vocabulaires VDEX via le module ORI-OAI-VOCABULARY

Taxonomies pour classification automatique

Deux vocabulaires sont utilisés pour attribuer automatiquement un code Dewey aux fiches générés depuis Moodle et naviguer dans la thématique de l'établissement dans le moteur de recherche :

  • le premier représente la structure thématique complète : catégories de cours et cours (voir l'exemple livré avec l'application, properties/xml/vdex/inpt_taxonomie_full.xml
  • le deuxième ne comporte que les catégories de cours associées à tous les codes Dewey qu'elles contiennent (voir properties/xml/vdex/inpt_taxonomie.xml).

Une feuille de transformation XSL permet de générer la deuxième à partir de la première( properties/xml/xsl/full2notfull.xsl).

Modifications du vocabulaire contenant la liste des catalogues pour le champ LOM:CATALOG

Le vocabulaire common_lom_gen_catalogs.xml est augmentés de trois entréés correspondant aux trois niveaux de fiches générées par CEPIA-LMS :

  • Les fiches cours sont affectées au catalogue défini par la propriété lom.gen.course.catalog
  • Les fiches sections sont affectées au catalogue défini par la propriété lom.gen.course.section
  • Les fiches ressources sont affectés au catalogue définit par la propriété lom.gen.catalog

Ces propriétés sont définies dans le fichier properties/transfer.properties.

Heritages des donnés du Workflow

Les auteurs et les codes Dewey doivent être hérités de la fiche cours si elle existe, et générés au cas échéant.

Les informations de type learning également.

Pour les descriptions, la concaténation des niveaux cours et sections dans la fiche ressource doit également provenir des fiches ORI si elles existent.

Modifications du workflow lom-easy en cepia_lom_easy

Des modification au workflow LOM_EASY sont apportées dans sa forme dérivée CEPIA_LOM_EASY.

Spécifications du bloc CEPIA-lms pour Moodle

Le bloc Cepia est constitué d'un bloc au sens Moodle du terme, c'est-à-dire un module enfichable sur une installation standard de Moodle (version 1.9.5+).

Affichage du bloc CEPIA

Ce bloc offre les actions suivantes (V1) :

  • Générer les fiches du cours :

Cette action va générer une fiche pour le cours courant ainsi que pour chacune de ses sections, à partir des métadonnées de Moodle (titre, description, auteurs), et pré-remplir automatiquement certaines métadonnés (voir les fonctionnalités décrites sur la page principale du module). Les relations sont également créées entre la fiche cours et les fiches sections. Attention, une fois cette action effectuée pour un cours, les métadonnées Moodle ne seront plus utilisées utlérieurement par ORI-OAI. Pour modifier les métadonnées LOM, il faudra passer par ORI-OAI-md-editor.

  • Mettre à jour les relations des fiches :

Cette action n'est disponible que si l'action “Générer les fiches du cours” a déjà été effectuée pour ce cours. Elle permet de mettre à jour les relations entre les fiches sections et les fiches resources en fonction de leur état de publication dans ORI-OAI-workflow.

  • Editer la fiche du cours :

Cette action ouvre une fenêtre permettant d'editer les métadonnées de la fiche LOM du cours.

Bouton de référencement d'une ressource

Dans la liste des ressources du cours, un bouton supplémentaire permet également de générer et d'editer la fiche de la ressource.

Implémentation

Fichiers :

  • moodle/blocks/cepia/block_cepia.php
  • moodle/blocks/cepia/config_instance.html
  • moodle/blocks/cepia/settings.php
  • moodle/course/lib.php (patché pour les boutons)
  • moodledata/lang/fr_utf8/block_cepia.php
#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))