Dieses Projekt basiert auf dem Artikel „Specifying and Verbalising Answer Set Programs in Controlled Natural Language“ von Rolf Schwitter. Ich habe das, was in der Arbeit gemacht wurde, nachgebildet, allerdings in viel kleinerem Maßstab, und mich auf die Erstellung einer bidirektionalen Grammatik konzentriert, die sowohl für die Verarbeitung als auch für die Generierung von Programmspezifikationen in CNL geeignet ist.
Das Programm big.pl (steht für Bidirektionale Grammatik ) sollte mit SWI-Prolog ausgeführt werden. Um es zu testen, laden Sie die Datei einfach mit dem Befehl: [big].
Und dann Abfrage: test.
Anschließend sehen Sie die Ausgabe des Programms für ein vordefiniertes Beispiel.
Wenn Sie das Programm auf IHREN EIGENEN EINGABESÄTZEN ausführen möchten , müssen Sie die Datei big.pl ändern:
Beachten Sie, dass jeder Satz eine Liste von Wörtern sein muss, wobei alle Wörter durch ein Komma getrennt sein müssen und ein Satz mit dem Sonderzeichen „“ enden muss. . Jeder Satz muss mit dem Systemwort 'every'
/ 'no'
beginnen oder einen Agenten enthalten, z. B. wie in [bob,dreams,'.']
, wo bob ein Agent ist. Systemwörter sind: 'every', 'no', 'is', 'is not', 'does not', '.'
. Beispiele für Eingabesätze, die Sie ausführen können, finden Sie in der Datei „Samples.txt“ .
Falls Sie neue Wörter und/oder Agenten hinzufügen möchten, die nicht im Programm enthalten sind, müssen Sie diese selbst in big.pl hinzufügen. Das aktuelle Lexikon ist in den Zeilen 175-198 definiert. Fügen Sie für jedes Ihrer benutzerdefinierten Wörter eine Zeile im folgenden Format hinzu:
lexicon(cat:noun, wform:[student], arg:X, term:student(X)).
wobei das Argument cat die Kategorie des Wortes ist (Substantiv, Verb, det usw.); wform steht für Wortform, also das genaue Wort, das in einem Satz vorkommt; arg gibt das Argument des Begriffs an, auf den sich das Wort bezieht; term bezeichnet den tatsächlichen Begriff, der im internen Format und im ASP verwendet wird. Fügen Sie für jeden Ihrer benutzerdefinierten Agenten eine Zeile im Format agent(name).
, wobei Name der Name Ihres Agenten ist, z. B. bob
.
Beachten Sie, dass das Programm derzeit nur die folgenden Kategorien unterstützt: Substantiv ( cat:noun
), Verb ( cat:iv
), Determinant ( 'every', 'no'
), Adjektiv ( cat:jj
). Alle Sätze müssen eine einfache Struktur haben, keine Artikel („a“, „an“, „the“), keine „und“/„oder“-verknüpften Bestandteile.
Das Programm big.pl gibt vier Ausgaben gleichzeitig aus:
Weitere Einzelheiten zu den Darstellungen finden Sie in Report.pdf .
Beachten Sie, dass 3. ASP-Darstellung ein gültiges Antwortsatzprogramm ist, das Sie beispielsweise mithilfe von Clingo lösen können. Ich empfehle Ihnen, es auszuprobieren.
Erstellt von Yevheniia Soroka, MS-Studentin, Stony Brook University, NY (CSE505: Computing with Logic, Herbst 2018)
Besonderer Dank geht an Rolf Schwitter für die Anleitung zum Einstieg und die Bereitstellung nützlicher Ressourcen.