From 7fd64223fc85b46486b533f6fa0caded62f575e3 Mon Sep 17 00:00:00 2001 From: Diogo Cordeiro Date: Fri, 7 Dec 2018 16:11:11 +0000 Subject: [PATCH] dumb fake NLP stuff --- polymani.pl | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 72 insertions(+), 1 deletion(-) diff --git a/polymani.pl b/polymani.pl index 220b6a0..16f83e4 100644 --- a/polymani.pl +++ b/polymani.pl @@ -33,7 +33,6 @@ */ :- use_module(library(clpr)). - /******************************* * USER INTERFACE * *******************************/ @@ -153,6 +152,78 @@ is_number_in_predicate(C, F) :- write(C), fail. + /******************************* + * NLP * + *******************************/ +polyplay :- + write("> "), + read(R), + ( + R = bye, + write("See ya") + ; + ( + nlp_understand(R, P, I), + writeln("That's trivial:"), + nlp_compute(P, I) + ; + writeln("I didn't understand what you want.") + ), + polyplay + ). + +nlp_understand(R,P,I) :- + ( + R = simplify_x_squared, + P = simplify, + I = x^2 + ; + fail + ). + +nlp_compute(simplify, P) :- + simplify_polynomial(P, O), + writeln(O). +nlp_compute(_,_) :- + fail. + +parse_digit(zero, 0). +parse_digit(one, 1). +parse_digit(two, 2). +parse_digit(three, 3). +parse_digit(four, 4). +parse_digit(five, 5). +parse_digit(six, 6). +parse_digit(seven, 7). +parse_digit(eight, 8). +parse_digit(nine, 9). + +parse_digit(ten, 10). +parse_digit(eleven, 11). +parse_digit(twelve, 12). +parse_digit(thirteen, 13). +parse_digit(fourteen, 14). +parse_digit(fifteen, 15). +parse_digit(sixteen, 16). +parse_digit(seventeen, 17). +parse_digit(eighteen, 18). +parse_digit(nineteen, 19). + +parse_digit(twenty, 20). +parse_digit(thirty, 30). +parse_digit(forty, 40). +parse_digit(fifty, 50). +parse_digit(sixty, 60). +parse_digit(seventy, 70). +parse_digit(eighty, 80). +parse_digit(ninety, 90). + +parse_number([],0). +parse_number([N|L], X) :- + parse_digit(N, X1), + parse_number(L, X2), + X is X1 + X2. + /******************************* * BACKEND * *******************************/