IPR2013-00581
SAS Institute Inc v. ComplementSoft LLC
1. Case Identification
- Case #: IPR2013-00581
- Patent #: 7,110,936
- Filed: September 12, 2013
- Petitioner(s): SAS Institute, Inc.
- Patent Owner(s): ComplementSoft LLC
- Challenged Claims: 1-16
2. Patent Overview
- Title: System and Method for Generating and Maintaining Software Code
- Brief Description: The ’936 patent relates to an integrated development environment (IDE) for generating and maintaining source code. The disclosed system comprises four core components that work in concert: a document manager, an editor, a parser layer, and a visualizer.
3. Grounds for Unpatentability
Ground 1: Obviousness over Polo, Coad, and Oracle Primers - Claims 1-3, 6, 8, 10-12, 15-16 are obvious over Polo in view of Coad, Oracle Primer, and Oracle8 Primer.
- Prior Art Relied Upon: Polo (Patent 6,785,668), Coad (Patent 6,851,107), Oracle Primer (a 1999 publication), and Oracle8 Primer (a 1999 publication).
- Core Argument for this Ground:
- Prior Art Mapping: Petitioner argued that Polo, which discloses a system for analyzing the data flow of a database query, teaches the core IDE of claim 1, including a document manager, an editor, and a visualizer for displaying graphical representations of flows. To supply the claimed parser layer, Petitioner turned to Coad, a software development tool designed for use with multiple programming languages. Coad allegedly discloses a parser layer that detects the language of the source code and applies language-specific rules and logic. To satisfy the limitation that the source code is programmed in a “data manipulation language,” Petitioner cited Oracle Primer and Oracle8 Primer, which allegedly teach that languages like Java and C++ (used in Coad) can be used to access and manipulate database data, thus qualifying them as data manipulation languages.
- Motivation to Combine: A Person of Ordinary Skill in the Art (POSITA) would combine Polo with Coad to enhance Polo’s functionality. Specifically, incorporating Coad’s parser layer would allow Polo’s tool to analyze multiple programming languages, not just SQL. A POSITA would have been motivated to consult the Oracle primers to understand how the Java and C++ languages disclosed in Coad could be used to access database data, thereby enhancing their utility in the context of a tool like Polo’s.
- Expectation of Success: The combination involved integrating known software development components (an IDE, a multi-language parser) and applying them to well-understood database programming languages. Success would have been predictable as it relied on the conventional application of established software engineering principles.
Ground 2: Obviousness over Coad and Oracle Primers - Claims 2, 3, 6, 8, 10-12, 15-16 are obvious over Coad in view of Oracle Primer and Oracle8 Primer.
Prior Art Relied Upon: Coad (Patent 6,851,107), Oracle Primer (a 1999 publication), and Oracle8 Primer (a 1999 publication).
Core Argument for this Ground:
- Prior Art Mapping: This ground asserted that Coad, by itself, discloses an IDE with all the core components of independent claim 1: a document manager for retrieving files, an editor for modifying source code, a parser layer for detecting language and applying rules, and a visualizer for displaying graphical representations of flows. As in the first ground, the Oracle primers were relied upon to establish that the Java and C++ programming languages described in Coad are “data manipulation languages” because they can be used to access databases. This ground also provided detailed mapping for numerous dependent claims based on Coad’s disclosure of features like depicting data/program flows, retrieving code from remote computers, using templates, and executing code locally or remotely.
- Motivation to Combine: A POSITA developing a software tool like Coad would combine its teachings with the Oracle primers to enhance the tool's utility. The primers provide the necessary knowledge for using the Java and C++ languages to retrieve, insert, or modify data in a database, a common and desirable feature for any advanced IDE.
- Expectation of Success: Given that Coad is an IDE and the Oracle primers are instructional books on database programming, a POSITA would have had a high expectation of success in integrating these teachings to create a database-aware development environment.
Additional Grounds: Petitioner asserted numerous additional obviousness challenges based on variations of the core Polo and Coad combinations. These grounds typically added a single, well-known prior art reference to teach a specific feature recited in a dependent claim, such as adding Burkwald (Patent 6,356,285) for expandable/collapsible data flows, Antis (Patent 5,572,650) for retrieving all related files, Eick (Patent 5,937,064) for a security layer, Corda (Patent 5,758,122) for changing the appearance of flows to indicate errors, and “Building Applications” (a 1996 publication) for automatic error correction.
4. Key Claim Construction Positions
- "data manipulation language": Petitioner proposed construing this term as “a programming language used to access data in a database, such as to retrieve, insert, delete, or modify data in the database.” This construction was argued to be consistent with the ’936 patent’s specification and was adopted by the Board in the related IPR2013-00226 proceeding.
- "Means for allowing..." (Claim 11): Petitioner argued this is a means-plus-function element under 35 U.S.C. §112(6).
- Function: “allowing the source code to be executed both locally and remotely.”
- Structure: “one or more general purpose local computers and one or more general purpose remote computers... programmed to perform an algorithm for allowing source code to be executed both locally and remotely.”
5. Key Technical Contentions (Beyond Claim Construction)
- Petitioner contended that graphical diagrams in the Coad reference, which was central to most grounds, would be understood by a POSITA to depict "data flows" as required by claim 2. Specifically, Petitioner argued that Coad’s sequence diagrams (Fig. 14) and statechart diagrams (Fig. 16) inherently show data flow by illustrating the messages and parameters passed between objects and functions, thereby mapping the progression of data through the source code.
6. Arguments Regarding Discretionary Denial
- This petition was filed with a motion for joinder with a previously instituted IPR (IPR2013-00226) on the same patent. Petitioner argued that new grounds were presented based on a new primary reference, Polo. It was noted that while Polo was not applied during the original prosecution of the ’936 patent, the USPTO had recently applied Polo against the claims of a related continuation application, finding it disclosed subject matter nearly identical to that in the ’936 patent. This implicitly argued that the new art and grounds warranted review.
7. Relief Requested
- Petitioner requested institution of an inter partes review and cancellation of claims 1-16 of the ’936 patent as unpatentable.