@abc.abstractmethod<EOL><INDENT>def create_book(self, book_form):<DEDENT>
return<EOL>
Creates a new ``Book``.

        :param book_form: the form for this ``Book``
        :type book_form: ``osid.commenting.BookForm``
        :return: the new ``Book``
        :rtype: ``osid.commenting.Book``
        :raise: ``IllegalState`` -- ``book_form`` already used in a create transaction
        :raise: ``InvalidArgument`` -- one or more of the form elements is invalid
        :raise: ``NullArgument`` -- ``book_form`` is ``null``
        :raise: ``OperationFailed`` -- unable to complete request
        :raise: ``PermissionDenied`` -- authorization failure
        :raise: ``Unsupported`` -- ``book_form`` did not originte from ``get_book_form_for_create()``

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