@abc.abstractmethod<EOL><INDENT>def find_path_for_resource_at_proficiency(self, objective_id, resource_id, grade_id):<DEDENT>
return<EOL>
Gets the shortest path to an objective.

        The path is a list of objectives for which the resource has a
        proficiency less than the given proficiency.

        :param objective_id: the ``Id`` of the ``Objective`` to reach
        :type objective_id: ``osid.id.Id``
        :param resource_id: the ``Id`` of the ``Resource``
        :type resource_id: ``osid.id.Id``
        :param grade_id: the ``Id`` of a proficiency level
        :type grade_id: ``osid.id.Id``
        :return: the returned list of objectives
        :rtype: ``osid.learning.ObjectiveList``
        :raise: ``NotFound`` -- ``objective_id`` or ``resource_id`` not found
        :raise: ``NullArgument`` -- ``proficiency_id, resource_id`` or ``grade_id`` is ``null``
        :raise: ``OperationFailed`` -- unable to complete request
        :raise: ``PermissionDenied`` -- authorization failure

        *compliance: mandatory -- This method must be implemented.*