Attempto Controlled English (ACE) ist eine kontrollierte natürliche Sprache, die für eindeutige Wissensrepräsentation und logisches Schließen entwickelt wurde. Sie ermöglicht es Benutzern, formale Spezifikationen, Abfragen und Regeln in einer Teilmenge des Englischen zu verfassen, die automatisch in Prädikatenlogik erster Stufe (FOL) und andere formale Sprachen übersetzt werden kann. ACE wurde an der Universität Zürich entwickelt, mit Ursprüngen in den späten 1990er Jahren, und wird seitdem in verschiedenen Bereichen eingesetzt, darunter Softwarespezifikation, Ontologie-Engineering und Frage-Antwort-Systeme. Das Hauptziel von ACE ist es, die Kluft zwischen menschenlesbarem Text und maschineninterpretierbarer Logik zu überbrücken, indem formale Methoden für Nicht-Logiker zugänglich gemacht werden, während die Präzision erhalten bleibt.
ACE ist keine freie Sprache; es ist eine streng definierte Teilmenge des Englischen mit einer festen Grammatik und einem festen Vokabular. Jeder Satz in ACE muss einer vordefinierten Menge syntaktischer Regeln entsprechen, was sicherstellt, dass jeder Satz genau eine logische Interpretation hat. Dies beseitigt die Mehrdeutigkeit, die natürlichen Sprachen innewohnt, wie etwa Skopus-Mehrdeutigkeiten, Anaphernauflösung und lexikalische Polysemie. Zum Beispiel ist der Satz „Jeder Kunde, der ein Auto besitzt, mag es" in ACE eindeutig, wobei sich das Pronomen „es" klar auf das Auto bezieht, das der Kunde besitzt. Die Sprache unterstützt Konstrukte wie universelle und existenzielle Quantifizierung, Negation, Konditionalsätze und Modalverben, die alle in einer Weise ausgedrückt werden, die der alltäglichen englischen Sprache entspricht.
Geschichte und Entwicklung
Die Entwicklung von ACE begann in den späten 1990er Jahren am Institut für Computerlinguistik der Universität Zürich, geleitet von Norbert E. Fuchs und seinem Team. Die erste Version, ACE 1.0, wurde 1997 veröffentlicht und als Werkzeug für die Wissensrepräsentation im Kontext des Attempto-Projekts konzipiert, das darauf abzielte, eine natürliche Sprachschnittstelle für logische Programmierung zu schaffen. Im Laufe der Jahre entwickelte sich ACE durch mehrere Versionen, wobei ACE 6.0 im Jahr 2007 ein bemerkenswerter Meilenstein war, der eine umfassendere Grammatik und eine verbesserte Übersetzung in Prädikatenlogik erster Stufe einführte. Die Sprache wurde auch erweitert, um Diskursrepräsentationsstrukturen zu unterstützen, die mehrsätzige Texte ermöglichen. Im Jahr 2010 veröffentlichte das Attempto-Projekt ACE 6.1, das einen Parser und einen Übersetzer enthielt, die FOL generieren konnten, und spätere Versionen fügten Unterstützung für OWL (Web Ontology Language) und SWRL (Semantic Web Rule Language) hinzu. Die Entwicklung war bis etwa 2015 aktiv, danach wurde das Projekt weitgehend als Open-Source-Software gepflegt.
Syntax und Semantik
Die Syntax von ACE wird durch eine kontextfreie Grammatik definiert, die die zulässigen Satzstrukturen festlegt. Die Grammatik umfasst Aussagesätze, Fragen und Imperativformen, jedoch mit strengen Einschränkungen hinsichtlich Wortstellung und Phrasentypen. Zum Beispiel müssen Adjektive vor Substantiven stehen, und Relativsätze müssen dem Substantiv folgen, das sie modifizieren. Auch das Vokabular ist eingeschränkt; nur bestimmte gebräuchliche englische Wörter sind erlaubt, und alle Begriffe müssen in einem Lexikon definiert sein. Die Semantik von ACE ist kompositional, was bedeutet, dass die Bedeutung eines Satzes aus den Bedeutungen seiner Teile aufgebaut wird. Die Übersetzung in FOL ist deterministisch und verwendet eine Reihe von Regeln, die syntaktische Strukturen auf logische Formeln abbilden. Zum Beispiel übersetzt sich der Satz „No dog barks" zu ¬∃x(dog(x) ∧ bark(x)). ACE unterstützt auch anaphorische Referenzen, jedoch mit der Regel, dass sich ein Pronomen auf das jüngste kompatible Antezedens beziehen muss, was eine Vereinfachung des natürlichen Sprachdiskurses darstellt.
Anwendungen und Einsatzfälle
ACE wurde in mehreren praktischen Bereichen angewendet. Im Software-Engineering wird es verwendet, um formale Spezifikationen für Systemanforderungen zu schreiben, sodass Stakeholder Anforderungen validieren können, ohne formale Logik verstehen zu müssen. Zum Beispiel kann die Spezifikation „Wenn ein Benutzer angemeldet ist und die Löschtaste klickt, dann löscht das System das Konto des Benutzers" in ACE geschrieben und automatisch auf Konsistenz geprüft werden. Im Semantic Web wird ACE verwendet, um OWL-Ontologien zu erstellen, wobei Domänenexperten Axiome in lesbarer Form ausdrücken können. Der ACE-Parser kann OWL-Dateien generieren, die dann in Schließungssystemen verwendet werden. Darüber hinaus wurde ACE in Frage-Antwort-Systemen eingesetzt, bei denen natürliche Sprachabfragen in logische Abfragen übersetzt werden, die gegen eine Wissensbasis ausgeführt werden können. Ein bemerkenswertes Beispiel ist die Verwendung von ACE im OWL-Verbalisierungsprojekt, das darauf abzielt, Ontologien für Nicht-Experten verständlich zu machen.
Beziehung zu anderen formalen Sprachen
ACE wird oft mit anderen kontrollierten natürlichen Sprachen und formalen Notationen verglichen. Im Gegensatz zu Programmiersprachen wie Prolog oder Lisp ist ACE darauf ausgelegt, von Menschen ohne spezielle Ausbildung gelesen und geschrieben zu werden. Es ist ausdrucksstärker als typische Abfragesprachen wie SQL, da es komplexe logische Aussagen mit Quantoren und Implikationen darstellen kann. Allerdings ist ACE weniger ausdrucksstark als die vollständige Prädikatenlogik erster Stufe, da ihm bestimmte Merkmale wie Quantifizierung höherer Stufe und Gleichheit fehlen. Im Kontext von Artificial intelligence dient ACE als Brücke zwischen natürlicher Sprachverarbeitung und formalem Schließen und ergänzt Ansätze wie Large language models, die leistungsfähig sind, aber oft mehrdeutige oder inkonsistente Ausgaben erzeugen. Während Large language models Text erzeugen können, der ACE ähnelt, garantieren sie keine logische Konsistenz, während ACE eine Eins-zu-eins-Zuordnung zur Logik sicherstellt.
Einschränkungen und zukünftige Richtungen
Trotz seiner Stärken hat ACE Einschränkungen. Die strenge Grammatik kann für Benutzer umständlich sein, da sie die zulässigen Konstrukte lernen und gebräuchliche englische Ausdrücke vermeiden müssen, die nicht erlaubt sind. Das Vokabular ist begrenzt, und das Hinzufügen neuer Begriffe erfordert eine Aktualisierung des Lexikons. Darüber hinaus kann die Übersetzung in FOL komplexe Formeln erzeugen, die für Menschen schwer zu lesen sind, selbst wenn der ursprüngliche ACE-Satz einfach ist. Ab Mitte der 2010er Jahre hat sich die Entwicklung von ACE verlangsamt, mit keinen größeren Veröffentlichungen nach 2015. Die Ideen hinter ACE haben jedoch andere kontrollierte natürliche Sprachprojekte wie PENG und CLCE beeinflusst. Im Zeitalter von Generative AI gibt es ein erneutes Interesse daran, kontrollierte Sprachen zu verwenden, um die Ausgabe von Neural network-Modellen einzuschränken und sicherzustellen, dass generierter Text logisch fundiert ist. Zukünftige Arbeiten könnten ACE mit Machine learning-Techniken integrieren, um natürliche Sprache automatisch in ACE zu konvertieren, aber zum aktuellen Stand sind solche Systeme nicht weit verbreitet.