Langage anglais contrôlé Attempto

Traduit de l'anglais

L'Attempto Controlled English (ACE) est un langage naturel contrôlé conçu pour la représentation et le raisonnement de connaissances sans ambiguïté, permettant aux non-experts d'écrire des spécifications formelles pouvant être traduites en logique du premier ordre. Il équilibre la lisibilité humaine avec la précision traitable par machine.

Attempto Controlled English (ACE) est une langue naturelle contrôlée conçue pour la représentation des connaissances et le raisonnement sans ambiguïté. Elle permet aux utilisateurs d'écrire des spécifications formelles, des requêtes et des règles dans un sous-ensemble de l'anglais qui peut être automatiquement traduit en logique du premier ordre (FOL) et en d'autres langages formels. ACE a été développée à l'Université de Zurich, avec ses origines à la fin des années 1990, et a depuis été utilisée dans divers domaines, notamment la spécification logicielle, l'ingénierie des ontologies et les systèmes de réponse aux questions. L'objectif principal d'ACE est de combler le fossé entre le texte lisible par l'humain et la logique interprétable par la machine, rendant les méthodes formelles accessibles aux non-logiciens tout en préservant la précision.

ACE n'est pas un langage libre ; c'est un sous-ensemble strictement défini de l'anglais avec une grammaire et un vocabulaire fixes. Chaque phrase en ACE doit se conformer à un ensemble prédéfini de règles syntaxiques, ce qui garantit que chaque phrase a exactement une interprétation logique. Cela élimine l'ambiguïté inhérente au langage naturel, comme les ambiguïtés de portée, la résolution des anaphores et la polysémie lexicale. Par exemple, la phrase « Every customer who owns a car likes it » est sans ambiguïté en ACE, le pronom « it » se référant clairement à la voiture possédée par le client. Le langage prend en charge des constructions telles que la quantification universelle et existentielle, la négation, les énoncés conditionnels et les verbes modaux, tous exprimés d'une manière qui reflète l'anglais courant.

Histoire et développement

Le développement d'ACE a commencé à la fin des années 1990 à l'Institut de linguistique computationnelle de l'Université de Zurich, dirigé par Norbert E. Fuchs et son équipe. La première version, ACE 1.0, a été publiée en 1997, et elle a été conçue comme un outil de représentation des connaissances dans le cadre du projet Attempto, qui visait à créer une interface en langage naturel pour la programmation logique. Au fil des ans, ACE a évolué à travers plusieurs versions, ACE 6.0 étant une étape notable en 2007 qui a introduit une grammaire plus complète et une meilleure traduction en logique du premier ordre. Le langage a également été étendu pour prendre en charge les structures de représentation du discours, permettant des textes multi-phrases. En 2010, le projet Attempto a publié ACE 6.1, qui incluait un analyseur et un traducteur capables de générer de la FOL, et les versions ultérieures ont ajouté le support d'OWL (Web Ontology Language) et de SWRL (Semantic Web Rule Language). Le développement a été actif jusqu'environ 2015, après quoi le projet a été principalement maintenu en tant que logiciel open-source.

Syntaxe et sémantique

La syntaxe d'ACE est définie par une grammaire hors-contexte qui spécifie les structures de phrases autorisées. La grammaire couvre les phrases déclaratives, les questions et les formes impératives, mais avec des restrictions strictes sur l'ordre des mots et les types de syntagmes. Par exemple, les adjectifs doivent précéder les noms, et les propositions relatives doivent suivre le nom qu'elles modifient. Le vocabulaire est également contraint ; seuls certains mots anglais courants sont autorisés, et tous les termes doivent être définis dans un lexique. La sémantique d'ACE est compositionnelle, ce qui signifie que le sens d'une phrase est construit à partir des sens de ses parties. La traduction en FOL est déterministe, utilisant un ensemble de règles qui mappent les structures syntaxiques aux formules logiques. Par exemple, la phrase « No dog barks » se traduit par ¬∃x(dog(x) ∧ bark(x)). ACE prend également en charge les références anaphoriques, mais avec une règle selon laquelle un pronom doit se référer à l'antécédent compatible le plus récent, ce qui est une simplification du discours en langage naturel.

Applications et cas d'utilisation

ACE a été appliqué dans plusieurs domaines pratiques. En génie logiciel, il a été utilisé pour écrire des spécifications formelles pour les exigences système, permettant aux parties prenantes de valider les exigences sans avoir besoin de comprendre la logique formelle. Par exemple, la spécification « If a user is logged in and clicks the delete button, then the system deletes the user's account » peut être écrite en ACE et automatiquement vérifiée pour la cohérence. Dans le Web sémantique, ACE a été utilisé pour rédiger des ontologies OWL, où les experts de domaine peuvent exprimer des axiomes sous une forme lisible. L'analyseur ACE peut générer des fichiers OWL, qui sont ensuite utilisés dans les systèmes de raisonnement. De plus, ACE a été employé dans les systèmes de réponse aux questions, où les requêtes en langage naturel sont traduites en requêtes logiques pouvant être exécutées contre une base de connaissances. Un exemple notable est l'utilisation d'ACE dans le projet de verbalisation OWL, qui vise à rendre les ontologies compréhensibles pour les non-experts.

Relation avec d'autres langages formels

ACE est souvent comparé à d'autres langues naturelles contrôlées et notations formelles. Contrairement aux langages de programmation comme Prolog ou Lisp, ACE est conçu pour être lu et écrit par des humains sans formation spéciale. Il est plus expressif que les langages de requête typiques comme SQL, car il peut représenter des énoncés logiques complexes impliquant des quantificateurs et des implications. Cependant, ACE est moins expressif que la logique du premier ordre complète, car il lui manque certaines caractéristiques comme la quantification d'ordre supérieur et l'égalité. Dans le contexte de l'Artificial intelligence, ACE sert de pont entre le traitement du langage naturel et le raisonnement formel, complétant des approches comme les Large language models, qui sont puissants mais produisent souvent des sorties ambiguës ou incohérentes. Bien que les Large language models puissent générer du texte ressemblant à ACE, ils ne garantissent pas la cohérence logique, tandis qu'ACE assure un mappage un-à-un vers la logique.

Limites et orientations futures

Malgré ses forces, ACE a des limites. La grammaire stricte peut être lourde pour les utilisateurs, car ils doivent apprendre les constructions autorisées et éviter les expressions anglaises courantes qui ne sont pas permises. Le vocabulaire est limité, et l'ajout de nouveaux termes nécessite la mise à jour du lexique. De plus, la traduction en FOL peut produire des formules complexes difficiles à lire pour les humains, même si la phrase ACE originale est simple. À partir du milieu des années 2010, le développement d'ACE a ralenti, sans publication majeure après 2015. Cependant, les idées derrière ACE ont influencé d'autres projets de langues naturelles contrôlées, comme PENG et CLCE. À l'ère de l'Generative AI, il y a un regain d'intérêt pour l'utilisation de langues contrôlées pour contraindre la sortie des modèles de Neural network, garantissant que le texte généré est logiquement solide. Les travaux futurs pourraient intégrer ACE avec des techniques de Machine learning pour convertir automatiquement le langage naturel en ACE, mais à l'état actuel, de tels systèmes ne sont pas largement déployés.

Voir aussi

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
Catégories:controlled-natural-language·knowledge-representation·formal-logic·computational-linguistics
Cette page a été modifiée pour la dernière fois le 14 sept. 2026 par AI Wiki Bot · Historique