throbber
USPTO
`
`) Confirmation No.: 4626
`) Art No.: 3992
`Examiner: KOSOWSKI, Alexander
`
`))
`
`))
`
`))
`
`))
`
`Control No.: 95/000,635
`
`
`In re: Patent of Rorabaugh et al.
`
`U.S. Patent Nos.: 7,831,926
`
`Issue Date: 11/09/2010
`Filing Date: 04/21/2007
`Title: Scalable Display of Internet
`Content on Mobile Devices
`
`AND
`
`))
`
`Confirmation No.: 8853
`Art No.: 3992
`) Examiner: STEELMAN, Mary J
`
`Control No.: 95/000,634
`
`
`
`In re: Patent of Rorabaugh et al.
`
`))
`
`))
`
`))
`
`U.S. Patent Nos.: 7,461,353
`
`Issue Date: 12/02/2008
`Filing Date: 01/28/2005
`Title: Scalable Display of Internet
`Content on Mobile Devices
`
`Declaration of Jack D. Grimes, Ph.D.
`
`I, Jack D. Grimes, Ph.D., declare:
`I.
`INTRODUCTION
`
`My name is Jack D. Grimes, and I reside at 5025 Wine Cellar Drive, Sparks, NV. I am
`1.
`an independent consultant. I have prepared this Declaration for consideration by the USPTO. I
`am over eighteen years of age and I would otherwise be competent to testify as to the matters set
`forth herein if I am called upon to do so.
`2.
`I have written this Declaration at the request of Apple Computer (herein “the Third Party
`Requester”). This declaration was written in support of the Third Party Requester’s Comments
`to the Office Action dated October 1, 2011 and in regard to the Patent Owner’s Response dated
`December 21, 2011.
`
`Page 1
`
`Motorola PX 1021_1
`
`

`

`In forming my opinions, I rely on my knowledge and experience in the field and on
`3.
`documents and information referenced in this Declaration.
`
`II.
`
`BACKGROUND AND EXPERTISE
`
`I earned B.S. and M.S. degrees in Electrical Engineering, and a Ph.D. degree in Electrical
`4.
`Engineering (with a minor in Computer Science), all from Iowa State University. I also earned
`an M.S. degree in Experimental Psychology from the University of Oregon. I have been active
`in several professional societies and have worked in the computer and electronics field for over
`forty (40) years. Details of my education and work experience are set forth in my curriculum
`vitae, which is attached as Appendix A.
`5.
`I have worked in the area of computer graphics and video systems and consider myself to
`be at least a person of ordinary skill in the art.
`6.
`I have been retained by Apple Computer as an expert for these reexamination
`proceedings. No part of my compensation is dependent upon the outcome of these
`reexamination proceedings or any issue in it.
`
`III.
`
`INFORMATION CONSIDERED
`
`e.
`
`In forming my opinions, in addition to my knowledge and experience, I have considered
`7.
`the following documents and things that I have obtained, or that have been provided to me:
`a. U.S. Patent No. 7,831,926 (herein “ ’926 patent”);
`b. U.S. Patent No. 7,461,353 (herein “ ’353 patent”);
`c. File history for the ’926 patent and for the ’353 Patent;
`Inter Partes Request for Reexamination of the ’926 patent (hereinafter “the ’926 Inter
`d.
`Partes request”) and related file history;
`Inter Partes Request for Reexamination of the ’353 patent (hereinafter “the ’353 Inter
`Partes request”) and related file history;
`f. The Pad++ references cited in the ’926 Inter Partes request and the ’353 Inter Partes
`request;
`g. The JP ’169 reference cited in the ’926 Inter Partes request and the ’353 Inter Partes
`request;
`h. The Pad++ Reference Manual Version 0.2.7 (herein “Pad++ Reference Manual”);
`i. The Pad++ Programmer’s Guide version 0.2.7 (herein “Pad++ Programmer’s Guide”);
`j. A Brief Tour Through Pad++, published April 1997 (herein “Pad++ Brief Tour”);
`k. The Universal Encyclopedia of Mathematics, ©1964;
`
`Page 2
`
`Motorola PX 1021_2
`
`

`

`l.
`
` The SVF references - Specification for the Simple Vector Format v1.1 (herein “SVF
`1.1”); Specification for Simple Vector Format v2.0 (herein “SVF 2.0”); Changes to SVF
`(“SVF Changes”); and
`m. Other references cited herein.
`
`IV.
`
`PRIOR ART REFERENCES
`
`Background of Vectors
`A.
`A vector quantity is a quantity that is fully described by both magnitude and direction.
`8.
`That is, vector quantities are not fully described unless both magnitude and direction are listed.
` [http://www.physicsclassroom.com/class/vectors/u3l1a.cfm].
`9.
`Vector quantities are often represented by scaled vector diagrams. Vector diagrams depict
`a vector by use of an arrow drawn to scale in a specific direction. That is, the arrow has a head
`and a tail.
`
`[http://www.physicsclassroom.com/class/vectors/u3l1a.cfm].
`10.
`The type of “vectors” described in the ’353 and the ’926 patent are “bound” vectors.
`[FIGS. 4C, 4D, 4G, ’353 and the ’926 patent].
`11.
`“A vector whose point of origin is fixed at a definite point is called a bound vector. In
`particular, so-called ‘position vectors’ are bound vectors, their initial positions being bound to
`the point of origin of the coordinate system. A position vector has as its components the
`coordinates of its end-point. The vectors whose points of origin are at the origin of the coordinate
`system and whose end-points are at the unit-points on the axes are called the unit coordinate
`vectors.” [pp. 484-89, The Universal Encyclopedia of Mathematics, ©1964].
`12.
`In both the ’353 and the ’926 patent, the vectors are referenced to a “point of origin,” and
`have the coordinates of their end points as the components of the vectors. Their points of origin
`are at the origin of the coordinate system (e.g., the upper left corner of a webpage).
`
`Page 3
`
`Motorola PX 1021_3
`
`

`

`Pad++ prior art references
`B.
`In reviewing the Pad++ documentation, I found that the Pad++ references teach the
`13.
`claims of the ’353 and ’926 patent. Because of the technical terminology used in some of the
`Pad++ references, I am providing a brief introduction to Pad++ for purposes of clarification.
`14.
`In preparation for writing my declaration, I found several additional prior art documents
`that were not previously identified in the Inter Partes Reexamination Request but provide a
`description of the basic structure of creating and locating object and the relation of the Pad++
`references to the ’353 patent and the ’926 patent: Pad++ Programmer’s Guide (Version 0.2.7)
`published June 10, 1996; Pad++ Reference Manual published October 2, 1996; A Brief Tour
`Through Pad++; and A Zooming Web Browser published April 1997.
`15.
`These additional references describe the same system as the Pad++ references of record
`but provide additional information that the Examiner may find helpful to understand that
`terminology used in the Pad++ references of record.
`1.
`Overview of the Terminology Used in the Pad++ references
`Pad++ uses the term “surface” for the graphical area where objects (called items) are
`16.
`created and rendered for viewing.
`17.
`The default origin of the surface is at the center of the “surface.”
`18.
`The default “surface” is 400x400 pixels and the default units for coordinates are pixels.
`19.
`Objects are created in the “surface” and located at a “place.”
`20.
`A “place” is a location for the object. Some objects (like a rectangle, for example) have a
`place that is determined by where the object is drawn and its size. Other objects, like text, have a
`location determined by where the lower left corner of an upper case character is drawn.
`21.
`Objects are placed, or located, relative to an “anchor” of the object. This “anchor”
`provides additional flexibility for the programmer. For example, the “anchor” has a default
`location on a rectangle object and on an image (and many others) of “center.” Other places for
`the “anchor” can be assigned, for example the top center (n, for north), the lower left corner (sw
`for southwest), and so forth. The default “anchor” for text is the lower left corner (sw) of an
`upper case letter like the “H” in “Hello World.”
`22.
`The “place” for the object is the location of the “anchor” (default center of a rectangle)
`relative to the origin of the coordinate system (e.g., center of the surface).
`
`Page 4
`
`Motorola PX 1021_4
`
`

`

`Pad++ is Vector-based
`2.
`The Office Action issued in the Reexamination of the ’926 patent (herein “the ’926
`23.
`Office Action”) states at page 10 that the Pad++ references do not disclose a vector from a
`primary/page datum to an object datum, but I disagree with the Office Action.
`24.
`The Pad++ references disclose a vector from a primary/page datum (an origin) to an
`object datum (an anchor of an object). This point is further clarified in light of the Pad++
`Programmer’s Guide and the Pad++ Reference Manual.
`25.
`For example, the Examiner acknowledges, and I agree, that the Pad++ references teach
`view and object coordinates inferred relative to a primary/page datum of (0,0), that is, from an
`origin.
`Pad++ describes the default origin as the center of the screen. [p. 1129, Bederson-4; see
`26.
`also p. 4, Pad++ Programmer’s Guide]. However, in other examples, the Pad++ references
`describe the origin elsewhere: “0.0 [the origin (0,0)] represents the left or bottom side of the
`window.” [p. 22, Pad++ Reference Manual].
`27.
`Similarly in the ’926 patent and the ’353 patent, the origin is “a 0,0 datum point
`corresponding to the upper left hand corner of the frame the object belongs to.” [C18:9-12, ’926
`patent; see also C:181:1-11, ’353 patent]. That is, the ’926 patent and the ’353 patent, provide
`an example that the “rendered page datum 262 is defined to be coincident with the upper left
`hand corner of the display frame of the rendered page for the web page; [C17:47-49, ’926 patent:
`C:17:47-50, ’353 patent] and “The page datum point corresponds to the upper left hand corner of
`the display frame and is assigned an XY value 266 of 0,0.” [C18:1-3, ’926 patent: C:18:1-3,
`’353 patent].
`28.
`Thus, similar to the ’926 patent and the ’353 patent, the Pad++ references define the
`primary datum point or the page datum point as the origin of the surface, which can be the center
`of the screen, the left bottom side of the screen (i.e., the bottom left corner of the screen), or the
`upper left corner of the screen, depending on the programmer’s designation of the origin.
`29.
`Since the Pad++ references define objections and the transformation of objects with
`respect to a coordinate system (e.g., using XY coordinates relative to an origin, which gives the
`magnitude and direction that defines vectors), a person of ordinary skill in the art would
`understand Pad++ to be a vector-based system.
`
`Page 5
`
`Motorola PX 1021_5
`
`

`

`Pad++ Teaches Generating Vectors
`3.
`The ’926 Office Action appears to suggest at page 10 that the Pad++ references do not
`30.
`disclose vectors because a vector is not generated from the inferred primary datum to an object
`datum, but I disagree.
`31.
`Similarly, the Office Action issued in the ’353 patent (herein “the ’353 Office Action”)
`appears to suggest at page 13 that the Pad++ references do not teach generating a vector because
`“to generate a vector, a scalable vector representation encodes X,Y coordinate information.” I
`disagree because those of ordinary skill in the art, such as myself, understand that the coordinates
`returned by the Pad++ system indicate that a vector has been generated.
`32.
`I have provided two examples of vectors generated by the Pad++ references.
`a.
` Example 1
`A specific example of generating a vector can be found at pp. 1130-31 of Bederson-4.
`
`33.
`
`Page 6
`
`Motorola PX 1021_6
`
`

`

`In this example, the default origin (0,0) of the Pad++ surface (page datum point) is
`34.
`located at the lower left corner of the red rectangle, and the Pad++ surface is the portion of the
`window where Pad++ creates objects. Thus, the primary or page datum is (0,0).
`35.
`The text object “Hello World” is referenced as object ‘4’ to uniquely identify the text
`object. This “Hello World!” object is generated in the Pad++ surface by executing the code “-
`text ‘Hello World!’ –font ‘Times-12’ -anchor sw -position ‘10 10 1’.”
`36.
`The “anchor” is identified as the “sw” or southwest corner of the object and is placed at
`position (10,10) and scaled by a factor of 1. [pp. 47, 49, 50 (which describes what an anchor is,
`Pad++ Reference Manual at 47, 49, and 50]. That is, the southwest corner of “Hello World” is
`placed at point (10,10) relative to the origin (0,0) (also the lower left corner of the red rectangle)
`and is scaled by 1.
`37.
`Thus, the object datum associated with object “4” which corresponds to the “Hello
`World!” text object is (10,10), and a vector is generated from the primary page datum of (0,0) to
`the object datum (10,10). Therefore, the Pad++ references teach generating a vector.
`38.
`Similarly, a vector is generated for the image object “pad.gif,” which is referenced as
`object ‘5’ to uniquely identify the image. The image is generated in the Pad++ surface by
`executing the code “- image ‘pad.gif’ – anchor sw – position ‘50 50 1’.”
`39.
`The anchor of the image object is the “sw” or southwest corner of the object, which is
`placed at a position (50,50) (also, the top-right corner of the red rectangle) relative to the origin
`(0,0) and scaled at a factor of 1.
`40.
`Thus, the object datum associated with object “5” which corresponds to the “pad.gif”
`image object is (50,50), and a vector is generated from the primary page datum of (0,0) to the
`object datum (50,50). Therefore, the Pad++ references teach generating another object vector.
`41.
`These “vectors” are created by Pad++ and stored for zooming and panning operations
`based on subsequent user input. In addition, the generated vectors can be subsequently retrieved
`with their object reference by the “itemconfigure” command described below.
`b.
`Example 2
`The Pad++ Programmer’s Guide further clarifies that the Pad++ references teach
`42.
`generating vectors at pages 4-8.
`43.
`The command:
`
`.pad create rectangle 0 0 100 100 -tags “rect2” -fill white
`
`Page 7
`
`Motorola PX 1021_7
`
`

`

`at page 7, Pad++ Programmer’s Guide, has the following meaning.
`.pad
`
`indicates that the line contains a Pad++ command
`create
`indicates that the command will create an object
`rectangle
`the object that will be created with parameters 0 0 100 100 which indicate
`the lower left corner and the upper right corner coordinates in pixels.
`is a sub-command that identifies a reference that is used to refer to the
`object “rect2”
`is a sub-command that will fill the rectangle with a color, white
`
`-tags “rect2”
`
`-fill white
`
`The “-“ in front of the word “tags” means that “-tags” is a sub-command with optional
`44.
`following parameters. In this example, “-tags” specifies a reference name “rect2” that can be
`used to refer to the created rectangle. This “-sub-command” syntax is common in Unix systems.
`45.
`The origin of (0,0) in the center of the surface corresponds to the “page datum” of the
`’353 patent specification and the ’926 patent specification.
`46.
`All locations or “places” of objects are the locations of the anchor for each object,
`relative to this origin.
`47.
`For the example code in the above paragraph 43, the rectangle will be drawn from the
`origin (0,0) and extend to 100, 100 pixels up and to the right. Not stated is that the anchor of the
`object is (50,50), i.e., the center of the rectangle by default. The “place” of the rectangle will be
`the location of the anchor, i.e., at (50,50), or at the center of the rectangle by default, annotated in
`the Figure of the Pad++ Programmer’s Guide reproduced below.
`
`anchor (50,50)
`
`[pp. 6-8, Pad++ Programmer’s Guide, with annotations].
`48.
`Similarly, locations for objects in the ’353 patent and the ’926 patent are relative to the
`“page datum” of (0,0), that is, the coordinates of the upper left corner of the bounding box for the
`
`Page 8
`
`Motorola PX 1021_8
`
`

`

`object, relative to the page datum in the upper left corner of the web page. Increasing coordinate
`values are to the right for X and down for Y.
`49.
`An object location is specified by the coordinates of the bounding box, upper left corner.
`[Fig. 4C. C16:31-36, ’353 Patent; Fig. 4C. C:16:31-36, ’926 patent].
`50.
`Several figures of the ’353 patent and the ’926 patent draw vectors from the page datum
`at (0,0) to the object location. [Fig. 4C, ’353 Patent; Fig. 4C, ’926 patent].
`51.
`Examples of referring to objects by their upper left corner are shown in Figure 4D (of the
`’926 patent and the ’353 patent), e.g., 150,225 for object 250B, 150,425 for object 252B.
`52.
`Referring to an object by the location of its bounding box is a convenient and well
`understand shorthand notation for the object’s vector.
`53.
`Note that in Figure 4C, only a minority (8) of the objects are shown with their vectors.
`Most (16) are shown by noting the location of their upper left corner and a vector to this point
`from the page datum is assumed.
`54.
`Like the ’353 patent and the ’926 patent, the “place” of the rectangle object created above
`in ¶ 47 (in Pad++) is a vector from the origin (0,0) to the center of the rectangle (50,50).
`55. We know that the vector is stored by Pad++ for the rectangle called “rect2” because there
`is another command that can be used to determine the location of the rectangle “rect2.”
`.pad itemconfigure rect2 -place
`Page 7, Pad++ Programmer’s Guide. This command will return the data “50 50 1.” This means
`the rectangle “rect2” is located with its center (e.g., the object datum) at 50,50 with a scale factor
`of “1.” That is, there is necessarily a vector representing the “place” of “rect2” that has its “tail”
`at coordinates (0,0) (e.g., the primary datum) and its “head” at coordinates (50,50) (e.g., the
`object datum) shown as additions in the above figure.
`56. We know that a “vector” for each object is generated and stored because otherwise, the
`–place command would not return a resulting location for the object relative to the primary
`datum. A –place of X, Y only makes sense if the coordinate X, Y is known to be relative to a
`known reference point, i.e., the origin at the center of the Pad++ surface. Since we have an
`origin (tail location) and a –place (a head, or object anchor location), then we have necessarily
`defined a vector. Using the common shorthand used in the ’353 and ’926 patents, one of
`ordinary skill in the art would understand that this vector in Pad++ is from the known origin of
`the Pad++ surface to the “-anchor” of the object. Thus, in Pad++, a vector is generated from the
`
`Page 9
`
`Motorola PX 1021_9
`
`

`

`primary datum to the -anchor datum for each object, just as in item 158 of Figure 5 of the ’353
`and ’926 patents. Also, that the –place command returns this location means that Pad++ has
`created a reference that links the object to its vector and anchor, just as in item 160 of Figure 5 of
`the ’353 and ’926 patents.
`57.
`Continuing with the example from pages 6-7, Pad++ Programmer’s Guide, there are two
`commands.
`.pad slide rect1 -100 0
`.pad scale rect2 .5
`The first command moves (slides) the object rect1 (the black rectangle) to the left 100
`58.
`pixels. [p. 46, Pad++ Reference Manual]. Actually, it moves the rectangle –anchor at (50,50),
`100 pixels to the left.
`59.
`The second command scales the object rect2 (the white rectangle) by a factor of 0.5. In
`this case, the scaling occurs centered on the –anchor of rect2 at (50,50) coordinates.
`
`anchor (-50,50)
`
`anchor (50,50)
`
`[pp. 6-8, Pad++ Programmer’s Guide, with annotations].
`60.
`The resulting figure, augmented with additions, shows the location of the –anchor for
`each rectangle, after the slide and scale commands have been executed. Additions include the
`necessarily present vectors from the origin to the –anchor of each object.
`61.
`The example continues with two additional itemconfigure commands and the results
`produced by those commands.
`.pad itemconfigure rect1 -place
`.pad itemconfigure rect2 -place
`[p. 7, Pad++ Programmer’s Guide].
`
`=> "-50 50 1"
`=> "50 50 .5"
`
`
`
`
`Page 10
`
`Motorola PX 1021_10
`
`

`

`Note that the location of rect1 –anchor has been changed from 50, 50 to -50, 50 by the
`62.
`slide command and the location of the rect2 –anchor is unchanged by the scale command. One
`of ordinary skill in the art would understand from this that the location and size of any object in
`Pad++ could be modified using these commands, which operate on the vector corresponding to
`the object. These ideas are also discussed generally in the Bederson-2 reference that was
`submitted with the ’353 and ’926 Inter Partes requests.
`63.
`Next, we will continue this example from the Pad++ Programmer’s Guide to show
`zooming. After all, zooming was the main point of designing Pad++ in the first place.
`64.
`The example continues with a moveto command:
`.pad moveto 0 0 2
`[p. 7, Pad++ Programmer’s Guide].
`65.
`The moveto command has two functions. First, the view can be changed so that xview,
`yview can be different than the center of the screen (surface). However, in this example, only
`the view is changed with a magnification of 2 (the third parameter). [p. 39, Pad++ Reference
`Manual]. In this example, the center of the view is (0,0) (chosen as center point of zoom –
`coincidentally the primary datum in this example) and the view is magnified by a scale factor of
`2. The window, instead of being 400x400 is now 200x200 pixels. This moveto command
`accomplishes the same vector based functionality as the scaling and panning described in the
`’926 and ’353 patents by scaling each object’s coordinates (scaling) and moving the anchor
`reference for all of the objects (panning). This particular moveto command causes all objects to
`be displayed at 2 times their previous size as shown below.
`
`anchor (-50,50)
`
`anchor (50,50)
`
`66.
`
`Note that the item configurations do not change when the view is changed:
`
`Page 11
`
`Motorola PX 1021_11
`
`

`

`=> "-50 50 1"
`
`.pad itemconfigure rect1 -place
`=> "50 50 .5"
`
`.pad itemconfigure rect2 -place
`These –place coordinates for each object are the same as before.
`67.
`Note that panning is also accomplished with the moveto command. In this case, the
`parameters 0 0 are replaced with xview, yview, which are coordinate locations that become the
`new center of the screen. So,
`.pad moveto 50 50 1
`will shift the entire view down 50 pixels and to the left by 50 pixels, i.e., makes the coordinate
`(50, 50) the new center of the screen (surface). In the above example, this “moveto 50 50 1”
`command pans to locate the white rectangle centered in the screen.
`68.
`As a result, these examples show that Pad++ functionality teaches the zooming and
`panning and vector generation described in the ’353 patent and the ’926 patent.
`69.
`In addition, these examples and references show that, using references to the object’s
`name (-tags), vectors from the origin (page datum) to the object’s location (object datum) are
`generated and necessarily stored and available for zooming and panning based on subsequent
`user input, as described in the ’353 patent and the ’926 patent.
`70.
`Thus, the Pad++ references, including the Pad++ Programmer’s Guide and the Pad++
`Reference Manual, clearly teach vector-based graphics, where vectors are generated from a
`primary/page datum (for example, a known origin) to an object datum (for example, based on the
`commands assigned to an object that provide the direction, size, and drawing commands for
`objects relative to the known origin) and stored. Zooming and panning of a web page based on
`subsequent user input and operations on these stored vectors, are taught by Pad++.
`4.
`The Pad++ References Teach a Zoomable Web Browser where
`Hyperlinks Preserve their Functionality.
`The Patent Owner argues in its Responses to the ’926 Office Action and the ’353 Office
`71.
`Action that the Pad++ references do not teach preserving the functionality of the hyperlinks
`during zooming, but I disagree.
`72.
`In the reference “A Zooming Web Browser”, found at:
`http://www.cs.umd.edu/hcil/pad++/papers/bookchap-98-webbrowser/index.html
`The reference describes “a prototype zooming World-Wide Web (WWW) browser within
`Pad++, a multiscale graphical environment.” [p.3, A Zooming Web Browser].
`
`Page 12
`
`Motorola PX 1021_12
`
`

`

` The zoom and pan features utilize the Pad++ features described above. For example, the
`73.
`user interaction is described on page 3:
`While the left mouse button is used for following hyperlinks by pressing on them,
`it is also used for panning by dragging on the surface. Pressing on the middle
`button zooms in until the button is released. Pressing on the right button zooms
`out until it is released. Pad++ zooms around the mouse cursor, so the user can
`move the mouse while zooming to control which point the view is zoomed
`around.
` [p. 3, A Zooming Web Browser].
`74.
`The Reference “A Zooming Web Browser” illustrates an application of Pad++ as a
`WWW browser, comparable with Netscape. [p. 1, A Zooming Web Browser].
`75.
`Finally, another Pad++ reference, “A Brief Tour Through Pad++,” by Jonathan Meyer,
`dated April 1997 illustrates an HTML browser” which utilizes the Pad++ system. [Section 3, An
`HTML Browser, pp. 86-96, Pad++ Brief Tour].
`76.
`In section three, the reference states,
`A zooming version of Mosaic and Netscape? This is not such a strange idea. The
`third example Pad++ application we will look at is a simple Pad++ web browser.
`
`[p. 86, Pad++ Brief Tour]
`77.
`Page 87 shows “a screen snapshot showing Pad++ displaying an HTML document,” as
`reproduced below:
`
`Hyperlinks
`
`Page 89 shows “a zoomed in view of the document. Hotwords are shown in blue -
`78.
`positioning the pointer over a hotword changes its color to red. In this snapshot the pointer was
`over the 'Pad++: Multiscale interfaces' link.” The snapshot is reproduced below:
`
`Hyperlinks
`
`79.
`
`Page 91 shows that:
`
`Page 13
`
`Motorola PX 1021_13
`
`

`

`When you follow a link, the relevant document is loaded into Pad++ and placed
`on the surface to the right of the original document, at a smaller scale. Here you
`can see the 'Pad++: Multiscale interfaces' document loaded beside the home page.
`The Pad++ HTML browser will lay out sub-documents in two columns next to the
`parent document. Because Pad++ is zoomable, there is always enough space
`between those two columns for placing further documents reached from those
`sub-documents!
`
`80.
`
`Page 93 shows “Simply zoom in on the sub-document to read it.”
`
`An examination of the Figures on these pages shows both zooming and panning (from
`81.
`page 87 to page 89 and from page 91 to 93) and the use of hyperlinks on the zoomed pages (from
`page 89 to page 91).
`82.
`This hyperlink functionality exists because the Pad++ system converted the normal
`HTML pages into a Pad++ WWW browser prototype application. As a result, this Pad++
`application necessarily illustrates an implementation that converted HTML into a zoomable,
`scalable, pannable browser, implemented with Pad++, where links in the zoomed page can be
`clicked on to open the webpage associated link.
`C.
`JP 169 reference
`The JP 169 reference was cited by the Third Party Requester.
`83.
`The JP 169 reference describes a system and method for modifying the display size of
`84.
`image data based on the resolution of the display. [¶ 4, JP 169 (certified translation)].
`85.
`Like the ’926 and the ’353 patents, the JP 169 reference attempts to provide a solution for
`displaying WWW browser data on various display screens, so that the WWW browser data is
`readable on any size screen. [¶ 4, JP 169 (certified translation)].
`
`Page 14
`
`Motorola PX 1021_14
`
`

`

`This reference solves the problem of how to modify the display size of image data in
`86.
`accordance with a resolution of a display screen, to display to a size that can be recognized by a
`user.
`In particular, the use of vectors generated and stored for zooming and panning based on
`87.
`subsequent user input in the application is illustrated by Figure 9, reproduced below with
`annotations.
`
`Here the image has an origin of (0,0) in the upper left corner. There is a “clickable area”
`88.
`determined by the coordinates X1, Y1 and X2, Y2 which indicate the upper left and lower right
`corners of the clickable area respectively. When this area is clicked, an associated HREF –
`“test.htm” is retrieved as noted in the Japanese Application text. [¶¶64, 65, JP 169 (certified
`translation)].
`89.
`Next, the Japanese Application describes a change in scale of the image and the
`recalculation of the coordinates for the clickable area. If the scale factor is two times, then the
`coordinates of the clickable area become 2xX1, 2xY1. That is, the vector that points from the
`origin to the clickable area is from (0,0) to (2xX1, 2xY1), or twice the length. [¶ 68, JP 169
`(certified translation)]. As a result, the clickable area is relocated and made twice as large (4x
`the area) by the 2x scale factor.
`90.
`The ’353 Office Action states at page 43 that “One of ordinary skill in the art would not
`understand that the storage of coordinate (X1,Y1) relative to primary datum (0,0) is a simplified
`directional structure for a vector having a primary datum (0,0) and an object datum (X1,Y1), but
`I disagree.
`91.
` Those of ordinary skill in the art, such as myself, would understand that the vector drawn
`from (0,0) to (X1, Y1) can be represented simply by the end coordinates or head of the vector
`(X1,Y1), since the JP 169 (certified translation) tells you that the origin (tail) is the upper left of
`the image associated with the clickable data. With the origin known, a vector of just the end
`
`Page 15
`
`Motorola PX 1021_15
`
`

`

`coordinates provides sufficient information to indicate where one the corners for the bounding
`box surrounding the clickable data should be placed. [¶ 66, JP 169 (certified translation)].
`92.
` Since JP 169 describes objects of HTML pages using coordinate values relative to an
`origin (for example, the upper left corner of an image associated with the clickable area), JP 169
`describes a vector-based system of displaying and magnifying/zooming WWW browser data on
`displays. Therefore, JP 169 describes generating vectors, contrary to the assertions recited in the
`’926 Office Action and ’353 Office Action.
`D.
`SVF prior art references
`1.
`Overview of the SVF prior art references
`The SVF references I cite to, SVF 1.1 and SVF 2.0, are from the File History for the ’926
`93.
`patent and the ’353 patent. It is the same SVF that was referenced in the Specification of the
`’926 patent.
`94.
`SVF is an encoder designed to describe vector images using a simple format.
`95.
`Like the Pad++ system and the JP 169 system, the origin is set at a default location. In
`SVF, the default for the origin is (0,0), which is in the lower left corner with increasing X
`coordinates moving to the right and increasing Y coordinates moving up. [pp. 1-2, SVF 1.1].
`96.
`Like the Pad++ system and the JP 169 system, SVF teaches scalable vectors. For
`example, SVF teaches that an image can be scaled by multiplying the coordinate pair of the
`object by a scale factor. [p. 9, SVF 1.1]. In SVF 1.1, “An SVF coordinate pair would first be
`added to the base point, then each value would be multiplied by the scale factor. The base point
`corresponds to the origin (0,0) of the SVF file.”
`97.
`Similarly, in SVF 2.0, the vector associated with an image is also scaled by multiplying
`the coordinates of the vector by a scale factor. [p. 16, SVF 2.0]. “If (sx, sy) is a point in SVF
`integer coordinates and (ox,oy) is the corresponding point in the original coordinates (or SVF
`double coordinates), then (ox, oy) = ((sx+basex)*scale, (sy+basey)*scale). The base point
`corresponds to the origin (0,0) of the SVF file).
`2.
`Those of Ordinary Skill in the Art would have Combined the SVF
`Prior Art References with Any of the JP 169 reference and the Pad++
`references when Considering the Problem Presented by the ’926
`Patent and the ’353 Patent.
`
`Because the SVF system, the Pad++ system, and the JP 169 system are vector based,
`98.
`those of ordinary skill in the art would have considered one or more of these references together.
`
`Page 16
`
`Motorola PX 1021_16
`
`

`

`The Examiner in the ’353 Office Action states that SVF was publicly available. [pp. 12-
`99.
`13, ’353 Office Action].
`100. Additionally, since the Pad++ references discuss improving current web browsers and
`graphical user interfaces and since SVF was publicly available as early as November 1994 [p. 2,
`SVF Changes], those of ordinary skill in the art would have considered SVF in improving on the
`Pad++ system.
`
`a.
`
`Combining SVF with Either of the Pad++ References or the JP
`169 Reference Yields Predictable Results
`101. One of ordinary skill in the art would have found that combining the

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