// Agent userAgent in project Web40 /* Initial beliefs and rules */ new_query(Query) :- .random(R) & Query = (1000*R)+1. !start. /* Initial goals */ /******* Plans ***************************/ /* Wait for service introduction (temporal plan, to erase) */ +!start : true <- .wait(1000); +user_msg("I want to travel from Madrid to Cuenca in the morning that costs no more than 200€ and dinner in a romantic restaurant"). /* Ask the nlu agent */ +user_msg(Msg) : new_query(Query) <- .send(nluAgent, tell, user_msg(Msg, Query) ). /* Log the received data */ +price(Terms, Price)[query(Query), domain(Domain)] : true <- .print("Percibido: price ",Terms, " ", Price ); +data(price(Terms), Query, Domain). +date(Terms, Day, Month, Year)[query(Query), domain(Domain)] : true <- .print("Percibido: date ",Terms, " ", Day, " ", Month, " ", Year); +data(date(Terms, Day, Month, Year), Query, Domain). +time(Terms, Hours, Minutes)[query(Query), domain(Domain)] : true <- .print("Percibido: time ",Terms, " ", Hours, " ", Minutes); +data(time(Terms, Hours, Minutes), Query, Domain). +location(Terms, Place)[query(Query), domain(Domain)] : true <- .print("Percibido: location ",Terms, " ", Place); +data(location(Terms, Place), Query, Domain). +type(Terms)[query(Query), domain(Domain)] : true <- .print("Percibido: type ",Terms). /* find travel */ /*@find_travel +!find(travel, Query) : true <- .println("lets find travel ", Query); .findall(Name, service(Name, travel), List); .send(List, achieve, find(travel, Query)). */ @do_search +!find(Domain, Query) : true <- .print("Perform find ", Domain, " ", Query); .findall(Name, service(Name, Domain), AgList); .findall(Atom[query(Query)], data(Atom, Query, Domain), DataList); .send(AgList, tell, DataList); .send(AgList, achieve, find(Domain, Query)).