Commit 4e053666 authored by Neveux Anais's avatar Neveux Anais

Merge branch 'master' of gitlab.utc.fr:crozatst/hdoc

parents abbf5cdf 087afe35
......@@ -42,7 +42,11 @@ Step by step :
Follow the instructions in the script, and then execute it.
[Step 3 : Make XQuery request]
- In the Text Editor of BaseX, you can open and execute xquery scripts in folder [`basex/xquery`](https://gitlab.utc.fr/crozatst/hdoc/tree/master/hdoc_to_basex/basex/xquery).
- Available scripts :
* searchDocByAuthor.hq
* searchDocByTitle.hq
\ No newline at end of file
- In the Text Editor of BaseX, you can open and execute xquery script "main.xq" in folder [`basex/xquery`](https://gitlab.utc.fr/crozatst/hdoc/tree/master/hdoc_to_basex/basex/xquery).
It's in this main module that we call predefined functions and execute script
- .xqm files are library modules where we have defined functions, we can go to these files for more detailed using instructions
Available library modules :
* searchDocByAuthor.xqm
* searchDocByTitle.xqm
* searchDocByTitle.xqm
\ No newline at end of file
(: this script with .xq as suffix is the main module :)
(: all functions defined in .xqm files (library modules) can be called here :)
import module namespace myNs = "https://gitlab.utc.fr/crozatst/hdoc/tree/master/hdoc_to_basex" at "searchSectionByTitle.xqm", "searchSectionByTitle.xqm", "searchDocByAuthor.xqm";
(: myNs:searchDocByTitle('^NF29_HdocEtherpad$', //document ):)
(: myNs:searchSectionByTitle('contenu', //document) :)
(: myNs:searchDocByAuthor('montangé', //document) :)
myNs:searchSectionByTitle('xml', myNs:searchDocByAuthor('montangé', //document))
\ No newline at end of file
......@@ -4,7 +4,9 @@
(: For example, $name := 'Montangé', to search for documents whose author named Coutant:)
(: Remark : case and accents in author's name have been taken care of :)
declare function local:searchDocByAuthor($name as xs:string, $docs as node()*) as node()*
module namespace myNs = "https://gitlab.utc.fr/crozatst/hdoc/tree/master/hdoc_to_basex";
declare function myNs:searchDocByAuthor($name as xs:string, $docs as node()*) as node()*
{
let $name_noAcc := translate($name, 'áàâäéèêëíìîïóòôöúùûüABCDEFGHIJKLMNOPQRSTUVWXYZ','aaaaeeeeiiiioooouuuuabcdefghijklmnopqrstuvwxyz')
for $doc in $docs
......@@ -15,7 +17,4 @@ declare function local:searchDocByAuthor($name as xs:string, $docs as node()*) a
where matches($author_noAcc, $name_noAcc)
group by $titre (: Avoid duplications of documents by their titre:)
return $doc
};
(: Example :)
local:searchDocByAuthor('Montangé', //document)
\ No newline at end of file
};
\ No newline at end of file
......@@ -3,12 +3,11 @@
(: For example, $name := '^NF29_HdocEtherpad$', to search for an exact name:)
(: For example, $name := 'NF29', to search for documents whose name contains 'NF29':)
declare function local:searchDocByTitle($name as xs:string, $docs as node()*) as node()*
module namespace myNs = "https://gitlab.utc.fr/crozatst/hdoc/tree/master/hdoc_to_basex";
declare function myNs:searchDocByTitle($name as xs:string, $docs as node()*) as node()*
{
for $doc in $docs
where matches($doc/titre, $name, "i")
return $doc
};
(: Example :)
local:searchDocByTitle('^NF29_HdocEtherpad$', //document)
\ No newline at end of file
};
\ No newline at end of file
......@@ -4,7 +4,9 @@
(: For example, $keyword := 'Syntax', to search for sections whose titles containing "Syntax" :)
(: Remark : case and accents in the keyword have been taken care of :)
declare function local:searchSectionByTitle($keyword as xs:string, $docs as node()*) as node()*
module namespace myNs = "https://gitlab.utc.fr/crozatst/hdoc/tree/master/hdoc_to_basex";
declare function myNs:searchSectionByTitle($keyword as xs:string, $docs as node()*) as node()*
{
let $keyword_noAcc := translate($keyword, 'áàâäéèêëíìîïóòôöúùûüABCDEFGHIJKLMNOPQRSTUVWXYZ','aaaaeeeeiiiioooouuuuabcdefghijklmnopqrstuvwxyz')
for $doc in $docs
......@@ -13,7 +15,4 @@ declare function local:searchSectionByTitle($keyword as xs:string, $docs as node
let $title_noAcc := translate($section/titresection, 'áàâäéèêëíìîïóòôöúùûüABCDEFGHIJKLMNOPQRSTUVWXYZ','aaaaeeeeiiiioooouuuuabcdefghijklmnopqrstuvwxyz')
where matches($title_noAcc, $keyword_noAcc)
return $section
};
(: Example :)
local:searchSectionByTitle('contenu', //document)
\ No newline at end of file
};
\ No newline at end of file
Liste des fonctions du convertisseur wikipedia_to_canoprof
Une activité est composée de :
- Entete :
titre
Durée => Ne peut pas être renseignée à partir de wiki
organisation => Faisable
résumé => Concrètement le 1e paragraphe du wiki
Compétences du socle/ Notions et compétences/ métadonnées d'indexation => Correspond à quoi concrétement ?
- (Section | element)*
Les éléments sont :
*Information
*Attention
*Complément
*Conseil
*Définition
*Exemple
*Hypothèse
*Méthode
*Rappel
*Question avec corrigé masqué ou non
=> Pas forcément utile dans le cas où les articles wikipédia ne comportent pas de QCM
Les sections sont composées : section(titre,element*)
*titre
*element
Chaque element est decoupé en : element(titre?,contenu)
Contenu est de la forme :
1.Texte multimédia (paragraphe)*
paragraphe :
possibilité de mise en page
<important/>
<italique/>
Citation (paragraphe)
Indice
Exposant
Liens Web (url,titre,description) -> Utilité de description ?
Lien vers activité = sc:uLink role="activity"
Lien vers média = sc:uLink role="media"
Illustration = <sc:extBlock role="illustration" sc:refUri="/texte.activite"/>
Inline image
Liste = puce ou ordonné
Tableau => A priori pas utile, parce qu'avec Wikipédia, ca sera texte + url + image c'est tout
Les tableaux seront sous forme d'image
2.Texte vis-à-vis = pas utile pour la transfo
3.Zone de saisie élève , consigne élève, remarque professeur => pas utiles non plus
Mise en relation hdoc // Canoprof
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project basedir="." name="opale_to_canoprof" default="main">
<property file="opale_to_canoprof.properties"/>
<!-- Check the OS family -->
<condition property="is_windows">
<os family="windows"/>
</condition>
<condition property="is_unix">
<os family="unix"/>
</condition>
<target name="main">
<delete dir="${out}" failonerror="false"/>
<mkdir dir="output"/>
<antcall target="to_hdoc_unix"/>
<antcall target="to_hdoc_windows"/>
<antcall target="to_canoprof_windows"/>
<antcall target="to_canoprof_unix"/>
<antcall target="to_canoprof_end"/>
</target>
<!-- Targets if windows -->
<!-- Conversion opale to hdoc -->
<!-- 1. delete the opale_to_hdoc input file -->
<!-- 2. copy the local input file to opale_to_hdoc -->
<!-- 3. run the opale_to_hdoc conversion -->
<target name="to_hdoc_windows" if="${is_windows}">
<delete>
<fileset dir="${opa_in}">
<include name="*.scar"/>
</fileset>
</delete>
<copy todir="${opa_in}">
<fileset dir="${in}">
<include name="*.scar"/>
</fileset>
</copy>
<exec dir="../opale_to_hdoc" executable="../opale_to_hdoc/run.bat"/>
</target>
<!-- Conversion hdoc to canoprof -->
<!-- 1. delete the hdoc_to_canoprof input file -->
<!-- 2. copy the opale_to_hdoc's output file to hdoc_to_canoprof input folder -->
<!-- 3. run the hdoc_to_canoprof conversion -->
<target name="to_canoprof_windows" if="${is_windows}">
<delete>
<fileset dir="${cano_in}">
<include name="*.hdoc"/>
</fileset>
</delete>
<copy todir="${cano_in}">
<fileset dir="${opa_out}">
<include name="*.hdoc"/>
</fileset>
</copy>
<exec dir="../hdoc_to_canoprof" executable="../hdoc_to_canoprof/run.bat"/>
</target>
<!-- Targets if unix -->
<!-- Conversion opale to hdoc -->
<!-- 1. delete the opale_to_hdoc input file -->
<!-- 2. copy the local input file to opale_to_hdoc -->
<!-- 3. run the opale_to_hdoc conversion -->
<target name="to_hdoc_unix" if="${is_unix}">
<delete>
<fileset dir="${opa_in}">
<include name="*.scar"/>
</fileset>
</delete>
<copy todir="${opa_in}">
<fileset dir="${in}">
<include name="*.scar"/>
</fileset>
</copy>
<exec executable="/bin/bash" dir="../opale_to_hdoc">
<arg value="../opale_to_hdoc/run.sh"/>
</exec>
</target>
<!-- Conversion hdoc to canoprof -->
<!-- 1. delete the hdoc_to_canoprof input file -->
<!-- 2. copy the opale_to_hdoc's output file to hdoc_to_canoprof input folder -->
<!-- 3. run the hdoc_to_canoprof conversion -->
<target name="to_canoprof_unix" if="${is_unix}">
<delete>
<fileset dir="${cano_in}">
<include name="*.hdoc"/>
</fileset>
</delete>
<copy todir="${cano_in}">
<fileset dir="${opa_out}">
<include name="*.hdoc"/>
</fileset>
</copy>
<exec executable="/bin/bash" dir="../hdoc_to_canoprof">
<arg value="../hdoc_to_canoprof/run.sh"/>
</exec>
</target>
<!-- After the file is converted to canoprof, copy the resulting file to opale_to_canoprof's output folder -->
<target name="to_canoprof_end">
<copy todir="${out}">
<fileset dir="${cano_out}"/>
</copy>
</target>
</project>
in = ${basedir}/input
out = ${basedir}/output
tmp = ${basedir}/tmp
xsl = ${basedir}/xsl
lib = ${basedir}/lib
log = ${basedir}/log
opa_in = ../opale_to_hdoc/input
opa_out = ../opale_to_hdoc/output
cano_in = ../hdoc_to_canoprof/input
cano_out = ../hdoc_to_canoprof/output
rootfilename = content.xml
\ No newline at end of file
......@@ -6,7 +6,7 @@ License GPL3.0 http://www.gnu.org/licenses/gpl-3.0.txt
## Credits
-------------
DELAUNAY Grégory
DELAUNAY Grégory
KELLER Vincent
## Presentation
......@@ -22,8 +22,25 @@ Opale to ElasticSearch module extract data from an Opale file to use it with Ela
## User Story
-------------
"Vous disposez d'un ensemble de contenus Opale à votre disposition et vous aimeriez pouvoir l'analyser selon les différents types d'éléments possibles : cours, exercices, notions tout en permettant de trier par rapport aux différents sujets de ces dit contenus.
Pour se faire, vous mettrez les contenus que vous voulez analyser en input de opale_to_elasticSearch et vous lancerez le script lançant le fichier ANT.
Vous pourrez ensuite accéder à des graphiques Kibana à une adresse donnée et paramétrer vos graphiques afin d'obtenir les informations qui vous intéresse.
"Vous disposez d'un ensemble de contenus Opale à votre disposition et vous aimeriez pouvoir l'analyser selon les différents types d'éléments possibles : cours, exercices, notions tout en permettant de trier par rapport aux différents sujets de ces dit contenus.
Pour se faire, vous mettrez les contenus que vous voulez analyser en input de opale_to_elasticSearch et vous lancerez le script lançant le fichier ANT.
Vous pourrez ensuite accéder à des graphiques Kibana à une adresse donnée et paramétrer vos graphiques afin d'obtenir les informations qui vous intéresse.
A savoir que les contenus opale de plusieurs machines/utilisateurs peuvent être capitalisés car l'ensemble des instances de base elasticSearch installées forment un cluster accessible via l'interface Kibana"
A savoir que les contenus opale de plusieurs machines/utilisateurs peuvent être capitalisés car l'ensemble des instances de base elasticSearch installées forment un cluster accessible via l'interface Kibana"
##Utilisation
-------------
L'utilisation complète d'opale_to_elasticSearch nécessite l'utilisation de la stack ELK (ElasticSearch, Logstash, Kibana).
- Télécharger ElasticSearch : https://www.elastic.co/fr/downloads/elasticsearch
- Télécharger Logstash : https://www.elastic.co/fr/downloads/logstash
- Télécharger Kibana : https://www.elastic.co/fr/downloads/kibana
- Télécharger le fichier de conf de Logstash : https://www.dropbox.com/s/lkz3dgmto2d378m/esconf.conf?dl=0
- Mettre le fichier téléchargé dans %{dossier_installation_logstash}/
Etapes :
- aller dans votre dossier d'installation d'elasticsearch et lancer bin/elasticsearch
- aller dans votre dossier d'installation de kibana et lancer bin/kibana
- aller dans votre dossier d'installation de logstash et lancer bin/logstash - f esconf.conf
- lancer la transformation opale_to_elasticsearch en mettant d'abord les *.scar dans opale_to_elasticsearch/input
- Normalement les log de logstash indique l'insertion des sorties de la transformation, il arrive pour le moment qu'il ne le fasse qu'au moment où logstash s'arrête, l'arrêter alors.
- aller sur http://localhost:5601/app/kibana#/dashboard/NF29_DATA_DASHBOARD?_g=(filters%3A!()%2CrefreshInterval%3A(display%3AOff%2Cpause%3A!f%2Cvalue%3A0)%2Ctime%3A(from%3Anow%2Fy%2Cmode%3Aquick%2Cto%3Anow%2Fy))
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment