Enfish, LLC v. Microsoft Corporation ( 2016 )


Menu:
  •   United States Court of Appeals
    for the Federal Circuit
    ______________________
    ENFISH, LLC,
    Plaintiff-Appellant
    v.
    MICROSOFT CORPORATION, FISERV, INC.,
    INTUIT, INC., SAGE SOFTWARE, INC., JACK
    HENRY & ASSOCIATES, INC.,
    Defendants-Appellees
    ______________________
    2015-1244
    ______________________
    Appeal from the United States District Court for the
    Central District of California in No. 2:12-cv-07360-MRP-
    MRW, Senior Judge Mariana R. Pfaelzer.
    ______________________
    Decided: May 12, 2016
    ______________________
    ORION ARMON, Cooley LLP, Broomfield, CO, argued
    for plaintiff-appellant. Also represented by JAMES P.
    BROGAN, JANNA FISCHER.
    CHAD S. CAMPBELL, Perkins Coie LLP, Phoenix, AZ,
    argued for all defendants-appellees. Defendants-appellees
    Microsoft Corporation, Fiserv, Inc., Intuit, Inc., Jack
    Henry & Associates, Inc., also represented by DAN L.
    BAGATELL, THEODORE H. WIMSATT; ELIZABETH M.
    BANZHOFF, AMANDA D.W. TESSAR, Denver, CO.
    2                   ENFISH, LLC   v. MICROSOFT CORPORATION
    WILLIAM J. BROWN, JR., Brown, Wegner & Berliner
    LLP, Irvine, CA, for defendant-appellee Sage Software,
    Inc. Also represented by MATTHEW K. WEGNER, YUANJUN
    LILY LI.
    ______________________
    Before MOORE, TARANTO, and HUGHES, Circuit Judges.
    HUGHES, Circuit Judge.
    Enfish sued Microsoft for infringement of several pa-
    tents related to a “self-referential” database. On sum-
    mary judgment, the district court found all claims invalid
    as ineligible under § 101, some claims invalid as antici-
    pated under § 102, and one claim not infringed. Enfish
    appeals. We find that the claims are not directed to an
    abstract idea, so we reverse the summary judgment based
    on § 101. We find that the “pivot table” feature of the
    prior art Excel product does not contain the “self-
    referential” feature of the claims, so we vacate the sum-
    mary judgment based on § 102. Lastly, we find no error
    in the district court’s determination on non-infringement,
    so we affirm the summary judgment of non-infringement.
    We remand the case for further proceedings.
    I
    Microsoft develops and sells a variety of software
    products, including the product ADO.NET. At least
    through the late 1990s and early 2000s, Enfish developed
    and sold software products, including a new type of data-
    base program.
    Enfish received U.S. Patent 6,151,604 and U.S. Pa-
    tent 6,163,775 in late 2000. Both claim priority to the
    same application filed in March 1995.
    The ’604 and ’775 patents are directed to an innova-
    tive logical model for a computer database. A logical
    model is a model of data for a computer database explain-
    ing how the various elements of information are related to
    ENFISH, LLC   v. MICROSOFT CORPORATION                    3
    one another. A logical model generally results in the
    creation of particular tables of data, but it does not de-
    scribe how the bits and bytes of those tables are arranged
    in physical memory devices. Contrary to conventional
    logical models, the patented logical model includes all
    data entities in a single table, with column definitions
    provided by rows in that same table. The patents de-
    scribe this as the “self-referential” property of the data-
    base. ’604 patent, col. 2 ll. 44–52.
    This self-referential property can be best understood
    in contrast with the more standard “relational” model.
    With the relational model, each entity (i.e., each type of
    thing) that is modeled is provided in a separate table. For
    instance, a relational model for a corporate file repository
    might include the following tables:
    document table,
    person table,
    company table.
    The document table might contain information about
    documents stored on the file repository, the person table
    might contain information about authors of the docu-
    ments, and the company table might contain information
    about the companies that employ the persons.
    4                    ENFISH, LLC   v. MICROSOFT CORPORATION
    Each table in the relational model contains columns
    defining that table. In the corporate file repository exam-
    ple, the relational model might have the following tables: 1
    Using this relational model, if a database were to store
    information about a document called proj.doc, a person
    called Scott Wlaschin, and a company called DEXIS, then
    the result might be:
    1  The figures that follow in this Background section
    are adaptations of the example tables illustrated in the
    patents on appeal. See, e.g., ’604 patent, Figures 3, 5, 9.
    ENFISH, LLC   v. MICROSOFT CORPORATION                 5
    To indicate that Scott Wlaschin is the author of proj.doc
    and that he is employed by DEXIS, the relational model
    uses relationships as follows:
    Here, the top-most relationship explains that the value
    for “Author” in the Document table refers to the “ID”
    column of the Person table. Because the row for proj.doc
    has AUTHOR = 1, the row in the Person table that has
    ID = 1 is the author of proj.doc. By this technique, the
    relational model captures information about each type of
    entity in a separate table, with relationships between
    those tables informing the relationships between rows in
    different tables.
    6                     ENFISH, LLC   v. MICROSOFT CORPORATION
    In contrast to the relational model, the patented self-
    referential model has two features that are not found in
    the relational model: first the self-referential model can
    store all entity types in a single table, and second the self-
    referential model can define the table’s columns by rows
    in that same table. For example, a self-referential model
    corresponding to the example relational model discussed
    above might look like the following: 2
    This self-referential table stores the same information
    that is stored by the example relational model shown
    above. However, all of the information about documents,
    persons, and companies are stored in a single table.
    Further, an additional row is included in the self-
    referential table: the row beginning with ID = #4. This
    row has values of TYPE = “field” and LABEL = “Employed
    By.” Such a row with TYPE = “field” is a special row,
    because it defines characteristics of a column in that same
    table. In this case, the row with ID = #4 corresponds to
    the penultimate column, which is denoted by also mark-
    ing that column with the ID of #4. The row with ID = #4
    defines a single characteristic of the corresponding col-
    umn, viz., its label. Because the row with ID = #4 has
    LABEL = “Employed By,” we know that the corresponding
    column is labeled “Employed By,” as seen in the penulti-
    mate column. In other situations, the row might define
    other characteristics of the column, such as the type of
    2  The following diagram is a simplified version of
    Figure 3 of the ’604 patent.
    ENFISH, LLC   v. MICROSOFT CORPORATION                       7
    data that the column can hold, e.g., text, integer numbers,
    or decimal numbers. Because the patent describes a
    model where the table’s columns are defined by rows in
    that same table, it is “self-referential.” See ’604 patent,
    col. 2, ll. 59–65.
    The patents teach that multiple benefits flow from
    this design. First, the patents disclose an indexing tech-
    nique that allows for faster searching of data than would
    be possible with the relational model. See, e.g., ’604
    patent, col. 1 ll. 55–59; 
    id. at col.
    2 l. 66–col. 3 l. 6. Sec-
    ond, the patents teach that the self-referential model
    allows for more effective storage of data other than struc-
    tured text, such as images and unstructured text. See,
    e.g., ’604 patent, col. 2 ll. 16–22; col. 2 ll. 46–52.
    Finally, the patents teach that the self-referential
    model allows more flexibility in configuring the database.
    See, e.g., ’604 patent, col. 2 ll. 27–29. In particular,
    whereas deployment of a relational database often in-
    volves extensive modeling and configuration of the vari-
    ous tables and relationships in advance of launching the
    database, Enfish argues that the self-referential database
    can be launched without such tasks and instead config-
    ured on-the-fly.    See Oral Argument at 1:00–2:15
    http://oralarguments.cafc.ucsourts.gov/default.aspx?fl=20
    15-1244.mp3; see also ’604 patent, col. 7 ll. 10–22. For
    instance, the database could be launched with no or only
    minimal column definitions. Then, as a new attribute of
    information is encountered, such as an email address, an
    “Email” column could be added simply by inserting a new
    row of TYPE = “field” and LABEL = “email.” The addition
    of this new row can then instigate the database to create
    a new, corresponding column. The addition of a new row-
    defining-a-column to the previous example might result in
    the following:
    8                    ENFISH, LLC   v. MICROSOFT CORPORATION
    In 2012, Enfish filed suit against Microsoft in district
    court in California, alleging that Microsoft’s ADO.NET
    product infringes the ’604 and ’775 patents. ADO.NET
    provides an interface by which software applications can
    store, retrieve, and otherwise manipulate data stored in a
    database. Enfish alleges that ADO.NET creates and
    manipulates self-referential tables as part of its opera-
    tion.
    Five claims are at issue in this appeal: claims 17, 31,
    and 32 of the ’604 patent; and claims 31 and 32 of the ’775
    patent. The district court entered summary judgment on
    these claims as follows: all claims invalid under 35 U.S.C.
    § 101 as directed to an abstract idea; claims 31 and 32 of
    both patents invalid under 35 U.S.C. § 102(b) as antici-
    pated by the prior public sale and use of Microsoft’s Excel
    5.0 product; and claim 17 not infringed by ADO.NET.
    Enfish appeals each of these summary judgments.
    We have jurisdiction under 28 U.S.C. § 1295(a)(1).
    II
    This court reviews a grant of summary judgment un-
    der the standard of review of the regional circuit. See
    Taurus IP, LLC v. DaimlerChrysler Corp., 
    726 F.3d 1306
    ,
    1322 (Fed. Cir. 2013). The Ninth Circuit reviews a grant
    of summary judgment de novo. See Oswalt v. Resolute
    Indus., Inc., 
    642 F.3d 856
    , 859 (9th Cir. 2011). Summary
    judgment is only appropriate if “there is no genuine
    dispute as to any material fact and the movant is entitled
    to judgment as a matter of law.” FED. R. CIV. P. 56(a). In
    reviewing summary judgment, “[t]he evidence of the non-
    movant is to be believed and all justifiable inferences are
    to be drawn in [the non-movant’s] favor.” Anderson v.
    Liberty Lobby, Inc., 
    477 U.S. 242
    , 255 (1986).
    On appeal, Enfish challenges the district court’s grant
    of summary judgment on § 101 invalidity, § 102 invalidi-
    ENFISH, LLC   v. MICROSOFT CORPORATION                      9
    ty, and non-infringement. We address each argument in
    turn.
    III
    We turn first to the district court’s determination that
    the claims at issue do not claim patent-eligible subject
    matter, which we review de novo. See OIP Techs., Inc. v.
    Amazon.com, Inc., 
    788 F.3d 1359
    , 1362 (Fed. Cir. 2015).
    Section 101 provides that a patent may be obtained
    for “any new and useful process, machine, manufacture,
    or composition of matter, or any new and useful improve-
    ment thereof.” 35 U.S.C. § 101. This court, as well as the
    Supreme Court, has long grappled with the exception that
    “[l]aws of nature, natural phenomena, and abstract ideas
    are not patentable.” Ass’n for Molecular Pathology v.
    Myriad Genetics, Inc., --- U.S. ----, 
    133 S. Ct. 2107
    , 2116
    (2013) (quoting Mayo Collaborative Servs. v. Prometheus
    Labs., Inc., --- U.S. ----, 
    132 S. Ct. 1289
    , 1293 (2012)).
    Supreme Court precedent instructs us to “first determine
    whether the claims at issue are directed to a patent-
    ineligible concept.” Alice Corp. Pty Ltd. v. CLS Bank Int’l,
    --- U.S. ----, 
    134 S. Ct. 2347
    , 2355 (2014). If this threshold
    determination is met, we move to the second step of the
    inquiry and “consider the elements of each claim both
    individually and ‘as an ordered combination’ to determine
    whether the additional elements ‘transform the nature of
    the claim’ into a patent-eligible application.” 
    Id. (quoting Mayo,
    132 S. Ct. at 1298, 1297).
    The Supreme Court has not established a definitive
    rule to determine what constitutes an “abstract idea”
    sufficient to satisfy the first step of the Mayo/Alice in-
    quiry. See 
    id. at 2357.
    Rather, both this court and the
    Supreme Court have found it sufficient to compare claims
    at issue to those claims already found to be directed to an
    abstract idea in previous cases. “[The Court] need not
    labor to delimit the precise contours of the ‘abstract ideas’
    category in this case. It is enough to recognize that there
    10                    ENFISH, LLC   v. MICROSOFT CORPORATION
    is no meaningful distinction between the concept of risk
    hedging in Bilski and the concept of intermediated set-
    tlement at issue here.” 
    Alice, 134 S. Ct. at 2357
    ; see also
    OIP 
    Techs., 788 F.3d at 1362
    . For instance, fundamental
    economic and conventional business practices are often
    found to be abstract ideas, even if performed on a comput-
    er. See, e.g., OIP 
    Techs., 788 F.3d at 1362
    –63.
    In setting up the two-stage Mayo/Alice inquiry, the
    Supreme Court has declared: “We must first determine
    whether the claims at issue are directed to a patent-
    ineligible concept.” 
    Alice, 134 S. Ct. at 2355
    . That formu-
    lation plainly contemplates that the first step of the
    inquiry is a meaningful one, i.e., that a substantial class
    of claims are not directed to a patent-ineligible concept.
    The “directed to” inquiry, therefore, cannot simply ask
    whether the claims involve a patent-ineligible concept,
    because essentially every routinely patent-eligible claim
    involving physical products and actions involves a law of
    nature and/or natural phenomenon—after all, they take
    place in the physical world. See 
    Mayo, 132 S. Ct. at 1293
    (“For all inventions at some level embody, use, reflect,
    rest upon, or apply laws of nature, natural phenomena, or
    abstract ideas.”) Rather, the “directed to” inquiry applies
    a stage-one filter to claims, considered in light of the
    specification, based on whether “their character as a
    whole is directed to excluded subject matter.” Internet
    Patents Corp. v. Active Network, Inc., 
    790 F.3d 1343
    , 1346
    (Fed. Cir. 2015); see Genetic Techs. Ltd. v. Merial L.L.C.,
    
    2016 WL 1393573
    , at *5 (Fed. Cir. 2016) (inquiring into
    “the focus of the claimed advance over the prior art”).
    The Supreme Court has suggested that claims “pur-
    port[ing] to improve the functioning of the computer
    itself,” or “improv[ing] an existing technological process”
    might not succumb to the abstract idea exception. See
    
    Alice, 134 S. Ct. at 2358
    –59. While it is true that the
    Court discussed improvements to computer-related tech-
    nology in the second step of its analysis in Alice, see 
    id. at ENFISH,
    LLC   v. MICROSOFT CORPORATION                     11
    2355–60, that was because the Court did not need to
    discuss the first step of its analysis at any considerable
    length, see 
    id. at 2356
    (“Petitioner acknowledges that its
    claims describe intermediate settlement . . . .”), 
    id. at 2357.
        We do not read Alice to broadly hold that all im-
    provements in computer-related technology are inherently
    abstract and, therefore, must be considered at step two.
    Indeed, some improvements in computer-related technol-
    ogy when appropriately claimed are undoubtedly not
    abstract, such as a chip architecture, an LED display, and
    the like. Nor do we think that claims directed to software,
    as opposed to hardware, are inherently abstract and
    therefore only properly analyzed at the second step of the
    Alice analysis. Software can make non-abstract im-
    provements to computer technology just as hardware
    improvements can, and sometimes the improvements can
    be accomplished through either route. We thus see no
    reason to conclude that all claims directed to improve-
    ments in computer-related technology, including those
    directed to software, are abstract and necessarily ana-
    lyzed at the second step of Alice, nor do we believe that
    Alice so directs. Therefore, we find it relevant to ask
    whether the claims are directed to an improvement to
    computer functionality versus being directed to an ab-
    stract idea, even at the first step of the Alice analysis.
    For that reason, the first step in the Alice inquiry in
    this case asks whether the focus of the claims is on the
    specific asserted improvement in computer capabilities
    (i.e., the self-referential table for a computer database) or,
    instead, on a process that qualifies as an “abstract idea”
    for which computers are invoked merely as a tool. As
    noted infra, in Bilski and Alice and virtually all of the
    computer-related § 101 cases we have issued in light of
    those Supreme Court decisions, it was clear that the
    claims were of the latter type—requiring that the analysis
    proceed to the second step of the Alice inquiry, which asks
    12                   ENFISH, LLC   v. MICROSOFT CORPORATION
    if nevertheless there is some inventive concept in the
    application of the abstract idea. See 
    Alice, 134 S. Ct. at 2355
    , 2357–59. In this case, however, the plain focus of
    the claims is on an improvement to computer functionali-
    ty itself, not on economic or other tasks for which a com-
    puter is used in its ordinary capacity.
    Accordingly, we find that the claims at issue in this
    appeal are not directed to an abstract idea within the
    meaning of Alice. Rather, they are directed to a specific
    improvement to the way computers operate, embodied in
    the self-referential table. See supra at 6. Specifically,
    claim 17 of the ’604 patent recites:
    A data storage and retrieval system for a comput-
    er memory, comprising:
    means for configuring said memory according
    to a logical table, said logical table including:
    a plurality of logical rows, each said logi-
    cal row including an object identification
    number (OID) to identify each said logical
    row, each said logical row corresponding to a
    record of information;
    a plurality of logical columns intersecting
    said plurality of logical rows to define a plu-
    rality of logical cells, each said logical column
    including an OID to identify each said logical
    column; and
    means for indexing data stored in said table.
    ENFISH, LLC   v. MICROSOFT CORPORATION                      13
    Pursuant to 35 U.S.C. § 112 ¶ 6 (2006), the district
    court construed the “means for configuring” language as
    requiring a four-step algorithm: 3
    1. Create, in a computer memory, a logical table
    that need not be stored contiguously in the com-
    puter memory, the logical table being comprised of
    rows and columns, the rows corresponding to rec-
    ords, the columns corresponding to fields or at-
    tributes, the logical table being capable of storing
    different kinds of records.
    2. Assign each row and column an object identifi-
    cation number (OID) that, when stored as data,
    can act as a pointer to the associated row or col-
    umn and that can be of variable length between
    databases.
    3. For each column, store information about that
    column in one or more rows, rendering the table
    self-referential, the appending, to the logical table,
    of new columns that are available for immediate
    3    “Construction of a means-plus-function limitation
    includes two steps. ‘First, the court must determine the
    claimed function. Second, the court must identify the
    corresponding structure in the written description of the
    patent that performs the function.’” Noah Sys., Inc. v.
    Intuit Inc., 
    675 F.3d 1302
    , 1311 (Fed. Cir. 2012) (quoting
    Applied Med. Res. Corp. v. U.S. Surgical Corp., 
    448 F.3d 1324
    , 1332 (Fed. Cir. 2006)). And “the corresponding
    structure for a function performed by a software algo-
    rithm is the algorithm itself.” EON Corp. IP Holdings
    LLC v. AT & T Mobility LLC, 
    785 F.3d 616
    , 621 (Fed. Cir.
    2015). The parties do not dispute this construction on
    appeal.
    14                    ENFISH, LLC   v. MICROSOFT CORPORATION
    use being possible through the creation of new
    column definition records.
    4. In one or more cells defined by the intersection
    of the rows and columns, store and access data,
    which can include structured data, unstructured
    data, or a pointer to another row.
    J.A. 325.
    The district court concluded that the claims were di-
    rected to the abstract idea of “storing, organizing, and
    retrieving memory in a logical table” or, more simply, “the
    concept of organizing information using tabular formats.”
    J.A. 321 (emphasis omitted). Likewise, Microsoft urges
    the court to view the claims as being directed to “the
    concepts of organizing data into a logical table with
    identified columns and rows where one or more rows are
    used to store an index or information defining columns.”
    Appellee’s Br. 17. However, describing the claims at such
    a high level of abstraction and untethered from the lan-
    guage of the claims all but ensures that the exceptions to
    § 101 swallow the rule. See 
    Alice, 134 S. Ct. at 2354
    (noting that “we tread carefully in construing this exclu-
    sionary principle [of laws of nature, natural phenomena,
    and abstract ideas] lest it swallow all of patent law”); cf.
    Diamond v. Diehr, 
    450 U.S. 175
    , 189 n.12 (1981) (caution-
    ing that overgeneralizing claims, “if carried to its ex-
    treme, make[s] all inventions unpatentable because all
    inventions can be reduced to underlying principles of
    nature which, once known, make their implementation
    obvious”).
    Here, the claims are not simply directed to any form
    of storing tabular data, but instead are specifically di-
    rected to a self-referential table for a computer database.
    For claim 17, this is reflected in step three of the “means
    for configuring” algorithm described above. For both
    pairs of claims 31 and 32, this is reflected in other claim
    language, discussed infra at 20. The necessity of describ-
    ENFISH, LLC   v. MICROSOFT CORPORATION                   15
    ing the claims in such a way is underscored by the specifi-
    cation’s emphasis that “the present invention comprises a
    flexible, self-referential table that stores data.” ’604
    patent at Abstract; see also 
    id. at col.
    2 ll. 44–46 (“The
    present invention improves upon prior art information
    search and retrieval systems by employing a flexible, self-
    referential table to store data.”).
    The specification also teaches that the self-referential
    table functions differently than conventional database
    structures. According to the specification, traditional
    databases, such as “those that follow the relational model
    and those that follow the object oriented model,” ’604
    patent, col. 1 ll. 37–40, are inferior to the claimed inven-
    tion. While “[t]he structural requirements of current
    databases require a programmer to predefine a structure
    and subsequent [data] entry must conform to that struc-
    ture,” 
    id. at col.
    2 ll. 10–13, the “database of the present
    invention does not require a programmer to preconfigure
    a structure to which a user must adapt data entry.” 
    Id. at col
    2 ll. 27–29. Moreover, our conclusion that the claims
    are directed to an improvement of an existing technology
    is bolstered by the specification’s teachings that the
    claimed invention achieves other benefits over conven-
    tional databases, such as increased flexibility, faster
    search times, and smaller memory requirements. See 
    id. at col
    2 ll. 23–27; see also Openwave Sys., Inc. v. Apple
    Inc., 
    808 F.3d 509
    , 513–14 (Fed. Cir. 2015) (finding that a
    specification’s disparagement of the prior art is relevant
    to determine the scope of the invention).
    In finding that the claims were directed simply to “the
    concept of organizing information using tabular formats,”
    J.A. 321 (emphasis omitted), the district court oversimpli-
    fied the self-referential component of the claims and
    downplayed the invention’s benefits. The court deter-
    mined that the patents’ self-referential concept could be
    satisfied by creating a table with a simple header row.
    But that is simply not the case. For example, step three
    16                   ENFISH, LLC   v. MICROSOFT CORPORATION
    of the algorithm described above explains that the table
    stores information related to each column in rows of that
    very same table, such that new columns can be added by
    creating new rows in the table. See J.A. 325 (describing
    four-step algorithm); see also ’604 patent, col. 2 ll. 53–65
    (describing “the present invention”, including a descrip-
    tion where “columns are entered as rows in the table and
    the record corresponding to a column contains various
    information about the column,” thereby “render[ing] the
    table self-referential”). It is beyond debate that this is
    more than simply a header row.
    Moreover, we are not persuaded that the invention’s
    ability to run on a general-purpose computer dooms the
    claims. Unlike the claims at issue in Alice or, more re-
    cently in Versata Development Group v. SAP America,
    Inc., 
    793 F.3d 1306
    (Fed. Cir. 2015), which Microsoft
    alleges to be especially similar to the present case, Appel-
    lee’s Br. 18, see also Oral Argument at 15:40–18:15, the
    claims here are directed to an improvement in the func-
    tioning of a computer. In contrast, the claims at issue in
    Alice and Versata can readily be understood as simply
    adding conventional computer components to well-known
    business practices. See 
    Alice, 134 S. Ct. at 2358
    –60;
    Versata Dev. 
    Grp., 793 F.3d at 1333
    –34 (computer per-
    formed “purely conventional” steps to carry out claims
    directed to the “abstract idea of determining a price using
    organization and product group hierarchies”); see also
    Mortgage Grader, Inc. v. First Choice Loan Servs. Inc.,
    
    811 F.3d 1314
    , 1324–25 (Fed. Cir. 2016) (claims attaching
    generic computer components to perform “anonymous
    loan shopping” not patent eligible); Intellectual Ventures I
    LLC v. Capital One Bank (USA), 
    792 F.3d 1363
    , 1367–69
    (Fed. Cir. 2015) (claims adding generic computer compo-
    nents to financial budgeting); OIP 
    Techs., 788 F.3d at 1362
    –64 (claims implementing offer-based price optimiza-
    tion using conventional computer activities); Ultramer-
    cial, Inc. v. Hulu, LLC, 
    772 F.3d 709
    , 714–17 (Fed. Cir.
    ENFISH, LLC   v. MICROSOFT CORPORATION                     17
    2014) (claims applying an exchange of advertising for
    copyrighted content to the Internet); buySAFE, Inc. v.
    Google, Inc., 
    765 F.3d 1350
    , 1354–55 (Fed. Cir. 2014)
    (claims adding generic computer functionality to the
    formation of guaranteed contractual relationships). And
    unlike the claims here that are directed to a specific
    improvement to computer functionality, the patent-
    ineligible claims at issue in other cases recited use of an
    abstract mathematical formula on any general purpose
    computer, see Gottschalk v. Benson, 
    409 U.S. 63
    , 93
    (1972), see also 
    Alice, 134 S. Ct. at 2357
    –58, or recited a
    purely conventional computer implementation of a math-
    ematical formula, see Parker v. Flook, 
    437 U.S. 584
    , 594
    (1978); see also 
    Alice, 134 S. Ct. at 2358
    , or recited gener-
    alized steps to be performed on a computer using conven-
    tional computer activity, see Internet Patents, 
    790 F.3d 1348
    –49 (claims directed to abstract idea of maintaining
    computer state without recitation of specific activity used
    to generate that result), Digitech Image Techs., LLC v.
    Electrs. For Imaging, Inc., 
    758 F.3d 1344
    , 1351 (Fed. Cir.
    2014) (claims directed to abstract idea of “organizing
    information through mathematical correlations” with
    recitation of only generic gathering and processing activi-
    ties).
    Similarly, that the improvement is not defined by ref-
    erence to “physical” components does not doom the claims.
    To hold otherwise risks resurrecting a bright-line ma-
    chine-or-transformation test, cf. Bilski v. Kappos, 
    561 U.S. 593
    , 604 (2010) (“The machine-or-transformation test
    is not the sole test for deciding whether an invention is a
    patent-eligible ‘process.’”), or creating a categorical ban on
    software patents, cf. 
    id. at 603
    (“This Court has not indi-
    cated that the existence of these well-established excep-
    tions gives the Judiciary carte blanche to impose other
    limitations that are inconsistent with the text and the
    statute’s purpose and design.”). Much of the advancement
    made in computer technology consists of improvements to
    18                   ENFISH, LLC   v. MICROSOFT CORPORATION
    software that, by their very nature, may not be defined by
    particular physical features but rather by logical struc-
    tures and processes. We do not see in Bilski or Alice, or
    our cases, an exclusion to patenting this large field of
    technological progress.
    In sum, the self-referential table recited in the claims
    on appeal is a specific type of data structure designed to
    improve the way a computer stores and retrieves data in
    memory. The specification’s disparagement of conven-
    tional data structures, combined with language describing
    the “present invention” as including the features that
    make up a self-referential table, confirm that our charac-
    terization of the “invention” for purposes of the § 101
    analysis has not been deceived by the “draftsman’s art.”
    Cf. 
    Alice, 134 S. Ct. at 2360
    . In other words, we are not
    faced with a situation where general-purpose computer
    components are added post-hoc to a fundamental econom-
    ic practice or mathematical equation. Rather, the claims
    are directed to a specific implementation of a solution to a
    problem in the software arts. Accordingly, we find the
    claims at issue are not directed to an abstract idea.
    Because the claims are not directed to an abstract
    idea under step one of the Alice analysis, we do not need
    to proceed to step two of that analysis. See 
    id. at 2355.
    We recognize that, in other cases involving computer-
    related claims, there may be close calls about how to
    characterize what the claims are directed to. In such
    cases, an analysis of whether there are arguably concrete
    improvements in the recited computer technology could
    take place under step two. Here, though, we think it is
    clear for the reasons stated that the claims are not di-
    rected to an abstract idea, and so we stop at step one. We
    conclude that the claims are patent-eligible.
    IV
    Alternatively, Microsoft encourages us to affirm the
    invalidity of claim 17 on the ground of indefiniteness.
    ENFISH, LLC   v. MICROSOFT CORPORATION                    19
    According to Microsoft, the previously-recited four-step
    algorithm is not a sufficient structure for the claimed
    function of “configuring said memory according to a
    logical table.”
    For a claim element recited in means-plus-function
    format, “the specification must contain sufficient descrip-
    tive text by which a person of skill in the field of the
    invention would ‘know and understand what structure
    corresponds to the means limitation.’” Typhoon Touch
    Techs., Inc. v. Dell, Inc., 
    659 F.3d 1376
    , 1383–84 (Fed. Cir.
    2011) (quoting Finisar Corp. v. DirecTV Grp., Inc., 
    523 F.3d 1323
    , 1340 (Fed. Cir. 2008)). “[W]hile it is true that
    the patentee need not disclose details of structures well
    known in the art, the specification must nonetheless
    disclose some structure.” Biomedino LLC v. Waters Techs.
    Corp., 
    490 F.3d 946
    , 952 (Fed. Cir. 2007) (quoting Default
    Proof Credit Card Sys. v. Home Depot U.S.A., Inc., 
    412 F.3d 1291
    , 1302 (Fed. Cir. 2005)).
    The district court found that the four-step algorithm
    sufficiently identified a structure for a person of skill in
    the art to implement the function of “configuring said
    memory according to a logical table.” We agree. Step one
    of the four-step algorithm relies on well-known techniques
    in the database arts for setting up a table in computer
    memory. Microsoft does not allege that an ordinary
    artisan would not understand the algorithm. Steps two
    through four then provide particular details for modifying
    some such well-known configuration in accordance with
    the disclosed invention. The fact that this algorithm
    relies, in part, on techniques known to a person of skill in
    the art does not render the composite algorithm insuffi-
    cient under § 112 ¶ 6. Indeed, this is entirely consistent
    with the fact that the sufficiency of the structure is
    viewed through the lens of a person of skill in the art and
    without need to “disclose structures well known in the
    art,” 
    Biomedino, 490 F.3d at 952
    .
    20                   ENFISH, LLC   v. MICROSOFT CORPORATION
    Therefore, we do not find claim 17 invalid on this al-
    ternative ground.
    V
    Because we find the claims patent-eligible under
    § 101, we now turn to the issue of validity under § 102.
    The district court found claims 31 and 32 of both patents
    anticipated under § 102. Claim 31 of the ’604 patent is
    exemplary:
    A method for storing and retrieving data in a
    computer memory, comprising the steps of:
    configuring said memory according to a logical
    table, said logical table including:
    a plurality of logical rows, each said logi-
    cal row including an object identification
    number (OID) to identify each said logical
    row, each said logical row corresponding to a
    record of information;
    a plurality of logical columns intersecting
    said plurality of logical rows to define a plu-
    rality of logical cells, each said logical column
    including an OID to identify each said logical
    column; and
    wherein at least one of said logical rows
    has an OID equal to the OID to a correspond-
    ing one of said logical columns, and at least
    one of said logical rows includes logical col-
    umn information defining each of said logical
    columns.
    As seen, claim 31 recites a method involving configuring a
    memory “according to a logical table,” with that logical
    table specified in some detail. Notably, the logical table
    must have a row and a column that have the same ID
    value. This language of the “wherein” clause embodies
    the self-referential property explained supra at 6.
    ENFISH, LLC   v. MICROSOFT CORPORATION                   21
    The district court found the claims anticipated under
    § 102(b) by the Microsoft Excel 5.0 software program.
    Excel 5.0 is a version of the well-known spreadsheet
    program that was in public use at latest by early-1994.
    The district court focused on the “pivot table” feature of
    Excel 5.0 as anticipating the claims. A pivot table is a
    type of data-summarization table that a user can prompt
    the Excel program to generate, based on a preexisting
    table of raw data. For instance, a user may begin with a
    table of raw sales data as follows (only a subset of the
    entire table is shown below):
    J.A. 7722. The example table has rows for sales by a
    particular salesperson of a particular product in a particu-
    lar region, among other attributes. The user can prompt
    Excel to create a pivot table, such as the following:
    J.A. 7722. This pivot table has row labels corresponding
    to salespersons and column labels corresponding to types
    of product. The cells of the pivot table sum the “Sales”
    column of the raw data table based on its intersection of a
    particular salesperson and a particular type of product.
    22                   ENFISH, LLC   v. MICROSOFT CORPORATION
    For instance, salesperson Buchanan has sold $67,566
    worth of dairy products.
    The district court found this pivot table feature of Ex-
    cel 5.0 to anticipate claim 31, including the self-
    referential property embodied in the language of “wherein
    at least one of said logical rows has an OID equal to the
    OID to a corresponding one of said logical columns.” The
    district court noted that a cell in the row of the raw data
    table, (e.g., “Dairy”) was also the label of a column in the
    pivot table, (again, “Dairy”). J.A. 283–84. Microsoft’s
    expert exemplified this position by showing that the
    addition of the “Housewares” row to the raw data table,
    like so:
    J.A. 7723, would result in the addition of a “Housewares”
    column to the pivot table, like so:
    J.A. 7724. On its face, this would seem to have the effect
    of adding a column based on a newly added row, which is
    in some ways a characteristic behavior of the self-
    referential table disclosed in the patents.
    But finding this feature to anticipate the claims re-
    quires an inappropriately broad reading of the claims.
    Claim 31 is directed to configuring memory “according to
    ENFISH, LLC   v. MICROSOFT CORPORATION                       23
    a logical table.” While we have held that the use of a
    singular indefinite article with a claim feature may sup-
    port an interpretation of “one or more” of those claim
    features, see, e.g., Free Motion Fitness, Inc. v. Cybex Int’l,
    Inc., 
    423 F.3d 1343
    , 1350 (Fed. Cir. 2005), the context of
    claim 31 shows that this is not such a case. The remain-
    der of claim 31 describes rows and columns without
    providing any suggestion that a second table has been
    introduced. The specification makes clear that the inven-
    tion is directed to the arrangement of a single, logical
    table, particularly, a row defining a column in that same
    table. See, e.g., ’604 patent, col. 2, ll. 31–41; 
    id. at col.
    2,
    ll. 44–52; 
    id. at col.
    7 ll. 10–22; 
    id. at Figure
    3; see also
    Oral Argument at 1:45–2:15; 
    id. at 27:00–29:30.
    There-
    fore, the “at least one of said logical rows” and the “corre-
    sponding one of said logical columns” must both be in the
    same logical table. 4
    But the district court read the features of claim 31 on
    a row from the raw data table and a column from the
    pivot table. This fails to show the feature of claim 31
    having identical IDs for a row and a column in the same
    table. Fundamentally, having a row in one table refer-
    ence a column in another table is not a “self-referential”
    table at all, but something more like “referential tables”
    or “tables that refer to one another.”
    The fact that the raw data table and the pivot table
    are present on the same spreadsheet is of no consequence.
    The district court appears to have grounded its reasoning
    4   To be clear, we do not hold that the claims are di-
    rected exclusively to a database with a single, self-
    referential table. Rather, the claims recite a single, self-
    referential table, regardless of any other tables that may
    be present in the same database.
    24                   ENFISH, LLC   v. MICROSOFT CORPORATION
    on the fact that the two tables show up together on a
    single spreadsheet:
    J.A. 7724. But the spreadsheet is no more than the
    medium on which the two separate tables are presented.
    Two separate tables drawn on one sheet of paper are still
    two separate tables.
    Therefore, Excel 5.0 fails to include the claimed single
    table having a row defining a column in that same table.
    Identification of one element, the row, in one table and
    another element, the column, in another table is insuffi-
    cient for anticipation. Anticipation requires “that the
    reference describe not only the elements of the claimed
    invention, but also that it describe those elements ‘ar-
    ranged as in the claim[.]’” Net MoneyIN, Inc. v. VeriSign,
    Inc., 
    545 F.3d 1359
    , 1371 (Fed. Cir. 2008) (quoting Finisar
    Corp. v. DirecTV Grp., Inc., 
    523 F.3d 1323
    , 1334 (Fed. Cir.
    2008)).
    For this reason, the district court erred in granting
    summary judgment of anticipation. Given our claim
    construction and the disclosure in Excel 5.0, the pivot
    table feature of Excel 5.0 does not anticipate claim 31 of
    ENFISH, LLC   v. MICROSOFT CORPORATION                   25
    the ’604 patent. Claim 32 of the ’604 patent and claims 31
    and 32 of the ’775 patent require the same “self-
    referencing” feature by way of the matching-ID language.
    Therefore, we find that the pivot table feature of Excel 5.0
    also does not anticipate those claims.
    ***
    Enfish encourages us to consider whether Microsoft is
    estopped from asserting an Excel 5.0 invalidity defense
    due to an inter partes review instituted at the U.S. Patent
    and Trademark Office at Microsoft’s request. Because we
    find that Excel 5.0 does not anticipate the claims, we see
    no reason to address this issue. If on remand the district
    court permits a new invalidity contention based on a
    different feature of Excel 5.0 or some other related prior
    art, then we leave the estoppel issue to the district court
    to consider in the first instance.
    VI
    We now turn to the issue of infringement. The dis-
    trict court found that Microsoft’s accused product,
    ADO.NET, does not infringe claim 17 of the ’604 patent.
    The district court reached this conclusion by finding that
    ADO.NET does not perform the “means for indexing”
    recited in that claim. Claim 17, in abbreviated form,
    recites as follows:
    A data storage and retrieval system for a comput-
    er memory, comprising:
    means for configuring said memory according
    to a logical table . . . and
    means for indexing data stored in said table.
    Enfish raises two arguments against the district
    court’s summary judgment of non-infringement: first
    against the claim construction for “means for indexing,”
    and second for the application of that claim construction
    to the ADO.NET product.
    26                     ENFISH, LLC   v. MICROSOFT CORPORATION
    A
    The district court interpreted the “means for index-
    ing” under 35 U.S.C. § 112 ¶ 6 (2006). Such a claim
    element “shall be construed to cover the corresponding
    structure, material, or acts described in the specification
    and equivalents thereof.” § 112 ¶ 6. And, as noted above,
    “the corresponding structure for a function performed by a
    software algorithm is the algorithm itself.” 
    EON, 785 F.3d at 621
    . The district court identified the function of the
    “means for indexing” as “indexing data stored in the
    logical table.” J.A. 270. The district court accepted
    Enfish’s proposal of the following algorithm as the corre-
    sponding structure:
    1. Extract key phrases or words from the applicable
    cells in the logical table.
    2. Store the extracted key phrases or words in an in-
    dex, which is itself stored in the logical table.
    3. Include, in text cells of the logical table, pointers to
    the corresponding entries in the index, and in-
    clude, in the index, pointers to the text cells.
    J.A. 270, 338, 2543–49.
    On appeal, Enfish now contests the district court’s re-
    liance on this three-step algorithm as the corresponding
    structure for the “means for indexing.” Enfish argues
    that it never meant for all three steps to be required, but
    instead that some of the steps or parts of the steps may be
    optional. Specifically, Enfish argues that the correspond-
    ing structure does not necessarily require both “pointers
    to the . . . index” and “pointers to the text cells” in step 3,
    i.e., “bi-directional” pointers.     Appellant’s Br. 61–63.
    Enfish asserts that because the specification shows both
    an embodiment with uni-directional pointers and an
    embodiment with bi-directional pointers, the district court
    erred in identifying the three-step algorithm with bi-
    directional pointers as the only corresponding structure.
    ENFISH, LLC   v. MICROSOFT CORPORATION                   27
    The district court did not err in its construction. En-
    fish’s primary support for its position is the fact that
    Figure 11 of the patents shows uni-directional pointers
    (i.e., from the index to the text cells), whereas Figure 14
    shows bi-directional pointers (i.e., in both directions
    between the index and the text cells).
    ’604 patent, Figure 11 (“TEXT CELLS” and “LIST”
    markup our own).
    ’604 patent, Figure 14 (“TEXT CELLS” and “INDEX”
    markup our own). Although Figures 11 and 14 do in fact
    illustrate a sort of dichotomy akin to that proffered by
    Enfish, the discussion of those figures in the specification
    reveals that any such dichotomy is false. The list 250 in
    Figure 11 is not an index at all; it is an intermediate
    compilation of keyword values used in the process of
    forming the index. See generally ’604 patent, col. 12–14.
    The specification notes that, even at the stage of forming
    list 250, the text cells contain references to the keywords
    28                   ENFISH, LLC   v. MICROSOFT CORPORATION
    contained therein, in the form of “anchors.” 
    Id. at col
    . 12
    ll. 16–34. When the index is ultimately formed, as illus-
    trated in Figure 14, the index entries contain references
    to the text cells, and the text cells, through the use of the
    anchors, contain references to the index. See 
    id. at col.
    14
    ll. 10–17. That is, the specification presents Figure 14 as
    index entries in the self-referential table that result from
    a process that began with the keyword extraction step
    illustrated in Figure 11. The figures are not alternative
    embodiments.
    Therefore, we find no error in the district court’s use
    of Enfish’s own-identified three-step algorithm as the sole
    equivalent structure for the “means for indexing.”
    B
    Using the three-step algorithm, the district court de-
    termined that ADO.NET does not perform either step two
    or step three. For step two, the district court determined
    that there was no genuine issue of fact that ADO.NET
    does not store the text value of a keyword in the index,
    but rather just a reference to that value. For step three,
    the district court determined that there was no genuine
    issue of fact that ADO.NET does not store a pointer from
    the text value to the index, but stores a pointer to some
    other object. Enfish argues that the district court erred in
    its findings as to both step two and step three.
    For an accused product to practice a claim element in-
    terpreted under § 112 ¶ 6, the accused product must
    perform the identical function using an identical or equiv-
    alent structure. See Odetics, Inc. v. Storage Tech. Corp.,
    
    185 F.3d 1259
    , 1267 (Fed. Cir. 1999). Step two requires
    storing the “extracted key phrases or words” in an index.
    However, as the district court explained, it is uncontested
    that ADO.NET does not store the actual text values in the
    index, but rather stores references to the cells containing
    those text values. J.A. 340–41; Appellant’s Br. 66. Step
    three requires including, in the cells with the text values,
    ENFISH, LLC   v. MICROSOFT CORPORATION                     29
    pointers to the “corresponding entries in the index.”
    Again, it is uncontested that ADO.NET does not store
    pointers as such. Instead, it stores pointers to other
    objects that, by use of a further chain of pointers, may be
    resolved to the index. J.A. 341–43; Appellant’s Br. 69.
    Therefore, ADO.NET does not use the identical “corre-
    sponding structure,” i.e., the three-step algorithm, dis-
    closed in the specification.
    As such, ADO.NET can only infringe claim 17 if its
    algorithm for performing indexing is an equivalent to the
    three-step algorithm identified above. An accused struc-
    ture is “equivalent” to a disclosed structure if the differ-
    ences between the two are insubstantial. See 
    Odetics, 185 F.3d at 1267
    . The district court concluded that the failure
    to store actual text values in the index (i.e., the difference
    at step two) combined with the failure to use pointers
    from the text values to the index (i.e., the difference at
    step three) render the three-step algorithm and the
    ADO.NET indexing algorithm substantially different.
    J.A. 343–44. The district court found that at least one
    disclosed organization scheme for the index, i.e., alphabet-
    ically for fast name searching, may not be possible if the
    actual text values are not stored in the index. The district
    court found that the bi-directional pointers allow the
    performance of associative queries, which the patents
    describe as being a key benefit of the invention. On
    appeal, Enfish attempts to argue that the differences in
    step two and step three do not exist, but fails to explain
    how those differences are insubstantial if we agree with
    the district court that they do exist, which we do. There-
    fore, finding no argument to the contrary, we conclude
    that ADO.NET’s indexing algorithm is not an equivalent
    of the three-step algorithm of claim 17.
    Because ADO.NET does not use the identical or
    equivalent structure as disclosed in the patents for the
    “means for indexing,” we find that ADO.NET does not
    infringe claim 17.
    30                   ENFISH, LLC   v. MICROSOFT CORPORATION
    VII
    Based on the foregoing, we reverse the district court’s
    grant of summary judgment based on § 101 and conclude
    that all five claims on appeal are patent-eligible. We
    vacate the district court’s grant of summary judgment
    based on § 102 and conclude that both pairs of claims 31
    and 32 are not anticipated by Excel 5.0 pivot tables.
    Lastly, we affirm the district court’s grant of summary
    judgment of non-infringement and conclude that
    ADO.NET does not infringe claim 17. We remand the
    case to the district court for further proceedings.
    REVERSED-IN-PART, VACATED-IN-PART,
    AFFIRMED-IN-PART, AND REMANDED
    No costs.