Interpréteur de langage naturel - Sabrina Giroux

But de l’application :

Mon programme servirait à interagir avec son ordinateur en utilisant le langage naturel. Il va permettre d’exécuter des commandes. Ces commandes permettront d’exécuter certaine tâche sur l’ordinateur comme :

ouvrir un fichier ou logiciel X

copier un fichier quelque part

Fonctionnement vu par l’utilisateur :

Pour l’utilisateur il lui suffira de rentrer sa demande dans une partie de l’interface et d’appuyer sur enter. Après que l’ordinateur ait fini d’analyser la commande (et de lancer l’exécution si c’est possible) il va afficher à l’utilisateur une réponse pour lui signifier s’il a pu faire ce qu’il demandait.

 

Fonctionnement à l’interne :

Le logiciel est séparé en 4 parties. Ces parties sont l’interface (le GUI), le traitement, l’exécution de commande et l’affichage de réponse.

 

L’interface qui va envoyer les commandes a traiter et démarrer de nouveau fils de traitement s’il voit qu’il y a plus de traitement demander que de fil libre.

 

La partie traitement qui va analyser la demande sur plusieurs point pour voir si c’est une commande et la décortiquer pour l’envoyer a la partie commande selon un certain standard. Elle va envoyer un message directement a la partie réponse si elle détecte que se n’est pas une commande.

 

La partie commande va essayer d’exécuter la commande et envoyer une réponse a la partie réponse selon s’il a été capable de l’exécuter ou non.

 

La partie réponse prend une réponse et l’affiche à l’écran pour l’utilisateur. Il est séparer car il pourrait aussi inscrire cette réponse et la commande associé dans un fichier pour garder un historique.

Fonctionnement partie ift630 :

Je vais faire fonctionner le lien entre les différentes parties de traitement pour une commande comme un pipline. Ainsi, l’interface va mettre dans un buffer le texte qu’il vient de recevoir pour que la partie traitement puis cette partie le placera dans un autre tampon pour la partie commande. Le fonctionnement sera le même entre commande et réponse.

 

Je vais également permettre de lancer plusieurs commandes pas sur la même ligne, car cela impliquerait un prétraitement qui serait pratiquement complet pour voir qu’il y a plus d’une commande mais si l’utilisateur lance une autre commande peu importe ou se trouve la précédente je vais envoyer la commande ce faire traiter, un peu comme dans le traitement maitre-esclave utiliser dans les travaux pratiques. L’interface serait le maitre et les traitements les esclaves.