`
`) 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