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