L'idée du logiciel est donc née à l'automne 1996. Le prototype alors développé utilise l'environnement et le langage VisualBasic, version 3. Cet environnement de développement permet la réalisation relativement rapide de modèles fonctionnels et c'est de cette façon que furent produites les premières ébauches.
En parallèle avec la construction du modèle poursuivi, cette toute première étape a surtout pour but de vérifier la faisabilité du projet. C'est ainsi que sont étudiées les possibilités de déplacement des mots d'une liste à un espace graphique. À cette étape le but ultime du projet est la production d'un court texte utilisant ces stratégies de déplacements des mots. Le modèle utilisé est alors assez sommaire. La figure suivante en fait l'illustration.
Ce modèle décrit un processus conduisant à la construction du texte par l'accumulation du choix des mots dans une liste de mots. Le travail semble anodin et de réalisation relativement facile. En effet la mise en place des divers composants nécessaires à l'atteinte de cet objectif est rapidement réalisée avec un contenant graphique permettant l'affichage de la liste de mots et un espace pour recevoir la représentation graphique du mot extrait de la liste. Une série de procédures en permet la représentation graphique, qui produit une copie du mot choisi, entité autonome qui pourra être déposée dans un second contenant prévu à cet effet. Voici le détail de ces procédures:
- le mot est sélectionné (le bouton de gauche de la souris est enfoncé)
- tant que le bouton de souris est tenu enfoncé
- si la sélection est déplacée au-dessus de la zone de travail alors
- l'icône d'un fichier miniature apparaît au bout du pointeur
- si le bouton de souris est relâché alors le fichier est déposé
- le pointeur reprend son apparence normale (pointe de flèche)
- apparition graphique du mot dans la zone de travail
C'est sur cette suite en apparence banale, d'instructions cherchant à imiter les gestes courants du monde réel: prendre, déplacer, déposer; que se construisent les diverses procédures nécessaires à la mise en place d'un environnement organisé permettant des activités d'apprentissage. Ces premiers essais sont concluants et l'étape suivante concerne l'organisation de l'environnement.
Il n'est pas inutile de remarquer une réduction des objectifs, passant du texte à la phrase. C'est que la construction de la phrase en soi, devient, dans ce contexte, une entreprise qui demande un espace considérable. Ce qu'illustre finalement le passage de l'illustration précédente à cette dernière.
Mais plus important encore, le concept de liste de mots, dans toute sa simplicité, se révèle rapidement trop puissant pour permettre une utilisation efficace dans le contexte mentionné.
En effet, si quelques mots dans une liste sont faciles à repérer, lorsque leur nombre s'accroît, le temps pris pour les retrouver dans la liste s'accroît aussi et allourdit rapidement ce qui se voulait une façon rapide de réaliser la construction d'une phrase. Les moyens mis en oeuvre pour résoudre ce problème créeront une nouvelle situation, qui deviendra un lieu d'exploration fascinant: l'utilisation des catégories grammaticales.
L'application d'une division en catégories grammaticales d'une liste donnée, en plus de réduire le nombre de mots dans la liste affichée, apporte un élément de contrôle non négligeable, l'appartenance pour les mots, à des catégories distinctes. Cet élément de contrôle jouera un rôle déterminant permettant la distinction des divers types de mots, et par là même, des diverses propriétés qui le caractérisent.
Dans notre approche, cette perspective est nouvelle et bouscule en quelque sorte l'idée première motivant le développement du logiciel, celle de produire un texte. L'utilisation des catégories grammaticales pour classer les mots révèle un champ d'exploration dynamique pour lequel de nombreuses recherches sont déjà en cours, en particulier dans le domaine de l'intelligence artificielle, du traitement du langage naturel, de la linquistique et de la syntaxe fonctionnelle.
La division alphabétique est pratique et s'installe facilement. Un jeu de boutons ou
d'onglets permettant d'afficher que les mots commençant par une lettre donnée réduit
efficacement la taille du lexique.
L'utilisation de cette solution demande quelque prudence toutefois. Son application systématique créée une suite de boutons correspondant au nombre de lettres de l'alphabet (26) ce qui constitue un nombre relativement imposant de boutons et rend la solution peu avantageuse.
Le simple alignement des lettres de l'alphabet, les unes à la suite des autres occupe
d'ailleurs moins d'espace physique à l'horizontale que disposé en colonne.
Malheureusement cette disposition est peu pratique si elle doit accompagner une liste
de mots disposée à la verticale.
On règlera ce problème en regroupant par groupe de 4 ou 5 les lettres. Le nombre de contrôles nécessaires pour afficher les diverses sous-listes est alors réduit à 5, ce qui permet la création d'un système un peu plus efficace en offrant l'occasion d'un choix un peu moins étendu. Cette solution répond de plus à l'inégalité de répartition des mots dans les diverses catégories alphabétiques en appliquant une répartition un peu plus uniforme entre les catégories.
On peut noter ici que diverses autres solutions de regroupement sont possibles mais qu'elles sont nécessairement liées à un choix de design d'interface. La solution adoptée ici nous semblait la plus appropriée ainsi que la plus économique en termes d'espace à l'écran.
Contrairement à la solution de la division des catégories grammaticales, le système utilisé dans les divisions alphabétiques utilise un composant liste unique pour l'affichage des diverses sous-listes. La chose est possible puisque l'on n'affiche toujours qu'une liste à la fois. L'ensemble des sous-listes sont construites et résident en mémoire. La liste choisie est appelée et affichée dans le contrôle-liste effaçant ainsi les mots qui s'y trouvaient au préalable.
L'application de cette stratégie aux catégories grammaticales pourra donner un résultat semblable à celui de cette illustration. Cette solution est économique parce qu'elle limite le nombre de composants nécessaires pour l'affichage et du coup réduit la quantité de ressources nécessaires. Elle sera préviligiée à chaque fois que la chose sera possible.
Une réflexion sur la meilleure façon d'organiser l'ensemble des éléments à l'écran appartient au domaine du design d'interface. Parler de design d'interface suppose comme réalisables les stratégies et routines techniques étudiées. Cela suppose en effet des possibilités de développement réelles qui permettent de se soucier de l'affichage à l'écran et de l'interaction offerte à l'utilisateur. Ce sont des considérations qui appartiennent à la réalisation d'une version utilisable du programme informatique et nous situons à peu près vers ce moment la naissance de ce qu'il sera convenu d'appeler la version 1 du logiciel.
La mise en place des listes et du dispositif de récupération des mots révèle soudain et attire l'attention sur ce mot déposé dans la zone de travail. Il deviendra le centre de préoccupation, l'élément atomique autour duquel se regrouperont les travaux suivants.
Cet objet déposé dans la zone de travail, est en fait une représentation graphique du mot.
Il faut le considérer comme une incarnation de la suite de gestes posés et une instanciation
du mot de la liste, qui aura servi de géniteur. L'esprit du travail est là. Son essence aussi.
Sur le plan graphique, le mot doit posséder des propriétés qui le rendent visible d'une part
et qui permettent d'atteindre sa zone d'édition et de modification déterminant ses fluctuations
grammaticales ou lexicales. C'est le niveau de l'interface du mot. Sur le plan de la
fonctionnalité, le mot doit posséder ces possibilités de fluctuations et de permutations
ainsi que les diverses commandes et fonctions permettant d'y accéder.
Au moment de la saisie, l'objet mot reçoit, en plus de la suite de caractères le constituant, les propriétés grammaticales de la liste. Pour permettre l'assemblage ultérieur d'une suite de mots en phrase, il devra en effet posséder une identité distincte, qui gouvernera ses rapports avec les autres membres de la phrase. La phrase étant résultat d'un rapport particulier des mots la composant, la représentation graphique du mot sera l'expression de ses propriétés.
Ce sont encore ces propriétés qui devront être utilisées pour créer et appliquer l'accord des mots entre eux. La réalisation de l'accord, ou de la conjuguaison des mots suppose l'existence de façon de distinguer ces objets graphiques les uns des autres. Lorsque cette distinction existe, on peut procéder à ces activités en modifiant les propriétés de ces divers objets-mots. L'accord et la modification des mots résulte alors de la modification des propriétés d'un objet malléable ou encore configurable. Selon le genre de mots, répondant à une catégorie grammaticale, l'objet possèdera des attributs distincts, ainsi que des méthodes distinctes. Par méthode l'on entend les diverses fonctions et procédures attachées à une classe donnée.
Bien que l'on distinguera ultérieurement une utilisation plus spécifique du terme de classe c'est en fait de cela qu'il s'agit ici, au moment de la catégorisation des types de mots. Dans cette première version, il n'est pas encore question de la division entre catégories lexicales et grammaticales. Les catégories sont donc au nombre de 7 dont seulement les trois premières, noms, verbes et adjectifs, possèdent des propriétés liées à l'accord (la catégorie lexicale). Les quatre autres, déterminants, pronoms, prépositions et adverbes, constituent une liste finie dont les éléments ont été classés selon leurs attributs de genre et de nombre. Le tableau qui suit donne une idée des éléments alors traités, dans chacune des trois catégories lexicales.
catégorie | propriétés |
---|---|
nom |
lexique: suite de caractères genre: 0 ou 1 nombre: 0 ou 1 |
adjectif |
lexique: suite de caractères genre: 0 ou 1 nombre: 0 ou 1 |
verbes |
lexique: suite de caractères personne: 1..6 temps: 0..3.. groupe: 1,2,3 radical: n caract. |
On parle de la première version comme du moment où se réalise la mise en place des diverses solutions trouvées lors des étapes précédentes. Cette première version permet la création de courtes phrases dans un chevalet après un passage obligé par une zone de travail. Dans la zone de travail il est possible de voir à l'accord des divers mots choisis.
Deux faits marquants caractérisent cette première période: d'abord le passage du projet de traitement de texte à celui de jeu grammatical et le développement d'une interface visuelle qui résoud divers problèmes de présentation responsables de l'utilisation qu'en fera l'utilisateur.
En effet rappelons que le but premier était la création d'un traitement de texte permettant aux jeunes scripteurs de composer un texte sans l'utilisation du clavier pour lequel il est peu doué. La création des divers mécanismes nécessaires pour permettre cette opération prit tant de place qu'elle mit au second plan la réalisation finale d'un texte, révélant par contre l'importance du jeu des propriétés des mots et de l'environnement qui le permet.
L'identification des objectifs liés à la réalisation de cette tâche ont tous le mot comme première préoccupation. Ce mot devenu objet se verra attribuer des propriétés et il sera finalement classé dans des listes appariées.Voici une liste des réalisations qu'implique cette tâche.
touchant principalement l'interface:Sur le plan de la programmation et des routines développées, l'accent a surtout été mis sur la mise en place de procédures permettant:
- la taille des listes de mots
- la manipulation des objets-mots
- l'édition des objets-mots permettant leur accord
- la création de l'ensemble de l'environnement (interface) et du concept
souhaité:
- La classification grammaticale des listes de mots
- La mise en place de paramètres permettant la reconnaissance des propriétés des mots. Ces propriétés seront utilisées pour établir l'accord du mot
- L'utilisation de la manipulation directe dans la réalisation des diverses tâches et faisant ainsi le pont avec l'interface.
Aucune routine de vérification n'est encore en place et il est impossible de vérifier la validité des phrases produites.