:- object(query_foo). :- public(query/0). query :- write('Message: '), read(Message), foo::Message. write('Reply: '), write(Message), nl. :- end_object.