Printed and electronic publications are often associated with their unique and distinctive layouts. For example, the New York Times has a layout that is immediately recognizable—its articles are written in long, vertical columns and it uses distinct fonts for the name of the paper and the article headlines, bylines, and text. The USA Today newspaper has a different layout—it has wide columns and uses a larger font. The layout of these, and other publications, can be thought of as their templates.
The present invention, together with further objects and advantages, may best be understood by reference to the following description taken in conjunction with the accompanying drawings, in several figures of which like reference numerals identify like elements, and in which:
a-i depict example code for a template according to one embodiment;
a-b depict example code for a template according to one embodiment;
a-b depict example code for a template according to one embodiment;
Several embodiments of the present invention and their advantages may be understood by referring to
Referring to
Content provider 110 provides content that may be rendered on an electronic reading device. Examples of content provider 110 include newspaper publishers, periodical publishers, book publishers, Internet authors, schools, government agencies, etc.
In one embodiment, content provider 110 may be the author of the content. In another embodiment, content provider 110 may be a distributor of content.
In one embodiment, the template may specify at least one markup to be applied to the various portions of the content.
In one embodiment, advertisement provider 150 may be provided. Advertisement provider 150 may be, for example, a business entity that provides advertisements to publisher 130. Advertisement provider 150 may also be an individual. In another embodiment, advertisement provider 150 may be an aggregator of advertisements.
Template provider 120 may provide templates that may be applied to content. In one embodiment, a template may be applied to the content as it is being rendered on an electronic reading device. In another embodiment, a template may be applied to the content before it is provided to an electronic reading device. In yet another embodiment, a template may be applied to content as or just before it is printed.
In one embodiment, content provider 110 may provide a template with its content. In another embodiment, content provider 110 may also author templates for the content provided by other content providers 110.
In one embodiment, the template may have a plurality of slots for receiving content. For example, the template may include certain areas for receiving certain content, including text, photos, etc. In one embodiment, the number, size, location, etc. of the slots may depend on the layout of the template.
In one embodiment, the template may have a plurality of advertisement slots for receiving advertisements. In one embodiment, the number of advertisement slots may vary with the cost of the template. For example, a free template may have more advertisement slots than a template that a customer purchases.
In one embodiment, the content, the advertisements, and the template may be transmitted independently from content provider 110, template provider 120 and advertisement provider 150 to a publisher 130. In one embodiment, multiple publishers 150 may be provided. Final layout and assembly may take place at a plurality of locations, including, for example, at content provider 110, at a centralized distribution server, on a client device in the field, etc.
In one embodiment, the advertisements may be streamed to publisher 130. In another embodiment, the advertisements may be targeted. For example, different advertisements may be provided for different electronic reading devices. In another embodiment, different advertisements may be provided based on location, demographics, etc. of the customer. In another embodiment, the advertisements may change as the publication is rendered. Other types of advertisements and/or techniques for displaying the advertisements may be used as necessary and/or desired.
Publisher 130 may apply the template provided by template provider 120 to the content provided by content provider 110 and the advertisements provided by advertisement provider 150. In one embodiment, publisher 130 may provide the content with the template applied to be rendered in an electronic reading device.
Publisher 130 may be able to proof and modify the look of an electronic publication without having to explicitly place each article. The content slot for each article may be programmatically determined based on the characteristics of the article. In one embodiment, characteristics of the article may include the article word count, length of the article title, length of byline, size of font, number of pictures or graphics, size of pictures or graphics, etc.
In one embodiment, the placement of articles, pictures, and advertisements may be heuristically determined.
In one embodiment, publisher 130 may include database 135 and language processor 145. Database 135 may be any suitable database. In one embodiment, database 135 may be a relational database. In another embodiment, database 135 may comprise a plurality of databases. In yet another embodiment, database 135 may be located remotely from publisher 130.
Database 135 may receive and store content and templates.
In another embodiment, advertisement provider 150 may be provided as a database to publisher 130.
In another embodiment, database 135 may be memory 210 of electronic reading device 200.
Language processor 140 may be a software application executed by a processor. In one embodiment, language processor 140 may operate on an extensible markup language (XML) dialect. In another embodiment, language processor 140 may operate on JSON. Other languages and/or syntaxes may be used as necessary and/or desired.
For example, some or all of the following elements may be part of the XML dialect:
The template may be used to determine where to flow the different portions of content (an article, for example), and what XHTML to include for the various portions of that content (e.g., title, by-line, pictures, etc.). The output is an EPUB document.
Referring to
Processor 205 provides the processing power for electronic reading device 200. Processor 205 may be any suitable processor or integrated circuit, including microprocessors, programmed microprocessors, micro-controllers, peripheral integrated circuit elements, CSICs (Customer Specific Integrated Circuit) or ASICs (Application Specific Integrated Circuit), logic circuits, digital signal processors, programmable logic devices such as FPGAs, PLDs, PLAs or PALs, or any other device or arrangement of devices that is capable of performing the function of a microprocessor.
Memory 210 may be any suitable memory, and may be used to store software and applications 215. Memory 210 may be volatile or non-volatile as necessary and/or desired. Memory 210 may include static RAM, dynamic RAM, flash memory, magnetic memory, etc.
In one embodiment, memory 210 may store data files, including electronic content files, style sheets, etc. In one embodiment, software and applications 215 render an image on the display of electronic reading device 200.
Display and drivers 220 are provided for displaying characters, graphics, videos, pictures, etc. for the user. The display may be any suitable display, including flexible displays, touch-sensitive displays, etc.
User interface 225 may be provided for the user to interact with electronic reading device 200. Any suitable input mechanism may be provided. In one embodiment, buttons may be provided. In another embodiment, as discussed above, a touch-sensitive screen may be provided. In still another embodiment, a microphone may be provided to detect speech. In another embodiment, a camera may be provided. Other inputs may be provided as necessary and/or desired, depending on the application.
In one embodiment, the user may use user interface 225 to zoom on the content.
Electronic reading device 200 may be powered by power supply 230, such as a battery, AC power, DC power through an AC adapter, etc.
Electronic reading device 200 may also be provided with data interface 235. In one embodiment, data interface may be any suitable wired or wireless communication method, including cellular communications, a USB interface, unshielded twisted pair interface, radio frequency (RF), infrared (IR), Bluetooth, near field communication, WiFi (e.g., any suitable IEEE 802.11 protocol), etc.
In one embodiment, electronic reading device 200 may be provided with audio capability 240.
In one embodiment, electronic reading device 200 may include language processor 245. Language processor 245 may be similar to language processor 140, discussed above. Language processor 245 may combine the raw content data, including, for example, raw articles, images, titles, etc., with a template to render the content for the user. Language processor 245 will be described in greater detail below.
Examples of electronic reading devices include electronic book readers, electronic newspaper readers, electronic paper readers, etc. An example of an electronic display device is disclosed in U.S. patent application Ser. No. 12/481,677, entitled “Flexible Electronic Device And Method Of Manufacture,” the disclosure of which is incorporated by reference in its entirety. Other examples of electronic reading devices include the Amazon Kindle, the Sony Reader, and the Plastic Logic Reader.
Other examples of electronic reading devices include computers (desktop, notebook, laptop, tablet, etc.), personal digital assistants (PDAs), music players, telephones, etc. Any electronic reading device that is capable of rendering electronic content may be used as necessary and/or desired. For example, any electronic device having a screen or a display may be used.
Referring to
Referring to
In one embodiment, a user may also select from a plurality of templates. For example, a user may like the traditional layout of the New York Times newspaper, and is comfortable with that format. Thus, the user may apply a template for the New York Times to another publication.
Referring to
According to another embodiment, templates for other orientations, such as a horizontal layout and a vertical layout, may be provided. Templates for other newspapers, for example, the Washington Post, the LA Times, USA Today, the Wall Street Journal, etc. may be provided as necessary and/or desired.
In one embodiment, the templates may be stored in the device memory for the electronic reading device.
Referring again to
In step 420, advertisements may be provided from an advertisement provider. In another embodiment, advertisements may be retrieved from a database. In another embodiment, advertisements may be provided and assembled by the client. In another embodiment, the advertisements may be streamed. Other ways of providing the advertisements may be used as necessary and/or desired.
In step 425, the language processor applies the template to the content. In one embodiment, the language processor retrieves raw data from the database according to the markup specified in the template.
In step 430, the publication is displayed according to the template.
Referring to
In step 810, a plurality of templates are received. In one embodiment, the templates may be received from a content provider. In another embodiment, the templates may be received from a database. In still another embodiment, the templates may be received from a storage medium.
In step 815, content is received. In one embodiment, content may be received from a content provider. In another embodiment, content may be received from a database. In still another embodiment, content may be received from a storage medium.
In step 820, advertisements may be provided from an advertisement provider. In another embodiment, advertisements may be retrieved from a database. In another embodiment, advertisements may be provided and assembled by the client. In another embodiment, the advertisements may be streamed. Other ways of providing the advertisements may be used as necessary and/or desired.
In step 825, the user may select a template that it wishes to have applied to the content. In one embodiment, this may be done through any suitable input device on the electronic reading device.
In step 830, the template is applied to the content. In one embodiment, this may be performed as discussed above.
In step 835, the publication is rendered in accordance with the selected template.
Referring to
According to one embodiment, the layout method may provide resizable, resolution-independent publications. This provides a reading experience with user selectable font sizes.
According to one embodiment, the approach combines and leverages the power of database query languages, including, for example, SQL, and markup languages, for example, EPUB.
According to one embodiment, there may be cost savings realized by being able to automatically layout publications that have the appearance of hand designs.
According to one embodiment, the invention provides the ability to create attractive publications on a device using personalized information for each user while still maintaining the ability to control the layout of the information from a centralized server.
A system for template-based assembly of an electronic publication is disclosed. According to one embodiment, the system includes a template provider that provides a template, the template specifying a markup for the electronic publication and having a plurality of content slots; a content provider that provides content; a publisher that formats the content according to the template, the publisher comprising a language processor that automatically traverses the template and inserts the content into the plurality of content slots; and an electronic reading device that displays the formatted content.
A method for template-based automatic assembly of an electronic publication is disclosed. According to one embodiment, the method includes (1) receiving at least one template from a template provider; (2) traversing one of the at least one templates to identify a content slot; (3) retrieving content for insertion into the identified content slot; (4) applying a markup to at least one portion of the content; (5) formatting the content by inserting at least a portion into the content into the identified content slot; and (6) rendering the formatted content on an electronic reading device.
A computer readable medium is disclosed. According to one embodiment, the computer readable medium comprises instructions to perform the steps of: receive content for an electronic publication; receive a plurality of templates, each template specifying a markup for the electronic publication and having a plurality of content slots; receive a desired template selection from a user; and render the content according to the selected template.
The system of the invention or portions of the system of the invention may be in the form of a “processing machine,” such as a general purpose computer, for example. As used herein, the term “processing machine” is to be understood to include at least one processor that uses at least one memory. The at least one memory stores a set of instructions. The instructions may be either permanently or temporarily stored in the memory or memories of the processing machine. The processor executes the instructions that are stored in the memory or memories in order to process data. The set of instructions may include various instructions that perform a particular task or tasks, such as those tasks described above in the flowcharts. Such a set of instructions for performing a particular task may be characterized as a program, software program, or simply software.
As noted above, the processing machine executes the instructions that are stored in the memory or memories to process data. This processing of data may be in response to commands by a user or users of the processing machine, in response to previous processing, in response to a request by another processing machine and/or any other input, for example.
The processing machine used to implement the invention may utilize a suitable operating system. Thus, embodiments of the invention may include a processing machine running the Microsoft Windows™ Vista™ operating system, the Microsoft Windows™ XP™ operating system, the Microsoft Windows™ NT™ operating system, the Windows™ 2000 operating system, the Unix operating system, the Linux operating system, the Xenix operating system, the IBM AIX™ operating system, the Hewlett-Packard UX™ operating system, the Novell Netware™ operating system, the Sun Microsystems Solaris™ operating system, the OS/2™ operating system, the BeOS™ operating system, the Macintosh operating system, the Apache operating system, an OpenStep™ operating system or another operating system or platform.
As described above, a set of instructions may be used in the processing of the invention. The set of instructions may be in the form of a program or software. The software may be in the form of system software or application software, for example. The software might also be in the form of a collection of separate programs, a program module within a larger program, or a portion of a program module, for example. The software used might also include modular programming in the form of object oriented programming. The software tells the processing machine what to do with the data being processed.
Further, it is appreciated that the instructions or set of instructions used in the implementation and operation of the invention may be in a suitable form such that the processing machine may read the instructions. For example, the instructions that form a program may be in the form of a suitable programming language, which is converted to machine language or object code to allow the processor or processors to read the instructions. That is, written lines of programming code or source code, in a particular programming language, are converted to machine language using a compiler, assembler or interpreter. The machine language is binary coded machine instructions that are specific to a particular type of processing machine, i.e., to a particular type of computer, for example. The computer understands the machine language.
Any suitable programming language may be used in accordance with the various embodiments of the invention. Illustratively, the programming language used may include assembly language, Ada, APL, Basic, C, C++, COBOL, dBase, Forth, Fortran, Java, Modula-2, Pascal, Prolog, REXX, Visual Basic, and/or JavaScript, for example. Further, it is not necessary that a single type of instruction or single programming language be utilized in conjunction with the operation of the system and method of the invention. Rather, any number of different programming languages may be utilized as is necessary and/or desirable.
Also, the instructions and/or data used in the practice of the invention may utilize any compression or encryption technique or algorithm, as may be desired. An encryption module might be used to encrypt data. Further, files or other data may be decrypted using a suitable decryption module, for example.
In the system and method of the invention, a variety of “user interfaces” may be utilized to allow a user to interface with the processing machine or machines that are used to implement the invention. As used herein, a user interface includes any hardware, software, or combination of hardware and software used by the processing machine that allows a user to interact with the processing machine. A user interface may be in the form of a dialogue screen for example. A user interface may also include any of a mouse, touch screen, light pen, keyboard, voice reader, voice recognizer, dialogue screen, menu box, list, checkbox, toggle switch, a pushbutton or any other device that allows a user to receive information regarding the operation of the processing machine as it processes a set of instructions and/or provides the processing machine with information. Accordingly, the user interface is any device that provides communication between a user and a processing machine. The information provided by the user to the processing machine through the user interface may be in the form of a command, a selection of data, or some other input, for example.
It will be readily understood by those persons skilled in the art that the present invention is susceptible to broad utility and application. Many embodiments and adaptations of the present invention other than those herein described, as well as many variations, modifications and equivalent arrangements, will be apparent from or reasonably suggested by the present invention and foregoing description thereof, without departing from the substance or scope of the invention.
In the preceding specification, various preferred embodiments have been described with references to the accompanying drawings. It will, however, be evident that various modifications and changes may be made thereto, and additional embodiments may be implemented, without departing from the broader scope of invention as set forth in the claims that follow. The specification and drawings are accordingly to be regarded in an illustrative rather than restrictive sense.