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 {