MICROGRAFX, LLC, Appellant v. GOOGLE INC., SAMSUNG ELECTRONICS AMERICA, INC., SAMSUNG ELECTRONICS CO., LTD., Appellees
Micrografx, LLC (“Micrografx”) appeals decisions of the Patent Trial and Appeal Board (“Board”). The Board held that claims 1–3, 5, 7, 10–12, 14, 16, 19, 44, 54–57, 59, 61–66, 68, 69, and 71 of U.S. Patent No. 6,057,854 (“'854 patent”) and claims 1–5, 8, 9, 12, 36, and 42 of U.S. Patent No. 6,552,732 B1 (“'732 patent”) (collectively “the challenged claims of the '854 and '732 patents”) were anticipated by Mark Pesce, VRML: Browsing & Building Cyberspace (1995) (“Pesce”). We affirm.
Micrografx owns the '854 and '732 patents. Both patents claim priority to the same provisional application and they have materially identical specifications. The invention is a method for creating interactive graphics for delivery over the Internet. According to the specifications, the graphic files in the prior art were large, took a long time to download over the Internet, and relied on bit mapping, which defines each pixel of an image individually. In addition, the interactive area of a graphic that responds to actions by a user, known as “hot spots,” were inflexible and restricted to rectangular shapes. The invention sought to overcome these disadvantages by defining graphical images mathematically using “vector objects containing mathematical descriptions of lines, curves, fills, and patterns.” '854 patent, col. 2 ll. 13–14. According to the specifications, the invention's vector object files were smaller, loaded faster, could be scaled to different sizes without degradation, and provided greater flexibility for defining the active areas or “hot spots” associated with images. Claim 1 of the '854 patent is representative.
An interactive vector object stored on a computer readable medium and operable to be downloaded over a network, the vector object comprising:
data operable to be downloaded to a client system connectable to the network and in connection with a vector graphics network file to render an image of the vector object on the client system;
an active area defined by the vector object; and
a property defining a command to be performed in response to an event within the active area of the vector object.
'854 patent, col. 12 ll. 22–32.
On August 20, 2013, the United States Patent and Trademark Office (“PTO”) issued a certificate of correction, correcting the language of claims 1, 10, 23, 33, 44, 55, and 64 of the '854 patent. Specifically, as indicated in italics below, this correction changed the language of the last two limitations to read:
an active area predefined by the vector object, the active area associated with a command to be performed in response to an event therein; and
a property defining the command to be performed in response to the event within the active area of the vector object.
J.A. 76. The certificate itself does not mention a reason for the correction. At oral argument, Micrografx explained that the prior omission of these limitations was inadvertent.
On March 24, 2014, Google Inc., Samsung Electronics America, Inc., and Samsung Electronics Co., Ltd., (collectively “Google”), filed petitions for inter partes review of the '854 and '732 patents. Google asserted that the challenged claims of the '854 and '732 patents were anticipated by Pesce.
Pesce is a manual that describes the use of VRML (Virtual Reality Modeling Language). VRML is a computer language that can be used to create interactive, three-dimensional graphics for delivery over the Internet. In VRML, graphical images can be defined mathematically. Using VRML requires creating a VRML document. A VRML document contains a textual description of a graphical image or scene using the VRML computer language, and can be requested by and delivered to a web browser over the Internet. Once downloaded, in order for a computer to display the VRML graphical image or scene, a VRML document must be parsed—“turned into a set of objects the computer understands.” J.A. 934. For instance, a parser “will convert VRML ․ files into a set of C++ objects, which correspond to the nodes in the VRML file.” J.A. 1119.
As a computer language, VRML refers to graphical objects as nodes. Nodes are a set of modeling constructs used to create a graphical image or scene. There are three general types of nodes: shape nodes, such as a Sphere node or a Cube node, for defining an object's geometry; property nodes, such as a Material node, for defining how a shape is drawn (for instance its color); and grouping nodes, such as a Group node or a Separator node, for gathering nodes together as a single object. Each node also contains “one or more fields ․ [which is] for the node to store information specific to itself,” such as the radius field of a Sphere node. J.A. 936. In terms of VRML syntax, nodes are arranged in a hierarchical structure, such that one node can be embedded within another. Specifically, grouping nodes “can have other nodes within them.” J.A. 937. The syntactical order and hierarchical structure of the nodes impact how they interact. For instance, Pesce uses a basic example of drawing “a big yellow sun” in VRML by using a Separator node that contains first a Material node defining the color yellow and second a Sphere node defining the shape and size as shown in the following material from Pesce.
Tabular or graphical material not displayable at this time.
J.A. 938–39 (“Sphere node,” “Material node,” and “Separator group node” markup our own).1 Of relevance to this case, Pesce also describes other VRML nodes such as the WWWAnchor node, which is a grouping node that makes a graphical object respond to a user action, such as loading a webpage when a user clicks, and the Transform node, which defines the relative location of various objects or nodes that are part of a VRML scene.
On June 17, 2015, in a combined final written decision for both inter partes review proceedings the Board concluded by a preponderance of evidence that Pesce anticipates the challenged claims of the '854 and '732 patents.
Micrografx appeals. We have jurisdiction pursuant to 28 U.S.C. § 1295(a)(4)(A).
We review the Board's legal conclusions de novo and review the Board's factual findings for substantial evidence. 5 U.S.C. § 706(2); In re Montgomery, 677 F.3d 1375, 1379 (Fed. Cir. 2012). In construing claim terms, the Board adopts the “broadest reasonable construction in light of the specification in which” the terms appear. 37 C.F.R. § 42.100(b); Cuozzo Speed Techs., LLC v. Lee, 136 S. Ct. 2131. 2144–45 (2016). Anticipation is a question of fact reviewed for substantial evidence. In re Rambus Inc., 494 F.3d 42, 46 (Fed. Cir. 2012).
First, Micrografx contends that the Board erred by relying on the uncorrected claim language of the '854 patent instead of the narrower, corrected claim language. In its decision, the Board did recite the uncorrected claim language in places. But, as Google points out, the Board relied on the petition for inter partes review, which described the correct claim language, and the Board expressly relied on the supporting declaration of Google's expert in reaching its decision, which used the corrected language. More importantly, Micrografx does not argue there is some material difference between the corrected and uncorrected language, or that utilizing the corrected language would render Pesce not anticipatory. During argument, Micrografx conceded that it could not “point [us] to a specific harm as a result of that mistake, other than the general observation that the Board was somewhat careless in its analysis ․” Oral Arg. at 1:44–55.
The harmless error rule applies to appeals from the Board. See, e.g., In re Watts, 354 F.3d 1362, 1369 (Fed. Cir. 2004); In re McDaniel, 293 F.3d 1379, 1387 (Fed. Cir. 2002). Since Micrografx itself is unable to point to any harm, the error by the Board in reciting the uncorrected claim language in its written decision was harmless.
Second, Micrografx argues that the Board failed to consider the parser source code that converts VRML to C++ or Micrografx's arguments based on that translation. Before the Board, Micrografx argued that once a VRML document is parsed—or translated—into C++ objects, each VRML node becomes a separate C++ object such that no single C++ object satisfies all the claim limitations of an interactive vector object. In other words, Micrografx wanted the Board to analyze whether Pesce anticipates using C++ as opposed to using VRML. Because the Board analyzed anticipation using the VRML version and did not explicitly reference the parser source code, Micrografx argues that it failed to consider material evidence in the record. This argument has no merit.
While the Board must “provide[ ] ․ an [ ]adequate predicate upon which to evaluate its decision,” Power Integrations, Inc. v. Lee, 797 F.3d 1318, 1325 (Fed. Cir. 2015), which includes “sufficient findings and reasoning to permit meaningful appellate scrutiny,” Gechter v. Davidson, 116 F.3d 1454, 1458 (Fed. Cir. 1997), there is no merit to Micrografx's argument that the Board failed to do so here. This is not a case where the Board failed to present a reasoned explanation for its decision, to tether its analysis to the record, or to consider relevant evidence. Cf. Arendi S.A.R.L. v. Apple Inc., 832 F.3d 1355, 1362–63 (Fed. Cir. 2016); In re Sullivan, 498 F.3d 1345, 1352–53 (Fed. Cir. 2007); In re Lee, 277 F.3d 1338, 1342–43 (Fed. Cir. 2002). The Board is “not require[d] ․ to address every argument raised by a party or explain every possible reason supporting its conclusion.” Synopsys, Inc. v. Mentor Graphics Corp., 814 F.3d 1309, 1322 (Fed. Cir. 2016).
Here, we cannot assume that the Board failed to consider the parser source code or Micrografx's arguments based on the translation that it produced because these were not explicitly recited in the Board's final written decision. To the contrary, it is evident from the Board's description of Pesce that the Board was well aware of the difference between VRML and computer programming languages like C++ and understood the process of parsing a VRML document from VRML into C++. The Board also considered and asked targeted questions regarding this process of parsing and Micrografx's related arguments at the oral hearing. It is of no moment that the Board did not explicitly address these aspects in its final written decision. There are no underlying factual issues that the Board needed to resolve as a predicate to review of this issue on appeal because the relevant facts are undisputed.
On the merits, we see no error in the Board's rejection of Micrografx's argument. The question is whether Pesce does not anticipate because, once parsed into C++, VRML nodes are separate C++ objects such that no single C++ object satisfies all the claim limitations. But this does not prevent anticipation of the claimed invention by Pesce. To be sure, once parsed into C++ Pesce no longer satisfies the claim limitations, but there is no merit to Micrografx's argument that the claim limitations must be satisfied after translation has occurred. Anticipation does not require that Pesce satisfy all the claim limitations at every stage of implementation—i.e., both in VRML and once parsed into C++. The fact that Pesce does not anticipate in C++ is irrelevant if the VRML version of Pesce does anticipate the invention. The Board purposely focused its analysis on the VRML version. The claims specify that the interactive vector object is “operable to be downloaded over a network.” '854 patent, col. 12 ll. 23–24. Pesce is quite clear that the VRML version is downloaded over a network, not the parsed C++ version. Only after a VRML document is downloaded can it then be parsed into C++. Also, the claims of the '854 and '732 patents do not require that the interactive vector object correspond to a computer programming language such as C++, as opposed to VRML. We see no error in the Board's determination.
Third, Micrografx argues that the Board's decision is not supported by substantial evidence in several respects.
Micrografx challenges the Board's finding that Pesce discloses “an interactive vector object” as required by the relevant claims of the '854 and '732 patents. The Board construed “an interactive vector object” as “a computer software object that includes at least a mathematic description of a graphical image and one definition so that the graphical image responds to events.” J.A. 11. In its decision, the Board relied on an example from Pesce that describes how to create a hyperlinked image of a sun in VRML, specifically using a Separator node, a Material node, a WWWAnchor node, and a Sphere node. The example is as follows with node identifications added.2
Tabular or graphical material not displayable at this time.
J.A. 948–49. In this example, all of the different nodes are grouped together by a Separator node. Within the Separator node is a Material node to define the color yellow and then a WWWAnchor node to link the object to a URL address. Within the WWWAnchor node is a Sphere node to define the shape of the object displayed.
The Board found that the WWWAnchor node in this example discloses an interactive vector object because it is a computer software object, it contains the Sphere node, which discloses a mathematical description of a graphical image, and, as a grouping node, WWWAnchor links all of the nodes it contains to the URL specified in its name field so that the graphical image responds to a user's click.
Micrografx argues that the Board ignored characteristics of computer software objects like the WWWAnchor node. Micrografx asserts that, as a container object, WWWAnchor does not take on or “inherit” the attributes of the nodes it contains, such as the Sphere node, and therefore cannot disclose a mathematical description of a graphical image.3 However, Micrografx fails to appreciate how the different nodes in Pesce work together and can be grouped collectively within a grouping node, such as WWWAnchor, to create a single graphical object that discloses an interactive vector object, such as the example of a hyperlinked sun. Expert testimony from both sides agreed that the Sphere node in VRML is within the WWWAnchor node and by clicking anywhere within the area defined by the Sphere node, a user will be directed to the URL defined by the WWWAnchor node. Because the Sphere node is contained within the WWWAnchor node and defines its graphical representation, the WWWAnchor node unquestionably exhibits the attributes of the Sphere node and discloses a mathematic description of a graphical image. We find substantial evidence to support the Board's finding that Pesce discloses an interactive vector object.
Next, Micrografx argues that substantial evidence does not support the Board's finding that Pesce discloses “a property defining the command to be performed in response to the event within the active area of the vector object,” as required by various claims of the '854 patent. The Board construed this limitation as a “characteristic describing an instruction to be carried out by computer software in response to a user action.” J.A. 14. In its petition, Google asserted that “[t]he WWWAnchor node that anchors another node to a URL corresponds to the claimed property.” J.A. 22 (alteration in original) (internal quotation marks omitted). The Board found that Google had “identifie[d] the field within WWWAnchor that specifies the URL of the anchor and include[d] an excerpt of code from Pesce that links WWWAnchor to the root URL of the Web. Pesce describes that if a user clicks on the Sun, a message will be sent to go to the page http://www.w3.org.” J.A. 23 (internal citations omitted). In other words, the Board found that the name field within the WWWAnchor node discloses this limitation because it specifies the URL address that is linked to all of the nodes contained within the WWWAnchor node.
Micrografx asserts that the claim language, “a property defining the command to be performed,” requires that the property reference a behavior. But, Micrografx argues, the name field of the WWWAnchor node simply lists the URL address without indicating any behavior. Micrografx points out that narrowly focusing on the name field by itself would not reveal any information regarding what command the computer software is supposed to carry out in response to a user action. The problem is that Micrografx overlooks the surrounding context of the name field as part of the WWWAnchor node, a context on which the Board itself relied.
The Board did not err in finding that the name field in context, as part of the WWWAnchor node, satisfies this limitation. All nodes within the WWWAnchor node are linked to the same URL address. Since fields are where a node “store [s] information specific to itself,” one must also look to the surrounding context—the node type, i.e. WWWAnchor—to understand how the name field functions. Here, the name field is part of the WWWAnchor node, which links all of the nodes it contains to a URL address and loads the URL in response to a user click. The name field as part of the WWWAnchor node meets the Board's construction of this limitation. It is a “characteristic describing an instruction to be carried out by computer software in response to a user action,” J.A. 14, namely loading the linked URL address when a user clicks on the graphical image. Substantial evidence supports the Board's finding that Pesce discloses this limitation.
Lastly, Micrografx challenges the Board's finding that Pesce discloses the claim limitation “the data further comprising ․ a location of the vector object,” present in claims 3, 12, 57, and 66 of the '854 patent and claims 3 and 4 of the '732 patent. Dependent claim 3 of the '854 patent is illustrative. Independent claim 1 requires:
An interactive vector object ․ comprising:
data operable to be downloaded to a client system connectable to the network and in connection with a vector graphics network file to render an image of the vector object on the client system ․
Claim 3 depends on claim 1 and requires that the “data further compris[e] a type, a size, and a location of the vector object.” Micrografx challenges only the Board's finding regarding the last part of this limitation—“a location of the vector object.”
Before the Board, Google pointed to an example described in Pesce of a hyperlinked image of an earth positioned relative to a hyperlinked image of a sun in VRML, specifically using a Separator node, a Transform node, a Material node, a WWWAnchor node, and a Sphere node as shown by the following (with node identifications added).4
Tabular or graphical material not displayable at this time.
J.A. 953–54. The Board found that the Transform node in this VRML example from Pesce discloses this limitation—i.e. “an interactive vector object ․ comprising ․ data ․ comprising ․ a location of the vector object.” '854 patent, col. 12 ll. 22–37. We see no error in the Board's determination. In this example, all of the different nodes related to the hyperlinked image of an earth are grouped together by a Separator node. Within the Separator node is a Transform node, which defines “the position, orientation, size, and center of any nodes that follow it in a group.” J.A. 941. In this example, the Transform node defines the position of the earth relative to the position of the sun—i.e. it defines the location of the vector object.
Micrografx argues that the Transform node of Pesce does not disclose this limitation. According to Micrografx, the Transform node can never disclose “the data [of the interactive vector object] further comprising ․ a location of the vector object” limitation because the Transform node in Pesce provides the location information for nodes that follow it in a group. If the Transform node comes before the node that corresponds to the interactive vector object, it will define its location but will not be contained within the interactive vector object and therefore not satisfy the claim limitation. If the Transform node comes after the node that corresponds to the interactive vector object, it will not define the location of the vector object. Therefore, Micrografx argues, in this example neither the Separator node nor the WWWAnchor node can correspond to the interactive vector object; the Separator node does not come after the Transform node and therefore the Transform node does not define its location while the WWWAnchor node comes after the Transform node and therefore does not contain the Transform node.
Micrografx overlooks how the different nodes in Pesce work together and can be grouped within a Separator node. In this example, the Separator node corresponds to the vector object. As Pesce makes clear, grouping nodes such as the Separator node “gather other nodes together, allowing collections of nodes to be treated as a single object.” J.A. 1190. On its own, the Separator node has no graphical representation on a user's screen. Rather, its appearance depends on the various nodes contained within the Separator node. In this example, the Separator node is used to group the Transform node, the Material node, the WWWAnchor node, and the Sphere node, which collectively produce the hyperlinked image of a blue earth. Since the Transform node comes first within this group, it defines the location of nodes that follow it. Thus, the Transform node defines the location of the hyperlinked image of a blue earth, defining its position relative to that of the sun. Since the Separator node's graphical appearance is a hyperlinked image of a blue earth and the Transform node defines the location of this image, the Transform node discloses “the data further comprising ․ a location of the vector object” limitation. Moreover, there is no requirement in the claims that the data disclose the location of the entire vector object as opposed to the location of a part of the vector object. Thus, even though the Transform node does not come before the Separator node, by defining the location of the other subsequent nodes within the Separator node, at a minimum the Transform node defines the location of a part of the interactive vector object. Substantial evidence supports the Board's finding.
For the foregoing reasons, we affirm the Board's finding of anticipation by Pesce of claims 1–3, 5, 7, 10–12, 14, 16, 19, 44, 54–57, 59, 61–66, 68, 69, and 71 of the '854 patent and claims 1–5, 8, 9, 12, 36, and 42 of the '732 patent.
1. Our labeling of the nodes corresponds to the labeling that the parties themselves utilized.
2. Our labeling of the nodes corresponds to the labeling that the parties themselves utilized. Note, the final brace of the Separator group node is excluded from view since in Pesce this example continues with additional nodes after the WWWAnchor node that are included within the same Separator group node.
3. Micrografx also contends that once VRML is parsed into C++ objects, the WWWAnchor node no longer contains the Sphere node. We have elsewhere rejected Micrografx's claim that anticipation should be measured based on the objects as translated into C++.
4. Our labeling of the nodes corresponds to the labeling that the parties themselves utilized. Note, the final brace of the Separator group node is excluded from view since in Pesce this example continues with additional nodes after the WWWAnchor node that are included within the same Separator group node.
DYK, Circuit Judge.