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.
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.
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'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'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 makes 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
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
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
In
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
The applications 132(1)-(O) comprise applications that are configured to extend, enhance, or otherwise supplement the user'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
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.
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:
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
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:
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
Example Content-Enhancement Processes
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
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.
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
In the example of
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
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
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'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' 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' 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
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.
Example Electronic Book Reader
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.
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.
Number | Name | Date | Kind |
---|---|---|---|
5761681 | Huffman et al. | Jun 1998 | A |
6551357 | Madduri | Apr 2003 | B1 |
6567830 | Madduri | May 2003 | B1 |
6711620 | Yoshii et al. | Mar 2004 | B1 |
8207846 | Van Hoff et al. | Jun 2012 | B2 |
8244277 | Cha et al. | Aug 2012 | B1 |
20020106188 | Crop et al. | Aug 2002 | A1 |
20030018582 | Yaacovi | Jan 2003 | A1 |
20030212559 | Xie | Nov 2003 | A1 |
20040090390 | Mason | May 2004 | A1 |
20040216135 | Heimbeck | Oct 2004 | A1 |
20050033747 | Wittkotter | Feb 2005 | A1 |
20050229183 | Araujo et al. | Oct 2005 | A1 |
20070198314 | Andrew et al. | Aug 2007 | A1 |
20080134025 | Harada | Jun 2008 | A1 |
20080168073 | Siegel et al. | Jul 2008 | A1 |
20080229190 | Johnson | Sep 2008 | A1 |
20100235741 | Newman et al. | Sep 2010 | A1 |
20110087955 | Ho et al. | Apr 2011 | A1 |
20110153728 | Einarsson et al. | Jun 2011 | A1 |
20110167350 | Hoellwarth | Jul 2011 | A1 |
20110219384 | Clark et al. | Sep 2011 | A1 |
20110261030 | Bullock | Oct 2011 | A1 |
20110306304 | Forutanpour et al. | Dec 2011 | A1 |
20120036429 | Ajima | Feb 2012 | A1 |
20120066581 | Spalink | Mar 2012 | A1 |
20120150655 | Seth et al. | Jun 2012 | A1 |
20120151351 | Kilroy et al. | Jun 2012 | A1 |
20120206472 | Kandekar et al. | Aug 2012 | A1 |
20130232409 | Cranfill et al. | Sep 2013 | A1 |
Entry |
---|
Mobipoket, “What is the Mobipocket file format?”, Apr. 2008, retrieved at <<http://www.mobipocket.com/dev/article.asp?BaseFolder=prcgen&File=mobiformat.htm>>, pp#1-pp#5. |
Non-Final Office Action for U.S. Appl. No. 13/047,070, mailed on Aug. 2, 2012, Charles L. Ward et al., “Integrating Content-Item Corrections”, 26 pages. |
Non-Final Office Action for U.S. Appl. No. 13/047,070, mailed on Dec. 6, 2012, Charles L. Ward et al., “Integrating Content-Item Corrections”, 28 pages. |
Office action for U.S. Appl. No. 13/047,070, mailed on Feb. 12, 2013, Ward et al., “Integrating Content-Item Corrections”, 34 pages. |
Office action for U.S. Appl. No. 13/047,017, mailed on Apr. 25, 2013, Ward et al., “Content Enhancement Techniques”, 33 pages. |
Office Action for U.S. Appl. No. 13/047,070, mailed on Feb. 27, 2014, Charles L. Ward, “Integrating Content-Item Corrections”, 23 pages. |
Final Office Action for U.S. Appl. No. 13/047,070, mailed on Oct. 20, 2014, Charles L. Ward, “Integrating Content-Item Corrections,” 30 pages. |
Office Action for U.S. Appl. No. 13/047,017, mailed on Aug. 21, 2014, Charles L. Ward, “Content Enhancement Techniques,” 29 pages. |
Final Office Action for U.S. Appl. No. 13/047,017, mailed on Feb. 27, 2015, Charles L. Ward, “Content Enhancement Techniques”, 33 pages. |
Office action for U.S. Appl. No. 13/047,070, mailed on May 12, 2015, Ward et al., “Integrating Content-Item Corrections”, 29 pages. |