Thought, Inc. v. Oracle Corporation et al
Filing
116
CLAIM CONSTRUCTION ORDER. Signed by Judge William H. Orrick on 10/22/2014. (jmdS, COURT STAFF) (Filed on 10/22/2014)
1
2
3
4
UNITED STATES DISTRICT COURT
5
NORTHERN DISTRICT OF CALIFORNIA
6
7
THOUGHT, INC.,
Case No. 12-cv-05601-WHO
Plaintiff,
8
v.
CLAIM CONSTRUCTION ORDER
9
10
ORACLE CORPORATION, et al.,
Re: Dkt. No. 70
Defendants.
United States District Court
Northern District of California
11
12
BACKGROUND
13
14
The parties ask the Court to construe 19 terms from the seven patents asserted in this case.
15
As explained by plaintiff Thought’s expert, Hosagrahar Jagadish, Ph.D., the patents in suit are
16
aimed at facilitating the transfer of information between two popular schemes for organizing
17
information in a computer: the relational model and the object model. Declaration of Hosagrahar
18
Jagadish in Response (Jagadish Resp. Decl.; Docket No. 76-1) ¶ 11. The relational model is
19
frequently used in database systems, while the object model is used in most programming
20
languages and software applications. Id. Generally speaking, the technology at issue teach
21
methods to allow ordinary users to make object (software) applications and relational databases
22
work together, despite the differences in the ways software applications and database systems
23
organize data.
24
More specifically, the ‘197 Patent (Patent Number 5,857,197, issued January 5, 1999),
25
“System and Method for Accessing Data Stores as Objects,” teaches the use of an adapter
26
abstraction layer using two adapters (interfaces). The novelty, according to Thought, is the fact
27
that the two adapters or interfaces are used at runtime and one specializes in the object model and
28
the other specializes in the relational database model. Thought argues that the ‘197 Patent teaches
1
the innovative “basic persistence architecture” of the method (which was incorporated into
2
Thought’s “CocoBase” product), and advanced features related to development, modeling, and
3
caching for CocoBase were claimed in the following patents.
4
The ‘600 Patent (Patent Number 7,103,600, issued September 5, 2006) is titled
5
“Displayable Presentation Page and SQL Searchable Relational Data Source Implementation of a
6
System, Method and Software for Creating or Maintaining Distributed Transparent Persistence of
7
Complex Data Objects and Their Data Relationship.” The ‘862 Patent (Patent Number 7,167,62,
8
issued January 23, 2007) is titled, “Session Bean Implementation of a System, Method and
9
Software for Creating or Maintaining Distributed Transparent Persistence of Complex Data
Objects and Their Data Relationships.” These two patents teach how to maintain persistence (to
11
United States District Court
Northern District of California
10
save or to store) for objects and their relationships.
12
The ‘481 Patent (7,043,481, issued May 9, 2006), “System, Method and Software for
13
Creating, Maintaining, Navigating or Manipulating Complex Data Objects and Their Data
14
Relationships,” discloses a Complex Data Object Graph (CDOG) model to capture the “web” of
15
relationships between objects, also called a “graph.” The patent teaches how to represent, manage,
16
an access the graph effectively.
17
The ‘956 Patent (6,999,956, issued February 14, 2006), “Dynamic Object-Driven Database
18
Manipulation and Mapping System,” teaches how to map data between the object and relational
19
programs using metadata in a library. Jagadish Resp. Decl. ¶ 14.
20
The ‘730 Patent (7,149,730, issued December 12, 2006), “Dynamic Class Inheritance and
21
Distributed Caching with Object Relational Mapping and Cartesian Model Support in a Database
22
Manipulation and Mapping System,” teaches how to work with multiple data stores that contain
23
information organized differently.
24
The ‘912 Patent (6,985,912, issued January 10, 2006), “Dynamic Object-Driven Database
25
Manipulation and Mapping System Having a Simple Global Interface and an Optional Multiple
26
User Need Only Caching System With Disable and Notify Features,” addresses the problem of
27
user manipulation of stored data, teaching how to keep copies of data synchronized.
28
The 19 claim terms in dispute on this motion can be broken down into three categories,
2
1
discussed below.
LEGAL STANDARD
2
3
Claim construction is a matter of law. See Markman v. Westview Instruments, Inc., 517
U.S. 370, 372 (1996); Vitronics Corp. v. Conceptronic, Inc., 90 F.3d 1576, 1582 (Fed. Cir. 1996).
5
Terms contained in claims are “generally given their ordinary and customary meaning.” Vitronics,
6
90 F.3d at 1582. In determining the proper construction of a claim, a court begins with the
7
intrinsic evidence of record, consisting of the claim language, the patent specification, and, if in
8
evidence, the prosecution history. Phillips v. AWH Corp., 415 F.3d 1303, 1313 (Fed. Cir. 2005);
9
see also Vitronics, 90 F.3d at 1582. “A claim term used in multiple claims should be construed
10
consistently . . . .” Inverness Med. Switzerland GmbH v. Princeton Biomeditech Corp., 309 F.3d
11
United States District Court
Northern District of California
4
1365, 1371 (Fed. Cir. 2002).
12
“The appropriate starting point [ ] is always with the language of the asserted claim itself.”
13
Comark Commc’ns, Inc. v. Harris Corp., 156 F.3d 1182, 1186 (Fed. Cir. 1998). “[T]he ordinary
14
and customary meaning of a claim term is the meaning that the term would have to a person of
15
ordinary skill in the art in question at the time of the invention, i.e., as of the effective filing date
16
of the patent application.” Phillips, 415 F.3d at 1312. “There are only two exceptions to this
17
general rule: 1) when a patentee sets out a definition and acts as his own lexicographer, or 2) when
18
the patentee disavows the full scope of a claim term either in the specification or during
19
prosecution.” Thorner v. Sony Computer Entm’t Am. LLC, 669 F.3d 1362, 1365 (Fed. Cir. 2012).
20
“Importantly, the person of ordinary skill in the art is deemed to read the claim term not
21
only in the context of the particular claim in which the disputed term appears, but in the context of
22
the entire patent, including the specification.” Phillips, 415 F.3d at 1313. “Claims speak to those
23
skilled in the art,” but “[w]hen the meaning of words in a claim is in dispute, the specification and
24
prosecution history can provide relevant information about the scope and meaning of the claim.”
25
Electro Med. Sys., S.A. v. Cooper Life Scis., Inc., 34 F.3d 1048, 1054 (Fed. Cir. 1994) (citations
26
omitted). “[T]he specification is always highly relevant to the claim construction analysis.
27
Usually, it is dispositive; it is the single best guide to the meaning of a disputed term.” Vitronics,
28
90 F.3d at 1582. “However, claims are not to be interpreted by adding limitations appearing only
3
1
in the specification.” Id. “Thus, although the specifications may well indicate that certain
2
embodiments are preferred, particular embodiments appearing in a specification will not be read
3
into the claims when the claim language is broader than such embodiments.” Id. Conversely,
4
“where [ ] the claim language is unambiguous, [the Federal Circuit has] construed the claims to
5
exclude all disclosed embodiments.” Lucent Techs., Inc. v. Gateway, Inc., 525 F.3d 1200, 1215-
6
16 (Fed. Cir. 2008). “[T]he description may act as a sort of dictionary, which explains the
7
invention and may define terms used in the claims,” and the “patentee is free to be his own
8
lexicographer,” but “any special definition given to a word must be clearly defined in the
9
specification.” Markman, 517 U.S. at 989-90.
10
On the other hand, it is a fundamental rule that “claims must be construed so as to be
United States District Court
Northern District of California
11
consistent with the specification.” Phillips, 415 F.3d at 1316. “The construction that stays true to
12
the claim language and most naturally aligns with the patent’s description of the invention will be,
13
in the end, the correct construction.” Renishaw PLC v. Marposs Societa’ per Azioni, 158 F.3d
14
1243, 1250 (Fed. Cir. 1998).
15
Finally, the court may consider the prosecution history of the patent, if in evidence.
16
Markman, 52 F.3d at 980. The prosecution history may “inform the meaning of the claim
17
language by demonstrating how the inventor understood the invention and whether the inventor
18
limited the invention in the course of prosecution, making the claim scope narrower than it would
19
otherwise be.” Phillips, 415 F.3d at 1317 (citing Vitronics, 90 F.3d at 1582-83); see also Chimie
20
v. PPG Indus., Inc., 402 F.3d 1371, 1384 (Fed. Cir. 2005) (“The purpose of consulting the
21
prosecution history in construing a claim is to exclude any interpretation that was disclaimed
22
during prosecution.”) (internal quotations omitted).
23
In most situations, analysis of this intrinsic evidence alone will resolve claim construction
24
disputes. Vitronics, 90 F.3d at 1583. However, “it is entirely appropriate . . . for a court to consult
25
trustworthy extrinsic evidence to ensure that the claim construction it is tending to from the patent
26
file is not inconsistent with clearly expressed, plainly apposite, and widely held understandings in
27
the pertinent technical field.” Pitney Bowes, Inc. v. Hewlett-Packard Co., 182 F.3d 1298, 1309
28
(Fed. Cir. 1999). Extrinsic evidence “consists of all evidence external to the patent and
4
1
prosecution history, including expert and inventor testimony, dictionaries, and learned treatises.”
2
Markman, 52 F.3d at 980. All extrinsic evidence should be evaluated in light of the intrinsic
3
evidence, Phillips, 415 F.3d at 1319, and courts should not rely on extrinsic evidence in claim
4
construction to contradict the meaning of claims discernible from examination of the claims, the
5
written description, and the prosecution history, Pitney Bowes, 182 F.3d at 1308 (citing Vitronics,
6
90 F.3d at 1583). While extrinsic evidence may guide the meaning of a claim term, such evidence
7
is less reliable than intrinsic evidence. Phillips, 415 F.3d at 1318-19.
DISCUSSION
8
As an initial matter, the parties agree to following constructions, with respect to terms used
9
10
in the ‘197 patent.
Object as used in Claims 1, 3, 6, 7 and 8 of the ‘197 Patent is defined as: instance of a
United States District Court
Northern District of California
11
12
class.
Object schema as used Claims 1, 3, 5, 6, 7 and 8 of the ‘197 Patent is defined as: object-
13
14
oriented view of one or more data store schemas.
15
I.
16
DISPUTED TERMS THAT DO NOT INVOLVE § 112(F)
A. Packing
17
An example of how “packing” is used in the ‘197 patent is demonstrated in Claim 1:
18
said first interface extracting the object attributes and the object
name from the object to effect packing of the object attributes and
the object name as data, said first interface unpacking the data to
effect instantiating the object attributed and the object name into a
new object,
19
20
21
22
23
24
25
Patent/Term
Packing: Claims 1, 3,
7, 8 of ‘197 Patent.
Oracle’s Proposal
translating data into a
format suitable for
communication and
transport across a
network
Thought’s Proposal
placing data into a
form suitable for
communication
between software
components
The parties agree the purpose of packing data is to make data suitable for communication.
26
Oracle’s definition, however, seeks to incorporate two additional concepts: translating and
27
network. There is no support for incorporating translating into the definition of packing. As an
28
5
initial matter, translation is a term that arguably requires its own definition. While Oracle argues
2
that “packing” must do something to the data and that simply “placing” the data as suggested by
3
Thought is too ambiguous, Oracle’s proposal to use “translating” itself imports further
4
ambiguities. See Jagadish Resp. Decl., ¶ 25 (“Dr. Hosking provides a very cursory analysis of the
5
term ‘unpacking’ in his declaration, and does not explain into what format or formats the data is
6
translated.”). Moreover, data does not necessarily need to be “translated” for communication. It
7
could, instead, be compacted, reordered, or otherwise manipulated for various purposes. As Dr.
8
Jagadish notes, there are many purposes persons ordinarily skilled in the art would recognize as
9
being served by packing data, including for storage in place, transport, orderliness or compaction.
10
See, e.g., Jagadish Resp. Decl., ¶¶ 16, 18. Oracle does not demonstrate that “translation” of data is
11
United States District Court
Northern District of California
1
necessary to achieve the agreed-to purpose here – communication – much less any of the other
12
functions packing serves that are also identified in the specification, such as compression and data
13
de-duplication.1 See ‘197 Patent at 10:5-24; see also Hosking Decl. [Docket 71-1], ¶ 113
14
(“packing process typically removes much of the metadata . . . and isolates the essential
15
information . . . .”); Jagadish Deposition at 158:12-17 (packing puts “things into a simplified
16
format”).
With respect to network, Oracle relies on examples in the specification of data being
17
18
packed prior to being communicated across a network. See ‘197 Patent at 7:39-54 (“The
19
communication medium 630 between the first adapter 400 and the second adapter 500 may
20
comprise an Internet connection”); at 10:5-12 (“the subject invention reduces network latency
21
(which is essential to reduce over the Internet and other io-bound and high latency networks) and
22
increases the performance and scalability of the involved clients and servers”). Oracle argues
23
these descriptions of the invention make it clear that the “purpose” of the invention is to improve
24
the performance of distributed client-systems. See Hosking Decl., ¶ 112.
25
1
26
27
28
In support of its argument that a person of ordinary skill in the art would understand the function
of “packing” data to be communication of data across a network, Oracle’s expert, Dr. Hosking,
relies on various prior art publications which disclose packing of data prior to its transmission
across networks. Declaration of Anthony Hosking, Ph.D, in Support of Oracle’s Response
(Docket No. 71-1), ¶¶ 116-125. However, nothing in those prior art references or Dr. Hosking’s
declaration establish that “packing data” necessarily implicates transporting data across networks.
6
However, there are other examples described in the specification showing implementation
1
2
of the invention in a non-networked, two tier environment. Specifically, the ‘197 Patent 4:16-21
3
(emphasis added) explains:
4
5
the subject invention is capable of accessing objects distributed over
a three tier environment using exactly the same application program
interface (“API”) 700 as the local two-tier environment.
6
See also ‘197 Patent4:49-52 (“One embodiment of the subject invention is implemented using the
7
adapter technology and is therefore capable of being deployed as either a 2-tier or as a 3-tier
8
environment transparently.”).2
Oracle is correct that one claimed benefit from a networked implementation of the
9
invention – as described in the specification – is network efficiency (‘197 Patent at 10:5-12;
11
United States District Court
Northern District of California
10
10:17-24). But Oracle has not shown that the claim language or other parts of the specification
12
require implementation in a networked system. Reducing network latency is a significant benefit
13
of the invention, depending on the embodiment being used, but mentioning that significant benefit
14
did limit the scope of the invention itself. But see Verizon Servs. Corp. v. Vonage Holdings Corp.,
15
503 F.3d 1295, 1308 (Fed. Cir. 2007) (“When a patent thus describes the features of the ‘present
16
invention’ as a whole, this description limits the scope of the invention.” (emphasis added)).
17
Moreover, as described in the Summary, the purpose of the invention was not simply reducing
18
network latency, but also solving the object-relations impedance mismatch; a significantly
19
different problem. ‘197 Patent 3:29-36.
20
Finally, while Oracle argues that the “logical division” (Fig. 1 at 650) separating the first
21
interface/adapter from the second interface/adapter must be a network division, Oracle points to
22
nothing in the claim language or specification that defines a “logical” division. The term “logical”
23
is significantly distinct from the “physical” division proposed by Oracle. Jagadish Resp. Decl. ¶
24
2
25
26
27
28
At the claim construction hearing Oracle asserted that a 2-tier system – references to which in
the specification Thought relies on in support of its construction – can itself be networked but a
“local” system (a term also used in the specification) is a much more limited system. However,
Dr. Hosking did not discuss this issue in his declarations, and Oracle cites to no evidentiary
support for this argument. Dr. Jagadish disagrees: “A person of ordinary skill in the art would
understand that the phrase “the local two-tier environment” is an example in which the invention
is implemented locally on just one computer, and not in a distributed network configuration, such
as the distributed three-tier embodiment also shown above.” Jagadish Resp. Decl. ¶ 21.
7
1
15. To a person of ordinary skill in the art a logical division simply means that software on one
2
side of a logical divide can be programmed independent of the actions of the software on the other
3
side. Id. ¶¶ 15-16. There is nothing in the language of the claims, or in the specification, that
4
requires packed data to be communicated across a network and I will not incorporate that
5
limitation into the definition of packing.3
Therefore, packing is defined as: placing data into a form suitable for communication
6
7
between software components.
8
B. Unpacking
9
Patent/Term
Unpacking: Claims 1,
3, 7, 8 of the ‘197
Patent
10
United States District Court
Northern District of California
11
Oracle’s Proposal
translate/translating
packed data into
another format
Thought’s Proposal
retrieving data from a
packed data structure
12
Both proposals flow from the parties’ definitions of “packing.” While Oracle argues that
13
Thought’s “packed data structure” incorporates a new term that itself must be defined, I find that
14
packed data structure is readily understandable and logically flows from the adopted definition of
15
packing.
As such, unpacking is defined as: retrieving data from a packed data structure.
16
17
C. Interface
For example, as used in Claim 1:
18
19
said first interface extracting the object attributes and the object
name from the object to effect packing of the object attributes and
the object name as data, said first interface unpacking the data to
effect instantiating the object attributed and the object name into a
new object, and a second interface in communication with said first
interface and in communication with at least one data store, said
second interface have a meta data map comprising . . .
20
21
22
23
24
25
26
27
28
3
As noted above, the specification contemplates an embodiment of the invention operating in a
local, two-tier system. The requirement of networked or distributed systems under Oracle’s
proposed definition would exclude the local embodiment, something which is “rarely, if ever,
correct and would require highly persuasive evidentiary support. . . .” Vitronics Corp. v.
Conceptronic, 90 F.3d 1576, 1583 (Fed. Cir. 1996).
8
1
2
3
4
5
6
Patent/Term
Interface: Claims 1,
2, 7 of ‘197 Patent
Oracle’s Proposal
software component
that facilitates
communication
between at least two
distributed software
systems
Thought’s Proposal
part of an adapter
abstraction layer that
facilitates interaction
between software
components
Oracle is attempting to incorporate the limitations that the interface communicates between
7
distributed software systems. Thought responds that there are no justifications to import those
8
limitations into the definition of interface. As discussed above with respect to networks and the
9
logical division, while there is some support for Oracle from the discussion of preferred
embodiments in the specification that the invention is capable of communicating across distributed
11
United States District Court
Northern District of California
10
systems, there is no reason for me to limit the claims to distributed systems. The specification
12
itself discloses that “the subject invention is capable of accessing objects distributed over a three
13
tier environment using exactly the same application program interface (“API”) 700 as the local
14
two-tier environment. This is accomplished by using access “adaptive technology comprising the
15
adapter abstraction layer 600.” ‘197 Patent 4:16-22. The interface contemplated is used in the
16
two tier (local) and three tier (distributed) systems.
17
Oracle also argues that the common understanding of interface is that an interface is
18
usually used to describe a template for interactions between software components and not a
19
component itself. Hosking Decl. ¶¶ 131-132, 134. However, in support of its position that
20
interface should be defined as a “software component,” Oracle argues that Thought specifically
21
defined interface to be the same as an “adapter,” which both parties agree is a software
22
component. Oracle relies on language from claim 2 of the ‘197 Patent where Thought claims “A
23
system according to claim 1 wherein the first interface comprises a first adapter and the second
24
interface comprises a second adapter.” ‘197 Patent 35:23-25.
25
Neither Thought nor its expert addresses this argument, except to point to other language
26
in claims 1 and 7 explaining that the interfaces are part of the adapter abstraction layer. ‘197
27
Patent claim 1 35:7-17 (“an adapter abstraction layer having a first interface . . . and a second
28
interface in communication . . . .”); claim 7 36:66-67 (“an adapter abstraction layer having a first
9
1
interface and a second interface”). At the claim construction hearing, Thought asserted that claim
2
2 simply makes it clear where the “adapters” are located (in the adapter abstraction layer, with the
3
first and second interfaces for the first and second adapters respectively) and that, for example,
4
claim 3 clarifies the purpose of the abstraction adapter layer and its use of adapters. See also
5
Jagadish Resp. Decl. ¶ 47 (“In the case of the ‘197 patent, the first adapter implements the first
6
interface, and the second adapter implements the second interface.”).
I find that while claim 2 could be read as using the terms interface and adapters
8
interchangeably (“wherein said first interface comprises a first adapter and the second interface
9
comprises a second adapter”), it can also be read as identifying where the adapters are located (as
10
argued by Thought) and as adding more functionality to the invention. As the Court is required to
11
United States District Court
Northern District of California
7
give effect to a patent’s use of different terms, unless contrary to the express claim language,
12
Thought’s proposed construction is more appropriate.
13
As Thought’s expert explains, interfaces are commonly understood by persons ordinarily
14
skilled in the art as “part of an adapter abstraction layer that facilitates interaction between
15
software components.” Jagadish Resp. Decl. ¶ 27. This is supported by the specification which
16
explains a distinction between the adapters and interfaces: in the present invention, because the
17
adapters in the adapter abstraction layer “implement the same API [interface] 700, they are
18
interchangeable in the object application 101, providing new and useful functionality. . . .” ‘197
19
Patent at 9:38-42.
20
21
22
23
24
25
26
27
Therefore, interface is defined as: part of an adapter abstraction layer that facilitates
interaction between software components.
D. Adapter
For example, as used in Claim 3:
a first adapter responsive to the object application including an
application bridge . . . said first adapter extracting the object
attributes and the object name . . . said first adapter unpacking the
data to effect instantiating the object attributes and the object name
into a new object; and a second adapter in communication with said
first adapter and in communication with at least one data store, said
second adapter having a meta data map
28
10
1
Patent/Term
Adapter: Claims 3, 8
of ‘197 Patent
2
3
4
5
6
7
8
9
10
United States District Court
Northern District of California
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Oracle’s Proposal
interchangeable
software component
that facilitates
communication
between at least two
distributed software
systems
Thought’s Proposal
runtime
interchangeable part
of an adapter
abstraction layer that
enables incompatible
software components
to work together
The parties agree that the adapters are interchangeable, part of the abstraction layer, and
facilitate communication. Oracle, again, seeks to incorporate the limitation that the components
are communicating between two distributed software systems. For same reasons as discussed
above, I find no support for Oracle’s proposed “two distributed systems” limitation. See also
Hosking Deposition, Vol II, 150:4-22 (acknowledging that invention of ‘197 Patent will function
even if there is no physical separation, but just a logical separation between the first and second
adapters).
Thought’s definition includes that the adapters are interchangeable at “runtime.” There is
significant support for Thought’s position. The specification repeatedly refers to the invention as
incorporating “runtime” adapters. See, e.g., ‘197 Patent at 2:46-49 (“Accordingly, there is a need
to dynamically build the code for accessing the data store at runtime. . . .”); 4: 66-67 (“The subject
invention uses the adapter technology to dynamically load data store access code at runtime.”);
9:34-47 (“The present invention comprises the adapter abstraction layer 600 comprising a set of
runtime adapters (e.g. the first adapter 400, the second adapter 500, the n-th adapter 4XX, 5XX),
which can be transparently interchanged by the object application 101. . . . Because all adapters
implement the same API 700, they are interchangeable in the object application 101, providing
new and useful functionality, even beyond the subject implementation, without requiring object
application 101 modification. Object application 101 runtime flags can instantiate entirely new
adapters which might interface with radically different data store(s) 302 without modification to
object application 101.”); 10:25-33 (“New adapters . . . may be added to the adapter abstraction
layer 600 dynamically, even at runtime, as long as they comply with the API.”)
As Oracle points out, “runtime” is not used in the claim language. Dr. Jagadish explains
11
1
that runtime adapters are “inherent in the adapters of the invention claimed in the ‘197 patent.”
2
Jagadish Resp. Decl. ¶ 41. He describes the importance of runtime changeable adapters and
3
runtime flags that signal their use, in that that “runtime flags as mentioned in the ‘197 patent
4
specification allow different runtime interchangeable adapters to be used without having to
5
recompile the application. In other words, there is no need to reenter the compile time phase in
6
order to effect interchanging the runtime interchangeable adapters of the ‘197 patent.” Id. ¶ 44.
7
He says that “[s]ignificant time and costs are often associated with modifying an application’s
8
source code and subsequently recompiling the application. The ability to use or substitute various
9
runtime interchangeable adapters without having to recompile the application provides greater
flexibility with respect to data sources while reducing the time and cost required to maintain the
11
United States District Court
Northern District of California
10
application.” Id. at 45.4 This comports with the explanation of the invention in the background
12
section “there is a need to dynamically build the code for accessing the data store at runtime, based
13
on the object and its attributes, as opposed to embedding the access code within the object.” ‘197
14
Patent 2:46-49; see also Renishaw PLC v. Marposs Societa’ per Azioni, 158 F.3d 1243, 1250 (Fed.
15
Cir. 1998) (“This explanation also aligns with the summary of the invention as described. The
16
construction that stays true to the claim language and most naturally aligns with the patent’s
17
description of the invention will be, in the end, the correct construction.”). Finally, Dr. Jagadish
18
opines that Oracle’s proposal – defining adapters as simply components that facilitate
19
communication – does not sufficiently distinguish adapters from interfaces. Id. ¶ 46.
20
Therefore, adapter is defined as: runtime interchangeable part of an adapter
21
abstraction layer that enables incompatible software components to work together.
22
E. Adapter abstraction layer
For example, as used in Claim 1:
23
24
25
26
27
28
4
Dr. Hosking does not dispute Dr. Jagadish’s opinion or address it in his reply declaration.
Instead, he focuses on the mention of runtime flags in the specification as used to instantiate and
deploy new adapters, arguing that runtime flags are parameters or indicators “that a program
evaluates once and only once each time the program executes—at the moment the program is
invoked.” Hosking Response Decl. ¶ 150. However, that discussion does not undermine or
address the key issue; whether the adapters are necessarily interchangeable at runtime as described
in the ‘197 Patent.
12
an adapter abstraction layer having a first interface responsive to
the objection application including an application bridge . . .
1
2
As used in Claim 7:
3
communicating a request . . . from the object application to an
adapter abstraction layer having a first interface and a second
interface . . . communicating the request and at least one such new
object and/or status from the adapter abstraction layer to the
application program.
4
5
6
Patent/Term
Adapter abstraction
layer: Claims 1, 7 of
‘197 Patent
7
8
Oracle’s Proposal
software components
with interfaces
provided by adapters
9
10
United States District Court
Northern District of California
11
12
Thought’s Proposal
software for accessing
at least one data store
from at least one
object application,
having interfaces
provided by runtime
interchangeable
adapters
Both sides agree that the interfaces are provided by the adapters and, as discussed above,
13
that adapters are interchangeable. At the claim construction hearing, Thought agreed that Oracle’s
14
proposed definition would be appropriate if the Court adopted Thought’s proposed definition of
15
adapter.
16
17
18
19
20
21
22
23
24
25
26
Therefore, adapter abstraction layer is defined as: software components with
interfaces provided by adapters.
F. Fully synchronized caching system
As used:
A local or distributed computer system comprising fully
synchronized caching system utilizing at least one computer
implemented program that synchronizes the caching of a delegated
data source access management object to relational mapping layer
and the transaction coordination facilities of an application server
Patent/Term
Fully synchronized
caching system:
Claim 7 of ‘956
Patent
Oracle’s Proposal
caching system in
which any query for a
value obtains only the
most recently
committed value
27
28
13
Thought’s Proposal
caching system in
which any changes to
the cache will
automatically be
synchronized with the
primary data source or
record upon
transaction
completion
1
Oracle and its expert spend much time explaining why its proposed construction is
2
3
4
5
6
consistent with the understanding a person of ordinary skill in art had about “weakly” and
“strongly” consistent synchronization, and how “fully” is most likely synonymous with
“strongly.” Hosking Decl. ¶ 168. However, the claim language itself defines the scope and
purpose of the “fully synchronized caching system,” namely that the system:
provides the feature that any changes to the cache will automatically
be synchronized with the primary data source or record upon
transaction completion, including commit or roll-back of changes
for both data sources.
7
8
9
‘956 Patent at 51:6-10, 25-29.
10
This intrinsic explanation of the caching system is more significant than Oracle’s extrinsic
United States District Court
Northern District of California
11
discussion of what a person ordinarily skilled in the art understands about weakly or strongly
12
consistent caching.5 Dr. Hosking argues that adopting this definition of caching as “fully
13
synchronized” is incorrect because it does not give any meaning to the word “fully” and it “merely
14
describes a particular aspect of synchronization, and even then it does so incompletely” because it
15
does not explain what happens when and if the primary source is modified. Hosking Decl. ¶¶ 171-
16
172. Dr. Jagadish agrees that “fully” correlates to a “strongly” consistent caching system, but that
17
the strongly consistent nature of the caching is adequately captured in Thought’s proposal which
18
explains that the cache will “automatically” be synchronized for “any” changes. Jagadish Resp.
19
Decl. ¶ 56. However, Dr. Jagadish persuasively argues that Oracle’s proposed construction “fails
20
to capture two important aspects of the caching system, namely, (1) the caching system includes a
21
primary data source and at least one cache data source, and (2) the cached data in the cache data
22
source have their values synchronized against the corresponding data in the primary data source.”
23
Id. ¶ 57. As Dr. Jagadish points out, Thought’s definition – taken from the claim language itself –
24
explains when the caching occurs (“upon transaction completion”) and that the cache will
25
automatically be synchronized with the primary data source. Id. ¶ 58.
26
27
28
5
As Thought’s expert points out, there are many other types of caching systems in addition to
weakly and strongly consistent, and therefore Dr. Hosking’s analysis is oversimplified. Jagadish
Resp. Decl. ¶ 54.
14
Therefore, fully synchronized caching system is defined as: a caching system in which
1
2
any changes to the cache will automatically be synchronized with the primary data source or
3
record upon transaction completion.
4
II. TERMS WHICH ORACLE ALLEGES ARE INDEFINITE UNDER § 112(B)
5
Oracle argues that five claim terms are impermissibly indefinite and, therefore, invalid.
6
The parties dispute whether Oracle’s indefiniteness challenge is appropriate resolved on claim
7
construction (as opposed to on a motion for summary judgment) and what the burden is on Oracle
8
to demonstrate indefiniteness at this juncture.
9
A. Legal Standard
Indefiniteness is a part of 35 U.S.C. § 112, therefore, the mandates of 35 U.S.C. § 282
10
United States District Court
Northern District of California
11
apply. See 35 U.S.C. § 282(b)(2). Under 35 U.S.C. § 282(a), the burden of establishing invalidity
12
for indefiniteness falls squarely on Oracle, the party asserting invalidity. Microsoft Corp. v. i4i
13
Ltd. P’ship, 131 S. Ct. 2238, 2242, 2011 U.S. LEXIS 4376, * 7 (2011) (invalidity defenses must
14
be proved by “clear and convincing evidence”); see also Nautilus, Inc. v. Biosig Instruments, Inc.,
15
134 S. Ct. 2120, 2014 U.S. LEXIS 3818, * 24 fn.10 (June 2, 2014).6 Oracle’s showing, however,
16
cannot be defeated by Thought raising a genuine issue of material fact as to indefiniteness (and
17
thus validity). Instead, because indefiniteness is a question of law for the court to determine, I
18
must resolve any disputed issue of material fact based on the evidence before me.7
19
6
20
21
22
23
24
25
26
27
28
Oracle contends that it need not prove indefiniteness, which is purely a question of law, by clear
and convincing evidence. See, e.g., Sur-Reply at 1, n.1 (and cases cited therein). However, the
Supreme Court’s citation to Microsoft Corp. v. i4i’s holding that “invalidity” defenses must be
shown by clear and convincing evidence in its recent decision addressing indefiniteness supports
this Court’s conclusion that even though indefiniteness is a question of law, the clear and
convincing standard still applies to any facts Oracle contends support that determination. See
Nautilus, Inc., 2014 U.S. LEXIS 3818 at * 24 fn.10.
7
Thought argues that a finding that claims are invalid for indefiniteness would effectively grant
summary judgment in favor of Oracle. Therefore, Thought contends that its expert can raise
material issues of fact precluding summary judgment. Thought’s Claim Construction Brief at 3031. However, the cases Thought relies on to argue that material issues of fact can preclude
summary judgment on indefiniteness do not support its contention. In Rembrandt Data Techs., LP
v. AOL, LLC, 641 F.3d 1331, 1342 (Fed. Cir. 2011), the Federal Circuit simply noted that the
district court failed to address whether plaintiff’s expert raised a genuine issue of fact about the
knowledge of skilled artisans, not whether the district court was precluded from resolving a
dispute of fact. Similarly in Aristocrat Techs. Austl. Pty Ltd. v. Multimedia Games, Inc., 266 Fed.
Appx. 942, 945, 2008 U.S. App. LEXIS 3774, 7 (Fed. Cir. 2008), the case was remanded so that
the district court could resolve the material issues of fact regarding whether one skilled in the art
15
1
As the Supreme Court recently explained “a patent is invalid for indefiniteness if its
claims, read in light of the specification delineating the patent, and the prosecution history, fail to
3
inform, with reasonable certainty, those skilled in the art about the scope of the invention.”
4
Nautilus, Inc. v. Biosig Instruments, Inc., 2014 U.S. LEXIS 3818, * 6. To evaluate an
5
indefiniteness claim I must: (i) evaluate the claim from the perspective of someone skilled in the
6
relevant art; (ii) read the claim in light of the patent’s specification and prosecution history; and
7
(iii) measure definiteness from the viewpoint of a person skilled in the art at the time the patent
8
was filed. Id., 2014 U.S. LEXIS 3818 at *17-18. The claim language must be “precise enough to
9
afford clear notice of what is claimed, thereby “‘appris[ing] the public of what is still open to
10
them.’” Id. (quoting Markman v. Westview Instruments, 517 U.S. 370, 373 (1996) (internal
11
United States District Court
Northern District of California
2
quotation omitted); see also Carnegie Steel Co. v. Cambria Iron Co., 185 U. S. 403, 437 (1902)
12
(“any description which is sufficient to apprise [steel manufacturers] in the language of the art of
13
the definite feature of the invention, and to serve as a warning to others of what the patent claims
14
as a monopoly, is sufficiently definite to sustain the patent”).
15
B. Terms At Issue
16
1. Extensive Knowledge
17
For example, as used in Claim1:
18
19
20
21
22
23
24
the mapping system portion provides an interface . . without
requiring the user to have extensive knowledge of a particular
relational database as a source of the data, or extensive knowledge
about how to directly access that relational database.
Patent/Term
Oracle’s Argument
Extensive
knowledge: Claims 1,
3, 11 of ‘956 Patent
Indefinite under
112(b)
Thought’s
Construction
knowledge of the
schema and query
language sufficient to
save or retrieve data
Oracle argues “extensive knowledge” is indefinite because it is not and cannot be
25
26
27
28
would identify structure in the specification. Instead, because claim indefiniteness is a question of
law, and one on which the court may refer to expert extrinsic evidence, the court can and must
resolve factual disputes. See Exxon Research & Eng'g Co. v. United States, 265 F.3d 1371, 1376
(Fed. Cir. 2001).
16
1
accurately defined by a person ordinarily skilled in the art. Thought contends that “extensive
2
knowledge” is not indefinite because “because the environment dictates the necessary preciseness
3
of the terms.” Power-One, Inc. v. Artesyn Techs., Inc., 599 F.3d 1343, 1348 (Fed. Cir. 2010)
4
(rejecting claim that “near” and “adapted to” are indefinite because of clarity provided by
5
remaining claim language). Here, Thought contends that “extensive knowledge” is clarified by
6
the language following the term: “extensive knowledge of a particular relational database as a
7
source of the data, or extensive knowledge about how to directly access that relational database.”
8
‘956 Patent 49:52-54. It is also clarified by the description of an embodiment which explains its
9
purpose is to manage database access code “requiring only an understanding of the data store 302
and the data store schema 300, instead of requiring object programming knowledge within the
11
United States District Court
Northern District of California
10
modem working environment.” ‘956 Patent 11:30-35; see also id., 10:32-35 (allows engineers to
12
“concentrate on applications code without concern for or need to learn SQL or any other native
13
access code 205 of the data store.”); id. 26:50-54 (“translation system . . . provides an entire set of
14
tools to simplify and improve an operators ability to manipulate maps without requiring a high
15
level of programming knowledge or database query language familiarity. . . .”).
16
Dr. Jagadish explains that in order to use a database, after gaining access through a
17
password or other code, a user would have to know the schema and query language of the database
18
in order to edit and retrieve data. Jagadish Resp. Decl. ¶ 66. He declares that “person of ordinary
19
skill in the art would understand the term ‘extensive knowledge’” of a particular relational
20
database or how to directly access that relational database, to mean “‘knowledge of the schema
21
and query language sufficient to save or retrieve data’ in the context of the ‘956 patent.” Id. ¶ 61.
22
Oracle’s expert, Dr. Hosking disputes that assertion, arguing instead that knowledge of “access”
23
could also mean the technicalities of figuring out a database location on the network or any
24
credentials necessary to access the database. Hosking Decl. ¶ 189. However, when viewed in the
25
context of the claim language and specification, Dr. Jagadish’s position is more persuasive.
26
I find that “extensive knowledge” is not indefinite when considered with the remaining
27
claim language and the descriptions of the invention/embodiments in the specification. When read
28
in light of these, a person ordinarily skilled in the art would understand that extensive knowledge
17
1
means that the user can perform certain tasks – as explained in the patent, including editing or
2
creating tables, fields, or maps – without requiring the user to have extensive knowledge of a
3
relational database or how to directly access that database. Jagadish Decl. ¶ 64.
The case on which Oracle relies is inapposite. In Datamize, LLC v. Plumtree Software,
4
Inc., 417 F.3d 1342, 1345 (Fed. Cir. 2005), the court concluded that claim language regarding
6
displays of electronic information on kiosks “in conformity with a desired uniform and
7
aesthetically pleasing look and feel for said interface screens on all kiosks of said kiosk system,”
8
was indefinite. The court found that “Datamize has offered no objective definition identifying a
9
standard for determining when an interface screen is ‘aesthetically pleasing.’ In the absence of a
10
workable objective standard, ‘aesthetically pleasing’ does not just include a subjective element, it
11
United States District Court
Northern District of California
5
is completely dependent on a person’s subjective opinion.” Id. at 1350. Because “[t]he scope of
12
claim language cannot depend solely on the unrestrained, subjective opinion of a particular
13
individual purportedly practicing the invention,” the court found the term “aesthetically pleasing”
14
indefinite. Id. Here, however, the specification and description of the invention give persons
15
skilled in the art an objective standard to determine the knowledge required to practice the
16
invention. Unlike in Datamize, the scope of the language does not depend on the subjective
17
opinion of the person practicing the invention and the patent is not indefinite.8
Moreover, while “extensive” knowledge is a word of degree, words of degree are not
18
19
indefinite where the “environment,” meaning the remaining claim language and specification,
20
“dictates the necessary preciseness of the terms.” Power-One, Inc., 599 F.3d at 1348; see also
21
Interval Licensing LLC v. AOL, Inc., 2014 U.S. App. LEXIS 17459 (Fed. Cir. Sept. 10, 2014)
22
(“Claim language employing terms of degree has long been found definite where it provided
23
24
25
26
27
28
8
This case is also unlike Interval Licensing LLC v. AOL, Inc.,2014 U.S. App. LEXIS 17459
(Fed. Cir. Sept. 10, 2014), where the Federal Circuit held that the phrase “unobtrusive manner”
was highly subjective and provided little guidance to one skilled in the art because the claim
language lacked “objective boundaries.” Id. at *15-16. Here, the context of the claim language
and the specification provide one skilled in the art with clarity on what is covered. But see id. at
*19 (“we find that the specification is at best muddled, leaving one unsure of whether the
‘unobtrusive manner’ phrase has temporal dimensions as well as spatial dimensions. The hazy
relationship between the claims and the written description fails to provide the clarity that the
subjective claim language needs.”).
18
1
enough certainty to one of skill in the art when read in the context of the invention.”); Seattle Box
2
Co. v. Indus. Crating & Packing, Inc., 731 F.2d 818, 826 (Fed. Cir. 1984) (“when a word of
3
degree is used the district court must determine whether the patent’s specification provides some
4
standard for measuring that degree.”). That is exactly what the specification does in this case; it
5
indicates that a user need not have extensive knowledge of the structure and contents of a
6
relational database that would otherwise be necessary to access and change the information in that
7
relational database.
8
However, to add additional clarity for purposes of claim construction, extensive
9
knowledge is further defined as: knowledge of the schema and query language sufficient to
10
save or retrieve data.
United States District Court
Northern District of California
11
2. To provide . . . to a system user who is
12
As used in Claim 1 of the ‘956 Patent:
13
14
15
16
17
18
19
the mapping system portion is designed to provide to a system user
who is accessing, creating or updating maps, or accessing objects on
a system to make data changes related to a particular object and to . .
.
Patent/Term
Oracle’s Argument
To provide . . . to a
system user who is:
Claim 11 of ‘730
Patent; Claim 1 of
‘956 Patent
Indefinite under
112(b)
20
21
Thought’s
Construction
to provide a system
user the ability to
make data changes
related to a particular
object as either local
or global changes on
the computer system
Oracle argues that the “thing” being provided to a system user is missing and, therefore,
22
indefinite. Oracle claims that Thought’s definition is an impermissible attempt to correct an
23
incomplete phrase or drafting error in patent. As the Federal Circuit has explained, a district court
24
can act to correct an error “in a patent by interpretation of the patent where no certificate of
25
correction has been issued,” but can only do so “if (1) the correction is not subject to reasonable
26
debate based on consideration of the claim language and the specification and (2) the prosecution
27
history does not suggest a different interpretation of the claims.” Novo Indus., L.P. v. Micro
28
19
1
Molds Corp., 350 F.3d 1348, 1354 (Fed. Cir. 2003); see also Hoffer v. Microsoft Corp., 405 F.3d
2
1326, 1331 (Fed. Cir. 2005) (where PTO erred in failing to change reference to a specific
3
antecedent claim number, court held that where “the error was apparent from the face of the
4
patent, and that view is not contradicted by the prosecution history.”).9 Oracle asserts that the
5
correction Thought is suggesting is subject to debate, because in addition to “an ability” as
6
suggested by Thought, “the claims of these patents call for the providing of interfaces, software
7
logic, features, and programming applications, among other things. Each of these terms, as well
8
as others, would make sense in the context of ’956 claim 1 or ’730 claim 11.” Hosking Decl. ¶
9
192.
Thought responds that it is not seeking to correct an error, but to interpret the claim
10
United States District Court
Northern District of California
11
language consistently with the remaining claims and the specification by clarifying that what is
12
provided to the system user is the ability to do the items listed in the claim language. ‘956 Patent
13
49:43-45 (“to make data changes related to a particular object and to promulgate the changes to
14
that object”); ‘730 Patent 53:16-18(“to make data changes related to a particular object and to
15
promulgate the changes to that object”); see also Jagadish Resp. Decl. ¶¶ 77-78 (“if the claim
16
limitation is considered based on the specifications of the ‘956 and ‘730 patents, then it is clear
17
that the claim limitation already recites what is being provided to the system user, namely the
18
ability or capability ‘to make data changes related to a particular object and to promulgate the
19
changes to that object as either local or global changes on the computer system.’ . . . It is only
20
logical that the claim limitation would recite this capability of the mapping system as what is
21
being provided to the system user, and a person of ordinary skill in the art would have no
22
difficulty understanding the meaning of the claim limitation.”).
When the claim language is read in full, I agree with Thought that the claim is conferring
23
24
“the ability” of a user to do the things listed in the claim; make data changes related to a particular
25
object, etc. This is not, as Oracle argues, a correction of an “error.” It is instead a construction
26
clarifying the awkward language of the claim and a construction that flows directly from the text
27
28
9
Any other change must be sought from the Patent Office. See 35 U.S.C. §§ 254-55.
20
1
2
of the claims themselves.
Therefore, to provide . . . to a system user who is defined as: to provide a system user
3
the ability to make data changes related to a particular object as either local or global
4
changes on the computer system.
5
3. Object
6
Class is specifically defined in the ‘600 and ‘862 Patents as:
7
8
9
10
United States District Court
Northern District of California
11
12
“Object” as used in the context of this document is a general term
referring to a logic unit in a computer application or a computer
software program. . . . The term “object” may be used
interchangeably with the term “class” as a template or as an instance
depending on the context.
Class is specifically defined in the ‘730 Patent as:
An organized set of encapsulated programming code designed to act
on itself at the request of some external system, which system may
pass in some additional information to the object in that request
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Patent/Term
Oracle’s Argument
Object: Claims 1, 6,
9, 13, 14, 17 of ‘600
Patent; Claims 1, 10,
14 of ‘862 Patent
Adopt express
definitions of terms in
patents; but those
definitions are
indefinite under
112(b)
An organized set of
encapsulated
programming code
designed to act on
itself at the request of
some external system,
which system may
pass in some
additional information
to the object in that
request
Object: Claims 1-7,
10-14, 16 of ‘730
Patent
Thought’s
Construction
Instance of a class
Instance of a class
a. ‘600 and ‘862 Patents
Oracle argues the express definition of object provided in ‘600 and ‘862 Patents should be
27
adopted. The Patents define “object” as follows: “‘Object’ as used in the context of this
28
document is a general term referring to a logic unit in a computer application or a computer
21
1
software program. . . . The term ‘object’ may be used interchangeably with the term ‘class’ as a
2
template or as an instance depending on the context.” ‘600 Patent 4:1-7; see also ‘862 Patent
3
3:63-4:2. However, Oracle argues that this definition is itself ambiguous – because it conflates the
4
normally distinct concepts of “object” and “class” – and therefore, the term is indefinite in each
5
case. See, e.g., Hosking Decl. ¶ 197.
Thought’s proposed construction is narrower than the broad definition adopted in the
6
7
patent specifications, because the specification-definition allows “object” to be used as both a
8
“class” and instance of a class depending on the context of use. Because Thought has acted as its
9
own lexicographer, I adopt Thought’s own definition. Phillips v. AWH Corp., 415 F.3d 1303,
1316 (Fed. Cir. 2005) (“the specification may reveal a special definition given to a claim term by
11
United States District Court
Northern District of California
10
the patentee that differs from the meaning it would otherwise possess. In such cases, the inventor’s
12
lexicography governs.”). Therefore, for the ‘600 and ‘862 Patents, object is defined as: a general
13
term referring to a logic unit in a computer application or a computer software program,
14
that may be used interchangeably with the term “class” as a template or as an instance
15
depending on the context.
I disagree with Oracle’s argument that the definition is inherently ambiguous. Both the
16
17
definitions in the ‘600 and ‘862 Patents expressly rely on the context of each use of object in the
18
Patents to inform a person skilled in the art whether in that case object is being used as an instance
19
or as a template. Oracle points to no examples from the claim language or specification where the
20
context does not provide adequate precision for a skilled person to be able to understand how
21
object is being used.10 For example, in Claim 1 of the ‘600 Patent, the term “object” is further
22
modified by “data object” or “object graphs model.” The context of those uses of “object” tell a
23
24
25
26
27
28
10
Oracle’s expert notes that in “many object-oriented languages, classes are themselves objects.”
Hosking Decl. ¶ 198. Dr. Hosking explains that, nevertheless, the terms are not synonymous, but
the use depends upon the context. “[A] particular class, such as the Filing class, is itself an
instance of another class, typically called Class. The class Class is also an instance of itself. This
may sound confusing, but is not unusual.” Id. Context, therefore, is key to determining the
appropriate use of object versus class. While Dr. Hosking asserts that in his opinion “it is asking
too much” of a person or ordinary skill in the art to use context to determine whether “object”
means a class or an object, id. ¶ 203, he points to no examples in the Patents showing why that is
so.
22
1
person skilled in the art what they need to know about the particular object. In the absence of
2
specific examples where Oracle claims the context is insufficient, Oracle’s indefiniteness
3
argument is rejected.
4
5
b. ‘730 Patent
Oracle argues the explicit definition used in the ‘730 Patent at 17:60-65 should be adopted,
6
and does not challenge that definition as indefinite. Oracle Response Br. at 23. In Reply,
7
Thought does not object to that definition. Reply at 16:13-14.
8
9
10
Therefore, for the ‘730 Patent, object is construed as: an organized set of encapsulated
programming code designed to act on itself at the request of some external system, which
system may pass in some additional information to the object in that request.
United States District Court
Northern District of California
11
4. Model
12
“Model” is also expressly defined in the patents as follows:
13
14
15
16
17
18
19
20
21
22
“Application model” or simply “model” are essentially
interchangeable terms employed herein as abstractions to logically
convey a collective description or other representation for . . . . It is
important to understand the context . . . for the ease of
communication abstractions of the model, possible implementations
of the model and instances of the model are all referred to generally
as “application model” or “model.” From the context of its use the
term will be clear.
Patent/Term
Oracle’s Argument
Model: Claims 1, 7,
9, 10 of the ‘600
Patent; Claims 1, 8,
10, 11 of the ‘862
Patent
The patents expressly
define the term; but
those definitions are
indefinite under
112(b)
Thought’s
Construction
logical or abstract
representation or
description
Oracle argues that the patents disavow the normal use of the term, and instead adopt an
23
idiosyncratic one that, like object, depends upon its context. See, e.g., ‘600 Patent 5:17-26
24
(“Ordinarily computer engineers refer to the model as an abstraction rather than a specific
25
possibility or instance of the model as applied. However, in this document for the ease of
26
communication abstractions of the model, possible implementations of the model and instances of
27
the model are all referred to generally as application model or model. From the context of its use
28
the term will be clear.”). Oracle contends that the definition of model as used in the patents is
23
1
insolubly ambiguous and indefinite because the patents provide no guidance on what the context
2
should be or how it is applied to each use of model in the terms (abstractions, implementations,
3
and instances). However, Dr. Jagadish explains that the context of the use of model adequately
4
informs a person skilled in the art about the particular meaning of model. See Jagadish Resp.
5
Decl. ¶¶ 69, 72 (“The ‘600 and ‘862 patents describe various types of models by adding specific
6
qualifiers to the word “model,” such as object model, object graph model, complex data object
7
graph model, CDOG model, and navigation model. The qualifiers make it clear what specific type
8
of model it is in each instance.”). Oracle’s expert does not dispute this or point to any actual uses
9
of “model” in the claims or specifications that do not provide adequate context.
10
Thought’s proposed definition is based on, but is not a verbatim adoption of, the express
United States District Court
Northern District of California
11
definition provided in the Claims. Thought proposes that model be defined as a “logical or
12
abstract representation or description,” where the Patents define “‘Application model’ or ‘model’
13
are essentially interchangeable terms employed herein as abstractions to logically convey a
14
collective description or other representation for a set of complex data objects and a corresponding
15
description or other representation of their relationships.” ‘600 Patent 5:16-22. Other than arguing
16
that the Patents’ use of “model” is indefinite, Oracle does not dispute or challenge the proposed,
17
narrower definition suggested by Thought.
18
I find that model should be defined as: logical or abstract representation or description.
19
I reject Oracle’s indefiniteness argument because a person of ordinary skill in the art would know
20
from the context how model is being used in each instance.
21
5. Changes to a CDO or its relationship of a CDOG model
22
This term is used twice, as exemplified in Claim 1:
23
24
25
b) a feature providing an interface . . . or providing an interface for
an editable input or source, such as a file, that can be modified to
implement changes to a CDO or its relationships of a CDOG
model.
Patent/Term
Oracle’s Argument
Changes to a CDO
or its relationship of
a CDOG model:
Indefinite under
112(b)
26
27
28
24
Thought’s
Construction
changes to (1) a CDO,
or (2) relationships of
the CDO, the CDO
1
Claims 1, 6 of ‘481
Patent
and its relationships
being part of a CDOG
model
2
3
4
5
6
7
8
9
Oracle argues first that Thought’s proposed construction is illogical because, a “CDOG is
‘an abstraction to logically represent a set of complex data objects and a set of their corresponding
relationships’” (‘481 Patent 5:5-8), and a model is “a representation of relationships among
classes.” When these two terms are used together, “the plausible understanding is that the higher
level of abstraction applies, and that a ‘CDOG model’ is a representation of relationships among
classes, the instances of which may be related in a CDOG.” Hosking Decl., ¶ 211. As such,
according to Dr. Hosking and contrary to Thought’s proposal, “neither a CDO nor its relationships
10
are part of a CDOG model, because a CDOG model represents classes and their relationships and
United States District Court
Northern District of California
11
not objects and their relationships.” Id. ¶ 212.
12
Oracle also argues that something is missing from the claim language itself (presumably
13
because of a mistake by the patent drafter) and that Thought’s proposed definition is an
14
impermissible attempt to make a correction to otherwise unintelligible language. See, e.g., Novo
15
Indus., L.P. v. Micro Molds Corp., 350 F.3d 1348, 1354 (Fed. Cir. 2003). Oracle contends that
16
Thought’s attempted correction is impermissible because there is more than one way the language
17
could reasonably be corrected. Dr. Hosking explains, this term could be rewritten as either (i)
18
“changes to a CDO, or its relationships, or a CDOG model” or (ii) “changes to a CDO or its
19
relationships to a CDOG model.” Hosking Decl. ¶¶ 214-15. Because there are different options
20
as to how to redefine the language of the claim, and those different options have a different scope
21
and different implications, Thought can only seek a clarification from the PTO to correct the error
22
with the language.
23
24
25
26
27
As to the first point, Thought argues that Dr. Hosking ignores that “model” is explicitly
defined as not only an “abstraction,” but also as an implementation and instance of the model,
depending on the context. ‘481 Patent, 5:29-33. As explained in the summary of the invention,
“An object of the present invention is to provide a system for creating, maintaining, accessing,
navigating and persisting complex data objects as a complex data object graph (CDOG) model.”
28
25
1
‘481 Patent 5:53-56. Therefore, as used in this patent, model is not simply a representation of
2
classes and their relationships as Dr. Hosking contends but can also encompass “a representation
3
of objects and their relationships,” Jagadish Resp. Decl. ¶ 81.
4
As to the second, Thought argues that its proposal is not an attempt to correct an error but
5
instead a construction that clarifies – based on the express definitions of CDO, CDOG and model
6
in the specification – what is otherwise awkward language. Id. ¶ 82.
7
Looking to the claim language and specification, I agree with Thought that the phrase
8
“changes to a CDO or its relationship of a CDOG model” is not indefinite. Instead, reviewing
9
how the phrases CDO, CDOG and CDOG model are actually used in the specification, Thought’s
clarifying construction is appropriate. Therefore, changes to a CDO or its relationship of a
11
United States District Court
Northern District of California
10
CDOG model is defined as changes to (1) a CDO, or (2) relationships of the CDO, the CDO
12
and its relationships being part of a CDOG model.
13
14
15
16
17
6. The information of (a)
As used in Claim 12:
a) reading a source programming object logic model or a database definition file in a format
selected from the group consisting of a UML data file, a XMI data file, and a XML file;
and
b) converting the information of (a) into a target member selected from the group consisting
of a database definition XML file, a database mapping definition file, and a CDOG
definition file.
18
19
20
21
Patent/Term
Oracle’s Argument
The information of
(a): Claim 12 of the
‘481 Patent
Indefinite under
112(b)
22
23
24
25
26
27
28
Thought’s
Construction
information read from
a source programming
object logic model or
a database definition
file in a format
selected from the
group consisting of a
UML data file, a
XML data file, and a
XML file ((a) refers to
limitation 12-(a))
Oracle argues that this phrase is indefinite, relying on the fact that in a prior claim chart,
Thought itself identified the “information of (a)” as the information listed in claim 7(a). Hosking
26
1
Decl. ¶ 220. Dr. Hosking says reliance on 7(a) to provide the “information” for 12(b) makes sense
2
because claim 12 depends from claim 7 and claim 7(a) explicitly cites “information” (e.g.,
3
information sufficient to construct a CDOG model) whereas 12(a) does not expressly cite
4
information (e.g., reading a source programming object logic model or database definition file in
5
various formats). Hosking Decl. ¶¶ 218, 221. But he argues because 12(a) cites “implicit”
6
information, and 7(a) also has 7(a)(II) and 7(a)(III) subparts that likewise contain “implicit
7
information,” what the 12(b) claim is actually referring to “as the information of (a)” is insolubly
8
ambiguous. Id. ¶¶ 217, 222.
9
Thought responds that its prior reliance on 7(a) as the source of 12(b)’s “information of
(a)” was a typographical error in its prior claim chart. Thought Reply Br. at 19, n.72. When
11
United States District Court
Northern District of California
10
arguing this issue on the merits, Thought asserts it has been consistent that “the information of (a)”
12
refers to the information in 12(a), which immediately precedes the language in 12(b), which is
13
logical and supported by the specification.
14
Reviewing the claim language and specification, I agree with Thought. Not only does
15
12(a) immediately precede 12(b), but the description of the invention in the specification supports
16
that construction. See ‘481 Patent 6:54-63 (“A further object of the present invention is to a
17
software tool capable of reading a source programming object logic model or a database file in a
18
format selected from the group consisting of a UML data file, m [sic] a XMI data file, and a XML
19
file and converting the information into a target member selected from the group consisting of a
20
database definition XML file, a database mapping definition file, and a CDOG definition file. In a
21
preferred object, the software can automatically generate a persistence layer that corresponds to
22
the object model information of the source file.”); see also ‘481 Patent 9:16-29. As Dr. Jagadish
23
explains, this section of the specification tracks the language of 12(a) and (b) but does not refer to
24
any of the explicit or implicit information recited in Claim 7 that Dr. Hosking relies on. Jagadish
25
Resp. Decl. ¶ 86.
26
Therefore, the information of (a) is defined as: information read from a source
27
programming object logic model or a database definition file in a format selected from the
28
group consisting of a UML data file, a XML data file, and a XML file ((a) refers to limitation
27
1
2
3
12-(a)).
7. Wherein repository maps are organized according to at least one navigation
model or schema
As used:
4
5
6
7
(b) the computer system comprises a mapping system that includes
logic for accessing each schema corresponding to a different data
source accessible to the mapping system, . . . wherein respository
maps are organized according to at least one navigational model
or schema, or the mapping system provides . . . .
8
Patent/Term
Oracle’s Argument
9
Wherein repository
maps are organized
according to at least
one navigation
model or schema:
Claim 1 of the ‘730
Patent
Indefinite under
112(b)
10
United States District Court
Northern District of California
11
12
13
14
Thought’s
Construction
[construed according
to construction of
constituent terms and
common and ordinary
meanings]
Oracle argues that because “repository maps” and “navigational models” or “navigations
15
schemas” play no defined role in furthering the purpose of the claim or the invention, and because
16
“repository maps has no generally understood meaning in the art,” the terms are indefinite.
17
Hosking Decl. ¶¶ 231, 233, 234. Oracle also argues that repository maps and a navigational model
18
are distinct, but the claim language fails to explain how they work together. As Dr. Hosking
19
states, even accepting the definitions of the discrete terms used in other parts of the claim language
20
21
22
23
24
25
26
and specification, “it is still the case that the patent gives no guidance to one of ordinary skill in
the art as to how to organize one thing (in this case, ‘repository maps’) according to a model of
another thing (‘in this case object relationships as represented in a “navigational model or
schema”’).” Hosking Decl. ¶ 237.
Thought responds that repository maps are maps in the “mapping repository” which is part
of the “mapping system,” and the specification describes exactly how repository maps can be
imported into or exported from the mapping repository. See Jagadish Resp. Decl. ¶ 88 (“That is,
27
they are the rules governing how data are mapped between two or more data sources. Without
28
28
1
these maps in the mapping repository (i.e., the repository maps), the mapping system would not be
2
able to perform its functions.”); see also ‘730 Patent at Figure 2 (illustrating use of repository
3
maps). Dr. Jagadish explains that “mapping” is “a term of art and it means the identification of
4
correspondences between data items in two different representations.” Id. ¶ 89. He opines that
5
“term ‘repository maps,’ when analyzed in the context of Claim 1 and the specification of the ‘730
6
patent, obviously refers to the maps in a mapping repository, which in turn is part of the mapping
7
system. The maps in the mapping repository, which are referred to as ‘repository maps’ at times,
8
are essentially rules that govern how data from one data source should be correlated with and/or
9
translated into data from another data source. The specification of the ‘730 patent describes in
detail how the repository maps can be imported into or exported from the mapping repository as
11
United States District Court
Northern District of California
10
well as how the repository maps are managed.” Id. ¶ 90; see also 18:31-41 (defining
12
“repository”).
13
Given the descriptions of repository maps (as well as the definition of repository and the
14
well-known meaning of mapping), I disagree with Oracle and find that the purpose and role of
15
repository maps are adequately defined and explained in the specification. See, e.g., ‘481 Patent
16
4:9-10; 4:25-36; 19:5-25.
17
With respect to “navigational model or schema,” Thought notes that model has been
18
previously defined and schema is readily understood and not disputed. For the particular use of
19
“navigations model,” Thought relies on the definitions of navigational model found in the related
20
‘481 and ‘600 patents. ‘481 patent at 5:41-45; ‘600 patent at 5:35-39 (“‘Navigation model’” as
21
used herein is a special type of application model that is applied specifically to a description (or
22
other representation) of how objects can relate to each other and what might be the expected
23
behavior when a CDOG is navigated for a certain purpose.”). Dr. Jagadish declares that in light of
24
these definitions, “organizing the repository maps according to a navigation model or schema”
25
means that the “repository maps are organized according to how objects are related to each other
26
and what may be expected when navigating a complex data object graph. Since a user often
27
accesses objects based on their relationships as specified in a navigation model or schema,
28
organizing the repository maps according to the navigation model or schema may help improve
29
1
the performance of the mapping system.” Id. ¶ 94. Applying the definition of “navigation model”
2
as used in the ‘481 and ‘600 patent (in absence of any argument by Oracle as to why those
3
definitions would not apply similarly in the context of the ‘730 Patent), I conclude that organizing
4
repository maps according to a navigational model or schema is adequately defined for a person
5
skilled in the art and not indefinite.
6
Therefore, wherein repository maps are organized according to at least one navigation
7
model or schema is defined as its component part, using the definitions available in the ‘730,
8
‘481 and ‘600 Patents.
9
III. TERMS ORACLE ALLEGES ARE MEANS-PLUS-FUNCTION AND INDEFINITE
FOR FAILING TO DISCLOSE CORRESPONDING STRUCTURE
10
Oracle contends that six terms are indefinite under 35 U.S.C. § 112(f) as means-plus11
United States District Court
Northern District of California
function claims that lack disclosure of an adequate structure in the patent specifications. I must
12
first determine whether each disputed term is appropriately considered means-plus-function and, if
13
so, whether the required structure is disclosed in the relevant specifications.
14
15
A. Legal Standard
As with the § 112(b) challenge discussed above, Oracle bears burden of demonstrating that
16
the claims are means-plus-function and lack the required structure by a preponderance of the
17
evidence. Apple Inc. v. Motorola, Inc., 757 F.3d 1286, 1298 (Fed. Cir. 2014). Whether claim
18
language invokes Section 112(f) is a question of law. Id. at 1296. § 112(f) provides:
19
20
21
22
Element in claim for a combination. An element in a claim for a
combination may be expressed as a means or step for performing a
specified function without the recital of structure, material, or acts in
support thereof, and such claim shall be construed to cover the
corresponding structure, material, or acts described in the
specification and equivalents thereof.
23
“The overall means-plus-function analysis is a two-step process. . . . In the first step, we must
24
determine if the claim limitation is drafted in means-plus-function format. As part of this step, we
25
must construe the claim limitation to decide if it connotes ‘sufficiently definite structure’ to a
26
person of ordinary skill in the art, which requires us to consider the specification (among other
27
evidence). In the second step, if the limitation is in means-plus-function format, we must
28
specifically review the specification for ‘corresponding structure.’ Thus, while these two
30
1
‘structure’ inquiries are inherently related, they are distinct.” Id. at 1296; see also id. at 1296-97
2
(noting that prosecution history and relevant extrinsic evidence can inform the first step).
3
Importantly, “when a claim limitation lacks the term ‘means,’ it creates a rebuttable
4
presumption that Section 112[f] does not apply.” Id. at 1297. The presumption is “strong” and
5
“not readily overcome.” Id. However, the presumption may be overcome if the claim fails to
6
recite “sufficiently definite structure” or merely recites a “function without reciting sufficient
7
structure for performing that function.” Id.
8
As the Federal Circuit recently explained, “‘[s]tructure’ to a person of ordinary skill in the
art of computer-implemented inventions may differ from more traditional, mechanical structure.
10
For example, looking for traditional ‘physical structure’ in a computer software claim is fruitless
11
United States District Court
Northern District of California
9
because software does not contain physical structures. Indeed, the typical physical structure that
12
implements software, a computer, cannot be relied upon to provide sufficiently definite structure
13
for a software claim lacking ‘means.’ Rather, to one of skill in the art, the ‘structure’ of computer
14
software is understood through, for example, an outline of an algorithm, a flowchart, or a specific
15
set of instructions or rules.” Apple Inc. v. Motorola, Inc., at 1298.
16
Moreover, “[a] limitation has sufficient structure when it recites a claim term with a
17
structural definition that is either provided in the specification or generally known in the art.” Id.
18
at 1299. “Structure may also be provided by describing the claim limitation’s operation, such as
19
its input, output, or connections. The limitation’s operation is more than just its function; it is how
20
the function is achieved in the context of the invention.” Id. Therefore, “if a limitation recites a
21
term with a known structural meaning, or recites either a known or generic term with a sufficient
22
description of its operation, the presumption against means-plus-function claiming remains
23
intact.” Id. at 1300. However, “if the claim merely recites a generic nonce word and the
24
remaining claim language, specification, prosecution history, and relevant external evidence
25
provide no further structural description to a person of ordinary skill in the art, then the
26
presumption against means-plus-function claiming is rebutted.” Id.
27
28
B. Challenged Terms
1. Computer logic capable of persisting an indicated object or set of objects
31
a.
1
Is this means-plus-function language?
As explained in Apple v. Motorola, the question is if this term has a known structural
2
meaning or whether the claim language contains a sufficient description of its operation that
3
person skilled in the art would know what to do. Here, “computer logic” is not a known structural
4
meaning; it is simply a process. The claim language does not explain how the logic works, but
5
simply its function: to persist objects.
6
This term is unlike the term reviewed in Apple Inc. v. Motorola, Inc, where the Federal
7
Circuit reversed the trial court’s conclusion that the term “heuristics” was a means-plus-function
8
description without disclosure of sufficient structure. There, the patent claimed a device with
9
“programs” including:
10
instructions for applying one or more heuristics to the one or more
finger contacts to determine a command for the device; and
...
wherein the one or more heuristics comprise:
United States District Court
Northern District of California
11
12
13
a vertical screen scrolling heuristic for determining that the one or
more finger contacts correspond to a one-dimensional vertical
screen scrolling command rather than a two-dimensional screen
translation command based on an angle of initial movement of a
finger contact with respect to the touch screen display;
14
15
16
a two-dimensional screen translation heuristic for determining that
the one or more finger contacts correspond to the two-dimensional
screen translation command rather than the one-dimensional vertical
screen scrolling command based on the angle of initial movement of
the finger contact with respect to the touch screen display; and
17
18
19
a next item heuristic for determining that the one or more finger
contacts correspond to a command to transition from displaying a
respective item in a set of items to displaying a next item in the set
of items.
20
21
Id. 757 F.3d at 1295. The Federal Circuit held that the concept of heuristics not only had a known
22
23
24
meaning by persons ordinarily skilled in the art11 but it was also described both in the remaining
claim language as well as in the specification by its “operation” including its “input, output, and
how its output may be achieved.” Id. at 1301. Here, the claim language, even when reviewed
25
26
27
28
11
“[A] person of ordinary skill in the art would understand ‘heuristic’ to mean ‘one or more rules
to be applied to data to assist in drawing inferences from that data.’ In this sense, ‘heuristic’ is
similar to words that define a class of structures, such as ‘connector,’ ‘circuit,’ and ‘detector,’ and
it does not include all means for performing the recited function.” Apple Inc. v. Motorola, Inc.,
757 F.3d at 1301.
32
1
within the context of the disclosures in the specification, does not explain how the logic at issue
2
operates to perform the function.12
Therefore, I find that, even reviewing the specification in order to properly construe this
3
term, “computer logic” invokes means-plus-function claiming. See, e.g., Visual Networks
5
Operations, Inc. v. Paradyne Corp., 2005 WL 1411578 (D. Md. June 15, 2005) (“‘Logic for
6
determining at least one dedicated time slot(s)’ describes only a function, not a structure. Any
7
number of different algorithms, in the form of either computer code or hard-wired circuit logic,
8
could perform the recited function.”); ABB Automation Inc. v. Schlumberger Res. Mgmt. Svcs.,
9
Inc., 2003 U.S. Dist. LEXIS 5002 (D.Del. Mar. 27, 2003) (“The court finds that ‘logic’ does not
10
recite sufficient structure to avoid means-plus-function analysis.”); see also Transperfect Global,
11
United States District Court
Northern District of California
4
Inc. v. MotionPoint Corp., C 10-2590 CW, 2013 WL 2299621 (N.D. Cal. May 24, 2013) (“Here,
12
the patents’ claims recite function without reciting any definite structure. The relevant claims do
13
not identify any specific hardware or software for performing the functions listed in each claim.
14
Instead, they refer simply to an ‘apparatus ... comprising: a module for’ performing those
15
functions. These generic references do not recite a sufficiently definite structure.”).13
16
b.
The parties agree that the function at issue is “persisting an indicated object or sets of
17
18
Is there sufficient structure disclosed?
objects.” In its briefing, Thought relied on various portions of the specification to disclose the
19
20
21
22
23
24
25
26
27
28
12
This case is also unlike Fujifilm Corp. v. Motorola Mobility LLC, 2013 U.S. Dist. LEXIS
165165 (N.D. Cal. Nov. 18, 2013) where I held that “face judgment device” was not subject to §
112, ¶ 6 because when read in light of the specification, the claim language adequately disclosed
the structure to perform that function. Id. at * 51-52.
13
Thought relies on inapposite cases to argue that “logic” when used with other terms provides
sufficient structure. In Apex Inc. v. Raritan Computer, Inc., 325 F.3d 1364, 1373 (Fed. Cir. 2003),
the Court concluded that “circuit” itself “connotes some structure” and that the term when used
“with an appropriate identifier such as ‘interface,’ ‘programming’ and ‘logic,’ certainly identifies
some structural meaning to one of ordinary skill in the art.” Id. at 1373-74. That case, dealing
with physical circuits, does not help Thought here. In Intel Corp. v. VIA Techs., 319 F.3d 1357,
1366 (Fed. Cir. 2003), the Court concluded that “the core logic of a computer” defined there as the
“chipset,” “modified to perform [a specific purpose] is the corresponding structure for the
functions recited.” Logic there was used in a completely different manner (chipset) than here.
Finally, in TecSec, Inc. v. IBM, 731 F.3d 1336, 1348 (Fed. Cir. 2013), the Court concluded that
“digital logic means to perform” was not mean-plus-function because the term “designates
structure to skilled artisans—namely digital circuits that perform Boolean algebra.” The same
type of phrase and disclosures are not made in the “computer logic” term at issue here.
33
1
structure, including discussions of object implementation through persistence software, which is
2
disclosed in the bottom block of Figure 3 in the ‘600 Patent, 10:25-26. The bottom block of
3
Figure 3, however, simply discloses a “Persistence Library or API for Persisting Objects, Links,
4
Object Data, and/or an Object Model.” This “black box” does not disclose an algorithm or
5
otherwise instructions for accomplishing the function. See, e.g., Blackboard, Inc. v.
6
Desire2Learn, Inc., 574 F.3d 1371, 1383 (Fed. Cir. 2009). (“The ACM is essentially a black box
7
that performs a recited function. But how it does so is left undisclosed.”).
Thought also relies on a preferred embodiment discussed in the Specification that,
8
according to Thought, “disclose[s] extremely specific examples of the algorithm” by disclosing
10
use of Thought’s CocoBase product, including CocoNavigator API. ‘600 Patent 12:19-29; 14:4-
11
United States District Court
Northern District of California
9
17-34; 15:13-20:52. Similarly, at the Claim Construction hearing, Thought argued that the
12
specification discloses a sufficient structure by referring to the Java Data Base Connectivity
13
(JBDC) application programming interface (API).14 Finally, Thought argues that since
14
“persisting” is a “straightforward process” understood by someone skilled in the art, there is no
15
need to disclose a complex algorithm for accomplishing the function, especially when Thought’s
16
CocoBase product could accomplish it. Reply at 22.
17
Oracle does not dispute that the JBCD and CocoBase software programs are disclosed in
18
the patents. Oracle does not dispute that these programs are sufficiently “linked” to the claimed
19
function, and Oracle does not dispute (and its expert admits) that CocoBase and JBDC can
20
perform the claimed function.15 Instead, Oracle argues that software – even software specifically
21
identified in the specification and linked to the function – is not sufficient and an “algorithm” is
22
23
24
25
26
27
28
14
Thought did not mention JDBC in its briefs, and its expert, Dr. Jagadish, does not mention
JBDC in his declaration. Instead, Dr. Jagadish states only that that a person of ordinary skill in the
art would know exactly what to do and how to “persist” an object. Jagadish Resp. Decl. ¶¶ 11819.
15
At most Dr. Hosking states that disclosure of the CoCoBase API “by definition does not reveal
anything about the algorithms that implement that interface.” Hosking Decl. ¶ 252; Hosking SurReply Declaration (Docket No. 87-1) ¶¶ 8-9 (“The citation to column 12 merely refers to
commercially available APIs, and states that those APIs, in conjunction with a commercial
embodiment of the mapping tool, work together to ‘manipulate complex objects.’ There is,
however, no description of the actual interactions between the API and the mapping tool, or any
description of the process or steps undertaken to accomplish persistence.”).
34
1
required. Sur-Reply 8-9. However, the Federal Circuit has recognized that when a specification
2
discloses a specific type of software that is “linked” to (in other words can be used to perform) the
3
function, that is sufficient. See Med. Instrumentation & Diagnostics Corp. v. Elekta AB, 344 F.3d
4
1205, 1214 (Fed. Cir. 2003) (“There was no need for a disclosure of specific circuitry in that case,
5
just as here there would be no need for a disclosure of the specific program code if software were
6
linked to the converting function and one skilled in the art would know the kind of program to
7
use.”); see also id. at 1212 (“The correct inquiry is to look at the disclosure of the patent and
8
determine if one of skill in the art would have understood that disclosure to encompass software
9
for digital-to-digital conversion and been able to implement such a program, not simply whether
one of skill in the art would have been able to write such a software program.” (emphasis in
11
United States District Court
Northern District of California
10
original)).
12
Oracle relies on Noah Sys. Inc. v. Intuit Inc., 675 F.3d 1302 (Fed. Cir. 2012). However,
13
that case did not reject the idea that software products specifically identified in the specification
14
could not satisfy the disclosed structure requirement. Instead, in that case, the patentee relied on
15
the specification’s mention of “off the shelf software” from a part of the specification dealing with
16
a different claim and then asserted “individuals of ordinary skill in the art would understand how
17
to accomplish the function described with the assistance of such off the shelf software.” Id. at
18
1317. The Federal Circuit rejected the patentee’s arguments because the disclosure itself must
19
identify the method for performing the function “whether or not a skilled artisan might otherwise
20
be able to glean such a method from other sources or from his own understanding,” and concluded
21
that the patentee’s “efforts to find structure in the portion of a specification linked to a different
22
claim element or in the common ken of a skilled computer artisan does not allow it to ‘avoid
23
providing [the] specificity as to structure’ required by § 112 ¶ 6.” Id. The other cases relied on by
24
Oracle are also inapposite as the claim language, at most, identified “software” or a “computer” to
25
perform the requisite function. See Fujifilm Corp. v. Motorola Mobility LLC, 12-CV-03587-
26
WHO, 2013 WL 6185254 (N.D. Cal. Nov. 18, 2013 (finding insufficient structure where reference
27
was to a “CPU [] ‘programmed to calculate’ its function, without adequately disclosing the
28
structure or method for performing such a calculation or such programming, effectively leaving
35
1
the CPU a general purpose computer.”); Encyclopaedia Britannica, Inc. v. Alpine Electronics of
2
Am., Inc., 2008 WL 7328271 (W.D. Tex. Sept. 30, 2008) aff'd sub nom. Encyclopaedia
3
Britannica, Inc. v. Alpine Electronics, Inc., 355 F. App’x 389 (Fed. Cir. 2009) (“A general
4
reference to ‘software’ is not sufficient to disclose structure,” rejecting claim that software not
5
disclosed in the specification was an adequately disclosed algorithm); Touchcom, Inc. v. Dresser,
6
Inc., 427 F. Supp. 2d 730, 736 (E.D. Tex. 2005) (rejecting patentee’s argument that a branded
7
device mentioned in the patent in conjunction with its publicly available software drivers could
8
perform the recited function because “[t]hese drivers are not sufficiently disclosed and referenced
9
in the specification to supply the corresponding structure for controlling the input means.”).
10
At the Claim Construction hearing, Thought relied exclusively on the disclosure of JBDC,
United States District Court
Northern District of California
11
arguing that Dr. Hosking himself testified in his deposition that JDBC alone is a sufficient
12
structure to persist an object. Hosking Depo. at 18:03:04. In his Supplemental Declaration –
13
submitted at the Claim Construction hearing – Dr. Hosking admits that JBDC can be “used” to
14
persist objects, but that a programmer would still need to develop and sequence the specific
15
commands that JBDC uses to transmit to the database. Hosking Supplemental Declaration
16
(Docket No. 105), ¶¶ 12-13. Therefore, according to Dr. Hosking, different programmers can
17
“use” JBDC in different ways to accomplish the persisting function and can also use the JBDC
18
without knowing how a particular JBDC driver (created by database developers to provide a
19
JBDC interface for their databases) is implemented. Id. ¶¶ 13-14. Dr. Hosking does not explain
20
the significance of the fact that programmers could use different sequences of commands to use
21
JBDC to persist data, and he does not otherwise challenge Thought’s position that a person skilled
22
in the art could use the disclosed JBDC to “persist” data as required by the claim language.
23
Instead, based on his belief that an “algorithm” is required by Federal Circuit precedent to satisfy
24
means-plus-function structure, he simply notes that the “bare reference” to “use JBDC” does not
25
disclose an algorithm for implementing the data persisting function. Id. ¶ 15.
26
Relying on Dr. Jagadish’s undisputed position that a person skilled in the art could use the
27
disclosed CocoBase program and API, as well as Dr. Hosking’s agreement that the disclosed
28
JBDC could also be used to persist data as required by the claim, and in light of persuasive Federal
36
1
Circuit authority allowing the “algorithm” requirement to be satisfied by a disclosed piece of
2
software, I find that that “computer logic” has been sufficiently described.
3
2. Logic for assessing each schema corresponding to a different data source
accessible to the mapping system
4
a. Is this means-plus-function language?
5
6
7
As with “computer logic,” “logic for assessing” is not a known structural meaning; it is a
process. Despite the lack of the term “means,” construing the claim language in light of the
specification, I find the term “logic for assessing” invokes means-plus-function claiming.
8
b. Is there sufficient structure disclosed?
9
10
The parties agree that the function as issue is logic for “accessing each schema
corresponding to a different data source accessible to the mapping system.”16 Thought argues that
11
United States District Court
Northern District of California
CocoBase and JBDC are disclosed in the specification as the means to perform the function of
12
creating logic for accessing the schemas.17 Dr. Jagadish addresses the CocoBase products
13
(Declaration of Hosagrahar Jagadish (Docket No. 76-1) ¶¶ 138-40) but does not address JBDC
14
products specifically. He argues that searching for and accessing databases with differing schemas
15
are “fundamental tasks” in the field, algorithms to do so are taught in basic computer science
16
classes, and those skilled in the art can readily accomplish it. Jagadish Resp. Decl. ¶ 122.
17
Oracle and its expert do not dispute that disclosure of CocoBase and JBDC is made
18
repeatedly in the specification for the ‘730 Patent and “linked” to the function to be performed.
19
Instead, Oracle argues that the disclosure of those software programs is insufficient because there
20
still is no “algorithm” provided that explains in the text of the specification how the steps for
21
accessing the schemas of the different databases take place. Oracle Response Brief at 36. Dr.
22
Hosking states that the portion of the specification discussing CocoBase does not mention
23
“accessing schemas,” Hosking Decl. ¶ 266, but acknowledges that JBDC could be used to access
24
25
26
27
28
16
A “‘database schema’ or ‘structural schema’ represents the tables in a relational database and
their relationships.” Hosking Decl. ¶ 66.
17
Thought did not rely on JBDC in its briefing, but only at the Claim Construction Hearing. In
its briefing, Thought relied for structure on disclosures in the ‘197 Patent and ‘730 Patent
specifications describing the “object schema manager” disclosed in the ‘197 Patent and
“equivalents” thereof in the ‘730 Patent. Thought also relied on the disclosure in the specification
of CocoBase. Thought Brief at 35; Reply at 22-23.
37
1
“each schema corresponding to a different data source accessible to the mapping system.”
2
Hosking Supp. Decl. ¶ 10. He argues, as above, that even though JDBC could be used to perform
3
the accessing at issue, because there might be different command sequences to do so and because
4
“use of JDBC” indicated in the specification does not disclose how to use the program to perform
5
the access or how JDBC operates to perform the accessing, it cannot satisfy the algorithm
6
requirement. Id. ¶¶ 12-15.
7
Similar to the prior claim, Dr. Hosking does not explain the significance of the fact that
programmers could use different sequences of commands to use JBDC to access the schemas, and
9
he does not otherwise challenge Thought’s position that a person skilled in the art readily knows
10
how to perform this basic concept, and could do so using JBDC. Relying on the undisputed fact
11
United States District Court
Northern District of California
8
that use of CocoBase and JBDC were disclosed in the specification and adequately linked to
12
accessing the database schemas, I find that the structure of “logic for assessing” is adequately
13
disclosed.
14
15
16
3. Logic for creating or maintaining all or a portion of such data in at least one
second data source having the same or a different data structural schema
a. Is this means-plus-function language?
The logic at issue in this term, as an initial matter, is far more complex that simply
17
“persisting” or “assessing.” The logic here must perform complex functions – maintaining all or
18
simply a portion of data, in a data source having the same or a different schema. The claim
19
language, even when considered with the remaining claim language and the specification, does not
20
describe sufficient operation – e.g. how the logic achieves its end – to avoid treatment as a mean-
21
plus-function term. I find, therefore, that this term invokes mean-plus-function claiming.
22
23
b. Is there sufficient structure disclosed?
The parties agree that the function here is for “creating or maintaining all or a portion of
24
such data in at least one second data source having the same or a different data structural schema.”
25
Thought contends that the structure is disclosed by references to CocoBase, specific code
26
examples that implement the claim, as well as reference to a Java application. Thought Opening
27
Br. at 36; Reply at 23; see also ‘730 Patent 32:44-66 (disclosing Thought.CocoBase.SynchPlugin);
28
38
1
Jagadish Decl. ¶ 144.18
In response, Dr. Hosking argues that disclosures based on Java are insufficient because the
2
specification fails to disclose how a Java application could be created or how it would access the
4
relevant data. Hosking Decl. ¶ 286. He also argues that the CocoBase reference and code
5
examples are insufficient because they do not encompass how the whole system covered by the
6
‘730 Patent. See, e.g., Hosking Decl. ¶ 277 (no elaboration on how data is actually transmitted or
7
how mismatches are handled and resolved) ¶ 278 (fails to disclose how the second database is
8
identified and connected to). However, as Dr. Jagadish points out, Java was a well-known
9
program in 2003, and there is no dispute that Java could perform the “creating and maintaining”
10
function. Jagadish Resp. Decl. ¶ 125. As to the functions Dr. Hosking claims are not explicitly
11
United States District Court
Northern District of California
3
addressed in the specification, Dr. Jagadish argues those functions go beyond the “creating and
12
maintaining” feature, which is all that needs to be disclosed and is disclosed in the specification
13
with respect to this claim. Id. ¶ 126.
At the Claim Construction hearing, Thought again relied exclusively on JBDC because
14
15
JBDC is disclosed in the specification and at his deposition Dr. Hosking admitted that JBDC could
16
perform “creating and maintaining” feature. Hosking Supp. Decl. ¶ 15. Dr. Hosking’s response in
17
his Supplemental Declaration submitted at the hearing was the same; because there might be
18
different command sequences to do so and because “use of JDBC” indicated in the specification
19
does not disclose how to use the program to perform the “creating and maintaining” function or
20
how JDBC operates to perform the “creating and maintaining,” it cannot satisfy the algorithm
21
requirement. Id. ¶¶ 12-15.
Similar to the prior claims, Dr. Hosking does not explain the significance of the fact that
22
23
programmers could use different sequences of commands to use JBDC to “create and maintain” as
24
25
26
27
28
18
In particular, with respect to the “creating or maintaining” limitation, Dr. Jagadish relies on the
‘730 Patent at 24:40-58, disclosing that the system “may include a means for transferring the data
from a first data source to a second data source. In one embodiment this system includes a simple
computer program in a computer language such as Java, which reads the data from the first
database using a repository map that may optionally be cached in the computer memory of the
system and then stores the accessed data to a second database using the same or a different
repository map.” Id. ¶ 144.
39
1
contemplated, and he does not otherwise challenge Thought’s position that a person skilled in the
2
art readily knows how to perform this function, and could do so using Java, CocoBase or JBDC.
3
Relying on the undisputed fact that use of Java, CocoBase, and JBDC was disclosed in the
4
specification and adequately linked to creating and maintaining data in a second data source
5
having a different structure, I find that the structure of “creating and maintaining” is adequately
6
disclosed.
7
4. A computer programming sub-routine or sub-module for comparing
8
a. Is this means-plus-function language?
A sub-routine or sub-module, is not a known structural meaning. Nor is the “for
10
comparing” paired with a sufficient description of its operation. The challenged limitation reads
11
United States District Court
Northern District of California
9
in more detail:
12
a computer programming sub-routine or sub-module for
comparing a copy of a CDOG, CDOG model, or a representation
definition of either the CDOG or CDOG model, to an original stored
version of the CDOG, CDOG model, or an original stored
representation definition for the CDOG or CDOG model, and for
updating the original to incorporate any changes to a CDOG or a
representation definition that are made by the user or by a software
program module.
13
14
15
16
Claim 7, ‘481 Patent 39:5-14 (emphasis added). This language states the purposes of the
17
comparing and updating but does not, even when read with the remaining claim language and the
18
specification, disclose how the routine or module operates to avoid treatment as a mean-plus19
function term. I find, therefore, that this term invokes mean-plus-function claiming.
20
b. Is there sufficient structure disclosed?
21
Thought argues that the “comparing” function refers to a sub-component of an API, which
22
is disclosed as CocoNavigator API in the specification, and that the specification also provides an
23
example of using Java method “equals” to perform the comparison. Jagadish Decl. ¶ 149.19
24
Oracle responds that the API is simply an interface and there is no evidence that it can perform the
25
comparing function, and that the Java equals method cannot disclose the comparing function
26
27
19
28
At the Claim Construction hearing, Thought relied exclusively on the disclosure of the Java
equals method as disclosing the required structure.
40
1
because it must be adapted to perform the operation. See, e.g., Hosking Decl. ¶ 291 (“It is my
2
opinion that the Java equals method could not be used, without more, to compare CDOGs or
3
CDOG models, as claimed. Again, the specification does not assert that Java equals is used this
4
way—it limits the use of Java equals to object comparison, not object graph or object graph model
5
comparison.”). Oracle also argues that nothing is pointed to by Thought in the specification that
6
could perform the updating function, and that in his deposition Dr. Jagadish admitted that the
7
updating step the function could not be performed by Java equals. Jagadish Depo. at 122:15-22.
As to the Java equals disclosure, I find Dr. Jagadish’s position more persuasive. Dr.
9
Jagadish explains that Dr. Hosking’s overstates the complexity of the specific comparison required
10
by the claim – comparing CDOG and CDOG models – and that Java equals can perform that basic
11
United States District Court
Northern District of California
8
comparison without significant modification. Jagadish Resp. Decl. ¶ 129 (distinguishing the
12
situation where “the objects to be compared include external links to other objects, or have type
13
differences” that might require modification or enhancement of Java equals method, to the type of
14
comparison at issue; “we have two database schemas, represented as graphs. It is straightforward
15
to say whether they are equal, and to identify differences between them to the extent they are not,
16
and the Java method equals is adequate to perform this computer operation.”).
17
Thought has totally failed to address what the disclosed structure is for the updating
18
function that is part of the claim language to be construed. The issue was raised by Oracle in its
19
briefs (see Oracle Resp. Br. at 38), but never responded to by Thought in its briefing or by Dr.
20
Jagadish. Because the Java equals method cannot perform the whole of the claimed function
21
(comparing and updating), sufficient structure has not been disclosed and this claim is indefinite.
22
23
24
5. A feature providing an interface for editing a CDOG model or for editing a
definition or other representation thereof
a. Is this means-plus-function language?
The “feature” here is likewise not a known structural meaning. Nor does a feature that can
25
edit a CDOG model or definition or representation thereof, even when read with the remaining
26
claim language and the specification, disclose the operation of the feature. It is instead simply a
27
description of the interface’s multiple functions. I find, therefore, that this term invokes mean-
28
41
1
2
plus-function claiming.
b. Is there sufficient structure disclosed?
The parties agree that the function is “providing an interface for editing a CDOG model or
4
for editing a definition or other representation thereof.” Thought argues the structure is disclosed
5
in the specification by: (i) identifying the “interface” as “an editing interface for editing the CDOG
6
model, or has an editable input or source, such as a file, that can be modified to implement
7
changes to the complex data object model.” ‘481 Patent 6:37-41; (ii) the specification described a
8
preferred embodiment where this interface is a “point and click graphical user interface” familiar
9
to Java developers and used in the CocoBase product, ‘481 Patent 6:42-43; and (iii) the ‘481
10
specification identifies CocoNavigator API as an interface can allows users to manipulate the
11
United States District Court
Northern District of California
3
CDOG model. ‘481 Patent 9:10-13; Jagadish Decl. at ¶¶ 152-153. Thought also argues that code,
12
incorporated into the ’481 Patent (36:56-62), likewise disclosed the readily known, used, and
13
available NavDemo.java that could be used to build the graphical user interface for editing the
14
CDOG model. Thought Reply at 24; see also Jagadish Resp. Decl. ¶¶ 132-33.
15
Oracle does not respond specifically to Thought’s argument to dispute that the
16
specification’s express reference to a graphical user interface, when combined with disclosed use
17
of CocoNavigator API or the NavDemo.java code, would be sufficient structure to disclose the
18
method for the editing at issue. Oracle ignores this argument in its Sur-Reply and Dr. Hosking
19
does not address it. At the Claim Construction hearing Oracle relied on an edited portion of Dr.
20
Jagadish’s deposition, where he affirmed that in his declaration he cited to code that would
21
“inform one skilled in the art how to build a graphical user interface to edit a CDOG model,” but
22
admitted that the codes does not disclose an “algorithm for this specific function explicitly culled
23
out . . .” Jagadish Depo. at 136:20-137:6. However, Dr. Jagadish’s point remains that one skilled
24
in the art could readily use the admittedly disclosed interface solutions and underlying code to
25
implement an interface for editing a CDOG model or definition or representation thereof. See,
26
e.g., Typhoon Touch Techs., Inc. v. Dell, Inc., 659 F.3d 1376, 1385 (Fed. Cir. 2011) (“the patent
27
need only disclose sufficient structure for a person of skill in the field to provide an operative
28
software program for the specified function.”). I find that the structure of “an interface for editing”
42
1
2
3
4
5
is adequately disclosed.
6. A feature . . . providing an interface for an editable input or source, such as a file,
that can be modified to implement changes to a CDO or its relationships of a
CDOG model
a. Is this means-plus-function language?
As above, this feature is not a known structure. Nor does the claim language, even when
6
read in conjunction with the remaining language and the specification, disclose the operation of
7
the feature. The claim language simply describes this interface’s multiple functions. I find,
8
therefore, that this term invokes mean-plus-function claiming.
9
10
b. Is there sufficient structure disclosed?
The parties agree that the function is an interface for editing input or source files to
United States District Court
Northern District of California
11
implement changes to a CDO or the relationships of a CDOG model. Thought argues that the
12
specification clearly links editable source files as XML, XMI, and UML – which are data source
13
files – to database files, database mapping definition files, and CDOG definition files. ’481 Patent
14
9:16-30. And that a specific example of a CDOG API (which can complete this function) is
15
provided as CocoNavigator API. Id. at 11:7-13:60. Dr. Jagadish explains that “XML, XMI, and
16
UML, are straightforward and numerous commercially available and freeware tools are readily
17
available to edit the content of each type of file and would be readily known to those of skill in the
18
art as of the effective filing date of the ‘481 patent. The identification of the file types represents a
19
sufficiently definite technique for editing the content in view of the ready availability and ease of
20
use of the editing tools.” Jagadish Resp. Decl. ¶ 136.
21
Oracle responds that the specification never explains how to actually do the
22
XML/XMI/UML editing function, and Dr. Hosking argues that the specification fails to disclose
23
how to provide an interface for the XML/XMI/UML files or how the edits are actually
24
accomplished. Hosking Resp. Decl. ¶ 309. But Dr. Jagadish’s point that a person skilled in the art
25
would readily be able to edit and implement changes to those files using the disclosed editing tools
26
stands unrebutted. That the “inner workings” of the readily available editing tools are not
27
disclosed, does not defeat the sufficiency of the disclosure considering that a person skilled in the
28
art is familiar would be familiar with those inner workings and could readily put those tools to use
43
1
to perform the function at issue. I find that the structure of “interface for an editable input or
2
source” is adequately disclosed.
CONCLUSION
3
4
The claims, therefore, are construed as follows:
5
Object as used the ‘197 Patent is defined as: instance of a class.
6
Object as used in the ‘600 and ‘862 Patents is defined as: a general term referring to a
7
logic unit in a computer application or a computer software program, that may be used
8
interchangeably with the term “class” as a template or as an instance depending on the
9
context.
10
Object as used in the ‘730 Patent is defined as: an organized set of encapsulated
United States District Court
Northern District of California
11
programming code designed to act on itself at the request of some external system, which
12
system may pass in some additional information to the object in that request.
13
14
15
16
17
18
19
20
21
22
23
24
25
Object schema as used in the ‘197 Patent is defined as: object-oriented view of one or
more data store schemas.
Packing as used in the ‘197 Patent is defined as: placing data into a form suitable for
communication between software components.
Unpacking as used in the ‘197 Patent is defined as: retrieving data from a packed data
structure.
Interface as used in the ‘197 Patent is defined as: part of an adapter abstraction layer
that facilitates interaction between software components.
Adapter as used in the ‘197 Patent is defined as: runtime interchangeable part of an
adapter abstraction layer that enables incompatible software components to work together.
Adapter abstraction layer as used in the ‘197 Patent is defined as: software components
with interfaces provided by adapters.
Fully synchronized caching system as used in the ‘956 Patent is defined as: a caching
26
system in which any changes to the cache will automatically be synchronized with the
27
primary data source or record upon transaction completion.
28
Extensive knowledge as used in the ‘956 Patent is defined as: knowledge of the schema
44
1
2
and query language sufficient to save or retrieve data.
To provide . . . to a system user who is as used in the ‘730 and ‘956 Patents is defined as:
3
to provide a system user the ability to make data changes related to a particular object as
4
either local or global changes on the computer system.
5
6
7
Model as used in the ‘600 and ‘862 Patents is defined as: logical or abstract
representation or description.
Changes to a CDO or its relationship of a CDOG model as used in the ‘481 Patent is
8
defined as changes to (1) a CDO, or (2) relationships of the CDO, the CDO and its
9
relationships being part of a CDOG model.
10
The information of (a) as used in the ‘481 Patent is defined as: information read from a
United States District Court
Northern District of California
11
source programming object logic model or a database definition file in a format selected
12
from the group consisting of a UML data file, a XML data file, and a XML file ((a) refers to
13
limitation 12-(a)).
14
Wherein repository maps are organized according to at least one navigation model or
15
schema as used in the ‘730 Patent is defined as its component part, using the definitions available
16
in the ‘730, ‘481 and ‘600 Patents.
17
I also reject Oracle’s indefinite challenges, except for “A computer programming sub-
18
routine or sub-module for comparing . . . and updating” which I find is indefinite for failure to
19
adequately disclose sufficient structure to perform the claimed updating function.
20
A Case Management Conference will be held at 2:00 p.m. on November 19, 2014 in
21
Courtroom 2. The parties shall file a Joint Case Management Statement on or before November
22
13, 2014 that proposes a case schedule through trial (jointly if possible, separately if not).
23
24
25
26
IT IS SO ORDERED.
Dated: October 22, 2014
______________________________________
WILLIAM H. ORRICK
United States District Judge
27
28
45
Disclaimer: Justia Dockets & Filings provides public litigation records from the federal appellate and district courts. These filings and docket sheets should not be considered findings of fact or liability, nor do they necessarily reflect the view of Justia.
Why Is My Information Online?