diff --git a/mcli b/mcli
index ee8830be08a9d89ea584cacffe8b50be545ca354..b80b6b6c9e0a82f5b90f88742886450b892beae1 100755
--- a/mcli
+++ b/mcli
@@ -2,17 +2,24 @@
 
 # Default value for version env var
 if [[ -z "$VERSION" ]]; then
+    # VERSION="macao_12"
     VERSION="full"
 fi
 # First parameter overrides version if set
+version_regex='^(macao_12|macao_3|each|full)$'
 if [[ "$1" == "12" || "$1" == "3" ]]; then
     VERSION="macao_$1"
     shift
-elif [[ "$1" = "each" || "$1" = "full" ]]; then
+elif [[ "$1" =~ $version_regex ]]; then
     VERSION="$1"
     shift
 fi
 export VERSION
+if [[ ! "$VERSION" =~ $version_regex ]]; then
+    echo "Invalid version '$VERSION'"
+    exit 1
+fi
+
 # Special version value "each" is processed by calling the script itself once
 # for each actual version
 if [[ "$VERSION" = "each" && "$1" != "shell" && "$1" != "status" && "$1" != "setup" ]]; then
@@ -35,40 +42,47 @@ print_usage() {
     cat <<EOF
 Usage: $(basename "$0") [version] <command> [args]
 
-COMMANDS
+VERSION
+    Specifies which part of the MACAO repository to use: "macao_12", "macao_3"
+    (or simply "12" and "3"), "each" for both in separate result dirs
+    and "full" for both merged in a single result dir.
+    If not specified, uses the value of the "VERSION" environment variable,
+    or "12" by default. Some commands do not support every version.
 
-status
-    Print useful info about the current environment.
-shell [-p|--pyenv]
-    Open a shell with mcli's environment variables set, including PATH.
-    If -p or --pyenv is specified, also enter the Python virtual env.
-list-streams <file>
-    List audio streams in <file>
-count-streams [<file>]
-    Count audio streams in <file>, or from all SWF files if none is given
-index-extensions
-    Index all files by extension
-count-all [-f|--force]
-    Count many types of Macao objects.
-    If -f or --force is given, refresh indexes before counting (equivalent to count-streams and index-extensions)
-setup
-    Initialize Python environment required by extractors
-setup-debug
-    (Re)create .env file used by the Python debugger launch config
-extract
-    Run the extract stage, to generate RDF from text sources
-transform
-    Run the transform stage, to complete and clean-up the RDF data
-export
-    Run the export stage, to generate Macao-Hugo content pages
-convert
-    Run the full conversion process (extract -> transform -> export)
-test
-    Run simple tests on the extracted RDF data
-extract-mp3 [-y|--yes-overwrite]
-    Extract audio streams from all Flash SWF files
-help
-    Print this help and exit
+COMMANDS
+    status
+        Print useful info about the current environment.
+    shell [-p|--pyenv]
+        Open a shell with mcli's environment variables set, including PATH.
+        If -p or --pyenv is specified, also enter the Python virtual env.
+    list-streams <file>
+        List audio streams in <file>
+    count-streams [<file>]
+        Count audio streams in <file>, or from all SWF files if none is given
+    index-extensions
+        Index all files by extension
+    count-all [-f|--force]
+        Count many types of Macao objects.
+        If -f or --force is given, refresh indexes before counting (equivalent
+        to count-streams and index-extensions)
+    setup
+        Initialize Python environment required by extractors
+    setup-debug
+        (Re)create .env file used by the Python debugger launch config
+    extract
+        Run the extract stage, to generate RDF from text sources
+    transform
+        Run the transform stage, to complete and clean-up the RDF data
+    export
+        Run the export stage, to generate Macao-Hugo content pages
+    convert
+        Run the full conversion process (extract -> transform -> export)
+    test
+        Run simple tests on the extracted RDF data
+    extract-mp3 [-y|--yes-overwrite]
+        Extract audio streams from all Flash SWF files
+    help
+        Print this help and exit
 EOF
 }
 
@@ -131,6 +145,7 @@ index_extensions() {
     allfiles="$(find . -path '**/.idea' -prune -o -type f -print)"
     cd - || exit
     # List all extensions, then for each one, filter the index for files with this extension
+    # ( Perl expression courtesy of https://stackoverflow.com/a/1842270 )
     perl -ne 'print $1 if m/\.([^.\/]+)$/**//' <<<"$allfiles" | sort -u | while read -r ext; do
         echo "[$ext]" >>"$out_file"
         grep -E ".*\.$ext\$" <<<"$allfiles" | sort >>"$out_file"
diff --git a/tetras_extraction/macao_schema.ttl b/tetras_extraction/macao_schema.ttl
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/tetras_extraction/result/full/macao_content.ttl b/tetras_extraction/result/full/macao_content.ttl
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/tetras_extraction/result/full/macao_full.ttl b/tetras_extraction/result/full/macao_full.ttl
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/tetras_extraction/result/macao_12/macao_content.ttl b/tetras_extraction/result/macao_12/macao_content.ttl
index 9b8c3c9d25e6bad7d1194c2dc9b6fe59b78dd0f0..aa31d55767155488359963d2c9dbc82a12bbdac5 100644
--- a/tetras_extraction/result/macao_12/macao_content.ttl
+++ b/tetras_extraction/result/macao_12/macao_content.ttl
@@ -334,6 +334,15 @@
         owl:NamedIndividual ;
     rdfs:label "Ecoutez et complétez (2)" ;
     :__protege_display_name "02 | pg20 | Ecoutez et complétez (2)" ;
+    :aSegment :pg20_seg0,
+        :pg20_seg1,
+        :pg20_seg2,
+        :pg20_seg3,
+        :pg20_seg4,
+        :pg20_seg5,
+        :pg20_seg6,
+        :pg20_seg7,
+        :pg20_seg8 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align="">Bien. Complétez maintenant la
         suite du texte.</p>
         <p align=""> </p></div>
@@ -385,6 +394,155 @@
     :index 1 ;
     rdfs:subClassOf :pg205 .
 
+:pg20_seg0 a :Segment ;
+    :index 0 ;
+    :text """ 
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV45', 'e29_macao1_2c3_0228.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+        So, """ .
+
+:pg20_seg1 a :Champ,
+        :Segment ;
+    :aReponse :pg20_seg1_rep0,
+        :pg20_seg1_rep1,
+        :pg20_seg1_rep2 ;
+    :index 1 ;
+    :selection true .
+
+:pg20_seg1_rep0 a :Reponse ;
+    :__protege_display_name "pg20_seg1_rep0 | F" ;
+    :correct false ;
+    :html "mother" ;
+    :id "rep0" ;
+    :index 0 .
+
+:pg20_seg1_rep1 a :Reponse ;
+    :__protege_display_name "pg20_seg1_rep1 | V" ;
+    :correct true ;
+    :html "my mother" ;
+    :id "rep1" ;
+    :index 1 .
+
+:pg20_seg1_rep2 a :Reponse ;
+    :__protege_display_name "pg20_seg1_rep2 | F" ;
+    :correct false ;
+    :html "our mother" ;
+    :id "rep2" ;
+    :index 2 .
+
+:pg20_seg2 a :Segment ;
+    :index 2 ;
+    :text """ told us  
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV11', 'e29_macao1_2c3_0229.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+         we were not to pick """ .
+
+:pg20_seg3 a :Champ,
+        :Segment ;
+    :aReponse :pg20_seg3_rep0,
+        :pg20_seg3_rep1,
+        :pg20_seg3_rep2 ;
+    :index 3 ;
+    :selection true .
+
+:pg20_seg3_rep0 a :Reponse ;
+    :__protege_display_name "pg20_seg3_rep0 | V" ;
+    :correct true ;
+    :html "the apples" ;
+    :id "rep0" ;
+    :index 0 .
+
+:pg20_seg3_rep1 a :Reponse ;
+    :__protege_display_name "pg20_seg3_rep1 | F" ;
+    :correct false ;
+    :html "apples" ;
+    :id "rep1" ;
+    :index 1 .
+
+:pg20_seg3_rep2 a :Reponse ;
+    :__protege_display_name "pg20_seg3_rep2 | F" ;
+    :correct false ;
+    :html "an apple" ;
+    :id "rep2" ;
+    :index 2 .
+
+:pg20_seg4 a :Segment ;
+    :index 4 ;
+    :text """.  <br><br>
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV89', 'e29_macao1_2c3_0230.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+         My mother said, 'It’s naughty to pick the apples   
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV82', 'e29_macao1_2c3_023311.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+         when they are growing upon<br><br>""" .
+
+:pg20_seg5 a :Champ,
+        :Segment ;
+    :aReponse :pg20_seg5_rep0,
+        :pg20_seg5_rep1,
+        :pg20_seg5_rep2 ;
+    :index 5 ;
+    :selection true .
+
+:pg20_seg5_rep0 a :Reponse ;
+    :__protege_display_name "pg20_seg5_rep0 | F" ;
+    :correct false ;
+    :html "a tree" ;
+    :id "rep0" ;
+    :index 0 .
+
+:pg20_seg5_rep1 a :Reponse ;
+    :__protege_display_name "pg20_seg5_rep1 | V" ;
+    :correct true ;
+    :html "the tree" ;
+    :id "rep1" ;
+    :index 1 .
+
+:pg20_seg5_rep2 a :Reponse ;
+    :__protege_display_name "pg20_seg5_rep2 | F" ;
+    :correct false ;
+    :html "tree" ;
+    :id "rep2" ;
+    :index 2 .
+
+:pg20_seg6 a :Segment ;
+    :index 6 ;
+    :text """,  
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV27', 'e29_macao1_2c3_0232.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+         because we want them to go on growing until they are ripe and rosy,   <br><br>
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV46', 'e29_macao1_2c3_0233.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+         and then we shall pick them and put them quite away """ .
+
+:pg20_seg7 a :Champ,
+        :Segment ;
+    :aReponse :pg20_seg7_rep0,
+        :pg20_seg7_rep1,
+        :pg20_seg7_rep2 ;
+    :index 7 ;
+    :selection true .
+
+:pg20_seg7_rep0 a :Reponse ;
+    :__protege_display_name "pg20_seg7_rep0 | F" ;
+    :correct false ;
+    :html "for" ;
+    :id "rep0" ;
+    :index 0 .
+
+:pg20_seg7_rep1 a :Reponse ;
+    :__protege_display_name "pg20_seg7_rep1 | F" ;
+    :correct false ;
+    :html "for a" ;
+    :id "rep1" ;
+    :index 1 .
+
+:pg20_seg7_rep2 a :Reponse ;
+    :__protege_display_name "pg20_seg7_rep2 | V" ;
+    :correct true ;
+    :html "for the" ;
+    :id "rep2" ;
+    :index 2 .
+
+:pg20_seg8 a :Segment ;
+    :index 8 ;
+    :text """ winter-time'.
+    """ .
+
 :pg217_1 a :Reponse ;
     :__protege_display_name "pg217_1 | V" ;
     :correct true ;
@@ -729,6 +887,7 @@
         owl:NamedIndividual ;
     rdfs:label "Mémento : longueur de la voyelle" ;
     :__protege_display_name "21 | pg299 | Mémento : longueur de la voyelle" ;
+    :aSegment :pg299_seg0 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"></div>
 """ ;
     :description """<div id="STY_question" class="STY_question"></div><div id="divConsigne" onclick="SPE_clicDansBulle(event,'divConsigne')"><p align="">Contrairement aux idées reçues,
@@ -808,6 +967,12 @@
     :titre "Voyelle réduite" ;
     rdfs:subClassOf :MosEtp555 .
 
+:pg299_seg0 a :Segment ;
+    :index 0 ;
+    :text """
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV72', 'e29anj_s4lc_p115.swf', '500', '320', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+    """ .
+
 :pg301 a :Activite,
         :Cours,
         owl:NamedIndividual ;
@@ -1279,6 +1444,7 @@
         owl:NamedIndividual ;
     rdfs:label "Longueur de la voyelle" ;
     :__protege_display_name "00 | pg397 | Longueur de la voyelle" ;
+    :aSegment :pg397_seg0 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"></div>
 """ ;
     :description """<div id="STY_question" class="STY_question"></div><div id="divConsigne" onclick="SPE_clicDansBulle(event,'divConsigne')"><p align="">Contrairement aux idées reçues,
@@ -1343,6 +1509,12 @@
     :titre "Longueur de la voyelle" ;
     rdfs:subClassOf :MosEtp690 .
 
+:pg397_seg0 a :Segment ;
+    :index 0 ;
+    :text """
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV72', 'e29anj_s4lc_p115.swf', '500', '320', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+    """ .
+
 :pg400_1 a :Reponse ;
     :__protege_display_name "pg400_1 | F" ;
     :correct false ;
@@ -1515,6 +1687,7 @@
         owl:NamedIndividual ;
     rdfs:label "Mémento : voyelles lâches et voyelles tendues" ;
     :__protege_display_name "18 | pg44 | Mémento : voyelles lâches et voyelles tendues" ;
+    :aSegment :pg44_seg0 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"></div>
 """ ;
     :description """<div id="STY_question" class="STY_question"></div><div id="divConsigne" onclick="SPE_clicDansBulle(event,'divConsigne')"><p align=""><br><br><font color="#a60a69">Contrairement
@@ -1537,6 +1710,7 @@
         owl:NamedIndividual ;
     rdfs:label "Reconnaître le mot commun (5)" ;
     :__protege_display_name "08 | pg444 | Reconnaître le mot commun (5)" ;
+    :aSegment :pg444_seg0 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align="">C'est cela! </p>
         <p align="">FOR est le seul mot commun aux deux énoncés.</p></div>
     """ ;
@@ -1552,6 +1726,33 @@
     :titre "Reconnaître le mot commun (5)" ;
     rdfs:subClassOf :MosEtp335 .
 
+:pg444_seg0 a :Segment ;
+    :index 0 ;
+    :text """<p align="">
+        </p><table class="STY_tableau" width="100%" cellpadding="3" cellspacing="0" valign="top" border="0">
+            <tr>
+                <td width="100" valign="top">
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV84', 'e29_macao1_2b91.swf', '80', '40', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+                    <br>    Enoncé 1
+                </td>
+                <td valign="top"></td>
+            </tr>
+            <tr>
+                <td valign="top"></td>
+                <td valign="top"><select class="STY_selectTAT" id="champTrou1" onchange="actionDetecteSelect()">
+                    <option value=" "> </option>
+                </select></td>
+            </tr>
+            <tr>
+                <td valign="top">
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV41', 'e29_macao1_2b101.swf', '80', '40', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+                    <br>    Enoncé 2
+                </td>
+                <td valign="top"></td>
+            </tr>
+        </table>
+        """ .
+
 :pg448 a :Activite,
         :Cours,
         owl:NamedIndividual ;
@@ -1604,6 +1805,12 @@
     :titre "Placer les accents primaire et secondaire (2)" ;
     rdfs:subClassOf :MosEtp746 .
 
+:pg44_seg0 a :Segment ;
+    :index 0 ;
+    :text """
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV13', 'e29anj_s4lc_p114.swf', '500', '320', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+    """ .
+
 :pg455 a :Activite,
         :Cours,
         owl:NamedIndividual ;
@@ -1675,6 +1882,17 @@
         owl:NamedIndividual ;
     rdfs:label "Ecoutez et complétez (3)" ;
     :__protege_display_name "03 | pg503 | Ecoutez et complétez (3)" ;
+    :aSegment :pg503_seg0,
+        :pg503_seg1,
+        :pg503_seg10,
+        :pg503_seg2,
+        :pg503_seg3,
+        :pg503_seg4,
+        :pg503_seg5,
+        :pg503_seg6,
+        :pg503_seg7,
+        :pg503_seg8,
+        :pg503_seg9 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align="">Bien ! </p></div>
     """ ;
     :commentaireSugg """<div id="divSugg1" onclick="SPE_clicDansBulle(event,'divSugg1')"><p align="">Une ou plusieurs réponses ne
@@ -1692,6 +1910,183 @@
     :titre "Ecoutez et complétez (3)" ;
     rdfs:subClassOf :MosEtp558 .
 
+:pg503_seg0 a :Segment ;
+    :index 0 ;
+    :text """
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV66', 'e29_macao1_2c4_0234.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+         'If you """ .
+
+:pg503_seg1 a :Champ,
+        :Segment ;
+    :aReponse :pg503_seg1_rep0,
+        :pg503_seg1_rep1,
+        :pg503_seg1_rep2 ;
+    :index 1 ;
+    :selection true .
+
+:pg503_seg10 a :Segment ;
+    :index 10 ;
+    :text """ on the grass <br><br>
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV36', 'e29_macao1_2c4_0241.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+         and she took it in for my mother to wash.<br><br>""" .
+
+:pg503_seg1_rep0 a :Reponse ;
+    :__protege_display_name "pg503_seg1_rep0 | F" ;
+    :correct false ;
+    :html "want the apple" ;
+    :id "rep0" ;
+    :index 0 .
+
+:pg503_seg1_rep1 a :Reponse ;
+    :__protege_display_name "pg503_seg1_rep1 | V" ;
+    :correct true ;
+    :html "want an apple" ;
+    :id "rep1" ;
+    :index 1 .
+
+:pg503_seg1_rep2 a :Reponse ;
+    :__protege_display_name "pg503_seg1_rep2 | F" ;
+    :correct false ;
+    :html "want our apple" ;
+    :id "rep2" ;
+    :index 2 .
+
+:pg503_seg2 a :Segment ;
+    :index 2 ;
+    :text """"  
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV69', 'e29_macao1_2c4_0235.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+         , my mother said,  
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV24', 'e29_macao1_2c4_0236.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+         'you must pick up a windfall <br><br>and bring it to me, and I shall wash it for you.' 
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV58', 'e29_macao1_2c4_0237.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+         As you know, 'windfalls' <br><br>are apples that fall off """ .
+
+:pg503_seg3 a :Champ,
+        :Segment ;
+    :aReponse :pg503_seg3_rep0,
+        :pg503_seg3_rep1,
+        :pg503_seg3_rep2 ;
+    :index 3 ;
+    :selection true .
+
+:pg503_seg3_rep0 a :Reponse ;
+    :__protege_display_name "pg503_seg3_rep0 | V" ;
+    :correct true ;
+    :html "the tree" ;
+    :id "rep0" ;
+    :index 0 .
+
+:pg503_seg3_rep1 a :Reponse ;
+    :__protege_display_name "pg503_seg3_rep1 | F" ;
+    :correct false ;
+    :html "a tree" ;
+    :id "rep1" ;
+    :index 1 .
+
+:pg503_seg3_rep2 a :Reponse ;
+    :__protege_display_name "pg503_seg3_rep2 | F" ;
+    :correct false ;
+    :html "tree" ;
+    :id "rep2" ;
+    :index 2 .
+
+:pg503_seg4 a :Segment ;
+    :index 4 ;
+    :text """ 
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV17', 'e29_macao1_2c4_0238.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+          on to """ .
+
+:pg503_seg5 a :Champ,
+        :Segment ;
+    :aReponse :pg503_seg5_rep0,
+        :pg503_seg5_rep1,
+        :pg503_seg5_rep2 ;
+    :index 5 ;
+    :selection true .
+
+:pg503_seg5_rep0 a :Reponse ;
+    :__protege_display_name "pg503_seg5_rep0 | F" ;
+    :correct false ;
+    :html "a grass " ;
+    :id "rep0" ;
+    :index 0 .
+
+:pg503_seg5_rep1 a :Reponse ;
+    :__protege_display_name "pg503_seg5_rep1 | F" ;
+    :correct false ;
+    :html "grass " ;
+    :id "rep1" ;
+    :index 1 .
+
+:pg503_seg5_rep2 a :Reponse ;
+    :__protege_display_name "pg503_seg5_rep2 | V" ;
+    :correct true ;
+    :html "the grass " ;
+    :id "rep2" ;
+    :index 2 .
+
+:pg503_seg6 a :Segment ;
+    :index 6 ;
+    :text """,   
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV72', 'e29_macao1_2c4_0239.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+         so, one day, my little <br><br>sister looked """ .
+
+:pg503_seg7 a :Champ,
+        :Segment ;
+    :aReponse :pg503_seg7_rep0,
+        :pg503_seg7_rep1 ;
+    :index 7 ;
+    :selection true .
+
+:pg503_seg7_rep0 a :Reponse ;
+    :__protege_display_name "pg503_seg7_rep0 | F" ;
+    :correct false ;
+    :html "under a tree" ;
+    :id "rep0" ;
+    :index 0 .
+
+:pg503_seg7_rep1 a :Reponse ;
+    :__protege_display_name "pg503_seg7_rep1 | V" ;
+    :correct true ;
+    :html "under the tree" ;
+    :id "rep1" ;
+    :index 1 .
+
+:pg503_seg8 a :Segment ;
+    :index 8 ;
+    :text """  
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV93', 'e29_macao1_2c4_0240.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+          and found  """ .
+
+:pg503_seg9 a :Champ,
+        :Segment ;
+    :aReponse :pg503_seg9_rep0,
+        :pg503_seg9_rep1,
+        :pg503_seg9_rep2 ;
+    :index 9 ;
+    :selection true .
+
+:pg503_seg9_rep0 a :Reponse ;
+    :__protege_display_name "pg503_seg9_rep0 | F" ;
+    :correct false ;
+    :html "nice big windfall" ;
+    :id "rep0" ;
+    :index 0 .
+
+:pg503_seg9_rep1 a :Reponse ;
+    :__protege_display_name "pg503_seg9_rep1 | F" ;
+    :correct false ;
+    :html "the nice big windfall" ;
+    :id "rep1" ;
+    :index 1 .
+
+:pg503_seg9_rep2 a :Reponse ;
+    :__protege_display_name "pg503_seg9_rep2 | V" ;
+    :correct true ;
+    :html "a nice big windfall" ;
+    :id "rep2" ;
+    :index 2 .
+
 :pg512 a :Activite,
         :Cours,
         owl:NamedIndividual ;
@@ -1879,6 +2274,7 @@
         owl:NamedIndividual ;
     rdfs:label "Reconnaître le mot commun (3)" ;
     :__protege_display_name "04 | pg52 | Reconnaître le mot commun (3)" ;
+    :aSegment :pg52_seg0 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align="">C'est cela! </p>
         <p align="">TO est le seul mot commun aux deux énoncés.</p></div>
     """ ;
@@ -1914,6 +2310,33 @@
     :titre "Les symboles phonétiques (8)" ;
     rdfs:subClassOf :MosEtp171 .
 
+:pg52_seg0 a :Segment ;
+    :index 0 ;
+    :text """<p align="">
+        </p><table class="STY_tableau" width="100%" cellpadding="3" cellspacing="0" valign="top" border="0">
+            <tr>
+                <td width="100" valign="top">
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV2', 'e29_macao1_2b51.swf', '80', '40', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+                    <br>   Enoncé 1
+                </td>
+                <td valign="top"></td>
+            </tr>
+            <tr>
+                <td valign="top"></td>
+                <td valign="top"><select class="STY_selectTAT" id="champTrou1" onchange="actionDetecteSelect()">
+                    <option value=" "> </option>
+                </select></td>
+            </tr>
+            <tr>
+                <td valign="top">
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV48', 'e29_macao1_2b61.swf', '80', '40', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+                    <br>   Enoncé 2
+                </td>
+                <td valign="top"></td>
+            </tr>
+        </table>
+        """ .
+
 :pg531_1 a :Reponse ;
     :__protege_display_name "pg531_1 | F" ;
     :correct false ;
@@ -2024,6 +2447,7 @@
         owl:NamedIndividual ;
     rdfs:label "Reconnaître le mot commun (2)" ;
     :__protege_display_name "02 | pg558 | Reconnaître le mot commun (2)" ;
+    :aSegment :pg558_seg0 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align="">C'est cela! </p>
         <p align="">AT est le seul mot commun aux deux énoncés.</p></div>
     """ ;
@@ -2039,6 +2463,33 @@
     :titre "Reconnaître le mot commun (2)" ;
     rdfs:subClassOf :MosEtp335 .
 
+:pg558_seg0 a :Segment ;
+    :index 0 ;
+    :text """<p align="">
+        </p><table class="STY_tableau" width="100%" cellpadding="3" cellspacing="0" valign="top" border="0">
+            <tr>
+                <td width="100" valign="top"> 
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV85', 'e29_macao1_2b31.swf', '80', '40', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+                    <br>     Enoncé 1
+                </td>
+                <td valign="top"></td>
+            </tr>
+            <tr>
+                <td valign="top"></td>
+                <td valign="top"><select class="STY_selectTAT" id="champTrou1" onchange="actionDetecteSelect()">
+                    <option value=" "> </option>
+                </select></td>
+            </tr>
+            <tr>
+                <td valign="top">
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV76', 'e29_macao1_2b41.swf', '80', '40', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+                    <br>     Enoncé 2
+                </td>
+                <td valign="top"></td>
+            </tr>
+        </table>
+        """ .
+
 :pg561_1 a :Reponse ;
     :__protege_display_name "pg561_1 | F" ;
     :correct false ;
@@ -2282,6 +2733,7 @@
         owl:NamedIndividual ;
     rdfs:label "Reconnaître le mot commun (1)" ;
     :__protege_display_name "00 | pg624 | Reconnaître le mot commun (1)" ;
+    :aSegment :pg624_seg0 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align="">C'est cela! </p>
         <p align="">OF est le seul mot commun aux deux énoncés.</p></div>
     """ ;
@@ -2302,6 +2754,21 @@
         owl:NamedIndividual ;
     rdfs:label "Ecoutez et complétez (1)" ;
     :__protege_display_name "01 | pg6241 | Ecoutez et complétez (1)" ;
+    :aSegment :pg6241_seg0,
+        :pg6241_seg1,
+        :pg6241_seg10,
+        :pg6241_seg11,
+        :pg6241_seg12,
+        :pg6241_seg13,
+        :pg6241_seg14,
+        :pg6241_seg2,
+        :pg6241_seg3,
+        :pg6241_seg4,
+        :pg6241_seg5,
+        :pg6241_seg6,
+        :pg6241_seg7,
+        :pg6241_seg8,
+        :pg6241_seg9 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align="">Bien. Complétez maintenant la
         suite du texte.</p>
         <p align=""> </p></div>
@@ -2321,6 +2788,289 @@
     :titre "Ecoutez et complétez (1)" ;
     rdfs:subClassOf :MosEtp558 .
 
+:pg6241_seg0 a :Segment ;
+    :index 0 ;
+    :text """ 
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV29', 'e29_macao1_2c2.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+         When I """ .
+
+:pg6241_seg1 a :Champ,
+        :Segment ;
+    :aReponse :pg6241_seg1_rep0,
+        :pg6241_seg1_rep1,
+        :pg6241_seg1_rep2 ;
+    :index 1 ;
+    :selection true .
+
+:pg6241_seg10 a :Segment ;
+    :index 10 ;
+    :text """ and eat them.  
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV87', 'e29_macao1_2c2_02261.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+         It  """ .
+
+:pg6241_seg11 a :Champ,
+        :Segment ;
+    :aReponse :pg6241_seg11_rep0,
+        :pg6241_seg11_rep1,
+        :pg6241_seg11_rep2 ;
+    :index 11 ;
+    :selection true .
+
+:pg6241_seg11_rep0 a :Reponse ;
+    :__protege_display_name "pg6241_seg11_rep0 | V" ;
+    :correct true ;
+    :html "was a" ;
+    :id "rep0" ;
+    :index 0 .
+
+:pg6241_seg11_rep1 a :Reponse ;
+    :__protege_display_name "pg6241_seg11_rep1 | F" ;
+    :correct false ;
+    :html "was" ;
+    :id "rep1" ;
+    :index 1 .
+
+:pg6241_seg11_rep2 a :Reponse ;
+    :__protege_display_name "pg6241_seg11_rep2 | F" ;
+    :correct false ;
+    :html "was the" ;
+    :id "rep2" ;
+    :index 2 .
+
+:pg6241_seg12 a :Segment ;
+    :index 12 ;
+    :text """ very easy thing to <br><br>do  
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV43', 'e29_macao1_2c2_0227.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+          because  """ .
+
+:pg6241_seg13 a :Champ,
+        :Segment ;
+    :aReponse :pg6241_seg13_rep0,
+        :pg6241_seg13_rep1,
+        :pg6241_seg13_rep2 ;
+    :index 13 ;
+    :selection true .
+
+:pg6241_seg13_rep0 a :Reponse ;
+    :__protege_display_name "pg6241_seg13_rep0 | V" ;
+    :correct true ;
+    :html "the branches" ;
+    :id "rep0" ;
+    :index 0 .
+
+:pg6241_seg13_rep1 a :Reponse ;
+    :__protege_display_name "pg6241_seg13_rep1 | F" ;
+    :correct false ;
+    :html "branches" ;
+    :id "rep1" ;
+    :index 1 .
+
+:pg6241_seg13_rep2 a :Reponse ;
+    :__protege_display_name "pg6241_seg13_rep2 | F" ;
+    :correct false ;
+    :html "some branches" ;
+    :id "rep2" ;
+    :index 2 .
+
+:pg6241_seg14 a :Segment ;
+    :index 14 ;
+    :text """ were so low.
+    """ .
+
+:pg6241_seg1_rep0 a :Reponse ;
+    :__protege_display_name "pg6241_seg1_rep0 | V" ;
+    :correct true ;
+    :html "was a" ;
+    :id "rep0" ;
+    :index 0 .
+
+:pg6241_seg1_rep1 a :Reponse ;
+    :__protege_display_name "pg6241_seg1_rep1 | F" ;
+    :correct false ;
+    :html "was" ;
+    :id "rep1" ;
+    :index 1 .
+
+:pg6241_seg1_rep2 a :Reponse ;
+    :__protege_display_name "pg6241_seg1_rep2 | F" ;
+    :correct false ;
+    :html "was the" ;
+    :id "rep2" ;
+    :index 2 .
+
+:pg6241_seg2 a :Segment ;
+    :index 2 ;
+    :text """ little girl,  
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV55', 'e29_macao1_2c2_02233.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+         and my naughty little sister <br><br>""" .
+
+:pg6241_seg3 a :Champ,
+        :Segment ;
+    :aReponse :pg6241_seg3_rep0,
+        :pg6241_seg3_rep1,
+        :pg6241_seg3_rep2 ;
+    :index 3 ;
+    :selection true .
+
+:pg6241_seg3_rep0 a :Reponse ;
+    :__protege_display_name "pg6241_seg3_rep0 | V" ;
+    :correct true ;
+    :html "was a" ;
+    :id "rep0" ;
+    :index 0 .
+
+:pg6241_seg3_rep1 a :Reponse ;
+    :__protege_display_name "pg6241_seg3_rep1 | F" ;
+    :correct false ;
+    :html "was" ;
+    :id "rep1" ;
+    :index 1 .
+
+:pg6241_seg3_rep2 a :Reponse ;
+    :__protege_display_name "pg6241_seg3_rep2 | F" ;
+    :correct false ;
+    :html "was the" ;
+    :id "rep2" ;
+    :index 2 .
+
+:pg6241_seg4 a :Segment ;
+    :index 4 ;
+    :text """ little girl,  
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV79', 'e29_macao1_2c2_02241.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+         we used to  have """ .
+
+:pg6241_seg5 a :Champ,
+        :Segment ;
+    :aReponse :pg6241_seg5_rep0,
+        :pg6241_seg5_rep1,
+        :pg6241_seg5_rep2,
+        :pg6241_seg5_rep3 ;
+    :index 5 ;
+    :selection true .
+
+:pg6241_seg5_rep0 a :Reponse ;
+    :__protege_display_name "pg6241_seg5_rep0 | V" ;
+    :correct true ;
+    :html "an apple" ;
+    :id "rep0" ;
+    :index 0 .
+
+:pg6241_seg5_rep1 a :Reponse ;
+    :__protege_display_name "pg6241_seg5_rep1 | F" ;
+    :correct false ;
+    :html "our apple" ;
+    :id "rep1" ;
+    :index 1 .
+
+:pg6241_seg5_rep2 a :Reponse ;
+    :__protege_display_name "pg6241_seg5_rep2 | F" ;
+    :correct false ;
+    :html "the apple" ;
+    :id "rep2" ;
+    :index 2 .
+
+:pg6241_seg5_rep3 a :Reponse ;
+    :__protege_display_name "pg6241_seg5_rep3 | F" ;
+    :correct false ;
+    :html "apple" ;
+    :id "rep3" ;
+    :index 3 .
+
+:pg6241_seg6 a :Segment ;
+    :index 6 ;
+    :text " tree " .
+
+:pg6241_seg7 a :Champ,
+        :Segment ;
+    :aReponse :pg6241_seg7_rep0,
+        :pg6241_seg7_rep1,
+        :pg6241_seg7_rep2 ;
+    :index 7 ;
+    :selection true .
+
+:pg6241_seg7_rep0 a :Reponse ;
+    :__protege_display_name "pg6241_seg7_rep0 | F" ;
+    :correct false ;
+    :html "in a" ;
+    :id "rep0" ;
+    :index 0 .
+
+:pg6241_seg7_rep1 a :Reponse ;
+    :__protege_display_name "pg6241_seg7_rep1 | F" ;
+    :correct false ;
+    :html "in the" ;
+    :id "rep1" ;
+    :index 1 .
+
+:pg6241_seg7_rep2 a :Reponse ;
+    :__protege_display_name "pg6241_seg7_rep2 | V" ;
+    :correct true ;
+    :html "in our" ;
+    :id "rep2" ;
+    :index 2 .
+
+:pg6241_seg8 a :Segment ;
+    :index 8 ;
+    :text """<br><br> garden,  
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV77', 'e29_macao1_2c2_02251.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+         and sometimes my naughty little sister used to pick<br><br> """ .
+
+:pg6241_seg9 a :Champ,
+        :Segment ;
+    :aReponse :pg6241_seg9_rep0,
+        :pg6241_seg9_rep1,
+        :pg6241_seg9_rep2 ;
+    :index 9 ;
+    :selection true .
+
+:pg6241_seg9_rep0 a :Reponse ;
+    :__protege_display_name "pg6241_seg9_rep0 | F" ;
+    :correct false ;
+    :html "the apples" ;
+    :id "rep0" ;
+    :index 0 .
+
+:pg6241_seg9_rep1 a :Reponse ;
+    :__protege_display_name "pg6241_seg9_rep1 | V" ;
+    :correct true ;
+    :html "some apples" ;
+    :id "rep1" ;
+    :index 1 .
+
+:pg6241_seg9_rep2 a :Reponse ;
+    :__protege_display_name "pg6241_seg9_rep2 | F" ;
+    :correct false ;
+    :html "apples" ;
+    :id "rep2" ;
+    :index 2 .
+
+:pg624_seg0 a :Segment ;
+    :index 0 ;
+    :text """<p align="">
+        </p><table class="STY_tableau" width="100%" cellpadding="3" cellspacing="0" valign="top" border="0">
+            <tr>
+                <td width="100" valign="top">
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV36', 'e29_macao1_2b11.swf', '80', '40', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+                    <br>    Enoncé 1
+                </td>
+                <td valign="top"></td>
+            </tr>
+            <tr>
+                <td valign="top"></td>
+                <td valign="top"><select class="STY_selectTAT" id="champTrou1" onchange="actionDetecteSelect()">
+                    <option value=" "> </option>
+                </select></td>
+            </tr>
+            <tr>
+                <td valign="top">
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV95', 'e29_macao1_2b21.swf', '80', '40', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+                    <br>    Enoncé 2
+                </td>
+                <td valign="top"></td>
+            </tr>
+        </table>
+        """ .
+
 :pg636 a :Activite,
         :Cours,
         owl:NamedIndividual ;
@@ -3854,6 +4604,7 @@
         owl:NamedIndividual ;
     rdfs:label "Voyelles lâches et voyelles tendues" ;
     :__protege_display_name "00 | pg888 | Voyelles lâches et voyelles tendues" ;
+    :aSegment :pg888_seg0 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"></div>
 """ ;
     :description """<div id="STY_question" class="STY_question"></div><div id="divConsigne" onclick="SPE_clicDansBulle(event,'divConsigne')"><p align=""><br><br><font color="#a60a69">Contrairement
@@ -3871,6 +4622,12 @@
     :titre "Voyelles lâches et voyelles tendues" ;
     rdfs:subClassOf :MosEtp940 .
 
+:pg888_seg0 a :Segment ;
+    :index 0 ;
+    :text """
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV13', 'e29anj_s4lc_p114.swf', '500', '320', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+    """ .
+
 :pg890_1 a :Reponse ;
     :__protege_display_name "pg890_1 | F" ;
     :correct false ;
@@ -4101,6 +4858,7 @@
         owl:NamedIndividual ;
     rdfs:label "Reconnaître le mot commun (4)" ;
     :__protege_display_name "06 | pg948 | Reconnaître le mot commun (4)" ;
+    :aSegment :pg948_seg0 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align="">C'est cela! </p>
         <p align="">IN est le seul mot commun aux deux énoncés.</p></div>
     """ ;
@@ -4116,6 +4874,33 @@
     :titre "Reconnaître le mot commun (4)" ;
     rdfs:subClassOf :MosEtp335 .
 
+:pg948_seg0 a :Segment ;
+    :index 0 ;
+    :text """<p align="">
+        </p><table class="STY_tableau" width="100%" cellpadding="3" cellspacing="0" valign="top" border="0">
+            <tr>
+                <td width="100" valign="top">
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV75', 'e29_macao1_2b71.swf', '80', '40', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+                    <br>    Enoncé 1
+                </td>
+                <td valign="top"></td>
+            </tr>
+            <tr>
+                <td valign="top"></td>
+                <td valign="top"><select class="STY_selectTAT" id="champTrou1" onchange="actionDetecteSelect()">
+                    <option value=" "> </option>
+                </select></td>
+            </tr>
+            <tr>
+                <td valign="top">
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV18', 'e29_macao1_2b81.swf', '80', '40', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+                    <br>     Enoncé 2
+                </td>
+                <td valign="top"></td>
+            </tr>
+        </table>
+        """ .
+
 :pg965_1 a :Reponse ;
     :__protege_display_name "pg965_1 | V" ;
     :correct true ;
diff --git a/tetras_extraction/result/macao_12/macao_full.ttl b/tetras_extraction/result/macao_12/macao_full.ttl
index a5d8d941920ad687a2255eec0bfe1439fa2e6ff5..8952cd64d23655e3d177a739bd1ccf4b4343a8ec 100644
--- a/tetras_extraction/result/macao_12/macao_full.ttl
+++ b/tetras_extraction/result/macao_12/macao_full.ttl
@@ -27,6 +27,10 @@
     rdfs:domain :Exercice ;
     rdfs:range :Reponse .
 
+:aSegment a owl:ObjectProperty ;
+    rdfs:domain :ExerciceTAT ;
+    rdfs:range :Segment .
+
 :cheminFichier a owl:DatatypeProperty ;
     rdfs:domain :MacaoRessource ;
     rdfs:range xsd:anyURI .
@@ -312,6 +316,197 @@
     :index 1 ;
     rdfs:subClassOf :pg205 .
 
+:pg20_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text """ 
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV45', 'e29_macao1_2c3_0228.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+        So, """ .
+
+:pg20_seg1 a :Champ,
+        :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :aReponse :pg20_seg1_rep0,
+        :pg20_seg1_rep1,
+        :pg20_seg1_rep2 ;
+    :index 1 ;
+    :selection true .
+
+:pg20_seg1_rep0 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg20_seg1_rep0 | F" ;
+    :correct false ;
+    :html "mother" ;
+    :id "rep0" ;
+    :index 0 .
+
+:pg20_seg1_rep1 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg20_seg1_rep1 | V" ;
+    :correct true ;
+    :html "my mother" ;
+    :id "rep1" ;
+    :index 1 .
+
+:pg20_seg1_rep2 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg20_seg1_rep2 | F" ;
+    :correct false ;
+    :html "our mother" ;
+    :id "rep2" ;
+    :index 2 .
+
+:pg20_seg2 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 2 ;
+    :text """ told us  
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV11', 'e29_macao1_2c3_0229.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+         we were not to pick """ .
+
+:pg20_seg3 a :Champ,
+        :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :aReponse :pg20_seg3_rep0,
+        :pg20_seg3_rep1,
+        :pg20_seg3_rep2 ;
+    :index 3 ;
+    :selection true .
+
+:pg20_seg3_rep0 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg20_seg3_rep0 | V" ;
+    :correct true ;
+    :html "the apples" ;
+    :id "rep0" ;
+    :index 0 .
+
+:pg20_seg3_rep1 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg20_seg3_rep1 | F" ;
+    :correct false ;
+    :html "apples" ;
+    :id "rep1" ;
+    :index 1 .
+
+:pg20_seg3_rep2 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg20_seg3_rep2 | F" ;
+    :correct false ;
+    :html "an apple" ;
+    :id "rep2" ;
+    :index 2 .
+
+:pg20_seg4 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 4 ;
+    :text """.  <br><br>
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV89', 'e29_macao1_2c3_0230.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+         My mother said, 'It’s naughty to pick the apples   
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV82', 'e29_macao1_2c3_023311.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+         when they are growing upon<br><br>""" .
+
+:pg20_seg5 a :Champ,
+        :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :aReponse :pg20_seg5_rep0,
+        :pg20_seg5_rep1,
+        :pg20_seg5_rep2 ;
+    :index 5 ;
+    :selection true .
+
+:pg20_seg5_rep0 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg20_seg5_rep0 | F" ;
+    :correct false ;
+    :html "a tree" ;
+    :id "rep0" ;
+    :index 0 .
+
+:pg20_seg5_rep1 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg20_seg5_rep1 | V" ;
+    :correct true ;
+    :html "the tree" ;
+    :id "rep1" ;
+    :index 1 .
+
+:pg20_seg5_rep2 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg20_seg5_rep2 | F" ;
+    :correct false ;
+    :html "tree" ;
+    :id "rep2" ;
+    :index 2 .
+
+:pg20_seg6 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 6 ;
+    :text """,  
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV27', 'e29_macao1_2c3_0232.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+         because we want them to go on growing until they are ripe and rosy,   <br><br>
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV46', 'e29_macao1_2c3_0233.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+         and then we shall pick them and put them quite away """ .
+
+:pg20_seg7 a :Champ,
+        :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :aReponse :pg20_seg7_rep0,
+        :pg20_seg7_rep1,
+        :pg20_seg7_rep2 ;
+    :index 7 ;
+    :selection true .
+
+:pg20_seg7_rep0 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg20_seg7_rep0 | F" ;
+    :correct false ;
+    :html "for" ;
+    :id "rep0" ;
+    :index 0 .
+
+:pg20_seg7_rep1 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg20_seg7_rep1 | F" ;
+    :correct false ;
+    :html "for a" ;
+    :id "rep1" ;
+    :index 1 .
+
+:pg20_seg7_rep2 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg20_seg7_rep2 | V" ;
+    :correct true ;
+    :html "for the" ;
+    :id "rep2" ;
+    :index 2 .
+
+:pg20_seg8 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 8 ;
+    :text """ winter-time'.
+    """ .
+
 :pg217_1 a :MacaoContenu,
         :MacaoObject,
         :Reponse ;
@@ -574,6 +769,14 @@
     :index 8 ;
     rdfs:subClassOf :pg293 .
 
+:pg299_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text """
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV72', 'e29anj_s4lc_p115.swf', '500', '320', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+    """ .
+
 :pg313_1 a :MacaoContenu,
         :MacaoObject,
         :Reponse ;
@@ -661,6 +864,14 @@
     :index 1 ;
     rdfs:subClassOf :pg386 .
 
+:pg397_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text """
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV72', 'e29anj_s4lc_p115.swf', '500', '320', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+    """ .
+
 :pg400_1 a :MacaoContenu,
         :MacaoObject,
         :Reponse ;
@@ -761,6 +972,43 @@
     :index 2 ;
     rdfs:subClassOf :pg41 .
 
+:pg444_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text """<p align="">
+        </p><table class="STY_tableau" width="100%" cellpadding="3" cellspacing="0" valign="top" border="0">
+            <tr>
+                <td width="100" valign="top">
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV84', 'e29_macao1_2b91.swf', '80', '40', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+                    <br>    Enoncé 1
+                </td>
+                <td valign="top"></td>
+            </tr>
+            <tr>
+                <td valign="top"></td>
+                <td valign="top"><select class="STY_selectTAT" id="champTrou1" onchange="actionDetecteSelect()">
+                    <option value=" "> </option>
+                </select></td>
+            </tr>
+            <tr>
+                <td valign="top">
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV41', 'e29_macao1_2b101.swf', '80', '40', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+                    <br>    Enoncé 2
+                </td>
+                <td valign="top"></td>
+            </tr>
+        </table>
+        """ .
+
+:pg44_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text """
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV13', 'e29anj_s4lc_p114.swf', '500', '320', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+    """ .
+
 :pg491_1 a :MacaoContenu,
         :MacaoObject,
         :Reponse ;
@@ -781,6 +1029,262 @@
     :index 1 ;
     rdfs:subClassOf :pg491 .
 
+:pg503_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text """
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV66', 'e29_macao1_2c4_0234.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+         'If you """ .
+
+:pg503_seg1 a :Champ,
+        :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :aReponse :pg503_seg1_rep0,
+        :pg503_seg1_rep1,
+        :pg503_seg1_rep2 ;
+    :index 1 ;
+    :selection true .
+
+:pg503_seg10 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 10 ;
+    :text """ on the grass <br><br>
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV36', 'e29_macao1_2c4_0241.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+         and she took it in for my mother to wash.<br><br>""" .
+
+:pg503_seg1_rep0 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg503_seg1_rep0 | F" ;
+    :correct false ;
+    :html "want the apple" ;
+    :id "rep0" ;
+    :index 0 .
+
+:pg503_seg1_rep1 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg503_seg1_rep1 | V" ;
+    :correct true ;
+    :html "want an apple" ;
+    :id "rep1" ;
+    :index 1 .
+
+:pg503_seg1_rep2 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg503_seg1_rep2 | F" ;
+    :correct false ;
+    :html "want our apple" ;
+    :id "rep2" ;
+    :index 2 .
+
+:pg503_seg2 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 2 ;
+    :text """"  
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV69', 'e29_macao1_2c4_0235.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+         , my mother said,  
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV24', 'e29_macao1_2c4_0236.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+         'you must pick up a windfall <br><br>and bring it to me, and I shall wash it for you.' 
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV58', 'e29_macao1_2c4_0237.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+         As you know, 'windfalls' <br><br>are apples that fall off """ .
+
+:pg503_seg3 a :Champ,
+        :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :aReponse :pg503_seg3_rep0,
+        :pg503_seg3_rep1,
+        :pg503_seg3_rep2 ;
+    :index 3 ;
+    :selection true .
+
+:pg503_seg3_rep0 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg503_seg3_rep0 | V" ;
+    :correct true ;
+    :html "the tree" ;
+    :id "rep0" ;
+    :index 0 .
+
+:pg503_seg3_rep1 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg503_seg3_rep1 | F" ;
+    :correct false ;
+    :html "a tree" ;
+    :id "rep1" ;
+    :index 1 .
+
+:pg503_seg3_rep2 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg503_seg3_rep2 | F" ;
+    :correct false ;
+    :html "tree" ;
+    :id "rep2" ;
+    :index 2 .
+
+:pg503_seg4 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 4 ;
+    :text """ 
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV17', 'e29_macao1_2c4_0238.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+          on to """ .
+
+:pg503_seg5 a :Champ,
+        :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :aReponse :pg503_seg5_rep0,
+        :pg503_seg5_rep1,
+        :pg503_seg5_rep2 ;
+    :index 5 ;
+    :selection true .
+
+:pg503_seg5_rep0 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg503_seg5_rep0 | F" ;
+    :correct false ;
+    :html "a grass " ;
+    :id "rep0" ;
+    :index 0 .
+
+:pg503_seg5_rep1 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg503_seg5_rep1 | F" ;
+    :correct false ;
+    :html "grass " ;
+    :id "rep1" ;
+    :index 1 .
+
+:pg503_seg5_rep2 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg503_seg5_rep2 | V" ;
+    :correct true ;
+    :html "the grass " ;
+    :id "rep2" ;
+    :index 2 .
+
+:pg503_seg6 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 6 ;
+    :text """,   
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV72', 'e29_macao1_2c4_0239.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+         so, one day, my little <br><br>sister looked """ .
+
+:pg503_seg7 a :Champ,
+        :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :aReponse :pg503_seg7_rep0,
+        :pg503_seg7_rep1 ;
+    :index 7 ;
+    :selection true .
+
+:pg503_seg7_rep0 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg503_seg7_rep0 | F" ;
+    :correct false ;
+    :html "under a tree" ;
+    :id "rep0" ;
+    :index 0 .
+
+:pg503_seg7_rep1 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg503_seg7_rep1 | V" ;
+    :correct true ;
+    :html "under the tree" ;
+    :id "rep1" ;
+    :index 1 .
+
+:pg503_seg8 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 8 ;
+    :text """  
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV93', 'e29_macao1_2c4_0240.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+          and found  """ .
+
+:pg503_seg9 a :Champ,
+        :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :aReponse :pg503_seg9_rep0,
+        :pg503_seg9_rep1,
+        :pg503_seg9_rep2 ;
+    :index 9 ;
+    :selection true .
+
+:pg503_seg9_rep0 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg503_seg9_rep0 | F" ;
+    :correct false ;
+    :html "nice big windfall" ;
+    :id "rep0" ;
+    :index 0 .
+
+:pg503_seg9_rep1 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg503_seg9_rep1 | F" ;
+    :correct false ;
+    :html "the nice big windfall" ;
+    :id "rep1" ;
+    :index 1 .
+
+:pg503_seg9_rep2 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg503_seg9_rep2 | V" ;
+    :correct true ;
+    :html "a nice big windfall" ;
+    :id "rep2" ;
+    :index 2 .
+
+:pg52_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text """<p align="">
+        </p><table class="STY_tableau" width="100%" cellpadding="3" cellspacing="0" valign="top" border="0">
+            <tr>
+                <td width="100" valign="top">
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV2', 'e29_macao1_2b51.swf', '80', '40', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+                    <br>   Enoncé 1
+                </td>
+                <td valign="top"></td>
+            </tr>
+            <tr>
+                <td valign="top"></td>
+                <td valign="top"><select class="STY_selectTAT" id="champTrou1" onchange="actionDetecteSelect()">
+                    <option value=" "> </option>
+                </select></td>
+            </tr>
+            <tr>
+                <td valign="top">
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV48', 'e29_macao1_2b61.swf', '80', '40', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+                    <br>   Enoncé 2
+                </td>
+                <td valign="top"></td>
+            </tr>
+        </table>
+        """ .
+
 :pg531_1 a :MacaoContenu,
         :MacaoObject,
         :Reponse ;
@@ -804,6 +1308,35 @@
     :index 1 ;
     rdfs:subClassOf :pg531 .
 
+:pg558_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text """<p align="">
+        </p><table class="STY_tableau" width="100%" cellpadding="3" cellspacing="0" valign="top" border="0">
+            <tr>
+                <td width="100" valign="top"> 
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV85', 'e29_macao1_2b31.swf', '80', '40', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+                    <br>     Enoncé 1
+                </td>
+                <td valign="top"></td>
+            </tr>
+            <tr>
+                <td valign="top"></td>
+                <td valign="top"><select class="STY_selectTAT" id="champTrou1" onchange="actionDetecteSelect()">
+                    <option value=" "> </option>
+                </select></td>
+            </tr>
+            <tr>
+                <td valign="top">
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV76', 'e29_macao1_2b41.swf', '80', '40', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+                    <br>     Enoncé 2
+                </td>
+                <td valign="top"></td>
+            </tr>
+        </table>
+        """ .
+
 :pg561_1 a :MacaoContenu,
         :MacaoObject,
         :Reponse ;
@@ -943,6 +1476,365 @@
     :index 8 ;
     rdfs:subClassOf :pg6121 .
 
+:pg6241_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text """ 
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV29', 'e29_macao1_2c2.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+         When I """ .
+
+:pg6241_seg1 a :Champ,
+        :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :aReponse :pg6241_seg1_rep0,
+        :pg6241_seg1_rep1,
+        :pg6241_seg1_rep2 ;
+    :index 1 ;
+    :selection true .
+
+:pg6241_seg10 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 10 ;
+    :text """ and eat them.  
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV87', 'e29_macao1_2c2_02261.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+         It  """ .
+
+:pg6241_seg11 a :Champ,
+        :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :aReponse :pg6241_seg11_rep0,
+        :pg6241_seg11_rep1,
+        :pg6241_seg11_rep2 ;
+    :index 11 ;
+    :selection true .
+
+:pg6241_seg11_rep0 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg6241_seg11_rep0 | V" ;
+    :correct true ;
+    :html "was a" ;
+    :id "rep0" ;
+    :index 0 .
+
+:pg6241_seg11_rep1 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg6241_seg11_rep1 | F" ;
+    :correct false ;
+    :html "was" ;
+    :id "rep1" ;
+    :index 1 .
+
+:pg6241_seg11_rep2 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg6241_seg11_rep2 | F" ;
+    :correct false ;
+    :html "was the" ;
+    :id "rep2" ;
+    :index 2 .
+
+:pg6241_seg12 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 12 ;
+    :text """ very easy thing to <br><br>do  
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV43', 'e29_macao1_2c2_0227.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+          because  """ .
+
+:pg6241_seg13 a :Champ,
+        :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :aReponse :pg6241_seg13_rep0,
+        :pg6241_seg13_rep1,
+        :pg6241_seg13_rep2 ;
+    :index 13 ;
+    :selection true .
+
+:pg6241_seg13_rep0 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg6241_seg13_rep0 | V" ;
+    :correct true ;
+    :html "the branches" ;
+    :id "rep0" ;
+    :index 0 .
+
+:pg6241_seg13_rep1 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg6241_seg13_rep1 | F" ;
+    :correct false ;
+    :html "branches" ;
+    :id "rep1" ;
+    :index 1 .
+
+:pg6241_seg13_rep2 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg6241_seg13_rep2 | F" ;
+    :correct false ;
+    :html "some branches" ;
+    :id "rep2" ;
+    :index 2 .
+
+:pg6241_seg14 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 14 ;
+    :text """ were so low.
+    """ .
+
+:pg6241_seg1_rep0 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg6241_seg1_rep0 | V" ;
+    :correct true ;
+    :html "was a" ;
+    :id "rep0" ;
+    :index 0 .
+
+:pg6241_seg1_rep1 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg6241_seg1_rep1 | F" ;
+    :correct false ;
+    :html "was" ;
+    :id "rep1" ;
+    :index 1 .
+
+:pg6241_seg1_rep2 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg6241_seg1_rep2 | F" ;
+    :correct false ;
+    :html "was the" ;
+    :id "rep2" ;
+    :index 2 .
+
+:pg6241_seg2 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 2 ;
+    :text """ little girl,  
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV55', 'e29_macao1_2c2_02233.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+         and my naughty little sister <br><br>""" .
+
+:pg6241_seg3 a :Champ,
+        :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :aReponse :pg6241_seg3_rep0,
+        :pg6241_seg3_rep1,
+        :pg6241_seg3_rep2 ;
+    :index 3 ;
+    :selection true .
+
+:pg6241_seg3_rep0 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg6241_seg3_rep0 | V" ;
+    :correct true ;
+    :html "was a" ;
+    :id "rep0" ;
+    :index 0 .
+
+:pg6241_seg3_rep1 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg6241_seg3_rep1 | F" ;
+    :correct false ;
+    :html "was" ;
+    :id "rep1" ;
+    :index 1 .
+
+:pg6241_seg3_rep2 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg6241_seg3_rep2 | F" ;
+    :correct false ;
+    :html "was the" ;
+    :id "rep2" ;
+    :index 2 .
+
+:pg6241_seg4 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 4 ;
+    :text """ little girl,  
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV79', 'e29_macao1_2c2_02241.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+         we used to  have """ .
+
+:pg6241_seg5 a :Champ,
+        :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :aReponse :pg6241_seg5_rep0,
+        :pg6241_seg5_rep1,
+        :pg6241_seg5_rep2,
+        :pg6241_seg5_rep3 ;
+    :index 5 ;
+    :selection true .
+
+:pg6241_seg5_rep0 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg6241_seg5_rep0 | V" ;
+    :correct true ;
+    :html "an apple" ;
+    :id "rep0" ;
+    :index 0 .
+
+:pg6241_seg5_rep1 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg6241_seg5_rep1 | F" ;
+    :correct false ;
+    :html "our apple" ;
+    :id "rep1" ;
+    :index 1 .
+
+:pg6241_seg5_rep2 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg6241_seg5_rep2 | F" ;
+    :correct false ;
+    :html "the apple" ;
+    :id "rep2" ;
+    :index 2 .
+
+:pg6241_seg5_rep3 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg6241_seg5_rep3 | F" ;
+    :correct false ;
+    :html "apple" ;
+    :id "rep3" ;
+    :index 3 .
+
+:pg6241_seg6 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 6 ;
+    :text " tree " .
+
+:pg6241_seg7 a :Champ,
+        :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :aReponse :pg6241_seg7_rep0,
+        :pg6241_seg7_rep1,
+        :pg6241_seg7_rep2 ;
+    :index 7 ;
+    :selection true .
+
+:pg6241_seg7_rep0 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg6241_seg7_rep0 | F" ;
+    :correct false ;
+    :html "in a" ;
+    :id "rep0" ;
+    :index 0 .
+
+:pg6241_seg7_rep1 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg6241_seg7_rep1 | F" ;
+    :correct false ;
+    :html "in the" ;
+    :id "rep1" ;
+    :index 1 .
+
+:pg6241_seg7_rep2 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg6241_seg7_rep2 | V" ;
+    :correct true ;
+    :html "in our" ;
+    :id "rep2" ;
+    :index 2 .
+
+:pg6241_seg8 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 8 ;
+    :text """<br><br> garden,  
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV77', 'e29_macao1_2c2_02251.swf', '18', '18', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+         and sometimes my naughty little sister used to pick<br><br> """ .
+
+:pg6241_seg9 a :Champ,
+        :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :aReponse :pg6241_seg9_rep0,
+        :pg6241_seg9_rep1,
+        :pg6241_seg9_rep2 ;
+    :index 9 ;
+    :selection true .
+
+:pg6241_seg9_rep0 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg6241_seg9_rep0 | F" ;
+    :correct false ;
+    :html "the apples" ;
+    :id "rep0" ;
+    :index 0 .
+
+:pg6241_seg9_rep1 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg6241_seg9_rep1 | V" ;
+    :correct true ;
+    :html "some apples" ;
+    :id "rep1" ;
+    :index 1 .
+
+:pg6241_seg9_rep2 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg6241_seg9_rep2 | F" ;
+    :correct false ;
+    :html "apples" ;
+    :id "rep2" ;
+    :index 2 .
+
+:pg624_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text """<p align="">
+        </p><table class="STY_tableau" width="100%" cellpadding="3" cellspacing="0" valign="top" border="0">
+            <tr>
+                <td width="100" valign="top">
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV36', 'e29_macao1_2b11.swf', '80', '40', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+                    <br>    Enoncé 1
+                </td>
+                <td valign="top"></td>
+            </tr>
+            <tr>
+                <td valign="top"></td>
+                <td valign="top"><select class="STY_selectTAT" id="champTrou1" onchange="actionDetecteSelect()">
+                    <option value=" "> </option>
+                </select></td>
+            </tr>
+            <tr>
+                <td valign="top">
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV95', 'e29_macao1_2b21.swf', '80', '40', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+                    <br>    Enoncé 2
+                </td>
+                <td valign="top"></td>
+            </tr>
+        </table>
+        """ .
+
 :pg6361_1 a :MacaoContenu,
         :MacaoObject,
         :Reponse ;
@@ -1804,6 +2696,14 @@
     :index 1 ;
     rdfs:subClassOf :pg879 .
 
+:pg888_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text """
+        <script type="text/javascript">ajDocW(PF_clipAV('clipAV13', 'e29anj_s4lc_p114.swf', '500', '320', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+    """ .
+
 :pg890_1 a :MacaoContenu,
         :MacaoObject,
         :Reponse ;
@@ -1910,6 +2810,35 @@
     :index 1 ;
     rdfs:subClassOf :pg93 .
 
+:pg948_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text """<p align="">
+        </p><table class="STY_tableau" width="100%" cellpadding="3" cellspacing="0" valign="top" border="0">
+            <tr>
+                <td width="100" valign="top">
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV75', 'e29_macao1_2b71.swf', '80', '40', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+                    <br>    Enoncé 1
+                </td>
+                <td valign="top"></td>
+            </tr>
+            <tr>
+                <td valign="top"></td>
+                <td valign="top"><select class="STY_selectTAT" id="champTrou1" onchange="actionDetecteSelect()">
+                    <option value=" "> </option>
+                </select></td>
+            </tr>
+            <tr>
+                <td valign="top">
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV18', 'e29_macao1_2b81.swf', '80', '40', 'false', 'Flash', 'false', '', 'Quality:high;wmode:transparent', ''));</script>
+                    <br>     Enoncé 2
+                </td>
+                <td valign="top"></td>
+            </tr>
+        </table>
+        """ .
+
 :pg965_1 a :MacaoContenu,
         :MacaoObject,
         :Reponse ;
@@ -2190,6 +3119,15 @@
         owl:NamedIndividual ;
     rdfs:label "Ecoutez et complétez (2)" ;
     :__protege_display_name "02 | pg20 | Ecoutez et complétez (2)" ;
+    :aSegment :pg20_seg0,
+        :pg20_seg1,
+        :pg20_seg2,
+        :pg20_seg3,
+        :pg20_seg4,
+        :pg20_seg5,
+        :pg20_seg6,
+        :pg20_seg7,
+        :pg20_seg8 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align="">Bien. Complétez maintenant la
         suite du texte.</p>
         <p align=""> </p></div>
@@ -2353,6 +3291,7 @@
         owl:NamedIndividual ;
     rdfs:label "Mémento : longueur de la voyelle" ;
     :__protege_display_name "21 | pg299 | Mémento : longueur de la voyelle" ;
+    :aSegment :pg299_seg0 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"></div>
 """ ;
     :description """<div id="STY_question" class="STY_question"></div><div id="divConsigne" onclick="SPE_clicDansBulle(event,'divConsigne')"><p align="">Contrairement aux idées reçues,
@@ -2857,6 +3796,7 @@
         owl:NamedIndividual ;
     rdfs:label "Longueur de la voyelle" ;
     :__protege_display_name "00 | pg397 | Longueur de la voyelle" ;
+    :aSegment :pg397_seg0 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"></div>
 """ ;
     :description """<div id="STY_question" class="STY_question"></div><div id="divConsigne" onclick="SPE_clicDansBulle(event,'divConsigne')"><p align="">Contrairement aux idées reçues,
@@ -3023,6 +3963,7 @@
         owl:NamedIndividual ;
     rdfs:label "Mémento : voyelles lâches et voyelles tendues" ;
     :__protege_display_name "18 | pg44 | Mémento : voyelles lâches et voyelles tendues" ;
+    :aSegment :pg44_seg0 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"></div>
 """ ;
     :description """<div id="STY_question" class="STY_question"></div><div id="divConsigne" onclick="SPE_clicDansBulle(event,'divConsigne')"><p align=""><br><br><font color="#a60a69">Contrairement
@@ -3048,6 +3989,7 @@
         owl:NamedIndividual ;
     rdfs:label "Reconnaître le mot commun (5)" ;
     :__protege_display_name "08 | pg444 | Reconnaître le mot commun (5)" ;
+    :aSegment :pg444_seg0 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align="">C'est cela! </p>
         <p align="">FOR est le seul mot commun aux deux énoncés.</p></div>
     """ ;
@@ -3182,6 +4124,17 @@
         owl:NamedIndividual ;
     rdfs:label "Ecoutez et complétez (3)" ;
     :__protege_display_name "03 | pg503 | Ecoutez et complétez (3)" ;
+    :aSegment :pg503_seg0,
+        :pg503_seg1,
+        :pg503_seg10,
+        :pg503_seg2,
+        :pg503_seg3,
+        :pg503_seg4,
+        :pg503_seg5,
+        :pg503_seg6,
+        :pg503_seg7,
+        :pg503_seg8,
+        :pg503_seg9 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align="">Bien ! </p></div>
     """ ;
     :commentaireSugg """<div id="divSugg1" onclick="SPE_clicDansBulle(event,'divSugg1')"><p align="">Une ou plusieurs réponses ne
@@ -3397,6 +4350,7 @@
         owl:NamedIndividual ;
     rdfs:label "Reconnaître le mot commun (3)" ;
     :__protege_display_name "04 | pg52 | Reconnaître le mot commun (3)" ;
+    :aSegment :pg52_seg0 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align="">C'est cela! </p>
         <p align="">TO est le seul mot commun aux deux énoncés.</p></div>
     """ ;
@@ -3537,6 +4491,7 @@
         owl:NamedIndividual ;
     rdfs:label "Reconnaître le mot commun (2)" ;
     :__protege_display_name "02 | pg558 | Reconnaître le mot commun (2)" ;
+    :aSegment :pg558_seg0 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align="">C'est cela! </p>
         <p align="">AT est le seul mot commun aux deux énoncés.</p></div>
     """ ;
@@ -3699,6 +4654,7 @@
         owl:NamedIndividual ;
     rdfs:label "Reconnaître le mot commun (1)" ;
     :__protege_display_name "00 | pg624 | Reconnaître le mot commun (1)" ;
+    :aSegment :pg624_seg0 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align="">C'est cela! </p>
         <p align="">OF est le seul mot commun aux deux énoncés.</p></div>
     """ ;
@@ -3722,6 +4678,21 @@
         owl:NamedIndividual ;
     rdfs:label "Ecoutez et complétez (1)" ;
     :__protege_display_name "01 | pg6241 | Ecoutez et complétez (1)" ;
+    :aSegment :pg6241_seg0,
+        :pg6241_seg1,
+        :pg6241_seg10,
+        :pg6241_seg11,
+        :pg6241_seg12,
+        :pg6241_seg13,
+        :pg6241_seg14,
+        :pg6241_seg2,
+        :pg6241_seg3,
+        :pg6241_seg4,
+        :pg6241_seg5,
+        :pg6241_seg6,
+        :pg6241_seg7,
+        :pg6241_seg8,
+        :pg6241_seg9 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align="">Bien. Complétez maintenant la
         suite du texte.</p>
         <p align=""> </p></div>
@@ -4629,6 +5600,7 @@
         owl:NamedIndividual ;
     rdfs:label "Voyelles lâches et voyelles tendues" ;
     :__protege_display_name "00 | pg888 | Voyelles lâches et voyelles tendues" ;
+    :aSegment :pg888_seg0 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"></div>
 """ ;
     :description """<div id="STY_question" class="STY_question"></div><div id="divConsigne" onclick="SPE_clicDansBulle(event,'divConsigne')"><p align=""><br><br><font color="#a60a69">Contrairement
@@ -4805,6 +5777,7 @@
         owl:NamedIndividual ;
     rdfs:label "Reconnaître le mot commun (4)" ;
     :__protege_display_name "06 | pg948 | Reconnaître le mot commun (4)" ;
+    :aSegment :pg948_seg0 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p align="">C'est cela! </p>
         <p align="">IN est le seul mot commun aux deux énoncés.</p></div>
     """ ;
@@ -7521,6 +8494,10 @@
     :titre "> Reconnaître les prépositions" ;
     rdfs:subClassOf :MosMod34 .
 
+:Champ a owl:Class ;
+    rdfs:subClassOf :MacaoContenu,
+        :MacaoObject .
+
 :MosEtp129 a :MacaoContenu,
         :MacaoObject,
         :Module,
@@ -7916,6 +8893,10 @@
         :MacaoContenu,
         :MacaoObject .
 
+:Segment a owl:Class ;
+    rdfs:subClassOf :MacaoContenu,
+        :MacaoObject .
+
 :ExerciceQC a owl:Class ;
     rdfs:subClassOf :Activite,
         :Exercice,
diff --git a/tetras_extraction/result/macao_3/macao_content.ttl b/tetras_extraction/result/macao_3/macao_content.ttl
index 3a6f838a441328b4086d24847a2e9264bce742d6..5a53ace76f520cc1820883c65d054feb26b27016 100644
--- a/tetras_extraction/result/macao_3/macao_content.ttl
+++ b/tetras_extraction/result/macao_3/macao_content.ttl
@@ -37,6 +37,9 @@
         owl:NamedIndividual ;
     rdfs:label "Première tâche" ;
     :__protege_display_name "00 | pg1023 | Première tâche" ;
+    :aSegment :pg1023_seg0,
+        :pg1023_seg1,
+        :pg1023_seg2 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -77,6 +80,37 @@
     :titre "Première tâche" ;
     rdfs:subClassOf :act759984 .
 
+:pg1023_seg0 a :Segment ;
+    :index 0 ;
+    :text """Choisissez entre les deux formes proposées : <br><br>Now that the Prime
+        Minister has  """ .
+
+:pg1023_seg1 a :Champ,
+        :Segment ;
+    :aReponse :pg1023_seg1_rep24,
+        :pg1023_seg1_rep429 ;
+    :index 1 ;
+    :selection true .
+
+:pg1023_seg1_rep24 a :Reponse ;
+    :__protege_display_name "pg1023_seg1_rep24 | V" ;
+    :correct true ;
+    :html "shaken" ;
+    :id "rep24" ;
+    :index -1 .
+
+:pg1023_seg1_rep429 a :Reponse ;
+    :__protege_display_name "pg1023_seg1_rep429 | F" ;
+    :correct false ;
+    :html "shaking" ;
+    :id "rep429" ;
+    :index -1 .
+
+:pg1023_seg2 a :Segment ;
+    :index 2 ;
+    :text """ the President's hand, she is going back to her car.
+    """ .
+
 :pg1027 a :Activite,
         :Cours,
         owl:NamedIndividual ;
@@ -576,6 +610,7 @@
         owl:NamedIndividual ;
     rdfs:label "Deuxième tâche" ;
     :__protege_display_name "02 | pg1888 | Deuxième tâche" ;
+    :aSegment :pg1888_seg0 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -616,6 +651,30 @@
     :titre "Deuxième tâche" ;
     rdfs:subClassOf :act153876 .
 
+:pg1888_seg0 a :Segment ;
+    :index 0 ;
+    :text """
+        <p><i><b>
+            <table width="70%" bgcolor="#00c0c0" cellpadding="3" cellspacing="0" valign="top" border="0">
+                <tr>
+                    <td style="BACKGROUND: #b5f0c7; WIDTH: 20%" width="40%" valign="middle"><img align="center" border="0" src="../media/ecouteur_macao.png" id="MosImg32"></td>
+                    <td style="BACKGROUND: #b5f0c7" valign="middle">
+                        <script type="text/javascript">ajDocW(PF_clipAV('clipAV2861', 'ecran191.swf', '30', '25', 'false', 'Flash', '', '', 'quality:high;wmode:transparent', '', ''));</script>
+                    </td>
+                </tr>
+            </table>
+        </b></i></p>
+        <p><i><b></b></i><i><b><input type="text" onkeyup="actionDetecteTrou()" onfocus="focusChamp(this)" onkeypress="return tapeDansChamp(event)" onkeydown="return tapeDansChamp(event)" class="STY_champTAT" id="champTrou1"> </b></i>Zurich?<br><b><i> </i></b>
+        </p><table width="70%" bgcolor="#00c0c0" cellpadding="3" cellspacing="0" valign="top" border="0">
+            <tr>
+                <td style="BACKGROUND: #b5f0c7; WIDTH: 20%" width="40%" valign="middle"><img align="center" border="0" src="../media/ecouteur_macao.png" id="MosImg320"></td>
+                <td style="BACKGROUND: #b5f0c7" valign="middle">
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV2769', 'ecran192.swf', '30', '25', 'false', 'Flash', '', '', 'quality:high;wmode:transparent', '', ''));</script>
+                </td>
+            </tr>
+        </table>
+        <br><i><b><input type="text" onkeyup="actionDetecteTrou()" onfocus="focusChamp(this)" onkeypress="return tapeDansChamp(event)" onkeydown="return tapeDansChamp(event)" class="STY_champTAT" id="champTrou2"> </b></i>Zorba?""" .
+
 :pg1894_rep36 a :Reponse ;
     :__protege_display_name "pg1894_rep36 | F" ;
     :commentaireSugg """<div id="divSugg3" onclick="SPE_clicDansBulle(event,'divSugg3')"><p> </p>
@@ -757,6 +816,7 @@
         owl:NamedIndividual ;
     rdfs:label "Septième tâche" ;
     :__protege_display_name "07 | pg1919 | Septième tâche" ;
+    :aSegment :pg1919_seg0 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -860,6 +920,30 @@
     :titre "Septième tâche" ;
     rdfs:subClassOf :act957420 .
 
+:pg1919_seg0 a :Segment ;
+    :index 0 ;
+    :text """<br>
+        <table cellpadding="3" cellspacing="0" valign="top" border="0">
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="middle">Enoncés</td>
+                <td style="FONT-SIZE: 10px" valign="middle">Contextes</td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="middle">He drank half the bottle of water.</td>
+                <td style="FONT-SIZE: 10px" valign="middle"><select class="STY_selectTAT" id="champTrou1" onchange="actionDetecteSelect()">
+                    <option value="_INIT_TROU"> </option>
+                </select></td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="middle">He drank half a bottle of water.</td>
+                <td style="FONT-SIZE: 10px" valign="middle"><select class="STY_selectTAT" id="champTrou2" onchange="actionDetecteSelect()">
+                    <option value="_INIT_TROU"> </option>
+                </select></td>
+            </tr>
+        </table>
+        <br><br> <br><br> 
+    """ .
+
 :pg191_rep150 a :Reponse ;
     :__protege_display_name "pg191_rep150 | V" ;
     :correct true ;
@@ -984,6 +1068,9 @@
         owl:NamedIndividual ;
     rdfs:label "Sixième tâche" ;
     :__protege_display_name "09 | pg2429 | Sixième tâche" ;
+    :aSegment :pg2429_seg0,
+        :pg2429_seg1,
+        :pg2429_seg2 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -1025,11 +1112,43 @@
     :titre "Sixième tâche" ;
     rdfs:subClassOf :act153876 .
 
+:pg2429_seg0 a :Segment ;
+    :index 0 ;
+    :text """<br>You don't find many independent companies in the cinema
+        industries.<br>Most of the time, """ .
+
+:pg2429_seg1 a :Champ,
+        :Segment ;
+    :aReponse :pg2429_seg1_rep247,
+        :pg2429_seg1_rep471 ;
+    :index 1 ;
+    :selection true .
+
+:pg2429_seg1_rep247 a :Reponse ;
+    :__protege_display_name "pg2429_seg1_rep247 | F" ;
+    :correct false ;
+    :html "there are" ;
+    :id "rep247" ;
+    :index -1 .
+
+:pg2429_seg1_rep471 a :Reponse ;
+    :__protege_display_name "pg2429_seg1_rep471 | V" ;
+    :correct true ;
+    :html "they are" ;
+    :id "rep471" ;
+    :index -1 .
+
+:pg2429_seg2 a :Segment ;
+    :index 2 ;
+    :text """ confronted by financial difficulties.
+    """ .
+
 :pg2493 a :Activite,
         :ExerciceTAT,
         owl:NamedIndividual ;
     rdfs:label "Sixième tâche (2)" ;
     :__protege_display_name "06 | pg2493 | Sixième tâche (2)" ;
+    :aSegment :pg2493_seg0 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -1130,6 +1249,30 @@
     :titre "Sixième tâche (2)" ;
     rdfs:subClassOf :act957420 .
 
+:pg2493_seg0 a :Segment ;
+    :index 0 ;
+    :text """<br>
+        <table cellpadding="3" cellspacing="0" valign="top" border="0">
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="middle">Enoncés</td>
+                <td style="FONT-SIZE: 10px" valign="middle">Contextes</td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="middle">Here's a road.</td>
+                <td style="FONT-SIZE: 10px" valign="middle"><select class="STY_selectTAT" id="champTrou1" onchange="actionDetecteSelect()">
+                    <option value="_INIT_TROU"> </option>
+                </select></td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="middle">Here's the road.</td>
+                <td style="FONT-SIZE: 10px" valign="middle"><select class="STY_selectTAT" id="champTrou2" onchange="actionDetecteSelect()">
+                    <option value="_INIT_TROU"> </option>
+                </select></td>
+            </tr>
+        </table>
+        <br><br> <br><br> 
+    """ .
+
 :pg2538 a :Activite,
         :Cours,
         owl:NamedIndividual ;
@@ -1194,6 +1337,11 @@
         owl:NamedIndividual ;
     rdfs:label "Première tâche" ;
     :__protege_display_name "00 | pg2759 | Première tâche" ;
+    :aSegment :pg2759_seg0,
+        :pg2759_seg1,
+        :pg2759_seg2,
+        :pg2759_seg3,
+        :pg2759_seg4 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -1265,6 +1413,61 @@
     :titre "Première tâche" ;
     rdfs:subClassOf :act56672 .
 
+:pg2759_seg0 a :Segment ;
+    :index 0 ;
+    :text "<br>" .
+
+:pg2759_seg1 a :Champ,
+        :Segment ;
+    :aReponse :pg2759_seg1_rep269,
+        :pg2759_seg1_rep430 ;
+    :index 1 ;
+    :selection true .
+
+:pg2759_seg1_rep269 a :Reponse ;
+    :__protege_display_name "pg2759_seg1_rep269 | F" ;
+    :correct false ;
+    :html "He has decided" ;
+    :id "rep269" ;
+    :index -1 .
+
+:pg2759_seg1_rep430 a :Reponse ;
+    :__protege_display_name "pg2759_seg1_rep430 | V" ;
+    :correct true ;
+    :html "He is decided" ;
+    :id "rep430" ;
+    :index -1 .
+
+:pg2759_seg2 a :Segment ;
+    :index 2 ;
+    :text " in his ways.<br><br><br>" .
+
+:pg2759_seg3 a :Champ,
+        :Segment ;
+    :aReponse :pg2759_seg3_rep231,
+        :pg2759_seg3_rep655 ;
+    :index 3 ;
+    :selection true .
+
+:pg2759_seg3_rep231 a :Reponse ;
+    :__protege_display_name "pg2759_seg3_rep231 | V" ;
+    :correct true ;
+    :html "He has decided" ;
+    :id "rep231" ;
+    :index -1 .
+
+:pg2759_seg3_rep655 a :Reponse ;
+    :__protege_display_name "pg2759_seg3_rep655 | F" ;
+    :correct false ;
+    :html "He is decided" ;
+    :id "rep655" ;
+    :index -1 .
+
+:pg2759_seg4 a :Segment ;
+    :index 4 ;
+    :text """ not to come tomorrow.
+    """ .
+
 :pg2883 a :Activite,
         :Cours,
         owl:NamedIndividual ;
@@ -1324,6 +1527,9 @@
         owl:NamedIndividual ;
     rdfs:label "Cinquième tâche" ;
     :__protege_display_name "04 | pg3092 | Cinquième tâche" ;
+    :aSegment :pg3092_seg0,
+        :pg3092_seg1,
+        :pg3092_seg2 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -1380,6 +1586,85 @@
     :titre "Cinquième tâche" ;
     rdfs:subClassOf :act704962 .
 
+:pg3092_seg0 a :Segment ;
+    :index 0 ;
+    :text "What " .
+
+:pg3092_seg1 a :Champ,
+        :Segment ;
+    :aReponse :pg3092_seg1_rep101,
+        :pg3092_seg1_rep117,
+        :pg3092_seg1_rep135,
+        :pg3092_seg1_rep444,
+        :pg3092_seg1_rep469,
+        :pg3092_seg1_rep483,
+        :pg3092_seg1_rep831,
+        :pg3092_seg1_rep843 ;
+    :index 1 ;
+    :selection false .
+
+:pg3092_seg1_rep101 a :Reponse ;
+    :__protege_display_name "pg3092_seg1_rep101 | V" ;
+    :correct true ;
+    :html "is Sarah" ;
+    :id "rep101" ;
+    :index -1 .
+
+:pg3092_seg1_rep117 a :Reponse ;
+    :__protege_display_name "pg3092_seg1_rep117 | V" ;
+    :correct true ;
+    :html "'s Sarah" ;
+    :id "rep117" ;
+    :index -1 .
+
+:pg3092_seg1_rep135 a :Reponse ;
+    :__protege_display_name "pg3092_seg1_rep135 | V" ;
+    :correct true ;
+    :html " is Sarah" ;
+    :id "rep135" ;
+    :index -1 .
+
+:pg3092_seg1_rep444 a :Reponse ;
+    :__protege_display_name "pg3092_seg1_rep444 | V" ;
+    :correct true ;
+    :html " 's Sarah" ;
+    :id "rep444" ;
+    :index -1 .
+
+:pg3092_seg1_rep469 a :Reponse ;
+    :__protege_display_name "pg3092_seg1_rep469 | V" ;
+    :correct true ;
+    :html " is Sara" ;
+    :id "rep469" ;
+    :index -1 .
+
+:pg3092_seg1_rep483 a :Reponse ;
+    :__protege_display_name "pg3092_seg1_rep483 | V" ;
+    :correct true ;
+    :html " 's Sara" ;
+    :id "rep483" ;
+    :index -1 .
+
+:pg3092_seg1_rep831 a :Reponse ;
+    :__protege_display_name "pg3092_seg1_rep831 | V" ;
+    :correct true ;
+    :html "'s Sara" ;
+    :id "rep831" ;
+    :index -1 .
+
+:pg3092_seg1_rep843 a :Reponse ;
+    :__protege_display_name "pg3092_seg1_rep843 | V" ;
+    :correct true ;
+    :html "is Sara" ;
+    :id "rep843" ;
+    :index -1 .
+
+:pg3092_seg2 a :Segment ;
+    :index 2 ;
+    :text """ cooking?
+        It smells so nice!
+    """ .
+
 :pg3209_rep150 a :Reponse ;
     :__protege_display_name "pg3209_rep150 | F" ;
     :commentaireSugg """<div id="divSugg1" onclick="SPE_clicDansBulle(event,'divSugg1')"><p><br> </p>
@@ -1489,6 +1774,7 @@
         owl:NamedIndividual ;
     rdfs:label "Huitième tâche" ;
     :__protege_display_name "08 | pg3579 | Huitième tâche" ;
+    :aSegment :pg3579_seg0 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -1591,11 +1877,38 @@
     :titre "Huitième tâche" ;
     rdfs:subClassOf :act957420 .
 
+:pg3579_seg0 a :Segment ;
+    :index 0 ;
+    :text """<br>
+        <table cellpadding="3" cellspacing="0" valign="top" border="0">
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="middle">Enoncés</td>
+                <td style="FONT-SIZE: 10px" valign="middle">Contextes</td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="middle">He needs a pen.</td>
+                <td style="FONT-SIZE: 10px" valign="middle"><select class="STY_selectTAT" id="champTrou1" onchange="actionDetecteSelect()">
+                    <option value="_INIT_TROU"> </option>
+                </select></td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="middle">He needs the pen.</td>
+                <td style="FONT-SIZE: 10px" valign="middle"><select class="STY_selectTAT" id="champTrou2" onchange="actionDetecteSelect()">
+                    <option value="_INIT_TROU"> </option>
+                </select></td>
+            </tr>
+        </table>
+        <br><br> <br><br> 
+    """ .
+
 :pg3600 a :Activite,
         :ExerciceTAT,
         owl:NamedIndividual ;
     rdfs:label "Sixième tâche" ;
     :__protege_display_name "05 | pg3600 | Sixième tâche" ;
+    :aSegment :pg3600_seg0,
+        :pg3600_seg1,
+        :pg3600_seg2 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -1652,6 +1965,37 @@
     :titre "Sixième tâche" ;
     rdfs:subClassOf :act704962 .
 
+:pg3600_seg0 a :Segment ;
+    :index 0 ;
+    :text "" .
+
+:pg3600_seg1 a :Champ,
+        :Segment ;
+    :aReponse :pg3600_seg1_rep101,
+        :pg3600_seg1_rep117 ;
+    :index 1 ;
+    :selection false .
+
+:pg3600_seg1_rep101 a :Reponse ;
+    :__protege_display_name "pg3600_seg1_rep101 | V" ;
+    :correct true ;
+    :html "There are" ;
+    :id "rep101" ;
+    :index -1 .
+
+:pg3600_seg1_rep117 a :Reponse ;
+    :__protege_display_name "pg3600_seg1_rep117 | V" ;
+    :correct true ;
+    :html "there are" ;
+    :id "rep117" ;
+    :index -1 .
+
+:pg3600_seg2 a :Segment ;
+    :index 2 ;
+    :text """ two people
+        waiting outside.
+    """ .
+
 :pg3602 a :Activite,
         :ExerciceGD,
         owl:NamedIndividual ;
@@ -1696,6 +2040,7 @@
         owl:NamedIndividual ;
     rdfs:label "Deuxième tâche" ;
     :__protege_display_name "01 | pg3628 | Deuxième tâche" ;
+    :aSegment :pg3628_seg0 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')">Effectivement. Voici les deux dialogues
         reconstitués que vous pouvez écouter. <br><br>1 Tell us what you have found about the suspect. <br>A She has
         been seen several times with a rat. <br><br>Dans <i>She has been seen</i>, on a un <i><a class="STY_lienDansZoneComt" href="javascript:parent.SCO_ouvrirDoc('doc28886','htm')">present
@@ -1760,6 +2105,51 @@
     :titre "Deuxième tâche" ;
     rdfs:subClassOf :act828642 .
 
+:pg3628_seg0 a :Segment ;
+    :index 0 ;
+    :text """
+        <table style="BACKGROUND: #b5f0c7" width="80%" cellpadding="3" cellspacing="0" valign="top" border="1" bordercolor="">
+            <tr>
+                <td style="FONT-SIZE: 10px" width="60%" valign="top"><img align="center" border="0" src="../media/ecouteur_macao.png" width="23" height="32" id="MosImg32"></td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="top"><b>1</b> 
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV4748', 'ecran421.swf', '30', '25', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', 'vertical-align: middle', ''));</script>
+                     Tell us what you have found about the suspect.
+                </td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="top"><b>2</b> 
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV1221', 'ecran422.swf', '30', '25', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', 'vertical-align: middle', ''));</script>
+                     Where is the suspect?
+                </td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="top"><b>A</b> 
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV3044', 'ecran423.swf', '30', '25', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', 'vertical-align: middle', ''));</script>
+                     
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV87', 'mot42_3.swf', '110', '19', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', '', ''));</script>
+                     several times with a rat.
+                </td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="top"><b>B</b> 
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV7913', 'ecran424.swf', '30', '25', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', 'vertical-align: middle', ''));</script>
+                      
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV46', 'mot42_4.swf', '110', '19', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', '', ''));</script>
+                     by the judge.
+                </td>
+            </tr>
+        </table>
+        <p>Maintenant, de façon à former deux dialogues plausibles, associez chaque question à une réponse en
+            sélectionnant A ou B dans les listes déroulantes.<br><br>Tell us what you have found about the
+            suspect.<br><select class="STY_selectTAT" id="champTrou1" onchange="actionDetecteSelect()">
+                <option value="_INIT_TROU"> </option>
+            </select><br><br>Where is the suspect?<br><select class="STY_selectTAT" id="champTrou2" onchange="actionDetecteSelect()">
+                <option value="_INIT_TROU"> </option>
+            </select></p>
+    """ .
+
 :pg3746_rep150 a :Reponse ;
     :__protege_display_name "pg3746_rep150 | F" ;
     :commentaireSugg """<div id="divSugg1" onclick="SPE_clicDansBulle(event,'divSugg1')"><p> </p>
@@ -1825,6 +2215,9 @@
         owl:NamedIndividual ;
     rdfs:label "Troisième tâche" ;
     :__protege_display_name "02 | pg3862 | Troisième tâche" ;
+    :aSegment :pg3862_seg0,
+        :pg3862_seg1,
+        :pg3862_seg2 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -1893,6 +2286,53 @@
     :titre "Troisième tâche" ;
     rdfs:subClassOf :act704962 .
 
+:pg3862_seg0 a :Segment ;
+    :index 0 ;
+    :text "Now he " .
+
+:pg3862_seg1 a :Champ,
+        :Segment ;
+    :aReponse :pg3862_seg1_rep101,
+        :pg3862_seg1_rep117,
+        :pg3862_seg1_rep227,
+        :pg3862_seg1_rep309 ;
+    :index 1 ;
+    :selection false .
+
+:pg3862_seg1_rep101 a :Reponse ;
+    :__protege_display_name "pg3862_seg1_rep101 | V" ;
+    :correct true ;
+    :html "has said" ;
+    :id "rep101" ;
+    :index -1 .
+
+:pg3862_seg1_rep117 a :Reponse ;
+    :__protege_display_name "pg3862_seg1_rep117 | V" ;
+    :correct true ;
+    :html "'s said" ;
+    :id "rep117" ;
+    :index -1 .
+
+:pg3862_seg1_rep227 a :Reponse ;
+    :__protege_display_name "pg3862_seg1_rep227 | V" ;
+    :correct true ;
+    :html " 's said" ;
+    :id "rep227" ;
+    :index -1 .
+
+:pg3862_seg1_rep309 a :Reponse ;
+    :__protege_display_name "pg3862_seg1_rep309 | V" ;
+    :correct true ;
+    :html " has said" ;
+    :id "rep309" ;
+    :index -1 .
+
+:pg3862_seg2 a :Segment ;
+    :index 2 ;
+    :text """ he
+        doesn't want to come, it's too late!
+    """ .
+
 :pg3870_rep150 a :Reponse ;
     :__protege_display_name "pg3870_rep150 | V" ;
     :correct true ;
@@ -2102,6 +2542,9 @@
         owl:NamedIndividual ;
     rdfs:label "Troisième tâche" ;
     :__protege_display_name "02 | pg4141 | Troisième tâche" ;
+    :aSegment :pg4141_seg0,
+        :pg4141_seg1,
+        :pg4141_seg2 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -2148,6 +2591,44 @@
     :titre "Troisième tâche" ;
     rdfs:subClassOf :act56672 .
 
+:pg4141_seg0 a :Segment ;
+    :index 0 ;
+    :text "<br>" .
+
+:pg4141_seg1 a :Champ,
+        :Segment ;
+    :aReponse :pg4141_seg1_rep269,
+        :pg4141_seg1_rep430,
+        :pg4141_seg1_rep527 ;
+    :index 1 ;
+    :selection true .
+
+:pg4141_seg1_rep269 a :Reponse ;
+    :__protege_display_name "pg4141_seg1_rep269 | F" ;
+    :correct false ;
+    :html "The player's a" ;
+    :id "rep269" ;
+    :index -1 .
+
+:pg4141_seg1_rep430 a :Reponse ;
+    :__protege_display_name "pg4141_seg1_rep430 | F" ;
+    :correct false ;
+    :html "The players a" ;
+    :id "rep430" ;
+    :index -1 .
+
+:pg4141_seg1_rep527 a :Reponse ;
+    :__protege_display_name "pg4141_seg1_rep527 | V" ;
+    :correct true ;
+    :html "The players are" ;
+    :id "rep527" ;
+    :index -1 .
+
+:pg4141_seg2 a :Segment ;
+    :index 2 ;
+    :text """ talking with the referee.
+    """ .
+
 :pg4192_rep150 a :Reponse ;
     :__protege_display_name "pg4192_rep150 | F" ;
     :commentaireSugg """<div id="divSugg2" onclick="SPE_clicDansBulle(event,'divSugg2')"><p> </p>
@@ -2467,6 +2948,9 @@
         owl:NamedIndividual ;
     rdfs:label "Première tâche" ;
     :__protege_display_name "00 | pg4487 | Première tâche" ;
+    :aSegment :pg4487_seg0,
+        :pg4487_seg1,
+        :pg4487_seg2 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -2571,6 +3055,53 @@
     :titre "Première tâche" ;
     rdfs:subClassOf :act704962 .
 
+:pg4487_seg0 a :Segment ;
+    :index 0 ;
+    :text """Peter and Mary have moved to Scotland. Their furniture has been carried
+        to Glasgow by road, and now they """ .
+
+:pg4487_seg1 a :Champ,
+        :Segment ;
+    :aReponse :pg4487_seg1_rep117,
+        :pg4487_seg1_rep577,
+        :pg4487_seg1_rep749,
+        :pg4487_seg1_rep982 ;
+    :index 1 ;
+    :selection false .
+
+:pg4487_seg1_rep117 a :Reponse ;
+    :__protege_display_name "pg4487_seg1_rep117 | V" ;
+    :correct true ;
+    :html "'ve finished" ;
+    :id "rep117" ;
+    :index -1 .
+
+:pg4487_seg1_rep577 a :Reponse ;
+    :__protege_display_name "pg4487_seg1_rep577 | V" ;
+    :correct true ;
+    :html "have finished" ;
+    :id "rep577" ;
+    :index -1 .
+
+:pg4487_seg1_rep749 a :Reponse ;
+    :__protege_display_name "pg4487_seg1_rep749 | V" ;
+    :correct true ;
+    :html " have finished" ;
+    :id "rep749" ;
+    :index -1 .
+
+:pg4487_seg1_rep982 a :Reponse ;
+    :__protege_display_name "pg4487_seg1_rep982 | V" ;
+    :correct true ;
+    :html " 've finished" ;
+    :id "rep982" ;
+    :index -1 .
+
+:pg4487_seg2 a :Segment ;
+    :index 2 ;
+    :text """
+        putting everything in its place.<br>""" .
+
 :pg4797_rep150 a :Reponse ;
     :__protege_display_name "pg4797_rep150 | F" ;
     :commentaireSugg """<div id="divSugg1" onclick="SPE_clicDansBulle(event,'divSugg1')"><p> </p>
@@ -2749,6 +3280,9 @@
         owl:NamedIndividual ;
     rdfs:label "Troisième tâche" ;
     :__protege_display_name "02 | pg5132 | Troisième tâche" ;
+    :aSegment :pg5132_seg0,
+        :pg5132_seg1,
+        :pg5132_seg2 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -2797,6 +3331,45 @@
     :titre "Troisième tâche" ;
     rdfs:subClassOf :act759984 .
 
+:pg5132_seg0 a :Segment ;
+    :index 0 ;
+    :text """Choisissez entre les formes proposées : <br><br>If the school refuses to
+        take more children, the governors could be """ .
+
+:pg5132_seg1 a :Champ,
+        :Segment ;
+    :aReponse :pg5132_seg1_rep24,
+        :pg5132_seg1_rep429,
+        :pg5132_seg1_rep91 ;
+    :index 1 ;
+    :selection true .
+
+:pg5132_seg1_rep24 a :Reponse ;
+    :__protege_display_name "pg5132_seg1_rep24 | V" ;
+    :correct true ;
+    :html "taken" ;
+    :id "rep24" ;
+    :index -1 .
+
+:pg5132_seg1_rep429 a :Reponse ;
+    :__protege_display_name "pg5132_seg1_rep429 | F" ;
+    :correct false ;
+    :html "taking" ;
+    :id "rep429" ;
+    :index -1 .
+
+:pg5132_seg1_rep91 a :Reponse ;
+    :__protege_display_name "pg5132_seg1_rep91 | F" ;
+    :correct false ;
+    :html "take" ;
+    :id "rep91" ;
+    :index -1 .
+
+:pg5132_seg2 a :Segment ;
+    :index 2 ;
+    :text """ to Court.
+    """ .
+
 :pg5136_rep150 a :Reponse ;
     :__protege_display_name "pg5136_rep150 | F" ;
     :commentaireSugg """<div id="divSugg1" onclick="SPE_clicDansBulle(event,'divSugg1')"><p><br> </p>
@@ -3065,6 +3638,9 @@
         owl:NamedIndividual ;
     rdfs:label "Deuxième tâche" ;
     :__protege_display_name "01 | pg6180 | Deuxième tâche" ;
+    :aSegment :pg6180_seg0,
+        :pg6180_seg1,
+        :pg6180_seg2 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -3101,6 +3677,36 @@
     :titre "Deuxième tâche" ;
     rdfs:subClassOf :act56672 .
 
+:pg6180_seg0 a :Segment ;
+    :index 0 ;
+    :text "<br>" .
+
+:pg6180_seg1 a :Champ,
+        :Segment ;
+    :aReponse :pg6180_seg1_rep269,
+        :pg6180_seg1_rep430 ;
+    :index 1 ;
+    :selection true .
+
+:pg6180_seg1_rep269 a :Reponse ;
+    :__protege_display_name "pg6180_seg1_rep269 | F" ;
+    :correct false ;
+    :html "These games " ;
+    :id "rep269" ;
+    :index -1 .
+
+:pg6180_seg1_rep430 a :Reponse ;
+    :__protege_display_name "pg6180_seg1_rep430 | V" ;
+    :correct true ;
+    :html "This game is" ;
+    :id "rep430" ;
+    :index -1 .
+
+:pg6180_seg2 a :Segment ;
+    :index 2 ;
+    :text """ easy.
+    """ .
+
 :pg6329_rep150 a :Reponse ;
     :__protege_display_name "pg6329_rep150 | V" ;
     :correct true ;
@@ -3241,6 +3847,9 @@
         owl:NamedIndividual ;
     rdfs:label "Quatrième tâche (4)" ;
     :__protege_display_name "07 | pg6866 | Quatrième tâche (4)" ;
+    :aSegment :pg6866_seg0,
+        :pg6866_seg1,
+        :pg6866_seg2 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -3296,6 +3905,68 @@
     :titre "Quatrième tâche (4)" ;
     rdfs:subClassOf :act153876 .
 
+:pg6866_seg0 a :Segment ;
+    :index 0 ;
+    :text "<i><b><br></b></i>I<i><b></b></i>" .
+
+:pg6866_seg1 a :Champ,
+        :Segment ;
+    :aReponse :pg6866_seg1_rep117,
+        :pg6866_seg1_rep312,
+        :pg6866_seg1_rep356,
+        :pg6866_seg1_rep577,
+        :pg6866_seg1_rep891,
+        :pg6866_seg1_rep935 ;
+    :index 1 ;
+    :selection false .
+
+:pg6866_seg1_rep117 a :Reponse ;
+    :__protege_display_name "pg6866_seg1_rep117 | V" ;
+    :correct true ;
+    :html "Would do" ;
+    :id "rep117" ;
+    :index -1 .
+
+:pg6866_seg1_rep312 a :Reponse ;
+    :__protege_display_name "pg6866_seg1_rep312 | V" ;
+    :correct true ;
+    :html " 'd do" ;
+    :id "rep312" ;
+    :index -1 .
+
+:pg6866_seg1_rep356 a :Reponse ;
+    :__protege_display_name "pg6866_seg1_rep356 | V" ;
+    :correct true ;
+    :html " Would do" ;
+    :id "rep356" ;
+    :index -1 .
+
+:pg6866_seg1_rep577 a :Reponse ;
+    :__protege_display_name "pg6866_seg1_rep577 | V" ;
+    :correct true ;
+    :html "would do" ;
+    :id "rep577" ;
+    :index -1 .
+
+:pg6866_seg1_rep891 a :Reponse ;
+    :__protege_display_name "pg6866_seg1_rep891 | V" ;
+    :correct true ;
+    :html " would do" ;
+    :id "rep891" ;
+    :index -1 .
+
+:pg6866_seg1_rep935 a :Reponse ;
+    :__protege_display_name "pg6866_seg1_rep935 | V" ;
+    :correct true ;
+    :html "'d do" ;
+    :id "rep935" ;
+    :index -1 .
+
+:pg6866_seg2 a :Segment ;
+    :index 2 ;
+    :text """<i><b> </b></i>medical
+        studies if I could start again.<br>""" .
+
 :pg6917 a :Activite,
         :Cours,
         owl:NamedIndividual ;
@@ -3443,6 +4114,9 @@
         owl:NamedIndividual ;
     rdfs:label "Deuxième tâche" ;
     :__protege_display_name "01 | pg7429 | Deuxième tâche" ;
+    :aSegment :pg7429_seg0,
+        :pg7429_seg1,
+        :pg7429_seg2 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p>Bravo !<br>Vous avez en effet entendu : <br><br><i>John's been given a guitar for his birthday. He's been
@@ -3485,6 +4159,38 @@
     :titre "Deuxième tâche" ;
     rdfs:subClassOf :act759984 .
 
+:pg7429_seg0 a :Segment ;
+    :index 0 ;
+    :text """Choisissez entre les deux formes proposées : <br><br>John has
+        been """ .
+
+:pg7429_seg1 a :Champ,
+        :Segment ;
+    :aReponse :pg7429_seg1_rep24,
+        :pg7429_seg1_rep429 ;
+    :index 1 ;
+    :selection true .
+
+:pg7429_seg1_rep24 a :Reponse ;
+    :__protege_display_name "pg7429_seg1_rep24 | V" ;
+    :correct true ;
+    :html "given" ;
+    :id "rep24" ;
+    :index -1 .
+
+:pg7429_seg1_rep429 a :Reponse ;
+    :__protege_display_name "pg7429_seg1_rep429 | F" ;
+    :correct false ;
+    :html "giving" ;
+    :id "rep429" ;
+    :index -1 .
+
+:pg7429_seg2 a :Segment ;
+    :index 2 ;
+    :text """ a guitar for his birthday. He's been practising with Jim for more than a week and they've finally
+        learnt to play a tune.
+    """ .
+
 :pg7434_rep150 a :Reponse ;
     :__protege_display_name "pg7434_rep150 | F" ;
     :commentaireSugg """<div id="divSugg1" onclick="SPE_clicDansBulle(event,'divSugg1')"><p> </p>
@@ -3517,6 +4223,7 @@
         owl:NamedIndividual ;
     rdfs:label "Troisième tâche" ;
     :__protege_display_name "02 | pg7576 | Troisième tâche" ;
+    :aSegment :pg7576_seg0 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')">Effectivement. Voici les deux paires
         reconstituées que vous pouvez écouter. <br><br>1 It' s Paul's birthday. <br>B He is given a lot of presents.<br><br>Dans
         <i>He is given</i>, on a un présent à la voix passive (voix passive : BE + V au participe passé). Le sujet
@@ -3569,6 +4276,50 @@
     :titre "Troisième tâche" ;
     rdfs:subClassOf :act828642 .
 
+:pg7576_seg0 a :Segment ;
+    :index 0 ;
+    :text """
+        <table style="BACKGROUND: #b5f0c7" width="80%" cellpadding="3" cellspacing="0" valign="top" border="1" bordercolor="">
+            <tr>
+                <td style="FONT-SIZE: 10px" width="60%" valign="top"><img align="center" border="0" src="../media/ecouteur_macao.png" width="23" height="32" id="MosImg32"></td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="top"><b>1</b> 
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV546', 'ecran431.swf', '30', '25', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', 'vertical-align: middle', ''));</script>
+                     It' s Paul's birthday.
+                </td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="top"><b>2</b> 
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV439', 'ecran432.swf', '30', '25', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', 'vertical-align: middle', ''));</script>
+                     The teacher has put on his Father Christmas suit. 
+                </td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="top"><b>A</b> 
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV5393', 'ecran433.swf', '30', '25', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', 'vertical-align: middle', ''));</script>
+                     
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV15', 'mot43_3.swf', '110', '19', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', '', ''));</script>
+                     a lot of presents.
+                </td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="top"><b>B</b> 
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV7781', 'ecran434.swf', '30', '25', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', 'vertical-align: middle', ''));</script>
+                     
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV59', 'mot43_4.swf', '110', '19', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', '', ''));</script>
+                     a lot of presents. 
+                </td>
+            </tr>
+        </table>
+        <p>Maintenant, de façon à former deux paires plausibles, associez les énoncés, en sélectionnant A ou B dans les
+            listes déroulantes.<br><br>It' s Paul's birthday. <br><select class="STY_selectTAT" id="champTrou1" onchange="actionDetecteSelect()">
+                <option value="_INIT_TROU"> </option>
+            </select><br><br>The teacher has put on his Father Christmas suit. <br><select class="STY_selectTAT" id="champTrou2" onchange="actionDetecteSelect()">
+                <option value="_INIT_TROU"> </option>
+            </select></p>
+    """ .
+
 :pg7628 a :Activite,
         :Cours,
         owl:NamedIndividual ;
@@ -3661,6 +4412,9 @@
         owl:NamedIndividual ;
     rdfs:label "Quatrième tâche" ;
     :__protege_display_name "03 | pg7682 | Quatrième tâche" ;
+    :aSegment :pg7682_seg0,
+        :pg7682_seg1,
+        :pg7682_seg2 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -3721,6 +4475,53 @@
     :titre "Quatrième tâche" ;
     rdfs:subClassOf :act704962 .
 
+:pg7682_seg0 a :Segment ;
+    :index 0 ;
+    :text "I'm so thirsty, I  " .
+
+:pg7682_seg1 a :Champ,
+        :Segment ;
+    :aReponse :pg7682_seg1_rep101,
+        :pg7682_seg1_rep113,
+        :pg7682_seg1_rep117,
+        :pg7682_seg1_rep239 ;
+    :index 1 ;
+    :selection false .
+
+:pg7682_seg1_rep101 a :Reponse ;
+    :__protege_display_name "pg7682_seg1_rep101 | V" ;
+    :correct true ;
+    :html "would drink" ;
+    :id "rep101" ;
+    :index -1 .
+
+:pg7682_seg1_rep113 a :Reponse ;
+    :__protege_display_name "pg7682_seg1_rep113 | V" ;
+    :correct true ;
+    :html " would drink" ;
+    :id "rep113" ;
+    :index -1 .
+
+:pg7682_seg1_rep117 a :Reponse ;
+    :__protege_display_name "pg7682_seg1_rep117 | V" ;
+    :correct true ;
+    :html "'d drink" ;
+    :id "rep117" ;
+    :index -1 .
+
+:pg7682_seg1_rep239 a :Reponse ;
+    :__protege_display_name "pg7682_seg1_rep239 | V" ;
+    :correct true ;
+    :html " 'd drink" ;
+    :id "rep239" ;
+    :index -1 .
+
+:pg7682_seg2 a :Segment ;
+    :index 2 ;
+    :text """ a
+        whole bottle of fresh water if I could.
+    """ .
+
 :pg7973_rep150 a :Reponse ;
     :__protege_display_name "pg7973_rep150 | V" ;
     :correct true ;
@@ -3864,6 +4665,7 @@
         owl:NamedIndividual ;
     rdfs:label "Première tâche" ;
     :__protege_display_name "00 | pg8027 | Première tâche" ;
+    :aSegment :pg8027_seg0 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')">Effectivement. Voici les deux dialogues
         reconstitués que vous pouvez réécouter.<br><br>1 Why does Lucy have so many pills to take? <br>B She has been
         seen by the doctor for her allergy.<br><br>Dans <i>She has been seen</i>, on a un <a class="STY_lienDansZoneComt" href="javascript:parent.SCO_ouvrirDoc('doc28886','htm')"><i>present
@@ -3926,11 +4728,59 @@
     :titre "Première tâche" ;
     rdfs:subClassOf :act828642 .
 
+:pg8027_seg0 a :Segment ;
+    :index 0 ;
+    :text """
+        <table style="BACKGROUND: #b5f0c7" width="80%" cellpadding="3" cellspacing="0" valign="top" border="1" bordercolor="">
+            <tr>
+                <td style="FONT-SIZE: 10px" width="60%" valign="top"><img align="center" border="0" src="../media/ecouteur_macao.png" width="23" height="32" id="MosImg32"></td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="top"><b>1</b> 
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV6364', 'ecran411.swf', '30', '25', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', 'vertical-align: middle', ''));</script>
+                     Why does Lucy have so many pills to take?
+                </td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="top"><b>2</b> 
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV1264', 'ecran412.swf', '30', '25', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', 'vertical-align: middle', ''));</script>
+                     Why isn't Ella with you?
+                </td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="middle"><b>A
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV364', 'ecran413.swf', '30', '25', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', 'vertical-align: middle', ''));</script>
+                </b> 
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV532', 'mot41_3.swf', '110', '19', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', '', ''));</script>
+                     by the doctor for her allergy.
+                </td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="top"><b>B
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV0', 'ecran414.swf', '30', '25', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', 'vertical-align: middle', ''));</script>
+                </b> 
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV53', 'mot41_3.swf', '110', '19', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', '', ''));</script>
+                    by the doctor for her allergy.
+                </td>
+            </tr>
+        </table>
+        <p>Maintenant, de façon à former deux dialogues plausibles, associez chaque question à une réponse en
+            sélectionnant A ou B dans les listes déroulantes.<br><br>Why does Lucy have so many pills to
+            take?<br><select class="STY_selectTAT" id="champTrou1" onchange="actionDetecteSelect()">
+                <option value="_INIT_TROU"> </option>
+            </select><br><br>Why isn't Ella with you?<br><select class="STY_selectTAT" id="champTrou2" onchange="actionDetecteSelect()">
+                <option value="_INIT_TROU"> </option>
+            </select></p>
+    """ .
+
 :pg8400 a :Activite,
         :ExerciceTAT,
         owl:NamedIndividual ;
     rdfs:label "Deuxième tâche" ;
     :__protege_display_name "01 | pg8400 | Deuxième tâche" ;
+    :aSegment :pg8400_seg0,
+        :pg8400_seg1,
+        :pg8400_seg2 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -3991,6 +4841,36 @@
     :titre "Deuxième tâche" ;
     rdfs:subClassOf :act704962 .
 
+:pg8400_seg0 a :Segment ;
+    :index 0 ;
+    :text "You must phone Mr Williams if you have a problem. He's " .
+
+:pg8400_seg1 a :Champ,
+        :Segment ;
+    :aReponse :pg8400_seg1_rep117,
+        :pg8400_seg1_rep5 ;
+    :index 1 ;
+    :selection false .
+
+:pg8400_seg1_rep117 a :Reponse ;
+    :__protege_display_name "pg8400_seg1_rep117 | V" ;
+    :correct true ;
+    :html "the" ;
+    :id "rep117" ;
+    :index -1 .
+
+:pg8400_seg1_rep5 a :Reponse ;
+    :__protege_display_name "pg8400_seg1_rep5 | V" ;
+    :correct true ;
+    :html " the" ;
+    :id "rep5" ;
+    :index -1 .
+
+:pg8400_seg2 a :Segment ;
+    :index 2 ;
+    :text """ boss.
+    """ .
+
 :pg8601_rep150 a :Reponse ;
     :__protege_display_name "pg8601_rep150 | V" ;
     :commentaireSugg """<div id="divSugg2" onclick="SPE_clicDansBulle(event,'divSugg2')">Oui, <b><i>could </i></b>indique que celui qui
@@ -4240,6 +5120,9 @@
         owl:NamedIndividual ;
     rdfs:label "Quatrième tâche (2)" ;
     :__protege_display_name "04 | pg910 | Quatrième tâche (2)" ;
+    :aSegment :pg910_seg0,
+        :pg910_seg1,
+        :pg910_seg2 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -4279,6 +5162,36 @@
     :titre "Quatrième tâche (2)" ;
     rdfs:subClassOf :act759984 .
 
+:pg910_seg0 a :Segment ;
+    :index 0 ;
+    :text "Choisissez entre les deux formes proposées : <br><br>What " .
+
+:pg910_seg1 a :Champ,
+        :Segment ;
+    :aReponse :pg910_seg1_rep24,
+        :pg910_seg1_rep429 ;
+    :index 1 ;
+    :selection true .
+
+:pg910_seg1_rep24 a :Reponse ;
+    :__protege_display_name "pg910_seg1_rep24 | F" ;
+    :correct false ;
+    :html "if" ;
+    :id "rep24" ;
+    :index -1 .
+
+:pg910_seg1_rep429 a :Reponse ;
+    :__protege_display_name "pg910_seg1_rep429 | V" ;
+    :correct true ;
+    :html "have" ;
+    :id "rep429" ;
+    :index -1 .
+
+:pg910_seg2 a :Segment ;
+    :index 2 ;
+    :text """ the suspects proven, their innocence or their guilt?
+    """ .
+
 :pg9152_rep511 a :Reponse ;
     :__protege_display_name "pg9152_rep511 | F" ;
     :commentaireSugg """<div id="divSugg1" onclick="SPE_clicDansBulle(event,'divSugg1')"><p> </p>
@@ -4425,6 +5338,9 @@
         owl:NamedIndividual ;
     rdfs:label "Quatrième tâche (3)" ;
     :__protege_display_name "05 | pg9414 | Quatrième tâche (3)" ;
+    :aSegment :pg9414_seg0,
+        :pg9414_seg1,
+        :pg9414_seg2 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -4465,6 +5381,36 @@
     :titre "Quatrième tâche (3)" ;
     rdfs:subClassOf :act759984 .
 
+:pg9414_seg0 a :Segment ;
+    :index 0 ;
+    :text "Choisissez entre les deux formes proposées : <br><br>What " .
+
+:pg9414_seg1 a :Champ,
+        :Segment ;
+    :aReponse :pg9414_seg1_rep566,
+        :pg9414_seg1_rep762 ;
+    :index 1 ;
+    :selection true .
+
+:pg9414_seg1_rep566 a :Reponse ;
+    :__protege_display_name "pg9414_seg1_rep566 | F" ;
+    :correct false ;
+    :html "have" ;
+    :id "rep566" ;
+    :index -1 .
+
+:pg9414_seg1_rep762 a :Reponse ;
+    :__protege_display_name "pg9414_seg1_rep762 | F" ;
+    :correct false ;
+    :html "if" ;
+    :id "rep762" ;
+    :index -1 .
+
+:pg9414_seg2 a :Segment ;
+    :index 2 ;
+    :text """ the suspect is proven innocent? Do we have other possibilities?
+    """ .
+
 :pg9439 a :Activite,
         :Cours,
         owl:NamedIndividual ;
@@ -4513,6 +5459,9 @@
         owl:NamedIndividual ;
     rdfs:label "Quatrième tâche" ;
     :__protege_display_name "03 | pg9615 | Quatrième tâche" ;
+    :aSegment :pg9615_seg0,
+        :pg9615_seg1,
+        :pg9615_seg2 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -4560,6 +5509,44 @@
     :titre "Quatrième tâche" ;
     rdfs:subClassOf :act56672 .
 
+:pg9615_seg0 a :Segment ;
+    :index 0 ;
+    :text "<br>" .
+
+:pg9615_seg1 a :Champ,
+        :Segment ;
+    :aReponse :pg9615_seg1_rep269,
+        :pg9615_seg1_rep430,
+        :pg9615_seg1_rep527 ;
+    :index 1 ;
+    :selection true .
+
+:pg9615_seg1_rep269 a :Reponse ;
+    :__protege_display_name "pg9615_seg1_rep269 | V" ;
+    :correct true ;
+    :html "My mother's a" ;
+    :id "rep269" ;
+    :index -1 .
+
+:pg9615_seg1_rep430 a :Reponse ;
+    :__protege_display_name "pg9615_seg1_rep430 | F" ;
+    :correct false ;
+    :html "My mothers are" ;
+    :id "rep430" ;
+    :index -1 .
+
+:pg9615_seg1_rep527 a :Reponse ;
+    :__protege_display_name "pg9615_seg1_rep527 | F" ;
+    :correct false ;
+    :html "My mothers a " ;
+    :id "rep527" ;
+    :index -1 .
+
+:pg9615_seg2 a :Segment ;
+    :index 2 ;
+    :text """ a good cook.
+    """ .
+
 :pg9719 a :Activite,
         :ExerciceQM,
         owl:NamedIndividual ;
diff --git a/tetras_extraction/result/macao_3/macao_full.ttl b/tetras_extraction/result/macao_3/macao_full.ttl
index 8c22c237004c80aa0e3750513dd4fc7e0ce99d44..bef0b1ff0289cfe0c422deb5c9ef5ddc050769d6 100644
--- a/tetras_extraction/result/macao_3/macao_full.ttl
+++ b/tetras_extraction/result/macao_3/macao_full.ttl
@@ -27,6 +27,10 @@
     rdfs:domain :Exercice ;
     rdfs:range :Reponse .
 
+:aSegment a owl:ObjectProperty ;
+    rdfs:domain :ExerciceTAT ;
+    rdfs:range :Segment .
+
 :cheminFichier a owl:DatatypeProperty ;
     rdfs:domain :MacaoRessource ;
     rdfs:range xsd:anyURI .
@@ -119,6 +123,47 @@
     rdfs:domain :Activite ;
     rdfs:range :MacaoRessource .
 
+:pg1023_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text """Choisissez entre les deux formes proposées : <br><br>Now that the Prime
+        Minister has  """ .
+
+:pg1023_seg1 a :Champ,
+        :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :aReponse :pg1023_seg1_rep24,
+        :pg1023_seg1_rep429 ;
+    :index 1 ;
+    :selection true .
+
+:pg1023_seg1_rep24 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg1023_seg1_rep24 | V" ;
+    :correct true ;
+    :html "shaken" ;
+    :id "rep24" ;
+    :index -1 .
+
+:pg1023_seg1_rep429 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg1023_seg1_rep429 | F" ;
+    :correct false ;
+    :html "shaking" ;
+    :id "rep429" ;
+    :index -1 .
+
+:pg1023_seg2 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 2 ;
+    :text """ the President's hand, she is going back to her car.
+    """ .
+
 :pg1181_rep150 a :MacaoContenu,
         :MacaoObject,
         :Reponse ;
@@ -421,6 +466,32 @@
     :index 3 ;
     rdfs:subClassOf :pg186 .
 
+:pg1888_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text """
+        <p><i><b>
+            <table width="70%" bgcolor="#00c0c0" cellpadding="3" cellspacing="0" valign="top" border="0">
+                <tr>
+                    <td style="BACKGROUND: #b5f0c7; WIDTH: 20%" width="40%" valign="middle"><img align="center" border="0" src="../media/ecouteur_macao.png" id="MosImg32"></td>
+                    <td style="BACKGROUND: #b5f0c7" valign="middle">
+                        <script type="text/javascript">ajDocW(PF_clipAV('clipAV2861', 'ecran191.swf', '30', '25', 'false', 'Flash', '', '', 'quality:high;wmode:transparent', '', ''));</script>
+                    </td>
+                </tr>
+            </table>
+        </b></i></p>
+        <p><i><b></b></i><i><b><input type="text" onkeyup="actionDetecteTrou()" onfocus="focusChamp(this)" onkeypress="return tapeDansChamp(event)" onkeydown="return tapeDansChamp(event)" class="STY_champTAT" id="champTrou1"> </b></i>Zurich?<br><b><i> </i></b>
+        </p><table width="70%" bgcolor="#00c0c0" cellpadding="3" cellspacing="0" valign="top" border="0">
+            <tr>
+                <td style="BACKGROUND: #b5f0c7; WIDTH: 20%" width="40%" valign="middle"><img align="center" border="0" src="../media/ecouteur_macao.png" id="MosImg320"></td>
+                <td style="BACKGROUND: #b5f0c7" valign="middle">
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV2769', 'ecran192.swf', '30', '25', 'false', 'Flash', '', '', 'quality:high;wmode:transparent', '', ''));</script>
+                </td>
+            </tr>
+        </table>
+        <br><i><b><input type="text" onkeyup="actionDetecteTrou()" onfocus="focusChamp(this)" onkeypress="return tapeDansChamp(event)" onkeydown="return tapeDansChamp(event)" class="STY_champTAT" id="champTrou2"> </b></i>Zorba?""" .
+
 :pg1894_rep36 a :MacaoContenu,
         :MacaoObject,
         :Reponse ;
@@ -542,6 +613,32 @@
     :index 1 ;
     rdfs:subClassOf :pg1894 .
 
+:pg1919_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text """<br>
+        <table cellpadding="3" cellspacing="0" valign="top" border="0">
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="middle">Enoncés</td>
+                <td style="FONT-SIZE: 10px" valign="middle">Contextes</td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="middle">He drank half the bottle of water.</td>
+                <td style="FONT-SIZE: 10px" valign="middle"><select class="STY_selectTAT" id="champTrou1" onchange="actionDetecteSelect()">
+                    <option value="_INIT_TROU"> </option>
+                </select></td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="middle">He drank half a bottle of water.</td>
+                <td style="FONT-SIZE: 10px" valign="middle"><select class="STY_selectTAT" id="champTrou2" onchange="actionDetecteSelect()">
+                    <option value="_INIT_TROU"> </option>
+                </select></td>
+            </tr>
+        </table>
+        <br><br> <br><br> 
+    """ .
+
 :pg191_rep150 a :MacaoContenu,
         :MacaoObject,
         :Reponse ;
@@ -573,6 +670,247 @@
     :index 0 ;
     rdfs:subClassOf :pg191 .
 
+:pg2429_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text """<br>You don't find many independent companies in the cinema
+        industries.<br>Most of the time, """ .
+
+:pg2429_seg1 a :Champ,
+        :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :aReponse :pg2429_seg1_rep247,
+        :pg2429_seg1_rep471 ;
+    :index 1 ;
+    :selection true .
+
+:pg2429_seg1_rep247 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg2429_seg1_rep247 | F" ;
+    :correct false ;
+    :html "there are" ;
+    :id "rep247" ;
+    :index -1 .
+
+:pg2429_seg1_rep471 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg2429_seg1_rep471 | V" ;
+    :correct true ;
+    :html "they are" ;
+    :id "rep471" ;
+    :index -1 .
+
+:pg2429_seg2 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 2 ;
+    :text """ confronted by financial difficulties.
+    """ .
+
+:pg2493_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text """<br>
+        <table cellpadding="3" cellspacing="0" valign="top" border="0">
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="middle">Enoncés</td>
+                <td style="FONT-SIZE: 10px" valign="middle">Contextes</td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="middle">Here's a road.</td>
+                <td style="FONT-SIZE: 10px" valign="middle"><select class="STY_selectTAT" id="champTrou1" onchange="actionDetecteSelect()">
+                    <option value="_INIT_TROU"> </option>
+                </select></td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="middle">Here's the road.</td>
+                <td style="FONT-SIZE: 10px" valign="middle"><select class="STY_selectTAT" id="champTrou2" onchange="actionDetecteSelect()">
+                    <option value="_INIT_TROU"> </option>
+                </select></td>
+            </tr>
+        </table>
+        <br><br> <br><br> 
+    """ .
+
+:pg2759_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text "<br>" .
+
+:pg2759_seg1 a :Champ,
+        :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :aReponse :pg2759_seg1_rep269,
+        :pg2759_seg1_rep430 ;
+    :index 1 ;
+    :selection true .
+
+:pg2759_seg1_rep269 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg2759_seg1_rep269 | F" ;
+    :correct false ;
+    :html "He has decided" ;
+    :id "rep269" ;
+    :index -1 .
+
+:pg2759_seg1_rep430 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg2759_seg1_rep430 | V" ;
+    :correct true ;
+    :html "He is decided" ;
+    :id "rep430" ;
+    :index -1 .
+
+:pg2759_seg2 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 2 ;
+    :text " in his ways.<br><br><br>" .
+
+:pg2759_seg3 a :Champ,
+        :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :aReponse :pg2759_seg3_rep231,
+        :pg2759_seg3_rep655 ;
+    :index 3 ;
+    :selection true .
+
+:pg2759_seg3_rep231 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg2759_seg3_rep231 | V" ;
+    :correct true ;
+    :html "He has decided" ;
+    :id "rep231" ;
+    :index -1 .
+
+:pg2759_seg3_rep655 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg2759_seg3_rep655 | F" ;
+    :correct false ;
+    :html "He is decided" ;
+    :id "rep655" ;
+    :index -1 .
+
+:pg2759_seg4 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 4 ;
+    :text """ not to come tomorrow.
+    """ .
+
+:pg3092_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text "What " .
+
+:pg3092_seg1 a :Champ,
+        :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :aReponse :pg3092_seg1_rep101,
+        :pg3092_seg1_rep117,
+        :pg3092_seg1_rep135,
+        :pg3092_seg1_rep444,
+        :pg3092_seg1_rep469,
+        :pg3092_seg1_rep483,
+        :pg3092_seg1_rep831,
+        :pg3092_seg1_rep843 ;
+    :index 1 ;
+    :selection false .
+
+:pg3092_seg1_rep101 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg3092_seg1_rep101 | V" ;
+    :correct true ;
+    :html "is Sarah" ;
+    :id "rep101" ;
+    :index -1 .
+
+:pg3092_seg1_rep117 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg3092_seg1_rep117 | V" ;
+    :correct true ;
+    :html "'s Sarah" ;
+    :id "rep117" ;
+    :index -1 .
+
+:pg3092_seg1_rep135 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg3092_seg1_rep135 | V" ;
+    :correct true ;
+    :html " is Sarah" ;
+    :id "rep135" ;
+    :index -1 .
+
+:pg3092_seg1_rep444 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg3092_seg1_rep444 | V" ;
+    :correct true ;
+    :html " 's Sarah" ;
+    :id "rep444" ;
+    :index -1 .
+
+:pg3092_seg1_rep469 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg3092_seg1_rep469 | V" ;
+    :correct true ;
+    :html " is Sara" ;
+    :id "rep469" ;
+    :index -1 .
+
+:pg3092_seg1_rep483 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg3092_seg1_rep483 | V" ;
+    :correct true ;
+    :html " 's Sara" ;
+    :id "rep483" ;
+    :index -1 .
+
+:pg3092_seg1_rep831 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg3092_seg1_rep831 | V" ;
+    :correct true ;
+    :html "'s Sara" ;
+    :id "rep831" ;
+    :index -1 .
+
+:pg3092_seg1_rep843 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg3092_seg1_rep843 | V" ;
+    :correct true ;
+    :html "is Sara" ;
+    :id "rep843" ;
+    :index -1 .
+
+:pg3092_seg2 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 2 ;
+    :text """ cooking?
+        It smells so nice!
+    """ .
+
 :pg3209_rep150 a :MacaoContenu,
         :MacaoObject,
         :Reponse ;
@@ -691,6 +1029,120 @@
     :index 4 ;
     rdfs:subClassOf :pg3531 .
 
+:pg3579_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text """<br>
+        <table cellpadding="3" cellspacing="0" valign="top" border="0">
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="middle">Enoncés</td>
+                <td style="FONT-SIZE: 10px" valign="middle">Contextes</td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="middle">He needs a pen.</td>
+                <td style="FONT-SIZE: 10px" valign="middle"><select class="STY_selectTAT" id="champTrou1" onchange="actionDetecteSelect()">
+                    <option value="_INIT_TROU"> </option>
+                </select></td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="middle">He needs the pen.</td>
+                <td style="FONT-SIZE: 10px" valign="middle"><select class="STY_selectTAT" id="champTrou2" onchange="actionDetecteSelect()">
+                    <option value="_INIT_TROU"> </option>
+                </select></td>
+            </tr>
+        </table>
+        <br><br> <br><br> 
+    """ .
+
+:pg3600_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text "" .
+
+:pg3600_seg1 a :Champ,
+        :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :aReponse :pg3600_seg1_rep101,
+        :pg3600_seg1_rep117 ;
+    :index 1 ;
+    :selection false .
+
+:pg3600_seg1_rep101 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg3600_seg1_rep101 | V" ;
+    :correct true ;
+    :html "There are" ;
+    :id "rep101" ;
+    :index -1 .
+
+:pg3600_seg1_rep117 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg3600_seg1_rep117 | V" ;
+    :correct true ;
+    :html "there are" ;
+    :id "rep117" ;
+    :index -1 .
+
+:pg3600_seg2 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 2 ;
+    :text """ two people
+        waiting outside.
+    """ .
+
+:pg3628_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text """
+        <table style="BACKGROUND: #b5f0c7" width="80%" cellpadding="3" cellspacing="0" valign="top" border="1" bordercolor="">
+            <tr>
+                <td style="FONT-SIZE: 10px" width="60%" valign="top"><img align="center" border="0" src="../media/ecouteur_macao.png" width="23" height="32" id="MosImg32"></td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="top"><b>1</b> 
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV4748', 'ecran421.swf', '30', '25', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', 'vertical-align: middle', ''));</script>
+                     Tell us what you have found about the suspect.
+                </td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="top"><b>2</b> 
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV1221', 'ecran422.swf', '30', '25', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', 'vertical-align: middle', ''));</script>
+                     Where is the suspect?
+                </td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="top"><b>A</b> 
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV3044', 'ecran423.swf', '30', '25', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', 'vertical-align: middle', ''));</script>
+                     
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV87', 'mot42_3.swf', '110', '19', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', '', ''));</script>
+                     several times with a rat.
+                </td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="top"><b>B</b> 
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV7913', 'ecran424.swf', '30', '25', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', 'vertical-align: middle', ''));</script>
+                      
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV46', 'mot42_4.swf', '110', '19', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', '', ''));</script>
+                     by the judge.
+                </td>
+            </tr>
+        </table>
+        <p>Maintenant, de façon à former deux dialogues plausibles, associez chaque question à une réponse en
+            sélectionnant A ou B dans les listes déroulantes.<br><br>Tell us what you have found about the
+            suspect.<br><select class="STY_selectTAT" id="champTrou1" onchange="actionDetecteSelect()">
+                <option value="_INIT_TROU"> </option>
+            </select><br><br>Where is the suspect?<br><select class="STY_selectTAT" id="champTrou2" onchange="actionDetecteSelect()">
+                <option value="_INIT_TROU"> </option>
+            </select></p>
+    """ .
+
 :pg3746_rep150 a :MacaoContenu,
         :MacaoObject,
         :Reponse ;
@@ -727,6 +1179,67 @@
     :index 0 ;
     rdfs:subClassOf :pg3746 .
 
+:pg3862_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text "Now he " .
+
+:pg3862_seg1 a :Champ,
+        :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :aReponse :pg3862_seg1_rep101,
+        :pg3862_seg1_rep117,
+        :pg3862_seg1_rep227,
+        :pg3862_seg1_rep309 ;
+    :index 1 ;
+    :selection false .
+
+:pg3862_seg1_rep101 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg3862_seg1_rep101 | V" ;
+    :correct true ;
+    :html "has said" ;
+    :id "rep101" ;
+    :index -1 .
+
+:pg3862_seg1_rep117 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg3862_seg1_rep117 | V" ;
+    :correct true ;
+    :html "'s said" ;
+    :id "rep117" ;
+    :index -1 .
+
+:pg3862_seg1_rep227 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg3862_seg1_rep227 | V" ;
+    :correct true ;
+    :html " 's said" ;
+    :id "rep227" ;
+    :index -1 .
+
+:pg3862_seg1_rep309 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg3862_seg1_rep309 | V" ;
+    :correct true ;
+    :html " has said" ;
+    :id "rep309" ;
+    :index -1 .
+
+:pg3862_seg2 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 2 ;
+    :text """ he
+        doesn't want to come, it's too late!
+    """ .
+
 :pg3870_rep150 a :MacaoContenu,
         :MacaoObject,
         :Reponse ;
@@ -854,6 +1367,56 @@
     :index 4 ;
     rdfs:subClassOf :pg4031 .
 
+:pg4141_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text "<br>" .
+
+:pg4141_seg1 a :Champ,
+        :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :aReponse :pg4141_seg1_rep269,
+        :pg4141_seg1_rep430,
+        :pg4141_seg1_rep527 ;
+    :index 1 ;
+    :selection true .
+
+:pg4141_seg1_rep269 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg4141_seg1_rep269 | F" ;
+    :correct false ;
+    :html "The player's a" ;
+    :id "rep269" ;
+    :index -1 .
+
+:pg4141_seg1_rep430 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg4141_seg1_rep430 | F" ;
+    :correct false ;
+    :html "The players a" ;
+    :id "rep430" ;
+    :index -1 .
+
+:pg4141_seg1_rep527 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg4141_seg1_rep527 | V" ;
+    :correct true ;
+    :html "The players are" ;
+    :id "rep527" ;
+    :index -1 .
+
+:pg4141_seg2 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 2 ;
+    :text """ talking with the referee.
+    """ .
+
 :pg4192_rep150 a :MacaoContenu,
         :MacaoObject,
         :Reponse ;
@@ -1121,6 +1684,67 @@
     :index 4 ;
     rdfs:subClassOf :pg4396 .
 
+:pg4487_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text """Peter and Mary have moved to Scotland. Their furniture has been carried
+        to Glasgow by road, and now they """ .
+
+:pg4487_seg1 a :Champ,
+        :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :aReponse :pg4487_seg1_rep117,
+        :pg4487_seg1_rep577,
+        :pg4487_seg1_rep749,
+        :pg4487_seg1_rep982 ;
+    :index 1 ;
+    :selection false .
+
+:pg4487_seg1_rep117 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg4487_seg1_rep117 | V" ;
+    :correct true ;
+    :html "'ve finished" ;
+    :id "rep117" ;
+    :index -1 .
+
+:pg4487_seg1_rep577 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg4487_seg1_rep577 | V" ;
+    :correct true ;
+    :html "have finished" ;
+    :id "rep577" ;
+    :index -1 .
+
+:pg4487_seg1_rep749 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg4487_seg1_rep749 | V" ;
+    :correct true ;
+    :html " have finished" ;
+    :id "rep749" ;
+    :index -1 .
+
+:pg4487_seg1_rep982 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg4487_seg1_rep982 | V" ;
+    :correct true ;
+    :html " 've finished" ;
+    :id "rep982" ;
+    :index -1 .
+
+:pg4487_seg2 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 2 ;
+    :text """
+        putting everything in its place.<br>""" .
+
 :pg4797_rep150 a :MacaoContenu,
         :MacaoObject,
         :Reponse ;
@@ -1153,6 +1777,57 @@
     :index 0 ;
     rdfs:subClassOf :pg4797 .
 
+:pg5132_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text """Choisissez entre les formes proposées : <br><br>If the school refuses to
+        take more children, the governors could be """ .
+
+:pg5132_seg1 a :Champ,
+        :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :aReponse :pg5132_seg1_rep24,
+        :pg5132_seg1_rep429,
+        :pg5132_seg1_rep91 ;
+    :index 1 ;
+    :selection true .
+
+:pg5132_seg1_rep24 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg5132_seg1_rep24 | V" ;
+    :correct true ;
+    :html "taken" ;
+    :id "rep24" ;
+    :index -1 .
+
+:pg5132_seg1_rep429 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg5132_seg1_rep429 | F" ;
+    :correct false ;
+    :html "taking" ;
+    :id "rep429" ;
+    :index -1 .
+
+:pg5132_seg1_rep91 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg5132_seg1_rep91 | F" ;
+    :correct false ;
+    :html "take" ;
+    :id "rep91" ;
+    :index -1 .
+
+:pg5132_seg2 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 2 ;
+    :text """ to Court.
+    """ .
+
 :pg5136_rep150 a :MacaoContenu,
         :MacaoObject,
         :Reponse ;
@@ -1271,6 +1946,46 @@
     :index 0 ;
     rdfs:subClassOf :pg5836 .
 
+:pg6180_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text "<br>" .
+
+:pg6180_seg1 a :Champ,
+        :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :aReponse :pg6180_seg1_rep269,
+        :pg6180_seg1_rep430 ;
+    :index 1 ;
+    :selection true .
+
+:pg6180_seg1_rep269 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg6180_seg1_rep269 | F" ;
+    :correct false ;
+    :html "These games " ;
+    :id "rep269" ;
+    :index -1 .
+
+:pg6180_seg1_rep430 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg6180_seg1_rep430 | V" ;
+    :correct true ;
+    :html "This game is" ;
+    :id "rep430" ;
+    :index -1 .
+
+:pg6180_seg2 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 2 ;
+    :text """ easy.
+    """ .
+
 :pg6329_rep150 a :MacaoContenu,
         :MacaoObject,
         :Reponse ;
@@ -1304,6 +2019,86 @@
     :index 0 ;
     rdfs:subClassOf :pg6329 .
 
+:pg6866_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text "<i><b><br></b></i>I<i><b></b></i>" .
+
+:pg6866_seg1 a :Champ,
+        :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :aReponse :pg6866_seg1_rep117,
+        :pg6866_seg1_rep312,
+        :pg6866_seg1_rep356,
+        :pg6866_seg1_rep577,
+        :pg6866_seg1_rep891,
+        :pg6866_seg1_rep935 ;
+    :index 1 ;
+    :selection false .
+
+:pg6866_seg1_rep117 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg6866_seg1_rep117 | V" ;
+    :correct true ;
+    :html "Would do" ;
+    :id "rep117" ;
+    :index -1 .
+
+:pg6866_seg1_rep312 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg6866_seg1_rep312 | V" ;
+    :correct true ;
+    :html " 'd do" ;
+    :id "rep312" ;
+    :index -1 .
+
+:pg6866_seg1_rep356 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg6866_seg1_rep356 | V" ;
+    :correct true ;
+    :html " Would do" ;
+    :id "rep356" ;
+    :index -1 .
+
+:pg6866_seg1_rep577 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg6866_seg1_rep577 | V" ;
+    :correct true ;
+    :html "would do" ;
+    :id "rep577" ;
+    :index -1 .
+
+:pg6866_seg1_rep891 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg6866_seg1_rep891 | V" ;
+    :correct true ;
+    :html " would do" ;
+    :id "rep891" ;
+    :index -1 .
+
+:pg6866_seg1_rep935 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg6866_seg1_rep935 | V" ;
+    :correct true ;
+    :html "'d do" ;
+    :id "rep935" ;
+    :index -1 .
+
+:pg6866_seg2 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 2 ;
+    :text """<i><b> </b></i>medical
+        studies if I could start again.<br>""" .
+
 :pg7035_rep150 a :MacaoContenu,
         :MacaoObject,
         :Reponse ;
@@ -1370,6 +2165,48 @@
     :index 0 ;
     rdfs:subClassOf :pg7390 .
 
+:pg7429_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text """Choisissez entre les deux formes proposées : <br><br>John has
+        been """ .
+
+:pg7429_seg1 a :Champ,
+        :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :aReponse :pg7429_seg1_rep24,
+        :pg7429_seg1_rep429 ;
+    :index 1 ;
+    :selection true .
+
+:pg7429_seg1_rep24 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg7429_seg1_rep24 | V" ;
+    :correct true ;
+    :html "given" ;
+    :id "rep24" ;
+    :index -1 .
+
+:pg7429_seg1_rep429 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg7429_seg1_rep429 | F" ;
+    :correct false ;
+    :html "giving" ;
+    :id "rep429" ;
+    :index -1 .
+
+:pg7429_seg2 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 2 ;
+    :text """ a guitar for his birthday. He's been practising with Jim for more than a week and they've finally
+        learnt to play a tune.
+    """ .
+
 :pg7434_rep150 a :MacaoContenu,
         :MacaoObject,
         :Reponse ;
@@ -1401,6 +2238,52 @@
     :index 0 ;
     rdfs:subClassOf :pg7434 .
 
+:pg7576_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text """
+        <table style="BACKGROUND: #b5f0c7" width="80%" cellpadding="3" cellspacing="0" valign="top" border="1" bordercolor="">
+            <tr>
+                <td style="FONT-SIZE: 10px" width="60%" valign="top"><img align="center" border="0" src="../media/ecouteur_macao.png" width="23" height="32" id="MosImg32"></td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="top"><b>1</b> 
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV546', 'ecran431.swf', '30', '25', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', 'vertical-align: middle', ''));</script>
+                     It' s Paul's birthday.
+                </td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="top"><b>2</b> 
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV439', 'ecran432.swf', '30', '25', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', 'vertical-align: middle', ''));</script>
+                     The teacher has put on his Father Christmas suit. 
+                </td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="top"><b>A</b> 
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV5393', 'ecran433.swf', '30', '25', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', 'vertical-align: middle', ''));</script>
+                     
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV15', 'mot43_3.swf', '110', '19', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', '', ''));</script>
+                     a lot of presents.
+                </td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="top"><b>B</b> 
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV7781', 'ecran434.swf', '30', '25', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', 'vertical-align: middle', ''));</script>
+                     
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV59', 'mot43_4.swf', '110', '19', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', '', ''));</script>
+                     a lot of presents. 
+                </td>
+            </tr>
+        </table>
+        <p>Maintenant, de façon à former deux paires plausibles, associez les énoncés, en sélectionnant A ou B dans les
+            listes déroulantes.<br><br>It' s Paul's birthday. <br><select class="STY_selectTAT" id="champTrou1" onchange="actionDetecteSelect()">
+                <option value="_INIT_TROU"> </option>
+            </select><br><br>The teacher has put on his Father Christmas suit. <br><select class="STY_selectTAT" id="champTrou2" onchange="actionDetecteSelect()">
+                <option value="_INIT_TROU"> </option>
+            </select></p>
+    """ .
+
 :pg7664_rep150 a :MacaoContenu,
         :MacaoObject,
         :Reponse ;
@@ -1435,6 +2318,67 @@
     :index 0 ;
     rdfs:subClassOf :pg7664 .
 
+:pg7682_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text "I'm so thirsty, I  " .
+
+:pg7682_seg1 a :Champ,
+        :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :aReponse :pg7682_seg1_rep101,
+        :pg7682_seg1_rep113,
+        :pg7682_seg1_rep117,
+        :pg7682_seg1_rep239 ;
+    :index 1 ;
+    :selection false .
+
+:pg7682_seg1_rep101 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg7682_seg1_rep101 | V" ;
+    :correct true ;
+    :html "would drink" ;
+    :id "rep101" ;
+    :index -1 .
+
+:pg7682_seg1_rep113 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg7682_seg1_rep113 | V" ;
+    :correct true ;
+    :html " would drink" ;
+    :id "rep113" ;
+    :index -1 .
+
+:pg7682_seg1_rep117 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg7682_seg1_rep117 | V" ;
+    :correct true ;
+    :html "'d drink" ;
+    :id "rep117" ;
+    :index -1 .
+
+:pg7682_seg1_rep239 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg7682_seg1_rep239 | V" ;
+    :correct true ;
+    :html " 'd drink" ;
+    :id "rep239" ;
+    :index -1 .
+
+:pg7682_seg2 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 2 ;
+    :text """ a
+        whole bottle of fresh water if I could.
+    """ .
+
 :pg7973_rep150 a :MacaoContenu,
         :MacaoObject,
         :Reponse ;
@@ -1589,6 +2533,93 @@
     :index 4 ;
     rdfs:subClassOf :pg7973 .
 
+:pg8027_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text """
+        <table style="BACKGROUND: #b5f0c7" width="80%" cellpadding="3" cellspacing="0" valign="top" border="1" bordercolor="">
+            <tr>
+                <td style="FONT-SIZE: 10px" width="60%" valign="top"><img align="center" border="0" src="../media/ecouteur_macao.png" width="23" height="32" id="MosImg32"></td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="top"><b>1</b> 
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV6364', 'ecran411.swf', '30', '25', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', 'vertical-align: middle', ''));</script>
+                     Why does Lucy have so many pills to take?
+                </td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="top"><b>2</b> 
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV1264', 'ecran412.swf', '30', '25', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', 'vertical-align: middle', ''));</script>
+                     Why isn't Ella with you?
+                </td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="middle"><b>A
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV364', 'ecran413.swf', '30', '25', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', 'vertical-align: middle', ''));</script>
+                </b> 
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV532', 'mot41_3.swf', '110', '19', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', '', ''));</script>
+                     by the doctor for her allergy.
+                </td>
+            </tr>
+            <tr>
+                <td style="FONT-SIZE: 10px" valign="top"><b>B
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV0', 'ecran414.swf', '30', '25', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', 'vertical-align: middle', ''));</script>
+                </b> 
+                    <script type="text/javascript">ajDocW(PF_clipAV('clipAV53', 'mot41_3.swf', '110', '19', 'false', 'Flash', '', '', 'Quality:high;wmode:transparent', '', ''));</script>
+                    by the doctor for her allergy.
+                </td>
+            </tr>
+        </table>
+        <p>Maintenant, de façon à former deux dialogues plausibles, associez chaque question à une réponse en
+            sélectionnant A ou B dans les listes déroulantes.<br><br>Why does Lucy have so many pills to
+            take?<br><select class="STY_selectTAT" id="champTrou1" onchange="actionDetecteSelect()">
+                <option value="_INIT_TROU"> </option>
+            </select><br><br>Why isn't Ella with you?<br><select class="STY_selectTAT" id="champTrou2" onchange="actionDetecteSelect()">
+                <option value="_INIT_TROU"> </option>
+            </select></p>
+    """ .
+
+:pg8400_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text "You must phone Mr Williams if you have a problem. He's " .
+
+:pg8400_seg1 a :Champ,
+        :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :aReponse :pg8400_seg1_rep117,
+        :pg8400_seg1_rep5 ;
+    :index 1 ;
+    :selection false .
+
+:pg8400_seg1_rep117 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg8400_seg1_rep117 | V" ;
+    :correct true ;
+    :html "the" ;
+    :id "rep117" ;
+    :index -1 .
+
+:pg8400_seg1_rep5 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg8400_seg1_rep5 | V" ;
+    :correct true ;
+    :html " the" ;
+    :id "rep5" ;
+    :index -1 .
+
+:pg8400_seg2 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 2 ;
+    :text """ boss.
+    """ .
+
 :pg8601_rep150 a :MacaoContenu,
         :MacaoObject,
         :Reponse ;
@@ -1806,6 +2837,46 @@
     :index 1 ;
     rdfs:subClassOf :pg8876 .
 
+:pg910_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text "Choisissez entre les deux formes proposées : <br><br>What " .
+
+:pg910_seg1 a :Champ,
+        :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :aReponse :pg910_seg1_rep24,
+        :pg910_seg1_rep429 ;
+    :index 1 ;
+    :selection true .
+
+:pg910_seg1_rep24 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg910_seg1_rep24 | F" ;
+    :correct false ;
+    :html "if" ;
+    :id "rep24" ;
+    :index -1 .
+
+:pg910_seg1_rep429 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg910_seg1_rep429 | V" ;
+    :correct true ;
+    :html "have" ;
+    :id "rep429" ;
+    :index -1 .
+
+:pg910_seg2 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 2 ;
+    :text """ the suspects proven, their innocence or their guilt?
+    """ .
+
 :pg9152_rep511 a :MacaoContenu,
         :MacaoObject,
         :Reponse ;
@@ -1896,6 +2967,96 @@
     :index 1 ;
     rdfs:subClassOf :pg9264 .
 
+:pg9414_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text "Choisissez entre les deux formes proposées : <br><br>What " .
+
+:pg9414_seg1 a :Champ,
+        :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :aReponse :pg9414_seg1_rep566,
+        :pg9414_seg1_rep762 ;
+    :index 1 ;
+    :selection true .
+
+:pg9414_seg1_rep566 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg9414_seg1_rep566 | F" ;
+    :correct false ;
+    :html "have" ;
+    :id "rep566" ;
+    :index -1 .
+
+:pg9414_seg1_rep762 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg9414_seg1_rep762 | F" ;
+    :correct false ;
+    :html "if" ;
+    :id "rep762" ;
+    :index -1 .
+
+:pg9414_seg2 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 2 ;
+    :text """ the suspect is proven innocent? Do we have other possibilities?
+    """ .
+
+:pg9615_seg0 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 0 ;
+    :text "<br>" .
+
+:pg9615_seg1 a :Champ,
+        :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :aReponse :pg9615_seg1_rep269,
+        :pg9615_seg1_rep430,
+        :pg9615_seg1_rep527 ;
+    :index 1 ;
+    :selection true .
+
+:pg9615_seg1_rep269 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg9615_seg1_rep269 | V" ;
+    :correct true ;
+    :html "My mother's a" ;
+    :id "rep269" ;
+    :index -1 .
+
+:pg9615_seg1_rep430 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg9615_seg1_rep430 | F" ;
+    :correct false ;
+    :html "My mothers are" ;
+    :id "rep430" ;
+    :index -1 .
+
+:pg9615_seg1_rep527 a :MacaoContenu,
+        :MacaoObject,
+        :Reponse ;
+    :__protege_display_name "pg9615_seg1_rep527 | F" ;
+    :correct false ;
+    :html "My mothers a " ;
+    :id "rep527" ;
+    :index -1 .
+
+:pg9615_seg2 a :MacaoContenu,
+        :MacaoObject,
+        :Segment ;
+    :index 2 ;
+    :text """ a good cook.
+    """ .
+
 :pg9764_rep150 a :MacaoContenu,
         :MacaoObject,
         :Reponse ;
@@ -2067,6 +3228,9 @@
         owl:NamedIndividual ;
     rdfs:label "Première tâche" ;
     :__protege_display_name "00 | pg1023 | Première tâche" ;
+    :aSegment :pg1023_seg0,
+        :pg1023_seg1,
+        :pg1023_seg2 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -2351,6 +3515,7 @@
         owl:NamedIndividual ;
     rdfs:label "Deuxième tâche" ;
     :__protege_display_name "02 | pg1888 | Deuxième tâche" ;
+    :aSegment :pg1888_seg0 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -2428,6 +3593,7 @@
         owl:NamedIndividual ;
     rdfs:label "Septième tâche" ;
     :__protege_display_name "07 | pg1919 | Septième tâche" ;
+    :aSegment :pg1919_seg0 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -2635,6 +3801,9 @@
         owl:NamedIndividual ;
     rdfs:label "Sixième tâche" ;
     :__protege_display_name "09 | pg2429 | Sixième tâche" ;
+    :aSegment :pg2429_seg0,
+        :pg2429_seg1,
+        :pg2429_seg2 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -2684,6 +3853,7 @@
         owl:NamedIndividual ;
     rdfs:label "Sixième tâche (2)" ;
     :__protege_display_name "06 | pg2493 | Sixième tâche (2)" ;
+    :aSegment :pg2493_seg0 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -2853,6 +4023,11 @@
         owl:NamedIndividual ;
     rdfs:label "Première tâche" ;
     :__protege_display_name "00 | pg2759 | Première tâche" ;
+    :aSegment :pg2759_seg0,
+        :pg2759_seg1,
+        :pg2759_seg2,
+        :pg2759_seg3,
+        :pg2759_seg4 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -2988,6 +4163,9 @@
         owl:NamedIndividual ;
     rdfs:label "Cinquième tâche" ;
     :__protege_display_name "04 | pg3092 | Cinquième tâche" ;
+    :aSegment :pg3092_seg0,
+        :pg3092_seg1,
+        :pg3092_seg2 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -3052,6 +4230,7 @@
         owl:NamedIndividual ;
     rdfs:label "Huitième tâche" ;
     :__protege_display_name "08 | pg3579 | Huitième tâche" ;
+    :aSegment :pg3579_seg0 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -3162,6 +4341,9 @@
         owl:NamedIndividual ;
     rdfs:label "Sixième tâche" ;
     :__protege_display_name "05 | pg3600 | Sixième tâche" ;
+    :aSegment :pg3600_seg0,
+        :pg3600_seg1,
+        :pg3600_seg2 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -3268,6 +4450,7 @@
         owl:NamedIndividual ;
     rdfs:label "Deuxième tâche" ;
     :__protege_display_name "01 | pg3628 | Deuxième tâche" ;
+    :aSegment :pg3628_seg0 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')">Effectivement. Voici les deux dialogues
         reconstitués que vous pouvez écouter. <br><br>1 Tell us what you have found about the suspect. <br>A She has
         been seen several times with a rat. <br><br>Dans <i>She has been seen</i>, on a un <i><a class="STY_lienDansZoneComt" href="javascript:parent.SCO_ouvrirDoc('doc28886','htm')">present
@@ -3370,6 +4553,9 @@
         owl:NamedIndividual ;
     rdfs:label "Troisième tâche" ;
     :__protege_display_name "02 | pg3862 | Troisième tâche" ;
+    :aSegment :pg3862_seg0,
+        :pg3862_seg1,
+        :pg3862_seg2 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -3541,6 +4727,9 @@
         owl:NamedIndividual ;
     rdfs:label "Troisième tâche" ;
     :__protege_display_name "02 | pg4141 | Troisième tâche" ;
+    :aSegment :pg4141_seg0,
+        :pg4141_seg1,
+        :pg4141_seg2 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -3674,6 +4863,9 @@
         owl:NamedIndividual ;
     rdfs:label "Première tâche" ;
     :__protege_display_name "00 | pg4487 | Première tâche" ;
+    :aSegment :pg4487_seg0,
+        :pg4487_seg1,
+        :pg4487_seg2 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -3937,6 +5129,9 @@
         owl:NamedIndividual ;
     rdfs:label "Troisième tâche" ;
     :__protege_display_name "02 | pg5132 | Troisième tâche" ;
+    :aSegment :pg5132_seg0,
+        :pg5132_seg1,
+        :pg5132_seg2 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -4160,6 +5355,9 @@
         owl:NamedIndividual ;
     rdfs:label "Deuxième tâche" ;
     :__protege_display_name "01 | pg6180 | Deuxième tâche" ;
+    :aSegment :pg6180_seg0,
+        :pg6180_seg1,
+        :pg6180_seg2 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -4313,6 +5511,9 @@
         owl:NamedIndividual ;
     rdfs:label "Quatrième tâche (4)" ;
     :__protege_display_name "07 | pg6866 | Quatrième tâche (4)" ;
+    :aSegment :pg6866_seg0,
+        :pg6866_seg1,
+        :pg6866_seg2 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -4464,6 +5665,9 @@
         owl:NamedIndividual ;
     rdfs:label "Deuxième tâche" ;
     :__protege_display_name "01 | pg7429 | Deuxième tâche" ;
+    :aSegment :pg7429_seg0,
+        :pg7429_seg1,
+        :pg7429_seg2 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p>Bravo !<br>Vous avez en effet entendu : <br><br><i>John's been given a guitar for his birthday. He's been
@@ -4514,6 +5718,7 @@
         owl:NamedIndividual ;
     rdfs:label "Troisième tâche" ;
     :__protege_display_name "02 | pg7576 | Troisième tâche" ;
+    :aSegment :pg7576_seg0 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')">Effectivement. Voici les deux paires
         reconstituées que vous pouvez écouter. <br><br>1 It' s Paul's birthday. <br>B He is given a lot of presents.<br><br>Dans
         <i>He is given</i>, on a un présent à la voix passive (voix passive : BE + V au participe passé). Le sujet
@@ -4635,6 +5840,9 @@
         owl:NamedIndividual ;
     rdfs:label "Quatrième tâche" ;
     :__protege_display_name "03 | pg7682 | Quatrième tâche" ;
+    :aSegment :pg7682_seg0,
+        :pg7682_seg1,
+        :pg7682_seg2 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -4703,6 +5911,7 @@
         owl:NamedIndividual ;
     rdfs:label "Première tâche" ;
     :__protege_display_name "00 | pg8027 | Première tâche" ;
+    :aSegment :pg8027_seg0 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')">Effectivement. Voici les deux dialogues
         reconstitués que vous pouvez réécouter.<br><br>1 Why does Lucy have so many pills to take? <br>B She has been
         seen by the doctor for her allergy.<br><br>Dans <i>She has been seen</i>, on a un <a class="STY_lienDansZoneComt" href="javascript:parent.SCO_ouvrirDoc('doc28886','htm')"><i>present
@@ -4773,6 +5982,9 @@
         owl:NamedIndividual ;
     rdfs:label "Deuxième tâche" ;
     :__protege_display_name "01 | pg8400 | Deuxième tâche" ;
+    :aSegment :pg8400_seg0,
+        :pg8400_seg1,
+        :pg8400_seg2 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -4892,6 +6104,9 @@
         owl:NamedIndividual ;
     rdfs:label "Quatrième tâche (2)" ;
     :__protege_display_name "04 | pg910 | Quatrième tâche (2)" ;
+    :aSegment :pg910_seg0,
+        :pg910_seg1,
+        :pg910_seg2 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -5002,6 +6217,9 @@
         owl:NamedIndividual ;
     rdfs:label "Quatrième tâche (3)" ;
     :__protege_display_name "05 | pg9414 | Quatrième tâche (3)" ;
+    :aSegment :pg9414_seg0,
+        :pg9414_seg1,
+        :pg9414_seg2 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -5095,6 +6313,9 @@
         owl:NamedIndividual ;
     rdfs:label "Quatrième tâche" ;
     :__protege_display_name "03 | pg9615 | Quatrième tâche" ;
+    :aSegment :pg9615_seg0,
+        :pg9615_seg1,
+        :pg9615_seg2 ;
     :commentaireSucces """<div id="divCmtSucces" onclick="SPE_clicDansBulle(event,'divCmtSucces')"><p> </p>
         <p> </p>
         <p> </p>
@@ -7318,6 +8539,10 @@
         :MacaoObject,
         :Module .
 
+:Champ a owl:Class ;
+    rdfs:subClassOf :MacaoContenu,
+        :MacaoObject .
+
 :Module a owl:Class ;
     rdfs:subClassOf :MacaoContenu,
         :MacaoObject .
@@ -7346,6 +8571,10 @@
         :MacaoContenu,
         :MacaoObject .
 
+:Segment a owl:Class ;
+    rdfs:subClassOf :MacaoContenu,
+        :MacaoObject .
+
 :Exercice a owl:Class ;
     rdfs:subClassOf :Activite,
         :MacaoContenu,
diff --git a/tetras_extraction/schemes/macao_schema.ttl b/tetras_extraction/schemes/macao_schema.ttl
index e77aacc9af962069f9c3546753d263e79558441c..b4304381ef5fd54c07900bbc26c6e307b534d3f5 100644
--- a/tetras_extraction/schemes/macao_schema.ttl
+++ b/tetras_extraction/schemes/macao_schema.ttl
@@ -242,3 +242,19 @@
       :ExerciceTAT
     ) ;
 ].
+
+### Addition from Eliott
+
+###  http://www.semanticweb.org/eliott/ontologies/2024/4/macao/Reponse
+:Champ rdf:type owl:Class ;
+         rdfs:subClassOf :MacaoContenu .
+
+
+###  http://www.semanticweb.org/eliott/ontologies/2024/4/macao/Reponse
+:Reponse rdf:type owl:Class ;
+         rdfs:subClassOf :MacaoContenu .
+
+         ###  http://www.semanticweb.org/eliott/ontologies/2024/4/macao/aReponseIncorrecte
+:aSegment rdf:type owl:ObjectProperty ;
+          rdfs:domain :ExerciceTAT ;
+          rdfs:range :Segment .
diff --git a/tetras_extraction/script/replaceStaticMediaFiles.sh b/tetras_extraction/script/replaceStaticMediaFiles.sh
new file mode 100644
index 0000000000000000000000000000000000000000..b36a85359f7e2118ca8cd016b400089034dfb6ca
--- /dev/null
+++ b/tetras_extraction/script/replaceStaticMediaFiles.sh
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+# Check if the correct number of arguments is provided
+if [ "$#" -ne 2 ]; then
+    echo "Usage: $0 <in_folder> <out_folder>"
+    exit 1
+fi
+
+IN_FOLDER="$1"
+OUT_FOLDER="$2"
+
+# Check if the input and output folders exist
+if [ ! -d "$IN_FOLDER" ]; then
+    echo "Input folder does not exist: $IN_FOLDER"
+    exit 1
+fi
+
+if [ ! -d "$OUT_FOLDER" ]; then
+    echo "Output folder does not exist: $OUT_FOLDER"
+    exit 1
+fi
+
+# Iterate over each file in the input folder
+for IN_FILE in "$IN_FOLDER"/*; do
+    # Extract the base name of the file (without extension)
+    BASE_NAME=$(basename "$IN_FILE")
+    BASE_NAME="${BASE_NAME%.*}"
+
+    # Search for a file with the same base name in the output folder and its subfolders
+    OUT_FILE=$(find "$OUT_FOLDER" -type f -name "${BASE_NAME}.*")
+
+    if [ -n "$OUT_FILE" ]; then
+        # Extract the extension of the output file
+        OUT_EXT="${OUT_FILE##*.}"
+
+        # Convert the input file to the same format as the output file
+        magick "$IN_FILE" "${OUT_FILE%.*}.$OUT_EXT"
+
+        echo "Replaced $OUT_FILE with converted $IN_FILE"
+    else
+        echo "No matching file found in output folder for $BASE_NAME"
+    fi
+done
diff --git a/tetras_extraction/script/src/extract.py b/tetras_extraction/script/src/extract.py
index f2f90abc47fde79bed008be6e126a849ca5feab1..ff66cc02af218f1bf880b1f165118124f0267dd5 100644
--- a/tetras_extraction/script/src/extract.py
+++ b/tetras_extraction/script/src/extract.py
@@ -1,5 +1,3 @@
-import filecmp
-
 from lxml import etree
 from rdflib import RDFS, Graph, Literal, URIRef
 from rdflib.namespace import OWL, RDF
@@ -146,14 +144,6 @@ def is_subsection(id: str):
     )
 
 
-def compare_files(f1: str, f2: str):
-    log.info(
-        "Files {} and {} {}.".format(
-            f1, f2, "are identical" if filecmp.cmp(f1, f2) else "differ"
-        )
-    )
-
-
 def main():
     g = create_graph()
 
diff --git a/tetras_extraction/script/src/extract_page.py b/tetras_extraction/script/src/extract_page.py
index 88bd027b2ffed0a422ed86ffa9de05071b23e37d..67e2216c257ac631242eefeb5e82b11004b0eed9 100644
--- a/tetras_extraction/script/src/extract_page.py
+++ b/tetras_extraction/script/src/extract_page.py
@@ -1,10 +1,8 @@
 import re
 from abc import abstractmethod
-from dataclasses import dataclass
-from typing import Any
+from dataclasses import dataclass, field
 
 from lxml import html
-from lxml.etree import _Element
 from lxml.html import HtmlElement
 from rdflib import RDF, Graph, Literal
 from typing_extensions import override
@@ -15,62 +13,68 @@ from common import *
 log = get_logger("extract_page")
 
 
-class Comment:
-    def __init__(self, id: str = ""):
-        self.id = id
-        self.num: int
-        self.text: str
-        self.html: Any
-        self.elem: _Element
+class Base:
+    """A default base class to implement convenience methods"""
 
     @override
-    def __repr__(self):
-        return str(self.__dict__)
+    def __repr__(self) -> str:
+        return str(type(self).__name__) + str(self.__dict__)
+
+
+@dataclass
+class Comment:
+    id: str
+    """The comment's identifier, unique in its parent activity"""
+    num: int = -1
+    """The comment's index in the activity, its order"""
+    html: str = ""
+    """The comment as raw HTML"""
+    text: str = ""
+    """The comment as plain text, with formatting stripped """
 
 
+@dataclass
 class Activity:
-    def __init__(self):
-        self.id: str = ""
-        """The ID of the page this activity is in (`pg###`)"""
-        self.title: str = ""
-        """Human-readable title of the activity"""
-        self.description: str | None = None
-        """Description of the activity's body (HTML),
-        e.g. the instructions for an exercise activity"""
-        self.comment_consigne: Comment | None = None
-        """Another form of activity description but in a comment. May or may not
-        coexist with a regular description"""
-        self.comment_success: Comment | None = None
-        """Comment displayed on success, if applicable"""
-        self.comments_sugg: dict[str, Comment] = {}
-        """Help comments displayed on failure, if applicable (keyed by ID)"""
-        self.comments_misc: list[Comment] = []
-        """Any other comments, if present"""
-        self.ref: URIRef
+    id: str = ""
+    """The ID of the page this activity is in (`pg###`)"""
+    title: str = ""
+    """Human-readable title of the activity"""
+    description: str | None = None
+    """Description of the activity's body (HTML),
+    e.g. the instructions for an exercise activity"""
+    comment_consigne: Comment | None = None
+    """Another form of activity description but in a comment. May or may not
+    coexist with a regular description"""
+    comment_success: Comment | None = None
+    """Comment displayed on success, if applicable"""
+    comments_sugg: dict[str, Comment] = field(default_factory=dict)
+    """Help comments displayed on failure, if applicable (keyed by ID)"""
+    comments_misc: list[Comment] = field(default_factory=list)
+    """Any other comments, if present"""
 
     def save(self, graph: Graph):
         """Save activity data to the graph. Subclasses may override this method
         to save their specific data."""
-        self.ref = NS[self.id]
+        ref: URIRef = NS[self.id]
         # => Type
-        graph.add((self.ref, RDF.type, NS[self.get_name()]))
+        graph.add((ref, RDF.type, NS[self.get_name()]))
         # => Title
-        set_title(graph, self.ref, self.title)
+        set_title(graph, ref, self.title)
         # => Description
         description = self.description or ""
         if self.comment_consigne is not None:
             description += self.comment_consigne.html
         if description != "":
-            graph.add((self.ref, NS["description"], Literal(description)))
+            graph.add((ref, NS["description"], Literal(description)))
         # => Comments
         if self.comment_success is not None:
             graph.add(
-                (self.ref, NS["commentaireSucces"], Literal(self.comment_success.html))
+                (ref, NS["commentaireSucces"], Literal(self.comment_success.html))
             )
         for comment in self.comments_sugg.values():
-            graph.add((self.ref, NS["commentaireSugg"], Literal(comment.html)))
+            graph.add((ref, NS["commentaireSugg"], Literal(comment.html)))
         for comment in self.comments_misc:
-            graph.add((self.ref, NS["commentaireInfo"], Literal(comment.html)))
+            graph.add((ref, NS["commentaireInfo"], Literal(comment.html)))
 
     def parse_html(self, root: HtmlElement):
         """From a `lxml.html` parsing tree, extract all data relevant to this class.
@@ -80,14 +84,13 @@ class Activity:
         self.title = root.xpath("/html/head/title")[0].text
         # => Comments
         zi = root.get_element_by_id("zoneInvisible")
+        # Regex to separate non-digits and digits
         for cmt_div in zi:
-            comment = Comment()
+            comment = Comment(cmt_div.get("id") or "")
             comment.text = cmt_div.text_content()
             comment.html = to_html(cmt_div)
-            comment.elem = cmt_div
-            comment.id = cmt_div.get("id") or ""
             # Split id in two parts (non-digits and digits), then match on these parts
-            m = regex_comment.match(comment.id)
+            m = re.match(r"(\D*)(\d*)", comment.id)
             if m is not None:
                 match m.groups():
                     case ["divCmt", num]:
@@ -102,10 +105,10 @@ class Activity:
                         self.comment_consigne = comment
                     case alpha, num:
                         log.warning(
-                            f"No match for comment {alpha}[{num}] ('{comment.id}')"
+                            f"{self.id}: No match for comment {alpha}[{num}] ('{comment.id}')"
                         )
                     case something:
-                        log.warning(f"No match for comment '{something}'")
+                        log.warning(f"{self.id}: No match for comment '{something}'")
 
     def get_name(self) -> str:
         return type(self).__name__
@@ -127,10 +130,6 @@ class Activity:
             case _:
                 raise NameError(name=name)
 
-    @override
-    def __repr__(self):
-        return self.get_name() + str(self.__dict__)
-
 
 class Cours(Activity):
     @override
@@ -154,40 +153,66 @@ class Exercice(Activity):
 class Choice:
     """A possible answer for a question, correct or not"""
 
-    def __init__(
-        self,
-        id: str = "",
-        index: int = -1,
-        is_correct: bool = False,
-        html: str = "",
-        comment: Comment | None = None,
-    ):
-        self.id = id
-        """A string identifier for the choice"""
-        self.index = index
-        """The order the choice appears in"""
-        self.is_correct = is_correct
-        self.html = html
-        self.comment = comment
-        """A `Comment` associated with this choice, displayed when the exercise
-        is incorrect and this choice is selected"""
-
-    @override
-    def __str__(self) -> str:
-        return f"Choice(id='{self.id}', index={self.index}, is_correct={self.is_correct}, html='{self.html[0::10]}')"
+    id: str = ""
+    """A string identifier for the choice"""
+    index: int = -1
+    """The order the choice appears in"""
+    is_correct: bool = False
+    html: str = ""
+    comment: Comment | None = None
+    """A `Comment` associated with this choice, displayed when the exercise
+    is incorrect and this choice is selected"""
+
+    def save(self, graph: Graph, rdf_name: str) -> URIRef:
+        """Save this choice to the RDF graph"""
+        display_name = rdf_name + " | " + ("V" if self.is_correct else "F")
+        choice_node = NS[rdf_name]
+        graph.add((choice_node, RDF.type, NS["Reponse"]))
+        graph.add((choice_node, NS["id"], Literal(self.id)))
+        graph.add((choice_node, NS["index"], Literal(self.index)))
+        graph.add((choice_node, NS["correct"], Literal(self.is_correct)))
+        graph.add((choice_node, NS["html"], Literal(self.html)))
+        # Save optional comment
+        if self.comment is not None:
+            graph.add((choice_node, NS["commentaireSugg"], Literal(self.comment.html)))
+        graph.add(
+            (
+                choice_node,
+                NS["__protege_display_name"],
+                Literal(display_name),
+            )
+        )
+        return choice_node
 
 
+@dataclass
 class ChoiceGroup:
-    def __init__(self):
-        self.label: str
-        self.items: list[Choice]
+    label: str
+    items: list[Choice] = field(default_factory=list)
+
 
+@dataclass
+class Gap:
+    """A gap in a gap-fill text exercise"""
+
+    id: str
+    choices: list[Choice] = field(default_factory=list)
+    select: bool = False
+    """Whether the gap offers a selection between its choices, or a free text input"""
+
+    def save(self, graph: Graph, rdf_name: str):
+        """Save this gap to the RDF graph"""
+        graph.add((NS[rdf_name], NS["selection"], Literal(self.select)))
+        for choice in self.choices:
+            choice_uri = choice.save(graph, f"{rdf_name}_{choice.id}")
+            graph.add((NS[rdf_name], NS["aReponse"], choice_uri))
+        pass
 
+
+@dataclass
 class ExerciceQC(Exercice):
-    def __init__(self, is_qcm: bool = False) -> None:
-        super().__init__()
-        self.is_qcm = is_qcm
-        self.choices: dict[str, Choice] = {}
+    is_qcm: bool = False
+    choices: dict[str, Choice] = field(default_factory=dict)
 
     @override
     def get_name(self) -> str:
@@ -220,33 +245,14 @@ class ExerciceQC(Exercice):
                     choice.comment = self.comments_sugg.pop(choice.comment.id)
                 except KeyError:
                     log.warning(
-                        f"Choice '{choice.id}' requested comment '{choice.comment.id}', which was not found in HTML."
+                        f"{self.id}: Choice '{choice.id}' requested comment '{choice.comment.id}', which was not found in HTML."
                     )
 
     @override
     def save(self, graph: Graph):
         super().save(graph)
         for choice in self.choices.values():
-            rdf_name = f"{self.id}_{choice.index}_{choice.id}"  # ex: pg157_2, pg173_rep21
-            display_name = rdf_name + " | " + ("V" if choice.is_correct else "F")
-            choice_node = NS[rdf_name]
-            graph.add((choice_node, RDF.type, NS["Reponse"]))
-            graph.add((choice_node, NS["id"], Literal(choice.id)))
-            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)))
-            # Save optional comment
-            if choice.comment is not None:
-                graph.add(
-                    (choice_node, NS["commentaireSugg"], Literal(choice.comment.html))
-                )
-            graph.add(
-                (
-                    choice_node,
-                    NS["__protege_display_name"],
-                    Literal(display_name),
-                )
-            )
+            choice_node = choice.save(graph, f"{self.id}_{choice.index}_{choice.id}")
             graph.add((NS[self.id], NS["aReponse"], choice_node))
             # Our fake "class hierarchy" just for easier visualization
             graph.add((choice_node, RDFS.subClassOf, NS[self.id]))
@@ -266,27 +272,90 @@ class ExerciceQC(Exercice):
         return self.choices[id]
 
 
+@dataclass
 class ExerciceQM(Exercice):
-    def __init__(self):
-        super().__init__()
-        self.questions: list[ChoiceGroup]
+    questions: list[ChoiceGroup] = field(default_factory=list)
 
 
+@dataclass
 class ExerciceTAT(Exercice):
-    def __init__(self):
-        super().__init__()
-        self.text: str  # can be HTML
-        self.gaps: list[ChoiceGroup]
+    segments: list[str | Gap] = field(default_factory=list)
+    """The segments (text or gap) that make up the exercise text, in order"""
+    gaps: dict[str, Gap] = field(default_factory=dict)
+    """Only the gaps, keyed by ID, useful during parsing"""
+
+    @override
+    def parse_html(self, root: HtmlElement):
+        super().parse_html(root)
+        # Find the text container
+        try:
+            container = root.find_class("STY_texteTAT")[0]
+        except IndexError as e:
+            raise ParseError("ExerciceTAT: text container not found") from e
+
+        # Text buffer accumulates the text found
+        text_segment_buf = container.text or ""
+        for elem in container:
+            if "STY_selectTAT" in elem.classes or "STY_champTAT" in elem.classes:
+                # It's a gap
+                # Time to "close" the text segment and add it
+                self.segments.append(text_segment_buf)
+                # New text segment starts with the tail text of this element
+                text_segment_buf = elem.tail or ""
+                # Add the gap
+                gap_id = elem.attrib["id"].replace("champTrou", "")
+                gap = self.get_or_create_gap(gap_id)
+                self.segments.append(gap)
+                if "STY_selectTAT" in elem.classes:
+                    gap.select = True
+            else:
+                text_segment_buf += to_html(elem)
 
+        if text_segment_buf != "":
+            # Avoid adding an empty segment if there are none
+            self.segments.append(text_segment_buf)
 
+        nb_total_gaps = len(container.cssselect(".STY_selectTAT, .STY_champTAT"))
+        nb_found_gaps = len([e for e in self.segments if isinstance(e, Gap)])
+        if nb_found_gaps != nb_total_gaps:
+            log.warning(
+                f"{self.id}: Text has {nb_total_gaps} gaps in total, but found {nb_found_gaps} gap elements, some might be missing"
+            )
+        pass
+
+    @override
+    def save(self, graph: Graph):
+        super().save(graph)
+        for index, segment in enumerate(self.segments):
+            rdf_name = f"{self.id}_seg{index}"
+            segment_uri = NS[rdf_name]
+            # The Segment has to be an object, even text segments, because
+            # we also need an `index` property since RDF is unordered.$
+            graph.add((NS[self.id], NS["aSegment"], segment_uri))
+            graph.add((segment_uri, RDF.type, NS["Segment"]))
+            graph.add((segment_uri, NS["index"], Literal(index)))
+            graph.add((segment_uri, RDFS.label, Literal(rdf_name)))
+
+            if isinstance(segment, str):
+                graph.add((segment_uri, NS["html"], Literal(segment)))
+            else:
+                graph.add((segment_uri, RDF.type, NS["Champ"]))
+                segment.save(graph, rdf_name)
+
+    def get_or_create_gap(self, gap_id: str) -> Gap:
+        """Find a gap by ID, creating it if needed"""
+        if gap_id not in self.gaps:
+            self.gaps[gap_id] = Gap(gap_id)
+        return self.gaps[gap_id]
+
+
+@dataclass
 class ExerciceGD(Exercice):
-    def __init__(self):
-        super().__init__()
-        self.targets: list[str]
-        self.draggables: list[list[Choice]]
+    targets: list[str] = field(default_factory=list)
+    draggables: list[list[Choice]] = field(default_factory=list)
 
 
-class JSParser:
+class JSParser(Base):
     @abstractmethod
     def parse(self, js: str) -> Activity:
         """Parse a string of JavaScript code and returns an instance of the
@@ -300,8 +369,7 @@ class JSParser:
 
 
 class RegexParser(JSParser):
-    def __init__(self, graph: Graph, act_id: str) -> None:
-        self.graph = graph
+    def __init__(self, act_id: str) -> None:
         self.act_id = act_id
 
     @override
@@ -313,9 +381,14 @@ class RegexParser(JSParser):
         body = func_split[1]
 
         activity, _ = self._parse_activity_constructor(body)
-        if isinstance(activity, ExerciceQC):
-            # Parse correct answers
-            self._parse_qc_answers(body, activity)
+        match activity:
+            case ExerciceQC():
+                # Parse correct answers
+                self._parse_qc_answers(body, activity)
+            case ExerciceTAT():
+                self._parse_tat_choices(body, activity)
+            case _:
+                pass
 
         return activity
 
@@ -327,7 +400,7 @@ class RegexParser(JSParser):
         constructor_match = re.search(
             r"""
                 (\w+)               # result variable name
-                \s+=\s+new\s+       # 
+                \s+=\s+new\s+       #
                 (Cours|Exercice\w+) # constructor name
                 \((.*?)\);          # optional arguments between parentheses
                     """,
@@ -433,6 +506,67 @@ class RegexParser(JSParser):
         except ValueError as e:
             raise exception from e
 
+    def _parse_tat_choices(self, code: str, exo: ExerciceTAT) -> None:
+        if Context.version == "macao_12":
+            # tinker with this regex: https://regex101.com/r/OYF6La/1
+            choices_regex = re.compile(
+                r"""
+                exo\.ajouterReponse\(
+                '(?P<gap_id>\d+)'
+                ,\s'(?P<correct_code>\w+)'
+                ,\s\"(?P<text>.+)\"
+                \);""",
+                re.VERBOSE,
+            )
+            for match in choices_regex.finditer(code):
+                gap = exo.get_or_create_gap(match.group("gap_id"))
+                choice = Choice()
+                choice.index = len(gap.choices)
+                choice.id = "rep" + str(choice.index)
+                choice.is_correct = match.group("correct_code") == "nw"
+                # Decode obfuscated text
+                text = match.group("text")
+                choice.html = decode_answer_text_macao12(text)
+                # Add choice
+                gap.choices.append(choice)
+
+        else:
+            # tinker with this regex: https://regex101.com/r/UFxxj3/1
+            choices_regex = re.compile(
+                r"""
+                exo\.ajouterReponse\(
+                '(?P<choice_id>\w+)'
+                ,\s'(?P<gap_id>\d+)'
+                ,\s'(?P<correct_code>\d+)'
+                ,\s\"(?P<text>.+)\"
+                \);""",
+                re.VERBOSE,
+            )
+            choices = list(choices_regex.finditer(code))
+            # Correctness obfuscation
+            # Each choice is correct if correct_code == 2*gap_num + (nb_gaps + score) % 2
+            # (see the wiki for more info)
+            nb_gaps = max(
+                [int(match.group("gap_id")) for match in choices_regex.finditer(code)],
+                default=0,
+            )
+            score = self._parse_score(code)
+            correction_offset = (nb_gaps + score) % 2
+
+            # Process matches
+            for match in choices:
+                gap = exo.get_or_create_gap(match.group("gap_id"))
+                choice = Choice(match.group("choice_id"))
+                correct_code = int(match.group("correct_code"))
+                choice.is_correct = (
+                    2 * int(gap.id) + correction_offset
+                ) == correct_code
+                # Decode obfuscated text
+                text = match.group("text")
+                choice.html = decode_answer_text(text)
+                # Add choice
+                gap.choices.append(choice)
+
 
 def decode_answer_id(id: str):
     """
@@ -461,8 +595,41 @@ def decode_answer_id(id: str):
     return res
 
 
-# Regex to separate non-digits and digits
-regex_comment = re.compile(r"(\D*)(\d*)")
+def decode_answer_text(text: str):
+    """
+    Decode an obfuscated answer text, just like the `decodeX()` function
+    in `ClasseExerciceTAT.js`.
+    """
+    # The two chars at the end move to the beginning
+    if len(text) > 2:
+        text = text[-2:] + text[0:-2]
+    # Then it's a simple 1-to-1 character substitution
+    table = str.maketrans(
+        "bHOi4ph5sWlr1c2nI7LBuzgaUNv0FDXtm8SodePVqRfwGKkJMxAQjTC",
+        "ABCDFGHJKLNOPQTUVWXabcdfghjklnopqtuvwx0124578ierRImMsSz",
+    )
+    return text.translate(table)
+
+
+def decode_answer_text_macao12(text: str):
+    """Decode an obfuscated answer text, just like the function
+    `exo_ajouterReponse()` in macao_12 `ClasseExerciceTAT.js`."""
+    if text.startswith("#k"):
+        # Only some answers are encoded, indicated by a special marker
+        text = text[2:]  # trim the marker
+        # First 4 chars move to the end, for some reason
+        if len(text) > 5:
+            text = text[4:] + text[0:4]
+        # Split the string in groups of 3 chars (numbers), and
+        # use these groups as UTF-16 code units
+        return "".join(
+            [
+                int(text[i : i + 3]).to_bytes(2).decode("utf-16-be")
+                for i in range(0, len(text), 3)
+            ]
+        )
+    else:
+        return text
 
 
 def parse_page(graph: Graph, filepath: str, id: str):
@@ -483,7 +650,7 @@ def parse_page(graph: Graph, filepath: str, id: str):
     js = "\n".join((s.text_content() for s in scripts))
 
     activity = Activity()
-    parser = RegexParser(graph, id)
+    parser = RegexParser(id)
     try:
         activity: Activity = parser.parse(js)
     except ParseError as e:
diff --git a/tetras_extraction/script/src/test.py b/tetras_extraction/script/src/test.py
index 68c1a8d776e8353f6eede9b80a7747abb33864cb..2227603fe9c98c9fd9f318eac11bda44be69b3ae 100644
--- a/tetras_extraction/script/src/test.py
+++ b/tetras_extraction/script/src/test.py
@@ -117,7 +117,32 @@ class TestObjectCount(unittest.TestCase):
                 ?subj :correct ?correct .
                 ?subj :html ?html .
                 }""",
-            (180, 106, 180 + 106),
+            # The minus values are to account for missed gaps in TAT activities
+            # (see warnings when running the extraction), which are caused
+            # by a known but tricky bug
+            (258 - 30, 161, 258 - 30 + 161),
+        )
+        # Segments TAT
+        self.assertCount(
+            """SELECT * WHERE {
+                ?subj a :Segment .
+
+                ?subj :index ?index .
+                ?subj :text ?text .
+                MINUS { ?subj a :Champ }
+                }""",
+            (28, 42, 28 + 42),
+        )
+        # Champs TAT
+        self.assertCount(
+            """SELECT * WHERE {
+                ?subj a :Champ ;
+                      a :Segment .
+
+                ?subj :index ?index .
+                ?subj :selection ?selection .
+                }""",
+            (16, 18, 16 + 18),
         )
 
     def assertCount(
diff --git a/tetras_extraction/script/src/transform.py b/tetras_extraction/script/src/transform.py
index b3285bb9412d132c6bd2dc0d01c0fb8dfe270fb0..2269babd951fedc1311bae9e4987ecd3d02dc1d3 100644
--- a/tetras_extraction/script/src/transform.py
+++ b/tetras_extraction/script/src/transform.py
@@ -41,6 +41,16 @@ def prepareHTMLforMD(str):
     # Identify image content and add markups to identify them in the MD
     regexIMG = re.compile(r"<img.*?src=\"\.\./media/(.*?)\".*?>")
     str = regexIMG.sub(r"@IMAGESTART\1@IMAGEEND", str)
+    # Identify words supporting comments and add markups to identify them in the MD
+    regexANCHOR= re.compile(r"<a class=\"STY_lienComt\" href=\"javascript:CRS_afficherDetail\('(.)'\)\" onclick=\"enrPosClic\(event,'.'\)\">(.*?)</a>")
+    str = regexANCHOR.sub(r"@ANCHORSTART@\1@\2@ANCHOREND", str)
+    # Identify anchor words with related comment id and add markups to identify them in the MD
+    regexANCHOR= re.compile(r"<a class=\"STY_lienComt\" href=\"javascript:CRS_afficherDetail\('(.)'\)\" onclick=\"enrPosClic\(event,'.'\)\">(.*?)</a>")
+    str = regexANCHOR.sub(r"@ANCHORSTART@\1@\2@ANCHOREND", str)
+    # Identify comments ids  and add markups to identify them in the MD
+    regexCOMMENTID= re.compile(r"<div id=\"divCmt(.)\" onclick=\"SPE_clicDansBulle\(event,'.*?'\)\">")#(.*)</div>", re.MULTILINE)
+    str = regexCOMMENTID.sub(r"@COMMENTIDSTART@\1@COMMENTIDEND", str)
+
     return(str)
 
 
@@ -66,10 +76,24 @@ def postEditMD(str):
     regexIMG = re.compile(r"@IMAGESTART.*?@IMAGEEND")
     for imageElt in regexIMG.findall(str):
         imgFilename = imageElt.replace("@IMAGESTART","").replace("@IMAGEEND","").replace(r"\_","_")
-        imgHtml = '<img src="/macao-hugo/media/'+imgFilename+'" id="'+imgFilename+'"/>'
+        imgHtml = '<img style="vertical-align:middle;" src="/macao-hugo/media/'+imgFilename+'" id="'+imgFilename+'"/>'
         str = str.replace(imageElt, imgHtml)
     ###################################################
 
+    ###################################################
+    # Add html code to MD for comment anchors
+    ###################################################
+    # First for the words supporting the comments
+    regexANCHOR = re.compile(r"@ANCHORSTART@(.)@(.*?)@ANCHOREND")
+    str = regexANCHOR.sub(r"<span spanId='\1'>\2</span>", str)
+
+    # For the comments themselves
+    if '@COMMENTIDSTART' in str :
+        str = str.replace('@COMMENTIDSTART@','<div class="commentaireInfo" commentaireId="').replace('@COMMENTIDEND','">') + '</div>'
+
+
+    ###################################################
+
     # Add html for images and fix media paths
     regexIMG = re.compile(r"!\[\]\(\.\./media/(.*?)\)")
     str = regexIMG.sub(r"<img src='/macao-hugo/media/\1'>", str)
@@ -118,11 +142,15 @@ def transform_html(graph: Graph):
     for prop in html_properties:
         for t in graph.triples((None, NS[prop], None))  :
             desc_str = prepareHTMLforMD(t[2])
-            tmp = tempfile.NamedTemporaryFile(suffix=".html")
-            with open(tmp.name, 'w') as f:
-                f.write(desc_str)
-            mid = MarkItDown()
-            desc_md = postEditMD(mid.convert(tmp.name).text_content)
+            if desc_str == '':
+                desc_md = ''
+            else:
+                tmp = tempfile.NamedTemporaryFile(suffix=".html")
+                with open(tmp.name, 'w') as f:
+                    f.write(desc_str)
+                mid = MarkItDown()
+                tmp_md = mid.convert(tmp.name).text_content
+                desc_md = postEditMD(tmp_md)
             l = list(t)
             l[2] = Literal(desc_md)
             l[1] = NS[prop+'_md']
diff --git a/tetras_extraction/script/templates/activite.rq b/tetras_extraction/script/templates/activite.rq
index ad2284f0addeeba47be42c3dcdc5bf84db49c105..2d306b39c6402d72a83c238987ff729dfa7ea7be 100644
--- a/tetras_extraction/script/templates/activite.rq
+++ b/tetras_extraction/script/templates/activite.rq
@@ -15,11 +15,9 @@ template mt:activite(?act) {
 
     ?desc                                                                st:nl()
 
-    '<div class="commentaireInfoGroup">'                                 st:nl()
+    '<div class="commentaireInfoGroup" hidden="True">'                                 st:nl()
     group {
-        '<div class="commentaireInfo">'    st:nl()
             ?info_comment
-        '</div>'                           st:nl()
     }
     '</div>'                                                             st:nl()
 
diff --git a/tetras_extraction/script/templates/qcm.rq b/tetras_extraction/script/templates/qcm.rq
index 671b42d9e6ad2fb1b267cb280d5df7c268d31850..41e6a951024a84431b254127bdd7e57992cad7ff 100644
--- a/tetras_extraction/script/templates/qcm.rq
+++ b/tetras_extraction/script/templates/qcm.rq
@@ -7,7 +7,8 @@ PREFIX st: <http://ns.inria.fr/sparql-template/>
 
 # Template for the JSON definition of QCM activities
 template mt:qcm(?qcm) {
-'"name": "quizQuestion"' mt:sep()
+'"customFormat": "hide_disabled-checkboxes"' mt:sep()
+'"titleLocation": "hidden"' mt:sep()
 '"type": "checkbox"' mt:sep()
 '"name": "' ?id '"' mt:sep()
 '"choices": ['
diff --git a/tetras_extraction/script/templates/qcu.rq b/tetras_extraction/script/templates/qcu.rq
index cdc12e72437020f23dec551576615dd1333a818a..62db9d0ff69a1c334376ecae63f94b8dc60e410f 100644
--- a/tetras_extraction/script/templates/qcu.rq
+++ b/tetras_extraction/script/templates/qcu.rq
@@ -5,6 +5,7 @@ PREFIX st: <http://ns.inria.fr/sparql-template/>
 # Template for the JSON definition of QCU activities
 template mt:qcu(?qcu) {
     '"name": "' ?id '"' mt:sep()
+    '"titleLocation": "hidden"' mt:sep()
     '"type": "radiogroup"' mt:sep()
     '"choices": ['
     box {