'H'
-> est_un Lettre
-> membre_de Alphabet
-> représente Information
Lettre
-> est_un Objet_abstrait
-> spécialisation_de Symbol
...
PixelAAfficher
-> est_un Point
-> membre_de Ecran
...
'"'
-> est_un Englobeur
-> est_un Symbol
Symbol
-> spécialisation_de NimporteQuoi
NimporteQuoi
-> est_un trucmuch
trucmuch : char ****** ;
Bon, mais malgré ça, le "Parsing" ne prend qu'une petite demi-heure. C'est là qu'intervient la répartition, le clustering et Java LRMI :
Pour gagner du temps, et grâce à la connaissance du "Hello World" à afficher (instance d'Image qui est une représentation d'un texte) au niveau pixel, on décide d'utiliser une machine pour chaque pixel, ce sera 'achement plus efficace. Il faut d'abord déterminer combien de machines sont utiles (on ne calcule que les points à afficher) et leur demander de calculer leur point noir (ben oui, immanquablement le point sera noir, vu que les blancs ne nous intéressent pas (bon, on peut avoir d'autres couleurs, mais la base de connaissance rend la gestion automatique (dans le cas d'un simple anti-aliasing, on aura 256 machines par point : une par niveau de gris. Pour un texte en couleur, on aura 3x256 voire 4x256 machines par point) ) ) . Ensuite, les points sont renvoyés au serveur qui doit alors déterminer où vont les différents points. Pour ceci, il doit générer une image d'"Hello World" qu'il va remplir avec les points en retour.
Comme nous voulons une sécurité absolue et être sûr que chaque machine nous renvoie bien un pixel noir, et non un pixel noir pas super noir, nous utilisons 6 machines par point au lieu d'une. Ainsi nous sommes sûr du résultat. Si les 6 résultats ne sont pas strictement égaux, nous ne nous contentons pas de nous dire que la majorité a raison (on retrouve toujours des pixels noirs, c'est louche ! ), nous essayons de déterminer l'origine du problème à partir d'une base de connaissance sur le système puis nous relançons tout.
Ce système est super au point, mais voilà, il est possible que les pixels noirs ne soient pas du même type (philosophiquement, c'est forcé, la somme des erreurs quantiques et logiques finira par donner un pixel d'un type différent) ou s'appliquent à un domaine sémantique vaguement différent (quelle est l'implication sémantique de la position dans le mot ? ). Donc il faut adapter le pixel noir selon son type et sa position sémantique. Pour cela, nous utilisons une base d'ontologie "Pixels noirs" et un système multi-agent.
Finalement, il nous a fallu faire des choix techniques : la répartition c'est bien, mais sur une seule machine, c'est moins bien. Heureusement, nous avons les Java LRMI (Local as Remote Method Invocation), qui nous permet d'utiliser des objets locaux comme s'ils étaient distants.
Pour l'instant, on obtient une espèce de tache noire mais d'après notre base de connaissance, la tache noire est une conceptualisation de "Hello World". Donc c'est gagné !!!




Commentaires