@abc.abstractmethod<EOL><INDENT>def get_proficiency_smart_objective_bank_session(self, objective_bank_id):<DEDENT>
return<EOL>
Gets the ``OsidSession`` to manage dynamic objective banks of objectives.

        :param objective_bank_id: the ``Id`` of the ``ObjectiveBank``
        :type objective_bank_id: ``osid.id.Id``
        :return: a ``ProficiencySmartObjectiveBankSession``
        :rtype: ``osid.learning.ProficiencySmartObjectiveBankSession``
        :raise: ``NotFound`` -- no objective bank found by the given ``Id``
        :raise: ``NullArgument`` -- ``objective_bank_id`` is ``null``
        :raise: ``OperationFailed`` -- unable to complete request
        :raise: ``Unimplemented`` -- ``supports_proficiency_smart_objective_bank()`` is ``false``

        *compliance: optional -- This method must be implemented if
        ``supports_proficiency_smart_objective_bank()`` is ``true``.*