Automated book creator

10623591 ยท 2020-04-14

Assignee

Inventors

Cpc classification

International classification

Abstract

A method of automatically producing a book is disclosed. The book is generated from a database of source content items. As an example, a content item may be a cookery recipe. Typically, the source content items have been created for presentation on the web. The method includes the steps of processing the source content items to create publishable content items, allowing the user to select content items according to criteria, and then iteratively applying templates to the selected content items to optimize a print layout associated with each content item. The print layouts may be composed into a book, which may be automatically printed and sent to the user or to the user's order.

Claims

1. A method of producing a book, the method comprising: accessing a database of source content items; processing the source content items to create publishable content items by changing the source content items according to pre-set rules; providing a user interface and soliciting input of one or more filtering criteria from a user; presenting a selection of the publishable content items on the user interface, the presented publishable content items being selected according to the filtering criteria; providing on the user interface a facility for the user to further select from the presented content items, or request further or different content items to be presented, to define a group of user-selected content items; accessing a library of templates, and assigning a template to each of the user-selected content items; for each user-selected content item and assigned template: applying the user-selected content item to its assigned template using a set of parameters to generate a print layout; automatically testing the generated print layout against pre-set layout quality criteria; if the layout quality criteria are met, then finalizing the print layout; otherwise, adjusting the parameters of the user-selected content item as applied to the template, to optimize the print layout, and returning to automatically testing the generated print layout against pre-set layout quality criteria; composing the finalized print layouts into a final book layout; printing a book according to the final book layout.

2. The method according to claim 1, in which at least one filtering criterion is an absolute criterion.

3. The method according to claim 1, in which at least one filtering criterion is an extent-based criterion.

4. The method according to claim 1, in which publishable content items matching the filtering criteria are ranked by ranking rules, and in which the selection of content items presented to the user is a subset of the publishable content items matching the filtering criteria, according to the ranking.

5. The method according to claim 4, in which the ranking rules include one or more random rules.

6. The method according to claim 4, in which the ranking rules include one or more rules taking into account whether a particular content item has been rejected or selected by users in the past.

7. The method according to claim 1, in which a pre-set number of publishable content items are always presented on the user interface, and in which a presented publishable content item is swapped for a different publishable content item in response to a user input rejecting a presented publishable content item.

8. The method according to claim 1, in which processing the content items to create publishable content items includes stripping out hyperlinks.

9. The method according to claim 1, in which processing the content items to create publishable content items includes automatically flagging content items which require review, and manually reviewing and editing flagged content items.

10. The method according to claim 1, in which processing the content items to create publishable content items includes applying one or more automatic replacement rules to text in the content items.

11. The method according to claim 10, in which the replacement rules may be defined by a system operator via a system operator control portal.

12. The method according to claim 1, in which processing the content items to create publishable content items includes automatically assessing each content item against each template in the template library and making a determination as to compatibility of each content item with each template.

13. The method according to claim 12, in which the determination as to compatibility of each content item includes a non-binary value indicating the estimated presentation quality of the content item as applied to the template.

14. The method according to claim 1, in which the layout quality criteria includes a comparison of the height of a content item object with a pre-set comparator associated with the template.

15. The method according to claim 1, in which the layout quality criteria includes a count of single lines of text at the beginning or end of columns, in a generated print layout.

16. The method according to claim 1, in which the layout quality criteria includes a comparison of the number of bullet points in one column with the number of bullet points in an adjacent column.

17. The method according to claim 1, in which a visual user interface is provided for a system operator to design templates and insert new templates into the template library.

18. The method according to claim 1, further including automatically accepting a payment from a user, and collecting customer details required to dispatch the book.

19. A non-transient computer-readable medium containing instructions, which, when executed on a computer, cause the computer to carry out the method of claim 1.

20. A system adapted to carry out the method of claim 1, the system including a computer, or multiple computers connected by a data network, and software running on the computer(s) causing the computer(s) to carry out the method of claim 1.

Description

BRIEF DESCRIPTION OF SEVERAL VIEWS OF THE DRAWINGS

(1) For a better understanding of the present invention, and to show more clearly how it may be carried into effect, specific embodiments will now be described with reference to the accompanying drawings, in which:

(2) FIG. 1 is a flowchart showing steps of accessing a database of source content items and processing the source content items to produce publishable content items;

(3) FIG. 2 is a flowchart showing the process of presenting a selection of content items according to filter criteria;

(4) FIG. 3 is an example of a user interface which may be presented to a user to allow input of filter criteria;

(5) FIG. 4 is an example of a user interface which may be presented to a user to allow selection of chapters for a book;

(6) FIG. 5 is a flowchart illustrating a print and fulfilment process, for printing a book according to the final print layout and delivering it to a user;

(7) FIG. 6 shows an example user interface of a system operator's control portal;

(8) FIG. 7 is a flowchart showing the overall method of the invention;

(9) FIG. 8 illustrates how a content item may be applied to a template;

(10) FIG. 9 illustrates further how a content item may be applied to a template; and

(11) FIG. 10 illustrates an example print layout generated by the method of the invention.

DETAILED DESCRIPTION OF THE ILLUSTRATED EMBODIMENTS

(12) As used herein, the terms comprises, comprising, includes, including, has, having or any other variation thereof, are intended to cover a non-exclusive inclusion. For example, a process, method, article, or apparatus that comprises a list of elements is not necessarily limited to only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Also, use of a or an are employed to describe elements and components described herein. This is done merely for convenience and to give a general sense of the scope of the invention. This description should be read to include one or at least one and the singular also includes the plural unless it is obvious that it is meant otherwise.

(13) For a better understanding of the present invention, and to show more clearly how it may be carried into effect, specific embodiments will now be described with reference to the accompanying drawings, in which:

(14) FIG. 1 is a flowchart showing steps of accessing a database of source content items and processing the source content items to produce publishable content items;

(15) FIG. 2 is a flowchart showing the process of presenting a selection of content items according to filter criteria;

(16) FIG. 3 is an example of a user interface which may be presented to a user to allow input of filter criteria;

(17) FIG. 4 is an example of a user interface which may be presented to a user to allow selection of chapters for a book;

(18) FIG. 5 is a flowchart illustrating a print and fulfilment process, for printing a book according to the final print layout and delivering it to a user;

(19) FIG. 6 shows an example user interface of a system operator's control portal;

(20) FIG. 7 is a flowchart showing the overall method of the invention;

(21) FIG. 8 illustrates how a content item may be applied to a template;

(22) FIG. 9 illustrates further how a content item may be applied to a template; and

(23) FIG. 10 illustrates an example print layout generated by the method of the invention.

DESCRIPTION OF THE PREFERRED EMBODIMENT

(24) Referring firstly to FIG. 1, the flowchart shows the steps of accessing source content items, and processing them to generate publishable content items.

(25) In box 10 the source content items are accessed. The source content items may be stored on a local or remote database, which may be any suitable kind of data storage system. The source content items have been created and designed for use online. As such, there may be various features which make the source content items unsuitable for direct use in print. For example, hyperlinks will need to be removed and surrounding wording may need to be changed to accommodate removal of hyperlinks. The style and use of particular characters, for example or , & or and, may be inconsistent.

(26) Some basic transformation rules are hardcoded into the system in box 12. In addition, transformation rules defined by the system operator are applied in box 14. The transformation rules defined by the system operator may take account of particular features of the source content being accessed in a particular embodiment. Moreover, the system operator may continually update and tailor the rules so that an embodiment of the system improved over time. This may be done in addition to manual direct editing of individual content items by the system operator. This might be done in response to an automated flag which determines that a particular content item is probably not suitable for print, but cannot be automatically corrected.

(27) In box 16, all applicable rules, whether hardcoded or system-operator defined, are applied to source content items. This creates a repository in box 18 of publishable content items. The repository 18 of publishable content items may be transient, i.e. content items are processed in box 16 as they are called for by downstream parts of the system, but in embodiments of any significant size it is likely that the repository 18 will be in the form of a substantially complete, but transformed, copy of the source database 10.

(28) Where the repository 18 is made as a copy of the source database 10, it may be periodically refreshed in order to take account of updated rules, in particular updated system-operator-defined rules 14. This ensures that the publishable content items are always of the highest possible quality.

(29) On inspection, either manual, automatic, or a combination of the two (e.g. automated flagging followed by manual review) of the publishable content items 18, it may be determined that additional rules need to be added to the system to improve quality. This may be done by adding system-operator defined rules 14 via a system operator portal 20.

(30) FIG. 2 shows the process of presenting a selection of publishable content items 18 according to user-selected criteria. The repository of publishable content items 18 is accessed, and user preferences 22 are applied to the content items 18 by a filtering step 24. This results in a subset of the publishable content items 18 which match the user preferences. A ranking step 26 is then applied, which may take into account for example number of (positive) reviews of content items, when the content item was created, and other relevant metadata. In addition, in some embodiments the user preferences 22 may be taken into account again at the ranking step. For example, for extent preferences, content items which match the user's preference but which are close to the cut-off may be demoted in the ranking. As an example, if the user wants recipes with energy content below 600 calories per portion, the ranking algorithm may demote a content item which is 590 calories in preference of content items which are only 500 calories, although all of these items are within the criteria and therefore could be selected. In some embodiments, preferences may be fuzzy. This may allow some content items to be presented even if they do not exactly meet criteria. For example, where energy content below 600 calories has been presented but there are not enough recipes meeting this criteria to fill a chapter, the system could allow recipes with slightly more than this, as a best match to the user's preferences. Both binary and extent preferences could be enhanced with a preferably option which would allow recipes which did not meet the criteria exactly to be included, but would demote them in the ranking. Alternatively, users could specifically use a definite option to insist that a particular preference was met exactly, and any content items not complying with the preference would be filtered out.

(31) As a result of the filtering 24 and ranking 26 processes, a sorted list of presentable content items 28 is generated. In many cases, this sorted list will still be too long to show to the user, and the highest ranked items on the list (say, the top 5 or 10) will be presented to the user, at least initially.

(32) FIG. 3 shows an example user interface through which user preferences 22 may be chosen. Absolute preferences are binary preferencesi.e. either the content item has a particular property or it does not. Examples might be recipes that are suitable for vegetarians, recipes that do not contain gluten, walks which begin at a car park with a public toilet, etc. Absolute preferences are presented to the user by checkboxes 22a, 22b, 22c.

(33) FIG. 3 also shows three extent preferences 22d, 22e, 22f. Extent preferences are used to select against value-based metadata associated with the content items. For example, walks in the countryside could be short or long. The user could choose to see only walks less than 5 miles long. In a recipe book, extent preferences could be used for example for calorie content, or preparation time, or a difficulty rating.

(34) FIG. 4 shows an example user interface 30 for selecting chapters for a personalized book. Chapters in the book relate to tags associated with content items. Content items may have multiple tags across multiple categories. Tags may be divided into categories as different ways of dividing up content items. For example, in category 1 for a recipe book, there could be available chapters (tags) for starters, mains, desserts, drinks, snacks, etc. Category 2 might allow a different type of division/sorting of the content items, for example category 2 might be occasions and include chapters (tags) for Christmas, birthdays, weddings, etc.

(35) In this embodiment, the user selects which chapters they want, up to a maximum number, and is then presented with content items for selection based on both user preferences 22 and chapter selections from interface 30.

(36) FIG. 5 shows a process for printing a book and dispatching it to the user, according to a final book layout generated by the method. An order record 32, which is a record in an order database, is created when a user completes a final book layout. The order record 32 includes the completed final book layout, as well as account, delivery and order information. In this embodiment the final book layout is sent as two files, one file 36 for the cover of the book and one file 34 for all the pages. Each file is a printable file, for example a PDF file, although the format will depend on the requirements of the printing service. Along with the final book layout files 34, 36, order header information 38 is sent. This is as much information as the printing service (which could be remote) needs to complete the order. In some embodiments, this may simply be a numeric identifier so that the finished product can be matched back to an order. However, in other embodiments, the printing service may also be responsible for dispatch of the book to the customer, in which case delivery details will also need to be sent.

(37) Once the printing service 40 produces the book, order status information is written back to the order record 32 (box 42).

(38) FIG. 6 shows an example of a menu user interface which may be provided as part of a system operator portal 20. The various functions and configuration options available to the system operator are described below:

(39) Global text replacement allows rules to be defined for replacement of text across content items. This may be used to enforce consistency of terminology and style, i.e. change & to and, change teaspoon to tsp. in an ingredients list, etc.

(40) Record specific replacement allows editing of individual content items. The system operator may search for particular records and make modifications to them, perhaps in response to customer feedback or to automatic or manual flagging of errors or inconsistencies. In some embodiments, content items which are commonly rejected by users may be flagged for review, in case the reason for rejection is an error in the content.

(41) Rejected content management identifies content items which are never, or rarely, selected so that they appear as part of the selection presented to users. This may be, for example, because they do not fit in any templates, or they fit in templates for only a small number of book formats. The content may be edited to correct this. Content items may also be underutilized if metadata has been set wrongly, so that the content item will be wrongly excluded at the filtering stage.

(42) Template management allows the system operator to make changes to templates for use within each book format. Preferably, this is via a visual editor similar to a desktop publishing package.

(43) Tag type ranking allows the system operator to manage how chapter selection is presented to the user, based on the tags in the underlying content items.

(44) Global tag addition allows the system operator to define and manage tags and categories of tags, i.e. add a new chapter which can be selected.

(45) Record specific tag addition and record specific tag override allows the system operator to link specific content items to specific tags (e.g. record that a particular recipe is associated with Christmas.)

(46) Extent preferences may be used to map tags and values in the metadata of content items to sliders (22d, e, f) in the user interface, including defining cut-off points. For example, a user may be presented with a difficulty slider from easy to hard. This may map to multiple metadata points, including discrete difficulty tags in content items which might be marked easy, intermediate or advanced, as well as value-based tags, for example there could be a tag for preparation time in minutes. The extent preferences allow the system operator to define how these different fields are taken into account when a user expresses a preference for recipes (for example) which are more or less difficult.

(47) Absolute preferences may be used in a similar way in order to map tags and values in the metadata of content items to binary choices in the interface.

(48) FIG. 7 shows an overview of one embodiment of the invention. As previously described, content items are taken from a source database 10 and processing rules 16 are applied in order to generate publishable content items which are stored in a local database 18. A further internal database 19 holds more temporary data, for example user preferences which have been saved between sessions, including personal and billing information.

(49) User preferences 22 are then applied to support filtering 24 and ranking 26 of results. The ranking may take into account (at step 27) rules input by the system operator portal 20. The user is then presented with a full list 28 of potential content items for each selected chapter. For each presented item, the user may reject it (step 29) or accept it (step 31). If it is rejected then the filtering 24 and ranking 26 steps are repeated to find another suitable item to replace the rejected content item. If the user accepts the item then it forms part of the book. When all items are selected (or in some embodiments this may start to happen in parallel, as soon as at least one item has been selected), each selected content item is allocated to a template from a template library in step 44. The content item is the applied to the template in step 46, according to parameters set in the system operator portal 20. At step 48, the iterative process of optimizing the application of the content item to the template is completed, resulting in a print layout. This is composed with print layouts from all the other content layouts to form a final book layout 50, which is then sent to the print service at step 52.

(50) FIG. 8 illustrates part of what is involved in applying a content item to a template. The content item is split into objects, in this case eight objects title, description, info, ingredients, method, image, nutrition and notes. The objects in the content item will correspond with area on the template. Each template area has properties associated with it, some of which may be immutable (e.g. the title is always bold and of a certain color) but some of which might be able to change in order to best present the data (e.g. text size of line spacing may be allowed to be altered slightly to present content blocks of different lengths on templates and achieve a good looking result.

(51) Once each object is rendered, its size may be measured.

(52) FIG. 9 further illustrates the process of setting parameters and drawing a page by applying a layout to a content item. Each object has parameters that are set, and the object will place its content depending on the current Y position. Once rendered it will measure its end position and return back the new current Y position. All objects are checked to see if they exceed the total page height less the current Y position and adjust accordingly. Once data has been placed, the system behind the object calls the next object passing on the new Y position.

(53) FIG. 10 shows an example generated print layout, in which a content item (a recipe for mushroom risotto) has been automatically applied to a template to produce a print layout.

(54) It will be apparent to those skilled in the art that various modifications, combinations and variations can be made in the present invention without departing from the scope of the invention. Specific embodiments, features and elements described herein may be modified, and/or combined in any suitable manner. Thus, it is intended that the present invention cover the modifications, combinations and variations of this invention provided they come within the scope of the appended claims and their equivalents.