Proyek ini didasarkan pada makalah "Menentukan dan Memverbalkan Program Kumpulan Jawaban dalam Bahasa Alami Terkendali" oleh Rolf Schwitter. Saya membuat ulang apa yang telah dilakukan di makalah tetapi dalam skala yang jauh lebih kecil, dengan fokus pada pembuatan tata bahasa dua arah yang cocok untuk pemrosesan dan pembuatan spesifikasi program di CNL.
Program big.pl (singkatan dari Bi -direction G rammar) harus dijalankan menggunakan SWI-Prolog. Untuk mencobanya, cukup muat file menggunakan perintah: [big].
Dan kemudian pertanyaan: test.
Setelah melakukan itu, Anda akan melihat keluaran program untuk contoh yang telah ditentukan sebelumnya.
Jika Anda ingin menjalankan program pada KALIMAT INPUT ANDA SENDIRI , Anda harus memodifikasi file big.pl :
Perlu diperhatikan bahwa setiap kalimat harus berupa daftar kata, dimana semua kata harus dipisahkan dengan koma, dan sebuah kalimat harus diakhiri dengan simbol khusus '.' . Setiap kalimat harus dimulai dengan kata sistem 'every'
/ 'no'
atau memiliki agen di dalamnya, misalnya seperti dalam [bob,dreams,'.']
, di mana bob adalah agen. Kata sistemnya adalah: 'every', 'no', 'is', 'is not', 'does not', '.'
. Lihat sample.txt untuk contoh kalimat masukan yang dapat Anda coba jalankan.
Jika Anda ingin memperkenalkan kata-kata dan/atau agen baru yang tidak termasuk dalam program, Anda harus menambahkannya sendiri di big.pl . Leksikon saat ini didefinisikan pada baris 175-198. Untuk setiap kata khusus Anda, tambahkan baris dengan format berikut:
lexicon(cat:noun, wform:[student], arg:X, term:student(X)).
dimana argumen kucing adalah kategori kata (kata benda, kata kerja, det, dll.); wform adalah singkatan dari word-form, yaitu kata persis yang muncul dalam sebuah kalimat; arg menentukan argumen dari istilah yang dirujuk oleh kata tersebut; term menunjukkan istilah sebenarnya yang akan digunakan dalam format internal dan ASP. Untuk setiap agen kustom Anda, tambahkan baris format agent(name).
, dimana name adalah nama agen Anda, misal bob
.
Perhatikan bahwa saat ini program hanya mendukung kategori berikut: kata benda ( cat:noun
), kata kerja ( cat:iv
), determinan ( 'every', 'no'
), kata sifat ( cat:jj
). Semua kalimat harus memiliki struktur sederhana, tidak ada artikel ("a", "an", "the"), tidak ada komponen yang terhubung dengan "dan"/"atau".
Program big.pl memberikan empat keluaran sekaligus:
Silakan merujuk ke Report.pdf untuk detail lebih lanjut tentang representasi tersebut.
Perhatikan bahwa 3. Representasi ASP adalah program kumpulan jawaban yang valid, yang dapat Anda selesaikan menggunakan misalnya clingo, yang saya anjurkan untuk Anda coba.
Dibuat oleh Yevheniia Soroka, mahasiswa MS, Stony Brook University, NY (CSE505: Komputasi dengan Logika, Musim Gugur 2018)
Terima kasih khusus kepada Rolf Schwitter atas panduan tentang cara memulai dan berbagi sumber daya yang bermanfaat.