6:22-cv-00997
Lower48 IP LLC v. Shopify Inc
I. Executive Summary and Procedural Information
- Parties & Counsel:
- Plaintiff: Lower48 IP LLC (Texas)
- Defendant: Shopify, Inc. (Canada)
- Plaintiff’s Counsel: The Mort Law Firm, PLLC; Daignault Iyer LLP
- Case Identification: 6:22-cv-00997, W.D. Tex., 01/03/2023
- Venue Allegations: Plaintiff alleges venue is proper because Defendant is a foreign corporation not residing in a U.S. judicial district and may therefore be sued in any judicial district.
- Core Dispute: Plaintiff alleges that Defendant’s e-commerce platform and associated APIs, which utilize the GraphQL query language, infringe four patents related to methods for transforming and manipulating hierarchical data structures.
- Technical Context: The technology relates to systems for efficiently representing and manipulating complex, hierarchical data by transforming it between different formats, such as tree structures and symbol strings, to improve database performance and reduce computational complexity.
- Key Procedural History: The complaint indicates that U.S. Patent No. 10,140,349 is a continuation of U.S. Patent No. 7,681,177, and U.S. Patent No. 11,194,777 is a continuation of U.S. Patent No. 11,100,070, establishing direct familial relationships between the asserted patents. No other significant procedural events are mentioned.
Case Timeline
| Date | Event |
|---|---|
| 2005-02-28 | Priority Date for ’177 and ’349 Patents |
| 2005-04-29 | Priority Date for ’070 and ’777 Patents |
| 2010-03-16 | U.S. Patent No. 7,681,177 Issues |
| 2018-11-27 | U.S. Patent No. 10,140,349 Issues |
| 2021-08-24 | U.S. Patent No. 11,100,070 Issues |
| 2021-12-07 | U.S. Patent No. 11,194,777 Issues |
| 2023-01-03 | Complaint Filed |
II. Technology and Patent(s)-in-Suit Analysis
U.S. Patent No. 7,681,177 - "Method and/or System for Transforming Between Trees and Strings"
- Patent Identification: U.S. Patent No. 7,681,177, "Method and/or System for Transforming Between Trees and Strings," issued March 16, 2010 (Compl. ¶15).
The Invention Explained
- Problem Addressed: The patent's background describes the manipulation of hierarchical data representations (such as in relational databases) as being "not straight-forward," "computationally complex or otherwise cumbersome." (Compl. ¶20; '177 Patent, col. 1:18-29).
- The Patented Solution: The invention provides techniques for transforming data between different formats, such as from a hierarchical tree structure to a string representation, to enable more efficient data manipulation (Compl. ¶22). The related '349 Patent describes this as transforming signal values for an expression from a "first view" to a "second view," and storing the result ('349 Patent, Abstract). The specification describes associating trees with symbol strings and numerals to facilitate these transformations ('349 Patent, col. 3:5-10).
- Technical Importance: This approach is intended to solve technological problems in database systems by improving efficiency, reducing data retrieval latency, and lowering processing overhead (Compl. ¶22).
Key Claims at a Glance
- The complaint asserts at least independent claim 45 (Compl. ¶43).
- Claim 45 requires:
- A method, comprising:
- executing instructions by a processor for transforming between one or more electrical digital signals representing at least a first expression and one or more electrical digital signals representing at least a second expression,
- wherein said expressions have a common view,
- wherein said common view is other than view one.
U.S. Patent No. 10,140,349 - "Method and/or System for Transforming Between Trees and Strings"
- Patent Identification: U.S. Patent No. 10,140,349, "Method and/or System for Transforming Between Trees and Strings," issued November 27, 2018 (Compl. ¶23).
The Invention Explained
- Problem Addressed: As a continuation of the '177 Patent, the '349 Patent addresses the same problem of computationally complex and cumbersome techniques for manipulating data in hierarchical arrangements ('349 Patent, col. 2:50-61).
- The Patented Solution: The patent discloses systems and methods for converting signal values for a first expression into a second expression "for more convenient processing and/or storage." ('349 Patent, Abstract). This transformation can be between expression types such as a "hierarchical edge and/or node labeled tree" and a "symbol string." ('349 Patent, claim 21). Figure 1 of the patent illustrates an example of an unordered tree structure with a root node and interconnected child nodes ('349 Patent, Fig. 1).
- Technical Importance: The invention is asserted to solve the same technological challenges as the '177 patent, aimed at improving the efficiency of database systems (Compl. ¶28).
Key Claims at a Glance
- The complaint asserts at least independent claim 21 (Compl. ¶48).
- Claim 21 requires:
- A method of executing computer instructions on at least one computing device, the method comprising executing computer instructions on at least one processor and storing any results in at least one memory;
- wherein the computer instructions comprise instructions for converting signal values for a first expression for more convenient processing and/or storage;
- wherein executing the converting instructions further comprises transforming the signal values for the first expression to signal values for a second expression, the first and second expressions having respective expression types; and
- the first and second expression types comprise at least one of a hierarchical edge and/or node labeled tree or a symbol string.
U.S. Patent No. 11,100,070 - "Manipulation and/or Analysis of Hierarchical Data"
- Patent Identification: U.S. Patent No. 11,100,070, "Manipulation and/or Analysis of Hierarchical Data," issued August 24, 2021 (Compl. ¶29).
Technology Synopsis
This patent addresses the technical problem that manipulating hierarchical data representations, such as those in relational databases, is computationally complex ('070 Patent, col. 1:18-29). The claimed invention is described as solving this problem by enabling database systems to function more efficiently, reducing data retrieval latency, and improving processing speeds (Compl. ¶35).
Asserted Claims
At least claim 1 (Compl. ¶56).
Accused Features
The complaint alleges that Shopify's products and services infringe by providing a "method of querying a database, or a portion thereof" (Compl. ¶57).
U.S. Patent No. 11,194,777 - "Manipulation and/or Analysis of Hierarchical Data"
- Patent Identification: U.S. Patent No. 11,194,777, "Manipulation and/or Analysis of Hierarchical Data," issued December 7, 2021 (Compl. ¶36).
Technology Synopsis
As a continuation of the '070 Patent, the '777 Patent addresses the same challenges related to the computational complexity of manipulating hierarchical data (Compl. ¶41). The invention relates to a method of querying a database by accessing instructions from physical memory, executing them on a processor, and storing the resulting signal values ('777 Patent, claim 1).
Asserted Claims
At least claim 1 (Compl. ¶64).
Accused Features
The accused functionality is a "method of querying a database" that involves accessing, executing, and storing instructions and resulting signal values (Compl. ¶65).
III. The Accused Instrumentality
Product Identification
The accused instrumentalities are the "Shopify GraphQL Products and Services" and the "Shopify GraphQL System" (Compl. ¶7, 9). This suite of products includes Shopify's Admin API, Storefront API, Partner API, Payment Apps API, Marketplaces API, and ShopifyQL API (Compl. ¶7).
Functionality and Market Context
The accused system utilizes the GraphQL query language, which the complaint notes has been used by major technology companies since 2012 (Compl. p. 10). The complaint alleges that Shopify's system processes a GraphQL query by parsing it into an "abstract syntax tree (or AST)" before validation and execution (Compl. p. 14). A visual in the complaint depicts a text-based query being converted into a corresponding hierarchical tree structure, labeled "Query represented as a tree" (Compl. p. 15). Shopify's Admin API is described as a "GraphQL-based alternative to the REST-based Admin API" that centralizes functionality at a single endpoint (Compl. p. 11).
IV. Analysis of Infringement Allegations
’177 Patent Infringement Allegations
| Claim Element (from Independent Claim 45) | Alleged Infringing Functionality | Complaint Citation | Patent Citation |
|---|---|---|---|
| executing instructions by a processor for transforming between...at least a first expression and...at least a second expression | The Shopify system executes instructions to transform a GraphQL query (the first expression) into an Abstract Syntax Tree (the second expression) | ¶44 | '349 Patent, col. 2:40-46 |
| wherein said expressions have a common view | The complaint alleges that the GraphQL query and the resulting Abstract Syntax Tree have a common view | ¶45 | '349 Patent, col. 5:1-6 |
| wherein said common view is other than view one | The complaint alleges that the common view is other than view one | ¶45 | '349 Patent, col. 5:1-6 |
’349 Patent Infringement Allegations
| Claim Element (from Independent Claim 21) | Alleged Infringing Functionality | Complaint Citation | Patent Citation |
|---|---|---|---|
| ...converting signal values for a first expression (e.g., a GraphQL query) for more convenient processing and/or storage | The Shopify system converts a GraphQL query for processing and storage | ¶49 | '349 Patent, col. 2:50-67 |
| ...transforming the signal values for the first expression to signal values for a second expression, (e.g. an Abstract Syntax Tree)... | A GraphQL query is parsed and converted into an Abstract Syntax Tree (AST). This process is illustrated with a diagram showing a text query and its corresponding tree representation (Compl. p. 28). | ¶51 | '349 Patent, Abstract |
| ...the first and second expression types comprise at least one of the following expression types: a hierarchical edge and/or node labeled tree or a symbol string | The complaint alleges that GraphQL operations are hierarchical and describe a "tree of information," and that the AST is a tree structure, while the initial GraphQL query is a symbol string (Compl. ¶52, citing GraphQL specification). | ¶52 | '349 Patent, col. 3:5-10 |
Identified Points of Contention
- Scope Questions: The infringement theory for both the ’177 and ’349 patents centers on whether the standard act of parsing a query language string into an AST falls within the patents' definition of "transforming." A central dispute may arise over whether "transforming" requires the specific mathematical associations between trees, numerals, and strings detailed in the specification, or if it can be read more broadly to cover any conversion between a string and a tree format.
- Technical Questions: A key question for the ’177 patent will be the meaning of "common view" and "view one." The complaint makes a conclusory allegation for these elements (Compl. ¶45) without providing detailed technical support for how a GraphQL query string and an AST share a "common view" that is "other than view one" as those terms are used in the patent.
V. Key Claim Terms for Construction
The Term: "transforming between ... a first expression and ... a second expression" ('177 Patent, claim 45)
- Context and Importance: This term is the foundation of the infringement allegation. Plaintiff's case appears to depend on this term covering the parsing of a GraphQL query into an AST. Practitioners may focus on this term because the defense will likely argue that "parsing" is a conventional and necessary step for any query language processor and is distinct from the specific transformations disclosed in the patent.
- Intrinsic Evidence for a Broader Interpretation: The claim language itself is broad. The '349 Patent specification (a continuation) discusses transformations more generally, stating the invention relates to "transforming the signal values for the first expression in a first view to signal values for the first expression in a second view" ('349 Patent, Abstract).
- Intrinsic Evidence for a Narrower Interpretation: The specification of the '349 Patent provides specific examples of transformations involving monadic "push" operations and associations with non-composite numerals derived from Kleene enumeration functions ('349 Patent, col. 4:1-13). A party could argue that "transforming" should be construed as limited to these specific types of mathematical conversions rather than general-purpose parsing.
The Term: "common view" ('177 Patent, claim 45)
- Context and Importance: The meaning of "common view" is critical, as Plaintiff must prove that the GraphQL query (first expression) and the AST (second expression) share this property. The complaint's lack of detail on this element suggests it will be a significant point of contention.
- Intrinsic Evidence for a Broader Interpretation: The specification of the '349 Patent notes that an expression can have different "views," such as a two-valued or three-valued edge labeled tree, depending on the set of distinct values used for labels ('349 Patent, col. 5:1-10). Plaintiff may argue that because both the query and the AST ultimately represent the same underlying data relationships, they share a "common view" of that data hierarchy.
- Intrinsic Evidence for a Narrower Interpretation: The specification links the concept of a "view" to the number of distinct values used for edge labels in a tree structure ('349 Patent, col. 5:1-10). A party could argue that a symbol string and a hierarchical tree are fundamentally different types of expressions that cannot, by definition within the patent, share a "common view."
VI. Other Allegations
The complaint does not contain counts for indirect or willful infringement.
VII. Analyst’s Conclusion: Key Questions for the Case
- A core issue will be one of definitional scope: can the term "transforming," which the patents describe in the context of specific mathematical associations between trees, strings, and numerals, be construed to cover the general-purpose act of parsing a GraphQL query string into an Abstract Syntax Tree?
- A key question of claim construction will be the meaning of "common view" as used in claim 45 of the ’177 patent. The viability of the infringement allegation for this patent may depend on whether Plaintiff can demonstrate that a symbol string and a tree data structure can share a "common view" as that term is understood in the context of the patent's specification.