Domain-specific language for dataset transformations

Information

  • Patent Grant
  • 11080296
  • Patent Number
    11,080,296
  • Date Filed
    Tuesday, March 6, 2018
    6 years ago
  • Date Issued
    Tuesday, August 3, 2021
    3 years ago
  • CPC
    • G06F16/258
    • G06F16/2282
    • G06F16/23
    • G06F16/24539
    • G06F16/254
    • G06F16/9024
    • G06F16/9027
  • Field of Search
    • US
    • NON E00000
  • International Classifications
    • G06F16/20
    • G06F16/25
    • G06F16/23
    • G06F16/22
    • G06F16/901
    • G06F16/2453
    • Disclaimer
      This patent is subject to a terminal disclaimer.
      Term Extension
      566
Abstract
Techniques related to a domain-specific language for transformations are disclosed. A server computer may process a table definition composed in a domain-specific language. The table definition may include a sequence of one or more transformations to be performed on one or more source tables to generate a target table. The sequence may include a customized transformation. A source dataset may be provided as input to an implementation of the customized transformation. An output dataset may be generated as a result of executing the implementation. An intermediate table may be generated based on performing at least one transformation on a particular source table. A supplemental portion for the intermediate table may be generated based on performing the at least one transformation on an appended portion of the particular source table. The target table may be generated based on combining the supplemental portion with the intermediate table.
Description
FIELD OF THE DISCLOSURE

Embodiments relate to database technology and more specifically, to a domain-specific language for dataset transformations.


BACKGROUND

The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.


A database management system (DBMS) supports generating and modifying stored data. For example, a data definition language (DDL) or a data manipulation language (DML) may be used to interact with a database. However, database interactions may be limited to the basic operations available in the DDL or DML. Furthermore, complex operations written using these basic operations may be error-prone and result in slow processing times.


A DBMS may manage multiple datasets, and data in different datasets are often related by dependencies. Thus, a data change in one dataset may require propagating the data change to another dataset. However, propagating data changes to datasets may involve re-computing an entire dataset. This may tie up computing resources, especially if the data change is relatively small compared to unchanged data.





BRIEF DESCRIPTION OF THE DRAWINGS

In the drawings:



FIG. 1 depicts an example computer architecture on which embodiments may be implemented.



FIG. 2 depicts an example graphical representation of a table definition that includes dataset transformations.



FIG. 3 depicts a detailed view of a dataset transformation, in an example embodiment.



FIG. 4 depicts an example optimization involving parallel computing.



FIGS. 5A-B depict example graphical representations of incremental computation.



FIG. 6 is a flow diagram that depicts an approach for executing a table definition.



FIG. 7 is a flow diagram that depicts an approach for performing incremental computation.



FIG. 8 depicts a computer system upon which an embodiment may be implemented.





While each of the drawing figures depicts a particular embodiment for purposes of depicting a clear example, other embodiments may omit, add to, reorder, and/or modify any of the elements shown in the drawing figures. For purposes of depicting clear examples, one or more figures may be described with reference to one or more other figures, but using the particular arrangement depicted in the one or more other figures is not required in other embodiments.


DETAILED DESCRIPTION

In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. It will be apparent, however, that the present disclosure may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present disclosure. Modifiers such as “first” and “second” may be used to differentiate elements, but the modifiers do not necessarily indicate any particular order. For example, a second dataset may be so named although, in reality, it may correspond to a first, second, and/or third dataset.


General Overview

In an embodiment, a domain-specific language (DSL) may interface with an existing DDL and/or DML to offer greater flexibility. For example, the DSL may facilitate generating and/or manipulating datasets stored in volatile and/or non-volatile memory. Datasets may be manipulated based on commands referred to herein as “dataset transformations”. Dataset transformations may be created and/or customized by an end user of the DSL. Each dataset transformation may generate an output dataset based on one or more input datasets.


Zero or more dataset transformations may be included in a table definition. The table definition may generate an output table based on zero or more input tables. A sequence for the one or more dataset transformations may be determined based on a graphical representation of the one or more dataset transformations.


The DSL may support efficiently updating tables based on an incremental computation without explicitly invoking the incremental computation. The incremental computation may avoid re-computing a particular table to reflect an update to a dependent table. Instead, the incremental computation may involve performing one or more dataset transformations on a portion of the dependent table that includes the update. The transformed portion may then be incorporated into an older version of the particular table to generate a new version of the particular table that reflects the update.


Example System Environment


FIG. 1 depicts an example computer architecture on which embodiments may be implemented. Referring to FIG. 1, storage computer 100 is communicatively coupled to server computer 104, which is communicatively coupled to client computer 108. Storage 100 includes source tables 102. Server computer 104 includes references 106 to source tables 102. Client computer 108 includes client application 110.


Storage 100 may include one or more database servers, one or more storage devices, and/or one or more of any other system for maintaining source tables 102. For example, storage 100 may be a repository that supports maintaining multiple versions of each source table 102 in such a manner that enables merging changes at any time that is convenient.


Tables (e.g., source tables 102, target tables) may include tabular data that is persisted in storage 100 and/or server computer 104. For example, source tables 102 may be distributed database tables that are stored in a collective non-volatile memory of a cluster of database computers. Tables may be stored in any format, such as JavaScript Object Notation (JSON), Extensible Markup Language (XML), comma-separated values (CSV), a B-tree, and/or a binary encoding.


Server computer 104 may generate tables and/or datasets (e.g., unpersisted data). Server computer 104 may materialize datasets and store them in a volatile memory. Server computer 104 may cause particular datasets to be stored as tables in a non-volatile memory and/or storage 100.


Server computer 104 may include one or more web servers, one or more file servers, and/or one or more of any other interface between storage 100 and client computer 108. Server computer 104 may store copies of tables and/or references 106 to the tables.


References 106 may include pointers, memory addresses, symbolic links, and/or any other indirect reference to a table. Storing references 106 to tables may reduce memory usage and enable data integration in O(1) time.


Storage 100 may be on a separate device from server computer 104. Alternatively, storage 100 may be a persistent storage on server computer 104. Storage 100 and server computer 104 may communicate using a Representational State Transfer (REST) application programming interface (API), a Simple Object Access Protocol (SOAP), and/or any other set of constraints for exchanging information. Source tables 102 in any of a number of different formats may be uploaded to storage 100 and/or server computer 104 based on a plugin that causes source tables 102 to be stored in a common format.


Client application 110 may be a browser, an integrated development environment (IDE), and/or any other user interface. Client application 110 may enable composing a table definition in a DSL. As shall be described in greater detail hereafter, the table definition may include a sequence of one or more dataset transformations to be performed on one or more source tables 102 to generate a target table. The one or more dataset transformations may define the contents of the target table.


The DSL may be independent and different from a DDL and/or a DML used with source tables 102. In other words, server computer 104 may translate between a DSL used with client application 110 and a DDL and/or DML used with source tables 102.


A “computer” may be one or more physical computers, virtual computers, and/or computing devices. As an example, a computer may be one or more server computers, cloud-based computers, cloud-based cluster of computers, virtual machine instances or virtual machine computing elements such as virtual processors, storage and memory, data centers, storage devices, desktop computers, laptop computers, mobile devices, and/or any other special-purpose computing devices. A computer may be a client and/or a server. Any reference to “a computer” herein may mean one or more computers, unless expressly stated otherwise.


Example Table Definitions


FIG. 2 depicts an example graphical representation of a table definition that includes dataset transformations. Referring to FIG. 2, directed acyclic graph 200 includes leaf node 202 and non-leaf node 204. Leaf node 202 includes source tables 102A-B. Non-leaf node 204 includes transformations 206A-B and customized transformation 208. Target table 210 is generated based on performing transformations 206A-B and customized transformation 208 on source tables 102A-B.


A directed acyclic graph 200 may be a graphical representation of a table definition for a target table 210. The table definition may include one or more dataset transformations (e.g., transformations 206A-B, customized transformation 208) to be performed on one or more source tables 102. The one or more dataset transformations may be represented as verbs, such as “aggregate”, “sort”, and “drop”, that describe an operation that is to be performed in terms of the problem domain instead of how to perform the operation as a sequence of programming language primitives. In other words, table definitions may be composed using declarative programming.


For example, table definition 1 generates target table 210 based on performing transformation 206A on source table 102A.












Table definition 1:

















line 1: newTable(“target table 210”) {










line 2:
startWith “source table 102A”



line 3:
transformation 206A









line 4: }










Line 3 of table definition 1 indicates that transformation 206A is performed. However, in an embodiment, line 3 may indicate that customized transformation 208 is performed. Dataset transformations shall be described in greater detail hereafter.


In the example of FIG. 2, directed acyclic graph 200 may be a graphical representation of table definition 2. Table definition 2 generates target table 210 based on performing transformations 206A-B and customized transformation 208 on source tables 102A-B.












Table definition 2:

















line 1: newTable(“target table 210”) {










line 2:
startWith “source table 102A”



line 3:
transformation 206A



line 4:
transformation 206B [ “dataset” ]









line 5: }



line 6: privateTable(“dataset”) {










line 7:
startWith “source table 102B”



line 8:
customized transformation 208









line 9: }










Lines 6-9 of table definition 2 appear to be a separate table definition but may operate more like a dataset definition. Typically, “dataset” is materialized but remains unpersisted. In effect, lines 6-9 may be analogous to a Structured Query Language (SQL) CREATE VIEW statement. The dataset resulting from lines 6-9 may be transparent only to table definition 2.


Declarative programming may be used to express the logic of a table definition without describing the control flow of the table definition. Thus, a sequence for the one or more dataset transformations may be determined based on the graphical representation. In the example of FIG. 2, directed acyclic graph 200 indicates that both transformation 206A and customized transformation 208 must be performed prior to transformation 206B. However, transformation 206A and customized transformation 208 may be performed at any time relative to each other.


The directed acyclic graph 200 may include zero or more leaf nodes 202 and zero or more non-leaf nodes 204. The zero or more leaf nodes 202 may represent zero or more tables. In the example of FIG. 2, each leaf node 202 corresponds to a source table 102. In an embodiment, a target table 210 may also be represented by a leaf node 202. Each non-leaf node 204 may represent a dataset transformation.


Example Dataset Transformations


FIG. 3 depicts a detailed view of a dataset transformation, in an example embodiment. Referring to FIG. 3, dataset transformation 302 causes generating output dataset 304 based on an input of source dataset 300. Dataset transformation 302 includes implementation 306.


A dataset (e.g., source dataset 300, output dataset 304) may be a collection of data that is stored in storage 100 and/or server computer 104. Datasets may be stored in a volatile memory and/or persisted in a non-volatile memory. Datasets that are persisted may be called tables.


A dataset that is taken as an input of a dataset transformation 302 is called a source dataset 300, and a dataset that is generated as an output of a dataset transformation 302 is called an output dataset 304. In the example of FIG. 2, source table 102A is a source dataset 300 for transformation 206A, and an output dataset 304 for transformation 206A is a source dataset 300 for transformation 206B. Likewise, source table 102B is a source dataset 300 for customized transformation 208, and an output dataset 304 for customized transformation 208 is a source dataset 300 for transformation 206B. Thus, transformation 206B generates an output dataset 304 based on multiple source datasets 300. The output dataset 304 for transformation 206B becomes target table 210 when it is persisted.


A dataset transformation 302 may be any of a number of operations that are performed on one or more datasets to generate yet another dataset. Each dataset transformation may be associated with an implementation 306 that includes code for causing a particular operation to be performed. As mentioned above, dataset transformations 302 may describe what is to be accomplished without describing how to accomplish it. Thus, an implementation 306 may describe how a dataset transformation 302 is to be performed.


Referring to FIG. 3, dataset transformation 302 may be transformation 206A, transformation 206B, or customized transformation 208 of FIG. 2. Thus, dataset transformation 302 may be an operation that is available in a DSL by default (e.g., transformation 206A-B) or an operation that is defined by an end user of the DSL (e.g., customized transformation 208).


For example, in FIG. 2, source table 102A may represent the following table:













ID
Major







1
Peace Studies


2
Software Engineering


3
Computer Engineering









Transformation 206A may be an operation that filters out non-engineering majors. An implementation 306 of transformation 206A may include a function that compares each string value in a particular column with the string values in an enumerated list and returns a Boolean value. Source table 102A may be a source dataset 300 that is provided as input to transformation 206A to generate an output dataset 304 that represents the following data:













ID
Major







2
Software Engineering


3
Computer Engineering









Source table 102B may represent the following table:
















ID
GPA









1
2.0



2
1.7



3
0.9



4
1.5










Customized transformation 208 may be an operation that increments numeric values by two. An implementation 306 of customized transformation 208 may include a function that adds two to each numeric value in a particular column. Thus, source table 102B may be a source dataset 300 that is provided as input to customized transformation 208 to generate an output dataset 304 that represents the following data:
















ID
GPA









1
4.0



2
3.7



3
2.9



4
3.5










Transformation 206B may be an operation that joins datasets into a composite dataset based on matching values in a respective column of each dataset. An implementation 306 of transformation 206B may include a function that performs an operation similar to a SQL INNER JOIN operation. For example, the output datasets 304 for transformation 206A and customized transformation 208 may be provided as input to transformation 206B to generate an output dataset 304 that represents the following data:














ID
Major
GPA







2
Software Engineering
3.7


3
Computer Engineering
2.9










If this data is persisted, it may be called target table 210.


Example Parallel Computing Optimization


FIG. 4 depicts an example optimization involving parallel computing. Referring to FIG. 4, processes 400A-B perform transformation 206A and customized transformation 208 in parallel to generate target table 210 based on source tables 102A-B.


Processes 400A-B may exist on a single computer or on multiple computers. For example, processes 400A-B may represent different threads on server computer 104 or two different server computers 104.


As mentioned above, a sequence of one or more dataset transformations 302 may be determined based on a graphical representation of the one or more dataset transformations 302. For example, the graphical representation depicted in FIG. 2 may indicate that transformation 206A and customized transformation 208 may be performed concurrently in a multi-threaded application.


Example Incremental Computation Optimization

When a source table 102 is updated with a data change, the data change may be incorporated into a table that depends on the source table 102. However, incorporating the data change may involve completely rebuilding the table that depends on the source table 102. For example, at T1, a particular table may be generated based on performing a particular dataset transformation 302 on a source table 102. At T2, the source table 102 may be updated. Thus, at T3, the particular dataset transformation 302 may be performed on the updated source table 102 to generate an updated version of the particular table.


Completely rebuilding a table may be computationally intensive, especially if updates are frequent. Furthermore, in some situations, completely rebuilding a table may inefficiently incorporate updates. For example, in the example datasets above for FIG. 2, source table 102A may be updated to generate the following table:













ID
Major







1
Peace Studies


2
Software Engineering


3
Computer Engineering


4
Electrical Engineering










Note that the updated source table is generated based on appending the last row to the previous version of source table 102A. In this situation, instead of performing relevant dataset transformations 302 on the updated source table in its entirety, it would be more efficient to perform the relevant dataset transformations 302 on an appended portion (e.g., the last row) of the updated source table. The transformed appended portion may then be combined with the table previously generated based on the previous version of source table 102A. This is called incremental computation.



FIGS. 5A-B depict example graphical representations of incremental computation. Referring to FIG. 5A, intermediate table 500 is generated based on performing transformations 206A-B and customized transformation 208 on source tables 102A-B. Supplemental portion 504 is generated based on performing transformations 206A-B and customized transformation 208 on appended portion 502 and source table 102B. However, in an embodiment (e.g., FIG. 5B), supplemental portion 504 may be generated based on performing one or more transformations 206 on source table 102A as well as appended portion 502. Target table 508 is generated based on performing transformation 506 on intermediate table 500 and supplemental portion 504. Note that incremental computation may be an optimization that is performed without an end user specifying transformation 506 and any of the operations used to generate supplemental portion 504.


Intermediate table 500 of FIG. 5A corresponds to target table 210 of FIG. 2. Intermediate table 500 is generated and persisted prior to generating supplemental portion 504. Thus, intermediate table 500 may be retrieved from storage 100 and/or server computer 104 prior to generating target table 508.


In the example of FIG. 5A, appended portion 502 is a portion of an updated source table that was appended to a previous version of source table 102A. Although depicted in the example updated source table above as the last row, appended portion 502 may be data that is added at any of a number of locations. For example, appended portion 502 may be a new first row, a new column, etc.


A supplemental portion 504 may be a portion of an intermediate table 500 that reflects an update to a source table 102. The supplemental portion 504 may be generated based on performing a set of one or more dataset transformations 302 on an appended portion 502 and/or one or more source tables 102. The set of one or more dataset transformations 302 may be similar to that used to generate an intermediate table 500. In FIG. 5A, supplemental portion 504 may represent the following data:














ID
Major
GPA







4
Electrical Engineering
3.5










Supplemental portion 504 may be a dataset and/or a table.


Transformation 506 may be an operation that combines one dataset with another dataset to generate a composite dataset. In the example of FIG. 5A, intermediate table 500 and supplemental portion 504 are provided as input to transformation 506 to generate an output dataset 304 that represents the following data:














ID
Major
GPA







2
Software Engineering
3.7


3
Computer Engineering
2.9


4
Electrical Engineering
3.5










If this data is persisted, it may be called target table 508.


Referring to FIG. 5B, transformation 206C may be similar to or different from transformation 206A, and transformation 206D may be similar to or different from transformation 206B. FIG. 5B differs from FIG. 5A in that supplemental portion 504 depends on source table 102A as well as appended portion 502. For example, in FIG. 5B, transformation 206A may be an operation that takes the last two rows of source table 102A. However, appended portion 502 may consist of only one row. Thus, transformation 206C may take as input the last row of source table 102A in addition to appended portion 502.


Approach for Determining Availability of Incremental Computation

Incremental computation may be an optimization that is available for deriving a target table 508 based on one or more criteria. The one or more criteria may include one or more of the following:

    • an incremental status of a source table 102A
    • an incremental computability of a dataset transformation 302


Incremental Status of a Source Table

An incremental status of a source table 102A refers to a manner in which an update is incorporated into the source table 102A. An incremental status of “full” indicates that a target table 210 that depends on an updated source table must be completely rebuilt, whereas an incremental status of “incremental” indicates that incremental computation may be used to generate a target table 508 based on the updated source table. For example, a source table 102B without any updates may have an incremental status of “full”. Similarly, if an update replaces any data in a source table 102A, the source table 102A may have an incremental status of “full”. In contrast, an update that adds data to a source table 102A without replacing any data in the source table 102A may have an incremental status of “incremental”.


A target table 508 may be derived based on incremental computation if the target table 508 depends on at least one source table 102A with an incremental status of “incremental”. In other words, incremental computation may be available if at least one source table 102A incorporates an update by appending the update.


Incremental Computability of a Dataset Transformation

An incremental computability of a dataset transformation 302 may be categorized as one or more of the following:

    • a “concatenate” type
    • a “merge and append” type
    • a “merge and replace” type
    • an “impossible” type


A “concatenate” type corresponds to a dataset transformation 302 that can be computed efficiently by appending data to a previous result of the dataset transformation 302 without requiring access to the previous result. For example, a “rename” transformation may correspond to a “concatenate” type, because the “rename” transformation can change the name of a column in an update without accessing a previous renaming of the column.


Like the “concatenate” type, a “merge and append” type corresponds to a dataset transformation 302 that can be computed efficiently by appending data to a previous result of the dataset transformation 302. However, the “merge and append” type requires access to the previous result. For example, a “distinct” transformation may correspond to a “merge and append” type, because the “distinct” transformation removes duplicate rows. Removing duplicate rows in an update cannot be performed confidently without checking for duplicate rows between the update and, for example, the previous result of removing duplicate rows.


A “merge and replace” type corresponds to a dataset transformation 302 that can be computed efficiently by replacing data in a previous result of the dataset transformation 302. Like the “merge and append” type, the “merge and replace” type requires access to the previous result. For example, an “aggregate” transformation consisting of a “sum” operation may correspond to a “merge and replace” type, because the “sum” operation calculates a subtotal for an update, which is then added to a previous total to calculate a new total that replaces the previous total.


An “impossible” type corresponds to a dataset transformation 302 that cannot take advantage of a previous result to perform incremental computation. In other words, the “impossible” type may correspond to a dataset transformation 302 that does not correspond to one of the aforementioned types. For example, an “aggregate” transformation including a “mostFrequentValue” operation may correspond to an “impossible” type, because the statistical mode of a previous result does not necessarily inform the statistical mode of an updated set of data.


Like source tables 102, dataset transformations 302 may be associated with an incremental status. An incremental status of “full” corresponds to a “merge and replace” type of incremental computability. However, an incremental status of “incremental” corresponds to either a “concatenate” type or a “merge and append” type of incremental computability.


A dataset transformation 302 may be associated with multiple types of incremental computability based on one or more dependencies of the dataset transformation 302. The one or more dependencies may include source tables 102 and/or other dataset transformations that provide input to the dataset transformation 302. For example, a dataset transformation 302 with two dependencies may correspond to a “concatenate” type if the first dependency has an incremental status of “incremental”, a “merge and append” type if the second dependency has an incremental status of “incremental”, and an “impossible” type if each dependency has an incremental status of “incremental”.


Furthermore, a dependency of a dataset transformation 302 may be characterized as “reversible” if the dependency can be reconstructed from an output of the dataset transformation 302. In other words, a reversible dependency may be a dependency that can be derived based on performing an inverse dataset transformation on an output dataset 304. For example, a source dataset 300 of a dataset transformation 302 that adds one to particular values is “reversible”, because an output dataset 304 of the dataset transformation 302 can be subjected to an inverse operation that subtracts one from the particular values to derive the source dataset 300.


In an embodiment, incremental computation may be available if both of the following criteria are satisfied:

    • Each dataset transformation 302 with at least one dependency that has an incremental status of “incremental” corresponds to a “concatenate” type, a “merge and append” type, and/or a “merge and replace” type of incremental computability.
    • Each dependency that is and/or depends on a dataset transformation 302 corresponding to a “merge and append” type and/or a “merge and replace” type of incremental computability is a reversible dependency.


Example Incremental Computation Analysis

In the example of FIG. 5A, source table 102A has an incremental status of “incremental”, and source table 102B has an incremental status of “full”. Since source table 102A is a dependency of transformation 206A, the incremental computability of transformation 206A must be assessed. Thus, in order for target table 508 to be generated based on incremental computation, transformation 206A must correspond to a “concatenate” type, a “merge and append” type, and/or a “merge and replace” type of incremental computability.


Transformation 206A may be an operation that filters out non-engineering majors. Since two portions of a dataset can be filtered independently and then combined to yield the same result as filtering the dataset in its entirety, transformation 206A corresponds to a “concatenate” type of incremental computability. Furthermore, since a dataset transformation 302 corresponding to a “concatenate” type is a dependency that has an incremental status of “incremental,” transformation 206A has an incremental status of “incremental”. Thus, in order for target table 508 to be generated based on incremental computation, the incremental computability of transformation 206B must also be assessed.


Transformation 206B may be analogous to a SQL INNER JOIN operation. Since performing transformation 206B on a dataset in its entirety yields the same result as combining two portions of the dataset upon which transformation 206B has been performed separately, transformation 206B corresponds to a “concatenate” type of incremental computability.


Note that transformation 506 is irrelevant to determining whether target table 508 can be generated based on incremental computation, because transformation 506 will become part of the implementation of incremental computation once it is determined to be appropriate. In other words, only the dataset transformations 302 depicted in FIG. 2 are relevant to the incremental computation analysis.


As a result of the foregoing incremental computation analysis, server computer 104 may determine that target table 508 can be generated using incremental computation. Server computer 104 may be configured to perform incremental computation whenever server computer 104 determines that incremental computation is available.


Approach for Executing a Table Definition


FIG. 6 is a flow diagram that depicts an approach for executing a table definition. At block 600, a server computer 104 may process a dataset transformation 302. The dataset transformation 302 may be included in a table definition that was received from a client computer 108. The table definition may be composed in a DSL. The DSL may be specialized for expressing dataset transformations 302 using declarative programming.


At block 602, the server computer 104 may obtain an implementation 306 of the dataset transformation 302. The table definition may exclude the implementation 306 to facilitate manipulating data. The implementation 306 may be obtained from a separate file at the server computer 104.


At block 604, the server computer 104 may provide the implementation 306 with one or more source datasets 300 as input. The one or more source datasets 300 may be retrieved from a storage 100 and/or from the server computer 104. For example, the server computer 104 may rebuild a source dataset 300 that was previously retrieved from a storage 100 but subsequently removed from a volatile memory due to a failure. Rebuilding lost datasets may be based on logs maintained by the server computer 104 that record a lineage (e.g., a table definition, source datasets 300, dataset transformations 302) of a lost dataset.


At block 606, the server computer 104 may generate an output dataset 304 based on executing the implementation 306. The output dataset 304 may be a transformed source dataset and/or a composite of multiple source datasets 300. The output dataset 304 may be stored in volatile memory.


At block 608, the server computer 104 may determine whether the table definition includes any subsequent dataset transformations 302. A subsequent dataset transformation 302 may be determined based on a graphical representation of the table definition. If the table definition includes any subsequent dataset transformations 302, the output dataset 304 may be used as a source dataset 300 for an immediately subsequent dataset transformation 302. Processing the immediately subsequent dataset transformation 302 may involve a process (not shown) similar to repeating blocks 600-606. However, if the table definition fails to include any subsequent dataset transformations 302, block 608 may proceed to block 610.


At block 610, the server computer 104 may generate a target table 210, 508 based on persisting the output dataset 304. The target table 210, 508 may be stored at server computer 104 and/or storage 100.


Approach for Performing Incremental Computation


FIG. 7 is a flow diagram that depicts an approach for performing incremental computation. At block 700, a server computer 104 may identify dataset transformations 302 with a dependency that has an incremental status of “incremental”. In other words, the server computer 104 may determine whether one or more source tables 102 were updated based on appending (e.g., adding without replacing) data. Furthermore, the server computer 104 may identify any dataset transformations 302 that depend directly or indirectly on the one or more source tables 102 and determine whether any dataset transformations 302 have an incremental status of “incremental”. Thus, block 700 may be performed concurrently with block 702.


At block 702, the server computer 104 may determine whether each dataset transformation 302 identified at block 700 corresponds to a “concatenate” type, a “merge and append” type, and/or a “merge and replace” type of incremental computability. If each dataset transformation 302 is determined to correspond to an incremental computability type other than an “impossible” type, block 702 proceeds to block 704. Otherwise, the incremental computation analysis ends and incremental computation is determined to be unavailable.


At block 704, the server computer 104 may identify any dependencies that are or depend on a dataset transformation corresponding to a “merge and append” type and/or a “merge and replace” type. Incremental computation may still be available if such dependencies are reversible.


At block 705, the server computer 104 may determine whether each dependency identified at block 704 is reversible. If any of the identified dependencies is not reversible, the incremental computation analysis ends and incremental computation is determined to be unavailable. Otherwise, block 705 proceeds to block 706.


At block 706, the server computer 104 may obtain an intermediate table 500 generated based on performing one or more dataset transformations 302 on a source table 102. Although depicted in FIG. 7 as being performed after block 700, block 706 may be performed prior to block 700, after block 708, or at any other suitable time. For example, block 706 of FIG. 7 may correspond to block 610 of FIG. 6.


At block 708, the server computer 104 may generate a supplemental portion 504 for the intermediate table 500 based on performing the one or more dataset transformations 302 on at least an appended portion 502 of the source table 102. In an embodiment, the one or more dataset transformations 302 may also be performed on the source table 102.


At block 710, the server computer 104 may generate a target table 210, 508 based on combining the supplemental portion 504 with the intermediate table 500. Combining the supplemental portion 504 with the intermediate table 500 may involve performing a dataset transformation 302 on the supplemental portion 504 and the intermediate table 500. For example, combining the supplemental portion 504 with the intermediate table 500 may involve performing a square root operation to derive subtotals for the supplemental portion 504 and the intermediate table 500, adding the subtotals to derive a total, and squaring the total. An output dataset 304 of the dataset transformation 302 may be persisted to generate the target table 210, 508.


Hardware Overview

According to one embodiment, the techniques described herein are implemented by one or more special-purpose computing devices. The special-purpose computing devices may be hard-wired to perform the techniques, or may include digital electronic devices such as one or more application-specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs) that are persistently programmed to perform the techniques, or may include one or more general purpose hardware processors programmed to perform the techniques pursuant to program instructions in firmware, memory, other storage, or a combination. Such special-purpose computing devices may also combine custom hard-wired logic, ASICs, or FPGAs with custom programming to accomplish the techniques. The special-purpose computing devices may be desktop computer systems, portable computer systems, handheld devices, networking devices or any other device that incorporates hard-wired and/or program logic to implement the techniques.


For example, FIG. 8 is a block diagram that depicts a computer system 800 upon which an embodiment may be implemented. Computer system 800 includes a bus 802 or other communication mechanism for communicating information, and a hardware processor 804 coupled with bus 802 for processing information. Hardware processor 804 may be, for example, a general purpose microprocessor.


Computer system 800 also includes a main memory 806, such as a random access memory (RAM) or other dynamic storage device, coupled to bus 802 for storing information and instructions to be executed by processor 804. Main memory 806 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 804. Such instructions, when stored in non-transitory storage media accessible to processor 804, render computer system 800 into a special-purpose machine that is customized to perform the operations specified in the instructions.


Computer system 800 further includes a read only memory (ROM) 808 or other static storage device coupled to bus 802 for storing static information and instructions for processor 804. A storage device 810, such as a magnetic disk or optical disk, is provided and coupled to bus 802 for storing information and instructions.


Computer system 800 may be coupled via bus 802 to a display 812, such as a cathode ray tube (CRT), for displaying information to a computer user. An input device 814, including alphanumeric and other keys, is coupled to bus 802 for communicating information and command selections to processor 804. Another type of user input device is cursor control 816, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 804 and for controlling cursor movement on display 812. This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane.


Computer system 800 may implement the techniques described herein using customized hard-wired logic, one or more ASICs or FPGAs, firmware and/or program logic which in combination with the computer system causes or programs computer system 800 to be a special-purpose machine. According to one embodiment, the techniques herein are performed by computer system 800 in response to processor 804 executing one or more sequences of one or more instructions contained in main memory 806. Such instructions may be read into main memory 806 from another storage medium, such as storage device 810. Execution of the sequences of instructions contained in main memory 806 causes processor 804 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions.


The term “storage media” as used herein refers to any non-transitory media that store data and/or instructions that cause a machine to operation in a specific fashion. Such storage media may comprise non-volatile media and/or volatile media. Non-volatile media includes, for example, optical or magnetic disks, such as storage device 810. Volatile media includes dynamic memory, such as main memory 806. Common forms of storage media include, for example, a floppy disk, a flexible disk, hard disk, solid state drive, magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip or cartridge.


Storage media is distinct from but may be used in conjunction with transmission media. Transmission media participates in transferring information between storage media. For example, transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 802. Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications.


Various forms of media may be involved in carrying one or more sequences of one or more instructions to processor 804 for execution. For example, the instructions may initially be carried on a magnetic disk or solid state drive of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computer system 800 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal. An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data on bus 802. Bus 802 carries the data to main memory 806, from which processor 804 retrieves and executes the instructions. The instructions received by main memory 806 may optionally be stored on storage device 810 either before or after execution by processor 804.


Computer system 800 also includes a communication interface 818 coupled to bus 802. Communication interface 818 provides a two-way data communication coupling to a network link 820 that is connected to a local network 822. For example, communication interface 818 may be an integrated services digital network (ISDN) card, cable modem, satellite modem, or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface 818 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface 818 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.


Network link 820 typically provides data communication through one or more networks to other data devices. For example, network link 820 may provide a connection through local network 822 to a host computer 824 or to data equipment operated by an Internet Service Provider (ISP) 826. ISP 826 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the “Internet” 828. Local network 822 and Internet 828 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link 820 and through communication interface 818, which carry the digital data to and from computer system 800, are example forms of transmission media.


Computer system 800 can send messages and receive data, including program code, through the network(s), network link 820 and communication interface 818. In the Internet example, a server 830 might transmit a requested code for an application program through Internet 828, ISP 826, local network 822 and communication interface 818.


The received code may be executed by processor 804 as it is received, and/or stored in storage device 810, or other non-volatile storage for later execution.


In the foregoing specification, embodiments have been described with reference to numerous specific details that may vary from implementation to implementation. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense. The sole and exclusive indicator of the scope of the disclosure, and what is intended by the applicants to be the scope of the disclosure, is the literal and equivalent scope of the set of claims that issue from this application, in the specific form in which such claims issue, including any subsequent correction.

Claims
  • 1. A data processing method comprising: retrieving an intermediate table that was generated based in part on performing a first transformation of one or more transformations on a version of a particular source table, wherein the one or more transformations are performable on one or more source tables to generate a target table;generating a supplemental portion for the intermediate table based in part on performing a second transformation on an appended portion of an updated version of the particular source table;generating the target table based in part on performing a third transformation on the intermediate table and the supplemental portion for the intermediate table,wherein the method is performed by one or more computing devices.
  • 2. The method of claim 1, wherein the first transformation and the second transformation are each dataset transformations and are different dataset transformations.
  • 3. The method of claim 1, wherein the second transformation and the third transformation are performed without being specified by an end user.
  • 4. The method of claim 1, wherein generating the supplemental portion comprises performing a fourth transformation on an output dataset of the first transformation and an output dataset of the second transformation.
  • 5. The method of claim 4, wherein the fourth transformation is reversible.
  • 6. The method of claim 1, wherein the target table is generated based on persisting an output dataset of the third transformation.
  • 7. The method of claim 1, wherein a sequence of one or more transformations is determined based on a graphical representation of the one or more transformations.
  • 8. The method of claim 7, wherein the graphical representation is a directed acyclic graph.
  • 9. The method of claim 7, wherein the graphical representation comprises one or more leaf nodes and one or more non-leaf nodes, the one or more leaf nodes representing one or more tables, the one or more non-leaf nodes representing the one or more transformations.
  • 10. The method of claim 1, wherein one or more references to the one or more source tables are stored at a server computer, without copies of the one or more source tables being stored at the server computer.
  • 11. A computer system comprising: one or more processors;one or more non-transitory data storage media coupled to the one or more processors and storing instructions which, when executed by the one or more processors, cause: retrieving an intermediate table that was generated based on performing a first transformation of one or more transformations on a version of a particular source table, wherein the one or more transformations are performable on one or more source tables to generate a target table;generating a supplemental portion for the intermediate table based in part on performing a second transformation on an appended portion of an updated version of the particular source table;generating the target table based in part on performing a third transformation on the intermediate table and the supplemental portion for the intermediate table.
  • 12. The system of claim 11, wherein the first transformation and the second transformation are each dataset transformations and are different dataset transformations.
  • 13. The system of claim 11, wherein the one or more storage media further comprise sequences of instructions which when executed cause performing the second transformation and the third transformation without being specified by an end user.
  • 14. The system of claim 11, wherein the one or more storage media further comprise sequences of instructions which when executed cause performing generating the supplemental portion by performing a fourth transformation on an output dataset of the first transformation and an output dataset of the second transformation.
  • 15. The system of claim 14, wherein the fourth transformation is reversible.
  • 16. The system of claim 11, wherein the one or more storage media further comprise sequences of instructions which when executed cause generating the target table based on persisting an output dataset of the third transformation.
  • 17. The system of claim 11, wherein the one or more storage media further comprise sequences of instructions which when executed cause determining a sequence of one or more transformations based on a graphical representation of the one or more transformations.
  • 18. The system of claim 17, wherein the graphical representation is a directed acyclic graph.
  • 19. The system of claim 17, wherein the graphical representation comprises one or more leaf nodes and one or more non-leaf nodes, the one or more leaf nodes representing one or more tables, the one or more non-leaf nodes representing the one or more transformations.
  • 20. The system of claim 11, wherein the one or more storage media further comprise sequences of instructions which when executed cause storing one or more references to the one or more source tables at a server computer, without corresponding copies of the one or more source tables being stored at the server computer.
BENEFIT CLAIM

This application claims the benefit under 35 U.S.C. § 120 as a continuation of application Ser. No. 15/369,753, filed Dec. 5, 2016, which claims the benefit under 35 U.S.C. § 120 as a continuation of application Ser. No. 14/874,690, filed Oct. 5, 2015, which claims the benefit under 35 U.S.C. § 119(e) of provisional application 62/216,192, filed Sep. 9, 2015, the entire contents of which is hereby incorporated by reference as if fully set forth herein.

US Referenced Citations (759)
Number Name Date Kind
5109399 Thompson Apr 1992 A
5329108 Lamoure Jul 1994 A
5632009 Rao et al. May 1997 A
5670987 Doi et al. Sep 1997 A
5781704 Rossmo Jul 1998 A
5798769 Chiu et al. Aug 1998 A
5818737 Orr et al. Oct 1998 A
5845300 Corner Dec 1998 A
6014670 Zamanian Jan 2000 A
6057757 Arrowsmith et al. May 2000 A
6091956 Hollenberg Jul 2000 A
6094653 Li et al. Jul 2000 A
6161098 Wallman Dec 2000 A
6167405 Rosensteel, Jr. et al. Dec 2000 A
6219053 Tachibana et al. Apr 2001 B1
6232971 Haynes May 2001 B1
6247019 Davies Jun 2001 B1
6279018 Kudrolli et al. Aug 2001 B1
6289338 Stoffel et al. Sep 2001 B1
6341310 Leshem et al. Jan 2002 B1
6366933 Ball et al. Apr 2002 B1
6369835 Lin Apr 2002 B1
6430305 Decker Aug 2002 B1
6456997 Shukla Sep 2002 B1
6463404 Appleby Oct 2002 B1
6523172 Martinez-Guerra et al. Feb 2003 B1
6539538 Brewster et al. Mar 2003 B1
6549752 Tsukamoto Apr 2003 B2
6549944 Weinberg et al. Apr 2003 B1
6560620 Ching May 2003 B1
6581068 Bensoussan et al. Jun 2003 B1
6594672 Lampson et al. Jul 2003 B1
6631496 Li et al. Oct 2003 B1
6640231 Andersen et al. Oct 2003 B1
6642945 Sharpe Nov 2003 B1
6643613 McGee et al. Nov 2003 B2
6714936 Nevin, III Mar 2004 B1
6748481 Parry et al. Jun 2004 B1
6775675 Nwabueze et al. Aug 2004 B1
6820135 Dingman Nov 2004 B1
6828920 Owen et al. Dec 2004 B2
6839745 Dingari et al. Jan 2005 B1
6877137 Rivette et al. Apr 2005 B1
6976210 Silva et al. Dec 2005 B1
6978419 Kantrowitz Dec 2005 B1
6980984 Huffman et al. Dec 2005 B1
6985950 Hanson et al. Jan 2006 B1
7027974 Busch et al. Apr 2006 B1
7028223 Kolawa et al. Apr 2006 B1
7036085 Barros Apr 2006 B2
7043702 Chi et al. May 2006 B2
7055110 Kupka et al. May 2006 B2
7089541 Ungar Aug 2006 B2
7117430 Maguire et al. Oct 2006 B2
7139800 Bellotti et al. Nov 2006 B2
7158878 Rasmussen et al. Jan 2007 B2
7162475 Ackerman Jan 2007 B2
7168039 Bertram Jan 2007 B2
7171427 Witowski et al. Jan 2007 B2
7194680 Roy et al. Mar 2007 B1
7237192 Stephenson et al. Jun 2007 B1
7240330 Fairweather Jul 2007 B2
7269786 Malloy et al. Sep 2007 B1
7278105 Kitts Oct 2007 B1
7290698 Poslinski et al. Nov 2007 B2
7333998 Heckerman et al. Feb 2008 B2
7370047 Gorman May 2008 B2
7379811 Rasmussen et al. May 2008 B2
7379903 Caballero et al. May 2008 B2
7426654 Adams et al. Sep 2008 B2
7451397 Weber et al. Nov 2008 B2
7454466 Bellotti et al. Nov 2008 B2
7467375 Tondreau et al. Dec 2008 B2
7487139 Fraleigh et al. Feb 2009 B2
7502786 Liu et al. Mar 2009 B2
7525422 Bishop et al. Apr 2009 B2
7529727 Arning et al. May 2009 B2
7529734 Dirisala May 2009 B2
7533069 Fairweather May 2009 B2
7558677 Jones Jul 2009 B2
7574409 Patinkin Aug 2009 B2
7574428 Leiserowitz et al. Aug 2009 B2
7579965 Bucholz Aug 2009 B2
7596285 Brown et al. Sep 2009 B2
7614006 Molander Nov 2009 B2
7617232 Gabbert et al. Nov 2009 B2
7620628 Kapur et al. Nov 2009 B2
7627812 Chamberlain et al. Dec 2009 B2
7634717 Chamberlain et al. Dec 2009 B2
7685083 Fairweather Mar 2010 B2
7703021 Flam Apr 2010 B1
7706817 Bamrah et al. Apr 2010 B2
7712049 Williams et al. May 2010 B2
7716077 Mikurak May 2010 B1
7725530 Sah et al. May 2010 B2
7725547 Albertson et al. May 2010 B2
7730082 Sah et al. Jun 2010 B2
7730109 Rohrs et al. Jun 2010 B2
7739246 Mooney et al. Jun 2010 B2
7756843 Palmer Jul 2010 B1
7761407 Stern Jul 2010 B1
7770100 Chamberlain et al. Aug 2010 B2
7805457 Viola et al. Sep 2010 B1
7809703 Balabhadrapatruni et al. Oct 2010 B2
7814084 Hallett et al. Oct 2010 B2
7818658 Chen Oct 2010 B2
7870493 Pall et al. Jan 2011 B2
7877421 Berger et al. Jan 2011 B2
7894984 Rasmussen et al. Feb 2011 B2
7899611 Downs et al. Mar 2011 B2
7899796 Borthwick et al. Mar 2011 B1
7917376 Bellin et al. Mar 2011 B2
7920963 Jouline et al. Apr 2011 B2
7933862 Chamberlain et al. Apr 2011 B2
7941321 Greenstein et al. May 2011 B2
7962281 Rasmussen et al. Jun 2011 B2
7962495 Jain et al. Jun 2011 B2
7962848 Bertram Jun 2011 B2
7970240 Chao et al. Jun 2011 B1
7971150 Raskutti et al. Jun 2011 B2
7984374 Caro et al. Jul 2011 B2
8001465 Kudrolli et al. Aug 2011 B2
8001482 Bhattiprolu et al. Aug 2011 B2
8010545 Stefik et al. Aug 2011 B2
8015487 Roy et al. Sep 2011 B2
8024778 Cash et al. Sep 2011 B2
8036632 Cona et al. Oct 2011 B1
8036971 Aymeloglu et al. Oct 2011 B2
8046283 Burns Oct 2011 B2
8054756 Chand et al. Nov 2011 B2
8103543 Zwicky Jan 2012 B1
8117022 Linker Feb 2012 B2
8132149 Shenfield et al. Mar 2012 B2
8134457 Velipasalar et al. Mar 2012 B2
8145703 Frishert et al. Mar 2012 B2
8185819 Sah et al. May 2012 B2
8196184 Amirov et al. Jun 2012 B2
8214361 Sandler et al. Jul 2012 B1
8214490 Vos et al. Jul 2012 B1
8214764 Gemmell et al. Jul 2012 B2
8225201 Michael Jul 2012 B2
8229902 Vishniac et al. Jul 2012 B2
8229947 Fujinaga Jul 2012 B2
8230333 Decherd et al. Jul 2012 B2
8271461 Pike et al. Sep 2012 B2
8271948 Talozi et al. Sep 2012 B2
8280880 Aymeloglu et al. Oct 2012 B1
8290838 Thakur et al. Oct 2012 B1
8290926 Ozzie et al. Oct 2012 B2
8290942 Jones et al. Oct 2012 B2
8301464 Cave et al. Oct 2012 B1
8301904 Gryaznov Oct 2012 B1
8302855 Ma et al. Nov 2012 B2
8312367 Foster Nov 2012 B2
8312546 Alme Nov 2012 B2
8332354 Chatterjee et al. Dec 2012 B1
8352881 Champion et al. Jan 2013 B2
8368695 Howell et al. Feb 2013 B2
8397171 Klassen et al. Mar 2013 B2
8412707 Mianji Apr 2013 B1
8418085 Snook et al. Apr 2013 B2
8447722 Ahuja et al. May 2013 B1
8452790 Mianji May 2013 B1
8463036 Ramesh et al. Jun 2013 B1
8473454 Evanitsky et al. Jun 2013 B2
8484115 Aymeloglu et al. Jul 2013 B2
8489331 Kopf et al. Jul 2013 B2
8489623 Jain et al. Jul 2013 B2
8489641 Seefeld et al. Jul 2013 B1
8510743 Hackborn et al. Aug 2013 B2
8514082 Cova et al. Aug 2013 B2
8515207 Chau Aug 2013 B2
8554579 Tribble et al. Oct 2013 B2
8554653 Falkenborg et al. Oct 2013 B2
8554709 Goodson et al. Oct 2013 B2
8560494 Downing Oct 2013 B1
8577911 Stepinski et al. Nov 2013 B1
8589273 Creeden et al. Nov 2013 B2
8595234 Siripuapu et al. Nov 2013 B2
8601326 Kirn Dec 2013 B1
8620641 Farnsworth et al. Dec 2013 B2
8639757 Zang et al. Jan 2014 B1
8646080 Williamson et al. Feb 2014 B2
8676857 Adams et al. Mar 2014 B1
8688573 Ruknoic et al. Apr 2014 B1
8689108 Duffield et al. Apr 2014 B1
8689182 Leithead et al. Apr 2014 B2
8713467 Goldenberg et al. Apr 2014 B1
8726379 Stiansen et al. May 2014 B1
8739278 Varghese May 2014 B2
8742934 Sarpy et al. Jun 2014 B1
8744890 Bernier Jun 2014 B1
8745516 Mason et al. Jun 2014 B2
8781169 Jackson et al. Jul 2014 B2
8787939 Papakipos et al. Jul 2014 B2
8799799 Cervelli et al. Aug 2014 B1
8799867 Peri-Glass et al. Aug 2014 B1
8812960 Sun et al. Aug 2014 B1
8830322 Nerayoff et al. Sep 2014 B2
8832594 Thompson et al. Sep 2014 B1
8838556 Reiner et al. Sep 2014 B1
8855999 Elliot Oct 2014 B1
8868537 Colgrove et al. Oct 2014 B1
8903717 Elliot Dec 2014 B2
8917274 Ma et al. Dec 2014 B2
8924388 Elliot et al. Dec 2014 B2
8924389 Elliot et al. Dec 2014 B2
8924872 Bogomolov et al. Dec 2014 B1
8930897 Nassar Jan 2015 B2
8937619 Sharma et al. Jan 2015 B2
8938434 Jain et al. Jan 2015 B2
8938686 Erenrich et al. Jan 2015 B1
8949164 Mohler Feb 2015 B1
8954410 Chang et al. Feb 2015 B2
9009171 Grossman et al. Apr 2015 B1
9009827 Albertson et al. Apr 2015 B1
9021260 Falk et al. Apr 2015 B1
9021384 Beard et al. Apr 2015 B1
9043696 Meiklejohn et al. May 2015 B1
9043894 Dennison et al. May 2015 B1
9069842 Melby Jun 2015 B2
9092482 Harris et al. Jul 2015 B2
9100428 Visbal Aug 2015 B1
9116975 Shankar et al. Aug 2015 B2
9129219 Robertson et al. Sep 2015 B1
9146954 Boe et al. Sep 2015 B1
9201920 Jain et al. Dec 2015 B2
9208159 Stowe et al. Dec 2015 B2
9223773 Isaacson Dec 2015 B2
9229952 Meacham Jan 2016 B1
9230060 Friedlander et al. Jan 2016 B2
9230280 Maag et al. Jan 2016 B1
9280532 Cicerone Mar 2016 B2
9576015 Tolnay et al. Feb 2017 B1
9946738 Meacham et al. Apr 2018 B2
20010056522 Satyanarayana Dec 2001 A1
20020033848 Sciammarella et al. Mar 2002 A1
20020065708 Senay et al. May 2002 A1
20020091707 Keller Jul 2002 A1
20020095360 Joao Jul 2002 A1
20020095658 Shulman Jul 2002 A1
20020103705 Brady Aug 2002 A1
20020116120 Ruiz et al. Aug 2002 A1
20020147805 Leshem et al. Oct 2002 A1
20020174201 Ramer et al. Nov 2002 A1
20020194058 Eldering Dec 2002 A1
20020194119 Wright et al. Dec 2002 A1
20030028560 Kudrolli et al. Feb 2003 A1
20030036848 Sheha et al. Feb 2003 A1
20030039948 Donahue et al. Feb 2003 A1
20030074187 Ait-Mokhtar et al. Apr 2003 A1
20030088438 Maughan et al. May 2003 A1
20030126102 Borthwick Jul 2003 A1
20030130993 Mendelevitch et al. Jul 2003 A1
20030140106 Raguseo Jul 2003 A1
20030144868 MacIntyre et al. Jul 2003 A1
20030163352 Surpin et al. Aug 2003 A1
20030171942 Gaito Sep 2003 A1
20030172053 Fairweather Sep 2003 A1
20030177112 Gardner Sep 2003 A1
20030225755 Iwayama et al. Dec 2003 A1
20030229848 Arend et al. Dec 2003 A1
20040032432 Baynger Feb 2004 A1
20040034570 Davis Feb 2004 A1
20040044992 Muller et al. Mar 2004 A1
20040064256 Barinek et al. Apr 2004 A1
20040083466 Dapp et al. Apr 2004 A1
20040085318 Hassler et al. May 2004 A1
20040095349 Bito et al. May 2004 A1
20040103124 Kupkova May 2004 A1
20040111410 Burgoon et al. Jun 2004 A1
20040111480 Yue Jun 2004 A1
20040117387 Civetta et al. Jun 2004 A1
20040126840 Cheng et al. Jul 2004 A1
20040143602 Ruiz et al. Jul 2004 A1
20040143796 Lerner et al. Jul 2004 A1
20040153418 Hanweck Aug 2004 A1
20040153837 Preston et al. Aug 2004 A1
20040163039 Gorman Aug 2004 A1
20040193600 Kaasten et al. Sep 2004 A1
20040205524 Richter et al. Oct 2004 A1
20040221223 Yu et al. Nov 2004 A1
20040236688 Bozeman Nov 2004 A1
20040260702 Cragun et al. Dec 2004 A1
20040267746 Marcjan et al. Dec 2004 A1
20050010472 Quatse et al. Jan 2005 A1
20050027705 Sadri et al. Feb 2005 A1
20050028094 Allyn Feb 2005 A1
20050039119 Parks et al. Feb 2005 A1
20050065811 Chu et al. Mar 2005 A1
20050078858 Yao et al. Apr 2005 A1
20050080769 Gemmell Apr 2005 A1
20050086207 Heuer et al. Apr 2005 A1
20050091420 Snover et al. Apr 2005 A1
20050102328 Ring et al. May 2005 A1
20050125715 Di Franco et al. Jun 2005 A1
20050143602 Yada et al. Jun 2005 A1
20050154628 Eckart et al. Jul 2005 A1
20050154769 Eckart et al. Jul 2005 A1
20050162523 Darrell et al. Jul 2005 A1
20050166144 Gross Jul 2005 A1
20050180330 Shapiro Aug 2005 A1
20050182793 Keenan et al. Aug 2005 A1
20050183005 Denoue et al. Aug 2005 A1
20050210409 Jou Sep 2005 A1
20050246327 Yeung et al. Nov 2005 A1
20050251786 Citron et al. Nov 2005 A1
20060026120 Carolan et al. Feb 2006 A1
20060026170 Kreitler et al. Feb 2006 A1
20060059139 Robinson Mar 2006 A1
20060074881 Vembu et al. Apr 2006 A1
20060080619 Carlson et al. Apr 2006 A1
20060095521 Patinkin May 2006 A1
20060106847 Eckardt et al. May 2006 A1
20060129746 Porter Jun 2006 A1
20060129992 Oberholtzer et al. Jun 2006 A1
20060139375 Rasmussen et al. Jun 2006 A1
20060142949 Helt Jun 2006 A1
20060143034 Rothermel Jun 2006 A1
20060143075 Carr et al. Jun 2006 A1
20060143079 Basak et al. Jun 2006 A1
20060149596 Surpin et al. Jul 2006 A1
20060161558 Tamma et al. Jul 2006 A1
20060184889 Molander Aug 2006 A1
20060203337 White Sep 2006 A1
20060209085 Wong et al. Sep 2006 A1
20060218405 Ama et al. Sep 2006 A1
20060218637 Thomas et al. Sep 2006 A1
20060241974 Chao et al. Oct 2006 A1
20060242040 Rader Oct 2006 A1
20060242630 Koike et al. Oct 2006 A1
20060271277 Hu et al. Nov 2006 A1
20060271838 Carro Nov 2006 A1
20060279630 Aggarwal et al. Dec 2006 A1
20070000999 Kubo et al. Jan 2007 A1
20070011150 Frank Jan 2007 A1
20070011304 Error Jan 2007 A1
20070016363 Huang et al. Jan 2007 A1
20070038646 Thota Feb 2007 A1
20070038962 Fuchs et al. Feb 2007 A1
20070057966 Ohno et al. Mar 2007 A1
20070074169 Chess et al. Mar 2007 A1
20070078832 Ott et al. Apr 2007 A1
20070078872 Cohen Apr 2007 A1
20070083541 Fraleigh et al. Apr 2007 A1
20070094389 Nussey et al. Apr 2007 A1
20070112714 Fairweather May 2007 A1
20070150369 Zivin Jun 2007 A1
20070150801 Chidlovskii et al. Jun 2007 A1
20070156673 Maga Jul 2007 A1
20070174760 Chamberlain et al. Jul 2007 A1
20070185850 Walters et al. Aug 2007 A1
20070185867 Maga Aug 2007 A1
20070192265 Chopin et al. Aug 2007 A1
20070198571 Ferguson et al. Aug 2007 A1
20070208497 Downs et al. Sep 2007 A1
20070208498 Barker et al. Sep 2007 A1
20070208736 Tanigawa et al. Sep 2007 A1
20070233709 Abnous Oct 2007 A1
20070240062 Christena et al. Oct 2007 A1
20070266336 Nojima et al. Nov 2007 A1
20070284433 Domenica et al. Dec 2007 A1
20070294643 Kyle Dec 2007 A1
20080034327 Cisler et al. Feb 2008 A1
20080040275 Paulsen et al. Feb 2008 A1
20080040684 Crump Feb 2008 A1
20080051989 Welsh Feb 2008 A1
20080052142 Bailey et al. Feb 2008 A1
20080069081 Chand et al. Mar 2008 A1
20080077597 Butler Mar 2008 A1
20080077642 Carbone et al. Mar 2008 A1
20080103996 Forman et al. May 2008 A1
20080104019 Nath May 2008 A1
20080104060 Abhyankar et al. May 2008 A1
20080104407 Horne et al. May 2008 A1
20080126951 Sood et al. May 2008 A1
20080140387 Linker Jun 2008 A1
20080148398 Mezack et al. Jun 2008 A1
20080155440 Trevor et al. Jun 2008 A1
20080162616 Gross et al. Jul 2008 A1
20080195417 Surpin et al. Aug 2008 A1
20080195608 Clover Aug 2008 A1
20080201339 McGrew Aug 2008 A1
20080215546 Baum et al. Sep 2008 A1
20080222295 Robinson et al. Sep 2008 A1
20080228467 Womack et al. Sep 2008 A1
20080243711 Aymeloglu et al. Oct 2008 A1
20080249983 Meisels et al. Oct 2008 A1
20080255973 El Wade et al. Oct 2008 A1
20080263468 Cappione et al. Oct 2008 A1
20080267107 Rosenberg Oct 2008 A1
20080276167 Michael Nov 2008 A1
20080278311 Grange et al. Nov 2008 A1
20080281580 Zabokritski Nov 2008 A1
20080288306 Maclntyre et al. Nov 2008 A1
20080301643 Appleton et al. Dec 2008 A1
20080313132 Hao et al. Dec 2008 A1
20090002492 Velipasalar et al. Jan 2009 A1
20090027418 Maru et al. Jan 2009 A1
20090030915 Winter et al. Jan 2009 A1
20090037417 Shankar et al. Feb 2009 A1
20090055251 Shah et al. Feb 2009 A1
20090076845 Bellin et al. Mar 2009 A1
20090088964 Schaaf et al. Apr 2009 A1
20090094166 Aymeloglu et al. Apr 2009 A1
20090106178 Chu Apr 2009 A1
20090112745 Stefanescu Apr 2009 A1
20090119309 Gibson et al. May 2009 A1
20090125359 Knapic May 2009 A1
20090125369 Kloosstra et al. May 2009 A1
20090125459 Norton et al. May 2009 A1
20090132921 Hwangbo et al. May 2009 A1
20090132953 Reed et al. May 2009 A1
20090143052 Bates et al. Jun 2009 A1
20090144262 White et al. Jun 2009 A1
20090144274 Fraleigh et al. Jun 2009 A1
20090164934 Bhattiprolu et al. Jun 2009 A1
20090171939 Athsani et al. Jul 2009 A1
20090172511 Decherd et al. Jul 2009 A1
20090172669 Bobak et al. Jul 2009 A1
20090172821 Daira et al. Jul 2009 A1
20090177962 Gusmorino et al. Jul 2009 A1
20090179892 Tsuda et al. Jul 2009 A1
20090187464 Bai et al. Jul 2009 A1
20090187546 Whyte et al. Jul 2009 A1
20090187548 Ji et al. Jul 2009 A1
20090199047 Vaitheeswaran et al. Aug 2009 A1
20090222400 Kupershmidt et al. Sep 2009 A1
20090222760 Halverson et al. Sep 2009 A1
20090228507 Jain et al. Sep 2009 A1
20090234720 George et al. Sep 2009 A1
20090240664 Dinker et al. Sep 2009 A1
20090249244 Robinson et al. Oct 2009 A1
20090254970 Agarwal et al. Oct 2009 A1
20090254971 Herz Oct 2009 A1
20090271343 Vaiciulis et al. Oct 2009 A1
20090281839 Lynn et al. Nov 2009 A1
20090282097 Alberti et al. Nov 2009 A1
20090287470 Farnsworth et al. Nov 2009 A1
20090292626 Oxford Nov 2009 A1
20090307049 Elliott et al. Dec 2009 A1
20090310816 Freire et al. Dec 2009 A1
20090313463 Pang et al. Dec 2009 A1
20090319418 Herz Dec 2009 A1
20090319891 MacKinlay Dec 2009 A1
20090327208 Bittner Dec 2009 A1
20100011282 Dollard et al. Jan 2010 A1
20100030722 Goodson et al. Feb 2010 A1
20100031141 Summers et al. Feb 2010 A1
20100042922 Bradateanu et al. Feb 2010 A1
20100057622 Faith et al. Mar 2010 A1
20100057716 Stefik et al. Mar 2010 A1
20100070489 Aymeloglu et al. Mar 2010 A1
20100070523 Delgo et al. Mar 2010 A1
20100070842 Aymeloglu et al. Mar 2010 A1
20100070845 Facemire et al. Mar 2010 A1
20100070897 Aymeloglu et al. Mar 2010 A1
20100082532 Shaik et al. Apr 2010 A1
20100098318 Anderson Apr 2010 A1
20100100963 Mahaffey Apr 2010 A1
20100103124 Kruzeniski et al. Apr 2010 A1
20100114629 Adler et al. May 2010 A1
20100114887 Conway et al. May 2010 A1
20100122152 Chamberlain et al. May 2010 A1
20100125470 Chisholm May 2010 A1
20100131457 Heimendinger May 2010 A1
20100131502 Fordham May 2010 A1
20100161735 Sharma Jun 2010 A1
20100162176 Dunton Jun 2010 A1
20100191563 Schlaifer et al. Jul 2010 A1
20100198684 Eraker et al. Aug 2010 A1
20100199225 Coleman et al. Aug 2010 A1
20100204983 Chung et al. Aug 2010 A1
20100211550 Daniello et al. Aug 2010 A1
20100228786 Torok Sep 2010 A1
20100228812 Uomini Sep 2010 A1
20100235915 Memon et al. Sep 2010 A1
20100250412 Wagner Sep 2010 A1
20100257015 Molander Oct 2010 A1
20100257515 Bates et al. Oct 2010 A1
20100262688 Hussain et al. Oct 2010 A1
20100280857 Liu et al. Nov 2010 A1
20100293174 Bennett et al. Nov 2010 A1
20100306285 Shah et al. Dec 2010 A1
20100306713 Geisner et al. Dec 2010 A1
20100312837 Bodapati et al. Dec 2010 A1
20100313119 Baldwin et al. Dec 2010 A1
20100318838 Katano et al. Dec 2010 A1
20100318924 Frankel et al. Dec 2010 A1
20100321399 Ellren et al. Dec 2010 A1
20100325526 Ellis et al. Dec 2010 A1
20100325581 Finkelstein et al. Dec 2010 A1
20100330801 Rouh Dec 2010 A1
20110004498 Readshaw Jan 2011 A1
20110029526 Knight et al. Feb 2011 A1
20110047159 Baid et al. Feb 2011 A1
20110047540 Williams et al. Feb 2011 A1
20110060753 Shaked et al. Mar 2011 A1
20110061013 Bilicki et al. Mar 2011 A1
20110074811 Hanson et al. Mar 2011 A1
20110078055 Faribault et al. Mar 2011 A1
20110078173 Seligmann et al. Mar 2011 A1
20110093327 Fordyce, III et al. Apr 2011 A1
20110099133 Chang et al. Apr 2011 A1
20110117878 Barash et al. May 2011 A1
20110119100 Ruhl et al. May 2011 A1
20110131547 Elaasar Jun 2011 A1
20110137766 Rasmussen et al. Jun 2011 A1
20110153384 Horne et al. Jun 2011 A1
20110153592 Demarcken Jun 2011 A1
20110161096 Buehler et al. Jun 2011 A1
20110161132 Goel et al. Jun 2011 A1
20110170799 Carrino et al. Jul 2011 A1
20110173032 Payne et al. Jul 2011 A1
20110173093 Psota et al. Jul 2011 A1
20110181598 O'Neall et al. Jul 2011 A1
20110185316 Reid et al. Jul 2011 A1
20110208565 Ross et al. Aug 2011 A1
20110208724 Jones et al. Aug 2011 A1
20110213655 Henkin Sep 2011 A1
20110213791 Jain et al. Sep 2011 A1
20110218934 Elser Sep 2011 A1
20110218955 Tang Sep 2011 A1
20110219321 Gonzalez et al. Sep 2011 A1
20110219450 McDougal et al. Sep 2011 A1
20110225198 Edwards et al. Sep 2011 A1
20110238553 Raj et al. Sep 2011 A1
20110258158 Resende et al. Oct 2011 A1
20110258216 Supakkul et al. Oct 2011 A1
20110270604 Qi et al. Nov 2011 A1
20110270705 Parker Nov 2011 A1
20110270834 Sokolan et al. Nov 2011 A1
20110289397 Eastmond et al. Nov 2011 A1
20110289407 Naik et al. Nov 2011 A1
20110289420 Morioka et al. Nov 2011 A1
20110291851 Whisenant Dec 2011 A1
20110295649 Fine Dec 2011 A1
20110295795 Venkatasubramanian et al. Dec 2011 A1
20110310005 Chen et al. Dec 2011 A1
20110314007 Dassa et al. Dec 2011 A1
20110314024 Chang et al. Dec 2011 A1
20120004904 Shin et al. Jan 2012 A1
20120011238 Rathod Jan 2012 A1
20120011245 Gillette et al. Jan 2012 A1
20120019559 Siler et al. Jan 2012 A1
20120022945 Falkenborg et al. Jan 2012 A1
20120036013 Neuhaus et al. Feb 2012 A1
20120036434 Oberstein Feb 2012 A1
20120050293 Carlhian et al. Mar 2012 A1
20120054284 Rakshit Mar 2012 A1
20120059853 Jagota Mar 2012 A1
20120066166 Curbera et al. Mar 2012 A1
20120066296 Appleton et al. Mar 2012 A1
20120072825 Sherkin et al. Mar 2012 A1
20120075324 Cardno et al. Mar 2012 A1
20120079363 Folting et al. Mar 2012 A1
20120084117 Tavares et al. Apr 2012 A1
20120084118 Bai et al. Apr 2012 A1
20120084287 Lakshminarayan et al. Apr 2012 A1
20120106801 Jackson May 2012 A1
20120117082 Koperda et al. May 2012 A1
20120123989 Yu et al. May 2012 A1
20120124179 Cappio et al. May 2012 A1
20120131512 Takeuchi et al. May 2012 A1
20120137235 Ts et al. May 2012 A1
20120144335 Abeln et al. Jun 2012 A1
20120159307 Chung et al. Jun 2012 A1
20120159362 Brown et al. Jun 2012 A1
20120159399 Bastide et al. Jun 2012 A1
20120170847 Tsukidate Jul 2012 A1
20120173381 Smith Jul 2012 A1
20120173985 Peppel Jul 2012 A1
20120191446 Binsztok et al. Jul 2012 A1
20120196557 Reich et al. Aug 2012 A1
20120196558 Reich et al. Aug 2012 A1
20120197651 Robinson et al. Aug 2012 A1
20120203708 Psota et al. Aug 2012 A1
20120208636 Feige Aug 2012 A1
20120215784 King et al. Aug 2012 A1
20120221511 Gibson et al. Aug 2012 A1
20120221553 Wittmer et al. Aug 2012 A1
20120221580 Barney Aug 2012 A1
20120226523 Weiss Sep 2012 A1
20120245976 Kumar et al. Sep 2012 A1
20120246148 Dror Sep 2012 A1
20120254129 Wheeler et al. Oct 2012 A1
20120284345 Costenaro et al. Nov 2012 A1
20120290527 Yalamanchilli Nov 2012 A1
20120290879 Shibuya et al. Nov 2012 A1
20120296907 Long et al. Nov 2012 A1
20120304150 Leithead et al. Nov 2012 A1
20120311684 Paulsen et al. Dec 2012 A1
20120323888 Osann, Jr. Dec 2012 A1
20120330973 Ghuneim et al. Dec 2012 A1
20130006426 Healey et al. Jan 2013 A1
20130006725 Simanek et al. Jan 2013 A1
20130006916 McBride et al. Jan 2013 A1
20130006947 Akinyemi et al. Jan 2013 A1
20130016106 Yip et al. Jan 2013 A1
20130018796 Kolhatkar et al. Jan 2013 A1
20130024268 Manickavelu Jan 2013 A1
20130024731 Shochat et al. Jan 2013 A1
20130046635 Grigg et al. Feb 2013 A1
20130046842 Muntz et al. Feb 2013 A1
20130050217 Armitage Feb 2013 A1
20130054306 Bhalla Feb 2013 A1
20130057551 Ebert et al. Mar 2013 A1
20130060742 Chang et al. Mar 2013 A1
20130060786 Serrano et al. Mar 2013 A1
20130061169 Pearcy et al. Mar 2013 A1
20130073377 Heath Mar 2013 A1
20130073454 Busch Mar 2013 A1
20130078943 Biage et al. Mar 2013 A1
20130086482 Parsons Apr 2013 A1
20130091084 Lee Apr 2013 A1
20130096988 Grossman et al. Apr 2013 A1
20130097130 Bingol et al. Apr 2013 A1
20130097482 Marantz et al. Apr 2013 A1
20130101159 Chao et al. Apr 2013 A1
20130110746 Ahn May 2013 A1
20130110822 Ikeda et al. May 2013 A1
20130110877 Bonham et al. May 2013 A1
20130111320 Campbell et al. May 2013 A1
20130117011 Ahmed et al. May 2013 A1
20130117651 Waldman et al. May 2013 A1
20130124193 Holmberg May 2013 A1
20130150004 Rosen Jun 2013 A1
20130151148 Parundekar et al. Jun 2013 A1
20130151388 Falkenborg et al. Jun 2013 A1
20130151453 Bhanot et al. Jun 2013 A1
20130157234 Gulli et al. Jun 2013 A1
20130166348 Scotto Jun 2013 A1
20130166480 Popescu et al. Jun 2013 A1
20130166550 Buchmann et al. Jun 2013 A1
20130176321 Mitchell et al. Jul 2013 A1
20130179420 Park et al. Jul 2013 A1
20130185245 Anderson Jul 2013 A1
20130185307 El-Yaniv et al. Jul 2013 A1
20130198565 Mancoridis et al. Aug 2013 A1
20130224696 Wolfe et al. Aug 2013 A1
20130225212 Khan Aug 2013 A1
20130226318 Procyk Aug 2013 A1
20130226879 Talukder et al. Aug 2013 A1
20130226953 Markovich et al. Aug 2013 A1
20130238616 Rose et al. Sep 2013 A1
20130246170 Gross et al. Sep 2013 A1
20130246316 Zhao et al. Sep 2013 A1
20130246537 Gaddala Sep 2013 A1
20130246560 Feng et al. Sep 2013 A1
20130246597 Iizawa et al. Sep 2013 A1
20130251233 Yang et al. Sep 2013 A1
20130262527 Hunter et al. Oct 2013 A1
20130263019 Castellanos et al. Oct 2013 A1
20130267207 Hao et al. Oct 2013 A1
20130268520 Fisher et al. Oct 2013 A1
20130275446 Jain et al. Oct 2013 A1
20130279757 Kephart Oct 2013 A1
20130282696 John et al. Oct 2013 A1
20130290011 Lynn et al. Oct 2013 A1
20130290825 Arndt et al. Oct 2013 A1
20130297619 Chandrasekaran et al. Nov 2013 A1
20130304770 Boero et al. Nov 2013 A1
20130311375 Priebatsch Nov 2013 A1
20140012796 Petersen et al. Jan 2014 A1
20140019423 Leinsberger et al. Jan 2014 A1
20140019936 Cohanoff Jan 2014 A1
20140032506 Hoey et al. Jan 2014 A1
20140033010 Richardt et al. Jan 2014 A1
20140040371 Gurevich et al. Feb 2014 A1
20140047319 Eberlein Feb 2014 A1
20140047357 Alfaro et al. Feb 2014 A1
20140058914 Song et al. Feb 2014 A1
20140059038 McPherson et al. Feb 2014 A1
20140067611 Adachi et al. Mar 2014 A1
20140068487 Steiger et al. Mar 2014 A1
20140095273 Tang et al. Apr 2014 A1
20140095509 Patton Apr 2014 A1
20140108068 Williams Apr 2014 A1
20140108380 Gotz et al. Apr 2014 A1
20140108985 Scott et al. Apr 2014 A1
20140123279 Bishop et al. May 2014 A1
20140129261 Bothwell et al. May 2014 A1
20140136285 Carvalho May 2014 A1
20140143009 Brice et al. May 2014 A1
20140149436 Bahrami et al. May 2014 A1
20140156527 Grigg et al. Jun 2014 A1
20140156617 Tomkins Jun 2014 A1
20140157172 Peery et al. Jun 2014 A1
20140164502 Khodorenko et al. Jun 2014 A1
20140181833 Bird et al. Jun 2014 A1
20140189536 Lange et al. Jul 2014 A1
20140195515 Baker et al. Jul 2014 A1
20140195887 Ellis et al. Jul 2014 A1
20140222521 Chait Aug 2014 A1
20140222793 Sadkin et al. Aug 2014 A1
20140229554 Grunin et al. Aug 2014 A1
20140244388 Manouchehri et al. Aug 2014 A1
20140258246 Lo Faro et al. Sep 2014 A1
20140267294 Ma Sep 2014 A1
20140267295 Sharma Sep 2014 A1
20140279824 Tamayo Sep 2014 A1
20140279979 Yost et al. Sep 2014 A1
20140310266 Greenfield Oct 2014 A1
20140316911 Gross Oct 2014 A1
20140324876 Konik et al. Oct 2014 A1
20140333651 Cervelli et al. Nov 2014 A1
20140337772 Cervelli et al. Nov 2014 A1
20140344230 Krause et al. Nov 2014 A1
20140351070 Christner et al. Nov 2014 A1
20140358829 Hurwitz Dec 2014 A1
20140366132 Stiansen et al. Dec 2014 A1
20150012509 Kirn Jan 2015 A1
20150019394 Unser et al. Jan 2015 A1
20150039886 Kahol et al. Feb 2015 A1
20150046481 Elliot Feb 2015 A1
20150046870 Goldenberg et al. Feb 2015 A1
20150073929 Psota et al. Mar 2015 A1
20150073954 Braff Mar 2015 A1
20150089353 Folkening Mar 2015 A1
20150089424 Duffield et al. Mar 2015 A1
20150095773 Gonsalves et al. Apr 2015 A1
20150100559 Nassar Apr 2015 A1
20150100897 Sun et al. Apr 2015 A1
20150100907 Erenrich et al. Apr 2015 A1
20150106379 Elliot et al. Apr 2015 A1
20150112641 Faraj Apr 2015 A1
20150134666 Gattiker et al. May 2015 A1
20150135256 Hoy et al. May 2015 A1
20150142766 Jain et al. May 2015 A1
20150169709 Kara et al. Jun 2015 A1
20150169726 Kara et al. Jun 2015 A1
20150170077 Kara et al. Jun 2015 A1
20150178877 Bogomolov et al. Jun 2015 A1
20150186821 Wang et al. Jul 2015 A1
20150187036 Wang et al. Jul 2015 A1
20150188715 Castelluci et al. Jul 2015 A1
20150188872 White Jul 2015 A1
20150212663 Papale et al. Jul 2015 A1
20150213043 Ishii et al. Jul 2015 A1
20150213134 Nie et al. Jul 2015 A1
20150242397 Zhuang Aug 2015 A1
20150261817 Harris et al. Sep 2015 A1
20150261847 Ducott et al. Sep 2015 A1
20150324868 Kaftan et al. Nov 2015 A1
20150338233 Cervelli et al. Nov 2015 A1
20150341467 Lim et al. Nov 2015 A1
20150347903 Saxena et al. Dec 2015 A1
20150378996 Kesin et al. Dec 2015 A1
20150379413 Robertson et al. Dec 2015 A1
20160004667 Chakerian et al. Jan 2016 A1
20160004764 Chakerian et al. Jan 2016 A1
20160034545 Shankar et al. Feb 2016 A1
20160062555 Ward et al. Mar 2016 A1
20160098173 Slawinski et al. Apr 2016 A1
20160147730 Cicerone May 2016 A1
20170039253 Bond Feb 2017 A1
20170068698 Tolnay et al. Mar 2017 A1
20170083595 Tolnay et al. Mar 2017 A1
20170097950 Meacham et al. Apr 2017 A1
Foreign Referenced Citations (77)
Number Date Country
2014206155 Dec 2015 AU
2014250678 Feb 2016 AU
2666364 Jan 2015 CA
102546446 Jul 2012 CN
103167093 Jun 2013 CN
102054015 May 2014 CN
102014103482 Sep 2014 DE
102014204827 Sep 2014 DE
102014204830 Sep 2014 DE
102014204834 Sep 2014 DE
102014204840 Sep 2014 DE
102014213036 Jan 2015 DE
102014215621 Feb 2015 DE
0652513 May 1995 EP
1566758 Aug 2005 EP
1672527 Jun 2006 EP
1962222 Aug 2008 EP
2221725 Aug 2010 EP
2487610 Aug 2012 EP
2551799 Jan 2013 EP
2560134 Feb 2013 EP
2778913 Sep 2014 EP
2778914 Sep 2014 EP
2778977 Sep 2014 EP
2778986 Sep 2014 EP
2835745 Feb 2015 EP
2835770 Feb 2015 EP
2838039 Feb 2015 EP
2846241 Mar 2015 EP
2851852 Mar 2015 EP
2858014 Apr 2015 EP
2858018 Apr 2015 EP
2863326 Apr 2015 EP
2863346 Apr 2015 EP
2869211 May 2015 EP
2881868 Jun 2015 EP
2884439 Jun 2015 EP
2884440 Jun 2015 EP
2889814 Jul 2015 EP
2891992 Jul 2015 EP
2892197 Jul 2015 EP
2897051 Jul 2015 EP
2911078 Aug 2015 EP
2963595 Jan 2016 EP
2993595 Mar 2016 EP
3018553 May 2016 EP
3128447 Feb 2017 EP
3142027 Mar 2017 EP
2366498 Mar 2002 GB
2513007 Oct 2014 GB
2516155 Jan 2015 GB
2517582 Feb 2015 GB
2518745 Apr 2015 GB
2012778 Nov 2014 NL
2013134 Jan 2015 NL
2013306 Feb 2015 NL
2011642 Aug 2015 NL
624557 Dec 2014 NZ
WO 2000009529 Feb 2000 WO
WO 2002035376 May 2002 WO
WO 2002065353 Aug 2002 WO
WO 2003060751 Jul 2003 WO
WO 2005010685 Feb 2005 WO
WO 2005104736 Nov 2005 WO
WO 2005116851 Dec 2005 WO
WO 2008064207 May 2008 WO
WO 2009061501 May 2009 WO
WO 2010000014 Jan 2010 WO
WO 2010030913 Mar 2010 WO
WO 20100098958 Sep 2010 WO
WO 2011017289 May 2011 WO
WO 2011071833 Jun 2011 WO
WO 2012025915 Mar 2012 WO
WO 2012079836 Jun 2012 WO
WO 2013010157 Jan 2013 WO
WO 2013067077 May 2013 WO
WO 2013102892 Jul 2013 WO
Non-Patent Literature Citations (379)
Entry
U.S. Appl. No. 14/025,653, filed Sep. 12, 2013, Office Action Interview, dated Oct. 6, 2015.
U.S. Appl. No. 14/134,558, filed Dec. 19, 2013, Office Action, dated Oct. 7, 2015.
U.S. Appl. No. 13/831,791, filed Mar. 15, 2013, Office Action, dated Mar. 4, 2015.
U.S. Appl. No. 14/025,653, filed Sep. 12, 2013, Interview Summary, dated Mar. 3, 2016.
U.S. Appl. No. 13/839,026, filed Mar. 15, 2013, Restriction Requirement, dated Apr. 2, 2015.
U.S. Appl. No. 13/827,491, filed Mar. 14, 2013, Office Action, dated Oct. 9, 2015.
U.S. Appl. No. 14/319,765, filed Jun. 30, 2014, Advisory Action, dated Sep. 10, 2015.
U.S. Appl. No. 14/306,147, filed Jun. 16, 2014, Final Office Action, dated Feb. 19, 2015.
U.S. Appl. No. 14/225,006, filed Mar. 25, 2014, First Office Action, dated Feb. 27, 2015.
U.S. Appl. No. 14/306,154, filed Jun. 16, 2014, Advisory Action, dated May 15, 2015.
U.S. Appl. No. 14/451,221, filed Aug. 4, 2014, Office Action, dated Oct. 21, 2014.
U.S. Appl. No. 14/306,138, filed Jun. 16, 2014, Office Action, dated May 26, 2015.
U.S. Appl. No. 14/225,160, filed Mar. 25, 2014, Final Office Action, dated Feb. 11, 2015.
U.S. Appl. No. 14/473,552, filed Aug. 29, 2014, Notice of Allowance, dated Jul. 24, 2015.
U.S. Appl. No. 14/874,690, filed Oct. 5, 2015, First Action Interview, dated Dec. 21, 2015.
U.S. Appl. No. 14/877,229, filed Oct. 7, 2015, Office Action, dated Mar. 22, 2016.
U.S. Appl. No. 14/533,433, filed Nov. 5, 2014, Notice of Allowance, dated Sep. 1, 2015.
U.S. Appl. No. 14/508,696, filed Oct. 7, 2014, Office Action, dated Mar. 2, 2015.
U.S. Appl. No. 14/148,568, filed Jan. 6, 2014, Office Action, dated Mar. 26, 2015.
U.S. Appl. No. 13/196,788, filed Aug. 2, 2011, Interview Summary, dated Nov. 25, 2015.
U.S. Appl. No. 14/225,160, filed Mar. 25, 2014, First Office Action Interview, dated Jul. 29, 2014.
U.S. Appl. No. 15/504,103, filed Oct. 1, 2014, First Office Action Interview, dated Feb. 5, 2015.
U.S. Appl. No. 14/533,433, filed Nov. 5, 2014, Office Action, dated Feb. 26, 2015.
U.S. Appl. No. 14/306,147, filed Jun. 16, 2014, First Office Action Interview, dated Sep. 9, 2014.
U.S. Appl. No. 14/639,606, filed Mar. 5, 2015, First Office Action Interview, dated Jul. 24, 2015.
U.S. Appl. No. 14/319,765, filed Jun. 30, 2014, Notice of Allowance, dated Nov. 25, 2014.
U.S. Appl. No. 14/571,098, filed Dec. 15, 2014, First Office Action Interview, dated Aug. 5, 2015.
U.S. Appl. No. 14/323,935, filed Jul. 3, 2014, Office Action, dated Jun. 22, 2015.
U.S. Appl. No. 14/616,080, filed Feb. 6, 2015, Notice of Allowance, dated Apr. 2, 2015.
U.S. Appl. No. 14/225,006, filed Mar. 25, 2014, First Office Action Interview, dated Sep. 10, 2014.
U.S. Appl. No. 14/306,147, filed Jun. 16, 2014, Office Action, dated Aug. 7, 2015.
U.S. Appl. No. 14/879,916, filed Oct. 9, 2015, Notice of Allowance, dated Jun. 22, 2016.
U.S. Appl. No. 14/948,009, filed Nov. 20, 2015, Notice of Allowance, dated May 6, 2016.
U.S. Appl. No. 14/225,084, filed Mar. 25, 2014, First Office Action Interview, dated Sep. 2, 2014.
U.S. Appl. No. 14/486,991, filed Sep. 15, 2014, Notice of Allowance, dated May 1, 2015.
U.S. Appl. No. 14/196,814, filed Mar. 4, 2014, Office Action, dated May 5, 2015.
U.S. Appl. No. 14/225,084, filed Mar. 25, 2014, Office Action, dated Sep. 11, 2015.
U.S. Appl. No. 14/483,527, filed Sep. 11, 204, First Office Action Interview, dated Jan. 28, 2015.
U.S. Appl. No. 12/556,318, filed Jun. 16, 2014, Office Action, dated Jul. 2, 2015.
U.S. Appl. No. 14/526,066, filed Mar. 25, 2014, Final Office Action, dated May 6, 2016.
U.S. Appl. No. 14/326,738, filed Jul. 9, 2014, First Office Action Interview, dated Mar. 31, 2015.
U.S. Appl. No. 14/306,154, filed Jun. 16, 2014, Final Office Action, dated Mar. 11, 2015.
U.S. Appl. No. 14/268,964, filed May 2, 2014, First Office Action Interview, dated Sep. 3, 2014.
U.S. Appl. No. 13/922,437, filed Jun. 20, 2013, Notice of Allowance, dated Jul. 3, 2014.
U.S. Appl. No. 13/835,688, filed Mar. 15, 2013, First Office Action Interview, dated Jun. 17, 2015.
U.S. Appl. No. 14/746,671, filed Jun. 22, 2015, First Office Action Interview, dated Nov. 12, 2015.
U.S. Appl. No. 14/323,935, filed Jul. 3, 2014, First Office Action Interview, dated Nov. 28, 2014.
U.S. Appl. No. 14/319,765, filed Jun. 30, 2014, First Office Action Interview, dated Feb. 4, 2015.
U.S. Appl. No. 14/294,098, filed Jun. 2, 2014, Final Office Action, dated Nov. 6, 2014.
U.S. Appl. No. 14/225,084, filed Mar. 25, 2014, Notice of Allowance, dated May 4, 2015.
U.S. Appl. No. 14/134,558, filed Dec. 19, 2013, Final Office Action, dated May 16, 2016.
U.S. Appl. No. 14/278,963, filed May 15, 2014, Notice of Allowance, dated Sep. 2, 2015.
U.S. Appl. No. 14/579,752, filed Dec. 22, 2014, First Office Action Interview, dated May 26, 2015.
U.S. Appl. No. 13/827,491, filed Mar. 14, 2013, Office Action, dated Dec. 1, 2014.
U.S. Appl. No. 14/225,160, filed Mar. 25, 2014, Office Action, dated Aug. 12, 2015.
U.S. Appl. No. 14/225,084, filed Mar. 25, 2014, Interview Summary, dated Jan. 4, 2016.
U.S. Appl. No. 14/734,772, filed Jun. 9, 2015, First Office Action Interview, dated Oct. 30, 2015.
U.S. Appl. No. 14/094,418, filed Dec. 2, 2013, Notice of Allowance, dated Jan. 25, 2016.
U.S. Appl. No. 14/225,084, filed Mar. 25, 2014, First Office Action Interview, dated Feb. 20, 2015.
U.S. Appl. No. 14/562,524, filed Dec. 5, 2014, First Office Action Interview, dated Sep. 14, 2015.
U.S. Appl. No. 14/473,860, filed Aug. 29, 2014, Notice of Allowance, dated Jan. 5, 2015.
U.S. Appl. No. 14/842,734, filed Sep. 1, 2015, First Office Action Interview, dated Nov. 19, 2015.
U.S. Appl. No. 14/294,098, filed Jun. 2, 2014, First Office Action Interview, dated Aug. 15, 2014.
U.S. Appl. No. 13/196,788, filed Aug. 2, 2011, Notice of Allowance, dated Dec. 18, 2015.
U.S. Appl. No. 14/473,552, filed Aug. 29, 2014, Interview Summary, dated Feb. 24, 2015.
U.S. Appl. No. 14/326,738, filed Jul. 9, 2014, First Office Action Interview, dated Dec. 2, 2014.
U.S. Appl. No. 14/562,524, filed Dec. 5, 2014, First Office Action Interview, dated Nov. 10, 2015.
U.S. Appl. No. 14/225,006, filed Mar. 25, 2014, First Office Action Interview, dated Feb. 27, 2015.
U.S. Appl. No. 14/874,690, filed Oct. 5, 2015, Office Action, dated Jun. 1, 2016.
U.S. Appl. No. 14/849,545, filed Sep. 9, 2015, Office Action, dated Jan. 29, 2016.
U.S. Appl. No. 14/813,749, filed Jul. 30, 2015, Office Action, dated Sep. 28, 2015.
U.S. Appl. No. 14/504,103, filed Oct. 1, 2014, Notice of Allowance, dated May 18, 2015.
U.S. Appl. No. 14/326,738, filed Jul. 9, 2014, Notice of Allowance, dated Nov. 18, 2015.
U.S. Appl. No. 14/579,752, filed Dec. 22, 2014, Final Office Action, dated Aug. 19, 2015.
U.S. Appl. No. 14/580,218, filed Dec. 23, 2014, Office Action, dated Jun. 7, 2016.
U.S. Appl. No. 14/996,179, filed Jan. 14, 2016, First Office Action Interview, dated May 20, 2016.
U.S. Appl. No. 14/306,154, filed Jun. 16, 201, Office Action, dated Mar. 17, 2016.
U.S. Appl. No. 14/225,160, filed Mar. 25, 2014, Final Office, dated Feb. 11, 2015.
U.S. Appl. No. 14/504,103, filed Oct. 1, 2014, Notice of Allowance, dated Sep. 9, 2014.
U.S. Appl. No. 13/247,987, filed Sep. 28, 2011, Notice of Allowance, dated Mar. 17, 2016.
U.S. Appl. No. 14/849,454, filed Sep. 9, 2015, Interview Summary, dated Feb. 24, 2016.
U.S. Appl. No. 14/490,612, filed Sep. 18, 2014, First Office Action Interview, dated Jan. 27, 2015.
U.S. Appl. No. 14/961,830, filed Dec. 7, 2015, Office Action, dated May 20, 2016.
U.S. Appl. No. 14/319,161, filed Jun. 30, 2014, Office Action, dated Sep. 25, 2014.
U.S. Appl. No. 14/676,621, filed Apr. 1, 2015, Final Office Action, dated Oct. 29, 2015.
U.S. Appl. No. 14/746,671, filed Jun. 22, 2015, Notice of Allowance, dated Jan. 21, 2016.
U.S. Appl. No. 14/306,154, filed Jun. 16, 2014, Final Office Action, dated Nov. 16, 2015.
U.S. Appl. No. 14/746,671, filed Jun. 22, 2015, First Office Action Interview, dated Sep. 28, 2015.
U.S. Appl. No. 13/247,987, filed Sep. 28, 2011, Office Action, dated Apr. 2, 2015.
U.S. Appl. No. 14/849,454, filed Sep. 9, 2015, Notice of Allowance, dated Nov. 3, 2015.
U.S. Appl. No. 14/552,336, filed Nov. 24, 2014, Notice of Allowance, dated Nov. 3, 2015.
U.S. Appl. No. 14/639,606, filed Mar. 5, 2015, First Office Action Interview, dated May 18, 2015.
U.S. Appl. No. 14/306,138, filed Jun. 16, 2014, First Office Action Interview, dated Sep. 23, 2015.
U.S. Appl. No. 14/463,615, filed Aug. 19, 2014, Advisory Action, dated Sep. 10, 2015.
U.S. Appl. No. 14/225,160, filed Mar. 25, 2014, First Office Action Interview, dated Oct. 22, 2014.
U.S. Appl. No. 14/225,160, filed Mar. 25, 2014, Advisory Action, dated May 20, 2015.
U.S. Appl. No. 14/508,696, filed Oct. 7, 2014, Notice of Allowance, dated Jul. 27, 2015.
U.S. Appl. No. 14/223,918, filed Mar. 24, 2014, Notice of Allowance, dated Jan. 6, 2016.
U.S. Appl. No. 14/486,991, filed Sep. 15, 2014, Office Action, dated Mar. 10, 2015.
U.S. Appl. No. 14/526,066, filed Oct. 28, 2014, Office Action, dated Jan. 21, 2016.
U.S. Appl. No. 13/839,026, filed Mar. 15, 2013, Office Action, dated Aug. 4, 2015.
U.S. Appl. No. 14/504,103, filed Oct. 1, 2014, First Office Action Interview, dated Mar. 31, 2015.
U.S. Appl. No. 14/726,211, filed May 29, 2015, Office Action, dated Apr. 2, 2016.
U.S. Appl. No. 14/306,138, filed Jun. 16, 2014, Office Action, dated Mar. 17, 2016.
U.S. Appl. No. 14/319,765, filed Jun. 30, 2014, Final Office Action, dated Jun. 16, 2015.
U.S. Appl. No. 14/323,935, filed Jul. 3, 2014, First Office Action Interview, dated Mar. 31, 2015.
U.S. Appl. No. 14/148,568, filed Jan. 6, 2014, Notice of Allowance, dated Aug. 26, 2015.
U.S. Appl. No. 14/879,916, filed Oct. 9, 2015, First Office Action Interview, dated Apr. 15, 2016.
U.S. Appl. No. 14/954,680, filed Nov. 30, 2015, Office Action, dated May 12, 2016.
U.S. Appl. No. 14/289,596, filed May 28, 2014, Advisory Action, dated Apr. 30, 2015.
U.S. Appl. No. 14/289,596, filed May 28, 2014, Final Office Action, dated Jan. 26, 2015.
U.S. Appl. No. 14/571,098, filed Dec. 15, 2014, First Office Action Interview, dated Nov. 10, 2015.
U.S. Appl. No. 14/463,615, filed Aug. 19, 2014, Final Office Action, dated May 21, 2015.
U.S. Appl. No. 14/631,633, filed Feb. 25, 2015, First Office Action Interview, dated Sep. 10, 2015.
U.S. Appl. No. 14/800.447, filed Jul. 15, 2012, First Office Action Interview, dated Dec. 10, 2010.
U.S. Appl. No. 14/141,252, filed Dec. 26, 2013, Office Action, dated Oct. 8, 2015.
U.S. Appl. No. 14/102,394, filed Dec. 10, 2013, Notice of Allowance, dated Aug. 25, 2014.
U.S. Appl. No. 14/044,800, filed Oct. 2, 2013, Notice of Allowance, dated Sep. 2, 2014.
U.S. Appl. No. 15/187,715, filed Oct. 6, 2016, Office Action, dated Aug. 16, 2017.
U.S. Appl. No. 14/948,009, filed Nov. 20, 2015, First Action Interview, dated Feb. 25, 2016.
U.S. Appl. No. 14/645,304, filed Mar. 11, 2015, Office Action, dated Jan. 25, 2016.
U.S. Appl. No. 14/294,098, filed Jun. 2, 2014, Notice of Allowance, dated Dec. 24, 2015.
U.S. Appl. No. 14/306,147, filed Jun. 16, 2014, Final Office Action, dated Dec. 24, 2015.
U.S. Appl. No. 14/479,863, filed Sep. 8, 2014, First Office Action Interview, dated Dec. 26, 2014.
U.S. Appl. No. 14/289,599, filed May 28, 2014, First Office Action Interview, dated Jul. 22, 2014.
U.S. Appl. No. 14/463,615, filed Aug. 19, 2014, First Office Action Interview, dated Nov. 13, 2014.
U.S. Appl. No. 14/148,568, filed Jan. 6, 2014, Final Office Action, dated Oct. 22, 2014.
U.S. Appl. No. 14/483,527, filed Sep. 11, 2014, Final Office Action, dated Jun. 22, 2015.
U.S. Appl. No. 13/557,100, filed Jul. 24, 2012, Final Office Action, dated Apr. 7, 2016.
U.S. Appl. No. 14/841,338, filed Aug. 31, 2015, Office Action, dated Feb. 18, 2016.
U.S. Appl. No. 14/306,138, filed Jun. 16, 2014, Final Office Action, dated Sep. 14, 2015.
U.S. Appl. No. 14/225,006, filed Mar. 25, 2014, Advisory Action, dated Dec. 21, 2015.
U.S. Appl. No. 14/479,863, filed Sep. 8, 2014, Notice of Allowance, dated Mar. 31, 2015.
U.S. Appl. No. 14/289,596, filed May 28, 2014, First Office Action Interview, dated Jul. 18, 2014.
U.S. Appl. No. 14/192,767, filed Feb. 27, 2014, Notice of Allowance, dated Dec. 16, 2014.
U.S. Appl. No. 14/319,161, filed Jun. 30, 2014, Notice of Allowance, dated May 4, 2015.
U.S. Appl. No. 14/306,138, filed Jun. 16, 2014, Interview Summary, dated Dec. 3, 2015.
U.S. Appl. No. 14/306,154, filed Jun. 16, 2014, Office Action, dated Jul. 6, 2015.
U.S. Appl. No. 14/571,098, filed Dec. 15, 2014, First Office Action Interview, dated Mar. 11, 2015.
U.S. Appl. No. 14/323,935, filed Jul. 30, 2014, Notice of Allowance, dated Oct. 1, 2015.
U.S. Appl. No. 14/108,187, filed Dec. 16, 2013, Notice of Allowance, dated Aug. 29, 2014.
U.S. Appl. No. 14/734,772, filed Jun. 9, 2015, Notice of Allowance, dated Apr. 27, 2016.
U.S. Appl. No. 14/268,964, filed May 2, 2014, Notice of Allowance, dated Dec. 3, 2014.
U.S. Appl. No. 14/306,138, filed Jun. 16, 2014, Final Office Action, dated Feb. 18, 2015.
U.S. Appl. No. 14/578,389, filed Dec. 20, 2014, Office Action, dated Oct. 21, 2015.
U.S. Appl. No. 14/552,336, filed Nov. 24, 2014, First Office Action Interview, dated Jul. 20, 2015.
U.S. Appl. No. 14/571,098, filed Dec. 15, 2014, First Office Action Interview, dated Aug. 24, 2015.
U.S. Appl. No. 13/196,788, filed Aug. 2, 2011, Office Action, dated Oct. 23, 2015.
U.S. Appl. No. 14/631,633, filed Feb. 25, 2015, First Office Action Interview, dated Feb. 3, 2016.
U.S. Appl. No. 14/463,615, filed Aug. 19, 2014, First Office Action Interview, dated Jan. 28, 2015.
U.S. Appl. No. 14/306,154, filed Jun. 16, 2014, First Office Action Interview, dated Sep. 9, 2014.
U.S. Appl. No. 13/827,491, filed Mar. 14, 2013, Final Office Action, dated Jun. 22, 2015.
U.S. Appl. No. 14/319,161, filed Jun. 30, 2014, Final Office Action, dated Jan. 23, 2015.
U.S. Appl. No. 14/676,621, filed Apr. 1, 2015, First Office Action Interview, dated Jul. 30, 2015.
U.S. Appl. No. 14/578,389, filed Dec. 20, 2014, Office Action, dated Apr. 22, 2016.
U.S. Appl. No. 14/319,765, filed Jun. 30, 2014, Office Action, dated Feb. 1, 2016.
U.S. Appl. No. 14/306,138, filed Jun. 16, 2014, Interview Summary, dated Dec. 24, 2015.
U.S. Appl. No. 14/483,527, filed Sep. 11, 204, Office Action, dated Oct. 28, 2015.
U.S. Appl. No. 14/874,690, filed Oct. 5, 2015, Notice of Allowance, dated Oct. 5, 2016.
U.S. Appl. No. 14/504,103, dated Oct. 1, 2014, First Office Action Interview, dated Feb. 5, 2015.
U.S. Appl. No. 14/326,738, filed Jul. 9, 2014, Final Office Action, dated Jul. 31, 2015.
U.S. Appl. No. 14/225,006, filed Mar. 25, 2014, Final Office Action, dated Sep. 2, 2015.
U.S. Appl. No. 14/135,289, filed Dec. 19, 2013, Notice of Allowance, dated Oct. 14, 2014.
U.S. Appl. No. 14/816,264, filed Aug. 3, 2015, First Office Action Interview, dated Oct. 19, 2017.
U.S. Appl. No. 14/816,264, filed Aug. 3, 2015, Notice of Allowance, dated Jan. 30, 2018.
Official Communication for European Patent Application No. 14159629.6 dated Jul. 31, 2014.
Official Communication for Australian Patent Application No. 2014201580 dated Feb. 27, 2015.
Sirotkin et al., “Chapter 13: The Processing of Biological Sequence Data at NCBI,” The NCBI Handbook, Oct. 2002, pp. 1-11.
Official Communication for New Zealand Patent Application No. 622414 dated Mar. 24, 2014.
Delcher et al., “Identifying Bacterial Genes and Endosymbiont DNA with Glimmer,” BioInformatics, vol. 23, No. 6, 2007, pp. 673-679.
Madden, Tom, “Chapter 16: The BLAST Sequence Analysis Tool,” The NCBI Handbook, Oct. 2002, pp. 1-15.
Kahan et al., “Annotea: an Open RDF Infrastructure for Shared Web Annotations”, Computer Networks, Elsevier Science Publishers B.V., vol. 39, No. 5, dated Aug. 5, 2002.
Mizrachi, Ilene, “Chapter 1: Gen Bank: the Nuckeotide Sequence Database,” The NCBI Handbook, Oct. 2002, pp. 1-14.
“A Tour of Pinboard,” <http://pinboard.In/tour> as printed May 15, 2014 in 6 pages.
Official Communication for Great Britain Patent Application No. 1404574.4 dated Dec. 18, 2014.
Official Communication for New Zealand Patent Application No. 622484 dated Apr. 2, 2014.
Kitts, Paul, “Chapter 14: Genome Assembly and Annotation Process,” The NCBI Handbook, Oct. 2002, pp. 1-21.
“A Quick Guide to UniProtKB Swiss-Prot & TrEMBL,” Sep. 2011, pp. 2.
“The FASTA Program Package,” fasta-36.3.4, Mar. 25, 2011, pp. 29.
Wollrath et al., “A Distributed Object Model for the Java System,” Proceedings of the 2nd Conference on USENEX, Conference on Object-Oriented Technologies (COOTS), 17.
Official Communication for European Patent Application No. 14180321.3 dated Apr. 17, 2015.
Official Communication for Australian Patent Application No. 2014202442 dated Mar. 19, 2015.
Official Communication for European Patent Application No. 14187996.5 dated Feb. 12, 2015.
Official Communication for New Zealand Patent Application No. 628263 dated Aug. 12, 2014.
Palantir, “Extracting and Transforming Data with Kite,” Palantir Technologies, Inc., Copyright 2010, pp. 38.
Palermo, Christopher J., “Memorandum,” [Disclosure relating to U.S. Appl. No. 13/916,447, filed Jun. 12, 2013, and related applications], Jan. 31, 2014 in 3 pages.
Official Communication for European Patent Application No. 14158958.0 dated Jun. 3, 2014.
Palmas et al., “An Edge-Bunding Layout for Interactive Parallel Coordinates” 2014 IEEE Pacific Visualization Symposium, pp. 57-64.
Vose et al., “Help File for ModelRisk Version 5,” 2007, Vose Software, pp. 349-353. [Uploaded in 2 Parts].
Official Communication for New Zealand Patent Application No. 622473 dated Jun. 19, 2014.
Manske, “File Saving Dialogs,” <http://www.mozilla.org/editor/ui_specs/FileSaveDialogs.html>, Jan. 20, 1999, pp. 7.
Johnson, Maggie, “Introduction to YACC and Bison”.
Gorr et al., “Crime Hot Spot Forecasting: Modeling and Comparative Evaluation”, Grant 98-IJ-CX-K005, May 6, 2002, 37 pages.
Official Communication for European Patent Application No. 15192965.0 dated Mar. 17, 2016.
Apsalar, “Data Powered Mobile Advertising,” “Free Mobile App Analytics” and various analytics related screen shots <http://apsalar.com> Printed Jul. 18, 2013 in 8 pages.
Official Communication for Great Britain Patent Application No. 1404499.4 dated Jun. 11, 2015.
Chen et al., “Bringing Order to the Web: Automatically Categorizing Search Results,” CHI 2000, Proceedings of the SIGCHI conference on Human Factors in Computing Systems, Apr. 1-6, 2000, The Hague, The Netherlands, pp. 145-152.
Keylines.com, “An Introduction to KeyLines and Network Visualization,” Mar. 2014, <http://keylines.com/wp-content/uploads/2014/03/KeyLines-White-Paper.pdf> downloaded May 12, 2014 in 8 pages.
Morrison et al., “Converting Users to Testers: An Alternative Approach to Load Test Script Creation, Parameterization and Data Corellation,” CCSC: Southeastern Conference, JCSC 28, 2, Dec. 2012, pp. 188-196.
Yang et al., “HTML Page Analysis Based on Visual Cues”, A129, pp. 859-864, 2001.
Li et al., “Interactive Multimodal Visual Search on Mobile Device,” IEEE Transactions on Multimedia, vol. 15, No. 3, Apr. 1, 2013, pp. 594-607.
Official Communication for Netherlands Patent Application No. 2012421 dated Sep. 18, 2015.
Gesher, Ari, “Palantir Screenshots in the Wild: Swing Sightings,” The Palantir Blog, Sep. 11, 2007, pp. 1-12, retrieved from the internet https://www.palantir.com/2007/09/palantir-screenshots/ retrieved on Aug. 18, 2015.
Official Communication for European Patent Application No. 14158958.0 dated Apr. 16, 2015.
Official Communication for Great Britain Patent Application No. 1411984.6 dated Dec. 22, 2014.
Official Communication for Australian Patent Application No. 2014210604 dated Jun. 5, 2015.
Official Communication for European Patent Application No. 16182336.4 dated Dec. 23, 2016.
Official Communication for European Patent Application No. 15183721.8 dated Nov. 23, 2015.
Official Communication for European Patent Application No. 15181419.1 dated Sep. 29, 2015.
Official Communication in New Zealand Application No. 627962 dated Aug. 5, 2014.
Official Communication for European Patent Application No. 14158977.0 dated Apr. 16, 2015.
Official Communication for Great Britain Patent Application No. 1404479.6 dated Aug. 12, 2014.
Olanoff, Drew, “Deep Dive with the New Google Maps for Desktop with Google Earth Integration, It's More than Just a Utility,” May 15, 2013, pp. 1-6, retrieved from the internet: http://web.archive.org/web/20130515230641/http://techcrunch.com/2013/05/15/deep-dive-with-the-new-google-maps-for-desktop-with-google-earth-integration-its-more-than-just-a-utility/.
Official Communication for European Patent Application No. 14187739.9 dated Jul. 6, 2015.
Official Communication for European Patent Application No. 15184764.7 dated Dec. 14, 2015.
Griffith, Daniel A., “A Generalized Huff Model,” Geographical Analysis, Apr. 1982, vol. 14, No. 2, pp. 135-144.
Official Communication for European Patent Application No. 14197938.5 dated Apr. 28, 2015.
Map of San Jose, CA. Retrieved Oct. 2, 2013 from http://maps.bing.com.
Official Communication for Great Britain Patent Application No. 1404489.5 dated May 21, 2015.
Niepert et al., “A Dynamic Ontology for a Dynamic Reference Work”, Joint Conference on Digital Libraries, Jun. 17_22, 2007, Vancouver, British Columbia, Canada, pp. 1-10.
Official Communication for European Patent Application No. 14200246.8 dated May 29, 2015.
Official Communciation for Australian Patent Application No. 2014201506 dated Feb. 27, 2015.
Palantir Technologies, “Palantir Labs—Timeline,” Oct. 1, 2010, retrieved from the internet https://www.youtube.com/watch?v=JCgDW5bru9M retrieved on Aug. 19, 2015.
Official Communication for Australian Patent Application No. 2014213553 dated May 7, 2015.
Official Communication in New Zealand Application No. 628840 dated Aug. 28, 2014.
Official Communication for European Patent Application No. 14158977.0 dated Jun. 10, 2014.
Valentini et al., “Ensembles of Learning Machines”, M. Marinaro and R. Tagliaferri (Eds.): Wirn Vietri 2002, LNCS 2486, pp. 3-20.
Anonymous, “BackTult—JD Edwards One World Version Control System,” printed Jul. 23, 2007 in 1 page.
Ananiev et al., “The New Modality API,” http://web.archiye.org/web/20061211011958/http://jaya.sun.com/deyeloper/technicalArticles/J2SE/Desktop/javase6/modality/ Jan. 21, 2006, pp. 8.
Chung, Chin-Wan, “Dataplex: An Access to Heterogeneous Distributed Databases,” Communications of the ACM, Association for Computing Machinery, Inc., vol. 33, No. 1, Jan. 1, 1990, pp. 70-80.
“Potential Money Laundering Warning Signs,” snapshot taken 2003, https://web.archiye.org/web/20030816090055/http:/finsolinc.com/ANTI-MONEY%20LAUNDERING%20TRAINING%20GUIDES.pdf.
Official Communication for Great Britain Application No. 1404457.2 dated Aug. 14, 2014.
GIS-NET 3 Public _ Department of Regional Planning. Planning & Zoning Information for Unincorporated LA County. Retrieved Oct. 2, 2013 from http://gis.planning.lacounty.gov/GIS-NET3_Public/Viewer.html.
Official Communication for Australian Patent Application No. 2014203669 dated May 29, 2015.
Delicious, <http://delicious.com/> as printed May 15, 2014 in 1 page.
Definition “Overlay”, downloaded Jan. 22, 2015, 1 page.
Official Communication for Great Britain Patent Application No. 1413935.6 dated Dec. 21, 2015.
Manno et al., “Introducing Collaboration in Single-user Applications through the Centralized Control Architecture,” 2010, pp. 10.
Kokossi et al., “D7-Dynamic Ontology Management System (Design)”, Information Societies Technology Programme, pp. 1-27.
Official Communication for Netherlands Patent Application No. 2013134 dated Apr. 20, 2015.
Official Communication for European Patent Application No. 14197895.7 dated Apr. 28, 2015.
Wang et al., “Research on a Clustering Data De-Duplication Mechanism Based on Bloom Filter,” IEEE 2010, 5 pages.
Pythagoras Communications Ltd., “Microsoft CRM Duplicate Detection,” Sep. 13, 2011, https://www.youtube.com/watch?v=j-7Qis0D0Kc.
Celik, Tantek, “CSS Basic User Interface Module Level 3 (CSS3 UI),” Section 8 Resizing and Overflow, Jan. 17, 2012, retrieved from internet http://www.w3.org/TR/2012/WD-c553-ui-20120117/#resizing-amp-overflow retrieved on May 18, 2015.
Liu, Tianshun, “Combining GIS and the Huff Model to Analyze Suitable Locations for a New Asian Supermarket in the Minneapolis and St. Paul, Minnesota USA,” Papers in Resource Analysis, 2012, vol. 14, pp. 8.
Official Communication for New Zealand Patent Application No. 622517 dated Apr. 3, 2014.
Keylines.com, “Visualizing Threats: Improved Cyber Security Through Network Visualization,” Apr. 2014, <http://keylines.com/wp-content/uploads/2014/04/Visualizing-Threats1.pdf> downloaded May 12, 2014 in 10 pages.
Official Communication for Great Britain Patent Application No. 1404499.4 dated Sep. 29, 2014.
Keylines.com, “KeyLines Datasheet,” Mar. 2014, <http://keylines.com/wp-content/uploads/2014/03/KeyLines-datasheet.pdf> downloaded May 12, 2014 in 2 pages.
“HunchLab: Heat Map and Kernel Density Calculation for Crime Analysis,” Azavea Journal, printed from www.azavea.com/blogs/newsletter/v4i4/kernel-density-capabilities-added-to-hunchlab/ on Sep. 9, 2014, 2 pages.
Thompson, Mick, “Getting Started with GEO,” Getting Started with GEO, Jul. 26, 2011.
Official Communication for European Patent Application No. 14180432.8 dated Jun. 23, 2015.
Official Communication for New Zealand Patent Application No. 628495 dated Aug. 19, 2014.
Umagandhi et al., “Search Query Recommendations Using Hybrid User Profile with Query Logs,” International Journal of Computer Applications, vol. 80, No. 10, Oct. 1, 2013, pp. 7-18.
Official Communication for New Zealand Patent Application No. 622513 dated Apr. 3, 2014.
Official Communication for Great Britain Patent Application No. 1404486.1 dated Aug. 27, 2014.
Hogue et al., “Thresher: Automating the Unwrapping of Semantic Content from the World Wide Web,” 14th International Conference on World Wide Web, WWW 2005: Chiba, Japan, May 10-14, 2005, pp. 86-95.
Notice of Acceptance for Australian Patent Application No. 2014203669 dated Jan. 21, 2016.
Official Communication for Great Britain Patent Application No. 1404499.4 dated Aug. 20, 2014.
Official Communication for Great Britain Patent Application No. 1404489.5 dated Oct. 6, 2014.
Wright et al., “Palantir Technologies VAST 2010 Challenge Text Records—Investigations into Arms Dealing,” Oct. 29, 2010, pp. 1-10, retrieved from the internet http://hcil2.cs.umd.edu/newvarepository/VAST%20Challenge%202010/challenges/MC1%20-%20Investigations%20into%20Arms%20Dealing/entries/Palantir%20Technologies/ retrieved on Aug. 20, 2015.
Hibbert et al., “Prediction of Shopping Behavior Using a Huff Model Within a GIS Framework,” Healthy Eating in Context, Mar. 18, 2011, pp. 16.
Microsoft Office—Visio, “Add and glue connectors with the Connector tool,” <http://office.microsoft.com/en-us/visio-help/add-and-glue-connectors-with-the-connector-tool-HA010048532.aspx?CTT=1> printed Aug. 4, 2011 in 1 page.
Symantec Corporation, “E-Security Begins with Sound Security Policies,” Announcement Symantec, Jun. 14, 2001.
Official Communication for New Zealand Patent Application No. 622473 dated Mar. 27, 2014.
Google Analytics Official Website—Web Analytics & Reporting, <http://www.google.com/analytics.index.html> Printed Jul. 18, 2013 in 22 pages.
Official Communication for Great Britain Patent Application No. 1408025.3 dated Nov. 6, 2014.
“A First Look: Predicting Market Demand for Food Retail using a Huff Analysis,” TRF Policy Solutions, Jul. 2012, pp. 30.
Miklau et al., “Securing History: Privacy and Accountability in Database Systems,” 3rd Biennial Conference on Innovative Data Systems Research (CIDR), Jan. 7-10, 2007, Asilomar, California, pp. 387-396.
Wikipedia, “Multimap,” Jan. 1, 2013, https://en.wikipedia.org/w/index.php?title=Multimap&oldid=530800748.
Piwik—Free Web Analytics Software. <http://piwik.org/> Printed Jul. 19, 2013 in18 pages.
Official Communication for Australian Patent Application No. 2014201511 dated Feb. 27, 2015.
Official Communication for European Patent Application no. 14197879.1 dated Apr. 28, 2015.
Glaab et al., “EnrichNet: Network-Based Gene Set Enrichment Analysis,” Bioinformatics 28.18 (2012): pp. i451-i457.
Official Communication for Great Britain Patent Application No. 1404457.2 dated Aug. 14, 2014.
Hansen et al., “Analyzing Social Media Networks with NodeXL: Insights from a Connected World”, Chapter 4, pp. 53-67 and Chapter 10, pp. 143-164, published Sep. 2010.
Amnet, “5 Great Tools for Visualizing Your Twitter Followers,” posted Aug. 4, 2010, http://www.amnetblog.com/component/content/article/115-5-grate-tools-for-visualizing-your-twitter-followers.html.
Official Communication for Netherlands Patent Application No. 2012438 dated Sep. 21, 2015.
Official Communication for European Patent Application No. 14199180.2 dated Jun. 22, 2015.
Official Communication for Netherlands Patent Application No. 2012436 dated Nov. 6, 2015.
Official Communication for New Zealand Patent Application No. 622404 dated Mar. 20, 2014.
Geiger, Jonathan G., “Data Quality Management, the Most Critical Initiative You Can Implement”, Data Warehousing, Management and Quality, Paper 098-29, SUGI 29, Intelligent Solutions, Inc., Bounder, CO, pp. 14, accessed Oct. 3, 2013.
Definition “Identify”, downloaded Jan. 22, 2015, 1 page.
Official Communication for European Patent Application No. 14180142.3 dated Feb. 6, 2015.
Microsoft—Developer Network, “Getting Started with VBA in Word 2010,” Apr. 2010, <http://msdn.microsoft.com/en-us/library/ff604039%28v=office.14%29.aspx> as printed Apr. 4, 2014 in 17 pages.
Official Communication for Israel Patent Application No. 198253 dated Nov. 24, 2014.
Official Communication for European Patent Application No. 14159464.8 dated Feb. 18, 2016.
Bugzilla@Mozilla, “Bug 18726—[feature] Long-click means of invoking contextual menus not supported,” http://bugzilla.mozilla.org/show_bug.cgi?id=18726 printed Jun. 13, 2013 in 11 pages.
Official Communication for European Patent Application No. 14199182.8 dated Mar. 13, 2015.
Official Communication for Netherlands Patent Application No. 2013306 dated Apr. 24, 2015.
Jelen, Bill, “Excel 2013 in Depth, Video Enhanced Edition,” Jan. 25, 2013.
About 80 Minutes, “Palantir in a Number of Parts—Part 6—Graph,” Mar. 21, 2013, pp. 1-6, retrieved from the internet.
Localytics—Mobile App Marketing & Analytics, <http://www.localytics.com/> Printed Jul. 18, 2013 in 12 pages.
Hua et al., “A Multi-attribute Data Structure with Parallel Bloom Filters for Network Services”, HiPC 2006, LNCS 4297, pp. 277-288, 2006.
Official Communication for European Patent Application No. 16188060.4 dated Feb. 6, 2017.
Dramowicz, Ela, “Retail Trade Area Analysis Using the Huff Model,” Directions Magazine, Jul. 2, 2005 in 10 pages, http://www.directionsmag.com/articles/retail-trade-area-analysis-using-the-huff-model/123411.
Official Communication for European Patent Application No. 14158861.6 dated Jun. 16, 2014.
Quest, “Toad for ORACLE 11.6—Guide to Using Toad”, pp. 1-162, Sep. 24, 2012.
Official Communication for Australian Patent Application No. 2014210614 dated Jun. 5, 2015.
Capptain—Pilot Your Apps, <http://www.capptain.com> Printed Jul. 18, 2013 in 6 pages.
Palantir, “Kite Data-Integration Process Overview,” Palantir Technologies, Inc., Copyright 2010, pp. 48.
Johnson, Steve, “Access 2013 on demand,” Access 2013 on Demand, May 9, 2013, Que Publishing.
Official Communication for European Patent Application No. 14159464.8 dated Jul. 31, 2014.
Official Communication for European Patent Application No. 14191540.5 dated May 27, 2015.
Rouse, Margaret, “OLAP Cube,” <http://searchdatamanagement.techtarget.com/definition/OLAP-cube>, Apr. 28, 2012.
Goswami, Gautam, “Quite Writly Said!,” One Brick at a Time, Aug. 21, 2005, pp. 7.
Conner, Nancy, “Google Apps: the Missing Manual,” May 1, 2008, pp. 15.
StatCounter—Free Invisible Web Tracker, Hit Counter and Web Stats, <http://statcounter.com/> Printed Jul. 19, 2013 in 17 pages.
Official Communication for European Patent Application No. 15166137.8 dated Sep. 14, 2015.
Official Communication for European Patent Application No. 14159464.8 dated Aug. 20, 2014.
Official Communication for Netherlands Patent Application No. 2012434 dated Jan. 8, 2016.
Official Communication for European Patent Application No. 15165244.3 dated Aug. 27, 2015.
UserMetrix, <http://usermetrix.com/android-analytics> printed Jul. 18, 2013 in 3 pages.
Official Communication for New Zealand Patent Application No. 628840 dated Aug. 28, 2014.
Official Communication for Great Britain Patent Application No. 1413935.6 dated Jan. 27, 2015.
Official Communication for European Patent Application No. 14159464.8 dated Sep. 22, 2014.
Official Communication for Great Britain Patent Application No. 1404489.5 dated Aug. 27, 2014.
Official Communication for Australian Patent Application No. 2014250678 dated Jun. 17, 2015.
Palantir, https://docs.palantir.com/gotham/3.11.1.0/dataguide/baggage/KiteSchema.xsd printed Apr. 4, 2014 in 4 pages.
Hardesty, “Privacy Challenges: Analysis: It's Surprisingly Easy to Identify Individuals from Credit-Card Metadata,” MIT News on Campus and Around the World, MIT News Office.
Official Communication for Netherlands Patent Application No. 2012417 dated Sep. 18, 2015.
Nierman, “Evaluating Structural Similarity in XML Documents”, 6 pages, 2002.
Official Communication for European Patent Application No. 14186225.0 dated Feb. 13, 2015.
Cohn, et al., “Semi-supervised clustering with user feedback,” Constrained Clustering: Advances in Algorithms, Theory, and Applications 4.1 (2003): 17-32.
Official Communication for Canadian Patent Application No. 2666364 dated Jun. 4, 2012.
“A Word About Banks and the Laundering of Drug Money,” Aug. 18, 2012, http://www.golemxiv.co.uk/2012/08/a-word-about-banks-and-the-laundering-of-drug-money/.
Official Communication for Israel Patent Application No. 198253 dated Jan. 12, 2016.
Official Communication for New Zealand Patent Application No. 622389 dated Mar. 20, 2014.
Klemmer et al., “Where Do Web Sites Come From? Capturing and Interacting with Design History,” Association for Computing Machinery, CHI 2002, Apr. 20-25, 2002, Minneapolis, MN, pp. 8.
Microsoft Office—Visio, “About connecting shapes,” <http://office.microsoft.com/en-us/visio-help/about-connecting-shapes-HP085050369.aspx> printed Aug. 4, 2011 in 6 pages.
Map of San Jose, CA. Retrieved Oct. 2, 2013 from http://maps.yahoo.com.
trak.io, <http://trak.io/> printed Jul. 18, 2013 in 3 pages.
Boyce, Jim, “Microsoft Outlook 2010 Inside Out,” Aug. 1, 2010, retrieved from the internet https://capdtron.files.wordpress.com/2013/01/outlook-2010-inside_out.pdf.
Official Communication for Great Britain Patent Application No. 1404486.1 dated May 21, 2015.
Official Communication for New Zealand Patent Application No. 628585 dated Aug. 26, 2014.
Official Communication for European Patent Application No. 14189344.6 dated Feb. 20, 2015.
Official Communication for European Patent Application No. 14199180.2 dated Aug. 31, 2015.
Official Communication for New Zealand Patent Application No. 622497 dated Jun. 19, 2014.
Official Communication for European Patent Application No. 14158977.0 dated Mar. 11, 2016.
Wikipedia, “Federated Database System,” Sep. 7, 2013, retrieved from the internet on Jan. 27, 2015 http://en.wikipedia.org/w/index.php?title=Federated_database_system&oldid=571954221.
Gu et al., “Record Linkage: Current Practice and Future Directions,” Jan. 15, 2004, pp. 32.
Palantir, “Kite,” https://docs.palantir.com/gotham/3.11.1.0/adminreference/datasources.11 printed Aug. 30, 2013 in 2 pages.
Official Communication for New Zealand Patent Application No. 627061 dated Jul. 14, 2014.
Hur et al., “SciMiner: web-based literature mining tool for target identification and functional enrichment analysis,” Bioinformatics 25.6 (2009): pp. 838-840.
Flurry Analytics, <http://www.flurry.com/> Printed Jul. 18, 2013 in 14 pages.
Nivas, Tuli, “Test Harness and Script Design Principles for Automated Testing of non-GUI or Web Based Applications,” Performance Lab, Jun. 2011, pp. 30-37.
Huff et al., “Calibrating the Huff Model Using ArcGIS Business Analyst,” SSRI, Sep. 2008, pp. 33.
Official Communication for New Zealand Patent Application No. 624557 dated May 14, 2014.
Acklen, Laura, “Absolute Beginner's Guide to Microsoft Word 2003,” Dec. 24, 2003, pp. 15-18, 34-41, 308-316.
Official Communication for European Patent Application No. 14200298.9 dated May 13, 2015.
Official Communication for European Patent Application No. 14158958.0 dated Mar. 11, 2016.
TestFlight—Beta Testing on the Fly, <http://testflightapp.com/> Printed Jul. 18, 2013 in 3 pages.
DISTIMO—App Analytics, <http://www.distimo.com/app-analytics> Printed Jul. 18, 2013 in 5 pages.
Kontagent Mobile Analytics, <http://www.kontagent.com/> Printed Jul. 18, 2013 in 9 pages.
Official Communication for European Patent Application No. 14189347.9 dated Mar. 4, 2015.
Official Communication for Australian Patent Application No. 2014201507 dated Feb. 27, 2015.
Chaudhuri et al., “An Overview of Business Intelligence Technology,” Communications of the ACM, Aug. 2011, vol. 54, No. 8.
Official Communication for New Zealand Patent Application No. 628161 dated Aug. 25, 2014.
Palantir, “The Repository Element,” https://docs.palantir.com/gotham/3.11.1.0/dataguide/kite_config_file.04 printed Aug. 30, 2013 in 2 pages.
Huff, David L., “Parameter Estimation in the Huff Model,” SSRI, ArcUser, Oct.-Dec. 2003, pp. 34-36.
Palantir, “Kite Operations,” Palantir Technologies, Inc., Copyright 2010, p. 1.
Official Communication for European Patent Application No. 15155845.9 dated Oct. 6, 2015.
Palantir, https://docs.palantir.com/gotham/3.11.1.0/dataguide/baggage/KiteSchema printed Aug. 30, 2013 in 1 page.
“Refresh CSS Ellipsis When Resizing Container—Stack Overflow,” Jul. 31, 2013, retrieved from internet http://stackoverflow.com/questions/17964681/refresh-css-ellipsis-when-resizing-container.
Bluttman et al., “Excel Formulas and Functions for Dummies,” 2005, Wiley Publishing, Inc., pp. 280, 284-286.
Mixpanel—Mobile Analytics, <https://mixpanel.com/> Printed Jul. 18, 2013 in 13 pages.
Open Web Analytics (OWA), <http://www.openwebanalytics.com/> Printed Jul. 19, 2013 in 5 pages.
Zheng et al., “GOEAST: a web-based software toolkit for Gene Ontology enrichment analysis,” Nucleic acids research 36.suppl 2 (2008): pp. W385-W363.
Official Communication for New Zealand Patent Application No. 622497 dated Mar. 26, 2014.
Official Communication for Great Britain Patent Application No. 1404479.6 dated Jul. 9, 2015.
Official Communication for European Patent Application No. 14189802.3 dated May 11, 2015.
Official Communication for Great Britain Patent Application No. 1411984.6 dated Jan. 8, 2016.
Official Communication for European Patent Application No. 14180281.9 dated Jan. 26, 2015.
Map of San Jose, CA. Retrieved Oct. 2, 2013 from http://maps.google.com.
Palantir, “Write a Kite Configuration File in Eclipse,” Palantir Technologies, Inc., Copyright 2010, pp. 2.
Countly Mobile Analytics, <http://count.ly/> Printed Jul. 18, 2013 in 9 pages.
Appacts, “Smart Thinking for Super Apps,” <http://www.appacts.com> Printed Jul. 18, 2013 in 4 pages.
Sigrist, et al., “PROSITE, a Protein Domain Database for Functional Characterization and Annotation,” Nucleic Acids Research, 2010, vol. 38, pp. D161-D166.
Canese et al., “Chapter 2: PubMed: The Bibliographic Database,” The NCBI Handbook, Oct. 2002, pp. 1-10.
Related Publications (1)
Number Date Country
20180196862 A1 Jul 2018 US
Provisional Applications (1)
Number Date Country
62216192 Sep 2015 US
Continuations (2)
Number Date Country
Parent 15369753 Dec 2016 US
Child 15913721 US
Parent 14874690 Oct 2015 US
Child 15369753 US