Je peux te donner quelques pistes sur le principe de fonctionnement de Tads3 qui n'existe qu'en anglais. A un moment j'ai essayé de regarder comment le traduire en français, et niveau grammaire/conjugaison le français est plus complexe que l'anglais, ce qui fait que j'ai abandonné.
Mais en gros, c'est un système qui est codé en objet, avec héritage multiple.
Par exemple pour résoudre les problèmes de genre et de nombres, chaque "objet" au sens programmation à un attribut "isFemale" et "isPlural".
Ensuite lorsque tu reconstitues une réponse, tu te sers de ses infos pour accorder comme il faut.
Par exemple, avec isFemale = vraie et isPlural = vraie :
-> ramasser rations de survie
-> ration de survie ramassées.
Sinon pour te simplifier la vie et en général en français, les commandes commencent toujours par le verbe.
Par exemple:
--> embarquer hector sur bateau
Et tu définis quelque part, qu'avec le verbe embarquer.
Une phrase se contruit comme
[embarquer] (objet) [sur] (objet)
Quand tu reçois une commande quelconque:
1. tu découpes tout les mots séparé par un espace et tu les stockes dans un tableau.
2. tu enlèves tous les articles "le, les, un,.." etc, sauf si un article cardinal ("trois", "quatre")
3. tu identifies le verbe qui est toujours en début de tableau, tu vérifies que tu le connais.
4. tu vérifies si la phrase respecte bien la structure de phrase associée au verbe. Par exemple, embarquer X sur Y. Pour certains verbes il peut y avoir plusieurs construction valable. Par exemple, "se coucher" et "se coucher sur".
5. Ensuite tu essayes d'identifier X et Y. Tu vérifies que X est bien un objet "embarquable" et qu'on peut bien embarquer sur Y.
Et si tout est bon tu executes la commande et tu renvois un message comme quoi c'est fait .
Un des problèmes en français c'est avec les adjectifs. En anglais, ils sont toujours avant le "nom". Donc c'est facile de trouver où est le nom dans une phrase, il est souvent à la fin.
--> take the big blue ball.
contre en français
--> prendre la grosse balle bleue.
En base de donné, pour chaque objet, il va avoir un nom, un identifiant, une description, etc... et surtout un champ avec les mots-clés que tu peux utiliser pour désigner l'objet.
Par exemple, pour un bateau, dans le champ des mots-clés tu peux mettre "bateau", "navire", "concombre mer" comme ça tu accepteras les commandes "monter sur bateau", "monter sur navire", "monter sur concombre de mer".
Si, la requête sur "bateau" te renvoit deux réponses parce qu'il y a deux bateaux présents, à ce moment là il faut lever l'ambiguïté et retourner une alternative à l'utilisateur.
--> Voulez-vous monter sur l'Invincible ou le Conquérant ?
Mais en gros, c'est un système qui est codé en objet, avec héritage multiple.
Par exemple pour résoudre les problèmes de genre et de nombres, chaque "objet" au sens programmation à un attribut "isFemale" et "isPlural".
Ensuite lorsque tu reconstitues une réponse, tu te sers de ses infos pour accorder comme il faut.
Par exemple, avec isFemale = vraie et isPlural = vraie :
-> ramasser rations de survie
-> ration de survie ramassées.
Sinon pour te simplifier la vie et en général en français, les commandes commencent toujours par le verbe.
Par exemple:
--> embarquer hector sur bateau
Et tu définis quelque part, qu'avec le verbe embarquer.
Une phrase se contruit comme
[embarquer] (objet) [sur] (objet)
Quand tu reçois une commande quelconque:
1. tu découpes tout les mots séparé par un espace et tu les stockes dans un tableau.
2. tu enlèves tous les articles "le, les, un,.." etc, sauf si un article cardinal ("trois", "quatre")
3. tu identifies le verbe qui est toujours en début de tableau, tu vérifies que tu le connais.
4. tu vérifies si la phrase respecte bien la structure de phrase associée au verbe. Par exemple, embarquer X sur Y. Pour certains verbes il peut y avoir plusieurs construction valable. Par exemple, "se coucher" et "se coucher sur".
5. Ensuite tu essayes d'identifier X et Y. Tu vérifies que X est bien un objet "embarquable" et qu'on peut bien embarquer sur Y.
Et si tout est bon tu executes la commande et tu renvois un message comme quoi c'est fait .
Un des problèmes en français c'est avec les adjectifs. En anglais, ils sont toujours avant le "nom". Donc c'est facile de trouver où est le nom dans une phrase, il est souvent à la fin.
--> take the big blue ball.
contre en français
--> prendre la grosse balle bleue.
En base de donné, pour chaque objet, il va avoir un nom, un identifiant, une description, etc... et surtout un champ avec les mots-clés que tu peux utiliser pour désigner l'objet.
Par exemple, pour un bateau, dans le champ des mots-clés tu peux mettre "bateau", "navire", "concombre mer" comme ça tu accepteras les commandes "monter sur bateau", "monter sur navire", "monter sur concombre de mer".
Si, la requête sur "bateau" te renvoit deux réponses parce qu'il y a deux bateaux présents, à ce moment là il faut lever l'ambiguïté et retourner une alternative à l'utilisateur.
--> Voulez-vous monter sur l'Invincible ou le Conquérant ?