self(Self)
Returns the object that has received the message under processing. This private method is translated to a unification between its argument and the corresponding implicit context argument in the predicate containing the call. This unification occurs at the clause head, not at the clause body.
self(?object_identifier)
(none)test :-
self(Self), % after compilation, the write/1
write('executing a method in behalf of '), % call will be the first goal on
writeq(Self), nl. % the clause body