Patent Publication Number: US-9424107-B1

Title: Content enhancement techniques

Description:
BACKGROUND 
     The continued proliferation of digital content items has led to an increase in the availability of such items, as well as an increase in the availability of electronic devices used for consuming these items. For instance, users now consume electronic books, videos, songs, and the like on an assortment of stationary and/or portable electronic devices. As the number of items and devices continues to increase, users become increasingly interested in enhancing their experiences while consuming these items. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The detailed description is set forth with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The use of the same reference numbers in different figures indicates similar or identical items. 
         FIG. 1  illustrates an example architecture in which an electronic device renders content that supplements a content item that the user consumes on the device. As illustrated, the device stores a content enhancement module that publishes events indicative of the user&#39;s interactions with the content item. In response, the content enhancement module receives and renders additional content from one or more applications of an application platform. 
         FIG. 2  illustrates the content enhancement module and other components of the electronic device from  FIG. 1  in greater detail. 
         FIG. 3A-3C  is a flow diagram of an example process that includes a user consuming and interacting with an electronic book. In response to detecting these interactions, the illustrated content enhancement module publishes events to one or more applications of the application platform, which in turn provide additional content for rendering with the electronic book. 
         FIG. 4  is a flow diagram of an example process that the content enhancement module may perform for enhancing content being rendered on the electronic device of  FIG. 1 . 
         FIG. 5  is a flow diagram of an example process that an application of the application platform may perform for enhancing content being rendered on the electronic device of  FIG. 1 . 
         FIG. 6  illustrates an example architecture in which an electronic device stores one or more corrections files associated with respective content items. When rendering a content item, a rendering module may substitute content from the corrections file for corresponding content in the content item. 
         FIG. 7  is a flow diagram of an example process that the rendering module may perform for receiving and storing substitutions (e.g., corrections) to a content item that a user consumes on the electronic device of  FIG. 6 . This process also includes the module causing display of the substituted text when the user later requests to render the content item on the electronic device. 
         FIG. 8  is a flow diagram of an example process for receiving and storing, in a corrections file, a request to correct a content item. This process also includes providing the corrections file to an electronic device. In some instances, the corrections file is separate from a content item associated with the corrections file. 
         FIG. 9  is a block diagram showing an example of an electronic device, which may comprise an electronic book reader in some embodiments. 
     
    
    
     DETAILED DESCRIPTION 
     This disclosure describes systems, devices, and processes (collectively “techniques”) for enhancing content being rendered on an electronic device. In some instances, the techniques include monitoring events experienced by an electronic device and/or by a content item that the electronic device outputs. In some instances, these events are indicative of interactions between a user of the electronic device and a content item that the user consumes on the electronic device. In other instances, the events are indicative of events experienced by the device itself. For instance, these monitored events may comprise scheduled events, events indicating a current time, events indicating a current geographical location of the electronic device, events indicating current ambient light experienced by the electronic device, events indicating a current ambient temperature experienced by the electronic device, and/or the like. 
     In some of the examples described below, the events are indicative of interactions between a user and a content item that the user consumes on an electronic device. The content items may include electronic books, songs, videos, documents, or the like. In response to detecting an interaction between the user and the content item, the techniques may publish an event indicative of the interaction to an application platform that hosts one or more applications. The applications may be designed to enhance the content that the user consumes in one or more specified ways. 
     These applications may receive the published events to identify a current interaction between the user and the content item. For instance, the event may indicate that the user has turned a particular page, has highlighted certain text, has selected a particular icon, has adjusted a setting on the electronic device (e.g., volume, brightness, etc.), has provided an input to the electronic device, or that the user has interacted with the content item in any other way. In response to receiving the event and identifying the interaction, each of the applications may compare the event to a respective set of predefined events to which the application is configured to respond to. For instance, if the application is configured to render a particular piece of content in response to a user reaching a certain page of a certain electronic book, then the application may compare a published event to the set of predefined events to identify when this particular interaction occurs. In response to identifying such an interaction, the application may request to render (or otherwise output) the particular piece of predefined content. 
     In some instances, the applications may also reference additional context information associated with the events or with the content item being rendered to determine whether or not to respond to the event. For instance, the applications may determine an identity of the user consuming the content item to determine the user&#39;s preferences or past interactions. Additionally or alternatively, the applications may determine a current location of the electronic device, a current date or time of day, capabilities of the electronic device, whether the electronic device currently has network connectivity, or any other context associated with the published event. 
     After identifying the event and potentially additional context information associated with the event, one or more applications may request to provide additional content for output on the electronic device. The techniques may receive theses requests and may cause output of one or more pieces of the additional content provided by the application(s) of the application platform. 
     For instance, envision that a user is currently reading a particular electronic book that comprises text, but that does not ordinarily include illustrations of any sort. Envision also that another user has created an application that illustrates maps of locations that characters of the electronic book travel to within the book. In this example, envision that the user reading the book in the architecture  100  has downloaded this application for the purpose of enhancing her experience of reading the book. Therefore, as the user interacts with the book (e.g., by turning pages, etc.), the techniques may publish events indicating these interactions to the application platform that hosts this application. 
     In response to identifying an event indicating that the user has turned to a page that references the characters moving a new physical location within the story, the application may request to render a map along with the electronic book. As such, when the user reaches this location, she is shown a map that illustrates the different physical locations that are pertinent to the particular part of the story that she is currently reading. This illustration may enhance this user&#39;s consumption or enjoyment of the rendered electronic book. 
     In some instances, an electronic device may store or otherwise have access to many applications. As such, the techniques may limit which applications receive particular events and/or may limit which applications are able to output additional content. In the first instance, when the techniques detect an event, the techniques may determine which of multiple applications to which to publish the event. In the second additional or alternative instance, the techniques may receive additional content from multiple applications in response to a particular event, and may determine a subset of the additional content to output. 
     In each of these instances, the techniques may make the determination with reference to the context information discussed above. For instance, certain applications may have an affinity for certain content items and/or certain types of interactions. Therefore, the techniques may publish the events to these applications and/or may favor the outputting of content from these applications. Furthermore, the techniques may utilize any type of context information, such as time, location, user preferences, past user interactions, and the like. Furthermore, it is noted that some applications stored on the application platform may only be associated with a particular set of one or more content items, while other applications may provide content for output to a wide variety of content items. 
     While the discussion above provided the example of rendering a map while a user reads a particular electronic book, the applications may provide any sort of visual, audible, and/or tactile content for output, as discussed in detail below. In one particular example, an application may alter the primary content (e.g., the electronic book) on the display in response to identifying a particular event. For instance, when the user turns to a page of the electronic book that mentions one of the geographical locations described above, an application may make the font associated with the textual reference of the geographical location bold and oversized. Of course, while one example is given, the application(s) may alter the display or output of the content item in any other way. 
     In another particular example, an application may substitute a particular piece of content in a content item for another piece of content. For instance, one application may make corrections to a content item. In this example, a user may download a corrections file that includes corrections (e.g., spelling errors, grammatical errors, etc.) made to a particular content item. Therefore, as the user reads the book, these interactions (e.g., page turns) are published to this and other applications on the applications platform. 
     At the appropriate pages, the corrections application sends a request to substitute a particular piece of text (e.g., word, sentence, paragraph, etc.) for a corresponding piece of text. For instance, the substituted text may correct a misspelled word. In response, the techniques may render the corrected text in lieu of the original text of the book. In some instances, the corrections file is separate from a file storing the contents of the electronic book and, as such, the provisioning of the correction(s) does not modify the file storing the contents of the book. Furthermore, while corrections files may function in the manner described immediately above, the techniques may render these corrections in other ways and in other architectures, as discussed below with reference to  FIGS. 6-8 . 
     The claimed techniques are described below with reference to several example architectures. However, it is to be appreciated that a number of other architectures may also employ these techniques. 
     Example Content-Enhancement Architecture 
       FIG. 1  illustrates an example architecture  100  in which a group of example users  102  employ respective electronic devices  104 ( 1 ),  104 ( 2 ), . . . ,  104 (N) (collectively “ 104 ”) to consume varying types of content items. The electronic devices  104  may include electronic book readers, mobile phones, multifunctional devices, desktop computers, laptop computers, game consoles, personal media players, and the like. The content items, meanwhile, may include electronic books, audio files, video files, or the like. The terms content, content item, and electronic book include essentially any form of electronic data that may be consumed on a device, including textual and verbal works comprising sequences of words such as digital books, audio books, electronic magazines, papers, journals, periodicals, documents, instructional materials, course content, music, movies, and so on. In some examples, the users may employ electronic devices that include a display, while in other examples the electronic devices do not include a display, but rather include one or more other types of output components, such as speakers for outputting audio or the like. 
       FIG. 1  illustrates an example electronic device  104 ( 1 ) that renders an electronic book  106  on a display of the device, as well as content  108  that supplements the electronic book  106  that is currently being rendered. In this example, the “additional” or “supplemental” content  108  comprises a map showing locations that are discussed within the electronic book. In other instances, meanwhile, the content  108  may comprise any content that supplements or enhances the illustrated electronic book, visually, audibly, tactilely, or otherwise. 
     In some instances, the example electronic device  104 ( 1 ) may comprise a dedicated-purpose eBook reader device, having a flat-panel display and other characteristics that mimic the look, feel, and experience offered by paper-based books. For example, such eBook reader devices may have high-contrast flat-panel displays that appear similar to a printed page and that persist without frequent refreshing. Such displays may consume very negligible amounts of power, so that the eBook reader devices may be used for long periods without recharging or replacing batteries. In some instances, these readers may employ electrophoretic displays. 
     In the example of  FIG. 1 , a user employing the electronic device  104 ( 1 ) may download or otherwise access the electronic book  106  from a distribution service  110  that is accessible over a network  112 . The network  112  may be any type of communication network, including a local-area network, a wide-area network, the Internet, a wireless network, a wide-area network (WWAN), a cable television network, a telephone network, a cellular communications network, combinations of the foregoing, and/or the like. 
     In  FIG. 1 , the distribution service  110  is illustrated as a network-based or cloud-based service, available over a public network such as the Internet. The electronic devices  104  may be configured to allow the users  102  to conveniently browse for content and content items  114  from the service  110 , and to obtain (e.g., purchase) and download selected content items from the service  110 . 
     Various applications and user interfaces may be used in conjunction with the electronic devices  104  to interact with the service  110 , such as Internet browser programs that allow a user to interactively engage different online services. In addition, the service  110  may expose lower-level interfaces or APIs (application programming interfaces) through the network  112 , through which devices and programs can access the underlying functionality of the service  110  without direct user interaction. For example a user may interactively purchase an eBook or other content item using a personal computer or some device other than the example electronic device  104 ( 1 ). 
     The service  110  might be implemented in some embodiments by an online merchant or vendor. Electronic books and other electronic content might be offered for sale by such an online merchant, or might be available to members or subscribers for some type of periodic or one-time fee. In some circumstances, electronic books or other content might be made available without charge. In either instance, the service  110  may include a client interface  116  through which electronic devices  104  interact with the service  110 . The client interface may include a virtual storefront or other type of online interface for interaction with consumers and/or devices. The client interface may expose a graphical, web-based user interface that can be accessed by human users to browse and obtain (e.g., purchase, rent, lease, etc.) content items such as eBooks. The client interface may also expose programmatic interfaces or APIs that entities and devices can use to obtain digital content items and related services. 
     In the described embodiment, the electronic devices  104  include non-volatile storage capabilities so that electronic content items can be downloaded and stored in their entirety on the electronic devices. For instance, the example electronic device  104 ( 1 ) may store the illustrated electronic book  106 . In some instances, once an electronic book has been stored by an electronic device, it can be displayed and read at any time, whether or not the electronic device is connected to a network. In other embodiments, meanwhile, the electronic device may stream or otherwise receive content items on-demand. 
     As illustrated, the electronic device  104 ( 1 ) includes one or more processors  118 , memory  120 , one or more input devices  122 , and one or more interfaces  124 . The input devices  122  allow a user to operate the electronic device  104 ( 1 ), and may include a keyboard, a touch screen, or any other type of input device. The interfaces  124 , meanwhile, may comprise wired or wireless interfaces that allow the electronic device  104 ( 1 ) to communicate with the distribution service  110  and other entities. 
     In this example, the memory  120  stores or otherwise has access to one or more content items (e.g., the rendered electronic book  106 ), a content enhancement module  128 , an application platform  130  that hosts one or more applications  132 ( 1 ), . . . ,  132 (O), and context information  134 . The device  104 ( 1 ) may also include an array of other devices and modules found in traditional electronic devices, such as an operating system, various sensors (e.g., location sensors, altitude sensors, etc.), and the like. 
     At a high level, the content enhancement module  128  functions to monitor for events experienced by the device and/or by content items being output the device. For instance, the module  128  may monitor for interactions between a user of the device  104 ( 1 ) and the electronic book  106  that the device  104 ( 1 ) renders. These interactions may include the user turning a page in the book, reaching a page in the book that includes a hidden tag or other marker, highlighting or otherwise selecting text in the book, changing a font size of the book, annotating or otherwise commenting on the book, adjusting a setting (e.g., contrast, volume, etc.) of the device itself, or any other interaction. In response to detecting an interaction, the content enhancement module  128  publishes a corresponding event indicative of the interaction to one or more applications on the application platform  130 . Additionally or alternatively, the module  128  may identify events experienced by the device (e.g., a change in location, a scheduled event occurring, etc.) and may publish these events to one or more applications on the application platform  130 . 
     As described in detail below, in some instances the module  128  may publish each event to the application platform  130  as a whole (and, hence, to each application  132 ( 1 )-(O)), while in other instances the module  128  may publish each event to a selected subset of the applications  132 ( 1 )-(O) on the platform  130 . Further, while  FIG. 1  illustrates that the application platform  130  resides locally on the device  104 ( 1 ), in some instances the platform resides, in whole or in part, remotely from the device  104 ( 1 ). 
     The applications  132 ( 1 )-(O) comprise applications that are configured to extend, enhance, or otherwise supplement the user&#39;s consumption of one or more content items. In some instances, an application on the platform  130  is associated with a particular set of content items (e.g., a particular electronic book or set of books), while in other instances an application is associated with a larger set or all content items rendered or otherwise output on the device  104 ( 1 ). For instance, one of these applications may comprise a single data file that operates to supplement multiple different content items, as in the case of a dictionary or reference work that outputs definitions or other information associated with a selected work across multiple or all content items. In another instance, the application may comprise a single file associated with a single content item, such as the illustrated map  108  that may apply to the single electronic book  106  (or a number of books in the same series). In still other instances, the application may comprise multiple files that are each associated with a set of one or more content items. For instance, an application that includes notes associated with respective books may include a file for each set of notes (e.g., a file associated with book  1 , another file associated with book  2 , etc.) 
     In some instances, the user operating the device  104 ( 1 ) may obtain one or more of the applications  132 ( 1 )-(O) from an application marketplace  136 , which may store one or more applications  138  for purchase or for free. For instance, the user may have downloaded the application that provides the map  108  to the electronic device  104 ( 1 ) from the application marketplace  136  via a client interface  140 . In other instances, meanwhile, an application may be downloaded along with a particular content item, or the application (e.g., a dictionary) may be stored on the device  104 ( 1 ) upon acquisition of the device by the user. In still other instances, the user operating the device  104 ( 1 ) may obtain one or more of the applications  132 ( 1 )-(O) from other user devices (e.g., in a peer-to-peer manner), and/or the user may create one or more of applications  132 ( 1 )-(O) on the device  104 ( 1 ) or on another device. In each of these instances, meanwhile, the applications  132 ( 1 )-(O) may be files that are separate from the corresponding content item(s) for which they provide additional content. 
     Regardless of the origin of the applications  132 ( 1 )-(O), the applications may receive events from the content enhancement module  128  and may determine whether to respond to the event with content to output. In order to make this determination, the applications may reference one or more pieces of context information  134 . The context information may include an identity of the content item, an identity of the user operating the device  104 ( 1 ), preferences of the user, a current location of the device, and the like. Further, while  FIG. 1  illustrates that the applications  132 ( 1 )-(O) may access the context information  134 , in other instances this context information may accompany the published events. 
     In either instance, the applications that receive the events may determine whether or not to provide additional content for output on the electronic device  104 ( 1 ) or on another device, and/or whether to provide additional information to another one of the applications of the application platform. To do so, each application may be configured to respond to a set of predefined events and, therefore, the application may compare each published event to this set. In response to locating a match (possibly with reference to context information), the application may provide content for output and/or may provide additional information to another application of the platform. For instance, one of the applications may provide the map in response to identifying that the user has turned to a particular page that discusses physical locations within the book  106 . In another example, when a first application identifies that the user has turned to the page that discusses physical locations, the first application may provide information about the physical locations to a second application, which may output the map with the additional information. In yet another example, when the user selects a word from the book  106 , a dictionary may respond to an event indicating this interaction with a definition for the selected word. 
     As discussed in detail below, in some instances, the content enhancement module  128  may receive multiple requests to output content from multiple different applications of the platform  130 . In response, the module  128  may output each piece of content, or may select a subset of one or more pieces of content to output. For instance, the module  128  may render the content (e.g., the map) or an icon that, when selected, renders the content (e.g., a selectable icon that renders the map when selected). The icon may comprise a superscripted letter or symbol, a stylization applied to a font (e.g., bold, underline, italics, text decoration, etc.), or any other type of visible marker. 
     In other examples, the applications of the platform may receive events that are indicative of events experienced by the electronic device. For instance, the applications may receive an event indicating a current geographical location of the device. In response, the applications may determine whether or not to respond to the event and, if so, may identify the content to provide. 
       FIG. 2  illustrates the content enhancement module  128  and other components of the example electronic device  104 ( 1 ) in greater detail. As illustrated, the content enhancement module  128  may include an interaction monitoring module  202 , an event publishing module  204 , and a content output module  206 . The event publishing module  204  may include an application selection module  208 , while the content output module  206  may also include an application selection module  210 . 
     The interaction monitoring module  202  may function to monitor interactions between a user of the device  104 ( 1 ) and a content item rendered on the device (e.g., the electronic book  106 , a song, a movie, etc.). In response to detecting an interaction, the module  202  passes an indication of the interaction to the event publishing module  204 . The module  204  functions to publish an event to one or more applications hosted by the application platform  130 . 
     In some instances, the application selection module  208  selects a subset of the applications to publish the event to. The selected subset may be based on a variety of criteria, such as:
         a type or classification of the interaction (e.g., opening a new book, a page turn, etc.);   an identity or classification of the content item;   preferences of a user consuming the content item or preferences of similar users;   past interactions between the user and content items or past interactions of similar users and content items;   capabilities of the electronic device  104 ( 1 );   whether or not the electronic device  104 ( 1 ) is connected to a network;   a current location of the electronic device  104 ( 1 );   information associated with selected text;   a location in the content item at which the interaction occurs;   a current date or time;   an affinity between the content item and each of the applications on the platform  130  (as expressed by the applications and/or the content item);   and   any other information associated with the content item, the applications, the interaction, or the user.       

     After receiving an event from the event publishing module  204 , applications of the application platform  130  may determine whether or not to respond to the event and, if so, may determine content to provide for output. Before making one or both of these determinations, however, one or more of the applications may determine context associated with the interaction from the context information  134 . This context information may include information associated with the user  212  (e.g., preferences of the user), a current page  214  or other location indication within the content item, a location  216  of the electronic device  104 ( 1 ), a time  218  of day or a date, and/or any other similar or difference pieces of information. In order to receive this context information, in some instances the applications may call one or more application programming interface exposed by the device  104 ( 1 ). 
     After receiving the event and referencing the context information  134 , one or more of the applications  132 ( 1 )-(O) may provide a request to display content to the content output module  206 . In response, the content output module  206  may then provide the content for output on a display  220  or other output device (e.g., speakers, etc.) of the electronic device  104 ( 1 ). 
     Before doing so, however, the application selection module  210  may select a subset of the received content to provide for output on the display  220 . For instance, if the content output module  206  receives ten requests to cause display of ten pieces of content from respective applications, the application selection module  210  may select a subset (e.g., one, three, etc.) to provide to the display  220 . This selection may be based on the same or similar criteria as described above with reference to the application selection module  208 . It is noted that while  FIG. 2  illustrates both the application selection module  208  and the application selection module  210 , in some instances the content enhancement module  128  may include one or the other, or may not include either module. 
     Of course, while the application selection module  210  may select less than all of the received pieces of additional content for output as discussed above, in some instances the module  210  may select each received piece of content for output. Furthermore, in instances where the content output module  206  outputs multiple pieces of additional content, the module  206  may layer this content to allow a user of the device  104 ( 1 ) to toggle through the different layers and, hence, through the additional content. In other instances, meanwhile, multiple pieces of layered additional content may work in unison with one another. For instance, a first layer of additional content may mask a misspelling of a word, while another layer of additional content that includes the correct spelling of the word may be rendered atop the masked portion of the display. 
     Furthermore, in each instance, the number of selected applications may vary based on the certainty of which application is the “correct” application to respond to the event. For instance, if a user operating the device clearly highlights a word in the electronic book  106  and is clearly looking for a definition of the word, then the application selection module  208  may publish this event exclusively to the dictionary application, and/or the application selection module  210  may exclusively output the content exclusively from the dictionary application. However, in instances where the interaction may elicit responses from multiple different applications, the application selection module  208  may publish the event to a relatively large number of applications, and/or the application selection module  210  may provide content to the display from a relatively large number of applications. In these instances, the content output module  206  may, for instance, output a selectable list of multiple available pieces of content. In response to receiving a selection of a particular piece of content on the list from the user, the module  206  may output that particular piece of content. 
     While the applications  132 ( 1 )-(O) may provide any sort of visual, audible, tactile, or other type of content for output on the electronic device  104 ( 1 ), some example applications and content provided thereby may include the following:
         A dictionary application that provides definitions of selected words;   A thesaurus application that provides synonyms and/or antonyms of selected words;   A translation application that provides translations of selected words and/or phrases;   An annotation application that provide user annotations in response to an event indicating that a user has selected certain text (e.g., private annotations, public annotations, group/classroom annotations, popular annotations, an author&#39;s annotations, etc.);   A position application that provides a page number or other location indicator in a content item;   A table-of-contents, index, or search application;   A corrections application that provides corrections to a content item (e.g., author corrections, personal corrections, crowd-sourced corrections, etc.);   An application provides notes from subject matter experts;   A quiz application that provides a quiz at certain locations in a content item (e.g., at the end of a chapter, end of a book, etc.);   A social networking application that provides a status update in response to a user selecting a piece of text;   A browser application that provides content associated with selected links; and   Any other application that provides any sort of content that enhances a user&#39;s consumption of an underlying content item.       

     In some instances, the content provided by an application may overlay onto a content item, may appear in a whitespace of the content item, or may require selection of an icon by a user to view the content. In the latter instances, the icon may comprise an underline of a particular piece of text, an “info” icon above the appropriate text, or the like. In response to a user activating the icon, the content output module  206  or another module may output the content (e.g., the map illustrated in  FIG. 1 , etc.). Furthermore, some applications that have applicability to multiple different content items may have content that is authored by different users. For instance, a first user may author the quiz application described in the list above, while other users may actually author quizzes associated with different respective content items. 
     Example Content-Enhancement Processes 
       FIG. 3A-3C  is a flow diagram of an example process  300  for extending or enhancing content that is being rendered on an electronic device, such as the device  104 ( 1 ) of  FIG. 1 . Each of the processes described herein is illustrated as a logical flow graph, each operation of which represents a sequence of operations that can be implemented in hardware, software, or a combination thereof. In the context of software, the operations represent computer-executable instructions stored on one or more computer-readable storage media that, when executed by one or more processors, perform the recited operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures, and the like that perform particular functions or implement particular abstract data types. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described operations can be combined in any order and/or in parallel to implement the process. 
     The process  300  includes, at  302 , the display  220  of the electronic device  104 ( 1 ) rendering an electronic book, such as the example electronic book  106  of  FIG. 1 . While the process  300  describes rendering an electronic book, it is to be appreciated that other embodiments may employ other types of content items. At  304 , the content enhancement module  128  begins monitoring interactions between a user operating the device  104 ( 1 ) and the rendered electronic book. At  306 , the module  128  detects such an interaction, such as the user turning a page, highlighting or otherwise selecting text, or the like. 
     In response to detecting this interaction, the content enhancement module  128  may select, at  308 , one or more applications of the application platform to which to publish an event indicative of the interaction. As discussed above, this selection may be based on one or more pieces of criteria, such as a page to which the user turns, past interactions or behavior of the user, a location of the device, and/or other types of context associated with the event. At  310 , the content enhancement module  128  proceeds to publish the events to the selected applications and, at  312 , these applications receive the event indicative of the interaction. 
       FIG. 3B  continues the illustration of the process  300 . At  314 , the applications of the platform may determine one or more pieces of context associated with the event, which may or may not accompany the event itself. With use of this information, the applications may determine whether or not to respond to the event and, if so, which content to display or otherwise output at  316 . At  318 , each application that determines to respond to the event provides a request to display or otherwise output its determined content to the content enhancement module  128 , which receives the requests at  320 . At  322 , the content enhancement module  128  may select a subset of this “additional” or “supplemental” content to render on the display  220 . 
       FIG. 3C  continues and concludes the process  300  and includes, at  324 , the content enhancement module  128  sending the selected subset of the additional content for rendering on the display  220 . At  326 , the display  220  receives this subset of content and, at  328 , renders the additional content on the display with the electronic book. This may include outputting one or more selectable icons associated with the content, or directly outputting the content itself. For instance, in response to the user turning to a particular page of the electronic book  106 , the display  220  may receive and output the example map illustrated in further detail in  FIG. 1 , or an icon that, when selected, causes rendering of the map. 
       FIG. 4  is a flow diagram of an example process  400  that the content enhancement module  128  may perform for enhancing content being rendered on the electronic device  104 ( 1 ). At  402 , the module  128  may monitor interactions between a user and a content item that an electronic device outputs. At  404 , the module  128  detects an interaction while performing the monitoring. At  406 , the module  128  selects, from multiple different applications, a subset of the applications to receive an event indicative of the detected interaction. At  408 , the module  128  then publishes the event to the subset of applications and, at  410 , the module  128  receives additional or supplemental content from these applications for output on the electronic device. Then, at  412 , the module  128  may select a subset of this content to provide for output on the device. Finally, at  414 , the module  128  causes output of the selected additional content on an output component of the electronic device. 
       FIG. 5  is a flow diagram of an example process  500  that an application of the application platform  130  may perform for enhancing content being rendered on the electronic device  104 ( 1 ). At  502 , the application may monitor published events that are indicative of respective interactions between a user and a content item that the user consumes on an electronic device. At  504 , the application determines a context associated with each of the events, which may comprise one or more pieces of the context information described above. 
     At  506 , the application may identify an event to respond to based at least in part on the event itself and, in some instances, based at least in part on the determined context associated with the event. The operation  506  may include, at  506 ( 1 ), comparing each of the events to a set of predefined events that the application is configured to respond to. The operation  506  may also include, at  506 ( 2 ), identifying an event to respond to in response to determining a match between the published event and an event from the set of predefined events associated with the application. In some instances, the application may also make this match based at least in part on the determined context information. 
     At  508 , the application may select content to output on the electronic device. For instance, if the application is a dictionary application and the event indicates that the user selected a particular word of an electronic book, then the application may select a definition for the selected word. Finally, at  510 , the application may provide the selected content to output on the electronic device. 
     Example Content-Item Correction Architecture 
       FIG. 6  illustrates an example architecture  600  in which the example electronic device  104 ( 1 ) described above stores or has access to one or more corrections files associated with respective content items. When rendering a content item, a rendering module may substitute content from the corrections file for corresponding content in the content item. 
     In the example of  FIG. 6 , the electronic device  104 ( 1 ) renders a particular electronic book  602 . Again, while  FIG. 6  illustrates an electronic book, in other instances these techniques may apply to other types of content items, such as songs, movies, and the like. In this example, the electronic book  602  is rendered on the display of the device with a correction that has been made to a word within the book. Specifically, the display includes an indication  604  that that word “shrieking” has been corrected before being rendered on the display  220  of the device  104 ( 1 ). For instance, the file associated with the illustrated electronic book may include the misspelling “shreiking”, which has been corrected on the display of the device. 
     In order to correct this example misspelling, the device  104 ( 1 ) includes a rendering module  606  and one or more corrections files  608 , each of which may be associated with one or more particular content items  126  stored on or otherwise accessible to the electronic device  104 ( 1 ). Each of the corrections files  608  may include one or more corrections or other types of substitutions that are to be made at the time of rendering a corresponding content item. For instance, the correction file  608  associated with the electronic book  602  may include a request to substitute the misspelling “shreiking” with the proper spelling “shrieking”. For instance, the file may request to substitute each instance of the misspelling with the properly spelled word. 
     In some instances, the corrections files  608  are separate from corresponding files that store contents of the associated content items. As such, any corrections within the corrections file do not modify the actual content item itself. Instead, when as a user consumes a particular item (e.g., reads a particular electronic book) and reaches a location in the content item that includes a portion that the corrections file indicates should be substituted (e.g., a misspelling), the rendering module  606  may render the content item and the correction/substitution at the same time. By doing so, the rendering module  606  displays or otherwise outputs the corrected/substituted text without modifying the underlying content item itself. 
     In some instances, the corrections files  608  may operate in the architecture of  FIG. 1 , while in other instances they may not. That is, while corrections may be made by responding to “events”, these corrections may also be implemented using other functionality. 
     In some instances, a user operating the device  104 ( 1 ) may request to make corrections to the electronic book  602  as the user reads the book  602  on the device  104 ( 1 ). As such, the memory  120  may store a corrections module  610  that allows the user to make such correction or other substitution requests. For instance, in response to seeing the misspelling “shreiking”, the user may select this word and request to correct the spelling. In response to making a request, the corrections module  610  may output a text box to allow the user to insert what she believes is the proper spelling. Then, the corrections module  610  may store this correction in the corresponding corrections file, or may provide this requested correction to a predefined authoritative source for determining the accuracy of the correction. For instance, as users read books, such as the book  602 , a central service may compile and crowd-source the requested corrections. As changes are determined to be accurate, they may be stored in an authoritative corrections associated with the particular electronic book or other content item. 
     In other instances, meanwhile, a user may store his or her own corrections file locally without regard to whether or not these corrections have been “approved” by an authoritative source. Furthermore, in some instances the user may also receive one or more corrections files from a corrections-file distribution service  612 . This service  612  may store multiple different corrections files  608 , associated with respective electronic books or other content items. As such, the user operating the electronic device  104 ( 1 ) may choose to download one or more corrections files via a client interface  616  provided by the service  614 . These corrections files may include corrections made by an author of the electronic book  602 , other readers of the electronic book  602 , or the like. While the user may request to download these files, in some instances the service  612  may push approved or authoritative corrections files to each device that stores a copy of a particular electronic book, potentially without receiving requests from users of these devices. 
     Regardless of the origins of the corrections within a particular corrections file, the rendering module  606  may receive an indication when the electronic device desires to render the electronic book  602  at the request of the operating user. In response, the rendering module  606  may determine a location of the electronic book  602 , as well as whether the corrections file(s) stored on the device  104 ( 1 ) and associated with the book  602  indicates that correction(s) should appear at the to-be-rendered location. If so, then the rendering module renders both the content of the electronic book  602  at the appropriate location, as well as any corrections made within that location. For instance, the module  606  may substitute the word “shreiking” for the word “shrieking”. By doing so, the user views the correction without modifying the actual electronic book  602  itself. In order to substitute this text at a time of rendering, the rendering module  606  may actually overlay the correct spelling of shrieking atop the electronic book  602  in some instances. 
     In other instances, meanwhile, the electronic book may comprise a formatting skeleton and multiple fragments for insertion into the formatting skeleton, as described in U.S. patent application Ser. No. 12/892,771, filed on Sep. 28, 2010 and entitled “Fragmentation of Structured Language Data”, which is incorporated herein by reference in its entirety. Here, the formatting skeleton of the electronic book  602  specifies formatting information for the electronic book, while the multiple fragments include the actual presentation data of the electronic book (e.g., text, illustrations, etc.). The fragments may represent differently sized portions of the electronic book, such as a paragraph of the book, a sentence of the book, or even a word of the book. 
     In these instances, the corrections files  608  may themselves comprise fragments for insertion into the formatting skeleton at a particular location, either in addition to or in lieu of a particular fragment of the electronic book  602 . For instance, envision that the electronic book includes a fragment corresponding to a paragraph that includes the misspelling “shreiking”, and that the corrections file associated with the electronic book  602  includes a fragment that comprises the same paragraph, with the exception being that this fragment includes the proper spelling of “shrieking”. In addition, this fragment may indicate that it is to be inserted into the formatting skeleton in lieu of the fragment that includes the misspelled term. As such, when the rendering module  606  receives an indication that the electronic device wishes to render the electronic book  602 , the rendering module may substitute the fragments when the user reaches that particular location of the electronic book. Again, by substituting fragments in this manner, the user is able to view the corrected version of the word “shrieking” without actually modifying the actual electronic book itself. Furthermore, in addition or in the alternative to substituting or adding fragments, in some instances the corrections file may include an instruction to remove an existing fragment of the electronic book without inserting a fragment in its place. 
     As  FIG. 6  illustrates, the rendering module  606  may display an indication  604  when the module  606  displays a correction from one of the corrections files  608 . For instance,  FIG. 6  illustrates that the rendering module  606  has rendered a dotted box around the corrected use of the term “shrieking”. Of course, while  FIG. 6  illustrates one example indication  604 , other embodiments may employ other types of indications, such as a flag, italicized text, underlined text, and the like. 
     Furthermore, in instances where requested corrections are crowd sourced or otherwise verified before being integrated into a corrections file, the rendering module  606  may use these indications as a communication tool for communicating the state of the correction to the user. For instance, when the user requests to make a correction, but before the validity of the correction is verified, the rendering module  606  may render an “S” above the alleged mistake, indicating to the user that the requested correction has been submitted for approval. Furthermore, when the correction is accepted, the rendering module  606  may render a “C” for corrected or an “A” for accepted. Furthermore, if the user requests to make a correction that is ultimately rejected, the rendering module  606  may render an “R”, indicating this rejection. Of course, while a few examples have been discussed, it is to be appreciated that other indications may be used in other instances. 
     While the above discussion has focused on making corrections to misspellings and grammatical errors, these corrections files  608  may cause any type of text or other content to be substituted upon rendering of a corresponding content item. For instance, these files  608  may include substitutions for vulgar or socially unacceptable words in some instances. That is, the user of the device  104 ( 1 ) or another entity may request to substitute, within the electronic book  602 , a particular word that is considered vulgar with a less vulgar synonym. As such, the rendering module  606  may make this substitution throughout the electronic book  602  as the user reads the book on the electronic device  104 ( 1 ). The rendering of the electronic book  602  with this corrections file may result in rendering a censored version of the electronic book. As described above, while the user may view these changes on the device  104 ( 1 ), these changes will not alter the contents of the underlying file storing the electronic book  602  itself. 
     In this regard, envision that a teacher wishes to substitute a particular vulgar term for a less vulgar term in each copy of the electronic book  602  that the teacher&#39;s students read. To do so, the teacher may make the change in a particular corrections file and then may provide this corrections file to each of her students&#39; devices. Then, when each of her students open their copy of the book on their respective device, the rendering module  606  on that particular device will render the book along with the changes made by the teacher. 
     In one specific example, the teacher could operate an electronic device to request to make one or more changes to particular electronic book or other content item. For instance, the teacher could access a website hosted by the corrections-file distribution service  612  to request to create a corrections file that censors an undesirable term (or terms). In addition, the teacher may provide an identification of each of her students&#39; devices, identifications of their copies of the electronic book  602 , or identifications of the students themselves. In response, the distribution service  612  may push this corrections file to each of the student devices, such that these devices render the censored version of the electronic book. Of course, while this example describes a teacher/student group, it is to be appreciated that these techniques apply equally to any other type of group, such as a reading club, a church, or any other organized or unorganized community. In each instance, an authority figure may have the authority to provide these corrections files to the devices of the group. Further, while these techniques are described with reference to creating a censored version of a content item, these corrections files may alter the rendering of the content item in any other manner. 
     In some instances, the rendering of the electronic book  602  or other content item with the corresponding corrections file  608  may be dependent on other factors, such as a user operating the device  104 ( 1 ), a location of the device  104 ( 1 ), or the like. For instance, when a father of a family authenticates with the device  104 ( 1 ) and requests to render the electronic book  602 , the rendering module  606  may refrain from rendering the censored changes from the corrections file. However, when a younger son or daughter of the family authenticates with the device and makes the same request, the rendering module  606  may render the electronic book  602  along with the censored changes from the corrections file  608 . 
     In yet another example, the corrections file  608  may be associated with a particular location or set of locations. For instance, in the teacher/student example, the teacher (or other authority source) may associate the corrections file  608  with the geolocation corresponding to the school where the teacher and students gather for class. Therefore, when the students request to render the electronic book  106  on their respective devices  104  while at school, the rendering module  606  may render the book along with the censored changes to the book. When these students make the same request at home, however, the rendering module  606  may render the electronic book  602  without reference to the corrections file  608 . 
     Example Content-Item Correction Processes 
       FIG. 7  is a flow diagram of an example process  700  that the rendering module  606  or another module may perform in whole or in part. At  702 , the rendering module  606  may receive a request to substitute a first portion of text of an electronic book with a second portion of text. For instance, a user operating the electronic device  104 ( 1 ), an author or publisher of the electronic book  602 , or another entity may request to substitute the term “shreiking” with the term “shrieking” with the electronic book  602 . While this example comprises a user requesting to correct a misspelling, in other instances this request may be a request to substitute text for any other reason. For instance, a user that desires to learn a new language (e.g., Spanish) may request to substitute particular English words or phrases for translated Spanish words or phrases. 
     At  704 , the rendering module  606  may store this request in a file that is separate from the electronic book to which it is associated with. At  706 , the rendering module  606  receives an indication that an electronic device that stores or otherwise has access to the corrections file is requesting to render the corresponding electronic book. At  708 , the rendering module causes display of the second portion of text in the electronic book in lieu of the first portion of text. For instance, the rendering module  606  may substitute each use of the term “shreiking” with the term “shrieking”. By substituting the text in this manner, the techniques display the requested substitution without modifying the file storing the contents of the electronic book or other content item. 
       FIG. 8  is a flow diagram of an example process  800  for receiving and storing a request to correct a content item in a corrections file, and for providing the corrections file to an electronic device. At  802 , a request to make a correction to a particular content item is received. This request may be received from a user, either at an electronic device that the user operates or at a device (e.g., a server) that is remote from an electronic device that the user operates. At  804 , the requested correction is stored in a corrections file that is separate from the content item to which the correction pertains. At  806 , the corrections file is provided to an electronic device such that when the device renders the content item, the device is able to render the correction along with the content item, possibly without modifying the content item itself. The corrections file may be provided to a local or remote electronic device. 
     Example Electronic Book Reader 
       FIG. 9  is a high-level block diagram showing an example of the electronic device  104 ( 1 ), which comprises an electronic book reader in some examples. In this embodiment, the electronic device  104 ( 1 ) is a dedicated eBook reader device, designed specifically for the purpose of emulating a traditional book-like reading experience. To that end, it has a size and weight that is comparable to a paper-based book, and uses a monochrome display having a contrast ratio that approaches that of the printed page. For brevity sake, components described above in detail (e.g., the content enhancement module  128 , the application platform  130 , the rendering module  606 , etc.) are not described below. However, it is to be appreciated that the electronic device  104 ( 1 ) may include one or a combination of these components, as described in detail above. 
     In a very basic configuration, the electronic device  104 ( 1 ) includes one or more processors  118  and memory  120 , as described above. Depending on the configuration of the electronic device  104 ( 1 ), the memory  120  may be a type of computer storage media and may include volatile and nonvolatile memory. Thus, the memory  120  may include, but is not limited to, RAM, ROM, EEPROM, flash memory, or other memory technology, or any other medium which can be used to store media items or applications and data which can be accessed by the electronic device  104 ( 1 ). 
     The memory  120  may be used to store any number of functional components that are executable on the processors  118 . In many embodiments, these functional components comprise instructions or programs that are executable by the processors  118  and that implement operational logic for performing the actions attributed above to the electronic device  104 ( 1 ). In addition, the memory  120  may store various types of data that are referenced by executable programs. 
     The memory  120  may store an operating system  902  and a content store  904  to store one or more content items, annotations, and the like. A user interface (UI) module  906  may also be provided in the memory  120  and executed on the processors  118  to provide for user operation of the electronic device  104 ( 1 ). The UI module  906  may provide menus and other navigational tools to facilitate selection and rendering of content items. The UI module  906  may further include a browser or other application that facilitates access to sites over a network, such as websites or online merchants, or other sources of electronic content items or other products. 
     The electronic device  104 ( 1 ) may further include the display  220  upon which electronic books and/or other content items are rendered. In one implementation, the display  220  uses electronic paper display technology. In general, an electronic paper display is one that has a high resolution (150 dpi or better) and is bi-stable, meaning that it is capable of holding text or other rendered images even when very little or no power is supplied to the display. The electronic paper display technology may also exhibit high contrast substantially equal to that of print on paper. Some example electronic paper displays that may be used with the implementations described herein include bi-stable LCDs, MEMS, cholesteric, pigmented electrophoretic, and others. One example electronic paper display that may be used is an E Ink-brand display. Touch sensitive technology may be overlaid or integrated with the electronic paper display technology to enable user input via contact or proximity to the screen. 
     The electronic device  104 ( 1 ) may further be equipped with various input devices  122 . Such devices may include various user interface controls (e.g., buttons, joystick, keyboard, etc.), microphones, connection ports, and so forth. 
     One or more network interfaces  124  may support both wired and wireless connection to various networks, such as cellular networks, radio, WiFi networks, short range networks (e.g., Bluetooth®), IR, and so forth. The network interfaces  124  facilitate receiving electronic books and other content items as described herein. 
     The electronic device  104 ( 1 ) may also include a battery and power control unit  908 . The power control unit operatively controls an amount of power, or electrical energy, consumed by the electronic reader. Actively controlling the amount of power consumed by the electronic reader may achieve more efficient use of electrical energy stored by the battery. 
     The electronic device  104 ( 1 ) may have additional features or functionality. For example, the electronic device  104 ( 1 ) may also include additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. The additional data storage media may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. 
     CONCLUSION 
     Note that the various techniques described above are assumed in the given examples to be implemented in the general context of computer-executable instructions or software, such as program modules, executed by one or more computers or other devices. Generally, program modules include routines, programs, objects, components, data structures, etc. for performing particular tasks or implementing particular abstract data types. 
     Other architectures may be used to implement the described functionality, and are intended to be within the scope of this disclosure. Furthermore, although specific distributions of responsibilities are defined above for purposes of discussion, the various functions and responsibilities might be distributed and divided in different ways, depending on particular circumstances. 
     Similarly, software may be stored and distributed in various ways and using different means, and the particular software storage and execution configurations described above may be varied in many different ways. Thus, software implementing the techniques described above may be distributed on various types of computer-readable media, not limited to the forms of memory that are specifically described. 
     Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as illustrative forms of implementing the claims. For example, the methodological acts need not be performed in the order or combinations described herein, and may be performed in any combination of one or more acts.