- New ways of organizing data
- New connections between modules of data
- New ways of providing access to data
- New locations on a computer or network for operations previously known
- Deletion of steps previously used in the prior art
- The outcome of the above results in faster searching, more effective storage of data such as using less space, more flexibility in the organizing and use of the data
The first of these cases, and the most definitive, is Enfish, LLC v. Microsoft which involved patent 6,151,604 disclosing software for a “self-referential database.” The invention was distinguished from a “relational database” in which each type of thing which is modeled is provided in a separate table, such as for a document, person or company. A prior art database might store a document called project.doc, a person called Scott Wlachsin or a company as depicted below left. To indicate that Scott Wlachsin is the author of proj.doc and is employed by Dexis, the relational database uses relationships as depicted below right. The topmost relationship shows 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. The relational database captures information about each item in a separate table and creates relationships informing the connections between rows in different tables.
The patented invention, however, has two features which are different: (1) storing all entity types in a single table, and (2) defining the table’s columns by rows in the same table, as seen here:
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.” A row with TYPE = “field” is a special row because it defines characteristics of a column in that same table. The row with ID = #4 corresponds to the penultimate column, which is denoted by also marking that column with the ID of #4. The row with ID = #4 defines a single characteristic of the corresponding column, i.e., 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 penultimate column. In other situations, the row might define other characteristics of the column, such as the type of 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 new invention claimed faster searching of data, more effective storage, and more flexibility in configuring the database on-the-fly instead of extensive modeling before launching the database. As to flexibility, 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:
The Enfish Court said the first step in its inquiry is to ask 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. The Court held “the plain focus of the claims is on an improvement to computer functionality itself, not on economic or other tasks for which a computer is used in its ordinary capacity.” The claims “are directed to a specific improvement to the way computers operate, embodied in the self-referential table.” Again, “the claims are not simply directed to any form of storing tabular data, but instead are specifically directed to a self-referential table for a computer database” which “functions differently than conventional database structures.” The claims were for “a specific type of data structure designed to improve the way a computer stores and retrieves data in memory.” The situation was not “where general-purpose computer components are added post-hoc to a fundamental economic practice or mathematical equation. Rather, the claims are directed to a specific implementation of a solution to a problem in the software arts.” The claims were not “simply adding conventional computer components to well-known business practices.” In sum, the invention was not an abstract idea.
One of the representative claims approved by the Federal Circuit was a data storage and retrieval system for a computer memory, comprising:
Means for configuring said memory according to a logical table, said logical table including:
- A plurality of logical rows, each said logical 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 plurality 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.
This is the kind of claim which will be allowed by the PTO and upheld by the federal courts, and is a go-by in developing the kind of information and strategy for a software patent application.
Additional discussion of the Roadmap to Software Patentability from another new case can be found here.