phase("db4c68c3-0316-4905-a8db-22dd5bec7abf"). keyword_said(Keyword) :- (user_said(Message) & .substring(Keyword, Message, Pos)) & (Pos >= 0). norm("do nothing and make a little dance, do a little laugh") :- phase("db4c68c3-0316-4905-a8db-22dd5bec7abf") & keyword_said("hi"). +!reply_with_goal(Goal) : user_said(Message) <- +responded_this_turn; .findall(Norm, norm(Norm), Norms); .reply_with_goal(Message, Norms, Goal). +!say(Text) <- +responded_this_turn; .say(Text). +!reply : user_said(Message) <- +responded_this_turn; .findall(Norm, norm(Norm), Norms); .reply(Message, Norms). +user_said(Message) : phase("db4c68c3-0316-4905-a8db-22dd5bec7abf") <- .notify_user_said(Message); -responded_this_turn; !check_triggers; !transition_phase. +!check_triggers : phase("db4c68c3-0316-4905-a8db-22dd5bec7abf") & semantic_hello <- .notify_trigger_start("trigger_"); .notify_trigger_end("trigger_"). +!trigger_ <- .notify_trigger_start("trigger_"); .notify_trigger_end("trigger_"). +!transition_phase : phase("db4c68c3-0316-4905-a8db-22dd5bec7abf") & not responded_this_turn <- .notify_transition_phase("db4c68c3-0316-4905-a8db-22dd5bec7abf", "end"); -phase("db4c68c3-0316-4905-a8db-22dd5bec7abf"); +phase("end"); ?user_said(Message); -+user_said(Message). +user_said(Message) : phase("end") <- !reply. +!check_triggers <- true. +!transition_phase <- true.