A "name function" is a PL/SQL routine to return a human readable name of an object for any object type. As a convention, a name function consist of the object_type, followed by "__name" (double underscore).
Let's look take a typical example (obtaining the name of a project):
The only required parameter is the ID of an existing project.
This PL/SQL function just returns the contents of the im_projects.project_name database field.