diff --git a/tetras_extraction/macao_12/result/macao_content.ttl b/tetras_extraction/macao_12/result/macao_content.ttl
index a6941235628e0e452b5105f3cc1e6464fbabb0b0..26854ab7af0a4055ef589fef99372639e033ed84 100644
--- a/tetras_extraction/macao_12/result/macao_content.ttl
+++ b/tetras_extraction/macao_12/result/macao_content.ttl
@@ -31,8 +31,12 @@
         owl:NamedIndividual ;
     rdfs:label "Choisir une transcription (9)" ;
     :__protege_display_name "18 | pg1000 | Choisir une transcription (9)" ;
-    :aReponseCorrecte 1 ;
-    :aReponseIncorrecte 0 ;
+    :aReponse [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep1\" onmouseover=\"exo.changerBouton(1,true);\" onmouseout=\"exo.changerBouton(1,false);\" onclick=\"exo.action(1)\"><img src=\"../media/phon_leadplomb.png\" id=\"MosImg263\" border=\"0\" align=\"center\" style=\"visibility:hidden\"></div>" ;
+            :index 0 ],
+        [ :correct true ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep2\" onmouseover=\"exo.changerBouton(2,true);\" onmouseout=\"exo.changerBouton(2,false);\" onclick=\"exo.action(2)\"><img src=\"../media/phon_leadmener.png\" id=\"MosImg297\" border=\"0\" align=\"center\" style=\"visibility:hidden\"></div>" ;
+            :index 1 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align="">C'est la bonne réponse. Il
         s'agit d'un verbe qui signifie <i>mener</i>. <br><br>L'autre prononciation  <img align="center" border="0" src="../media/phon_leadplomb.png" id="MosImg266" style="visibility:hidden"><br>existe
         : il s'agit d'un nom qui signifie <i>plomb</i>.<br>Vous pouvez écouter et ainsi différencier les deux mots :</p>
@@ -101,8 +105,16 @@
         owl:NamedIndividual ;
     rdfs:label "Choisir une prononciation (3)" ;
     :__protege_display_name "09 | pg108 | Choisir une prononciation (3)" ;
-    :aReponseCorrecte 0 ;
-    :aReponseIncorrecte 1 ;
+    :aReponse [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep2" onmouseover="exo.changerBouton(2,true);" onmouseout="exo.changerBouton(2,false);" onclick="exo.action(2)">
+                        <script type="text/javascript">ajDocW(PF_clipAV('clipAV2', 'bt_think.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+                    </div>""" ;
+            :index 1 ],
+        [ :correct true ;
+            :html """<div class="STY_reponseQC" id="lienRep1" onmouseover="exo.changerBouton(1,true);" onmouseout="exo.changerBouton(1,false);" onclick="exo.action(1)">
+                        <script type="text/javascript">ajDocW(PF_clipAV('clipAV84', 'bt_thing.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+                    </div>""" ;
+            :index 0 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')">Effectivement, la transcription correspond
         au premier mot entendu : <i>thing</i>.
     </div>
@@ -120,15 +132,33 @@
         owl:NamedIndividual ;
     rdfs:label "Choisir l'accentuation adéquate  (2)" ;
     :__protege_display_name "08 | pg112 | Choisir l'accentuation adéquate  (2)" ;
-    :aReponseIncorrecte 0,
-        1,
-        2,
-        3,
-        4,
-        5,
-        6,
-        7,
-        8 ;
+    :aReponse [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep3\" onmouseover=\"exo.changerBouton(3,true);\" onmouseout=\"exo.changerBouton(3,false);\" onclick=\"exo.action(3)\"><span style=\"FONT-SIZE: 250%\">•<img align=\"center\" border=\"0\" src=\"../media/phon_desert_2.png\" id=\"MosImg31\" style=\"visibility:hidden\"></span></div>" ;
+            :index 2 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep9\" onmouseover=\"exo.changerBouton(9,true);\" onmouseout=\"exo.changerBouton(9,false);\" onclick=\"exo.action(9)\"><span style=\"FONT-SIZE: 250%\">•<img src=\"../media/phon_desert_2.png\" id=\"MosImg50\" border=\"0\" align=\"center\" style=\"visibility:hidden\"></span></div>" ;
+            :index 8 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep6\" onmouseover=\"exo.changerBouton(6,true);\" onmouseout=\"exo.changerBouton(6,false);\" onclick=\"exo.action(6)\"><font color=\"#a60a69\"><i><b></b></i></font></div>" ;
+            :index 5 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep5\" onmouseover=\"exo.changerBouton(5,true);\" onmouseout=\"exo.changerBouton(5,false);\" onclick=\"exo.action(5)\"><font color=\"#a60a69\"></font></div>" ;
+            :index 4 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep4\" onmouseover=\"exo.changerBouton(4,true);\" onmouseout=\"exo.changerBouton(4,false);\" onclick=\"exo.action(4)\"></div>" ;
+            :index 3 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep7\" onmouseover=\"exo.changerBouton(7,true);\" onmouseout=\"exo.changerBouton(7,false);\" onclick=\"exo.action(7)\"><font color=\"#a60a69\">...before reaching the <i><b>desert</b></i>.</font></div>" ;
+            :index 6 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep2\" onmouseover=\"exo.changerBouton(2,true);\" onmouseout=\"exo.changerBouton(2,false);\" onclick=\"exo.action(2)\"><span style=\"FONT-SIZE: 250%\">•<img align=\"center\" border=\"0\" src=\"../media/phon_desert_1.png\" id=\"MosImg71\" style=\"visibility:hidden\"></span></div>" ;
+            :index 1 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep1\" onmouseover=\"exo.changerBouton(1,true);\" onmouseout=\"exo.changerBouton(1,false);\" onclick=\"exo.action(1)\"><font color=\"#a60a69\">The soldier decided to  <i><b>desert </b></i>...</font></div>" ;
+            :index 0 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep8\" onmouseover=\"exo.changerBouton(8,true);\" onmouseout=\"exo.changerBouton(8,false);\" onclick=\"exo.action(8)\"><span style=\"FONT-SIZE: 250%\">•<img src=\"../media/phon_desert_1.png\" id=\"MosImg32\" border=\"0\" align=\"center\" style=\"visibility:hidden\"></span></div>" ;
+            :index 7 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"></div>
     """ ;
     :commentaireSugg """<div id="divSugg1" onclick="SPE_clicDansBulle(event,'divSugg1')"><p align=""><font color="#a60a69"></font> </p>
@@ -158,8 +188,14 @@
         owl:NamedIndividual ;
     rdfs:label "Choisir entre deux mots (1)" ;
     :__protege_display_name "12 | pg149 | Choisir entre deux mots (1)" ;
-    :aReponseCorrecte 0 ;
-    :aReponseIncorrecte 1 ;
+    :aReponse [ :correct true ;
+            :html """<div class="STY_reponseQC" id="lienRep1" onmouseover="exo.changerBouton(1,true);" onmouseout="exo.changerBouton(1,false);" onclick="exo.action(1)">cow
+                    </div>""" ;
+            :index 0 ],
+        [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep2" onmouseover="exo.changerBouton(2,true);" onmouseout="exo.changerBouton(2,false);" onclick="exo.action(2)">cough
+                    </div>""" ;
+            :index 1 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align="">Bonne réponse ! </p>
         <p align="">Vous pouvez comparer les deux mots, en remarquant leur prononciation, leur écriture et leur
             transcription :</p>
@@ -218,8 +254,14 @@
         owl:NamedIndividual ;
     rdfs:label "Distinguer d'éventuelles variantes (4)" ;
     :__protege_display_name "07 | pg155 | Distinguer d'éventuelles variantes (4)" ;
-    :aReponseCorrecte 0 ;
-    :aReponseIncorrecte 1 ;
+    :aReponse [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep2" onmouseover="exo.changerBouton(2,true);" onmouseout="exo.changerBouton(2,false);" onclick="exo.action(2)"><p align="">IN ne se prononce
+                        pas de la même façon dans les deux énoncés.</p></div>""" ;
+            :index 1 ],
+        [ :correct true ;
+            :html """<div class="STY_reponseQC" id="lienRep1" onmouseover="exo.changerBouton(1,true);" onmouseout="exo.changerBouton(1,false);" onclick="exo.action(1)"><p align="">IN se prononce de
+                        la même façon dans les deux énoncés.</p></div>""" ;
+            :index 0 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align="">Vous avez bien entendu. La
         préposition <i>in</i> est prononcée dans les deux énoncés sans différence notable.</p>
         <p align="">
@@ -323,8 +365,12 @@
         owl:NamedIndividual ;
     rdfs:label "Choisir une transcription (7)" ;
     :__protege_display_name "06 | pg205 | Choisir une transcription (7)" ;
-    :aReponseCorrecte 0 ;
-    :aReponseIncorrecte 1 ;
+    :aReponse [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep2\" onmouseover=\"exo.changerBouton(2,true);\" onmouseout=\"exo.changerBouton(2,false);\" onclick=\"exo.action(2)\"><img src=\"../media/phon_hear_faux.png\" id=\"MosImg97\" border=\"0\" align=\"center\" style=\"visibility:hidden\"></div>" ;
+            :index 1 ],
+        [ :correct true ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep1\" onmouseover=\"exo.changerBouton(1,true);\" onmouseout=\"exo.changerBouton(1,false);\" onclick=\"exo.action(1)\"><img src=\"../media/phon_hear.png\" id=\"MosImg90\" border=\"0\" align=\"center\" style=\"visibility:hidden\"></div>" ;
+            :index 0 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')">C'est exact.</div>
     """ ;
     :commentaireSugg """<div id="divSugg1" onclick="SPE_clicDansBulle(event,'divSugg1')"><p align="">Vous vous êtes trompé. La bonne
@@ -343,8 +389,12 @@
         owl:NamedIndividual ;
     rdfs:label "Choisir une transcription (11)" ;
     :__protege_display_name "20 | pg2051 | Choisir une transcription (11)" ;
-    :aReponseCorrecte 1 ;
-    :aReponseIncorrecte 0 ;
+    :aReponse [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep1\" onmouseover=\"exo.changerBouton(1,true);\" onmouseout=\"exo.changerBouton(1,false);\" onclick=\"exo.action(1)\"><img src=\"../media/phon_use_utiliser.png\" id=\"MosImg74\" border=\"0\" align=\"center\" style=\"visibility:hidden\"></div>" ;
+            :index 0 ],
+        [ :correct true ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep2\" onmouseover=\"exo.changerBouton(2,true);\" onmouseout=\"exo.changerBouton(2,false);\" onclick=\"exo.action(2)\"><img src=\"../media/phon_use_usage.png\" id=\"MosImg43\" border=\"0\" align=\"center\" style=\"visibility:hidden\"></div>" ;
+            :index 1 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align="">C'est la bonne réponse. Il
         s'agit d'un nom qui signifie <i>usage</i>. </p>
         <p align="">L'autre prononciation   <img align="center" border="0" src="../media/phon_use_utiliser.png" id="MosImg7410" style="visibility:hidden"><br><br>existe et correspond
@@ -407,8 +457,13 @@
         owl:NamedIndividual ;
     rdfs:label "Choisir une transcription (1)" ;
     :__protege_display_name "00 | pg217 | Choisir une transcription (1)" ;
-    :aReponseCorrecte 0 ;
-    :aReponseIncorrecte 1 ;
+    :aReponse [ :correct true ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep1\" onmouseover=\"exo.changerBouton(1,true);\" onmouseout=\"exo.changerBouton(1,false);\" onclick=\"exo.action(1)\"><img src=\"../media/phon_thin.png\" id=\"MosImg9\" border=\"0\" align=\"center\" style=\"visibility:hidden\"></div>" ;
+            :index 0 ],
+        [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep2" onmouseover="exo.changerBouton(2,true);" onmouseout="exo.changerBouton(2,false);" onclick="exo.action(2)"><img align="center" border="0" src="../media/phon_thin_faux.png" id="MosImg84" style="visibility:hidden">                                               
+                    </div>""" ;
+            :index 1 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')">C'est exact.</div>
     """ ;
     :commentaireSugg """<div id="divSugg1" onclick="SPE_clicDansBulle(event,'divSugg1')">Vous vous êtes trompé. La bonne transcription est
@@ -425,9 +480,21 @@
         owl:NamedIndividual ;
     rdfs:label "Spécificité des voyelles (3)" ;
     :__protege_display_name "16 | pg220 | Spécificité des voyelles (3)" ;
-    :aReponseCorrecte 2 ;
-    :aReponseIncorrecte 0,
-        1 ;
+    :aReponse [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep1" onmouseover="exo.changerBouton(1,true);" onmouseout="exo.changerBouton(1,false);" onclick="exo.action(1)">la voyelle contient un son
+                        unique et stable
+                    </div>""" ;
+            :index 0 ],
+        [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep2" onmouseover="exo.changerBouton(2,true);" onmouseout="exo.changerBouton(2,false);" onclick="exo.action(2)">la voyelle est composée de 2
+                        sons prononcés de manière égale
+                    </div>""" ;
+            :index 1 ],
+        [ :correct true ;
+            :html """<div class="STY_reponseQC" id="lienRep3" onmouseover="exo.changerBouton(3,true);" onmouseout="exo.changerBouton(3,false);" onclick="exo.action(3)">la voyelle est composée de 2
+                        sons prononcés de manière inégale
+                    </div>""" ;
+            :index 2 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')">C'est la bonne réponse.</div>
     """ ;
     :commentaireSugg """<div id="divSugg1" onclick="SPE_clicDansBulle(event,'divSugg1')">Ce n'est pas la bonne réponse. Il y a bien deux
@@ -444,8 +511,16 @@
         owl:NamedIndividual ;
     rdfs:label "Spécificité des voyelles (5)" ;
     :__protege_display_name "19 | pg226 | Spécificité des voyelles (5)" ;
-    :aReponseCorrecte 1 ;
-    :aReponseIncorrecte 0 ;
+    :aReponse [ :correct true ;
+            :html """<div class="STY_reponseQC" id="lienRep2" onmouseover="exo.changerBouton(2,true);" onmouseout="exo.changerBouton(2,false);" onclick="exo.action(2)">il est difficile d'établir une
+                        différence de longueur entre les 2 voyelles
+                    </div>""" ;
+            :index 1 ],
+        [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep1" onmouseover="exo.changerBouton(1,true);" onmouseout="exo.changerBouton(1,false);" onclick="exo.action(1)">la voyelle en orange est plus
+                        longue que la voyelle en violet
+                    </div>""" ;
+            :index 0 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')">C'est exact.</div>
     """ ;
     :commentaireSugg """<div id="divSugg1" onclick="SPE_clicDansBulle(event,'divSugg1')">C'est inexact ; réécoutez attentivement les deux
@@ -462,15 +537,33 @@
         owl:NamedIndividual ;
     rdfs:label "Choisir l'accentuation adéquate  (4)" ;
     :__protege_display_name "10 | pg228 | Choisir l'accentuation adéquate  (4)" ;
-    :aReponseIncorrecte 0,
-        1,
-        2,
-        3,
-        4,
-        5,
-        6,
-        7,
-        8 ;
+    :aReponse [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep2\" onmouseover=\"exo.changerBouton(2,true);\" onmouseout=\"exo.changerBouton(2,false);\" onclick=\"exo.action(2)\"><span style=\"FONT-SIZE: 250%\">•<img align=\"center\" border=\"0\" src=\"../media/phon_intimate_1.png\" id=\"MosImg847\" style=\"visibility:hidden\"></span></div>" ;
+            :index 1 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep4\" onmouseover=\"exo.changerBouton(4,true);\" onmouseout=\"exo.changerBouton(4,false);\" onclick=\"exo.action(4)\"></div>" ;
+            :index 3 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep7\" onmouseover=\"exo.changerBouton(7,true);\" onmouseout=\"exo.changerBouton(7,false);\" onclick=\"exo.action(7)\"><font color=\"#a60a69\">...to my most <i><b>intimate</b></i> friend ?</font></div>" ;
+            :index 6 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep9\" onmouseover=\"exo.changerBouton(9,true);\" onmouseout=\"exo.changerBouton(9,false);\" onclick=\"exo.action(9)\"><span style=\"FONT-SIZE: 250%\">•<img src=\"../media/phon_intimate_2.png\" id=\"MosImg85\" border=\"0\" align=\"center\" style=\"visibility:hidden\"></span></div>" ;
+            :index 8 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep5\" onmouseover=\"exo.changerBouton(5,true);\" onmouseout=\"exo.changerBouton(5,false);\" onclick=\"exo.action(5)\"><font color=\"#a60a69\"></font></div>" ;
+            :index 4 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep8\" onmouseover=\"exo.changerBouton(8,true);\" onmouseout=\"exo.changerBouton(8,false);\" onclick=\"exo.action(8)\"><span style=\"FONT-SIZE: 250%\">•<img src=\"../media/phon_intimate_1.png\" id=\"MosImg95\" border=\"0\" align=\"center\" style=\"visibility:hidden\"></span></div>" ;
+            :index 7 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep3\" onmouseover=\"exo.changerBouton(3,true);\" onmouseout=\"exo.changerBouton(3,false);\" onclick=\"exo.action(3)\"><span style=\"FONT-SIZE: 250%\">•<img align=\"center\" border=\"0\" src=\"../media/phon_intimate_2.png\" id=\"MosImg78\" style=\"visibility:hidden\"></span></div>" ;
+            :index 2 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep6\" onmouseover=\"exo.changerBouton(6,true);\" onmouseout=\"exo.changerBouton(6,false);\" onclick=\"exo.action(6)\"><font color=\"#a60a69\"><i><b></b></i></font></div>" ;
+            :index 5 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep1\" onmouseover=\"exo.changerBouton(1,true);\" onmouseout=\"exo.changerBouton(1,false);\" onclick=\"exo.action(1)\"><font color=\"#a60a69\">How can I <b><i>intimate </i></b>this<font color=\"#a60a69\">...</font></font></div>" ;
+            :index 0 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"></div>
     """ ;
     :commentaireSugg """<div id="divSugg1" onclick="SPE_clicDansBulle(event,'divSugg1')"><p align=""><font color="#a60a69"><span style="FONT-SIZE: 90%"><font color="#a60a69"><br><br><br><br>Voici le corrigé :<br><br>How can<br></font><font color="#a60a69">I <i><b>intimate</b></i> this to my most <i><b>intimate</b></i> friend ? </font></span></font><font color="#a60a69"><br><br> <img align="center" border="0" src="../media/phon_intimate_1.png" id="MosImg844436" style="visibility:hidden">                <img align="center" border="0" src="../media/phon_intimate_2.png" id="MosImg6495426" style="visibility:hidden"></font>
@@ -569,15 +662,34 @@
         owl:NamedIndividual ;
     rdfs:label "Choisir l'accentuation adéquate  (5)" ;
     :__protege_display_name "11 | pg293 | Choisir l'accentuation adéquate  (5)" ;
-    :aReponseIncorrecte 0,
-        1,
-        2,
-        3,
-        4,
-        5,
-        6,
-        7,
-        8 ;
+    :aReponse [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep7\" onmouseover=\"exo.changerBouton(7,true);\" onmouseout=\"exo.changerBouton(7,false);\" onclick=\"exo.action(7)\"><font color=\"#a60a69\">...their music on a colour <i><b>record</b></i>. </font></div>" ;
+            :index 6 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep4\" onmouseover=\"exo.changerBouton(4,true);\" onmouseout=\"exo.changerBouton(4,false);\" onclick=\"exo.action(4)\"></div>" ;
+            :index 3 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep3\" onmouseover=\"exo.changerBouton(3,true);\" onmouseout=\"exo.changerBouton(3,false);\" onclick=\"exo.action(3)\"><span style=\"FONT-SIZE: 250%\">•<img align=\"center\" border=\"0\" src=\"../media/phon_record_2.png\" id=\"MosImg311\" style=\"visibility:hidden\"></span></div>" ;
+            :index 2 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep2\" onmouseover=\"exo.changerBouton(2,true);\" onmouseout=\"exo.changerBouton(2,false);\" onclick=\"exo.action(2)\"><span style=\"FONT-SIZE: 250%\">•<img align=\"center\" border=\"0\" src=\"../media/phon_record_1.png\" id=\"MosImg832\" style=\"visibility:hidden\"></span></div>" ;
+            :index 1 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep5\" onmouseover=\"exo.changerBouton(5,true);\" onmouseout=\"exo.changerBouton(5,false);\" onclick=\"exo.action(5)\"><font color=\"#a60a69\"></font></div>" ;
+            :index 4 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep8\" onmouseover=\"exo.changerBouton(8,true);\" onmouseout=\"exo.changerBouton(8,false);\" onclick=\"exo.action(8)\"><span style=\"FONT-SIZE: 250%\">•<img src=\"../media/phon_record_1.png\" id=\"MosImg97\" border=\"0\" align=\"center\" style=\"visibility:hidden\"></span></div>" ;
+            :index 7 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep6\" onmouseover=\"exo.changerBouton(6,true);\" onmouseout=\"exo.changerBouton(6,false);\" onclick=\"exo.action(6)\"><font color=\"#a60a69\"><i><b></b></i></font></div>" ;
+            :index 5 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep9\" onmouseover=\"exo.changerBouton(9,true);\" onmouseout=\"exo.changerBouton(9,false);\" onclick=\"exo.action(9)\"><span style=\"FONT-SIZE: 250%\">•<img src=\"../media/phon_record_2.png\" id=\"MosImg58\" border=\"0\" align=\"center\" style=\"visibility:hidden\"></span></div>" ;
+            :index 8 ],
+        [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep1" onmouseover="exo.changerBouton(1,true);" onmouseout="exo.changerBouton(1,false);" onclick="exo.action(1)"><font color="#a60a69">The Beatles wanted the technicians to
+                                    <i><b>record</b></i>...</font></div>""" ;
+            :index 0 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"></div>
     """ ;
     :commentaireSugg """<div id="divSugg1" onclick="SPE_clicDansBulle(event,'divSugg1')"><p align=""><font color="#a60a69"></font> </p>
@@ -655,10 +767,18 @@
         owl:NamedIndividual ;
     rdfs:label "Lire des transcriptions phonétiques (2)" ;
     :__protege_display_name "14 | pg313 | Lire des transcriptions phonétiques (2)" ;
-    :aReponseIncorrecte 0,
-        1,
-        2,
-        3 ;
+    :aReponse [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep3\" onmouseover=\"exo.changerBouton(3,true);\" onmouseout=\"exo.changerBouton(3,false);\" onclick=\"exo.action(3)\"><a class=\"STY_lienComt\" href=\"javascript:CRS_afficherDetail('3')\" onclick=\"enrPosClic(event,'3')\"><img align=\"center\" border=\"0\" src=\"../media/phon_photographer_14.png\" id=\"MosImg13\" style=\"visibility:hidden\"></a><br><br></div>" ;
+            :index 2 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep2\" onmouseover=\"exo.changerBouton(2,true);\" onmouseout=\"exo.changerBouton(2,false);\" onclick=\"exo.action(2)\"><a class=\"STY_lienComt\" href=\"javascript:CRS_afficherDetail('2')\" onclick=\"enrPosClic(event,'2')\"><img align=\"center\" border=\"0\" src=\"../media/phon_philosophy14.png\" id=\"MosImg568\" style=\"visibility:hidden\"></a><br><br></div>" ;
+            :index 1 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep1\" onmouseover=\"exo.changerBouton(1,true);\" onmouseout=\"exo.changerBouton(1,false);\" onclick=\"exo.action(1)\"><p align=\"\"><a class=\"STY_lienComt\" href=\"javascript:CRS_afficherDetail('1')\" onclick=\"enrPosClic(event,'1')\"><img align=\"center\" border=\"0\" src=\"../media/phon_psychology_juste.png\" id=\"MosImg1\" style=\"visibility:hidden\"></a><br><br></p></div>" ;
+            :index 0 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep4\" onmouseover=\"exo.changerBouton(4,true);\" onmouseout=\"exo.changerBouton(4,false);\" onclick=\"exo.action(4)\"><a class=\"STY_lienComt\" href=\"javascript:CRS_afficherDetail('4')\" onclick=\"enrPosClic(event,'4')\"><img align=\"center\" border=\"0\" src=\"../media/phon_criticism.png\" id=\"MosImg253\" style=\"visibility:hidden\"></a></div>" ;
+            :index 3 ] ;
     :commentaireInfo """<div id="divCmt1" onclick="SPE_clicDansBulle(event,'divCmt1')"><br><br><br><br><br><br><br><br><br><br>
         <script type="text/javascript">ajDocW(PF_clipAV('clipAV97', 'bt_psycho.swf', '17', '17', 'false', 'Flash', 'false', 'middle', 'Quality:high;wmode:transparent', 'cmt'));</script>
            <img align="center" border="0" src="../media/phon_psychology_juste.png" id="MosImg12" style="visibility:hidden"></div>
@@ -867,8 +987,15 @@
         owl:NamedIndividual ;
     rdfs:label "L'auxiliaire MUST (1)" ;
     :__protege_display_name "00 | pg381 | L'auxiliaire MUST (1)" ;
-    :aReponseCorrecte 0 ;
-    :aReponseIncorrecte 1 ;
+    :aReponse [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep2" onmouseover="exo.changerBouton(2,true);" onmouseout="exo.changerBouton(2,false);" onclick="exo.action(2)">l'auxiliaire MUST n'est pas
+                        prononcé de façon identique.
+                    </div>""" ;
+            :index 1 ],
+        [ :correct true ;
+            :html """<div class="STY_reponseQC" id="lienRep1" onmouseover="exo.changerBouton(1,true);" onmouseout="exo.changerBouton(1,false);" onclick="exo.action(1)"><p align="">l'auxiliaire MUST
+                        est prononcé de façon identique.</p></div>""" ;
+            :index 0 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align="">
         <br><br><br><br><br><br><br><br>Bien !</p>
         <p align="">L'auxiliaire est effectivement prononcé dans les deux énoncés avec la forme <b><a class="STY_lienDansZoneComt" href="javascript:parent.SCO_ouvrirDoc('voyelle_reduite','htm')">réduite</a></b>
@@ -891,8 +1018,16 @@
         owl:NamedIndividual ;
     rdfs:label "Choisir une prononciation (2)" ;
     :__protege_display_name "08 | pg386 | Choisir une prononciation (2)" ;
-    :aReponseCorrecte 1 ;
-    :aReponseIncorrecte 0 ;
+    :aReponse [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep1" onmouseover="exo.changerBouton(1,true);" onmouseout="exo.changerBouton(1,false);" onclick="exo.action(1)"> 
+                        <script type="text/javascript">ajDocW(PF_clipAV('clipAV91', 'bt_hear.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+                    </div>""" ;
+            :index 0 ],
+        [ :correct true ;
+            :html """<div class="STY_reponseQC" id="lienRep2" onmouseover="exo.changerBouton(2,true);" onmouseout="exo.changerBouton(2,false);" onclick="exo.action(2)"> 
+                        <script type="text/javascript">ajDocW(PF_clipAV('clipAV83', 'bt_ear.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+                    </div>""" ;
+            :index 1 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')">Effectivement, la transcription correspond
         au second mot entendu : <i>ear</i>.
     </div>
@@ -947,10 +1082,19 @@
         owl:NamedIndividual ;
     rdfs:label "Lire des transcriptions phonétiques (1)" ;
     :__protege_display_name "13 | pg400 | Lire des transcriptions phonétiques (1)" ;
-    :aReponseIncorrecte 0,
-        1,
-        2,
-        3 ;
+    :aReponse [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep2\" onmouseover=\"exo.changerBouton(2,true);\" onmouseout=\"exo.changerBouton(2,false);\" onclick=\"exo.action(2)\"><a class=\"STY_lienComt\" href=\"javascript:CRS_afficherDetail('2')\" onclick=\"enrPosClic(event,'2')\"><img src=\"../media/phon_university__162.png\" id=\"MosImg387\" border=\"0\" align=\"center\" style=\"visibility:hidden\"></a><br><br></div>" ;
+            :index 1 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep4\" onmouseover=\"exo.changerBouton(4,true);\" onmouseout=\"exo.changerBouton(4,false);\" onclick=\"exo.action(4)\"><a class=\"STY_lienComt\" href=\"javascript:CRS_afficherDetail('4')\" onclick=\"enrPosClic(event,'4')\"><img align=\"center\" border=\"0\" src=\"../media/phon_eighty.png\" id=\"MosImg43\" style=\"visibility:hidden\"></a></div>" ;
+            :index 3 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep3\" onmouseover=\"exo.changerBouton(3,true);\" onmouseout=\"exo.changerBouton(3,false);\" onclick=\"exo.action(3)\"><a class=\"STY_lienComt\" href=\"javascript:CRS_afficherDetail('3')\" onclick=\"enrPosClic(event,'3')\"><img align=\"center\" border=\"0\" src=\"../media/phon_eighteen.png\" id=\"MosImg19\" style=\"visibility:hidden\"></a><br><br></div>" ;
+            :index 2 ],
+        [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep1" onmouseover="exo.changerBouton(1,true);" onmouseout="exo.changerBouton(1,false);" onclick="exo.action(1)"><p align=""><a class="STY_lienComt" href="javascript:CRS_afficherDetail('1')" onclick="enrPosClic(event,'1')"><img align="center" border="0" src="../media/phon_about.png" id="MosImg21" style="visibility:hidden"></a><br><br>
+                    </p></div>""" ;
+            :index 0 ] ;
     :commentaireInfo """<div id="divCmt1" onclick="SPE_clicDansBulle(event,'divCmt1')"><br><br><br><br><br><br><br><br><br>
         <script type="text/javascript">ajDocW(PF_clipAV('clipAV77', 'bt_about.swf', '17', '17', 'false', 'Flash', 'false', 'middle', 'Quality:high;wmode:transparent', 'cmt'));</script>
            <img align="center" border="0" src="../media/phon_about.png" id="MosImg2149" style="visibility:hidden"></div>
@@ -982,8 +1126,15 @@
         owl:NamedIndividual ;
     rdfs:label "L'auxiliaire BE (2)" ;
     :__protege_display_name "15 | pg401 | L'auxiliaire BE (2)" ;
-    :aReponseCorrecte 1 ;
-    :aReponseIncorrecte 0 ;
+    :aReponse [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep1" onmouseover="exo.changerBouton(1,true);" onmouseout="exo.changerBouton(1,false);" onclick="exo.action(1)"><p align="">l'auxiliaire est
+                        prononcé de façon identique.</p></div>""" ;
+            :index 0 ],
+        [ :correct true ;
+            :html """<div class="STY_reponseQC" id="lienRep2" onmouseover="exo.changerBouton(2,true);" onmouseout="exo.changerBouton(2,false);" onclick="exo.action(2)">l'auxiliaire n'est pas
+                        prononcé de façon identique.
+                    </div>""" ;
+            :index 1 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align="">
         <br><br><br><br><br><br><br><br><br><br>Effectivement.</p>
         <p align="">On observe des degrés différents dans la <b><a class="STY_lienDansZoneComt" href="javascript:parent.SCO_ouvrirDoc('voyelle_reduite','htm')">réduction
@@ -1016,9 +1167,21 @@
         owl:NamedIndividual ;
     rdfs:label "Spécificité des voyelles (4)" ;
     :__protege_display_name "17 | pg41 | Spécificité des voyelles (4)" ;
-    :aReponseCorrecte 2 ;
-    :aReponseIncorrecte 0,
-        1 ;
+    :aReponse [ :correct true ;
+            :html """<div class="STY_reponseQC" id="lienRep3" onmouseover="exo.changerBouton(3,true);" onmouseout="exo.changerBouton(3,false);" onclick="exo.action(3)">la voyelle est composée de 2
+                        sons prononcés de manière inégale
+                    </div>""" ;
+            :index 2 ],
+        [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep2" onmouseover="exo.changerBouton(2,true);" onmouseout="exo.changerBouton(2,false);" onclick="exo.action(2)">la voyelle est composée de 2
+                        sons prononcés de manière égale
+                    </div>""" ;
+            :index 1 ],
+        [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep1" onmouseover="exo.changerBouton(1,true);" onmouseout="exo.changerBouton(1,false);" onclick="exo.action(1)">la voyelle contient un son
+                        unique et stable
+                    </div>""" ;
+            :index 0 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')">C'est la bonne réponse.</div>
     """ ;
     :commentaireSugg """<div id="divSugg1" onclick="SPE_clicDansBulle(event,'divSugg1')">Ce n'est pas la bonne réponse. Il y a bien deux
@@ -1154,8 +1317,12 @@
         owl:NamedIndividual ;
     rdfs:label "Choisir une transcription (4)" ;
     :__protege_display_name "03 | pg491 | Choisir une transcription (4)" ;
-    :aReponseCorrecte 0 ;
-    :aReponseIncorrecte 1 ;
+    :aReponse [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep2\" onmouseover=\"exo.changerBouton(2,true);\" onmouseout=\"exo.changerBouton(2,false);\" onclick=\"exo.action(2)\"><img src=\"../media/phon_dark_faux.png\" id=\"MosImg29\" border=\"0\" align=\"center\" style=\"visibility:hidden\"></div>" ;
+            :index 1 ],
+        [ :correct true ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep1\" onmouseover=\"exo.changerBouton(1,true);\" onmouseout=\"exo.changerBouton(1,false);\" onclick=\"exo.action(1)\"><img src=\"../media/phon_dark.png\" id=\"MosImg85\" border=\"0\" align=\"center\" style=\"visibility:hidden\"></div>" ;
+            :index 0 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')">C'est exact.</div>
     """ ;
     :commentaireSugg """<div id="divSugg1" onclick="SPE_clicDansBulle(event,'divSugg1')">Vous vous êtes trompé. La bonne transcription est
@@ -1267,8 +1434,15 @@
         owl:NamedIndividual ;
     rdfs:label "L'auxiliaire CAN (2)" ;
     :__protege_display_name "11 | pg531 | L'auxiliaire CAN (2)" ;
-    :aReponseCorrecte 1 ;
-    :aReponseIncorrecte 0 ;
+    :aReponse [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep1" onmouseover="exo.changerBouton(1,true);" onmouseout="exo.changerBouton(1,false);" onclick="exo.action(1)"><p align="">l'auxiliaire CAN
+                        est prononcé de façon identique.</p></div>""" ;
+            :index 0 ],
+        [ :correct true ;
+            :html """<div class="STY_reponseQC" id="lienRep2" onmouseover="exo.changerBouton(2,true);" onmouseout="exo.changerBouton(2,false);" onclick="exo.action(2)">l'auxiliaire CAN n'est pas
+                        prononcé de façon identique.
+                    </div>""" ;
+            :index 1 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align="">
         <br><br><br><br><br><br><br><br><br><br>Exact.</p>
         <p align="">L'auxiliaire du premier énoncé comporte une <b><a class="STY_lienDansZoneComt" href="javascript:parent.SCO_ouvrirDoc('voyelle_reduite','htm')">voyelle
@@ -1362,8 +1536,14 @@
         owl:NamedIndividual ;
     rdfs:label "Choisir entre deux mots (5)" ;
     :__protege_display_name "16 | pg561 | Choisir entre deux mots (5)" ;
-    :aReponseCorrecte 1 ;
-    :aReponseIncorrecte 0 ;
+    :aReponse [ :correct true ;
+            :html """<div class="STY_reponseQC" id="lienRep2" onmouseover="exo.changerBouton(2,true);" onmouseout="exo.changerBouton(2,false);" onclick="exo.action(2)">boat
+                    </div>""" ;
+            :index 1 ],
+        [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep1" onmouseover="exo.changerBouton(1,true);" onmouseout="exo.changerBouton(1,false);" onclick="exo.action(1)">bought
+                    </div>""" ;
+            :index 0 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align="">Bonne réponse ! </p>
         <p align="">Vous pouvez comparer les deux mots, en remarquant leur prononciation, leur écriture et leur
             transcription :</p>
@@ -1422,8 +1602,16 @@
         owl:NamedIndividual ;
     rdfs:label "Choisir une prononciation (1)" ;
     :__protege_display_name "07 | pg576 | Choisir une prononciation (1)" ;
-    :aReponseCorrecte 0 ;
-    :aReponseIncorrecte 1 ;
+    :aReponse [ :correct true ;
+            :html """<div class="STY_reponseQC" id="lienRep1" onmouseover="exo.changerBouton(1,true);" onmouseout="exo.changerBouton(1,false);" onclick="exo.action(1)">
+                        <script type="text/javascript">ajDocW(PF_clipAV('clipAV11', 'bt_test.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+                    </div>""" ;
+            :index 0 ],
+        [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep2" onmouseover="exo.changerBouton(2,true);" onmouseout="exo.changerBouton(2,false);" onclick="exo.action(2)">
+                        <script type="text/javascript">ajDocW(PF_clipAV('clipAV21', 'bt_chest.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+                    </div>""" ;
+            :index 1 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')">Effectivement, la transcription correspond
         au premier mot entendu : <i>test</i>.
     </div>
@@ -1532,15 +1720,36 @@
         owl:NamedIndividual ;
     rdfs:label "Vérifier la place de l'accent primaire (4) " ;
     :__protege_display_name "03 | pg6121 | Vérifier la place de l'accent primaire (4) " ;
-    :aReponseCorrecte 1,
-        7 ;
-    :aReponseIncorrecte 0,
-        2,
-        3,
-        4,
-        5,
-        6,
-        8 ;
+    :aReponse [ :correct true ;
+            :html """<div class="STY_reponseQC" id="lienRep2" onmouseover="exo.changerBouton(2,true);" onmouseout="exo.changerBouton(2,false);" onclick="exo.action(2)"><span style="FONT-SIZE: 250%">• <img align="absMiddle" src="../media/psychologie2.gif" width="97" height="21" id="MosImg50" border="0"></span>
+                                </div>""" ;
+            :index 1 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep4\" onmouseover=\"exo.changerBouton(4,true);\" onmouseout=\"exo.changerBouton(4,false);\" onclick=\"exo.action(4)\"></div>" ;
+            :index 3 ],
+        [ :correct true ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep8\" onmouseover=\"exo.changerBouton(8,true);\" onmouseout=\"exo.changerBouton(8,false);\" onclick=\"exo.action(8)\"><span style=\"FONT-SIZE: 250%\">• <img src=\"../media/photographer2.gif\" id=\"MosImg12\" border=\"0\" align=\"center\"></span></div>" ;
+            :index 7 ],
+        [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep1" onmouseover="exo.changerBouton(1,true);" onmouseout="exo.changerBouton(1,false);" onclick="exo.action(1)"><span style="FONT-SIZE: 250%">• <img align="absMiddle" src="../media/psychologie.gif" width="93" height="21" id="MosImg45" border="0"></span>
+                                </div>""" ;
+            :index 0 ],
+        [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep3" onmouseover="exo.changerBouton(3,true);" onmouseout="exo.changerBouton(3,false);" onclick="exo.action(3)"><span style="FONT-SIZE: 250%">• <img align="absMiddle" src="../media/psychologie3.gif" width="97" height="21" id="MosImg24" border="0"></span>
+                                </div>""" ;
+            :index 2 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep9\" onmouseover=\"exo.changerBouton(9,true);\" onmouseout=\"exo.changerBouton(9,false);\" onclick=\"exo.action(9)\"><span style=\"FONT-SIZE: 250%\">• <img align=\"absMiddle\" src=\"../media/photographer4.gif\" id=\"MosImg4\" border=\"0\"></span></div>" ;
+            :index 8 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep6\" onmouseover=\"exo.changerBouton(6,true);\" onmouseout=\"exo.changerBouton(6,false);\" onclick=\"exo.action(6)\"></div>" ;
+            :index 5 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep5\" onmouseover=\"exo.changerBouton(5,true);\" onmouseout=\"exo.changerBouton(5,false);\" onclick=\"exo.action(5)\"><span style=\"FONT-SIZE: 250%\"></span></div>" ;
+            :index 4 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep7\" onmouseover=\"exo.changerBouton(7,true);\" onmouseout=\"exo.changerBouton(7,false);\" onclick=\"exo.action(7)\"><span style=\"FONT-SIZE: 250%\">• <img align=\"absMiddle\" src=\"../media/photographer.gif\" id=\"MosImg25\" border=\"0\"></span></div>" ;
+            :index 6 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align=""> </p>
         <p align=""> </p>
         <p align=""> En effet, voici la transcription qui convient pour chaque mot :<br><br><br><br></p>
@@ -1631,8 +1840,14 @@
         owl:NamedIndividual ;
     rdfs:label "Choisir entre deux mots (3)" ;
     :__protege_display_name "14 | pg6361 | Choisir entre deux mots (3)" ;
-    :aReponseCorrecte 1 ;
-    :aReponseIncorrecte 0 ;
+    :aReponse [ :correct true ;
+            :html """<div class="STY_reponseQC" id="lienRep2" onmouseover="exo.changerBouton(2,true);" onmouseout="exo.changerBouton(2,false);" onclick="exo.action(2)">think
+                    </div>""" ;
+            :index 1 ],
+        [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep1" onmouseover="exo.changerBouton(1,true);" onmouseout="exo.changerBouton(1,false);" onclick="exo.action(1)">sink
+                    </div>""" ;
+            :index 0 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align="">Bonne réponse ! </p>
         <p align="">Vous pouvez comparer les deux mots, en remarquant leur prononciation, leur écriture et leur
             transcription :</p>
@@ -1691,9 +1906,21 @@
         owl:NamedIndividual ;
     rdfs:label "Spécificité des voyelles (2)" ;
     :__protege_display_name "15 | pg639 | Spécificité des voyelles (2)" ;
-    :aReponseCorrecte 0 ;
-    :aReponseIncorrecte 1,
-        2 ;
+    :aReponse [ :correct true ;
+            :html """<div class="STY_reponseQC" id="lienRep1" onmouseover="exo.changerBouton(1,true);" onmouseout="exo.changerBouton(1,false);" onclick="exo.action(1)">la voyelle contient un son
+                        unique et stable
+                    </div>""" ;
+            :index 0 ],
+        [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep3" onmouseover="exo.changerBouton(3,true);" onmouseout="exo.changerBouton(3,false);" onclick="exo.action(3)">la voyelle est composée de 2
+                        sons prononcés de manière inégale
+                    </div>""" ;
+            :index 2 ],
+        [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep2" onmouseover="exo.changerBouton(2,true);" onmouseout="exo.changerBouton(2,false);" onclick="exo.action(2)">la voyelle est composée de 2
+                        sons prononcés de manière égale
+                    </div>""" ;
+            :index 1 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')">Vous avez raison.</div>
     """ ;
     :commentaireSugg """<div id="divSugg1" onclick="SPE_clicDansBulle(event,'divSugg1')">Vous vous trompez. La voyelle n'est pas composée de
@@ -1730,15 +1957,37 @@
         owl:NamedIndividual ;
     rdfs:label "Choisir l'accentuation adéquate (1)" ;
     :__protege_display_name "07 | pg665 | Choisir l'accentuation adéquate (1)" ;
-    :aReponseIncorrecte 0,
-        1,
-        2,
-        3,
-        4,
-        5,
-        6,
-        7,
-        8 ;
+    :aReponse [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep6\" onmouseover=\"exo.changerBouton(6,true);\" onmouseout=\"exo.changerBouton(6,false);\" onclick=\"exo.action(6)\"><font color=\"#a60a69\"><i><b></b></i></font></div>" ;
+            :index 5 ],
+        [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep8" onmouseover="exo.changerBouton(8,true);" onmouseout="exo.changerBouton(8,false);" onclick="exo.action(8)"><span style="FONT-SIZE: 250%">•</span><img align="center" border="0" src="../media/phon_produce_13.png" id="MosImg45" style="visibility:hidden">
+                                </div>""" ;
+            :index 7 ],
+        [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep2" onmouseover="exo.changerBouton(2,true);" onmouseout="exo.changerBouton(2,false);" onclick="exo.action(2)"><span style="FONT-SIZE: 250%">•</span><img align="center" border="0" src="../media/phon_produce_13.png" id="MosImg458" style="visibility:hidden">
+                                </div>""" ;
+            :index 1 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep1\" onmouseover=\"exo.changerBouton(1,true);\" onmouseout=\"exo.changerBouton(1,false);\" onclick=\"exo.action(1)\"> <font color=\"#a60a69\">The farmer refused to <i><b>produce</b></i> ...</font></div>" ;
+            :index 0 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep7\" onmouseover=\"exo.changerBouton(7,true);\" onmouseout=\"exo.changerBouton(7,false);\" onclick=\"exo.action(7)\"><font color=\"#a60a69\">...organic <i><b>produce.</b></i></font></div>" ;
+            :index 6 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep5\" onmouseover=\"exo.changerBouton(5,true);\" onmouseout=\"exo.changerBouton(5,false);\" onclick=\"exo.action(5)\"><font color=\"#a60a69\"></font></div>" ;
+            :index 4 ],
+        [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep9" onmouseover="exo.changerBouton(9,true);" onmouseout="exo.changerBouton(9,false);" onclick="exo.action(9)"><span style="FONT-SIZE: 250%">•</span><img align="center" border="0" src="../media/phon_produce_2_.png" id="MosImg69" style="visibility:hidden">
+                                </div>""" ;
+            :index 8 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep4\" onmouseover=\"exo.changerBouton(4,true);\" onmouseout=\"exo.changerBouton(4,false);\" onclick=\"exo.action(4)\"></div>" ;
+            :index 3 ],
+        [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep3" onmouseover="exo.changerBouton(3,true);" onmouseout="exo.changerBouton(3,false);" onclick="exo.action(3)"><span style="FONT-SIZE: 250%">•</span><img align="center" border="0" src="../media/phon_produce_2_.png" id="MosImg693" style="visibility:hidden">
+                                </div>""" ;
+            :index 2 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"></div>
     """ ;
     :commentaireSugg """<div id="divSugg1" onclick="SPE_clicDansBulle(event,'divSugg1')"><p align=""><font color="#a60a69"></font> </p>
@@ -1792,21 +2041,55 @@
         owl:NamedIndividual ;
     rdfs:label "Vérifier la place de l'accent primaire (2) " ;
     :__protege_display_name "01 | pg6811 | Vérifier la place de l'accent primaire (2) " ;
-    :aReponseIncorrecte 0,
-        1,
-        2,
-        3,
-        4,
-        5,
-        6,
-        7,
-        8,
-        9,
-        10,
-        11,
-        12,
-        13,
-        14 ;
+    :aReponse [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep15" onmouseover="exo.changerBouton(15,true);" onmouseout="exo.changerBouton(15,false);" onclick="exo.action(15)"><span style="FONT-SIZE: 250%">•</span><img src="../media/characters3.gif" id="MosImg91" border="0" align="center">
+                                </div>""" ;
+            :index 14 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep13\" onmouseover=\"exo.changerBouton(13,true);\" onmouseout=\"exo.changerBouton(13,false);\" onclick=\"exo.action(13)\"><span style=\"FONT-SIZE: 250%\">•</span><img src=\"../media/characters.gif\" id=\"MosImg44\" border=\"0\" align=\"center\"></div>" ;
+            :index 12 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep10\" onmouseover=\"exo.changerBouton(10,true);\" onmouseout=\"exo.changerBouton(10,false);\" onclick=\"exo.action(10)\"></div>" ;
+            :index 9 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep5\" onmouseover=\"exo.changerBouton(5,true);\" onmouseout=\"exo.changerBouton(5,false);\" onclick=\"exo.action(5)\"><span style=\"FONT-SIZE: 250%\"></span></div>" ;
+            :index 4 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep4\" onmouseover=\"exo.changerBouton(4,true);\" onmouseout=\"exo.changerBouton(4,false);\" onclick=\"exo.action(4)\"></div>" ;
+            :index 3 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep8\" onmouseover=\"exo.changerBouton(8,true);\" onmouseout=\"exo.changerBouton(8,false);\" onclick=\"exo.action(8)\"><span style=\"FONT-SIZE: 250%\">• <img src=\"../media/theory2.gif\" id=\"MosImg24\" border=\"0\" align=\"center\"></span></div>" ;
+            :index 7 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep7\" onmouseover=\"exo.changerBouton(7,true);\" onmouseout=\"exo.changerBouton(7,false);\" onclick=\"exo.action(7)\"><span style=\"FONT-SIZE: 250%\">• <img src=\"../media/theory.gif\" id=\"MosImg37\" border=\"0\" align=\"center\"></span></div>" ;
+            :index 6 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep12\" onmouseover=\"exo.changerBouton(12,true);\" onmouseout=\"exo.changerBouton(12,false);\" onclick=\"exo.action(12)\"></div>" ;
+            :index 11 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep9\" onmouseover=\"exo.changerBouton(9,true);\" onmouseout=\"exo.changerBouton(9,false);\" onclick=\"exo.action(9)\"><span style=\"FONT-SIZE: 250%\">• <img src=\"../media/theory3.gif\" id=\"MosImg38\" border=\"0\" align=\"center\"></span></div>" ;
+            :index 8 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep6\" onmouseover=\"exo.changerBouton(6,true);\" onmouseout=\"exo.changerBouton(6,false);\" onclick=\"exo.action(6)\"></div>" ;
+            :index 5 ],
+        [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep1" onmouseover="exo.changerBouton(1,true);" onmouseout="exo.changerBouton(1,false);" onclick="exo.action(1)"><span style="FONT-SIZE: 250%">• <img src="../media/phon_narrator_juste1.gif" id="MosImg57" border="0" align="center"></span>
+                                </div>""" ;
+            :index 0 ],
+        [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep3" onmouseover="exo.changerBouton(3,true);" onmouseout="exo.changerBouton(3,false);" onclick="exo.action(3)"><span style="FONT-SIZE: 250%">• <img align="center" border="0" src="../media/narrator.gif" id="MosImg2"></span>
+                                </div>""" ;
+            :index 2 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep11\" onmouseover=\"exo.changerBouton(11,true);\" onmouseout=\"exo.changerBouton(11,false);\" onclick=\"exo.action(11)\"></div>" ;
+            :index 10 ],
+        [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep14" onmouseover="exo.changerBouton(14,true);" onmouseout="exo.changerBouton(14,false);" onclick="exo.action(14)"><span style="FONT-SIZE: 250%">•</span><img src="../media/characters2.gif" id="MosImg93" border="0" align="center">
+                                </div>""" ;
+            :index 13 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep2\" onmouseover=\"exo.changerBouton(2,true);\" onmouseout=\"exo.changerBouton(2,false);\" onclick=\"exo.action(2)\"><span style=\"FONT-SIZE: 250%\">• <img src=\"../media/narrator_juste.gif\" id=\"MosImg22\" border=\"0\" align=\"center\"></span></div>" ;
+            :index 1 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align=""><br> </p>
         <p align="">En effet, voici la transcription qui convient pour chaque mot :<br><br><br></p>
         <p align=""> </p>
@@ -1849,8 +2132,14 @@
         owl:NamedIndividual ;
     rdfs:label "Choisir entre deux mots (4)" ;
     :__protege_display_name "15 | pg699 | Choisir entre deux mots (4)" ;
-    :aReponseCorrecte 0 ;
-    :aReponseIncorrecte 1 ;
+    :aReponse [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep2" onmouseover="exo.changerBouton(2,true);" onmouseout="exo.changerBouton(2,false);" onclick="exo.action(2)">thin
+                    </div>""" ;
+            :index 1 ],
+        [ :correct true ;
+            :html """<div class="STY_reponseQC" id="lienRep1" onmouseover="exo.changerBouton(1,true);" onmouseout="exo.changerBouton(1,false);" onclick="exo.action(1)">thing
+                    </div>""" ;
+            :index 0 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align="">Bonne réponse ! </p>
         <p align="">Vous pouvez comparer les deux mots, en remarquant leur prononciation, leur écriture et leur
             transcription :</p>
@@ -1909,15 +2198,33 @@
         owl:NamedIndividual ;
     rdfs:label "Choisir l'accentuation adéquate  (6)" ;
     :__protege_display_name "12 | pg71 | Choisir l'accentuation adéquate  (6)" ;
-    :aReponseIncorrecte 0,
-        1,
-        2,
-        3,
-        4,
-        5,
-        6,
-        7,
-        8 ;
+    :aReponse [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep7\" onmouseover=\"exo.changerBouton(7,true);\" onmouseout=\"exo.changerBouton(7,false);\" onclick=\"exo.action(7)\"><font color=\"#a60a69\">...gave me <i><b>content</b></i> and joy.. </font></div>" ;
+            :index 6 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep1\" onmouseover=\"exo.changerBouton(1,true);\" onmouseout=\"exo.changerBouton(1,false);\" onclick=\"exo.action(1)\"><font color=\"#a60a69\">The <i><b>content</b></i> of her letter...</font></div>" ;
+            :index 0 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep6\" onmouseover=\"exo.changerBouton(6,true);\" onmouseout=\"exo.changerBouton(6,false);\" onclick=\"exo.action(6)\"><font color=\"#a60a69\"><i><b></b></i></font></div>" ;
+            :index 5 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep5\" onmouseover=\"exo.changerBouton(5,true);\" onmouseout=\"exo.changerBouton(5,false);\" onclick=\"exo.action(5)\"><font color=\"#a60a69\"></font></div>" ;
+            :index 4 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep4\" onmouseover=\"exo.changerBouton(4,true);\" onmouseout=\"exo.changerBouton(4,false);\" onclick=\"exo.action(4)\"></div>" ;
+            :index 3 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep9\" onmouseover=\"exo.changerBouton(9,true);\" onmouseout=\"exo.changerBouton(9,false);\" onclick=\"exo.action(9)\"><span style=\"FONT-SIZE: 250%\">•<img src=\"../media/phon_content_2.png\" id=\"MosImg61\" border=\"0\" align=\"center\" style=\"visibility:hidden\"></span></div>" ;
+            :index 8 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep3\" onmouseover=\"exo.changerBouton(3,true);\" onmouseout=\"exo.changerBouton(3,false);\" onclick=\"exo.action(3)\"><span style=\"FONT-SIZE: 250%\">•<img align=\"center\" border=\"0\" src=\"../media/phon_content_2.png\" id=\"MosImg5210\" style=\"visibility:hidden\"></span></div>" ;
+            :index 2 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep2\" onmouseover=\"exo.changerBouton(2,true);\" onmouseout=\"exo.changerBouton(2,false);\" onclick=\"exo.action(2)\"><span style=\"FONT-SIZE: 250%\">•<img align=\"center\" border=\"0\" src=\"../media/phon_content_1.png\" id=\"MosImg571\" style=\"visibility:hidden\"></span></div>" ;
+            :index 1 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep8\" onmouseover=\"exo.changerBouton(8,true);\" onmouseout=\"exo.changerBouton(8,false);\" onclick=\"exo.action(8)\"><span style=\"FONT-SIZE: 250%\">•<img src=\"../media/phon_content_1.png\" id=\"MosImg86\" border=\"0\" align=\"center\" style=\"visibility:hidden\"></span></div>" ;
+            :index 7 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"></div>
     """ ;
     :commentaireSugg """<div id="divSugg1" onclick="SPE_clicDansBulle(event,'divSugg1')"><p align=""><font color="#a60a69"></font> </p>
@@ -1946,8 +2253,16 @@
         owl:NamedIndividual ;
     rdfs:label "Spécificité des voyelles (6)" ;
     :__protege_display_name "20 | pg713 | Spécificité des voyelles (6)" ;
-    :aReponseCorrecte 1 ;
-    :aReponseIncorrecte 0 ;
+    :aReponse [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep1" onmouseover="exo.changerBouton(1,true);" onmouseout="exo.changerBouton(1,false);" onclick="exo.action(1)">la voyelle en orange est plus
+                        longue que la voyelle en violet
+                    </div>""" ;
+            :index 0 ],
+        [ :correct true ;
+            :html """<div class="STY_reponseQC" id="lienRep2" onmouseover="exo.changerBouton(2,true);" onmouseout="exo.changerBouton(2,false);" onclick="exo.action(2)">il est difficile d'établir une
+                        différence de longueur entre les 2 voyelles
+                    </div>""" ;
+            :index 1 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')">C'est exact.</div>
     """ ;
     :commentaireSugg """<div id="divSugg1" onclick="SPE_clicDansBulle(event,'divSugg1')">C'est inexact ; réécoutez attentivement les deux
@@ -1989,15 +2304,34 @@
         owl:NamedIndividual ;
     rdfs:label "Choisir l'accentuation adéquate  (3)" ;
     :__protege_display_name "09 | pg740 | Choisir l'accentuation adéquate  (3)" ;
-    :aReponseIncorrecte 0,
-        1,
-        2,
-        3,
-        4,
-        5,
-        6,
-        7,
-        8 ;
+    :aReponse [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep9\" onmouseover=\"exo.changerBouton(9,true);\" onmouseout=\"exo.changerBouton(9,false);\" onclick=\"exo.action(9)\"><span style=\"FONT-SIZE: 250%\">•<img src=\"../media/phon_subject_2.png\" id=\"MosImg70\" border=\"0\" align=\"center\" style=\"visibility:hidden\"></span></div>" ;
+            :index 8 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep5\" onmouseover=\"exo.changerBouton(5,true);\" onmouseout=\"exo.changerBouton(5,false);\" onclick=\"exo.action(5)\"><font color=\"#a60a69\"></font></div>" ;
+            :index 4 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep2\" onmouseover=\"exo.changerBouton(2,true);\" onmouseout=\"exo.changerBouton(2,false);\" onclick=\"exo.action(2)\"><span style=\"FONT-SIZE: 250%\">•<img align=\"center\" border=\"0\" src=\"../media/phon_subject_1.png\" id=\"MosImg43\" style=\"visibility:hidden\"></span></div>" ;
+            :index 1 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep3\" onmouseover=\"exo.changerBouton(3,true);\" onmouseout=\"exo.changerBouton(3,false);\" onclick=\"exo.action(3)\"><span style=\"FONT-SIZE: 250%\">•<img align=\"center\" border=\"0\" src=\"../media/phon_subject_2.png\" id=\"MosImg656\" style=\"visibility:hidden\"></span></div>" ;
+            :index 2 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep8\" onmouseover=\"exo.changerBouton(8,true);\" onmouseout=\"exo.changerBouton(8,false);\" onclick=\"exo.action(8)\"><span style=\"FONT-SIZE: 250%\">•<img src=\"../media/phon_subject_1.png\" id=\"MosImg37\" border=\"0\" align=\"center\" style=\"visibility:hidden\"></span></div>" ;
+            :index 7 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep7\" onmouseover=\"exo.changerBouton(7,true);\" onmouseout=\"exo.changerBouton(7,false);\" onclick=\"exo.action(7)\"><font color=\"#a60a69\">...the <i><b>subject</b></i> to a series of tests.</font></div>" ;
+            :index 6 ],
+        [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep1" onmouseover="exo.changerBouton(1,true);" onmouseout="exo.changerBouton(1,false);" onclick="exo.action(1)"><font color="#a60a69"> <font color="#a60a69">I had to <i><b>subject</b></i> 
+                                    ...</font></font></div>""" ;
+            :index 0 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep6\" onmouseover=\"exo.changerBouton(6,true);\" onmouseout=\"exo.changerBouton(6,false);\" onclick=\"exo.action(6)\"><font color=\"#a60a69\"><i><b></b></i></font></div>" ;
+            :index 5 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep4\" onmouseover=\"exo.changerBouton(4,true);\" onmouseout=\"exo.changerBouton(4,false);\" onclick=\"exo.action(4)\"></div>" ;
+            :index 3 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"></div>
     """ ;
     :commentaireSugg """<div id="divSugg1" onclick="SPE_clicDansBulle(event,'divSugg1')"><p align=""><font color="#a60a69"></font> </p>
@@ -2031,8 +2365,14 @@
         owl:NamedIndividual ;
     rdfs:label "Choisir entre deux mots (2)" ;
     :__protege_display_name "13 | pg758 | Choisir entre deux mots (2)" ;
-    :aReponseCorrecte 1 ;
-    :aReponseIncorrecte 0 ;
+    :aReponse [ :correct true ;
+            :html """<div class="STY_reponseQC" id="lienRep2" onmouseover="exo.changerBouton(2,true);" onmouseout="exo.changerBouton(2,false);" onclick="exo.action(2)">though
+                    </div>""" ;
+            :index 1 ],
+        [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep1" onmouseover="exo.changerBouton(1,true);" onmouseout="exo.changerBouton(1,false);" onclick="exo.action(1)">thought
+                    </div>""" ;
+            :index 0 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align="">Bonne réponse ! </p>
         <p align="">Vous pouvez comparer les deux mots, en remarquant leur prononciation, leur écriture et leur
             transcription :</p>
@@ -2091,8 +2431,16 @@
         owl:NamedIndividual ;
     rdfs:label "Choisir une prononciation (4)" ;
     :__protege_display_name "10 | pg76 | Choisir une prononciation (4)" ;
-    :aReponseCorrecte 0 ;
-    :aReponseIncorrecte 1 ;
+    :aReponse [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep2" onmouseover="exo.changerBouton(2,true);" onmouseout="exo.changerBouton(2,false);" onclick="exo.action(2)">
+                        <script type="text/javascript">ajDocW(PF_clipAV('clipAV96', 'bt_kater.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+                    </div>""" ;
+            :index 1 ],
+        [ :correct true ;
+            :html """<div class="STY_reponseQC" id="lienRep1" onmouseover="exo.changerBouton(1,true);" onmouseout="exo.changerBouton(1,false);" onclick="exo.action(1)">
+                        <script type="text/javascript">ajDocW(PF_clipAV('clipAV35', 'bt_cat.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+                    </div>""" ;
+            :index 0 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')">Effectivement, la transcription correspond
         au premier mot entendu : <i>cat</i>.
     </div>
@@ -2120,8 +2468,14 @@
         owl:NamedIndividual ;
     rdfs:label "Distinguer d'éventuelles variantes (3)" ;
     :__protege_display_name "05 | pg769 | Distinguer d'éventuelles variantes (3)" ;
-    :aReponseCorrecte 1 ;
-    :aReponseIncorrecte 0 ;
+    :aReponse [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep1" onmouseover="exo.changerBouton(1,true);" onmouseout="exo.changerBouton(1,false);" onclick="exo.action(1)"><p align="">TO se prononce de
+                        la même façon dans les deux énoncés.</p></div>""" ;
+            :index 0 ],
+        [ :correct true ;
+            :html """<div class="STY_reponseQC" id="lienRep2" onmouseover="exo.changerBouton(2,true);" onmouseout="exo.changerBouton(2,false);" onclick="exo.action(2)"><p align="">TO ne se prononce
+                        pas de la même façon dans les deux énoncés.</p></div>""" ;
+            :index 1 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align="">Effectivement.</p>
         <p align="">
             <script type="text/javascript">ajDocW(PF_clipAV('clipAV166', 'e29_macao1_2b52.swf', '80', '40', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', 'cmt'));</script>
@@ -2160,8 +2514,12 @@
         owl:NamedIndividual ;
     rdfs:label "Choisir une transcription (3)" ;
     :__protege_display_name "02 | pg7691 | Choisir une transcription (3)" ;
-    :aReponseCorrecte 0 ;
-    :aReponseIncorrecte 1 ;
+    :aReponse [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep2\" onmouseover=\"exo.changerBouton(2,true);\" onmouseout=\"exo.changerBouton(2,false);\" onclick=\"exo.action(2)\"><img src=\"../media/phon_bring_faux.png\" id=\"MosImg45\" border=\"0\" align=\"center\" style=\"visibility:hidden\"></div>" ;
+            :index 1 ],
+        [ :correct true ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep1\" onmouseover=\"exo.changerBouton(1,true);\" onmouseout=\"exo.changerBouton(1,false);\" onclick=\"exo.action(1)\"><img src=\"../media/phon_bring.png\" id=\"MosImg75\" border=\"0\" align=\"center\" style=\"visibility:hidden\"></div>" ;
+            :index 0 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')">C'est exact.</div>
     """ ;
     :commentaireSugg """<div id="divSugg1" onclick="SPE_clicDansBulle(event,'divSugg1')">Vous vous êtes trompé. La bonne transcription est
@@ -2234,8 +2592,14 @@
         owl:NamedIndividual ;
     rdfs:label "Distinguer d'éventuelles variantes (5)" ;
     :__protege_display_name "09 | pg813 | Distinguer d'éventuelles variantes (5)" ;
-    :aReponseCorrecte 1 ;
-    :aReponseIncorrecte 0 ;
+    :aReponse [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep1" onmouseover="exo.changerBouton(1,true);" onmouseout="exo.changerBouton(1,false);" onclick="exo.action(1)"><p align="">FOR se prononce de
+                        la même façon dans les deux énoncés.</p></div>""" ;
+            :index 0 ],
+        [ :correct true ;
+            :html """<div class="STY_reponseQC" id="lienRep2" onmouseover="exo.changerBouton(2,true);" onmouseout="exo.changerBouton(2,false);" onclick="exo.action(2)"><p align="">FOR ne se prononce
+                        pas de la même façon dans les deux énoncés.</p></div>""" ;
+            :index 1 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align="">Effectivement. </p>
         <p align="">
             <script type="text/javascript">ajDocW(PF_clipAV('clipAV51', 'e29_macao1_2b92.swf', '80', '40', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', 'cmt'));</script>
@@ -2273,8 +2637,14 @@
         owl:NamedIndividual ;
     rdfs:label "Distinguer d'éventuelles variantes (1)" ;
     :__protege_display_name "01 | pg825 | Distinguer d'éventuelles variantes (1)" ;
-    :aReponseCorrecte 1 ;
-    :aReponseIncorrecte 0 ;
+    :aReponse [ :correct true ;
+            :html """<div class="STY_reponseQC" id="lienRep2" onmouseover="exo.changerBouton(2,true);" onmouseout="exo.changerBouton(2,false);" onclick="exo.action(2)"><p align="">OF ne se prononce
+                        pas de la même façon dans les deux énoncés.</p></div>""" ;
+            :index 1 ],
+        [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep1" onmouseover="exo.changerBouton(1,true);" onmouseout="exo.changerBouton(1,false);" onclick="exo.action(1)"><p align="">OF se prononce de
+                        la même façon dans les deux énoncés.</p></div>""" ;
+            :index 0 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align="">Effectivement.</p>
         <p align="">
             <script type="text/javascript">ajDocW(PF_clipAV('clipAV190', 'e29_macao1_2b12.swf', '80', '40', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', 'cmt'));</script>
@@ -2310,8 +2680,15 @@
         owl:NamedIndividual ;
     rdfs:label "L'auxiliaire WILL (2)" ;
     :__protege_display_name "03 | pg8251 | L'auxiliaire WILL (2)" ;
-    :aReponseCorrecte 1 ;
-    :aReponseIncorrecte 0 ;
+    :aReponse [ :correct true ;
+            :html """<div class="STY_reponseQC" id="lienRep2" onmouseover="exo.changerBouton(2,true);" onmouseout="exo.changerBouton(2,false);" onclick="exo.action(2)">l'auxiliaire WILL n'est pas
+                        prononcé de façon identique.
+                    </div>""" ;
+            :index 1 ],
+        [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep1" onmouseover="exo.changerBouton(1,true);" onmouseout="exo.changerBouton(1,false);" onclick="exo.action(1)"><p align="">l'auxiliaire WILL
+                        est prononcé de façon identique.</p></div>""" ;
+            :index 0 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align="">
         <br><br><br><br><br><br><br><br><br><br>Bien !</p>
         <p align="">L'auxiliaire de la première réponse comporte une <b><a class="STY_lienDansZoneComt" href="javascript:parent.SCO_ouvrirDoc('voyelle_reduite','htm')">voyelle
@@ -2363,21 +2740,51 @@
         owl:NamedIndividual ;
     rdfs:label "Vérifier la place de l'accent primaire (3) " ;
     :__protege_display_name "02 | pg8412 | Vérifier la place de l'accent primaire (3) " ;
-    :aReponseCorrecte 0,
-        7,
-        13 ;
-    :aReponseIncorrecte 1,
-        2,
-        3,
-        4,
-        5,
-        6,
-        8,
-        9,
-        10,
-        11,
-        12,
-        14 ;
+    :aReponse [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep10\" onmouseover=\"exo.changerBouton(10,true);\" onmouseout=\"exo.changerBouton(10,false);\" onclick=\"exo.action(10)\"></div>" ;
+            :index 9 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep15\" onmouseover=\"exo.changerBouton(15,true);\" onmouseout=\"exo.changerBouton(15,false);\" onclick=\"exo.action(15)\"><span style=\"FONT-SIZE: 250%\">• <img src=\"../media/beginning3.gif\" id=\"MosImg0\" border=\"0\" align=\"center\"></span></div>" ;
+            :index 14 ],
+        [ :correct true ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep8\" onmouseover=\"exo.changerBouton(8,true);\" onmouseout=\"exo.changerBouton(8,false);\" onclick=\"exo.action(8)\"><span style=\"FONT-SIZE: 250%\">•<img align=\"center\" border=\"0\" src=\"../media/communicate2.gif\" id=\"MosImg21\"></span></div>" ;
+            :index 7 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep4\" onmouseover=\"exo.changerBouton(4,true);\" onmouseout=\"exo.changerBouton(4,false);\" onclick=\"exo.action(4)\"></div>" ;
+            :index 3 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep13\" onmouseover=\"exo.changerBouton(13,true);\" onmouseout=\"exo.changerBouton(13,false);\" onclick=\"exo.action(13)\"><span style=\"FONT-SIZE: 250%\">• <img src=\"../media/beginning1.gif\" id=\"MosImg3\" border=\"0\" align=\"center\"></span></div>" ;
+            :index 12 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep12\" onmouseover=\"exo.changerBouton(12,true);\" onmouseout=\"exo.changerBouton(12,false);\" onclick=\"exo.action(12)\"></div>" ;
+            :index 11 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep2\" onmouseover=\"exo.changerBouton(2,true);\" onmouseout=\"exo.changerBouton(2,false);\" onclick=\"exo.action(2)\"><span style=\"FONT-SIZE: 250%\">• <img src=\"../media/heroin2.gif\" id=\"MosImg10\" border=\"0\" align=\"center\"></span></div>" ;
+            :index 1 ],
+        [ :correct true ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep1\" onmouseover=\"exo.changerBouton(1,true);\" onmouseout=\"exo.changerBouton(1,false);\" onclick=\"exo.action(1)\"><span style=\"FONT-SIZE: 250%\">• <img src=\"../media/heroin.gif\" id=\"MosImg16\" border=\"0\" align=\"center\"></span></div>" ;
+            :index 0 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep5\" onmouseover=\"exo.changerBouton(5,true);\" onmouseout=\"exo.changerBouton(5,false);\" onclick=\"exo.action(5)\"><span style=\"FONT-SIZE: 250%\"></span></div>" ;
+            :index 4 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep6\" onmouseover=\"exo.changerBouton(6,true);\" onmouseout=\"exo.changerBouton(6,false);\" onclick=\"exo.action(6)\"></div>" ;
+            :index 5 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep3\" onmouseover=\"exo.changerBouton(3,true);\" onmouseout=\"exo.changerBouton(3,false);\" onclick=\"exo.action(3)\"><span style=\"FONT-SIZE: 250%\">• <img src=\"../media/heroin3.gif\" id=\"MosImg90\" border=\"0\" align=\"center\"></span></div>" ;
+            :index 2 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep7\" onmouseover=\"exo.changerBouton(7,true);\" onmouseout=\"exo.changerBouton(7,false);\" onclick=\"exo.action(7)\"><span style=\"FONT-SIZE: 250%\">•<img align=\"center\" border=\"0\" src=\"../media/communicate1.gif\" id=\"MosImg43\"></span></div>" ;
+            :index 6 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep11\" onmouseover=\"exo.changerBouton(11,true);\" onmouseout=\"exo.changerBouton(11,false);\" onclick=\"exo.action(11)\"></div>" ;
+            :index 10 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep9\" onmouseover=\"exo.changerBouton(9,true);\" onmouseout=\"exo.changerBouton(9,false);\" onclick=\"exo.action(9)\"><span style=\"FONT-SIZE: 250%\">• <img src=\"../media/communicate.gif\" id=\"MosImg13\" border=\"0\" align=\"center\"></span></div>" ;
+            :index 8 ],
+        [ :correct true ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep14\" onmouseover=\"exo.changerBouton(14,true);\" onmouseout=\"exo.changerBouton(14,false);\" onclick=\"exo.action(14)\"><span style=\"FONT-SIZE: 250%\">• <img src=\"../media/beginning.gif\" id=\"MosImg14\" border=\"0\" align=\"center\"></span></div>" ;
+            :index 13 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align=""> </p>
         <p align=""></p>
         <p style="MARGIN-BOTTOM: 0cm" align="">En effet, voici la transcription qui convient pour chaque mot :</p>
@@ -2661,8 +3068,15 @@
         owl:NamedIndividual ;
     rdfs:label "L'auxiliaire HAVE (2)" ;
     :__protege_display_name "07 | pg879 | L'auxiliaire HAVE (2)" ;
-    :aReponseCorrecte 1 ;
-    :aReponseIncorrecte 0 ;
+    :aReponse [ :correct true ;
+            :html """<div class="STY_reponseQC" id="lienRep2" onmouseover="exo.changerBouton(2,true);" onmouseout="exo.changerBouton(2,false);" onclick="exo.action(2)">l'auxiliaire HAVE n'est pas
+                        prononcé de façon identique.
+                    </div>""" ;
+            :index 1 ],
+        [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep1" onmouseover="exo.changerBouton(1,true);" onmouseout="exo.changerBouton(1,false);" onclick="exo.action(1)"><p align="">l'auxiliaire HAVE
+                        est prononcé de façon identique.</p></div>""" ;
+            :index 0 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align="">
         <br><br><br><br><br><br><br><br><br><br>Effectivement.</p>
         <p align="">L'auxiliaire du premier énoncé comporte une <b><a class="STY_lienDansZoneComt" href="javascript:parent.SCO_ouvrirDoc('voyelle_reduite','htm')">voyelle
@@ -2739,8 +3153,14 @@
         owl:NamedIndividual ;
     rdfs:label "Distinguer d'éventuelles variantes (2)" ;
     :__protege_display_name "03 | pg890 | Distinguer d'éventuelles variantes (2)" ;
-    :aReponseCorrecte 1 ;
-    :aReponseIncorrecte 0 ;
+    :aReponse [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep1" onmouseover="exo.changerBouton(1,true);" onmouseout="exo.changerBouton(1,false);" onclick="exo.action(1)"><p align="">AT se prononce de
+                        la même façon dans les deux énoncés.</p></div>""" ;
+            :index 0 ],
+        [ :correct true ;
+            :html """<div class="STY_reponseQC" id="lienRep2" onmouseover="exo.changerBouton(2,true);" onmouseout="exo.changerBouton(2,false);" onclick="exo.action(2)"><p align="">AT ne se prononce
+                        pas de la même façon dans les deux énoncés.</p></div>""" ;
+            :index 1 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align="">Effectivement.</p>
         <p align="">
             <script type="text/javascript">ajDocW(PF_clipAV('clipAV662', 'e29_macao1_2b33.swf', '80', '40', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', 'cmt'));</script>
@@ -2781,8 +3201,12 @@
         owl:NamedIndividual ;
     rdfs:label "Choisir une transcription (6)" ;
     :__protege_display_name "05 | pg893 | Choisir une transcription (6)" ;
-    :aReponseCorrecte 1 ;
-    :aReponseIncorrecte 0 ;
+    :aReponse [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep1\" onmouseover=\"exo.changerBouton(1,true);\" onmouseout=\"exo.changerBouton(1,false);\" onclick=\"exo.action(1)\"><img src=\"../media/phon_shine_faux.png\" id=\"MosImg12\" border=\"0\" align=\"center\" style=\"visibility:hidden\"></div>" ;
+            :index 0 ],
+        [ :correct true ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep2\" onmouseover=\"exo.changerBouton(2,true);\" onmouseout=\"exo.changerBouton(2,false);\" onclick=\"exo.action(2)\"><img src=\"../media/phon_shine.png\" id=\"MosImg2\" border=\"0\" align=\"center\" style=\"visibility:hidden\"></div>" ;
+            :index 1 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')">C'est exact.</div>
     """ ;
     :commentaireSugg """<div id="divSugg1" onclick="SPE_clicDansBulle(event,'divSugg1')"><p align="">Vous vous êtes trompé. La bonne
@@ -2799,8 +3223,12 @@
         owl:NamedIndividual ;
     rdfs:label "Choisir une transcription (8)" ;
     :__protege_display_name "17 | pg894 | Choisir une transcription (8)" ;
-    :aReponseCorrecte 0 ;
-    :aReponseIncorrecte 1 ;
+    :aReponse [ :correct true ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep1\" onmouseover=\"exo.changerBouton(1,true);\" onmouseout=\"exo.changerBouton(1,false);\" onclick=\"exo.action(1)\"><img src=\"../media/phon_tearlarme.png\" id=\"MosImg35\" border=\"0\" align=\"center\" style=\"visibility:hidden\"></div>" ;
+            :index 0 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep2\" onmouseover=\"exo.changerBouton(2,true);\" onmouseout=\"exo.changerBouton(2,false);\" onclick=\"exo.action(2)\"><img src=\"../media/phon_teardechire.png\" id=\"MosImg72\" border=\"0\" align=\"center\" style=\"visibility:hidden\"></div>" ;
+            :index 1 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align="">C'est la bonne réponse. Il
         s'agit d'un nom qui signifie <i>larme</i>. <br><br>L'autre prononciation  <img align="center" border="0" src="../media/phon_teardechire.png" id="MosImg7235" style="visibility:hidden"><br>existe
         : il s'agit d'un verbe qui signifie <i>déchirer</i>.<br>Vous pouvez écouter et ainsi différencier les deux mots
@@ -2901,8 +3329,12 @@
         owl:NamedIndividual ;
     rdfs:label "Choisir une transcription (10)" ;
     :__protege_display_name "19 | pg93 | Choisir une transcription (10)" ;
-    :aReponseCorrecte 0 ;
-    :aReponseIncorrecte 1 ;
+    :aReponse [ :correct true ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep1\" onmouseover=\"exo.changerBouton(1,true);\" onmouseout=\"exo.changerBouton(1,false);\" onclick=\"exo.action(1)\"><img src=\"../media/phon_woundblesser.png\" id=\"MosImg524\" border=\"0\" align=\"center\" style=\"visibility:hidden\"></div>" ;
+            :index 0 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep2\" onmouseover=\"exo.changerBouton(2,true);\" onmouseout=\"exo.changerBouton(2,false);\" onclick=\"exo.action(2)\"><img src=\"../media/phon_woundenroule.png\" id=\"MosImg116\" border=\"0\" align=\"center\" style=\"visibility:hidden\"></div>" ;
+            :index 1 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align="">C'est la bonne réponse. Il
         s'agit d'un verbe ou d'un nom signifiant respectivement <i>blesser</i> et <i>blessure</i>.<br><br>L'autre
         prononciation  <img align="center" border="0" src="../media/phon_woundenroule.png" id="MosImg119" style="visibility:hidden"> <br><br>correspond soit au prétérit ou au participe passé du
@@ -2966,8 +3398,16 @@
         owl:NamedIndividual ;
     rdfs:label "Choisir une prononciation (5)" ;
     :__protege_display_name "11 | pg933 | Choisir une prononciation (5)" ;
-    :aReponseCorrecte 1 ;
-    :aReponseIncorrecte 0 ;
+    :aReponse [ :correct false ;
+            :html """<div class="STY_reponseQC" id="lienRep1" onmouseover="exo.changerBouton(1,true);" onmouseout="exo.changerBouton(1,false);" onclick="exo.action(1)">
+                        <script type="text/javascript">ajDocW(PF_clipAV('clipAV59', 'bt_grin.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+                    </div>""" ;
+            :index 0 ],
+        [ :correct true ;
+            :html """<div class="STY_reponseQC" id="lienRep2" onmouseover="exo.changerBouton(2,true);" onmouseout="exo.changerBouton(2,false);" onclick="exo.action(2)">
+                        <script type="text/javascript">ajDocW(PF_clipAV('clipAV96', 'bt_green.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+                    </div>""" ;
+            :index 1 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')">Effectivement, la transcription correspond
         au second mot entendu : <i>green</i>.
     </div>
@@ -3021,8 +3461,12 @@
         owl:NamedIndividual ;
     rdfs:label "Choisir une transcription (2)" ;
     :__protege_display_name "01 | pg965 | Choisir une transcription (2)" ;
-    :aReponseCorrecte 0 ;
-    :aReponseIncorrecte 1 ;
+    :aReponse [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep2\" onmouseover=\"exo.changerBouton(2,true);\" onmouseout=\"exo.changerBouton(2,false);\" onclick=\"exo.action(2)\"><img src=\"../media/phon_then_faux.png\" id=\"MosImg81\" border=\"0\" align=\"center\" style=\"visibility:hidden\"></div>" ;
+            :index 1 ],
+        [ :correct true ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep1\" onmouseover=\"exo.changerBouton(1,true);\" onmouseout=\"exo.changerBouton(1,false);\" onclick=\"exo.action(1)\"><img src=\"../media/phon_then.png\" id=\"MosImg96\" border=\"0\" align=\"center\" style=\"visibility:hidden\"></div>" ;
+            :index 0 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')">C'est exact.</div>
     """ ;
     :commentaireSugg """<div id="divSugg1" onclick="SPE_clicDansBulle(event,'divSugg1')"><p align="">Vous vous êtes trompé. La bonne
@@ -3039,10 +3483,18 @@
         owl:NamedIndividual ;
     rdfs:label "Lire des transcriptions phonétiques (3)" ;
     :__protege_display_name "15 | pg966 | Lire des transcriptions phonétiques (3)" ;
-    :aReponseIncorrecte 0,
-        1,
-        2,
-        3 ;
+    :aReponse [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep3\" onmouseover=\"exo.changerBouton(3,true);\" onmouseout=\"exo.changerBouton(3,false);\" onclick=\"exo.action(3)\"><a class=\"STY_lienComt\" href=\"javascript:CRS_afficherDetail('3')\" onclick=\"enrPosClic(event,'3')\"><img align=\"center\" border=\"0\" src=\"../media/phon_chicago14.png\" id=\"MosImg28010\" style=\"visibility:hidden\"></a><br><br></div>" ;
+            :index 2 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep1\" onmouseover=\"exo.changerBouton(1,true);\" onmouseout=\"exo.changerBouton(1,false);\" onclick=\"exo.action(1)\"><p align=\"\"><a class=\"STY_lienComt\" href=\"javascript:CRS_afficherDetail('1')\" onclick=\"enrPosClic(event,'1')\"><img align=\"center\" border=\"0\" src=\"../media/phon_optimistic14.png\" id=\"MosImg841\" style=\"visibility:hidden\"></a><br><br></p></div>" ;
+            :index 0 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep4\" onmouseover=\"exo.changerBouton(4,true);\" onmouseout=\"exo.changerBouton(4,false);\" onclick=\"exo.action(4)\"><a class=\"STY_lienComt\" href=\"javascript:CRS_afficherDetail('4')\" onclick=\"enrPosClic(event,'4')\"><img align=\"center\" border=\"0\" src=\"../media/phon_kitchenette14.png\" id=\"MosImg4108\" style=\"visibility:hidden\"></a></div>" ;
+            :index 3 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep2\" onmouseover=\"exo.changerBouton(2,true);\" onmouseout=\"exo.changerBouton(2,false);\" onclick=\"exo.action(2)\"><a class=\"STY_lienComt\" href=\"javascript:CRS_afficherDetail('2')\" onclick=\"enrPosClic(event,'2')\"><img align=\"center\" border=\"0\" src=\"../media/phon_technology14.png\" id=\"MosImg2269\" style=\"visibility:hidden\"></a><br><br></div>" ;
+            :index 1 ] ;
     :commentaireInfo """<div id="divCmt1" onclick="SPE_clicDansBulle(event,'divCmt1')"><br><br><br><br><br><br><br><br><br><br> 
         <script type="text/javascript">ajDocW(PF_clipAV('clipAV77', 'bt_optimistic.swf', '17', '17', 'false', 'Flash', 'false', 'middle', 'Quality:high;wmode:transparent', 'cmt'));</script>
           <img align="center" border="0" src="../media/phon_optimistic14.png" id="MosImg84" style="visibility:hidden">
@@ -3078,8 +3530,12 @@
         owl:NamedIndividual ;
     rdfs:label "Choisir une transcription (5)" ;
     :__protege_display_name "04 | pg98 | Choisir une transcription (5)" ;
-    :aReponseCorrecte 0 ;
-    :aReponseIncorrecte 1 ;
+    :aReponse [ :correct true ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep1\" onmouseover=\"exo.changerBouton(1,true);\" onmouseout=\"exo.changerBouton(1,false);\" onclick=\"exo.action(1)\"><img src=\"../media/phon_measure.png\" id=\"MosImg93\" border=\"0\" align=\"center\" style=\"visibility:hidden\"></div>" ;
+            :index 0 ],
+        [ :correct false ;
+            :html "<div class=\"STY_reponseQC\" id=\"lienRep2\" onmouseover=\"exo.changerBouton(2,true);\" onmouseout=\"exo.changerBouton(2,false);\" onclick=\"exo.action(2)\"><img src=\"../media/phon_measure_faux.png\" id=\"MosImg66\" border=\"0\" align=\"center\" style=\"visibility:hidden\"></div>" ;
+            :index 1 ] ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')">C'est exact.</div>
     """ ;
     :commentaireSugg """<div id="divSugg1" onclick="SPE_clicDansBulle(event,'divSugg1')">Vous vous êtes trompé. La bonne transcription est
diff --git a/tetras_extraction/macao_12/script/extract_page.py b/tetras_extraction/macao_12/script/extract_page.py
index 59134f75e49c68b6b862e442e2f675a4abd0f67e..8c8fb57fe9a73c39daf03ebb467b3dcc27e70ebd 100644
--- a/tetras_extraction/macao_12/script/extract_page.py
+++ b/tetras_extraction/macao_12/script/extract_page.py
@@ -1,12 +1,14 @@
 import re
 import sys
+from abc import abstractmethod
+from dataclasses import dataclass
 from pprint import pprint
 from typing import Any, List, Optional
 
 import esprima as es
 from lxml import etree, html
 from lxml.etree import _Element
-from rdflib import RDF, Graph, Literal
+from rdflib import RDF, BNode, Graph, Literal
 
 from common import *
 
@@ -22,48 +24,150 @@ class Comment:
         return str(self.__dict__)
 
 
-class Page:
+class Activity:
     id: str
+    """The ID of the page this activity is in (`pg###`)"""
     title: str
-    type: str  # cours ou exercice
+    """Human-readable title of the activity"""
+    description: str
+    """Description of the activity's body (HTML),
+    e.g. the instructions for an exercise activity"""
     comment_success: Comment
-    comments_sugg: List[Comment]
-    comments_misc: List[Comment]
-
-    def __init__(self) -> None:
-        self.comments_sugg = []
-        self.comments_misc = []
+    """Comment displayed on success, if applicable"""
+    comments_sugg: List[Comment] = []
+    """Help comments displayed on failure, if applicable"""
+    comments_misc: List[Comment] = []
+    """Any other comments, if present"""
+
+    def save(self, graph: Graph):
+        """Save activity data to the graph. Subclasses extend this method
+        to save their specific data."""
+        graph.add((NS[self.id], RDF.type, NS[self.get_name()]))
+
+    def get_name(self) -> str:
+        return type(self).__name__
+
+    @classmethod
+    def from_typename(cls, name: str):
+        """Convenience function to create an `Activity` subclass from a name"""
+        match name:
+            case "Cours":
+                return Cours()
+            case "ExerciceQC":
+                return ExerciceQC()
+            case "ExerciceQM":
+                return ExerciceQM()
+            case "ExerciceTAT":
+                return ExerciceTAT()
+            case "ExerciceGD":
+                return ExerciceGD()
+            case _:
+                raise NameError(name=name)
 
     def __repr__(self):
-        return str(self.__dict__)
+        return self.get_name() + str(self.__dict__)
+
+
+class Cours(Activity):
+    pass
+
+
+@dataclass
+class Choice:
+    """A possible answer for a question, correct or not"""
+
+    index: int = 0
+    is_correct: bool = False
+    html: str = ""
+
+
+class ChoiceGroup:
+    label: str
+    items: List[Choice]
+
+
+class ExerciceQC(Activity):
+    is_qcm: bool
+    choices: List[Choice]
+
+    def __init__(self, is_qcm=False) -> None:
+        super().__init__()
+        self.is_qcm = is_qcm
+        self.choices = []
+
+    def get_name(self) -> str:
+        return "ExerciceQC_QCM" if self.is_qcm else "ExerciceQC_QCU"
+
+    def save(self, graph: Graph):
+        super().save(graph)
+        for choice in self.choices:
+            choice_node = BNode()
+            graph.add((choice_node, NS["index"], Literal(choice.index)))
+            graph.add((choice_node, NS["correct"], Literal(choice.is_correct)))
+            graph.add((choice_node, NS["html"], Literal(choice.html)))
+            graph.add((NS[self.id], NS["aReponse"], choice_node))
+
+    def set_correct(self, choice_index: int, correct: bool):
+        """Set the choice at `choice_index` as correct or not, creating it if needed."""
+        self._get_or_create(choice_index).is_correct = correct
+
+    def set_html(self, choice_index: int, html: str):
+        """Set the `html` attribute for the choice at `choice_index`, creating it if needed."""
+        self._get_or_create(choice_index).html = html
+
+    def _get_or_create(self, index: int) -> Choice:
+        """Returns the choice at `index`, creating it if needed."""
+        for i in range(len(self.choices), index + 1):
+            self.choices.append(Choice(i))
+        return self.choices[index]
+
+
+class ExerciceQM(Activity):
+    questions: List[ChoiceGroup]
+
+
+class ExerciceTAT(Activity):
+    text: str  # can be HTML
+    gaps: List[ChoiceGroup]
+
+
+class ExerciceGD(Activity):
+    targets: List[str]
+    draggables: List[List[Choice]]
 
 
-class RegexParser:
+class JSParser:
+    @abstractmethod
+    def parse(self, js, output=sys.stdout) -> Activity:
+        """Parse a string of JavaScript code and returns an instance of the
+        correct `Activity` subclass, partially populated with data found in the code.
+        """
+        pass
+
+    def __str__(self) -> str:
+        return type(self).__name__
+
+
+class RegexParser(JSParser):
     def __init__(self, graph: Graph, act_id: str) -> None:
         self.graph = graph
         self.act_id = act_id
 
-    def parse(self, js, output=sys.stdout):
+    def parse(self, js) -> Activity:
         # Find function declaration and only keep code after it
         func_split = re.split(r"\s*?function entrerDonnees\(\s*?\)\s*?{", js)
         if len(func_split) < 2:
             raise ParseError("Failed to find function 'entrerDonnees'")
         body = func_split[1]
 
-        activity_type, activity_var_name = self._parse_activity_constructor(body)
-        # Save to graph
-        self.graph.add((NS[self.act_id], RDF.type, NS[activity_type]))
-        print(activity_type, end="", file=output)
+        activity, activity_var_name = self._parse_activity_constructor(body)
+        if isinstance(activity, ExerciceQC):
+            # Parse correct answers
+            self._parse_qc_answers(body, activity)
 
-        if activity_type.startswith("ExerciceQC"):
-            # Parse correct answers and add them to the graph
-            correct_answers = self._parse_qc_answers(body)
-            print(" ", correct_answers, end="", file=output)
-            for i, correct in enumerate(correct_answers):
-                property = NS["aReponseCorrecte" if correct else "aReponseIncorrecte"]
-                self.graph.add((NS[self.act_id], property, Literal(i)))
+        return activity
 
-    def _parse_activity_constructor(self, code: str) -> tuple[str, str]:
+    def _parse_activity_constructor(self, code: str) -> tuple[Activity, str]:
         """
         Find activity constructor call, return the activity type
         and resulting variable name.
@@ -80,15 +184,16 @@ class RegexParser:
         )
         if constructor_match is None:
             raise ParseError("Failed to parse activity constructor")
-        # Handle case of QC variants
+
         var_name, act_type, args = constructor_match.groups()
-        if act_type == "ExerciceQC" and args in ('"QCU"', '"QCM"'):
-            act_type += "_" + args.replace('"', "")
-        return act_type, var_name
+        activity = Activity.from_typename(act_type)
+        # Handle case of QC variants
+        if isinstance(activity, ExerciceQC) and args == '"QCM"':
+            activity.is_qcm = True
+        return activity, var_name
 
-    def _parse_qc_answers(self, code: str) -> list[bool]:
-        """Parse the correct answers for a QCU activity, as a list of booleans"""
-        correct_choices = []
+    def _parse_qc_answers(self, code: str, exo: ExerciceQC) -> None:
+        """Parse the correct answers for a QCU activity"""
         index = 0
         for line in code.splitlines():
             line = line.strip()
@@ -98,17 +203,13 @@ class RegexParser:
                 index = int(m.group(1)) - 1  # question indexes start at 1
             elif line == "exo.tabStylesR[nr] = CODE_F;":
                 # "incorrect answer" line
-                insert_grow(correct_choices, index, False, fill_value=False)
+                exo.set_correct(index, False)
             elif line == "exo.tabStylesR[nr] = CODE_V;":
                 # "correct answer" line
-                insert_grow(correct_choices, index, True, fill_value=False)
-        return correct_choices
-
-    def __str__(self) -> str:
-        return "RegexParser"
+                exo.set_correct(index, True)
 
 
-class XpathParser:
+class XpathParser(JSParser):
     """A parser for the JS portion of an activity, that uses XPath to query
     an XML representation of Esprima's abstract syntax tree (AST)"""
 
@@ -123,37 +224,36 @@ class XpathParser:
         '*//NewExpression/callee/Identifier[@name="Cours" or starts-with(@name, "Exercice")]'
     )
 
-    def __init__(self):
-        pass
-
-    def parse(self, js, output=sys.stdout):
+    def parse(self, js) -> Activity:
         jstree = es.parseScript(js, None)
         # Convert Esprima object tree to XML etree
         xml = self.to_xml(jstree.toDict(), "jstree")
         try:
             self.fun = self.request_function(xml)[0]
-            act_type = self._parse_activity_type()
-            print(act_type, end="", file=output)
-            if act_type.startswith("ExerciceQC"):
-                print(" ", self._parse_qc_answers(), end="", file=output)
+            activity = self._parse_activity_type()
+            if isinstance(activity, ExerciceQC):
+                self._parse_qc_answers(activity)
+            return activity
         except Exception as e:
             raise ParseError(e)
 
-    def _parse_activity_type(self) -> str:
+    def _parse_activity_type(self) -> Activity:
         constructor_id = self.request_constructor_id(self.fun)[0]
         match constructor_id.get("name"):
             case "ExerciceQC":
                 arg = constructor_id.xpath("../../arguments/Literal/@value")[0]
-                if arg not in ["QCU", "QCM"]:
+                if arg == "QCM":
+                    return ExerciceQC(is_qcm=True)
+                elif arg == "QCU":
+                    return ExerciceQC()
+                else:
                     raise ParseError(f"ExerciceQC: invalid argument '{arg}'")
-                return f"ExerciceQC_{arg}"
             case other:
-                return other
+                return Activity.from_typename(other)
 
-    def _parse_qc_answers(self) -> list[bool]:
-        """Parse the correct answers for a QCU activity, as a list of booleans"""
+    def _parse_qc_answers(self, activity: ExerciceQC) -> None:
+        """Parse the correct answers for a QC activity"""
         indexes_and_values = self.request_index_and_values(self.fun)
-        correct_choices = []
         index = 0
         for e in indexes_and_values:
             value = e.xpath("@value")
@@ -162,9 +262,7 @@ class XpathParser:
                 index = int(value[0]) - 1  # question indexes start at 1
             else:
                 # "correct" or "incorrect" line
-                correct = e.get("name") == "CODE_V"
-                insert_grow(correct_choices, index, correct, fill_value=False)
-        return correct_choices
+                activity.set_correct(index, e.get("name") == "CODE_V")
 
     def to_xml(self, obj, tag_name: Optional[str] = None):
         """Recursively convert an object structure to an XML `ElementTree`.
@@ -220,24 +318,24 @@ class XpathParser:
             leaf_tag.text = str(obj)
             return leaf_tag
 
-    def __str__(self) -> str:
-        return "XpathParser"
-
 
-class MatchParser:
+class MatchParser(JSParser):
     """A parser for the JS portion of an activity, that uses Python match statements
     to navigate the abstract syntax tree (AST) produced by Esprima"""
 
+    activity: Activity
+
     def __init__(self, graph: Graph, act_id: str) -> None:
         self.graph = graph
         self.act_id = act_id
 
-    def parse(self, js, output=sys.stdout):
+    def parse(self, js, output=sys.stdout) -> Activity:
         self.output = output
         jstree = es.parseScript(js, None)
         # Try to match our template with one of the top-level statements
         for statement in jstree.body:
             self.match_function(statement.toDict())
+        return self.activity
 
     def match_constructor_call(self, new_expr: dict):
         match new_expr:
@@ -251,28 +349,24 @@ class MatchParser:
             }:
                 match typ:
                     case "Cours" | "ExerciceQM" | "ExerciceTAT" | "ExerciceGD":
-                        self.print(typ)
-                        self.graph.add((NS[self.act_id], RDF.type, NS[typ]))
+                        self.activity = Activity.from_typename(typ)
                     case "ExerciceQC":
                         match args:
                             case [{"type": "Literal", "value": "QCU"}, *_]:
                                 typ += "_QCU"
+                                self.activity = ExerciceQC()
                             case [{"type": "Literal", "value": "QCM"}, *_]:
                                 typ += "_QCM"
+                                self.activity = ExerciceQC(is_qcm=True)
                             case _:
                                 raise ParseError(
                                     f"ExerciceQC: Invalid argument '{args}'"
                                 )
-                        self.print(typ)
-                        self.graph.add((NS[self.act_id], RDF.type, NS[typ]))
                     case _:
                         raise ParseError(f"Unknown activity type '{typ}'")
             case _:
                 pass
 
-    def print(self, s: str):
-        print(s, end="", file=self.output)
-
     def match_function(self, func: dict):
         """Checks if `func` matches a function declaration named `entrerDonnees`,
         and search its body if successful
@@ -289,9 +383,6 @@ class MatchParser:
                     # Find constructor calls (e.g. `new Thing()`) recursively
                     recurse_prefix(statement, self.match_constructor_call)
 
-    def __str__(self) -> str:
-        return "MatchParser"
-
 
 def recurse_prefix(t, f):
     """Depth-first prefixed recursion: calls a function on an object, then on
@@ -314,42 +405,49 @@ regex_comment = re.compile(r"(\D*)(\d*)")
 
 
 def parse_page(graph: Graph, filepath: str, id: str):
-    page = Page()
-    # Parse with lxml
+    # Activity data is spread across HTML and JS code, which are parsed
+    # differently. Additionally, some pieces of data are specific to the
+    # activity type (Cours, ExerciceQC...) and this type is in the JS portion.
+    # This requires parsing the JS code first, to get the type, then proceed
+    # with HTML to get the rest of the type-specific data.
+
+    # We still need to find the inline scripts before parsing them
     tree = html.parse(filepath)
     root = tree.getroot()
-
     # Collect all inline scripts (no external 'src') and join them in a
     # block of JS code
-    # scripts = root.cssselect('script[type="text/javascript"]:not([src])')
     scripts: List[html.HtmlElement] = root.xpath(
         '/html/head/script[@type="text/javascript" and not(@src)]'
     )
     js = "\n".join((s.text_content() for s in scripts))
 
+    activity = Activity()
     # Try different parsers, each writing to a different file to compare their results
     for parser in [XpathParser(), MatchParser(graph, id), RegexParser(graph, id)]:
         with open(f"/tmp/{str(parser)}_debuglog.txt", "a") as f:
             print(f"\n{id:8}", end="", file=f)
             try:
-                parser.parse(js, output=f)
+                activity: Activity = parser.parse(js)
+                print(activity, end="", file=f)
             except ParseError as e:
-                print(f"{parser} -> {id}: Parsing error: {e}", file=sys.stderr)
+                eprint(f"{parser} -> {id}: Parsing error: {e}")
+                eprint("Treating this as a generic Activity.")
 
-    if (
-        graph[NS[id] : RDF.type : NS["ExerciceQC_QCU"]]
-        or graph[NS[id] : RDF.type : NS["ExerciceQC_QCM"]]
-    ):
-        ze = root.get_element_by_id("STY_zoneExercice")
+    # Temporary: parsing QC attributes
+    if isinstance(activity, ExerciceQC):
+        # Find question description
         question = root.get_element_by_id("STY_question")
-
-        print(f"ExerciceQC {{\n  question: '{to_html(question).strip()}'\n  choices: [")
+        activity.description = to_html(question).strip()
+        # Find question choices
         for choice in root.find_class("STY_reponseQC"):
+            # Choices have an 'id' attribute in the form 'lienRepX'
+            # where X is their index (starting at 1)
             index = int(choice.attrib["id"].replace("lienRep", ""))
-            print(f"    {index}: '{to_html(choice).strip()}'")
-        print("\n]}")
-        pass
+            activity.set_html(index - 1, to_html(choice).strip())
 
+    # Parse generic activity attributes
+    activity.id = id
+    activity.title = root.xpath("/html/head/title")[0].text
     # Parse comments
     zi = root.get_element_by_id("zoneInvisible")
     for cmt_div in zi:
@@ -364,15 +462,17 @@ def parse_page(graph: Graph, filepath: str, id: str):
             match m.groups():
                 case ["divCmt", num]:
                     comment.num = int(num)
-                    page.comments_misc.append(comment)
+                    activity.comments_misc.append(comment)
                     graph.add((NS[id], NS["commentaireInfo"], Literal(comment.html)))
                 case ["divSugg", num]:
                     comment.num = int(num)
-                    page.comments_sugg.append(comment)
+                    activity.comments_sugg.append(comment)
                     graph.add((NS[id], NS["commentaireSugg"], Literal(comment.html)))
                 case ["divCmtSucces", _]:
-                    page.comment_success = comment
+                    activity.comment_success = comment
                     graph.add((NS[id], NS["commentaireSucces"], Literal(comment.html)))
                 case [other, _]:
                     pass
-    # pprint(page)
+    # Save everything to the graph
+    activity.save(graph)
+    # pprint(activity)