@abc.abstractmethod<EOL><INDENT>def is_ancestor(self, id_, ancestor_id):<DEDENT>
return<EOL>
Tests if an ``Id`` is an ancestor of another.

        :param id: the ``Id`` to query
        :type id: ``osid.id.Id``
        :param ancestor_id: the ``Id`` of an ancestor
        :type ancestor_id: ``osid.id.Id``
        :return: ``true`` if this ``ancestor_id`` is a parent of ``id,``  ``false`` otherwise
        :rtype: ``boolean``
        :raise: ``NotFound`` -- ``id`` is not found
        :raise: ``NullArgument`` -- ``id`` or ``ancestor_id`` is ``null``
        :raise: ``OperationFailed`` -- unable to complete request
        :raise: ``PermissionDenied`` -- authorization failure

        *compliance: mandatory -- This method must be implemented.*
        *implementation notes*: If ``ancestor_id`` not found return
        ``false``.