throbber
(19) United States
`(12) Patent Application Publication (10) Pub. No.: US 2003/0013073 A1
`Jan. 16, 2003
`(43) Pub. Date:
`Duncan et al.
`
`US 2003OO13073A1
`
`(54)
`
`(75)
`
`(73)
`
`ELECTRONIC BOOK WITH MULTIMODE
`I/O
`
`Inventors: Brandon Duncan, San Jose, CA (US);
`Joshua Seth Hodas, Claremont, CA
`(US); Jared Joseph Jackson, San Jose,
`CA (US); Walter Irwin Nissen III,
`Livermore, CA (US); Neelakantan
`Sundaresan, San Jose, CA (US)
`Correspondence Address:
`John L. Rogitz
`Rogitz & Associates
`750 B. Street, Suite 3120
`San Diego, CA 92101 (US)
`Assignee: International Business Machines Cor
`poration
`
`(21)
`(22)
`
`Appl. No.:
`Filed:
`
`09/829,249
`Apr. 9, 2001
`
`Publication Classification
`
`(51)
`(52)
`
`(57)
`
`Int. Cl. ............................................... G09B 5/00
`U.S. Cl. .............................................................. 434/317
`
`ABSTRACT
`
`An electronic book device runs at least two output mode
`threads-one graphics, and one audio-Such that the device
`can both graphically display book content, and play the
`content over a speaker in the device Annotations can be
`made audibly or graphically, and user commands can like
`wise be made audibly or graphically
`
`- 6
`GUDEVICE
`VOICE RECOG.INPUT
`
`
`
`
`
`4
`
`DISPLAY
`SPEAKER
`
`
`
`
`
`24
`
`MODULE
`PROCESSOR
`
`
`
`
`
`SORAGE
`
`22
`
`26
`
`O
`
`18
`
`2
`
`-1-
`
`Amazon v. Audio Pod
`US Patent 10,805,111
`Amazon EX-1027
`
`

`

`Patent Application Publication Jan. 16, 2003 Sheet 1 of 4
`
`US 2003/0013073 A1
`
`FIG. 1
`ELECBOOK
`DEVICE
`
`
`
`2O
`
`
`
`24
`
`-
`6
`GUDEVICE
`VOICE RECOG.INPUT
`
`4.
`
`DISPLAY
`SPEAKER
`
`MODULE
`PROCESSOR
`
`STORAGE
`
`22
`
`26
`
`26
`-
`STORAGE
`(LIBRARY)
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`PARSER
`
`
`
`ABSTRACT
`INTERFACE
`
`FIG. 2
`OVERALL
`ARCHITECTURE
`
`O
`/
`TANGIBLE
`INTERFACE
`(GRAPHICS)
`
`TANGIBLE
`INTERFACE
`(AUDIO)
`
`TANGIBLE
`INTERFACE
`(OTHER)
`
`
`
`
`
`
`
`
`
`O
`?
`18
`
`2
`
`32
`
`34
`
`36
`
`-2-
`
`

`

`Patent Application Publication
`
`US 2003/0013073 A1
`
`
`
`
`
`squalue[GI 33euII. Jo 1s??
`
`-3-
`
`

`

`Patent Application Publication Jan. 16, 2003 Sheet 3 of 4
`
`US 2003/0013073 A1
`
`? 50
`LOAD BOOK
`MEADATAN
`BOOK CHOOSER
`
`
`
`
`
`
`
`
`
`52
`
`54
`
`INTIALIZE GUI,
`AU AND OTHER
`TANGIBLE ENT,
`
`
`
`
`
`RECEIVE
`SELECTION
`
`
`
`FIG. 4
`SETUP
`
`
`
`
`
`
`
`
`
`PASS TO
`TANGIBLE
`INTERFACES
`
`
`
`
`
`
`
`LOAD AND
`PARSE
`SELECTED BOOK
`
`? 60
`
`62
`
`64
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`RECEIVE
`NAVIGATION
`COMMANDS FROM
`ETHER ANGBLE
`INTERFACE AND
`NAVIGATE;
`UPDATE OTHER
`INTERFACE
`
`
`
`
`
`
`
`RECEIVE PRESENTATION
`COMMANDS FROM
`ETHER INTERFACE
`AND PRESENT
`UPDATE OTHER
`INTERFACE
`
`
`
`
`
`
`
`
`
`RECEIVE
`ANNOTATON
`COMMANDS
`FROM
`GRAPHICS
`INTERFACE
`
`
`
`
`
`
`
`
`
`
`
`RECEIVE
`ANNOTATION FROM
`GRAPHICS INTER-
`70 FACE; UPDATE AUDIO
`
`
`
`
`
`
`AUDIO
`ANNOTATION
`p
`
`FIG. 5
`OPERATION
`
`
`
`
`
`
`
`RECEIVE ANNOTATION
`FROMAUDIO
`INTERFACE;
`UPDATE GRAPHICS
`
`-4-
`
`

`

`Patent Application Publication
`
`Jan. 16, 2003 Sheet 4 of 4
`
`US 2003/0013073 A1
`
`99
`
`99
`
`9/
`
`09
`
`
`
`
`
`XIONA?UJOJH OID@W OAO^
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`09
`
`-5-
`
`

`

`US 2003/0013073 A1
`
`Jan. 16, 2003
`
`ELECTRONIC BOOK WITH MULTIMODE I/O
`
`BACKGROUND OF THE INVENTION
`0001) 1. Field of the Invention
`0002 The present invention relates generally to elec
`tronic books.
`0003 2. Description of the Related Art
`0004 Replacing paper books with electronic devices
`enables more compact Storage and ease of access to written
`information. For instance, a Single Small electronic device
`can Store many books, including books that might be down
`loaded instantaneously at any time via the Internet. Further,
`electronic books can be backed up, So that physical damage
`to the device does not necessarily correspond to a loss of
`content. Additionally, many electronic books provide the
`capability of annotating the displayed content as desired.
`Even further, to accommodate Sight-impaired readers, Some
`electronic books audibly display content using Synthesized
`Speech.
`0005. Unfortunately, existing electronic book devices do
`not fully exploit many of the advantages they might other
`wise. For instance, while Some books might audibly display
`content, they do not provide a reciprocal means for accept
`ing non-written input from the Visually impaired user. Fur
`ther, electronic devices that are configured for playing
`Synthesized speech typically do not also provide a visual
`display as a convenience for Sighted users, and Vice-versa.
`Not Surprisingly, since existing electronic book devices are
`Single mode, no capability has been provided to manage and
`coordinate plural modes of input and output. Still further, as
`recognized herein Visually impaired users could be accom
`modated by providing the capability to resize text without
`requiring the user to wait until a large print version of the
`book is published, but unfortunately this is not routinely
`done. In any case, existing electronic book devices are
`Simply not as useful to certain users as they might otherwise
`be. The present invention has carefully considered the above
`problems and has provided the Solutions to one or more of
`them as set forth herein.
`
`SUMMARY OF THE INVENTION
`0006 A preferred, non-limiting embodiment of the
`present electronic book device works acroSS a variety of
`modes of input and output. It manages plural modes and
`coordinates the efforts of I/O for consistency. Moreover, the
`invention can extend these capabilities to user-generated
`annotations, Such that the device can be used by disabled
`users and non-disabled users.
`0007 Accordingly, an electronic book device includes a
`portable housing and a processor in the housing. Content
`Stored in a Storage device is displayed in plural output
`modes, and the processor can respond to plural input modes.
`0008. The preferred output modes can include visual
`graphics and Sound. Accordingly, the device can include a
`Visual display and an audio Speaker, both being responsive
`to the processor for outputting content. The processor is
`responsive to user input using one or more input modes to
`Select an output mode. The input modes include graphics
`and Sound, and the device includes a graphics input device
`and an audio input device, both Sending input Signals to the
`
`processor. AS Set forth in greater detail below, the processor
`is responsive to user input to Select an input mode.
`0009 Preferably, the processor responds to a graphics
`input mode by outputting content in a graphics output mode
`using a graphic user interface. The processor also responds
`to an audio input mode by outputting content in an audio
`output mode using an audio user interface. The user inter
`faces run simultaneously with each other. Moreover, the
`processor can receive for Storage annotations from a user
`Selected one of the user interfaces and updates the other user
`interface accordingly Also, the processor is programmed to
`allow a user to navigate through the content using a user
`Selected one of the user interfaces and to update the other
`interface with the navigation result.
`0010. In another aspect, an electronic book includes
`content Stored in a data Storage, an abstract interface acceSS
`ing the data Storage, and an audio user interface communi
`cating with the abstract interface. Also, the book includes a
`graphics user interface communicating with the abstract
`interface. The abstract interface receives user input com
`mands from the audio user interface and updates the graph
`ics user interface in response thereto. Likewise, the abstract
`interface receives user input commands from the graphics
`user interface and updates the audio user interface in
`response thereto.
`0011. In still another aspect, a computer program product
`includes a computer program Storage device and computer
`readable instructions on the Storage device for causing a
`computer to display electronic content in more than one
`mode. The product includes computer readable code means
`for receiving an annotation to content via an audio user
`interface, and computer readable code means for associating
`the annotation with content. Computer readable code means
`display the annotation and associated content using a graphi
`cal user interface.
`0012. In yet another aspect, a method for presenting
`content using an electronic book includes providing a por
`table housing having content electronically Stored therein.
`The method also includes running a first output thread that
`is useful for displaying the content, and, Simultaneously with
`running the first output thread, running at least a Second
`output thread useful for displaying the content.
`0013 In one preferred embodiment, the first output
`thread is a graphics output thread and the Second output
`thread is an audio output thread. The threads are run Simul
`taneously with each other Such that each thread is at Sub
`Stantially the same location in the content as the other thread.
`Each output thread can be associated with a corresponding
`input mode for inputting annotations and user commands
`The method also includes responding to user commands to
`Switch between displaying the content from the first output
`thread and displaying the content from the Second output
`thread.
`0014. The details of the present invention, both as to its
`Structure and operation, can best be understood in reference
`to the accompanying drawings, in which like reference
`numerals refer to like parts, and in which:
`BRIEF DESCRIPTION OF THE DRAWINGS
`0015 FIG. 1 is a schematic diagram of the electronic
`book;
`0016 FIG. 2 is a block diagram showing the architecture
`of the present invention;
`
`-6-
`
`

`

`US 2003/0013073 A1
`
`Jan. 16, 2003
`
`0017 FIG. 3 is a diagram of the main window display on
`the book;
`0.018
`FIG. 4 is a flow chart showing the set up logic;
`0019 FIG. 5 is a flow chart showing the operational
`logic, and
`0020 FIG. 6 is a block diagram showing the detailed
`architecture of one particularly preferred embodiment.
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENTS
`Referring initially to FIG. 1, an electronic book
`0021
`device is shown, generally designated 10, that includes a
`portable housing 12 and a visual display 14 on the housing
`12. The display 14 can be a matrix display, touch Screen
`display, or any other visual display device. The display 14
`essentially establishes a first output device that has a corre
`sponding first input device, depicted in FIG. 1 as a graphics
`user interface (GUI) device 16. The GUI 16 can be estab
`lished by the display 14 itself when the display 14 is a touch
`Screen display, or by any other Suitable input device, Such as
`a keyboard or keypad, mouse, tablet with writing Stylus, etc.
`In any case, provision is made for both input and output
`using a graphics device, Such as but not limited to tablets,
`touch Screen displays, etc.
`0022. In addition to the output device established by the
`display 14, the book 10 includes a second output device. The
`Second output device can be, e.g., an audio speaker 18, or
`braille device, or other device A Second input device, Such
`as an audio user interface (AUI) Such as a voice recognition
`module 20 that includes a microphone on the housing 12, is
`asSociated with the Speaker 18. Additional input/output
`device pairs in modes other than audio and graphics can be
`provided in accordance with present principles.
`0023. As shown in FIG. 1, a microprocessor 22 resides
`within the housing 12 and accesses a Software, firmware, or
`hardware module 24 to execute the logic Set forth herein to
`present, in a user-Selected one of at least two modes, content
`that is Stored in a data Storage 26 in the housing 12.
`Alternatively, the Storage 26 can be remote from the housing
`12 and linked to the microprocessor 22 via wired or wireless
`connection. The microprocessor 22 presents content in
`
`graphics form on the display 14 and/or displayS content in
`audio form by playing the content over the Speaker 18.
`Accordingly, the microprocessor 22 accesses the module 24
`to undertake the logic of the present invention, which is
`executed by the microprocessor 22 as a Series of computer
`executable instructions. The instructions may be contained
`on a data Storage device with a computer readable medium,
`having a computer usable medium with code elements
`Stored thereon. Or, the instructions may be Stored on random
`access memory (RAM), on a DASD array, or on magnetic
`tape, conventional hard disk drive, electronic read-only
`memory, optical Storage device, or other appropriate data
`Storage device
`0024. The following description and pseudo-code herein
`illustrate the Structure of the logic of the present invention as
`embodied in computer program Software. Those skilled in
`the art will appreciate that these descriptions illustrate the
`Structures of computer program code elements, including
`logic circuits on an integrated circuit, that function accord
`ing to this invention. Manifestly, the invention is practiced
`in its essential embodiment by a machine component that
`renders the program code elements in a form that instructs
`a digital processing apparatus (that is, a computer) to per
`form a sequence of function Steps corresponding to those
`shown. In an exemplary embodiment, the instructions may
`be written in JAVA 1.3 or JAVA 2.
`0025 FIG. 2 shows the software architecture of the book
`10. AS shown, an abstract interface 28 accesses the Storage
`26, which stores one or more books in electronic form. In
`one preferred, non-limiting example, a book can be stored
`acroSS a number of files that contain the actual text content
`of the book stored as XML files for each chapter or other
`unit, while Some files hold graphics and other inserts as in
`typical HTML documents. In addition to these files, each
`book has a package file. This file contains an XML Speci
`fication of metadata containing information Such as the
`name of the author, the publisher, the date of publication,
`and the type of book. In addition, the package file contains
`a complete manifest of the files that make up the electronic
`book, and a list of the linear order in which the book should
`be presented. The file optionally defines alternative nonlin
`ear navigation paths through the files of the book. A Sample
`of Such a file follows:
`
`&xml version="1.0's
`<!--
`
`Taken from Test Suite for the Open eBook document version 1.0
`Garret Wilson <garretGoglobalmentor.com.>
`Author:
`
`-->
`<! DOCTYPE package PUBLIC “+/ISBN 0-9673.008-1-9//DTD OEB 1.0 Package?/EN”
`<package unique-identifier="oeb10testsuite''>
`<metadata>
`<dc-metadata>
`<dc:Title>Open eBook 1.0 Test Suite</dc:Title>
`<dc:Creator role="aut file-as-"Wilson, Garret's-Garret Wilson.<fdc:Creators
`<dc:Creator role="spin's GlobalMentor, Inc.</dc:Creators
`<dc:Rights>Copyright (C) 1999 Garret Wilson, GlobalMentor, IncY</dc:Rights>
`<dc:Description>Test suite for validating the OEB spec.</dc:Description>
`
`</dc-metadata>
`</metadata>
`
`-7-
`
`

`

`US 2003/0013073 A1
`
`Jan. 16, 2003
`
`-continued
`
`<manifest>
`<!-- OEB Documents.-->
`<item id="foreword href="foreword.html media-type="text/x-oeb1-document f>
`<item id="headings' href="headings.html media-type="text/x-oeb1-document f>
`
`<!-- PNG Images -->
`<item id="mandelbrot.png href="mandelbrot.png media-type="image?.png fs
`
`</manifest>
`<spines
`<item ref idref="foreword f>
`<item refidref="headings' fs
`
`</spines
`<tourse
`<tour id="alphatour title="Alphabetical Tour of Element >
`<site title="Element <as href="links.html#a f>
`<site title="Element <areas href="images.html#area/>
`
`</tours
`</tourse
`<guide>
`<reference type="toc' title="Table of Contents' href="toc.html fs
`<reference type="foreword title="Foreword” href="foreword.html fs
`
`0026. The storage 26 in turn cooperates with a parser 30,
`which sends portions of content Stored in the Storage 26 to
`the abstract interface 28. In one preferred, non-limiting
`implementation, the parser 30 parses each book's package
`file and Stores the metadata into an object representing the
`book. The package files (and all other XML files handled by
`the system) can be parsed using the Document Object Model
`(DOM) and Simple API for XML (SAX) standards. In one
`particularly preferred embodiment, IBM's XML4J 2.0.15
`parser is used.
`0027. In accordance with the present invention, the
`abstract interface 28 manages and coordinates plural tan
`gible interfaces. In the embodiment shown, the tangible
`interfaces include a graphics interface 32 and an audio
`interface 34. Other tangible interfaces 36 can be provided. It
`is to be understood that the graphics interface 32 includes
`Software that outputs content on the display 14 and that
`receives user commands via the GUI device 16. Likewise,
`the audio interface 34 includes Software that outputs content
`by playing the content via the Speaker 18 and that receives
`user commands via the AUI that is established by the voice
`recognition module 20. The tangible interfaces 32, 34, 36
`can each be a combined input/output interface or a pair of an
`input-only interface and output-only interface. In any event,
`each tangible interface 32, 34, 36 can communicate con
`tinuously with the abstract interface 28 and query the
`abstract interface 28 for positional information relative to
`the content being rendered.
`0028. In light of this, for each tangible interface 32, 34,
`36, the abstract interface 28 stores information Such as the
`current position in the content being rendered and/or a
`
`spanning region of the content being rendered (e.g., the start
`and end position of a page of text being displayed). Thus, by
`means of the abstract interface 28, first and Second output
`threads are essentially being run Simultaneously with each
`other AS a consequence, actual output might be undertaken
`using only one output device (display 14 or audio speaker
`18) at a time, depending on user preference, but it might also
`be undertaken in plural modes simultaneously, i.e., by
`displaying the content Simultaneously on both the display 14
`and speaker 18. To this end, the abstract interface 28 also
`determines positions at which tangible interfaces should
`pause when required to coordinate the multiple output
`modes.
`0029. In addition, the tangible interfaces 32, 34, 36
`communicate user commands Such as positional changes (to,
`e.g., change the page being displayed, or Skip to the end of
`the book, etc.) as well as user annotations and mode
`changes. The annotations are associated with user-Selected
`portions of content for Subsequent display of the annotations
`with the associated content. Thus, for example, a user might
`use the GUI device 16 to make an annotation in a page of a
`book being rendered, and if that page is Subsequently played
`back in an alternate mode (e.g., audio), the annotation would
`also be rendered with the page in the alternate mode.
`Moreover, the user can change modes of display by Speaking
`appropriate commands into the Voice recognition device 20
`or writing appropriate commands using the GUI device 16,
`as described more fully below.
`0030) Further details of preferred user commands can be
`appreciated in reference to FIG. 3. It is to be understood that
`while FIG. 3 illustrates certain graphics-related ways to
`
`-8-
`
`

`

`US 2003/0013073 A1
`
`Jan. 16, 2003
`
`input commands, the Same commands can be input using the
`voice recognition module 20, which has a vocabulary for
`recognizing the commands.
`0031. As shown, the display 14 can display graphics
`content 38, including text. Also, command input buttons can
`be provided on the display 14 when it is a touch-screen
`display. The buttons could alternatively be hardware-imple
`mented buttons on a tablet. In any case, the buttons dis
`cussed below communicate Signals to the graphics interface
`32 and thence to the abstract interface 28.
`0032. In one preferred embodiment, the command but
`tons include navigation buttons 40 that can be used to
`change pages or navigate up or down a Single page, go to the
`end or start of the book, and So on. Also, the command
`buttons can include a Search button 42 that can be toggled to
`cause the below-mentioned book chooser to display a list of
`books Stored in the Storage 26, and a Select button 44 that can
`be toggled to Select a book in the list Additionally, the
`command buttons can include annotation buttons 46 that can
`be used to make and erase annotations, with an annotation
`being associated with the content over which the annotation
`has been made.
`0.033
`Still further, presentation mode buttons 48 can be
`provided to instruct the abstract interface 28 to display the
`content in both graphics and audio modes, or only graphics
`mode, or only audio mode. For instance, clicking a “read”
`button Signals the System to begin reading the current page
`from the beginning, and clicking the “read” button again
`pauses the recitation. If the button is clicked a third time
`while the user is viewing the Same page on the display 14,
`recitation resumes where it left off. When the system reaches
`the end of the text of the current page, it automatically
`advances the viewer to the next page (loading the next
`chapter, if necessary) and continues speaking.
`0034 Recitation can also be toggled using voice com
`mands such as “Begin speak” and “stop speak'. Whether the
`toggle is invoked by a click or a voice command, the Visual
`State of the button is always updated appropriately. The
`presentation buttons can also control the size of the fonts
`used to display the text in the display 14.
`0035 FIG. 4 shows the logic for setting up the book 10.
`Commencing at block 50, book metadata is loaded into a
`Software-implemented book chooser. All tangible interfaces
`are initialized at block 52, and then the user's Selection,
`either by means of the select button 44 or by receiving an
`audio command Such as "Select from the Voice recognition
`device 20, is received at block 54. Specifically, the book
`chooser parses the metadata contained in the book files and
`presents the user with a list containing book titles and author
`names. The user can navigate the list using speech com
`mands. Such as “UP and “DOWN to move the Selection
`highlight, and “SELECT to open the document. The user
`can also move the highlight Simply by Speaking the title of
`the book the user wishes to select. The audio interface 34
`will recognize the name and move the highlight to that title.
`The selected book is loaded and parsed by the parser 30, and
`then passed by the abstract interface 28 to the tangible
`interfaces 32, 34, 36 for display in one or more output
`modes.
`0036 FIG. 5 illustrates, in flow chart form, some of the
`functionality discussed above. Commencing at block 60,
`
`navigation commands are received from one or more of the
`tangible interfaces 32, 34, 36. For instance, when the user
`Speaks a command that is recognized as a navigation com
`mand by the audio interface 34, the audio interface 34
`communicates the command to the abstract interface 28 for
`processing. The abstract interface 28 then updates the other
`tangible interface accordingly.
`0037 Also, at block 62 presentation commands are
`received from either one or both of the tangible interfaces
`32, 34. The commands are processed by the abstract inter
`face 28, which updates the other interfaces as required. In
`this way, the graphics thread and audio thread are kept
`coordictaed with each other. Moreover, at block 64 annota
`tions are received graphically (as the user writes across a
`tablet or other GUI established by the GUI device 16), or as
`the user Speaks a command Such as "annotate' followed by
`a spoken annotation.
`0038. In one preferred embodiment, to create an annota
`tion the user Simply clicks on or drags over the text to be
`annotated. The three annotation buttons 46 control which
`type of annotation is created by this action. Each type of
`annotation is represented by a different mark in the text
`window displayed on the display 14. In highlight mode,
`which is the initial Setting (and which can be reselected by
`clicking on the leftmost annotation button 46), dragging
`acroSS a block of text places a yellow background behind the
`Selected text. The highlight can be removed by clicking
`anywhere in the highlighted block. Clicking on the middle
`annotation button 46 puts the System into text-note mode. In
`this mode, clicking on a position in the text causes a dialog
`box to open into which the user can type some text. When
`the box is closed, a green underScore at the position the user
`clicked indicates the presence of the annotation. Subsequent
`clicking on the mark causes the note box to reopen, display
`ing the text of the annotation. When the box is displayed, the
`user can also choose to dictate the annotation rather than
`type it. Last, clicking on the rightmost annotation button 46
`puts the System in audio-note mode. In this mode, clicking
`on a position in the text opens a box in which an audio
`annotation (that is, a stream of uninterpreted digitized audio)
`can be recorded. Recording is started by clicking on the
`record button, or Saying, “begin recording'. For reasons
`explained below in the implementation Section, recording
`can only be terminated by clicking on the Stop button; no
`Voice command can be used for this purpose. The presence
`of an audio annotation is indicated by a red underScore
`beneath that position in the text. AS with text-notes, clicking
`on the marked Spot causes the annotation window to reopen
`So that the recording can be replayed, replaced, or deleted.
`0039 Decision diamond 66 simply indicates that when
`the annotation is made audibly, at block 68 the annotation is
`received and Stored by associating it with the portion of the
`content being displayed. The graphics interface 32 is then
`updated. On the other hand, when the annotation is received
`using the GUI 16, the annotation is passed from the graphics
`interface 32 to the abstract interface 28 for storage and
`asSociation, and the audio interface 34 is updated accord
`ingly at block 70.
`0040 FIG. 6 shows a preferred, non-limiting architecture
`that uses open Standards and off-the-shelf technologies to the
`greatest extent possible, to leverage these technologies to
`reduce implementation time while ensuring that the resulting
`
`-9-
`
`

`

`US 2003/0013073 A1
`
`Jan. 16, 2003
`
`system would not be tied too tightly to any one platform. The
`class structure and method architecture shown in FIG. 6 can
`be specified and maintained using the Unified Modeling
`Language (UML).
`0041. In the exemplary embodiment shown in FIG. 6, the
`graphics interface 32 preferably incorporates a reader Such
`as a reader known as “JEditorPane' Swing component that
`supports HTML 3.2 and a subset of level one of the CSS
`Standard, with the abstract interface 28 communicating
`therewith. In this regard, it is to be understood that while
`books can be thought of as XML files, the tag set used is
`essentially that of HTML 4.0 and level one CSS. Use of the
`above-mentioned reader facilitates the use of off-the-shelf
`Software without having to write a new HTML renderer.
`0.042 AS recognized herein, it is desirable that electronic
`book readers present documents in the familiar page-by
`page manner. Accordingly, the abstract interface 28 com
`municates with a paginator 72, which is a class that is
`responsible for pre-rendering a chapter file, determining
`where to place page breaks, and dividing the document at
`these points. Since changing the font Size used in the viewer
`changes the amount of text that can appear on Screen at one
`time, the paginator 72 can function dynamically at any time.
`The paginator 72 first renders the chapter off-screen in a
`Single Scrolling JEditorPane that is sized to the dimensions
`of the displayed pages. The paginator 72 then Steps through
`the content of the chapter, finding the cutoff position for
`page breaks. This is accomplished by finding the character
`offset of the final character displayed in full in the off-screen
`buffer, then advancing the following line to the top of the
`buffer and repeating the process until the entire chapter has
`been examined. It Stores the resulting character offsets in an
`array Once the page breaks have been determined, the
`System fragments the Scrolling, off-Screen pane into a Series
`of page panes. This can require the creation of new JEdi
`torPane, and the entire chapter file can be re-parsed for each
`page of the chapter. Once the file is paginated, the JEditor
`Pane holding the first page is displayed.
`0.043 AS understood herein, it is important that pagina
`tion occurs after the HTML has already been rendered to
`styled text. Otherwise, the paginator 72 would be forced to
`consider what tags were open at the point that it cuts off a
`page, close them for the current page, and reopen them on
`the next. In the case of complex tag structures, like tables,
`this could inappropriately change the appearance of the
`rendered output.
`0044 As mentioned above, the graphics interface 32 is
`associated with the GUI device 16 on the housing 12, with
`the GUI device 16 including provisions Such as the presen
`tation buttons 48 for changing the fontsize that is displayed.
`Accordingly, a FontSize Changer 74 is provided because, as
`recognized herein, as a result of using the JEditorPane
`component as the renderer, the Seemingly simple task of
`changing the size of the fonts used for display is unduly
`complex Accordingly, a new default CSS Style Sheet is
`applied to the JEditorPane, Setting a new base font Size and
`each other element as well. When changing the font Size, the
`new Style Sheet is applied, and the paginator 72 is called to
`reflow the text and redisplay the pages. Since a new style
`sheet is generated on the fly for each font-Size changing
`event, this technique does not rely on Some fixed number of
`predefined Style sheets.
`
`004.5 To implement the above-described annotations in
`the exemplary architecture shown in FIG. 6, an Open
`Electronic Book (OEB) Annotation module 76 communi
`cates with the abstract interface 28. To associate a location
`in the text being displayed to a location in the document
`when Storing an annotation and thereby establish an anno
`tation Set 78, and then reversing the proceSS when retrieving
`the annotation, character offsets are used to indicate anno
`tation positions in the (rendered) text contained in a JEdi
`torPane. Because these offsets are the values returned from
`JEditorPane text-selection events, they can be used directly
`as returned when the user Selects a block of text to annotate
`The offsets are used in the same way to tell the JEditorPane
`where to put the highlights and annotation marks when
`displaying annotated text. These offsets, which are relative
`to the beginning of the chapter file, are Stable with respect
`to changes of font Size and other rendering characteristics.
`0046. In the architecture shown in FIG. 6, a customized
`XML Schema is used to Store annotations. An annotation file
`is broken into three SubSections corresponding to the three
`types of annotations. A highlight 80 is represented by its
`Starting and ending offset in the chapter text, and a text note
`82 is stored as an offset location 84 together with a string
`containing the text of the note. These Strings are Java-style,
`and So can contain arbitrary Unicode. An audio annotation
`86 consists of the location 88 of the annotation and the name
`of the file containing the digitized audio. One annotation file
`is Stored for each file in an OEB package. The annotation
`file's name is formed by appending the extension annotation
`to the underlying chapter file name. Whenever a chapter file
`is read, the corresponding annotation file, if it exists, is read
`as well. A Sample annotation file is as follows:
`
`&xml version="1.O's
`<annotation sets
`<highlight sets
`<highlight start="1301 end="2984"/>
`</highlight sets
`<text note Set
`<text note offset="66' text="Implementation details?/>
`</text note sets
`<audio note sets
`<audio note offset="13
`path="file:/C:/oeb/RIAO2000/riao0.html/>
`</audio note sets
`<fannotation sets
`
`0047. In the current version of the system, highlights and
`annotations are implemented using the So-called Highlight
`Painter 90 provided by JEditorPane. While text and audio
`notes are denoted with green and red underline markings,
`these are actually implemented as narrow highlights, gen
`erated by a so-called HighlightPainter 90. Ordinary high
`lights are presented using the DefaultHighlightPainter with
`a light yellow color Setting.
`0048. In continued reference t

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket