Cours PLURITAL 2005-2006

Corrigé de l'examen du 10 janvier 2006

L'énoncé (en pdf)

Les trois exercices proposés sont plus ou moins directement issus de situations qui ont été effectivement rencontrées.
C'est pourquoi ils se présentent comme des énigmes.
On attend des étudiants un raisonnement cohérent visant à rétablir la rationalité cachée derrière les accidents apparents,
plus que la solution de ces énigmes elle-même.

Première question

On observe que :
Ceci dénonce un codage original en Unicode UTF-8,
où les caractères non-accentués sont représentés par un seul octet et les caractères accentués par deux octets,
mal compris par le Macintosh qui applique son codage ordinaire MacRoman sur 8 bits,
et aussi par le PC qui applique le codage Windows-Latin1, également sur 8 bits.
Dans les deux cas, les caractères ASCII 7 bits sont interprétés de la même façon,
qui est aussi celle d'UTF-8, ce qui explique la concordance entre les trois versions.
Rien ne va plus sur les doubles octets des caractères accentués !

On peut pousser plus loin la vérification : à l'aide des tables MacRoman et Windows-Latin1,
on constate que des couples différents en apparence traduisent en fait les mêmes octets :
en MacRoman, "√" = C3, de même que "Ã" en Windows-Latin1, etc.,
à l'exception de "A." qui selon l'énoncé est censé traduire "ä" en Windows-Latin1, et qui devrait être "ä".
[Vérification faite, cette exception est due à une erreur de transcodage dans la préparation matérielle de l'énoncé !
On n'est jamais assez soigneux...
]

Car.MacPCOct.
ü√°Ã¼C3 BC
ä√§Ã¤C3 A4
ö√∂öC3 B6
â√¢Ã¢C3 A2

On retrouve bien dans le bloc Unicode Supplément Latin-1 que ces octets représentent les caractères en question
en UTF-8.
Il est donc établi au-delà de tout doute raisonnable que le codage original était UTF-8.

Deuxième question

a) L'apparence sous Windows est d'abord celle d'une seule et longue ligne, alors que l'original en comportait plusieurs.
Plus précisément, on observe que les sauts de ligne de l'original ont entièrement disparu, ne laissant pas même un blanc
sur l'image Windows.
Ceci est dû au codage des sauts de ligne dans les fichiers texte, qui sous Unix (et en particulier sous Linux)
sont traduits par le seul caractère "LF" (hex. 0A) et sous Windows par la séquence "CR LF" (hex. 0A 0D).
L'utilitaire "bloc note" de Windows n'interprète donc pas les "LF" du fichier Linux, d'où la longue ligne observée.

b) L'autre phénomène apparent est l'apparition d'une fraction représentée par un seul caractère "½" à la place de "œ".
Cette incongruité laisse entendre que les deux systèmes n'utilisent pas la même table de codage, bien qu'ils concordent
sur tous les autres caractères accentués.
Leur concordance s'explique par le fait qu'ils emploient deux variantes de la table ISO-8859-1,
bien connue pour ne pas comporter  la lettre  "œ" de l'alphabet français.
Il s'agit de ISO-8859-15, alias Latin-9, utilisé par les versions françaises de Linux avant d'adopter Unicode-UTF-8.

Et maintenant, pouvez-vous prévoir ce que donnerait le texte en UTF-8 de la première question dans l'éditeur KWrite
utilisé dans la deuxième ?

Troisième question

Cet exercice reproduit sans changement un problème que j'ai rencontré, et que j'ai mis un certain temps à résoudre.

L'image affichée est bizarre : pourquoi le c cédille et le a accent grave sont-ils les seuls caractères maltraités,
alors que les autres caractères accentués sont affichés normalement ?
Seraient-ils corrompus par un accident de transmission ? Non, car...
comment se fait-il qu'ils soient lus correctement sous Windows ?

Comme il s'agit d'une page Web, seuls sont en cause les réglages du navigateur en matière de codage des caractères.
Nous pouvons conclure sans autre forme de procès que le réglage du navigateur du Macintosh était inadéquat, alors
que celui du navigateur sous Windows était le bon. Et nous pouvons conseiller illico à l'utilisateur du Macintosh
d'adopter ce dernier réglage, qui selon toute vraisemblance sera quelque chose comme "Occidental(ISO Latin-1)".

L'expérience montre que cette médecine est efficace.
Mais nous ne comprenons pas pourquoi les "autres lettres accentuées" ont été affichées normalement
avec le "mauvais réglage". Elles auraient toutes dû engendrer la même erreur que "ç" et "à" ! Yapadraison !

Pour en savoir davantage, il faut avoir accès au texte HTML de la page lui-même
(et non pas à une version enregistrée avec l'option "page Web complète", qui aura été recodée au passage).
En voici la partie centrale :
      <p> Les agents logiciels sont consid&eacute;r&eacute;s comme un nouveau 
mod&egrave;le informatique des syst&egrave;mes de calcul distribu&eacute;s,
complexes, ouverts et h&eacute;t&eacute;rog&egrave;nes. De nos jours,
un nombre de plus en plus grand de syst&egrave;mes logiciels sont vus
et con�us en termes d'agents et de syst&egrave;mes multi-agents dans lesquels
les composantes logiciels agissent plut&ocirc;t comme des entit&eacute;s
individuelles ind&eacute;pendantes, notamment agents, au lieu d'&ecirc;tre
uniquement des composantes du syst&egrave;me. Les syst&egrave;mes multi-agents
comprennent des id&eacute;es et techniques venant de plusieurs disciplines
: calcul distribu&eacute;, intelligence artificielle, sociologie, sciences
de la gestion et des organisations, mais aussi biologie, psychologie et
philosophie.
</p><p> Ce cours represente la deuxi&egrave;me partie d'une suite de deux cours
sur l'intelligence artificielle et les agents intelligents. Vous pouvez
acqu&eacute;rir les connaissances n&eacute;cessaires � suivre ce cours
en suivant la premi&egrave;re partie <a class="link-in-text" href="/uvfphp/"
target="_blank">"Repr&eacute;sentation
logique des connaissances pour les agents intelligents"</a>

On y découvre que le texte est en ASCII 7 bits, les caractères accentués étant représentés par des "entités" HTML
(p.ex. e accent aigu par &eacute;), à l'exception de deux "fautes de frappe" où le c cédille et le a accent grave
on été tapés directement au clavier - et subrepticement codés en Windows-Latin1 !
Et voila pourquoi votre fille est muette !