Error: Bad annotation destination
United States Court of Appeals for the Federal Circuit
04-1009
BUSINESS OBJECTS, S.A.,
Plaintiff-Appellant,
v.
MICROSTRATEGY, INC.,
Defendant-Appellee.
Daniel J. Furniss, Townsend and Townsend and Crew, LLP, of Palo Alto,
California, argued for plaintiff-appellant. Of counsel on the brief were Joseph A. Greco
and Gregory S. Bishop.
Peter E. Moll, Howrey Simon Arnold & White, LLP, of Washington, DC, argued
for defendant-appellee. With him on the brief were James F. Valentine and Matthew E.
Hocker of Menlo Park, California; and Richard L. Stanley of Houston, Texas.
Appealed from: United States District Court for the Northern District of California
Judge Charles R. Breyer
United States Court of Appeals for the Federal Circuit
04-1009
BUSINESS OBJECTS, S.A.,
Plaintiff-Appellant,
v.
MICROSTRATEGY, INC.,
Defendant-Appellee.
___________________________
DECIDED: January 6, 2005
___________________________
Before RADER, SCHALL, and PROST, Circuit Judges.
RADER, Circuit Judge.
The United States District Court for the Northern District of California entered
summary judgment that MicroStrategy, Inc.’s products do not infringe claims 1, 2 and 4
of Business Objects’ U.S. Patent No. 5,555,403 (issued Sept. 10, 1996) (’403 patent)
either literally or under the doctrine of equivalents. Business Objects, S.A. v.
MicroStrategy, Inc., 280 F. Supp. 2d 1000 (N.D. Cal. 2003) (Summary Judgment
Order). Because the district court did not err in construing the asserted claims, this
court affirms the district court’s ruling of no literal infringement of claims 1, 2 and 4.
Because the district court also did not err in holding that prosecution history bars
Business Objects from asserting equivalents for claims 1 and 2, this court affirms that
portion of the order as well. Because the district court erred in holding that an
amendment to claim 4 during prosecution narrowed the scope of the claim, this court
reverses the district court’s ruling that Business Objects is precluded from claiming
equivalents of claim 4. Finally, this court vacates the district court’s dismissal of
MicroStrategy’s counterclaims as moot, and remands the case for a determination of
infringement of claim 4 under the doctrine of equivalents and of MicroStrategy’s
counterclaims consistent with this opinion.
I.
Business Objects owns he ’403 patent, which claims an improvement for
searching relational databases. A relational database is a computerized compilation of
data organized into tables, each table having columns (attributes), with column
headings, and rows of information. Tables that share at least one attribute in common
are “related.” Tables without a common attribute may still be related via other tables
with which they do share a common attribute. The pathways relating those separate
tables to each other are called “joins.” Once tables have been related by a join, a user
may combine or correlate the information in the joined tables to derive new useful
information.
Users access and correlate information in relational databases only by use of a
relational database management system (RDBMS), which consists of hardware and
software. To access such information, a user sends queries to the RDBMS, which
executes the queries and retrieves the requested information from the tables in the
relational database. A RDBMS, however, only recognizes queries written in complex
“query languages.” The most common query language is Structured Query Language
(SQL).
04-1009 2
A proper query in these languages consists of one or more “clauses.” Common
types of clauses are SELECT, WHERE, FROM, HAVING, ORDER BY, and GROUP BY
clauses. Thus, to compose a proper inquiry, a user must understand the structure and
content of the relational database as well as the complex syntax of the specific query
language. These complexities generally prevent laypersons from drafting queries in
query languages.
The ’403 patent claims a method that allows end users to query a relational
database without knowing a query language or understanding the structure of the
relational database. The method employs a “manager” (a skilled human operator who
defines the business objects with knowledge of the database) that sets the parameters
to allow lay users to retrieve information from a relational database. The manager
achieves this objective by creating a new “universe.” This universe is a user-friendly
representation of the contents of a relational database that are relevant to the lay users.
A universe consists of “business objects,” “classes,” “joins” and “contexts.”
A business object consists of a familiar name, elements of a SELECT clause,
and elements of a WHERE clause. The familiar name is a common word that the lay
user recognizes as designating the information for retrieval, such as “Sales.” The
elements of the SELECT and WHERE clauses associated with the familiar name are
not visible to the user, but are used by a “query engine” to generate the appropriate
query language for execution by the RDBMS.
A class is merely a set of logically-related business objects with certain
predetermined attributes in common. A class of business objects may be presented to
a lay user, such as in a list or drop-down menu.
04-1009 3
As explained above, joins specify the path relating two or more tables to each
other. When more than one join exists between two tables, the context specifies which
join the query engine will incorporate into the query to retrieve the desired information.
The manager may set a default context when creating the universe, or the program may
ask the end user to specify the context.
After the manager has created a universe, lay users may work with common
language to query the relational database. To make a query, a lay user needs to
merely: (1) select the familiar names of business objects that the user desires to
correlate; (2) specify any desired conditions to limit the results; and (3) state the
retrieval order for the data. The query engine then generates a complete query in the
appropriate query language, using the proper clauses, joins, and syntax, for execution
by the RDBMS. This opinion differentiates between SELECT and WHERE clauses
associated with business objects and the SELECT and WHERE clauses generated by
the query engine by designating the clauses generated by the query engine as
“SELECT and WHERE statements.” The final query generated by the query engine
includes SELECT and WHERE statements that consist of the SELECT and WHERE
clauses associated with each business object.
The invention allows the lay user to bring different business objects together.
Thus, a user may use the same business object to obtain different information
depending upon which other business objects are included in the query. For example,
the business object “Sales” connected to the business object “Customers” returns the
dollar amount sold to each customer. The same business object “Sales” connected to
the business object “Product” returns the total revenue generated by each product.
04-1009 4
Thus, the meaning of the information returned by the “Sales” business object is
dynamic, changing according to its association with other business objects in the query.
The concept that the same business object may return different information is called
“dynamic semantics.”
Business Objects asserts claims 1, 2 and 4 of the ’403 patent. Claim 1, from
which claim 2 depends, states:
A method for accessing values in a relational database, wherein the
relational database operates in a computer system and provides returned
values responsive to queries specified in a predefined query language,
wherein the relational database supports the use of functions and
operators to perform operations on values within the database, wherein
the relational database includes a plurality of tables, wherein each table is
associated with one or more attributes, wherein each attribute has a set of
values, wherein the method includes a user interface executing on a
computer system operated by a human user, wherein the computer
system executing the user interface includes a processor coupled to a
memory, wherein the processor is further coupled to the user interface
and the relational database, the method comprising the following steps:
associating a first familiar name with a first returned value, wherein
the familiar name is also associated with the following: a SELECT clause
describing the values returned using a combination of the functions and
operators supported by the predefined query language; a WHERE clause
describing a condition which can be used to restrict the scope of the
returned value; and a plurality of tables containing the attributes on which
the SELECT and WHERE clauses operate;
accepting signals from the user interface to specify a query,
wherein the query includes the familiar name;
generating a query in the predefined query language, wherein the
query includes the condition; and
using the query to access one or more attributes in the relational
database.
’403 patent, col. 16, l. 39 – col. 17, l. 2 (emphasis added).
Claim 4 states:
A relational database access system comprising:
a computer system including a processor coupled to a memory;
04-1009 5
a relational database including attributes, wherein the relational
database is responsive to a query in a predefined query language for
accessing the attributes in the relational database;
a user interface for allowing a human user to specify one or more
familiar names in the form of a user query;
selection means coupled to the user interface for allowing the
human user to select familiar names and to associate two or more familiar
names together; and
query engine means for generating queries in the predetermined
query language based on a given combination of two or more selected
and associated familiar names, wherein the query engine means
generates first and second queries based on first and second
combinations, wherein the first and second combinations both include a
same first familiar name but different additional familiar names, wherein
the first query based on the first combination results in the retrieval of a
first set of returned values based on the first familiar name, wherein the
second query based on the second combination results in the retrieval of a
second set of returned values based on the same first familiar name from
the same database.
’403 patent, col. 17, l. 65 – col. 18, l. 23 (emphasis added).
MicroStrategy’s accused products also allow lay users to use familiar names to
query a relational database. The accused products, however, use a much more
sophisticated approach to generating queries than the invention of the ’403 patent. The
accused products have three separate “hierarchies” of information and “entities” that are
derived from the physical tables in the relational database. The first hierarchy is the
“abstraction” layer, which creates new tables (abstraction tables) that correspond to the
tables in the physical database. These abstraction tables serve to make all higher-level
MicroStrategy metadata independent of the stringent form and syntax requirements of
the tables in the physical database. A person, like the manager in the ’403 patent,
designates these abstraction tables. The abstraction tables may contain the same
information as the tables of the physical database, or may contain information from the
physical database.
04-1009 6
The next hierarchy is the “Schema” level. In this level, new tables are created
(schema tables) using “FactInfo” and “AttributeInfo.” The schema tables do not need to
correlate on a one-to-one basis with the abstraction tables, and may combine
information from different abstraction tables. When creating the schema tables, the
manager also creates a list of the facts and a list of the attributes in each schema table.
Any particular fact or attribute may appear in multiple schema tables.
The third hierarchy is the “Application” layer. Lay users utilize this layer to
assemble queries. The lay user makes “reports” using “templates,” “filters” and
“metrics.” A report is the specification of a lay user and is comprised of a template and
a filter. The template specifies the metrics and attributes to be included in the report,
and the filter describes conditions on data to be included in the report. A metric is a
mathematical compilation of lower level entities. Importantly, none of the reports, filters,
templates, metrics, attributes or facts is tied to any specific table of the physical
database but instead each is associated with multiple schema tables.
Once the end user specifies a report, the query engine scans the lists of facts
and attributes called for by the report to determine which group of tables will make the
“Best Base Table Set,” i.e., the most efficient group of schema tables from which to
generate the report. The query engine identifies each schema table containing a
required fact or attribute. The query engine next selects the best set of tables from the
identified tables, using various criteria, and eliminates the unnecessary schema tables.
After selecting the schema tables for the query, the query engine constructs the
most efficient joins between the pertinent tables, and decides whether multiple queries
must be run to obtain the results for the report. The query engine next generates a
04-1009 7
query in “canonical” format for each pathway or join tree. The generation of canonical
format queries entails reducing the names of the schema tables and the names of the
columns therein to the names of the physical tables and columns in the relational
database. Finally, the query engine translates the canonical query into the specific
query language the RDBMS requires, incorporating the specific form and syntax of that
query language.
II.
This court reviews a grant of summary judgment without deference to the
decision of the district court. Anderson v. Liberty Lobby, Inc., 477 U.S. 242, 255 (1986);
Johns Hopkins Univ. v. CellPro, Inc., 152 F.3d 1342, 1353 (Fed. Cir. 1998). Summary
judgment is appropriate only where “there is no genuine issue as to any material fact
and . . . the moving party is entitled to judgment as a matter of law.” Fed. R. Civ. P.
56(c); see also Celotex Corp. v. Catrett, 477 U.S. 317, 322 (1986). “On summary
judgment, the evidence must be viewed in the light most favorable to the party opposing
the motion, with doubts resolved in favor of the nonmovant.” Crown Operations Int’l,
Ltd. v. Solutia Inc., 289 F.3d 1367, 1375 (Fed. Cir. 2002) (citations omitted).
A court determines patent infringement by construing the claims and then
applying that construction to the accused process or product. Markman v. Westview
Instruments, Inc., 52 F.3d 967, 976 (Fed. Cir. 1995) (en banc), aff’d, 517 U.S. 370
(1996). This court reviews claim construction without deference. Cybor Corp. v. FAS
Techs., Inc., 138 F.3d 1448, 1454 (Fed. Cir. 1998) (en banc). “In the context of
summary judgment, this court reviews the second determination for genuine disputes of
material facts that would preclude a grant of summary judgment.” AFG Indus. v.
04-1009 8
Cardinal IG Co., 375 F.3d 1367, 1371 (Fed. Cir. 2004) (citing Hilgraeve Corp. v. McAfee
Assocs., Inc., 224 F.3d 1349, 1352-54 (Fed. Cir. 2000)). Thus, MicroStrategy is entitled
to summary judgment of no infringement only if the facts and inferences, when viewed
in the light most favorable to Business Objects, would not persuade a reasonable jury to
return a verdict in favor of Business Objects, the non-moving party. Anderson, 477 U.S.
at 255. Finally, the prosecution history estoppel limit on the doctrine of equivalents
presents a question of law, which this court reviews without deference. See Glaxo
Wellcome, Inc. v. Impax Labs., Inc., 356 F.3d 1348, 1351 (Fed. Cir. 2004) (citing Wang
Labs. v. Mitsubishi Elecs. Am., 103 F.3d 1571, 1578 (Fed. Cir. 1997)).
A. Claim Construction
The district court construed the “associating step” limitation of claim 1 as
associating a familiar name with “elements of SELECT and WHERE clauses” before the
“generating a query” step. Business Objects, S.A. v. MicroStrategy, Inc., No. C 01-3908
CRB, slip op. at 9 (N.D. Cal. May 1, 2003) (Construction Order). Business Objects does
not challenge this claim construction, but argues that the district court improperly
narrowed the meaning of “elements” in the Summary Judgment Order. See 280 F.
Supp. 2d at 1003-04 (comparing the accused products with the associating step
limitation). The Summary Judgment Order states that “‘an element’ is not so broad as
to encompass information that will be, but is not yet, associated with a
SELECT/WHERE clause.” Id.
Although affirming the district court’s construction of the associating step
limitation, this court restates the claim construction in the terminology adopted for this
opinion to clarify that claim construction. The associating step of claim 1 requires the
04-1009 9
association of a familiar name with SELECT/WHERE clauses used by the query engine
to generate the SELECT/WHERE statements. Thus, the phrase “element of a
SELECT/WHERE clause” in the district court’s Construction Order refers to an element
of the final SELECT/WHERE statement, as labeled in this opinion, generated by the
query engine. The “element” is the SELECT/WHERE clause associated with a familiar
name that the query engine concatenates with the SELECT/WHERE clauses of other
familiar names to generate SELECT/WHERE statements for execution by the RDBMS.
The district court’s construction of the associating step limitation, and subsequent
clarification in the Summary Judgment Order that “an element” excludes “information
that will be, but is not yet, associated with a SELECT or WHERE clause[,]” therefore,
are correct.
This court rejects Business Objects’ argument that this construction of the
associating step precludes dynamic semantics. The ’403 patent clearly states that
“[e]very Business Object has a general meaning and can be used ‘as it is’ to compose a
query as far as it can be considered a column header. The association of two Business
Objects will produce an answer made of two columns which contents depend on the
association.” ’403 patent col. 8, ll. 43-49. Thus, the ’403 patent clearly teaches that the
inclusion of a particular familiar name in a query will always return information from the
same table and column, but the information returned by using the familiar name will
change depending on the other familiar names included in the query. For example,
assume that the clause “SELECT: customers.cust_name” is associated with the familiar
name Customers. See ’403 patent col. 6, ll. 21-44. Running a query with the familiar
name Customers by itself returns the names of all customers in the
04-1009 10
customers.cust_name table and column. The same familiar name Customers combined
with a familiar name “Loans” returns the names of all customers in the
customers.cust_name table and column that have outstanding loans. The same familiar
name Customers combined with a familiar name “Trucks” returns the names of all
customers in the customers.cust_name table and columns who have purchased trucks.
The names of customers returned by each of the foregoing queries will be different, but
in each case the names are retrieved from the “customers.cust_name” table and
column. Accordingly, associating the SELECT clause with the familiar name Customers
does not preclude the list of names returned from changing dynamically according to
the combination of “Customers” with other familiar names in a query. Consequently, the
district court’s claim construction requiring the association of SELECT/WHERE clauses
to familiar names before the “generating a query” step does not preclude dynamic
semantics.
Business Objects also challenges the district court’s construction of the terms
“predefined query language” and “predetermined query language.” Absent any party
dispute, this court construes these two terms as having the same meaning. The district
court initially construed these terms to mean that a “query language that must be
determined prior to the ‘generating a query’ step, but not necessarily prior to the
associating step. Furthermore, the ‘predefined [or predetermined] query language’ must
support the functions and operators contained in the associating step’s SELECT
clause.” Construction Order at 9-10. Business Objects disputes the portion of this
claim construction requiring the predetermined language to support the functions and
operators contained in the associating step’s SELECT clause.
04-1009 11
Business Objects argues that the district court’s construction improperly imports
the “associating step” from claim 1 into claim 4. To the contrary, this court agrees with
both parties that the “query engine means” limitation of claim 4 is a means-plus-function
limitation governed by 35 U.S.C. § 112, ¶ 6. This court also agrees with the parties that
the corresponding structure consists of the algorithm described in column 4, lines 42-52;
column 7, lines 48-54; column 8, lines 21-23; column 9, lines 14-40; and column 9, line
52 through column 13, line 2. One step of this algorithm is the generation of the
SELECT statements by concatenating SELECT clauses associated with familiar names.
’403 patent, col. 10, ll. 6-16. Because the query engine means of claim 4 must
concatenate SELECT clauses associated with familiar names to generate SELECT
statements in the predetermined query language, the predetermined query language
must support the SELECT clauses associated with the familiar names. The district
court’s claim construction, therefore, is consistent with the structural limitations of the
query engine means and does not improperly import the associating step limitation of
claim 1. Consequently, this court affirms the district court’s construction of the terms
“predetermined query language” and “predefined query language.”
B. Literal Infringement
Business Objects’ challenge of the district court’s grant of summary judgment of
no literal infringement of claims 1 and 2 rests on its argument that the district court’s
construction of the associating step is erroneous. Having affirmed the district court’s
construction of the associating step of claim 1, this court also affirms the district court’s
grant of summary judgment of no literal infringement of claims 1 and 2 of the ’403 patent
because “the accused products do not associate a familiar name with a SELECT and
04-1009 12
WHERE clause prior to the generation of a query” as required in the associating step of
claim 1. Summary Judgment Order, 280 F. Supp. 2d at 1003-04.
Business Objects challenges the district court’s grant of summary judgment of no
literal infringement of claim 4 by arguing that the district court erroneously construed
claim 4 to associate a SELECT clause with a familiar name. This court affirmed the
district court’s holding that claim 4 requires that association. Because the parties do not
dispute that the accused devices do not associate a SELECT clause with a familiar
name, this court affirms the district court’s finding of no literal infringement of claim 4.
B. Infringement under the Doctrine of Equivalents
Infringement under the doctrine of equivalents occurs when a claimed limitation
and the accused product perform substantially the same function in substantially the
same way to obtain substantially the same result. See Warner-Jenkinson Co. v. Hilton-
Davis Chem. Co., 520 U.S. 17, 40 (1997). However, the Supreme Court in Festo Corp.
v. Shoketsu Kinzoku Kogyo Kabushiki Co., 535 U.S. 722, 736 (2002) (Festo VIII), ruled
that “a narrowing amendment made to satisfy any requirement of the Patent Act may
give rise to an estoppel” on infringement by equivalents. A narrowing amendment gives
rise to a presumption that the patentee surrendered any subject matter between the
amended claim as originally filed and claims allowed by the Patent and Trademark
Office (PTO). Id. at 741. To overcome this presumption, a patentee may show “that the
alleged equivalent could not reasonably have been described at the time the
amendment was made, or that the alleged equivalent was tangential to the purpose of
the amendment, or that the equivalent was not foreseeable (and thus not claimable) at
04-1009 13
the time of the amendment.” Glaxo Wellcome, 356 F.3d at 1351-52 (citing Festo VIII,
535 U.S. at 740-41).
The district court applied prosecution history estoppel to prevent Business
Objects from asserting equivalents of the associating step limitation of claims 1 and 2.
Summary Judgment Order, 280 F. Supp. 2d at 1006. Business Objects concedes that
the inclusion of the associating step limitation to claim 1 was the result of a narrowing
amendment to advance patentability during prosecution of the ’403 patent. Thus, this
amendment erects a Festo presumption of estoppel. Business Objects attempts to
overcome that presumption by arguing that the amendment is only tangentially related
to MicroStrategy’s accused equivalent. Business Objects, however, argued to the
examiner at the PTO that the addition of the associating step to claim 1 rendered claim
1 allowable over two prior art references because neither of those references
associated WHERE clauses with a familiar name. Business Objects now alleges that
the accused products infringe claims 1 and 2 under the doctrine of equivalents because
they associate something equivalent to SELECT and WHERE clauses to the familiar
name. Thus, the district court correctly discerned that Business Objects’ amendments
“are directly related to the claimed equivalents.” Id. This court affirms the district court’s
holding that Business Objects may not assert that the accused products contain
equivalents of the associating step in claims 1 and 2.
Business Objects also challenges the district court’s holding that it is estopped
“from contending that the accused devices practice a function equivalent to the ’403
query engine means.” Id. at 1007. Claim 4 was added during the prosecution of the
’403 patent. Claim 4 was similar to the original independent system claims filed, but
04-1009 14
changed, inter alia, the language “translating said user query into a structured query
language (SQL) equivalent statement,” to “generating queries in the predetermined
query language”. The district court held that this amendment narrowed the scope of the
function of the query engine means for purposes of patentability and raised a Festo
presumption. Id. at 1006-07.
To the contrary, the amended term “generating queries in a predetermined query
language” is broader than the original term “translating said user query into a structured
query language (SQL) equivalent statement”. The original term “translating said user
query into a structured query language (SQL) equivalent statement” means to translate
the query specified by the lay user in terms of selected business objects into its SQL
equivalent. The specification at column 10, lines 10-13, conveys the same meaning of
the language: “The QE (Query Engine) replaces the Business Objects select [sic] in the
Result Objects window by their SQL equivalent. Each Business Object has an SQL
equivalence, which can be any SQL Select clause compatible string.” This court rejects
MicroStrategy’s argument that “SQL equivalent” refers to languages that are equivalent
to SQL. The specification does not discuss or refer to languages that are “equivalent” to
SQL. Moreover, MicroStrategy cannot point to any other indicia in the record that would
support its proposed interpretation of the term.
The parties do not dispute that the ordinary meaning of “query language”
includes both SQL and query languages other than SQL. MicroStrategy contends that
regardless of whether “query language” is broader than “SQL,” the qualifier
“predetermined” narrows the function of the query engine means as originally filed. This
argument is not persuasive. By designating SQL as the language into which the
04-1009 15
business objects are to be translated, the original term implicitly “predetermined” that
the query language would be SQL. Because the “predetermined” limitation was
implicitly contained in the original term, the amendment did not narrow the scope of the
query engine means by expressly stating that the query language must be
“predetermined” in the amended term. Business Objects, therefore, did not narrow this
limitation for purposes of patentability and is not precluded from claiming equivalents of
the query engine means in the accused products. See Festo Corp. v. Shoketsu
Kinzoku Kogyo Kabushiki Co., 344 F.3d 1359, 1366 (Fed. Cir. 2003) (en banc) (“If the
amendment was not narrowing, then prosecution history estoppel does not apply.”),
reh’g en banc denied, No. 95-1066, 2003 U.S. App. LEXIS 24135 (Fed. Cir. Nov. 5,
2003), cert. denied, 124 S. Ct. 2018-19 (2004). This court does not address whether
Business Objects may be estopped from claiming equivalents to limitations of claim 4
other than the “predefined query language” limitation addressed in this opinion because
those issues were not addressed below nor raised by the parties on appeal.
III.
This court affirms the district court’s construction of the “associating step” and
“predefined query language” limitations. This court affirms the district court’s finding of
no literal infringement of claims 1, 2 and 4 and that Business Objects is estopped from
claiming equivalents of the “associating step” in claims 1 and 2. This court vacates the
district court’s finding that Business Objects’ amendment of the “predefined query
language” estops it from claiming equivalents of the function of the query engine means
in claim 4. This court remands this case for a determination of infringement of claim 4
04-1009 16
under the doctrine of equivalents consistent with this opinion and reinstates
MicroStrategy’s counterclaims because they are no longer moot.
Having addressed the merits of the district court’s judgment, we need not
address the district court’s denial of Business Objects’ motion to vacate the judgment.
COSTS
Each party shall bear its own costs.
AFFIRMED IN PART, VACATED IN PART, and REMANDED
04-1009 17