Opinion
No. C05-1013JLR.
April 11, 2007
ORDER
I. INTRODUCTION
This matter comes before the court on the parties' request for construction of four "means-plus-function" claims. Specifically, the parties seek construction of two means-plus-function limitations in Claim 19 of U.S. Patent No. 6,026,392 (the "`392 patent"), as well as two means-plus-function limitations in Claim 4 of U.S. Patent No. 6,625,617 (the "`617 patent").
II. BACKGROUND
The court described the background of this case in its two earlier claim construction orders and will not repeat it here. In the first round of claim construction, the court construed ten disputed claim terms. (Dkt. No. 173). In the second round of claim construction briefing, the parties addressed three additional disputed claim terms, as well as four disputed means-plus-function claims. At the second round Markman hearing, the court directed the parties to submit supplemental briefing on the means-plus-function claims because the briefing on those claims was deficient in certain respects. Plaintiff's briefing misstated a rule for interpreting means-plus-function claims, while Defendants' briefing proposed constructions that were different from the proposed constructions in the joint claim chart filed in February 2006. As directed by the court, the parties have filed supplemental briefs regarding the means-plus-function claims, along with a joint claim chart relating to their supplemental means-plus-function briefs.
III. ANALYSIS
Section 112 of the Patent Act permits an inventor to draft claims in means-plus-function format. 35 U.S.C. § 112; Micro Chem., Inc. v. Great Plains Chem. Co., 194 F.3d 1250, 1257-58 (Fed. Cir. 1999). Once a court has identified a means-plus-function claim, it must clarify what the recited function is, and then must hunt in the specification for the corresponding structure that performs the stated function. Id. at 1258. "In order to qualify as corresponding, the structure must not only perform the claimed function, but the specification must clearly associate the structure with performance of the function." Cardiac Pacemakers, Inc. v. St. Jude Med., Inc., 296 F.3d 1106, 1113 (Fed. Cir. 2002). Although corresponding structure "need not include all things necessary to enable the claimed invention to work," it "must include all structure that actually performs the recited function." Id. at 1119.
As a preliminary matter, Defendants suggest in their supplemental brief and joint claim chart that all four means-plus-function claim limitations are "indefinite under 35 U.S.C. § 112, ¶ 2 and/or 35 U.S.C. § 112, ¶ 6 as failing to link structure to the function claimed." (Dkt. No. 236 at 4, 9, 15, 19). This argument is not consistent with Defendants' earlier briefing, in which they identified the corresponding structure for each claimed function. (Dkt. Nos. 218 228). Given that Defendants were able to identify corresponding structure in their prior briefs, the court gives little weight to the new arguments in their supplemental brief that the means-plus-function claim limitations are indefinite for failing to link structure to the claimed function.
1. `392 Patent, Claim 19
Claim 19 of the `392 patent reads as follows:
Apparatus usable in connection with computer-implemented accessing of data which may be stored in either of first and second different data sources comprising:
a driver containing program instructions configured for use in connection with said first data source in the absence of said driver being configured for use in connection with said second data source;
means for using said driver to automatically obtain first information about the data structure of said first data source without the need for human analysis of the first data source by automatically accessing content of information stored in said first data source; and
means for using said first information to define a structure for a first database different from said data sources wherein said first database did not exist before using said driver to automatically obtain first information.
The parties agree that Claim 19 includes two means-plus-function limitations, which the court considers below.
A. "Means for using said driver . . . "
The first means-plus-function limitation in Claim 19 is "means for using said driver to automatically obtain first information about the data structure of said first data source without the need for human analysis of the first data source by automatically accessing content of information stored in said first data source."
Both sides have taken shifting positions on the function recited in this means-plus-function limitation. In its opening brief, Timeline stated that "the function in question is `using said driver to obtain information . . .'" (Dkt. No. 216 at 4). In its supplemental brief, however, Timeline argues that the claimed function is simply "using said driver." For its part, Defendant ProClarity asserted in the joint claim chart filed in February 2006 that the recited function was "using said driver." However, Defendants now maintain that the recited function includes all words following "means for."
Defendants argue that identifying the function as simply "using said driver" would read out limitations contained in the claim language. The court agrees. The claimed function may not be "improperly broadened by ignoring the clear limitations contained in the claim language." Lockheed Martin Corp. v. Space Sys./Loral, Inc., 324 F.3d 1308, 1319 (Fed. Cir. 2003). As Defendants note, the Lockheed court held that "function is properly identified as the language after the `means for' clause," with the exception of language that appeared before a "whereby clause." Id. Unlike Lockheed, there is not a "whereby clause" in this claim. The court does not read Lockheed to suggest that the claimed function must always include all language following the "means for" clause. In this case, however, defining the claimed function as simply "using said driver" would not identify what driver is used for and would result in a claimed function that is virtually meaningless. Plaintiff appeared to recognize this point in its opening brief, which stated that "the function in question is `using said driver to obtain information . . .'"
Plaintiff argues that the language following "using said driver" is not part of the claimed function because it describes actions performed by the driver, rather than functions performed by the "means for" using the driver. However, as Defendants suggest, the language following "using said driver" is relevant to the "means" phrase because it indicates what the "means" is using the driver to accomplish. Therefore, the court identifies the claimed function as "using said driver to automatically obtain first information about the data structure of said first data source without the need for human analysis of the first data source by automatically accessing content of information stored in said first data source."
The court must next identify the structure that corresponds to the claimed function. Plaintiff argues that the corresponding structure is "a main process or main procedure running on a computer and configured to call or activate said driver." Defendants maintain that the structure is "a main process that (1) selectively activates various drivers; (2) initiates a search process and receives a list of directories to be searched for data sources; (3) analyzes source data; and (4) calls drivers to load data."
The parties essentially agree that the structure includes a "main process" that activates at least one driver. Both sides also point to a flowchart in Figure 10 of the `392 patent to support their proposed constructions. Plaintiff states that "Figure 10 . . . draws a clear picture of how the main process performs the function at issue in this claim," (Dkt. No. 235 at 6), while Defendants maintain that their proposed structure corresponds to various blocks "in the algorithm of Figure 10." (Dkt. No. 234 at 12-13).
Defendants argue that Plaintiff's proposed construction is not consistent with the requirements of WMS Gaming Inc. v. International Game Technology, 184 F.3d 1339 (Fed. Cir. 1999). InWMS Gaming, the Federal Circuit held that a district court erred by identifying the corresponding structure for a means-plus-function limitation as "an algorithm executed by a computer." The court held that this identification of structure was overly broad because it was not limited to the algorithm disclosed in the specification. Id. at 1348. Following its decision in WMS Gaming, the Federal Circuit has held that "WMS Gaming restricts computer-implemented means-plus-function terms to the algorithm disclosed in the specification." Harris Corp. v. Ericsson Inc., 417 F.3d 1241, 1253 (Fed. Cir. 2005). The court inHarris stated that "[a] computer-implemented means-plus-function term is limited to the corresponding structure disclosed in the specification and equivalents thereof, and the corresponding structure is the algorithm." Id.
Broadly defined, an algorithm is "a step-by-step procedure for solving a problem or accomplishing some end." In re Iwahashi, 888 F.2d 1370, 1374 (Fed. Cir. 1989) (quoting Webster's New Collegiate Dictionary (1976)).
In its supplemental brief, Plaintiff argues that it has satisfied any requirements under WMS Gaming by identifying the structure as a "main process or main procedure running on a computer and configured to call or activate said driver." However, Plaintiff's identification of structure is not limited to an algorithm disclosed in the specification for performing the claimed function. As such, it is not consistent with the requirements of WMS Gaming or Harris.
Defendants' proposed construction more closely tracks an algorithm disclosed in the specification and in Figure 10 of the `392 patent. As both sides acknowledge, the main process must activate a driver to perform the claimed function. See `392 patent, col. 8:60-61; Figure 10, block 1004. The main process also initiates a search process and receives a list of directories to be searched for data sources. See id. at col. 12:12-14, 33-40; Figure 10, blocks 1010 and 1012. In step 1022, general information is loaded, which "includes information about the structure of the data in the data source." Id. at col. 13:42-43, 52-53. In step 1024, the "main procedure 802 also calls or activates a function 904 of the appropriate driver or modules 804 to load data definitions." Id. at col. 14:11-13.
In short, the main process must activate a driver, initiate a search process, receive a list of directories to be searched, and call a driver to load general information and data definitions in order to use the driver to obtain first information about the data structure of the first data source. As a result, these steps are properly included in the corresponding structure for performing the recited function.
Plaintiff argues that Defendants' identification of the corresponding structure is "incorrect because it attempts to assign to the main process the functions performed by drivers, rather than confining the structure to the means for using the driver." (Dkt. No. 235 at 10). However, Plaintiff bases its argument on the identification of corresponding structure that Defendants offered in their initial briefs. In their supplemental brief, Defendants have anticipated this concern by more carefully limiting their identification of corresponding structure to functions performed by the main process (e.g., by identifying the corresponding structure as a main process that "calls" on the driver).
Plaintiff also objects to Defendants' inclusion of the phrase "calling drivers to load data" in the corresponding structure. As Plaintiff notes, the main process calls the driver to "load general information" and "load data definitions" at steps 1022 and 1024, not to "load data." This concern may be addressed by clarifying that the corresponding structure includes the main process calling a driver to load "general information and data definitions," rather than calling a driver to load "data."
Defendants also maintain that corresponding structure includes the step of "analyzing source data." To support this argument, Defendants point to language in the specification that states "after the main process 802, using the drivers 804, performs an analysis of the source data 806a through 806d, it may create one or more new databases containing data from one or more of the various data sources 806a through 806d." `392 patent, col. 10:9-13. However, this language from the specification is not clearly linked to the function of "using said driver to automatically obtain first information about the data structure of said first data source . . ."
Defendants also suggest that blocks 1018 and 1020 in Figure 10 correspond to "analyzing source data." Block 1018 is labeled "display data to import or update." The specification states that at block 1018, "an identification of the data which is to be imported or updated is displayed 1018 in order to give the user an opportunity to select the data to be imported or updated or to choose to refrain from importing or updating certain data." `392 patent, col. 13:7-11. Block 1020 is labeled "select data to import or update." The specification does little more than refer to block 1020 as a "selection step." Id. at col. 13:22-23. As a result, it is not clear why Defendants maintain that blocks 1018 and 1020 correspond to "analyzing source data" or to the recited function.
Therefore, the court only partially adopts the corresponding structure identified by Defendants. The court finds that the structure for performing the claimed function is a main process running on a computer that: (1) activates a driver; (2) initiates a search process and receives a list of directories to be searched for data sources; and (3) calls a driver to load general information and data definitions.
B. "Means for using said first information . . . "
The second means-plus-function limitation in Claim 19 is "means for using said first information to define a structure for a first database different from said data sources wherein said first database did not exist before using said driver to automatically obtain first information." Plaintiff maintains that the claimed function is "using said first information to define a structure for a first database different from said data sources." As before, Defendants argue that the recited function includes all words following "means for."
The parties' dispute over the recited function comes down to whether the phrase "wherein said first database did not exist before using said driver to automatically obtain first information" is part of the claimed function. As the Federal Circuit has noted, a "whereby clause" may be excluded from the claimed function if it "merely states the result of the limitations in the claim and adds nothing to the substance of the claim." Lockheed, 324 F.3d at 1319. However, the "wherein clause" here does not simply state the result of the limitations in the claim, but instead provides that the first information must be used to define the structure of a database that did not previously exist. Therefore, the court identifies the claimed function as "using said first information to define a structure for a first database different from said data sources wherein said first database did not exist before using said driver to automatically obtain first information."
In terms of the structure that performs the recited function, Plaintiff argues that the corresponding structure is "one or more drivers running on a computer and configured to load general information and/or load data definitions." Defendants argue that the corresponding structure is "a main program identifying or creating a database repository, calling drivers to create tables, and also requires drivers called by a main process to create tables based on the information to complete the definition of the database."
Plaintiff's proposed construction tracks steps 1022 and 1024 from Figure 10 of the `392 patent. In step 1022, "general information" is loaded, which "includes information about the structure of the data in the data source." `392 patent, col. 13:52-53. In step 1024 of Figure 10, the main process calls a driver "to load data definitions," which may include information such as the text name, field size, type of data, and similar characteristics. Id. at col. 14:11-18. As discussed earlier, these steps correspond to obtaining information about the data structure of a data source. They are not clearly linked to the function of "using said first information to define a structure for a first database . . . "
Defendants' proposed construction largely tracks steps 1026 and 1028 in Figure 10. In step 1026, "[t]he main process . . . identifies or creates a database repository 1026, i.e., identifies or creates a file or other data storage structure in the new databases 808 which will serve as the location where information loaded from the data source or sources 806 will be saved." `392 patent, col. 14:48-52. In step 1028, "[t]he main procedure 802 then calls the appropriate function 905 of one or more drivers to create database tables 1028 which will be used for storing data saved from the source data . . ." Id. at col. 14:56-59.
By their clear terms, these steps involve identifying a "data storage structure" in a new database and creating database tables which will be used to store data. As a result, the court agrees with Defendants that steps 1026 and 1028 correspond to the claimed function of "using said first information to define a structure for a first database . . ." The court also agrees that because the driver or drivers called by the main process create the database tables, the step performed by the drivers is properly included in the corresponding structure.
Defendants also suggest that the corresponding structure includes the steps of populating the database files and/or storing data into the new database tables. However, these additional steps do not correspond to the function of "using said first information to define a structure for a database . . ." Defining a structure for a database is not the same as populating or storing information in a database.
Therefore, the court finds that the corresponding structure is a main process running on a computer that identifies or creates a database repository and calls one or more drivers to create database tables, as well as one or more drivers that create database tables.
The court declines to adopt Defendants' proposal to include the words "to complete the definition of the database" at the end of this construction. Defendants offer no persuasive reason for including this additional language.
2. `617 Patent, Claim 4
Claim 4 of the `617 patent reads in part as follows:
Apparatus comprising:
Programming means for accessing at least a first data source and a second data source, different from said first data source, said programming means containing a first set of program instructions configured for use in connection with at least said first data source and containing a second set of program instructions configured for use in connection with at least said second data source;
means for using said programming means to automatically obtain first information about the data structure of at least a first accessed data source, wherein said accessed data source is one of said first data source and said second data source, without the need for human analysis of the first data source of said second data source;. . . .
The parties agree that Claim 4 has two means-plus-function limitations, which the court considers below.
A. "Programming means for accessing . . ."
The first means-plus-function limitation is "programming means for accessing at least a first data source and a second data source, different from said first data source, said programming means containing a first set of program instructions configured for use in connection with at least said first data source and containing a second set of program instructions configured for use in connection with at least said second data source."
Plaintiff argues that the recited function is "accessing at least a first data source and a second data source." Defendants maintain in their supplemental brief that the recited function includes all words following "programming means for." This is a departure from Defendants' position in their earlier briefing, in which they stated "[t]he parties do not materially differ on their interpretation of the first function in `617 patent claim 4" and identified the recited function as "accessing at least two different data sources." (Dkt. No. 228 at 15). The court finds that Defendants' prior identification of the function — "accessing at least two different data sources" — is sufficient. The remaining language describes what the programming means contains, not its function.
In terms of the structure corresponding to the claimed function, Plaintiff argues that the structure is "one or more drivers running on a computer and configured for use in connection with at least one or more types of data sources." Defendants maintain that the structure is "a driver configured to select directories, search directories, load general information, and load data definitions to read information from two or more data sources."
The parties agree that the corresponding structure includes at least one driver. This is consistent with the specification, which states that "[i]n the embodiment of FIG. 8, a main process 802 selectively activates various drivers . . . as needed in connection with analyzing and/or accessing information in a plurality of data sources." `617 patent, col. 9:31-34. The dispute is whether additional structure is required.
Defendants argue that Plaintiff's proposed structure is not consistent with WMS Gaming. Defendants assert that to perform the recited function of accessing at least two different data sources, the driver must select directories, search directories, load general information, and load data definitions. Plaintiff argues that it is not clear why defendants selected those four steps and that "[t]he steps identified by defendants are not necessary to access data sources; instead, they are steps that such access makes possible." (Dkt. No. 235 at 20).
Both sides raise valid points. As Defendants note, Plaintiff's proposal is a generalized recitation of structure, rather than a specific algorithm disclosed in the specification. As discussed earlier, the Federal Circuit has indicated that "WMS Gaming restricts computer-implemented means-plus-function terms to the algorithm disclosed in the specification." Harris Corp. v. Ericsson Inc., 417 F.3d 1241, 1253 (Fed. Cir. 2005). As before, Plaintiff's identification of structure is not limited to an algorithm disclosed in the specification and is not consistent with WMS Gaming or Harris. At the same time, Plaintiff is correct that Defendants offer little explanation for their own proposed four-step description of the structure.
In short, there are problems with the proposed constructions offered by both sides. However, the court agrees with Defendants that to perform the function of accessing at least two different data sources, a driver must at least select and search directories. Plaintiff itself notes that the specification provides:
[T]he main procedure 802 will initiate the execution of a function of one or more of the drivers to select directories to search 1010. The driver 804 which is loaded or called by the main process 802 will depend on which type of source data is being accessed.
(Dkt. No. 235 at 18) (emphasis in original) (quoting `617 patent, col. 17:14-18). As this language suggests, the driver is in the process of accessing the source data when it selects directories to search. Because selecting and searching directories in a data source are the first functions performed by the drivers (see Figures 9 and 10), these functions must be performed for the drivers to access data sources.
However, the court does not agree with Defendants that the steps of loading general information and loading data definitions are corresponding structure for performing the recited function. These "loading" steps are not clearly linked to performing the function of "accessing" data sources.
Therefore, the court identifies the corresponding structure as a driver running on a computer and configured to select and search directories from two or more data sources.
B. "Means for using said programming means . . ."
The second means-plus-function limitation in Claim 4 is "means for using said programming means to automatically obtain first information about the data structure of at least a first accessed data source, wherein said accessed data source is one of said first data source and said second data source, without the need for human analysis of the first data source or said second data source." Plaintiff contends that the recited function is "using said programming means." Once again, Defendants argue that the recited function is all words following "means for."
To support their positions, both sides essentially offer the same arguments they made earlier regarding the first means-plus-function limitation of claim 19 of the `392 patent. As before, the court agrees with Defendants that the recited function cannot simply be identified as "using said programming means." Such a construction would read out limitations contained in the claim language and would be almost meaningless. Therefore, the court identifies the claimed function as "using said programming means to automatically obtain first information about the data structure of at least a first accessed data source, wherein said accessed data source is one of said first data source and said second data source, without the need for human analysis of the first data source or said second data source."
Plaintiff argues that the structure that performs the recited function is "a main process or main procedure running on a computer and configured to call or activate said driver or drivers." Defendants define the structure as "a main process that (1) selectively activates various drivers; (2) initiates a search process and receives a list of directories to be searched for data sources; (3) analyzes source data; and (4) calls drivers to load data." The parties' identifications of structure for this function are virtually identical to the structures they had identified for Claim 19 of the `392 patent.
As before, Plaintiff's identification of the structure is not consistent with WMS Gaming because it is not limited to the algorithm disclosed in the specification. WMS Gaming, 184 F.3d at 1348. By contrast, Defendants' proposed construction more closely tracks the steps in an algorithm disclosed in Figure 10 of the `617 patent specification.
The parties do not dispute that the main process must activate one or more drivers to perform the claimed function. See `617 patent, col. 9:31-32; Figure 10, block 1004. In the algorithm disclosed in the specification, the main process also initiates a search process and receives a list of directories to be searched for data sources. See id. at col. 17:14-16, 18:12-15; Figure 10, blocks 1010 and 1012. General information is loaded in step 1022, which "includes information about the structure of the data in the data source." Id. at col. 19:31-32. In step 1024, the "main procedure 802 also calls or activates a function 904 of the appropriate driver or modules 804 to load data definitions." Id. at col. 19:57-59. As a result, these steps are properly included in the corresponding structure for performing the recited function.
Defendants also argue that the corresponding structure includes the step of "analyzing source data." To support this contention, Defendants point to a part of the specification that states "after the main process 802, using the drivers 804, performs an analysis of the source data 806a through 806d, it may create one or more new databases 808, containing data from one or more of the various data sources 806a through 806d." `617 patent, col. 10:58-62. However, this language from the specification is not clearly linked to the function of "using said programming means to automatically obtain first information . . ." In addition, this step is not clearly linked to a step in the algorithm disclosed in Figure 10 of the `617 patent.
Therefore, the court adopts in part the corresponding structure identified by Defendants. The court finds that the structure for performing the claimed function is a main process running on a computer that: (1) activates one or more drivers; (2) initiates a search process and receives a list of directories to be searched for data sources; and (3) calls a driver to load general information and data definitions.
IV. CONCLUSION
This order completes the claim construction process. The court will next turn to Defendant Microsoft's motion for summary judgment, which has been fully briefed. If the court wishes to hear oral argument on the summary judgment motion, it will notify the parties.
The clerk is directed to send copies of this order to all counsel of record.