Determining and extracting changed data from a data source

Information

  • Patent Grant
  • 10180977
  • Patent Number
    10,180,977
  • Date Filed
    Tuesday, July 26, 2016
    9 years ago
  • Date Issued
    Tuesday, January 15, 2019
    6 years ago
Abstract
According to certain aspects, a computer system may be configured to obtain information indicating a plurality of groupings of data stored in a data source, the information indicating a number of data items included in each of the plurality of groupings; determine a first grouping of the plurality of groupings including one or more data items that have changed by comparing a first number of data items included in the first grouping and a historical first number of data items included in a corresponding local version of the first grouping; access data items included in the first grouping from the data source; compare the data items included in the first grouping to data items of the corresponding local version of the first grouping to determine which data items have changed; extract the changed data items of the first grouping; and forward the extracted data items to a destination system.
Description
TECHNICAL FIELD

The present disclosure relates to systems and techniques for data integration and analysis. More specifically, the present disclosure relates to identifying changes in the data of a data source.


BACKGROUND

Organizations and/or companies are producing increasingly large amounts of data. Such data may be stored in different data sources. Data sources may be updated, e.g., periodically.


SUMMARY

The systems, methods, and devices described herein each have several aspects, no single one of which is solely responsible for its desirable attributes. Without limiting the scope of this disclosure, several non-limiting features will now be discussed briefly.


In one embodiment, a computer system configured to obtain changed data from a data source comprises: one or more hardware computer processors configured to execute code in order to cause the system to: obtain information indicating a plurality of groupings of data stored in one or more files or databases in a data source, the information indicating a number of data items included in each of the plurality of groupings; determine a first grouping of the plurality of groupings including one or more data items that have changed by comparing a first number of data items included in the first grouping and a historical first number of data items included in a corresponding local version of the first grouping, wherein the corresponding local version of the first grouping is created based on data items included in the first grouping at a first time prior to said obtaining the information indicating the plurality of groupings of the data; access data items included in the first grouping from the data source; compare the data items included in the first grouping to data items of the corresponding local version of the first grouping to determine which data items of the first grouping from the data source have changed; extract the changed data items of the first grouping; and forward the extracted changed data items to a destination system.


In another embodiment, a method of obtaining changed data from a data source comprises: obtaining, by one or more hardware computer processors, information indicating a plurality of groupings of data stored in one or more files or databases in a data source, the information indicating a number of data items included in each of the plurality of groupings; determining, by the one or more hardware computer processors, a first grouping of the plurality of groupings including one or more data items that have changed by comparing a first number of data items included in the first grouping and a historical first number of data items included in a corresponding local version of the first grouping, wherein the corresponding local version of the first grouping is created based on data items included in the first grouping at a first time prior to said obtaining the information indicating the plurality of groupings of the data; accessing, by the one or more hardware computer processors, data items included in the first grouping from the data source; comparing, by the one or more hardware computer processors, the data items included in the first grouping to data items of the corresponding local version of the first grouping to determine which data items of the first grouping from the data source have changed; extracting, by the one or more hardware computer processors, the changed data items of the first grouping; and forwarding, by the one or more hardware computer processors, the extracted changed data items to a destination system.


In yet another embodiment, a non-transitory computer readable medium comprises instructions for obtaining changed data from a data source that cause a computer processor to: obtain information indicating a plurality of groupings of data stored in one or more files or databases in a data source, the information indicating a number of data items included in each of the plurality of groupings; determine a first grouping of the plurality of groupings including one or more data items that have changed by comparing a first number of data items included in the first grouping and a historical first number of data items included in a corresponding local version of the first grouping, wherein the corresponding local version of the first grouping is created based on data items included in the first grouping at a first time prior to said obtaining the information indicating the plurality of groupings of the data; access data items included in the first grouping from the data source; compare the data items included in the first grouping to data items of the corresponding local version of the first grouping to determine which data items of the first grouping from the data source have changed; extract the changed data items of the first grouping; and forward the extracted changed data items to a destination system.


In some embodiments, a computer system configured to obtain changed data from a data source comprises: one or more hardware computer processors configured to execute code in order to cause the system to: obtain information indicating a plurality of groupings of data of a data source, the information indicating a number of data items included in each of the plurality of groupings; determine a first grouping of the plurality of groupings including one or more data items that have changed by comparing a first number of data items included in the first grouping and a historical number of data items included in each of the plurality of groupings; access data items included in the first grouping from the data source; compare the data items included in the first grouping to data items of a corresponding local version of the first grouping to determine which data items of the first grouping from the data source have changed, wherein the corresponding local version of the first grouping of data items is a compressed version of the first grouping of data items; extract the changed data items of the first grouping; and forward the extracted changed data items to a destination system.


In certain embodiments, a method of obtaining changed data from a data source comprises: obtaining, by one or more hardware computer processors, information indicating a plurality of groupings of data of a data source, the information indicating a number of data items included in each of the plurality of groupings; determining, by the one or more hardware computer processors, a first grouping of the plurality of groupings including one or more data items that have changed by comparing a first number of data items included in the first grouping and a historical number of data items included in each of the plurality of groupings; accessing, by the one or more hardware computer processors, data items included in the first grouping from the data source; comparing, by the one or more hardware computer processors, the data items included in the first grouping to data items of a corresponding local version of the first grouping to determine which data items of the first grouping from the data source have changed, wherein the corresponding local version of the first grouping of data items is a compressed version of the first grouping of data items; extracting, by the one or more hardware computer processors, the changed data items of the first grouping; and forwarding, by the one or more hardware computer processors, the extracted changed data items to a destination system.


In other embodiments, a non-transitory computer readable medium comprises instructions for obtaining changed data from a data source that cause a computer processor to: obtain information indicating a plurality of groupings of data of a data source, the information indicating a number of data items included in each of the plurality of groupings; determine a first grouping of the plurality of groupings including one or more data items that have changed by comparing a first number of data items included in the first grouping and a historical number of data items included in each of the plurality of groupings; access data items included in the first grouping from the data source; compare the data items included in the first grouping to data items of a corresponding local version of the first grouping to determine which data items of the first grouping from the data source have changed, wherein the corresponding local version of the first grouping of data items is a compressed version of the first grouping of data items; extract the changed data items of the first grouping; and forward the extracted changed data items to a destination system.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 is a block diagram illustrating one embodiment of a change determination system configured to determine and obtain changes in data of a plurality of data sources.



FIG. 2A is a data flow diagram illustrative of the interaction between the various components of a change determination system configured to determine and obtain changes in data of a plurality of data sources, according to one embodiment.



FIG. 2B is a data flow diagram illustrative of the interaction between the various components of a change determination system configured to determine and obtain changes in data of a plurality of data sources, according to another embodiment.



FIG. 3 is an example of information obtained from a data source and/or information processed by the change determination system.



FIG. 4A is a flowchart illustrating one embodiment of a process for determining and obtaining changes in data of a plurality of data sources.



FIG. 4B is a flowchart illustrating another embodiment of a process for determining and obtaining changes in data of a plurality of data sources.



FIG. 5 is a block diagram illustrating a computer system with which certain methods discussed herein may be implemented.





DETAILED DESCRIPTION

Overview


Organizations may need to obtain data from one or more data sources. Often, data for a particular timeframe is downloaded from a data source. For example, a data source may contain log files, and log files for the past two days may be downloaded. However, some of the data may already have been obtained at a previous time, and the system that is requesting the data may not be able to distinguish between data that it already has and new or changed data that it has not yet been obtained. For instance, the requesting system may simply store the data it downloads each time without considering whether some data is duplicated. Some data may be downloaded again even though it already exists in the system. Accordingly, there is a need for identifying and extracting changed data from a data source in an efficient manner.


As disclosed herein, a change determination system may be configured to identify and obtain changes in data from one or more data sources. For example, the system can determine that there are changes to the data of a data source (e.g., the data for a particular timeframe, such as a day) based on some summary information for a current set of data from the data source (e.g., lines of data associated with a particular day in a previously received data set) compared to a current set of data from the data source (e.g., lines of data associated with the particular day in a current data set). Once pieces of data with changes are identified (e.g., days with different amounts of lines of data), the changed data may be obtained and compared to a local version of the data (or some representation of the data) in order to identify the particular data items (e.g., particular lines of data) that have changed, such that only those particular data items need be provided by the data source.


A data source can be one or more databases and/or one or more files. The actual changes can be forwarded to a destination system for storage. The change determination system can act as an intermediary between data sources and one or more destination systems to identify changed data and forward only the changed data to the destination systems.


It may take a lot of time to download from a data source (e.g., due to slow speed, amount of data, etc.), and re-downloading data that already exists in the destination system can lead to spending unnecessary time and resources. Moreover, saving duplicate data can take up unnecessary storage space in the destination system. By identifying and forwarding only the changed data, the change determination system can provide a way to obtain data from a data source in an intelligent manner and can save time and/or resources for the destination system. This can be very helpful especially when a data source contains large amounts of data, and only a small portion of the data has changed. The change determination system can also identify the changes quickly, for example, by performing a grouping operation on the data explained in detail below.


Change Determination System



FIG. 1 is a block diagram illustrating one embodiment of a change determination system 100 configured to determine and obtain changes in data of a plurality of data sources 110. A data source 110 can include one or more databases 110a, one or more files 110b (e.g., flat file or file system), any other type of data structure, or a combination of multiple data structures. Data in the database 110a may be organized into one or more tables, which include rows and columns. Data in the file 110b may be organized as lines with various fields. For example, a file 110b may be in CSV format. Data in files, databases, or other data structure, may be referred to in terms of “lines,” where a line is a subset of the file. For example, lines of a file may be groups of data between newline markers or divisions of text of the file into predetermined size groups (e.g., each line includes 255 characters) and lines of a database may be a row or some other subset of information in the database. Data in a database 110a and a file 110b may be handled or processed in a similar manner by the change determination system (“CDS”) 100. In certain embodiments, the CDS 100 obtains changes from a single data source 110, instead of multiple data sources 110.


The CDS 100 may include one or more components (not shown) that perform functions relating to determining and obtaining changes in the data of data sources 110. The CDS 100 may also include local storage 150, which can store any local version of the data in a data source 110, such as a summarized and/or compressed version of the data. The local version of the data can be used to identify the actual changes in the data of the data source 210 and/or portions of the data (e.g., lines of the data) that include changes. The local version may include some or all of the data of a data source, depending on the embodiment.


One or more destination systems 270 may request changed data from the CDS 100. The destination systems 270 may send a request on a periodic basis (e.g., scheduled), on demand, etc. The CDS 100 may also periodically check a data source(s) 210 and forward any changes without receiving a request from a destination system 270. For example, the CDS 100 may be scheduled to check the data sources 210 every 2 hours. Such a schedule may be defined as one or more policies. In one embodiment, a destination system 270 includes the CDS 100, such that the functionality described herein with reference to the CDS 100 may be performed by the destination system 270 itself.



FIG. 2A is a data flow diagram illustrative of the interaction between the various components of a change determination system 200a configured to determine and obtain changes in data of a plurality of data sources, according to one embodiment. The CDS 200a and corresponding components of FIG. 2A may be similar to or the same as the CDS 100 and similarly named components of FIG. 1.


At data flow action 1, the CDS 200a performs a query on the data in a data source 210 to group by a particular attribute, such as a column of information in a table. For purposes of discussion herein, many examples are discussed with reference to grouping based on one or more “columns,” where each column is associated with a particular attribute. In other embodiments, attributes may be associated with different display features of a data structure (e.g., besides columns). For example, if the data source 210 is a database 210a, the CDS 200a can perform an SQL query and group by a particular column in a table, e.g., by using the GROUP BY clause, which is used in SQL to group rows having common values into a smaller set of rows. The smaller sets of rows may be referred to as partitions or groups. Each partition includes rows that have the same value for the designated column. GROUP BY is often used in conjunction with SQL aggregation functions or to eliminate duplicate rows from a result set.


The column that is designated as the column for GROUP BY should be able to provide some indication of which rows are new or changed from the previous time the CDS 200a obtained data from the data source 210. In one example, a table in the database 210a includes a last updated column, which includes a timestamp for when the data in the row was last updated, and the data in the database 210a can be grouped by the last updated column. Since the timestamp can include the hour, minute, second, etc. in addition to the date, only the date of the timestamp might be used for GROUP BY. In such case, a partition would be based on a day, and each partition would contain the rows for each day. An aggregate function such as COUNT can be applied to the results of GROUP BY in order to obtain the number of rows for each partition. The results of the query from the data source 210 can include one or more partitions from the GROUP BY and the number of rows included in each partition. The CDS 200a may store the results or keep track of the results locally so that the results can be compared the next time the CDS 200a requests this type of information from the data source 210.


Data from a file data source 210b may also be queried in a similar manner. The CDS 200a may use different adapters to access data residing in one or more databases 210a and data residing in one or more files 210b, but once the data is obtained, it can be handled in the same manner by the CDS 200a, regardless of whether the data source is in the form of a database 210a or a file 210b. The details discussed with respect to a database data source 210a can be generalized to other types of data sources 210, including a file data source 210b. For example, a partition can refer to a grouping used on a text (or other field type) resulting from an operation that is similar to SQL GROUP BY. A partition may also be referred to as a “grouping.” A grouping may include data from a database 210a or a file 210b. A unit of data included in a grouping may be referred as a “data item.” A data item may be a row in case of a database 210a or a line in case of a file 210b. The column or field to group by can be any type that can provide partitions of appropriate size for comparison (e.g., provide uneven or non-uniform distribution). Some details relating to the group by column/field are explained further below.


At data flow action 2, the CDS 200a determines which partition(s) have changed. The number of rows for the partitions obtained at data flow action 1 may be compared to the number of rows for corresponding partitions obtained at a previous time. The current number of rows in partitions may be referred to as “current grouping data,” and the number of rows for various partitions from a previous time may be referred to as “historical grouping data.” The CDS 200a can compare the current grouping data against the historical grouping data to determine whether the number of rows for a particular partition changed. For example, if the number of rows for Day 1 is 1,000 in the historical grouping data, but the number of rows for Day 1 is 1,050 in the current grouping data, the partition for Day 1 is a candidate for checking whether the actual data changed. It is likely that 50 new rows were added for Day 1, and the CDS 200a can determine which rows of 1,050 are new and extract them to forward to a destination system 270. In this manner, the CDS 200a may identify one or more partitions that have changed.


At data flow action 3, the CDS 200a obtains data for any identified changed partition(s). In particular, once the CDS 200a identifies a changed partition, the CDS 200a obtains the data for the particular partition from the data source 210. In the example above, the CDS 200a requests the 1,050 rows for Day 1. The CDS 200a can store the 1,050 rows locally, e.g., in local storage 250a. The 1,050 rows can then be used for comparison the next time the data for this partition is changed.


At data flow action 4, the CDS 200a compares the obtained data with the local version of the changed partition. The CDS 200a can compare the downloaded data against a corresponding local version of the data. For example, the CDS 200a may have stored the 1,000 rows for Day 1 from a previous time in local storage 250a. The data for the partition from a previous time may be referred to as “historical partition data.” Similarly, the current data for the partition may be referred to as “current partition data.” The local version of the data may include data for one partition or a number of partitions. By comparing the 1,050 current rows for Day 1 in the current partition data to the 1,000 previous rows for Day 1 in the historical partition data, the CDS 200a may identify which 50 rows have changed. These 50 rows can be flagged or put in a file so that they can be sent to any relevant destination system 270.


At data flow action 5, the CDS 200a forwards the changed data to the destination system 270. As explained above, the changed data may be extracted from the current partition data, saved to a file, and sent to the destination system 270. The destination system 270 may then store the received data in its storage device(s) without having to check whether any duplicate exists in the received data. Because the CDS 210a can send the exact changed data, the destination system 270 can simply store what it receives from the CDS 210a and does not need to implement much functionality at its end.


In FIG. 2A, in order to compare the current partition data to the historical partition data, the CDS 200a may locally maintain all or a subset of the data from a data source 210. However, in some cases, the local storage 250a may have limited storage space, and the CDS 200a may not be able to store all of the data used in the comparison. Accordingly, in such cases, the CDS 200a may maintain a compressed version of the data from a data source 210 for comparison. In some embodiments, the compressed version of the data can be one or more Bloom filters. Such embodiments are described in further detail in connection with FIG. 2B.



FIG. 2B is a data flow diagram illustrative of the interaction between the various components of a change determination system 200b configured to determine and obtain changes in data of a plurality of data sources, according to another embodiment. The CDS 200b and corresponding components of FIG. 2B may be similar to or the same as the CDS 100, 200a and similarly named components of Figures and 2A.


Data flow actions 1-5 can be similar to data flow actions 1-5 in FIG. 2A. Certain details relating to the CDS 200b are explained above in more detail in connection with FIG. 2A. In general, though, at data flow action 1, the CDS 200b performs a query on the data in a data source 210 to group by a particular column. At data flow action 2, the CDS 200b determines which partition has changed. At data flow action 3, the CDS 200b obtains data for the changed partition.


As explained above, a Bloom filter(s) can be used in comparison of the current partition data and the historical partition data. A Bloom filter may refer to a space-efficient probabilistic data structure that is used to test whether an element is a member of a set (e.g., data items are part of a partition). False positive matches are possible, but false negatives are not. For example, a query can return either “possibly in set” or “definitely not in set.” Elements can be added to the set, but generally cannot be removed. As more elements are added to the set, the probability of false positives becomes larger.


In one embodiment, a Bloom filter used by the CDS 200b is a bit array of m bits and has k different hash functions that are used to add an element to the Bloom filter. In order to add an element to the Bloom filter, an element is fed to each of the k hash functions to get k array positions. The bits at these k positions are set to 1. In order to query for an element to determine whether it is in the set, the element is fed to each of the k hash functions to get the k array positions. If any of the bits at these positions is 0, the element is definitely not in the set. If all of the bits at these positions are 1, the element is either in the set, or the bits were set to 1 by chance when adding other elements. If the bits were set to 1 by chance, this can lead to a false positive. The Bloom filter is not required to store the elements themselves.


Although a risk of false positives exists, Bloom filters can provide a strong space advantage over other data structures for representing sets, such as self-balancing binary search trees, hash tables, simple arrays, linked lists, etc. Other data structures may require storing at least the data items themselves, which can require anywhere from a small number of bits (e.g., for small integers) to an arbitrary number of bits (e.g., for strings). On the other hand, a Bloom filter with 1% error and an optimal value of k may require only about 9.6 bits per element (e.g., data item), regardless of the size of the elements. The space advantage can be partly due to the compactness of the Bloom filter, inherited from arrays, and partly due to the probabilistic nature of the Bloom filter. The 1% false-positive rate can be reduced by a factor of ten by adding only about 4.8 bits per element.


At data flow action 4, the CDS 200b compares the current partition data to historical partition data using one or more Bloom filters 255. One or more Bloom filters 255 may be stored in local storage 250b. A Bloom filter can be created for the local version of the data. For example, at the time of a previous download, the CDS 200b may have added the data items from the data source 210 to a Bloom filter. Although the Bloom filter does not store the actual data items (e.g., the actual data items can be deleted after corresponding Bloom filters are generated), it can determine with high probability whether a data item is included in the previous version of the data or not. The Bloom filter can take up much less space than storing the historical or current partition data and can serve as a compressed version of the data. For each data item included in the current partition data, the CDS 200b can query the Bloom filter that includes the corresponding historical partition data to check whether the data item was included in the historical partition data or if it is new. In one embodiment, if n number of hash functions are defined for the Bloom filter, the Bloom filter applies the n hash functions to the data item to return n number of array positions. If any of the array positions is 0, the data item was not included in the historical partition data. If all array positions are 1, the data item was likely included in the historical partition data, although a small probability of false positive exists.


Partition data obtained from a data source 210 may include a number of individual data items (e.g., rows, lines, etc.), and the actual number of data items included in the data of a partition can vary; some partitions may include a small number of data items, and other partitions can include a large number of data items. In one embodiment, the size of a Bloom filter is predetermined, and it may not be optimal to use the same Bloom filter for a small amount of data and a large amount of data. The probability of the Bloom filter returning false positives increases with the number of elements added to the Bloom filter. Therefore, if too many elements are added, the Bloom filter may become saturated, and the accuracy of the Bloom filter can deteriorate, e.g., to a point of returning almost 100% false positives. Accordingly, Bloom filters of different sizes can be used to accommodate data of varying size. For example, a Bloom filter has a predetermined size of m bits when it is created and may not be able to accommodate data that includes more than a specific number of elements (e.g., x number of elements) without deterioration of accuracy. For data that includes more than x elements, a Bloom filter having a size larger than m bits can be used. Because the size of data from different data sources can vary, the CDS 200b may use a series of Bloom filters of increasing size in order to accommodate different data size. For instance, the CDS 200b may have a number of Bloom filters of varying sizes available for use, or may create one as needed. In one example, the CDS 200b may begin with a Bloom filter having a size of m bits, and if this Bloom filter is too small for the data, the CDS 200b may select or create a Bloom filter having a size of m+y bits and so on until the CDS 200b finds a Bloom filter having the right size for the data. The data from various data sources 210 may share the same set of Bloom filters. Or in certain embodiments, the CDS 200b may keep Bloom filters for different data sources 210 separate from each other.


In one embodiment, the CDS 200b may store Bloom filters 255 on storage that provides high accessibility. For example, the local storage 250b can include storage that is a type which is more accessible than storage used by a destination system 270. For example, the local storage 250b can use Network Attached Storage (NAS) since it is very accessible to attached devices. A more accessible storage type may be more expensive than less accessible storage type, and since Bloom filters can save space, the CDS 200b can reduce costs associated with the local storage 250b.


At data flow action 5, the CDS 200b extracts and forwards the changed data to the destination system 270. This step can be similar to data flow action 5 of FIG. 2A. The CDS 200b can forward the changed data to one or more destination systems 270.



FIG. 3 is an example of information obtained from a data source and/or information processed by the change determination system. A specific, illustrative example will be explained with respect to FIG. 3. Various aspects will be explained with reference to the CDS 200a in FIG. 2A, but the example can also apply to the CDS 100, 200b of FIGS. 1 and 2B. The example will refer to data of a data source 210 at time T0 and data of the data source 210 at time T1, where T0 is earlier than T1.


At time T1, the CDS 200a performs a query on the data of the data source 210 to group the data by the last changed or updated column or field. The data can be grouped into one or more groupings based on the date. The data source 210 can return a result that includes groupings 310 organized by date. The result can be referred to as “current grouping data.” The current grouping data 310 may list the date for a grouping and the number of data items included in that grouping. The current grouping data 310 shows that Grouping 1 is for 2/10/14, and the number of data items in Grouping 1 is 400; Grouping 2 is for 2/11/14, and the number of data items in Grouping 2 is 310; and Grouping 3 is for 2/12/14, and the number of data items in Grouping 3 is 175.


The CDS 200a compares the current grouping data 310 to historical grouping data 315. Historical grouping data 315 can include the grouping data obtained from the data source 210 at various times in the past. Historical grouping data 315 can include grouping data for one or more days. In FIG. 3, the historical grouping data 315 shows the grouping data at T0. The historical grouping data 315 shows that Grouping 1 is for 2/10/14, and the number of data items in Grouping 1 is 380; Grouping 2 is for 2/11/14, and the number of data items in Grouping 2 is 310; and Grouping 3 is for 2/12/14, and the number of data items in Grouping 3 is 165.


By comparing the number of data items in the same groupings at different points in time, the CDS 200 can identify that certain groupings have changed or are potential candidates having changed data items. The number of data items for Grouping 1 at T1 is 400, and the number of data items for Grouping 1 at T0 is 380. The number of data items for Grouping 2 at T1 is 310, and the number of data items for Grouping 2 at T0 is 310. The number of data items for Grouping 3 at T1 is 175, and the number of data items for Grouping 3 at T0 is 165. The CDS 200a can see that the number of data items in Groupings 1 and 3 changed from T0 to T1, while the number of data items in Grouping 2 remained the same from T0 to T1. From this comparison, the CDS 200a can determine that data for Grouping 1 and Grouping 3 may have changed and should be obtained from the data source 210. The CDS 200a may keep track of the changed groupings 320, e.g., to request data from these groupings from the data source 210. For example, the changed groupings 320 information can list Groupings 1 and 3.


The CDS 200a obtains the data for Grouping 1 from the data source 210, and also obtains the data for Grouping 3 from the data source 210 (or some summary of the groupings, such as Bloom filters, in other embodiments). The example will be further explained with the obtained Grouping 3 data 330. Grouping 3 data 330 includes all 175 data items included in the grouping. The data source 210 can be a database 210a, and Grouping 3 data 330 may include rows as data items. Each row in Grouping 3 data 330 can include the date and time for the row (e.g., the timestamp of the last updated column) and the data of that row.


The CDS 200a compares Grouping 3 data 330 against Grouping 3 historical data 335. Grouping 3 data 330 can be associated with T1, and Grouping 3 historical data 335 can be associated with T0. For example, Grouping 3 historical data 335 can be Grouping 3 data that was obtained at T0. Grouping 3 historical data may also include rows as data items. Each row in Grouping 3 historical data 335 can also include the date and time for the row and the data of that row. By comparing Grouping 3 data 330 and Grouping 3 historical data 335, the CDS 200a can determine that Row 3 changed, for example, Row 3 may have been inserted after T0. The CDS 200a flags Row 3 as a data item to send to a destination system 270. By going through the rest of Grouping 3 data 330 and Grouping 3 historical data 335, the CDS 200a identifies 10 rows in this example that were added. The CDS 200a can keep track of the changed data items in a list, such as Grouping 3 changed items list 340. In some embodiments, instead of comparing the data items to the previous version of the data items, the CDS 200a uses a Bloom filter to which the data items in the previous version have been added. The CDS 200a queries the Bloom filter to determine if a data item is in the set.


The CDS 200a may obtain grouping information for all dates for which data is available in the data source 210. For example, a data source 210 contains data for 1,000 days, the CDS 200a can get the grouping information for all 1,000 days. Or the CDS 200a may specify a timeframe for which it wants to obtain grouping information, such as 60 days. Grouping information can be easily obtained from a data source 210 without placing a burden on the resources of the data source 210. By comparing to historical grouping information, the CDS 200a can easily identify which groupings may have changed data.


Because comparison of grouping information can make it easy to spot changed data over a long period of time, the CDS 200a can capture all of the changes in the data. For example, in a system that downloads data for last 5 days may miss any data items whose last updated timestamp has changed to fall outside this 5-day window. However, the CDS 200a can detect that a data item has been removed or added to a particular grouping in any time window. For example, a user accidentally changes the last updated timestamp for Row 1 to Day 1 of Day 1,000. The system that only downloads last 5 days of data will miss Row 1, but the CDS 200a will recognize Row 1 as a change because it will be reflected in the number of data items for Day 1 in the grouping information.


The grouping unit or size and the grouping column can be selected such that most of the new data added to the data source 210 falls into one of the grouping units. In one embodiment, the grouping unit or size can relate to the desired latency of the pipeline, and the grouping column can relate to the distribution. The grouping unit or size may be selected at different levels of granularity. For example, a grouping may be based on a unit of multiple days, a day, multiple hours, an hour, etc. The unit or size of a grouping can be selected as appropriate, e.g., based on the requirements of the data source 210, CDS 200a, and/or the destination system 270. The unit or size of a grouping can be specified at a level that provides a meaningful comparison of groupings. In some embodiments, the grouping unit that leads to an even distribution of data items into groupings may not be very helpful since each grouping will have a change to the number of data items, and the CDS 200a has to check almost all groupings. For example, if GROUP BY was by an hour, instead of a day, the partition for each hour will probably include a few rows, and almost all partitions would have to be checked, which can lead to obtaining data for most of the partitions. On the other hand, GROUP BY by a day will probably lead to recently added data falling into the more recent partitions. Under similar reasoning, the column or field used for grouping by can have a characteristic that leads to more “skewed” distribution than even distribution. In one example, if the data items were grouped by first letter of a person's last name, the grouping for each alphabet letter will likely contain new data items, and groupings for all alphabet letters will have to be checked. In other embodiments, even distribution of data items may be desired, and accordingly, the grouping unit or size and the grouping column can be selected to provide an even distribution of data items. For example, this may be done such that most of data items to be processed are not placed into one grouping.


In the example where the data is grouped by the last updated column, the CDS 200a may not distinguish between a data item that has been added and an existing data item that has been updated. In certain embodiments, the CDS 200a may implement a way to distinguish between the two types of change. For example, each data item may be assigned a unique identifier, e.g., when the data item is stored locally in local storage 250a. The unique identifier can be used to track whether a data item has been updated. In this case, the CDS 200a may not be able to use Bloom filters since actual data is not stored in Bloom filters.


In some embodiments, the CDS 200a may recognize that some data items have been deleted. For instance, the number of data items for a grouping may have decreased in comparison the previous number of data items for that grouping. The CDS 200a can identify the deleted data by comparing the data for the grouping to the local version of the data for the grouping. The CDS 200a may send information to the destination system 270 that the identified data items have been deleted, and the destination system 270 can delete the data items from its storage based on the information sent by the CDS 200a.


As described above, the CDS 200a can offer many advantages. The CDS 200a can identify a changed subset of data in a data source 210 without downloading all of the data. The CDS 200a can do so for large amounts, which can be very efficient. Only a portion of the data that may include changes is downloaded to extract the actual change. The CDS 200a can also identify changes in a generic way and can work with various data sources 210. Often, the CDS 200a may not have any information about the data of a data source 210. For example, the CDS 200a may not know how the data is structured (e.g., database schema, file format, etc.), how frequently the data is updated, ways in which the data is updated, or how the data is updated. The CDS 200a may identify a column such as the last updated column that can indicate whether a data item might be new and proceed to identify changes by performing a group by on the selected column. The CDS 200a may also handle data in different formats, such as databases and files, in the same or a similar manner. Because the CDS 200a only obtains or grabs changed data from a data source 210 to send to a destination system 270, the CDS 200a may also be referred to as a “grabber.”



FIG. 4A is a flowchart illustrating one embodiment of a process 400a for determining and obtaining changes in data of a plurality of data sources. The process 400a may be implemented by one or more systems described with respect to FIGS. 1-2 and 5. For illustrative purposes, the process 400a is explained below in connection with the CDS 200a in FIG. 2A. Certain details relating to the process 400a are explained in more detail with respect to FIGS. 1-5. Depending on the embodiment, the process 400a may include fewer or additional blocks, and the blocks may be performed in an order that is different than illustrated.


At block 401a, the CDS 200a obtains information indicating groupings of data of a data source 210. The data may be stored in one or more files or databases in the data source 210. The information can indicate a number of data items included in each of the groupings. The groupings can be based on timestamps of respective data items. The timestamps can indicate respective times at which data items were last updated. In certain embodiments, the timestamps of the respective data items include the date and the time at which the respective data items were last updated, and the groupings are based on only the date of the timestamps of the respective data items. For example, a grouping operation is performed based on only the date of the timestamps associated with the data items. In such case, each grouping is associated with a specific date. In some embodiments, the groupings are based on field of respective data items that can provide an uneven distribution of data items included in each grouping.


The CDS 200a may obtain the information indicating the groupings of the data at an interval. The CDS 200a may also obtain the information indicating the groupings of the data in response to receiving a request from a destination system 270. The CDS 200a may obtain information indicating the groupings of the data stored in one or more files in the data source 210 using a first adapter. The CDS 200a may obtain information indicating the groupings of the data stored in one or more databases in the data source 210 using a second adapter. The first adapter and the second adapter may be different.


At block 402a, the CDS 200a determines a grouping whose data items have changed. The CDS 200a can determine whether data items of a grouping have changed by comparing a number of data items included in the grouping and a historical number of data items included in a corresponding local version of that grouping. The corresponding local version of the first grouping may be created based on data items included in the grouping at a time prior to obtaining the information indicating the groupings of the data. This time may be referred to as time T0.


At block 403a, the CDS 200a obtains data items in the changed grouping from the data source 210. A data item included in the grouping can be a row in the one or more databases of the data source 210 or a line in the one or more files in the data source 210. In certain embodiments, if the data source 210 includes one or more files, the CDS 200a can check the timestamp of a file and compare it to the timestamp of the previous version of the file in order to determine whether the file may include new data. By comparing the timestamps of the current file and the previous version of the file, the CDS 200a does not need to parse through the data in the file to determine whether new data has been added. In such embodiments, the CDS 200a may not obtain grouping information. In addition, with respect to blocks 402a and 403a, the CDS 200a can directly compare the data items in the current file and the data items in the previous version of the file, instead of determining changed grouping(s) and/or obtaining the data items in the changed grouping from the data source 210.


At block 404a, the CDS 200a compares data items in the grouping with the data items of the corresponding local version of the grouping. By comparing the data items, the CDS 200 can determine which data items of the grouping from the data source 210 have changed. The corresponding local version of the grouping can include a copy of the data items included in the grouping at T0. In certain embodiments, where the data source 210 includes one or more files, the CDS 200a can treat each newline in the file as a data item and compare the data items in the current file and the data items in the previous version of the file to identify the changed data items.


At block 405a, the CDS 200a extracts the changed data items of the grouping. The CDS 200a can forward the extracted changed data items to one or more destination systems 270.


If the number of data items included in the grouping is higher than the historical number of data items included in the corresponding local version of the grouping, the CDS 200a can identify the changed data items as added or updated data items, and forward the changed data items to the destination system 270 to be stored. If the number of data items included in the grouping is lower than the historical number of data items included in the corresponding local version of the grouping, the CDS 200a can identify the changed data items as deleted data items, and forward the changed data items to the destination system 270 to be removed.


In some embodiments, the CDS 200a assigns a unique identifier to each of the data item included in the grouping. The CDS 200a can determine whether a changed item is a new data item or an updated data item based on the unique identifier associated with the changed data item.



FIG. 4B is a flowchart illustrating another embodiment of a process 400b for determining and obtaining changes in data of a plurality of data sources. The process 400b may be implemented by one or more systems described with respect to FIGS. 1-2 and 5. For illustrative purposes, the process 400b is explained below in connection with the CDS 200b in FIG. 2B. Certain details relating to the process 400b are explained in more detail with respect to FIGS. 1-5. Depending on the embodiment, the process 400b may include fewer or additional blocks, and the blocks may be performed in an order that is different than illustrated.


At block 401b, the CDS 200b obtains information indicating groupings of data of a data source 210. The data source 210 may be a database or a file. The information can indicate a number of data items included in each of the groupings. The groupings can be based on timestamps of respective data items. The timestamps can indicate respective times at which data items were last updated.


At block 402b, the CDS 200b determines a grouping whose data items have changed. The CDS 200b can determine whether data items of a grouping have changed by comparing a number of data items included in the grouping and a historical number of data items included in each of the groupings. For example, the historical number of data items included in each of the groupings may be stored in historical grouping data 315 discussed with respect to FIG. 3.


At block 403b, the CDS 200b obtains data items in the changed grouping from the data source 210. If the data source 210 is a database 210a, a data item included in the grouping can be a row, and if the data source 210 is a file 210b, a data item included in the grouping can be a line.


At block 404b, the CDS 200b compares data items in the grouping with a compressed version of the data. The CDS 200b can compare the data items in the grouping with a corresponding local version of the grouping, which can be a compressed version of the data. Based on the comparison, the CDS 200b can determine which data items of the grouping from the data source 210 have changed. The compressed version of the data may be a space-efficient probabilistic data structure, such as a Bloom filter. The space-efficient probabilistic data structure may include information about data items included in the grouping at a time prior to obtaining the information indicating the groupings of the data of the data source 210. This time may be referred to as time T0. The space-efficient probabilistic data structure can identify whether a data item included in the grouping was included in the grouping at the prior time (e.g., time T0). In some embodiments, the space-efficient probabilistic data structure is a Bloom filter. The Bloom filter may be selected from multiple Bloom filters each having a different size. The compressed version of the data may not comprise a copy of the grouping.


The compressed version of the data is stored on local storage 250b, and the extracted changed data items forwarded to the destination system 270 are stored on storage in the destination system 270. In certain embodiments, the local storage 250b has a smaller storage capacity than the destination system 270 storage. In one embodiment, the local storage 250b includes NAS.


At block 405b, the CDS 200b extracts the changed data items of the grouping. At block 406b, the CDS 200b forwards the changed data items to the destination system 270. Blocks 405b and 406b can be similar to blocks 405a in FIG. 4A.


Implementation Mechanisms


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 circuitry or 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 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, server computer systems, portable computer systems, handheld devices, networking devices or any other device or combination of devices that incorporate hard-wired and/or program logic to implement the techniques.


Computing device(s) are generally controlled and coordinated by operating system software, such as iOS, Android, Chrome OS, Windows XP, Windows Vista, Windows 7, Windows 8, Windows Server, Windows CE, Unix, Linux, SunOS, Solaris, iOS, Blackberry OS, VxWorks, or other compatible operating systems. In other embodiments, the computing device may be controlled by a proprietary operating system. Conventional operating systems control and schedule computer processes for execution, perform memory management, provide file system, networking, I/O services, and provide a user interface functionality, such as a graphical user interface (“GUI”), among other things.


For example, FIG. 8 is a block diagram that illustrates a computer system 500 upon which an embodiment may be implemented. For example, the computing system 500 may comprises a server system that accesses law enforcement data and provides user interface data to one or more users (e.g., executives) that allows those users to view their desired executive dashboards and interface with the data. Other computing systems discussed herein, such as the user (e.g., executive), may include any portion of the circuitry and/or functionality discussed with reference to system 500.


Computer system 500 includes a bus 502 or other communication mechanism for communicating information, and a hardware processor, or multiple processors, 504 coupled with bus 502 for processing information. Hardware processor(s) 504 may be, for example, one or more general purpose microprocessors.


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


Computer system 500 further includes a read only memory (ROM) 808 or other static storage device coupled to bus 502 for storing static information and instructions for processor 504. A storage device 510, such as a magnetic disk, optical disk, or USB thumb drive (Flash drive), etc., is provided and coupled to bus 502 for storing information and instructions.


Computer system 500 may be coupled via bus 502 to a display 512, such as a cathode ray tube (CRT) or LCD display (or touch screen), for displaying information to a computer user. An input device 514, including alphanumeric and other keys, is coupled to bus 502 for communicating information and command selections to processor 504. Another type of user input device is cursor control 516, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 504 and for controlling cursor movement on display 512. 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. In some embodiments, the same direction information and command selections as cursor control may be implemented via receiving touches on a touch screen without a cursor.


Computing system 500 may include a user interface module to implement a GUI that may be stored in a mass storage device as executable software codes that are executed by the computing device(s). This and other modules may include, by way of example, components, such as software components, object-oriented software components, class components and task components, processes, functions, attributes, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, and variables.


In general, the word “module,” as used herein, refers to logic embodied in hardware or firmware, or to a collection of software instructions, possibly having entry and exit points, written in a programming language, such as, for example, Java, Lua, C or C++. A software module may be compiled and linked into an executable program, installed in a dynamic link library, or may be written in an interpreted programming language such as, for example, BASIC, Perl, or Python. It will be appreciated that software modules may be callable from other modules or from themselves, and/or may be invoked in response to detected events or interrupts. Software modules configured for execution on computing devices may be provided on a computer readable medium, such as a compact disc, digital video disc, flash drive, magnetic disc, or any other tangible medium, or as a digital download (and may be originally stored in a compressed or installable format that requires installation, decompression or decryption prior to execution). Such software code may be stored, partially or fully, on a memory device of the executing computing device, for execution by the computing device. Software instructions may be embedded in firmware, such as an EPROM. It will be further appreciated that hardware modules may be comprised of connected logic units, such as gates and flip-flops, and/or may be comprised of programmable units, such as programmable gate arrays or processors. The modules or computing device functionality described herein are preferably implemented as software modules, but may be represented in hardware or firmware. Generally, the modules described herein refer to logical modules that may be combined with other modules or divided into sub-modules despite their physical organization or storage


Computer system 500 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 500 to be a special-purpose machine. According to one embodiment, the techniques herein are performed by computer system 500 in response to processor(s) 504 executing one or more sequences of one or more instructions contained in main memory 506. Such instructions may be read into main memory 506 from another storage medium, such as storage device 510. Execution of the sequences of instructions contained in main memory 506 causes processor(s) 504 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 “non-transitory media,” and similar terms, as used herein refers to any media that store data and/or instructions that cause a machine to operate in a specific fashion. Such non-transitory media may comprise non-volatile media and/or volatile media. Non-volatile media includes, for example, optical or magnetic disks, such as storage device 510. Volatile media includes dynamic memory, such as main memory 506. Common forms of non-transitory 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, and networked versions of the same.


Non-transitory media is distinct from but may be used in conjunction with transmission media. Transmission media participates in transferring information between nontransitory media. For example, transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 502. 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 504 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 500 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 502. Bus 502 carries the data to main memory 506, from which processor 504 retrieves and executes the instructions. The instructions received by main memory 506 may retrieves and executes the instructions. The instructions received by main memory 506 may optionally be stored on storage device 510 either before or after execution by processor 504.


Computer system 500 also includes a communication interface 518 coupled to bus 502. Communication interface 518 provides a two-way data communication coupling to a network link 520 that is connected to a local network 522. For example, communication interface 518 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 518 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN (or WAN component to communicated with a WAN). Wireless links may also be implemented. In any such implementation, communication interface 518 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.


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


Computer system 500 can send messages and receive data, including program code, through the network(s), network link 520 and communication interface 518. In the Internet example, a server 530 might transmit a requested code for an application program through Internet 525, ISP 526, local network 522 and communication interface 518.


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


Each of the processes, methods, and algorithms described in the preceding sections may be embodied in, and fully or partially automated by, code modules executed by one or more computer systems or computer processors comprising computer hardware. The processes and algorithms may be implemented partially or wholly in application-specific circuitry.


The various features and processes described above may be used independently of one another, or may be combined in various ways. All possible combinations and subcombinations are intended to fall within the scope of this disclosure. In addition, certain method or process blocks may be omitted in some implementations. The methods and processes described herein are also not limited to any particular sequence, and the blocks or states relating thereto can be performed in other sequences that are appropriate. For example, described blocks or states may be performed in an order other than that specifically disclosed, or multiple blocks or states may be combined in a single block or state. The example blocks or states may be performed in serial, in parallel, or in some other manner. Blocks or states may be added to or removed from the disclosed example embodiments. The example systems and components described herein may be configured differently than described. For example, elements may be added to, removed from, or rearranged compared to the disclosed example embodiments.


Conditional language, such as, among others, “can,” “could,” “might,” or “may,” unless specifically stated otherwise, or otherwise understood within the context as used, is generally intended to convey that certain embodiments include, while other embodiments do not include, certain features, elements and/or steps. Thus, such conditional language is not generally intended to imply that features, elements and/or steps are in any way required for one or more embodiments or that one or more embodiments necessarily include logic for deciding, with or without user input or prompting, whether these features, elements and/or steps are included or are to be performed in any particular embodiment.


Any process descriptions, elements, or blocks in the flow diagrams described herein and/or depicted in the attached figures should be understood as potentially representing modules, segments, or portions of code which include one or more executable instructions for implementing specific logical functions or steps in the process. Alternate implementations are included within the scope of the embodiments described herein in which elements or functions may be deleted, executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved, as would be understood by those skilled in the art.


It should be emphasized that many variations and modifications may be made to the above-described embodiments, the elements of which are to be understood as being among other acceptable examples. All such modifications and variations are intended to be included herein within the scope of this disclosure. The foregoing description details certain embodiments of the invention. It will be appreciated, however, that no matter how detailed the foregoing appears in text, the invention can be practiced in many ways. As is also stated above, it should be noted that the use of particular terminology when describing certain features or aspects of the invention should not be taken to imply that the terminology is being re-defined herein to be restricted to including any specific characteristics of the features or aspects of the invention with which that terminology is associated. The scope of the invention should therefore be construed in accordance with the appended claims and any equivalents thereof.

Claims
  • 1. A computer system configured to efficiently determine changed data items in a remote data source, the computer system comprising: one or more hardware computer processors configured to execute software code stored in a tangible storage device in order to: determine a quantity of data items included in a group of data items in a remote data source;compare the quantity of data items included in the group to a quantity of data items included in a previous version of the group to determine a change in the quantity of data items included in the group;in response to determining the change, compare the data items included in the group to corresponding data items included in a compressed local version of the group to determine which data items of the group have changed; andbased on the comparison, identify the data items of the group that have changed.
  • 2. The system of claim 1, wherein the group of data items is one of a plurality of groupings of data items, wherein the data items of the plurality of groupings are grouped based on timestamps of respective data items, and wherein the timestamps indicate respective times at which data items were last updated.
  • 3. The system of claim 2, wherein the timestamps of the respective data items include a date and a time at which the respective data items were last updated, and wherein the data items of the plurality of groupings are grouped based on only the date of the timestamps of the respective data items.
  • 4. The system of claim 3, wherein each of the plurality of groupings is associated with at least one of: a different date, or a range of dates.
  • 5. The system of claim 1, wherein the group of data items is one of a plurality of groupings of data items, and wherein the data items of the plurality of groupings are grouped based on a first field of respective data items, the first field configured to provide an uneven distribution of data items included in each of the plurality of groupings.
  • 6. The system of claim 1, wherein the previous version of the group comprises a copy of the data items included in the group at a first time prior to said determining a quantity of data items in the group of data items.
  • 7. The system of claim 1, wherein the one or more hardware computer processors are further configured to execute software code in order to: in response to determining that the quantity of data items included in the first group is greater than the quantity of data items included in the previous version of the group: identify the changed data items as added or updated data items; andforward the changed data items to a destination system to be stored.
  • 8. The system of claim 1, wherein the one or more hardware computer processors are further configured to execute software code in order to: in response to determining that the quantity of data items included in the first group is less than the quantity of data items included in the previous version of the group: identify the changed data items as deleted data items; andforward the changed data items to a destination system to be removed.
  • 9. The system of claim 1, wherein the one or more hardware computer processors are further configured to execute software code in order to: assign a unique identifier to each of the data items included in the group; anddetermine whether a first changed data item is a new data item or an updated data item based on the unique identifier associated with the first changed data item.
  • 10. The system of claim 1, wherein a data item included in the group is a row in a database or a line in a file.
  • 11. The system of claim 1, wherein the one or more hardware computer processors are further configured to execute software code in order to: obtain the information indicating an update to the group of data items at an interval.
  • 12. The system of claim 1, wherein comparing the data items is performed in response to determining the quantity of data items included in the group is different from the quantity of data items included in the previous version of the group.
  • 13. The computer system of claim 1, wherein comparing the data items included in the group to corresponding data items included in the compressed local version of the group comprises querying the compressed local version of the group.
  • 14. The computer system of claim 1, wherein the compressed local version of the group is a space-efficient probabilistic data structure including information about data items included in the group at a first time prior to said determining a quantity of data items in the group of data items.
  • 15. The computer system of claim 14, wherein the space-efficient probabilistic data structure is configured to determine whether a particular data item included in the group was included in the group at the first time.
  • 16. The computer system of claim 14, wherein the space-efficient probabilistic data structure is a Bloom filter, and wherein the Bloom filter is selected from a plurality of Bloom filters that can each include a different number of data items.
  • 17. The computer system of claim 1, wherein the compressed local version of the group does not comprise a copy of the data items of the group.
  • 18. The computer system of claim 1, wherein the compressed local version of the group and the previous version of the group are the same.
  • 19. A method of efficiently determining changed data items at a remote data source, the method comprising: determining, by one or more hardware computer processors, a quantity of data items included in a group of data items at a remote data source;comparing, by the one or more hardware computer processors, the quantity of data items included in the group to a quantity of data items included in a previous version of the group to determine a change in the quantity of data items included in the group;in response to determining the change, comparing, by the one or more hardware computer processors, the data items included in the group to corresponding data items included in a local version of the group to determine which data items of the group have changed; andbased on the comparison, identifying, by the one or more hardware computer processors, the data items of the group that have changed.
  • 20. The method of claim 19, wherein the group of data items is one of a plurality of groupings of data items, wherein the data items of the plurality of groupings are grouped based on timestamps of respective data items, and wherein the timestamps indicate respective times at which data items were last updated.
  • 21. The method of claim 19, wherein the group of data items is one of a plurality of groupings of data items, and wherein the data items of the plurality of groupings are grouped based on a first field of respective data items, the first field configured to provide an uneven distribution of data items included in each of the plurality of groupings.
  • 22. The method of claim 19, wherein the local version of the group is a compressed version of the group.
  • 23. A non-transitory computer readable medium comprising instructions for efficiently determine changed data items at a remote data source, the instructions configured to cause a computer processor to: determine a quantity of data items included in a group of data items at a remote data source;compare the quantity of data items included in the group to a quantity of data items included in a previous version of the group to determine a change in the quantity of data items included in the group;in response to determining the change, compare the data items included in the group to corresponding data items included in a local version of the group to determine which data items of the group have changed; andbased on the comparison, identify the data items of the group that have changed.
INCORPORATION BY REFERENCE TO ANY PRIORITY APPLICATIONS

This application is a continuation of U.S. application Ser. No. 15/066,970, filed Mar. 10, 2016, which is a continuation of U.S. application Ser. No. 14/581,902, filed Dec. 23, 2014, now U.S. Pat. No. 9,292,388, which is a continuation of U.S. application Ser. No. 14/254,773, filed Apr. 16, 2014, now U.S. Pat. No. 8,924,429, which claims the benefit of U.S. Provisional Application No. 61/955,054, filed Mar. 18, 2014, the entire contents of each of which is incorporated herein by reference. Any and all applications for which a foreign or domestic priority claim is identified in the Application Data Sheet as filed with the present application are hereby incorporated by reference under 37 CFR 1.57.

US Referenced Citations (1135)
Number Name Date Kind
5109399 Thompson Apr 1992 A
5241625 Epard et al. Aug 1993 A
5329108 Lamoure Jul 1994 A
5412769 Maruoka et al. May 1995 A
5414838 Kolton et al. May 1995 A
5418950 Li et al. May 1995 A
5428737 Li et al. Jun 1995 A
5428776 Rothfield Jun 1995 A
5444819 Negishi Aug 1995 A
5454104 Steidlmayer et al. Sep 1995 A
5542089 Lindsay et al. Jul 1996 A
5568390 Hirota et al. Oct 1996 A
5608899 Li et al. Mar 1997 A
5613105 Xbikowski et al. Mar 1997 A
5632009 Rao et al. May 1997 A
5670987 Doi et al. Sep 1997 A
5701456 Jacopi et al. Dec 1997 A
5724575 Hoover et al. Mar 1998 A
5781704 Rossmo Jul 1998 A
5794228 French et al. Aug 1998 A
5794229 French et al. Aug 1998 A
5798769 Chiu et al. Aug 1998 A
5819226 Gopinathan et al. Oct 1998 A
5819238 Fernholz Oct 1998 A
5826021 Mastors et al. Oct 1998 A
5832218 Gibbs et al. Nov 1998 A
5845300 Comer Dec 1998 A
5845530 Brockmeyer et al. Dec 1998 A
5857329 Bingham Jan 1999 A
5872973 Mitchell et al. Feb 1999 A
5878434 Draper et al. Mar 1999 A
5892900 Ginter et al. Apr 1999 A
5897636 Kaeser Apr 1999 A
5902349 Endo et al. May 1999 A
5911138 Li et al. Jun 1999 A
5918225 White et al. Jun 1999 A
5966706 Biliris et al. Oct 1999 A
5999911 Berg et al. Dec 1999 A
6006242 Poole et al. Dec 1999 A
6012042 Black et al. Jan 2000 A
6057757 Arrowsmith et al. May 2000 A
6065026 Cornelia et al. May 2000 A
6072942 Stockwell et al. Jun 2000 A
6091956 Hollenberg Jul 2000 A
6094643 Anderson et al. Jul 2000 A
6104401 Parsons Aug 2000 A
6134582 Kennedy Oct 2000 A
6161098 Wallman Dec 2000 A
6189005 Chakrabarti et al. Feb 2001 B1
6208985 Krehel Mar 2001 B1
6219053 Tachibana et al. Apr 2001 B1
6232971 Haynes May 2001 B1
6236994 Swartz et al. May 2001 B1
6237138 Hameluck et al. May 2001 B1
6243706 Moreau et al. Jun 2001 B1
6243717 Gordon et al. Jun 2001 B1
6247019 Davies Jun 2001 B1
6279018 Kudrolli et al. Aug 2001 B1
6289334 Reiner et al. Sep 2001 B1
6289338 Stoffel et al. Sep 2001 B1
6311181 Lee et al. Oct 2001 B1
6313833 Knight Nov 2001 B1
6321274 Shakib et al. Nov 2001 B1
6341310 Leshem et al. Jan 2002 B1
6349315 Sonoyama et al. Feb 2002 B1
6366933 Ball et al. Apr 2002 B1
6369835 Lin Apr 2002 B1
6370538 Lamping et al. Apr 2002 B1
6430305 Decker Aug 2002 B1
6456997 Shukla Sep 2002 B1
6463404 Appleby Oct 2002 B1
6496774 Davies Dec 2002 B1
6496817 Whang et al. Dec 2002 B1
6513019 Lewis Jan 2003 B2
6519627 Dan et al. Feb 2003 B1
6523019 Borthwick Feb 2003 B1
6532449 Goertzel et al. Mar 2003 B1
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
6608559 Lemelson et al. Aug 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
6662202 Krusche et al. Dec 2003 B1
6665683 Meltzer Dec 2003 B1
6674434 Chojnacki et al. Jan 2004 B1
6714936 Nevin, III Mar 2004 B1
6745382 Zothner Jun 2004 B1
6748481 Parry et al. Jun 2004 B1
6775675 Nwabueze et al. Aug 2004 B1
6801201 Escher Oct 2004 B2
6820135 Dingman Nov 2004 B1
6828920 Owen et al. Dec 2004 B2
6839745 Dingari et al. Jan 2005 B1
6851108 Syme et al. Feb 2005 B1
6857120 Arnold et al. Feb 2005 B1
6876981 Berckmans Apr 2005 B1
6877137 Rivette et al. Apr 2005 B1
6907426 Hellerstein et al. Jun 2005 B2
6920453 Mannila et al. Jul 2005 B2
6944821 Bates et al. Sep 2005 B1
6976024 Chavez et al. Dec 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
7028223 Kolawa et al. Apr 2006 B1
7036085 Barros Apr 2006 B2
7043449 Li et al. May 2006 B1
7043702 Chi et al. May 2006 B2
7055110 Kupka et al. May 2006 B2
7058648 Lightfoot et al. Jun 2006 B1
7085890 Kashyap Aug 2006 B2
7086028 Davis et al. Aug 2006 B1
7089541 Ungar Aug 2006 B2
7111231 Huck et al. Sep 2006 B1
7133409 Willardson Nov 2006 B1
7139800 Bellotti et al. Nov 2006 B2
7155728 Prabhu et al. Dec 2006 B1
7158878 Rasmussen et al. Jan 2007 B2
7162475 Ackerman Jan 2007 B2
7168039 Bertram Jan 2007 B2
7171427 Witowski et al. Jan 2007 B2
7174377 Bernard et al. Feb 2007 B2
7181423 Blanchard et al. Feb 2007 B2
7185065 Holtzman et al. Feb 2007 B1
7213030 Jenkins May 2007 B1
7216133 Wu May 2007 B2
7216299 Knight May 2007 B2
7237192 Stephenson et al. Jun 2007 B1
7240330 Fairweather Jul 2007 B2
7246090 Thomas Jul 2007 B1
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
7356504 Muller Apr 2008 B2
7370047 Gorman May 2008 B2
7379811 Rasmussen et al. May 2008 B2
7379903 Caballero et al. May 2008 B2
7392254 Jenkins Jun 2008 B1
7401038 Masuda Jul 2008 B2
7403921 Tanpoco et al. Jul 2008 B2
7403922 Lewis et al. Jul 2008 B1
7403942 Bayliss Jul 2008 B1
7406592 Polyudov Jul 2008 B1
7409357 Schaf et al. Aug 2008 B2
7426654 Adams et al. Sep 2008 B2
7437728 Stackhouse et al. Oct 2008 B2
7441182 Beilinson et al. Oct 2008 B2
7454466 Bellotti et al. Nov 2008 B2
7461158 Rider et al. Dec 2008 B2
7467375 Tondreau et al. Dec 2008 B2
7469238 Satchwell Dec 2008 B2
7487139 Fraleigh et al. Feb 2009 B2
7502786 Liu et al. Mar 2009 B2
7519589 Charnock et al. Apr 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
7542934 Markel Jun 2009 B2
7546245 Surpin et al. Jun 2009 B2
7546353 Hesselink et al. Jun 2009 B2
7558677 Jones Jul 2009 B2
7574409 Patinkin Aug 2009 B2
7574428 Leiserowitz et al. Aug 2009 B2
7579965 Bucholz Aug 2009 B2
7587352 Arnott Sep 2009 B2
7590582 Dunne Sep 2009 B2
7596285 Brown et al. Sep 2009 B2
7603229 Goldberg et al. Oct 2009 B2
7610290 Kruy et al. Oct 2009 B2
7614006 Molander Nov 2009 B2
7617232 Gabbert et al. Nov 2009 B2
7620582 Masuda Nov 2009 B2
7620628 Kapur et al. Nov 2009 B2
7627489 Schaeffer et al. Dec 2009 B2
7627812 Chamberlain et al. Dec 2009 B2
7630931 Rachev et al. Dec 2009 B1
7634717 Chamberlain et al. Dec 2009 B2
7640173 Surpin et al. Dec 2009 B2
7657478 De Diego Feb 2010 B2
7685042 Monroe et al. Mar 2010 B1
7685083 Fairweather Mar 2010 B2
7703021 Flam Apr 2010 B1
7706817 Bamrah et al. Apr 2010 B2
7712049 Williams et al. May 2010 B2
7716067 Surpin et al. May 2010 B2
7716077 Mikurak May 2010 B1
7716227 Hao et al. May 2010 B1
7725530 Sah et al. May 2010 B2
7725547 Albertson et al. May 2010 B2
7725728 Ama et al. May 2010 B2
7730082 Sah et al. Jun 2010 B2
7730109 Rohrs et al. Jun 2010 B2
7756843 Palmer Jul 2010 B1
7757220 Griffith et al. Jul 2010 B2
7770100 Chamberlain et al. Aug 2010 B2
7783679 Bley Aug 2010 B2
7805457 Viola et al. Sep 2010 B1
7809703 Balabhadrapatruni et al. Oct 2010 B2
7818291 Ferguson et al. Oct 2010 B2
7818658 Chen Oct 2010 B2
7835966 Satchwell Nov 2010 B2
7848995 Dalal Dec 2010 B2
7853573 Warner et al. Dec 2010 B2
7870493 Pall et al. Jan 2011 B2
7877421 Berger et al. Jan 2011 B2
7880921 Dattilo et al. Feb 2011 B2
7894984 Rasmussen et al. Feb 2011 B2
7899611 Downs et al. Mar 2011 B2
7904913 Sim-Tang et al. Mar 2011 B2
7908521 Sridharan et al. Mar 2011 B2
7912842 Bayliss 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
7958147 Turner et al. Jun 2011 B1
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. Jun 2011 B2
7979424 Dettinger et al. Jul 2011 B2
8001465 Kudrolli et al. Aug 2011 B2
8001482 Bhattiprolu et al. Aug 2011 B2
8010507 Poston 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
8041714 Aymeloglu et al. Oct 2011 B2
8042110 Kawahara et al. Oct 2011 B1
8046283 Burns Oct 2011 B2
8054756 Chand et al. Nov 2011 B2
8060421 Wang Nov 2011 B1
8065606 Gralnick et al. Nov 2011 B1
8073857 Sreekanth Dec 2011 B2
8082172 Chao et al. Dec 2011 B2
8103543 Zwicky Jan 2012 B1
8103962 Embley et al. Jan 2012 B2
8108138 Bruce et al. Jan 2012 B2
8112425 Baum et al. Feb 2012 B2
8117022 Linker Feb 2012 B2
8126848 Wagner Feb 2012 B2
8134457 Velipasalar et al. Mar 2012 B2
8145703 Frishert et al. Mar 2012 B2
8185819 Sah et al. May 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
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
8326727 Aymeloglu et al. Dec 2012 B2
8352174 Milstein et al. Jan 2013 B2
8352881 Champion et al. Jan 2013 B2
8364642 Garrod Jan 2013 B1
8368695 Howell et al. Feb 2013 B2
8397171 Klassen et al. Mar 2013 B2
8412707 Mianji Apr 2013 B1
8417409 Bast et al. Apr 2013 B2
8417715 Bruckhaus et al. Apr 2013 B1
8429194 Aymeloglu et al. Apr 2013 B2
8429527 Arbogast Apr 2013 B1
8433702 Carrino et al. Apr 2013 B1
8433703 Schneider et al. Apr 2013 B1
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
8484549 Burr et al. Jul 2013 B2
8489331 Kopf et al. Jul 2013 B2
8489641 Seefeld et al. Jul 2013 B1
8494941 Aymeloglu et al. Jul 2013 B2
8498984 Hwang et al. Jul 2013 B1
8499287 Shafi et al. Jul 2013 B2
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
8554719 McGrew Oct 2013 B2
8560413 Quarterman Oct 2013 B1
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
8600872 Yan Dec 2013 B1
8601326 Kirn Dec 2013 B1
8620641 Farnsworth et al. Dec 2013 B2
8639552 Chen et al. Jan 2014 B1
8639757 Zang et al. Jan 2014 B1
8645332 Cohen et al. Feb 2014 B1
8646080 Williamson et al. Feb 2014 B2
8666861 Li et al. Mar 2014 B2
8676857 Adams et al. Mar 2014 B1
8688573 Ruknoic et al. Apr 2014 B1
8689108 Duffield et al. Apr 2014 B1
8713467 Goldenberg et al. Apr 2014 B1
8726379 Stiansen et al. May 2014 B1
8732574 Burr et al. May 2014 B2
8739278 Varghese May 2014 B2
8742934 Sarpy et al. Jun 2014 B1
8744890 Bernier Jun 2014 B1
8745516 Mason et al. Jun 2014 B2
8763078 Castellucci et al. Jun 2014 B1
8781169 Jackson et al. Jul 2014 B2
8786605 Curtis et al. Jul 2014 B1
8787939 Papakipos et al. Jul 2014 B2
8788407 Singh et al. Jul 2014 B1
8798354 Bunzel et al. Aug 2014 B1
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
8868537 Colgrove et al. Oct 2014 B1
8903717 Elliot Dec 2014 B2
8909597 Aymeloglu et al. Dec 2014 B2
8909656 Kumar et al. Dec 2014 B2
8917274 Ma et al. Dec 2014 B2
8924388 Elliot et al. Dec 2014 B2
8924389 Elliot et al. Dec 2014 B2
8924429 Fisher et al. Dec 2014 B1
8924872 Bogomolov et al. Dec 2014 B1
8935201 Fisher et al. Jan 2015 B1
8937619 Sharma et al. Jan 2015 B2
8938686 Erenrich et al. Jan 2015 B1
8949164 Mohler Feb 2015 B1
8984390 Aymeloglu et al. Mar 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
9031981 Potter et al. May 2015 B1
9032531 Scorvo et al. May 2015 B1
9043696 Meiklejohn et al. May 2015 B1
9043894 Dennison et al. May 2015 B1
9092482 Harris et al. Jul 2015 B2
9100428 Visbal Aug 2015 B1
9105000 White et al. Aug 2015 B1
9116975 Shankar et al. Aug 2015 B2
9129219 Robertson et al. Sep 2015 B1
9229966 Aymeloglu et al. Jan 2016 B2
9280532 Cicerone Mar 2016 B2
9292388 Fisher et al. Mar 2016 B2
9330120 Colgrove et al. May 2016 B2
9348677 Marinelli, III et al. May 2016 B2
9367463 Biswal et al. Jun 2016 B2
9449074 Fisher et al. Sep 2016 B1
20010011243 Dembo et al. Aug 2001 A1
20010021936 Bertram Sep 2001 A1
20010027424 Torigoe Oct 2001 A1
20020007329 Alcaly et al. Jan 2002 A1
20020007331 Lo et al. Jan 2002 A1
20020026404 Thompson Feb 2002 A1
20020030701 Knight Mar 2002 A1
20020032677 Morgenthaler et al. Mar 2002 A1
20020033848 Sciammarella et al. Mar 2002 A1
20020035590 Eibach et al. Mar 2002 A1
20020040336 Blanchard et al. Apr 2002 A1
20020059126 Ricciardi May 2002 A1
20020065708 Senay et al. May 2002 A1
20020087570 Jacquez et al. Jul 2002 A1
20020091707 Keller Jul 2002 A1
20020095360 Joao Jul 2002 A1
20020095658 Shulman Jul 2002 A1
20020099870 Miller et al. Jul 2002 A1
20020103705 Brady Aug 2002 A1
20020116120 Ruiz et al. Aug 2002 A1
20020130907 Chi et al. Sep 2002 A1
20020138383 Rhee Sep 2002 A1
20020147671 Sloan et al. Oct 2002 A1
20020156812 Krasnoiarov et al. Oct 2002 A1
20020174201 Ramer et al. Nov 2002 A1
20020184111 Swanson Dec 2002 A1
20020194119 Wright et al. Dec 2002 A1
20030004770 Miller et al. Jan 2003 A1
20030009392 Perkowski Jan 2003 A1
20030009399 Boerner Jan 2003 A1
20030023620 Trotta Jan 2003 A1
20030028560 Kudrolli et al. Feb 2003 A1
20030039948 Donahue Feb 2003 A1
20030065605 Gatto Apr 2003 A1
20030065606 Satchwell Apr 2003 A1
20030065607 Satchwell Apr 2003 A1
20030078827 Hoffman Apr 2003 A1
20030093401 Czahkowski et al. May 2003 A1
20030093755 O'Carroll May 2003 A1
20030105759 Bess et al. Jun 2003 A1
20030105833 Daniels Jun 2003 A1
20030115481 Baird et al. Jun 2003 A1
20030126102 Borthwick Jul 2003 A1
20030130996 Bayerl et al. Jul 2003 A1
20030140106 Raguseo Jul 2003 A1
20030144868 MacIntyre et al. Jul 2003 A1
20030163352 Surpin et al. Aug 2003 A1
20030167423 Murakami et al. Sep 2003 A1
20030172021 Huang Sep 2003 A1
20030172053 Fairweather Sep 2003 A1
20030177112 Gardner Sep 2003 A1
20030182177 Gallagher Sep 2003 A1
20030182313 Federwisch et al. Sep 2003 A1
20030184588 Lee Oct 2003 A1
20030187761 Olsen et al. Oct 2003 A1
20030200217 Ackerman Oct 2003 A1
20030212670 Yalamanchi et al. Nov 2003 A1
20030212718 Tester Nov 2003 A1
20030225755 Iwayama et al. Dec 2003 A1
20030229848 Arend et al. Dec 2003 A1
20040003009 Wilmot Jan 2004 A1
20040006523 Coker Jan 2004 A1
20040032432 Baynger Feb 2004 A1
20040034570 Davis Feb 2004 A1
20040044648 Anfindsen 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
20040088177 Travis et al. May 2004 A1
20040095349 Bito et al. May 2004 A1
20040098731 Demsey et al. May 2004 A1
20040103088 Cragun 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
20040133500 Thompson et al. Jul 2004 A1
20040139212 Mukherjee et al. Jul 2004 A1
20040143602 Ruiz et al. Jul 2004 A1
20040143796 Lerner et al. Jul 2004 A1
20040153418 Hanweck Aug 2004 A1
20040153451 Phillips et al. Aug 2004 A1
20040153837 Preston et al. Aug 2004 A1
20040163039 Gorman Aug 2004 A1
20040181554 Heckerman et al. Sep 2004 A1
20040193599 Liu et al. Sep 2004 A1
20040193600 Kaasten et al. Sep 2004 A1
20040193608 Gollapudi et al. Sep 2004 A1
20040205492 Newsome Oct 2004 A1
20040210763 Jonas Oct 2004 A1
20040221223 Yu et al. Nov 2004 A1
20040236688 Bozeman Nov 2004 A1
20040254658 Sherriff et al. Dec 2004 A1
20040260702 Cragun et al. Dec 2004 A1
20040267746 Marcjan et al. Dec 2004 A1
20050004911 Goldberg et al. Jan 2005 A1
20050010472 Quatse et al. Jan 2005 A1
20050021397 Cui et al. Jan 2005 A1
20050021877 Varpela et al. Jan 2005 A1
20050027632 Zeitoun et al. Feb 2005 A1
20050027705 Sadri et al. Feb 2005 A1
20050028094 Allyn Feb 2005 A1
20050039116 Slack-Smith Feb 2005 A1
20050039119 Parks et al. Feb 2005 A1
20050060712 Miller et al. Mar 2005 A1
20050060713 Miller et al. Mar 2005 A1
20050065811 Chu et al. Mar 2005 A1
20050075962 Dunne Apr 2005 A1
20050075966 Duka Apr 2005 A1
20050080769 Gemmell Apr 2005 A1
20050086207 Heuer et al. Apr 2005 A1
20050090911 Ingargiola et al. Apr 2005 A1
20050091186 Elish Apr 2005 A1
20050097441 Herbach et al. May 2005 A1
20050108001 Aarskog May 2005 A1
20050120080 Weinreb et al. Jun 2005 A1
20050125715 Di Franco et al. Jun 2005 A1
20050131935 O'Leary et al. Jun 2005 A1
20050133588 Williams Jun 2005 A1
20050149455 Bruesewitz et al. Jul 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
20050171881 Ghassemieh et al. Aug 2005 A1
20050180330 Shapiro Aug 2005 A1
20050182709 Belcsak et al. Aug 2005 A1
20050182793 Keenan et al. Aug 2005 A1
20050183005 Denoue et al. Aug 2005 A1
20050210409 Jou Sep 2005 A1
20050226473 Ramesh Oct 2005 A1
20050246327 Yeung et al. Nov 2005 A1
20050251786 Citron et al. Nov 2005 A1
20050256703 Markel Nov 2005 A1
20050262004 Sakata et al. Nov 2005 A1
20050262057 Lesh et al. Nov 2005 A1
20050262493 Schmidt et al. Nov 2005 A1
20050262512 Schmidt et al. Nov 2005 A1
20050278286 Djugash et al. Dec 2005 A1
20060004740 Dettinger et al. Jan 2006 A1
20060010130 Leff et al. Jan 2006 A1
20060020398 Vernon et al. Jan 2006 A1
20060026120 Carolan et al. Feb 2006 A1
20060026170 Kreitler et al. Feb 2006 A1
20060026561 Bauman et al. Feb 2006 A1
20060031779 Theurer et al. Feb 2006 A1
20060045470 Poslinski et al. Mar 2006 A1
20060047590 Anderson et al. Mar 2006 A1
20060052984 Nakadate et al. Mar 2006 A1
20060053097 King et al. Mar 2006 A1
20060053170 Hill et al. Mar 2006 A1
20060059072 Boglaev Mar 2006 A1
20060059139 Robinson Mar 2006 A1
20060059423 Lehmann et al. Mar 2006 A1
20060064181 Kato Mar 2006 A1
20060070046 Balakrishnan et al. Mar 2006 A1
20060074730 Shukla et al. Apr 2006 A1
20060074866 Chamberlain et al. Apr 2006 A1
20060074881 Vembu et al. Apr 2006 A1
20060074967 Shaburov Apr 2006 A1
20060080316 Gilmore et al. Apr 2006 A1
20060080616 Vogel et al. Apr 2006 A1
20060080619 Carlson et al. Apr 2006 A1
20060093222 Saffer et al. May 2006 A1
20060116943 Willain Jun 2006 A1
20060116991 Calderwood Jun 2006 A1
20060129746 Porter Jun 2006 A1
20060129992 Oberholtzer et al. Jun 2006 A1
20060136513 Ngo 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
20060155654 Plessis et al. Jul 2006 A1
20060203337 White Sep 2006 A1
20060209085 Wong et al. Sep 2006 A1
20060218206 Bourbonnais et al. Sep 2006 A1
20060218405 Ama et al. Sep 2006 A1
20060218491 Grossman et al. Sep 2006 A1
20060218637 Thomas et al. Sep 2006 A1
20060224356 Castelli et al. Oct 2006 A1
20060235786 DiSalvo Oct 2006 A1
20060241856 Cobleigh et al. Oct 2006 A1
20060241974 Chao et al. Oct 2006 A1
20060242040 Rader Oct 2006 A1
20060242630 Koike et al. Oct 2006 A1
20060253502 Raman et al. Nov 2006 A1
20060265311 Dean et al. Nov 2006 A1
20060265397 Bryan et al. Nov 2006 A1
20060265417 Amato et al. Nov 2006 A1
20060271277 Hu et al. Nov 2006 A1
20060271884 Hurst Nov 2006 A1
20060277460 Forstall et al. Dec 2006 A1
20060279630 Aggarwal et al. Dec 2006 A1
20060288046 Gupta et al. Dec 2006 A1
20070000999 Kubo et al. Jan 2007 A1
20070005582 Navratil et al. Jan 2007 A1
20070011150 Frank Jan 2007 A1
20070011304 Error Jan 2007 A1
20070016363 Huang et al. Jan 2007 A1
20070027851 Kruy et al. Feb 2007 A1
20070038646 Thota Feb 2007 A1
20070038962 Fuchs et al. Feb 2007 A1
20070043686 Teng et al. Feb 2007 A1
20070055598 Arnott et al. Mar 2007 A1
20070055599 Arnott Mar 2007 A1
20070057966 Ohno et al. Mar 2007 A1
20070061259 Zoldi et al. Mar 2007 A1
20070061752 Cory Mar 2007 A1
20070067233 Dalal Mar 2007 A1
20070067285 Blume Mar 2007 A1
20070078832 Ott et al. Apr 2007 A1
20070083541 Fraleigh et al. Apr 2007 A1
20070088596 Berkelhamer et al. Apr 2007 A1
20070091868 Hollman et al. Apr 2007 A1
20070094248 McVeigh et al. Apr 2007 A1
20070094312 Sim-Tang Apr 2007 A1
20070094389 Nussey et al. Apr 2007 A1
20070106582 Baker et al. May 2007 A1
20070112714 Fairweather May 2007 A1
20070113164 Hansen et al. May 2007 A1
20070118527 Winje et al. May 2007 A1
20070136115 Doganaksoy et al. Jun 2007 A1
20070150369 Zivin Jun 2007 A1
20070150801 Chidlovskii et al. Jun 2007 A1
20070150805 Misovski Jun 2007 A1
20070156673 Maga Jul 2007 A1
20070168269 Chuo Jul 2007 A1
20070168270 De Diego Arozamena et al. Jul 2007 A1
20070168336 Ransil et al. Jul 2007 A1
20070168871 Jenkins Jul 2007 A1
20070174760 Chamberlain et al. Jul 2007 A1
20070178501 Rabinowitz et al. Aug 2007 A1
20070185867 Maga Aug 2007 A1
20070192265 Chopin et al. Aug 2007 A1
20070192281 Cradick 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
20070219882 May Sep 2007 A1
20070220604 Long Sep 2007 A1
20070226617 Traub et al. Sep 2007 A1
20070233709 Abnous Oct 2007 A1
20070233756 D'Souza et al. Oct 2007 A1
20070239606 Eisen Oct 2007 A1
20070240062 Christena et al. Oct 2007 A1
20070245339 Bauman et al. Oct 2007 A1
20070260582 Liang Nov 2007 A1
20070266336 Nojima et al. Nov 2007 A1
20070271317 Carmel Nov 2007 A1
20070282951 Selimis et al. Dec 2007 A1
20070284433 Domenica et al. Dec 2007 A1
20070294643 Kyle Dec 2007 A1
20070299697 Friedlander et al. Dec 2007 A1
20080005063 Seeds Jan 2008 A1
20080015920 Fawls et al. Jan 2008 A1
20080016155 Khalatian Jan 2008 A1
20080016216 Worley et al. Jan 2008 A1
20080040250 Salter Feb 2008 A1
20080040684 Crump Feb 2008 A1
20080046481 Gould et al. Feb 2008 A1
20080046803 Beauchamp et al. 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
20080082486 Lermant et al. Apr 2008 A1
20080091693 Murthy Apr 2008 A1
20080097816 Freire et al. Apr 2008 A1
20080103798 Domenikos et al. May 2008 A1
20080103996 Forman et al. May 2008 A1
20080104019 Nath May 2008 A1
20080104407 Horne et al. May 2008 A1
20080109714 Kumar et al. May 2008 A1
20080126344 Hoffman et al. May 2008 A1
20080126951 Sood et al. May 2008 A1
20080133310 Kim et al. Jun 2008 A1
20080140387 Linker Jun 2008 A1
20080140576 Lewis et al. Jun 2008 A1
20080148398 Mezack et al. Jun 2008 A1
20080155440 Trevor et al. Jun 2008 A1
20080162616 Gross et al. Jul 2008 A1
20080172607 Baer Jul 2008 A1
20080177782 Poston et al. Jul 2008 A1
20080183639 DiSalvo Jul 2008 A1
20080195417 Surpin et al. Aug 2008 A1
20080195608 Clover Aug 2008 A1
20080195672 Hamel et al. Aug 2008 A1
20080196016 Todd Aug 2008 A1
20080201313 Dettinger et al. Aug 2008 A1
20080208820 Usey et al. Aug 2008 A1
20080215543 Huang et al. Sep 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
20080243799 Rozich et al. Oct 2008 A1
20080249845 Aronowich et al. Oct 2008 A1
20080249957 Masuyama 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
20080267386 Cooper Oct 2008 A1
20080270316 Guidotti et al. Oct 2008 A1
20080271838 Carro Nov 2008 A1
20080276167 Michael Nov 2008 A1
20080278311 Grange et al. Nov 2008 A1
20080281580 Zabokritski Nov 2008 A1
20080288306 MacIntyre et al. Nov 2008 A1
20080288471 Wu et al. Nov 2008 A1
20080301042 Patzer Dec 2008 A1
20080301559 Martinsen et al. Dec 2008 A1
20080301643 Appleton et al. Dec 2008 A1
20080313132 Hao et al. Dec 2008 A1
20080313243 Poston et al. Dec 2008 A1
20080313281 Scheidl et al. Dec 2008 A1
20090002492 Velipasalar et al. Jan 2009 A1
20090006150 Prigge et al. Jan 2009 A1
20090006271 Crowder Jan 2009 A1
20090007056 Prigge et al. Jan 2009 A1
20090018996 Hunt et al. Jan 2009 A1
20090027418 Maru et al. Jan 2009 A1
20090030915 Winter et al. Jan 2009 A1
20090031401 Cudich et al. Jan 2009 A1
20090037912 Stoitsev et al. Feb 2009 A1
20090043762 Shiverick et al. Feb 2009 A1
20090055251 Shah et al. Feb 2009 A1
20090055487 Moraes et al. Feb 2009 A1
20090076845 Bellin et al. Mar 2009 A1
20090083275 Jacob et al. Mar 2009 A1
20090088964 Schaaf et al. Apr 2009 A1
20090089651 Herberger et al. Apr 2009 A1
20090094166 Aymeloglu et al. Apr 2009 A1
20090094217 Dettinger et al. Apr 2009 A1
20090106178 Chu Apr 2009 A1
20090106242 McGrew Apr 2009 A1
20090106308 Killian et al. Apr 2009 A1
20090112678 Luzardo Apr 2009 A1
20090112745 Stefanescu Apr 2009 A1
20090112922 Barinaga 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
20090138307 Belcsak 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
20090144747 Baker Jun 2009 A1
20090150868 Chakra et al. Jun 2009 A1
20090161147 Klave Jun 2009 A1
20090164387 Armstrong 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
20090172674 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
20090187556 Ross et al. Jul 2009 A1
20090193012 Williams Jul 2009 A1
20090193050 Olson Jul 2009 A1
20090199047 Vaitheeswaran et al. Aug 2009 A1
20090199106 Jonsson et al. Aug 2009 A1
20090222400 Kupershmidt et al. Sep 2009 A1
20090222759 Drieschner Sep 2009 A1
20090222760 Halverson et al. Sep 2009 A1
20090228365 Tomchek et al. Sep 2009 A1
20090228507 Jain et al. Sep 2009 A1
20090234720 George et al. Sep 2009 A1
20090248721 Burton et al. Oct 2009 A1
20090248757 Havewala et al. Oct 2009 A1
20090249244 Robinson et al. Oct 2009 A1
20090254970 Agarwal et al. Oct 2009 A1
20090271343 Vaiciulis et al. Oct 2009 A1
20090281839 Lynn et al. Nov 2009 A1
20090282068 Shockro et al. Nov 2009 A1
20090287470 Farnsworth et al. Nov 2009 A1
20090292626 Oxford Nov 2009 A1
20090299830 West et al. Dec 2009 A1
20090307049 Elliott et al. Dec 2009 A1
20090313250 Folting et al. Dec 2009 A1
20090313311 Hoffmann et al. Dec 2009 A1
20090313463 Pang et al. Dec 2009 A1
20090319418 Herz Dec 2009 A1
20090319891 MacKinlay Dec 2009 A1
20090319996 Shafi et al. Dec 2009 A1
20090327157 Dunne 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
20100057600 Johansen et al. Mar 2010 A1
20100057622 Faith et al. Mar 2010 A1
20100057716 Stefik et al. Mar 2010 A1
20100070426 Aymeloglu et al. Mar 2010 A1
20100070427 Aymeloglu et al. Mar 2010 A1
20100070464 Aymeloglu et al. Mar 2010 A1
20100070489 Aymeloglu et al. Mar 2010 A1
20100070523 Delgo et al. Mar 2010 A1
20100070531 Aymeloglu et al. Mar 2010 A1
20100070842 Aymeloglu et al. Mar 2010 A1
20100070844 Aymeloglu et al. Mar 2010 A1
20100070845 Facemire et al. Mar 2010 A1
20100070897 Aymeloglu et al. Mar 2010 A1
20100073315 Lee et al. Mar 2010 A1
20100082541 Kottomtharayil Apr 2010 A1
20100082671 Li et al. Apr 2010 A1
20100094765 Nandy Apr 2010 A1
20100098318 Anderson Apr 2010 A1
20100100963 Mahaffey Apr 2010 A1
20100114817 Broeder et al. May 2010 A1
20100114831 Gilbert et al. May 2010 A1
20100114887 Conway et al. May 2010 A1
20100122152 Chamberlain et al. May 2010 A1
20100131457 Heimendinger May 2010 A1
20100131502 Fordham May 2010 A1
20100145902 Boyan et al. Jun 2010 A1
20100145909 Ngo Jun 2010 A1
20100161646 Ceballos et al. Jun 2010 A1
20100161735 Sharma Jun 2010 A1
20100162176 Dunton Jun 2010 A1
20100162371 Geil Jun 2010 A1
20100169192 Zoldi et al. Jul 2010 A1
20100169376 Chu Jul 2010 A1
20100169405 Zhang Jul 2010 A1
20100191563 Schlaifer et al. Jul 2010 A1
20100198684 Eraker et al. Aug 2010 A1
20100199167 Uematsu et al. Aug 2010 A1
20100199225 Coleman et al. Aug 2010 A1
20100204983 Chung et al. Aug 2010 A1
20100205108 Mun Aug 2010 A1
20100205662 Ibrahim et al. Aug 2010 A1
20100223260 Wu Sep 2010 A1
20100228812 Uomini Sep 2010 A1
20100235915 Memon et al. Sep 2010 A1
20100250412 Wagner Sep 2010 A1
20100262688 Hussain et al. Oct 2010 A1
20100280857 Liu et al. Nov 2010 A1
20100283787 Hamedi 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
20100312530 Capriotti Dec 2010 A1
20100312837 Bodapati et al. Dec 2010 A1
20100313119 Baldwin Dec 2010 A1
20100313239 Chakra 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
20110004626 Naeymi-Rad et al. Jan 2011 A1
20110029526 Knight et al. Feb 2011 A1
20110035396 Merz et al. Feb 2011 A1
20110041084 Karam Feb 2011 A1
20110047159 Baid et al. Feb 2011 A1
20110055074 Chen et al. Mar 2011 A1
20110060753 Shaked et al. Mar 2011 A1
20110061013 Bilicki et al. Mar 2011 A1
20110066497 Gopinath et al. Mar 2011 A1
20110066933 Ludwig 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
20110093490 Schindlauer et al. Apr 2011 A1
20110099133 Chang et al. Apr 2011 A1
20110099628 Lanxner et al. Apr 2011 A1
20110117878 Barash et al. May 2011 A1
20110119100 Ruhl et al. May 2011 A1
20110131082 Manser et al. Jun 2011 A1
20110131122 Griffin et al. Jun 2011 A1
20110131547 Elaasar Jun 2011 A1
20110137766 Rasmussen et al. Jun 2011 A1
20110145401 Westlake Jun 2011 A1
20110153384 Horne et al. Jun 2011 A1
20110153592 DeMarcken Jun 2011 A1
20110161096 Buehler et al. Jun 2011 A1
20110167105 Ramakrishnan et al. Jul 2011 A1
20110170799 Carrino et al. Jul 2011 A1
20110173032 Payne et al. Jul 2011 A1
20110173093 Psota et al. Jul 2011 A1
20110179042 Aymeloglu et al. Jul 2011 A1
20110185316 Reid et al. Jul 2011 A1
20110185401 Bak et al. Jul 2011 A1
20110208565 Ross et al. Aug 2011 A1
20110208724 Jones et al. Aug 2011 A1
20110208822 Rathod Aug 2011 A1
20110213655 Henkin Sep 2011 A1
20110218934 Elser Sep 2011 A1
20110218955 Tang Sep 2011 A1
20110219450 McDougal et al. Sep 2011 A1
20110225198 Edwards et al. Sep 2011 A1
20110225482 Chan et al. Sep 2011 A1
20110225586 Bentley et al. Sep 2011 A1
20110231305 Winters Sep 2011 A1
20110238495 Kang Sep 2011 A1
20110251951 Kolkowitz Oct 2011 A1
20110252282 Meek et al. Oct 2011 A1
20110258072 Kerker et al. Oct 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
20110270871 He 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
20110307382 Siegel 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
20110321008 Jhoney et al. Dec 2011 A1
20120011238 Rathod Jan 2012 A1
20120011245 Gillette et al. Jan 2012 A1
20120013684 Robertson et al. Jan 2012 A1
20120019559 Siler et al. Jan 2012 A1
20120022945 Falkenborg et al. Jan 2012 A1
20120030140 Aymeloglu et al. Feb 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
20120078595 Balandin 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
20120101952 Raleigh et al. Apr 2012 A1
20120102022 Miranker et al. Apr 2012 A1
20120106801 Jackson May 2012 A1
20120117082 Koperda et al. May 2012 A1
20120131512 Takeuchi et al. May 2012 A1
20120136804 Lucia May 2012 A1
20120137235 TS et al. May 2012 A1
20120143816 Zhang et al. Jun 2012 A1
20120144335 Abeln et al. Jun 2012 A1
20120158585 Ganti Jun 2012 A1
20120159307 Chung et al. Jun 2012 A1
20120159362 Brown et al. Jun 2012 A1
20120159399 Bastide et al. Jun 2012 A1
20120159449 Arnold et al. Jun 2012 A1
20120170847 Tsukidate Jul 2012 A1
20120173381 Smith Jul 2012 A1
20120173985 Peppel Jul 2012 A1
20120174057 Narendra et al. Jul 2012 A1
20120180002 Campbell et al. Jul 2012 A1
20120188252 Law 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
20120278249 Duggal et al. Nov 2012 A1
20120284345 Costenaro et al. Nov 2012 A1
20120284719 Phan et al. Nov 2012 A1
20120290506 Muramatsu et al. Nov 2012 A1
20120290879 Shibuya et al. Nov 2012 A1
20120296907 Long et al. Nov 2012 A1
20120311684 Paulsen et al. Dec 2012 A1
20120323888 Osann, Jr. Dec 2012 A1
20120330801 McDougal et al. 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
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
20130036346 Cicerone Feb 2013 A1
20130046635 Grigg et al. Feb 2013 A1
20130046842 Muntz et al. Feb 2013 A1
20130054306 Bhalla Feb 2013 A1
20130054551 Lange Feb 2013 A1
20130057551 Ebert 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
20130096968 Van Pelt et al. Apr 2013 A1
20130096988 Grossman et al. Apr 2013 A1
20130097130 Bingol et al. Apr 2013 A1
20130097482 Marantz 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
20130117651 Waldman et al. May 2013 A1
20130124193 Holmberg May 2013 A1
20130132348 Garrod May 2013 A1
20130101159 Chao et al. Jun 2013 A1
20130150004 Rosen Jun 2013 A1
20130151148 Parundekar et al. Jun 2013 A1
20130151305 Akinola 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
20130198624 Aymeloglu et al. Aug 2013 A1
20130224696 Wolfe et al. Aug 2013 A1
20130225212 Khan Aug 2013 A1
20130226318 Procyk Aug 2013 A1
20130226944 Baid et al. Aug 2013 A1
20130226953 Markovich et al. Aug 2013 A1
20130231862 Delling et al. Sep 2013 A1
20130232045 Tai et al. Sep 2013 A1
20130232220 Sampson Sep 2013 A1
20130238616 Rose et al. Sep 2013 A1
20130238664 Hsu et al. Sep 2013 A1
20130246170 Gross et al. Sep 2013 A1
20130246537 Gaddala Sep 2013 A1
20130246597 Iizawa et al. Sep 2013 A1
20130251233 Yang et al. Sep 2013 A1
20130262328 Federgreen Oct 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
20130279757 Kephart Oct 2013 A1
20130282696 John et al. Oct 2013 A1
20130290011 Lynn et al. Oct 2013 A1
20130290161 Aymeloglu et al. Oct 2013 A1
20130290825 Arndt et al. Oct 2013 A1
20130293553 Burr et al. Nov 2013 A1
20130297619 Chandrasekaran et al. Nov 2013 A1
20130304770 Boero et al. Nov 2013 A1
20130311375 Priebatsch Nov 2013 A1
20130325826 Agarwal et al. Dec 2013 A1
20140006404 McGrew et al. Jan 2014 A1
20140012724 O'Leary et al. Jan 2014 A1
20140012796 Petersen et al. Jan 2014 A1
20140012886 Downing 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
20140074855 Zhao et al. Mar 2014 A1
20140074888 Potter et al. Mar 2014 A1
20140081685 Thacker et al. Mar 2014 A1
20140095273 Tang et al. Apr 2014 A1
20140095363 Caldwell Apr 2014 A1
20140095509 Patton Apr 2014 A1
20140108068 Williams Apr 2014 A1
20140108074 Miller et al. Apr 2014 A1
20140108380 Gotz et al. Apr 2014 A1
20140108985 Scott et al. Apr 2014 A1
20140115589 Marinelli, III et al. Apr 2014 A1
20140115610 Marinelli, III et al. Apr 2014 A1
20140120864 Manolarakis et al. May 2014 A1
20140123279 Bishop et al. May 2014 A1
20140129261 Bothwell et al. May 2014 A1
20140129936 Richards et al. May 2014 A1
20140136285 Carvalho May 2014 A1
20140143009 Brice et al. May 2014 A1
20140143025 Fish et al. May 2014 A1
20140149436 Bahrami et al. May 2014 A1
20140156527 Grigg et al. 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
20140214482 Williams Jul 2014 A1
20140214579 Shen et al. Jul 2014 A1
20140222521 Chait Aug 2014 A1
20140222752 Isman et al. Aug 2014 A1
20140222793 Sadkin et al. Aug 2014 A1
20140229554 Grunin et al. Aug 2014 A1
20140237354 Burr et al. Aug 2014 A1
20140244388 Manouchehri et al. Aug 2014 A1
20140267294 Ma Sep 2014 A1
20140267295 Sharma Sep 2014 A1
20140279824 Tamayo Sep 2014 A1
20140279865 Kumar Sep 2014 A1
20140310266 Greenfield Oct 2014 A1
20140316911 Gross Oct 2014 A1
20140333651 Cervelli et al. Nov 2014 A1
20140337772 Cervelli et al. Nov 2014 A1
20140344230 Krause et al. Nov 2014 A1
20140358789 Boding et al. Dec 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
20150046481 Elliot Feb 2015 A1
20150046870 Goldenberg et al. Feb 2015 A1
20150073929 Psota et al. Mar 2015 A1
20150073954 Braff Mar 2015 A1
20150089424 Duffield et al. Mar 2015 A1
20150095773 Gonsalves et al. 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
20150120176 Curtis et al. Apr 2015 A1
20150134512 Mueller May 2015 A1
20150134666 Gattiker et al. May 2015 A1
20150135256 Hoy et al. May 2015 A1
20150161611 Duke et al. Jun 2015 A1
20150169709 Kara et al. Jun 2015 A1
20150169726 Kara et al. Jun 2015 A1
20150170077 Kara et al. Jun 2015 A1
20150178743 Aymeloglu et al. Jun 2015 A1
20150178825 Huerta Jun 2015 A1
20150178877 Bogomolov et al. Jun 2015 A1
20150186821 Wang et al. Jul 2015 A1
20150187036 Wang et al. Jul 2015 A1
20150188872 White Jul 2015 A1
20150205848 Kumar et al. Jul 2015 A1
20150227295 Meiklejohn et al. Aug 2015 A1
20150261817 Harris et al. Sep 2015 A1
20150269030 Fisher et al. Sep 2015 A1
20150309719 Ma et al. Oct 2015 A1
20150310005 Ryger et al. Oct 2015 A1
20150317342 Grossman et al. Nov 2015 A1
20150324868 Kaftan et al. Nov 2015 A1
20150338233 Cervelli et al. Nov 2015 A1
20150379413 Robertson et al. Dec 2015 A1
20160004764 Chakerian et al. Jan 2016 A1
20160026923 Erenrich et al. Jan 2016 A1
20160299652 Aymeloglu et al. Oct 2016 A1
Foreign Referenced Citations (94)
Number Date Country
2828264 Apr 2014 CA
2829266 Jun 2017 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
102014213036 Jan 2015 DE
102014215621 Feb 2015 DE
0652513 May 1995 EP
1109116 Jun 2001 EP
1146649 Oct 2001 EP
1647908 Apr 2006 EP
1672527 Jun 2006 EP
1926074 May 2008 EP
2350817 Aug 2011 EP
2487610 Aug 2012 EP
2551799 Jan 2013 EP
2555126 Feb 2013 EP
2560134 Feb 2013 EP
2562709 Feb 2013 EP
2634745 Sep 2013 EP
2743839 Jun 2014 EP
2778913 Sep 2014 EP
2778914 Sep 2014 EP
2778974 Sep 2014 EP
2778977 Sep 2014 EP
2778986 Sep 2014 EP
2779082 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
2876587 May 2015 EP
2884439 Jun 2015 EP
2884440 Jun 2015 EP
2889814 Jul 2015 EP
2891992 Jul 2015 EP
2892197 Jul 2015 EP
2911078 Aug 2015 EP
2911100 Aug 2015 EP
2921975 Sep 2015 EP
2940603 Nov 2015 EP
2940609 Nov 2015 EP
2963595 Jan 2016 EP
2366498 Mar 2002 GB
2508503 Jun 2014 GB
2513472 Oct 2014 GB
2513721 Nov 2014 GB
2516155 Jan 2015 GB
2517582 Feb 2015 GB
2508293 Apr 2015 GB
2518745 Apr 2015 GB
1194178 Sep 2015 HK
2012778 Nov 2014 NL
2013134 Jan 2015 NL
2013306 Feb 2015 NL
624557 Dec 2014 NZ
622485 Mar 2015 NZ
616212 May 2015 NZ
616299 Jul 2015 NZ
WO 2000009529 Feb 2000 WO
WO 00034895 Jun 2000 WO
WO 01025906 Apr 2001 WO
WO 2001088750 Nov 2001 WO
WO 2002065353 Aug 2002 WO
WO 2005104736 Nov 2005 WO
WO 2005116851 Dec 2005 WO
WO 2008064207 May 2008 WO
WO 2008121499 Oct 2008 WO
WO 2009042548 Apr 2009 WO
WO 2009051987 Apr 2009 WO
WO 2009061501 May 2009 WO
WO 2010000014 Jan 2010 WO
WO 2010030913 Mar 2010 WO
WO 2010030914 Mar 2010 WO
WO 2010030915 Mar 2010 WO
WO 2010030917 Mar 2010 WO
WO 2010030919 Mar 2010 WO
WO 2010030946 Mar 2010 WO
WO 2010030949 Mar 2010 WO
WO 2012025915 Mar 2012 WO
WO 2012119008 Sep 2012 WO
WO 2013010157 Jan 2013 WO
WO 2013030595 Mar 2013 WO
WO 2013102892 Jul 2013 WO
Non-Patent Literature Citations (522)
Entry
“A Quick Guide to UniProtKB Swiss-Prot & TrEMBL,” Sep. 2011, pp. 2.
“A Tour of Pinboard,” http://pinboard.in/tour as printed May 15, 2014 in 6 pages.
“The FASTA Program Package,” fasta-36.3.4, Mar. 25, 2011, pp. 29.
“Java Remote Method Invocation: 7—Remote Object Activation,” Dec. 31, 2010, retrieved from the internet Mar. 15, 2016 https://docs.oracle.com/javase/7/docs/platform/rmi/spec/rmi-activation2.html.
Alur et al., “Chapter 2: IBM InfoSphere DataStage Stages,” IBM InfoSphere DataStage Data Flow and Job Design, Jul. 1, 2008, pp. 35-137.
Anonymous, “Frequently Asked Questions about Office Binder 97,” http://web.archive/org/web/20100210112922/http://support.microsoft.com/kb/843147 printed Dec. 18, 2006 in 5 pages.
Bae et al., “Partitioning Algorithms for the Computation of Average Iceberg Queries,” DaWaK 2000, LNCS 1874, pp. 276-286.
Ballesteros et al., “Batching: A Design Pattern for Efficient and Flexible Client/Server Interaction,” Transactions on Pattern Languages of Programming, Springer Berlin Heidelberg, 2009, pp. 48-66.
Bogle et al., “Reducing Cross-Domain Call Overhead Using Batched Futures,” SIGPLAN No. 29, 10 (Oct. 1994) pp. 341-354.
Bogle, Phillip Lee, “Reducing Cross-Domain Call Overhead Using Batched Futures,” May 1994, Massachusetts Institute of Technology, pp. 96.
Bouajjani et al., “Analysis of Recursively Parallel Programs,” PLDI09: Proceedings of the 2009 ACM Sigplan Conference on Programming Language Design and Implementation, Jan. 25-27, 2012, Dublin, Ireland, pp. 203-214.
Canese et al., “Chapter 2: PubMed: The Bibliographic Database,” The NCBI Handbook, Oct. 2002, pp. 1-10.
Chazelle et al., “The Bloomier Filter: An Efficient Data Structure for Static Support Lookup Tables,” SODA '04 Proceedings of the Fifteenth Annual ACM-SIAM Symposium on Discrete Algorithms, 2004, pp. 30-39.
Delcher et al., “Identifying Bacterial Genes and Endosymbiont DNA with Glimmer,” BioInformatics, vol. 23, No. 6, 2007, pp. 673-679.
Delicious, http://delicious.com/ as printed May 15, 2014 in 1 page.
Donjerkovic et al., “Probabilistic Optimization of Top N Queries,” Proceedings of the 25th VLDB Conference, Edinburgh, Scotland, 1999, pp. 411-422.
Fang et al., “Computing Iceberg Queries Efficiently,” Proceedings of the 24th VLDB Conference, New York, 1998, pp. 299-310.
Fischer et al., “Populating a Release History Database from Version Control and Bug Tracking Systems”, Proceedings of the International Conference on Software Maintenance, 2003 IEEE, pp. 10.
Goldstein et al., “Stacks Lazy Threads: Implementing a Fast Parallel Call,” Journal of Parallel and Distributed Computing, Jan. 1, 1996, pp. 5-20.
Han et al., “Efficient Computation of Iceberg Cubes with Complex Measures,” ACM Sigmod, May 21-24, 2001, pp. 1-12.
Ivanova et al., “An Architecture for Recycling Intermediates in a Column-Store,” Proceedings of the 35th Sigmod International Conference on Management of Data, Sigmod '09, Jun. 29, 2009, p. 309.
Jacques, M., “An extensible math expression parser with plug-ins,” Code Project, Mar. 13, 2008. Retrieved on Jan. 30, 2015 from the internet: http://www.codeproject.com/Articles/7335/An-extensible-math-expression-parser-with-plug-ins.
Jenks et al., “Nomadic Threads: A Migrating Multithreaded Approach to Remote Memory Accesses in Multiprocessors,” Parallel Architectures and Compilation Techniques, 1996, Oct. 20, 1996, pp. 2-11.
Kahan et al., “Annotea: An Open RDF Infrastructure for Shared WEB Annotations”, Computer Networks, 2002, vol. 39, pp. 589-608.
Karp et al., “A Simple Algorithm for Finding Frequent Elements in Streams and Bags,” ACM Transactions on Database Systems, vol. 28, No. 1, Mar. 2003, pp. 51-55.
Kitts, Paul, “Chapter 14: Genome Assembly and Annotation Process,” The NCBI Handbook, Oct. 2002, pp. 1-21.
Leela et al., “On Incorporating Iceberg Queries in Query Processors,” Technical Report, TR-2002-01, Database Systems for Advanced Applications Lecture Notes in Computer Science, 2004, vol. 2973.
Liu et al., “Methods for Mining Frequent Items in Data Streams: An Overview,” Knowledge and Information Systems, vol. 26, No. 1, Jan. 2011, pp. 1-30.
Madden, Tom, “Chapter 16: The BLAST Sequence Analysis Tool,” The NCBI Handbook, Oct. 2002, pp. 1-15.
Mendes et al., “TcruziKB: Enabling Complex Queries for Genomic Data Exploration,” IEEE International Conference on Semantic Computing, Aug. 2008, pp. 432-439.
Mizrachi, Ilene, “Chapter 1: GenBank: The Nuckeotide Sequence Database,” The NCBI Handbook, Oct. 2002, pp. 1-14.
Russell et al., “NITELIGHT: A Graphical Tool for Semantic Query Construction,” 2008, pp. 10.
Sigrist, et al., “PROSITE, a Protein Domain Database for Functional Characterization and Annotation,” Nucleic Acids Research, 2010, vol. 38, pp. D161-D166.
Sirotkin et al., “Chapter 13: The Processing of Biological Sequence Data at NCBI,” The NCBI Handbook, Oct. 2002, pp. 1-11.
Smart et al., “A Visual Approach to Semantic Query Design Using a Web-Based Graphical Query Designer,” 16th International Conference on Knowledge Engineering and Knowledge Management (EKAW 2008), Acitrezza, Catania, Italy, Sep. 29-Oct. 3, 2008, pp. 16.
Stamos et al., “Remote Evaluation,” Journal ACM Transactions on Programming Languages and Systems (TOPLAS) vol. 12, Issue 4, Oct. 1990, pp. 537-564.
Wikipedia, “Machine Code,” printed Aug. 11, 2014, pp. 1-5.
Wollrath et al., “A Distributed Object Model for the Java System,” Proceedings of the 2nd Conference on USENEX, Conference on Object-Oriented Technologies (COOTS), Jun. 17, 1996, pp. 219-231.
Notice of Acceptance for New Zealand Patent Application No. 616212 dated Jan. 23, 2015.
Notice of Acceptance for New Zealand Patent Application No. 616299 dated Apr. 7, 2015.
Notice of Acceptance for New Zealand Patent Application No. 622485 dated Nov. 24, 2014.
Notice of Allowance for U.S. Appl. No. 13/411,291 dated Apr. 22, 2016.
Notice of Allowance for U.S. Appl. No. 13/657,635 dated Jan. 29, 2016.
Notice of Allowance for U.S. Appl. No. 13/657,656 dated May 10, 2016.
Notice of Allowance for U.S. Appl. No. 13/767,779 dated Mar. 17, 2015.
Notice of Allowance for U.S. Appl. No. 13/827,627 dated Apr. 11, 2016.
Notice of Allowance for U.S. Appl. No. 14/019,534 dated Feb. 4, 2016.
Notice of Allowance for U.S. Appl. No. 14/254,757 dated Sep. 10, 2014.
Notice of Allowance for U.S. Appl. No. 14/254,773 dated Aug. 20, 2014.
Notice of Allowance for U.S. Appl. No. 14/304,741 dated Apr. 7, 2015.
Notice of Allowance for U.S. Appl. No. 14/581,902 dated Nov. 13, 2015.
Official Communication for Australian Patent Application No. 2013237658 dated Feb. 2, 2015.
Official Communication for Australian Patent Application No. 2013237710 dated Jan. 16, 2015.
Official Communication for Australian Patent Application No. 2014201580 dated Feb. 27, 2015.
Official Communication for Canadian Patent Application No. 2807899 dated Jul. 20, 2015.
Official Communication for Canadian Patent Application No. 2807899 dated Oct. 24, 2014.
Official Communication for Canadian Patent Application No. 2828264 dated Apr. 11, 2016.
Official Communication for Canadian Patent Application No. 2828264 dated Apr. 28, 2015.
Official Communication for Canadian Patent Application No. 2829266 dated Apr. 1, 2016.
Official Communication for Canadian Patent Application No. 2829266 dated Apr. 28, 2015.
Official Communication for European Patent Application No. 13157474.1 dated Apr. 29, 2016.
Official Communication for European Patent Application No. 13157474.1 dated Oct. 30, 2015.
Official Communication for European Patent Application No. 14159175.0 dated Feb. 4, 2016.
Official Communication for European Patent Application No. 14159464.8 dated Feb. 18, 2016.
Official Communication for European Patent Application No. 14159629.6 dated Jul. 31, 2014.
Official Communication for European Patent Application No. 14159629.6 dated Sep. 22, 2014.
Official Communication for European Patent Application No. 15159520.4 dated Jul. 15, 2015.
Official Communication for German Patent Application No. 10 2013 221 052.3 dated Mar. 24, 2015.
Official Communication for German Patent Application No. 10 2013 221 057.4 dated Mar. 23, 2015.
Official Communication for Great Britain Patent Application No. 1404574.4 dated Dec. 18, 2014.
Official Communication for Netherlands Patent Application No. 2011613 dated Aug. 13, 2015.
Official Communication for Netherlands Patent Application No. 2011627 dated Aug. 14, 2015.
Official Communication for Netherlands Patent Application No. 2012437 dated Sep. 18, 2015.
Official Communication for New Zealand Patent Application No. 616299 dated Jan. 26, 2015.
Official Communication for New Zealand Patent Application No. 622414 dated Mar. 24, 2014.
Official Communication for New Zealand Patent Application No. 622485 dated Nov. 21, 2014.
Official Communication for U.S. Appl. No. 13/411,291 dated Oct. 1, 2015.
Official Communication for U.S. Appl. No. 13/411,291 dated Jul. 15, 2015.
Official Communication for U.S. Appl. No. 13/608,864 dated Mar. 17, 2015.
Official Communication for U.S. Appl. No. 13/608,864 dated Jun. 8, 2015.
Official Communication for U.S. Appl. No. 13/657,635 dated Mar. 30, 2015.
Official Communication for U.S. Appl. No. 13/657,635 dated Oct. 7, 2015.
Official Communication for U.S. Appl. No. 13/657,656 dated May 6, 2015.
Official Communication for U.S. Appl. No. 13/657,656 dated Oct. 7, 2014.
Official Communication for U.S. Appl. No. 13/827,627 dated Mar. 2, 2015.
Official Communication for U.S. Appl. No. 13/827,627 dated Oct. 20, 2015.
Official Communication for U.S. Appl. No. 13/827,627 dated Dec. 22, 2015.
Official Communication for U.S. Appl. No. 13/827,627 dated Aug. 26, 2015.
Official Communication for U.S. Appl. No. 13/831,791 dated Mar. 4, 2015.
Official Communication for U.S. Appl. No. 13/831,791 dated Aug. 6, 2015.
Official Communication for U.S. Appl. No. 14/019,534 dated Jul. 20, 2015.
Official Communication for U.S. Appl. No. 14/019,534 dated Sep. 4, 2015.
Official Communication for U.S. Appl. No. 14/025,653 dated Mar. 3, 2016.
Official Communication for U.S. Appl. No. 14/025,653 dated Oct. 6, 2015.
Official Communication for U.S. Appl. No. 14/134,558 dated May 16, 2016.
Official Communication for U.S. Appl. No. 14/134,558 dated Oct. 7, 2015.
Official Communication for U.S. Appl. No. 14/304,741 dated Mar. 3, 2015.
Official Communication for U.S. Appl. No. 14/304,741 dated Aug. 6, 2014.
Official Communication for U.S. Appl. No. 14/877,229 dated Mar. 22, 2016.
Official Communication for European Patent Application No. 14159175.0 dated Jul. 17, 2014.
Official Communication for New Zealand Patent Application No. 622484 dated Apr. 2, 2014.
“A First Look: Predicting Market Demand for Food Retail using a Huff Analysis,” TRF Policy Solutions, Jul. 2012, pp. 30.
“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/.
Abbey, Kristen, “Review of Google Docs,” May 1, 2007, pp. 2.
About 80 Minutes, “Palantir in a Number of Parts—Part 6—Graph,” Mar. 21, 2013, pp. 1-6, retrieved from the internet http://about80minutes.blogspot.nl/2013/03/palantir-in-number-of-parts-part-6-graph.html retrieved on Aug. 18, 2015.
Acklen, Laura, “Absolute Beginner's Guide to Microsoft Word 2003,” Dec. 24, 2003, pp. 15-18, 34-41, 308-316.
Adams et al., “Worklets: A Service-Oriented Implementation of Dynamic Flexibility in Workflows,” R. Meersman, Z. Tari et al. (Eds.): OTM 2006, LNCS, 4275, pp. 291-308, 2006.
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.
Ananiev et al., “The New Modality API,” http://web.archive.org/web/20061211011958/http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/modality/ Jan. 21, 2006, pp. 8.
Anonymous, “A Real-World Problem of Matching Records,” Nov. 2006, <http://grupoweb.upf.es/bd-web/slides/ullman.pdf> pp. 1-16.
Appacts, “Smart Thinking for Super Apps,” <http://www.appacts.com> Printed Jul. 18, 2013 in 4 pages.
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.
Ashraf, “Protect your Google Account (Gmail) by enabling SMS (text message) notifications for Suspicious Activity,” online article from dotTech, Jan. 24, 2013, https://dottech.org/94405/how-to-setup-text-message-sms-google-notifications-for-suspicious-activity/.
Azad, Khalid, “A Visual Guide to Version Control,” <http://betterexplained.com/articles/a-visual-guide-to-version-control/>, Sep. 27, 2007 in 11 pages.
Beverley, Bill, “Windows Tips & Tricks,” <http://alamopc.org/pcalamode/columns/beverley/bb0301.shtml>, Mar. 2001 in 5 pages.
Bluttman et al., “Excel Formulas and Functions for Dummies,” 2005, Wiley Publishing, Inc., pp. 280, 284-286.
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.
Bradbard, Matthew, “Technical Analysis Applied,” <http://partners.futuresource.com/fastbreak/2007/0905.htm>, Sep. 5, 2007, pp. 6.
Brandel, Mary, “Data Loss Prevention Dos and Don'ts,” <http://web.archive.org/web/20080724024847/http://www.csoonline.com/article/221272/Dos_and_Don_ts_for_Data_Loss_Prevention>, Oct. 10, 2007, pp. 5.
Breierova et al., “An Introduction to Sensitivity Analysis,” Publsihed by Massachusetts Institute of Technology, Cambridge, MA, Oct. 2001, pp. 67.
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.
Capptain—Pilot Your Apps, <http://www.capptain.com> Printed Jul. 18, 2013 in 6 pages.
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-css3-ui-20120117/#resizing-amp-overflow retrieved on May 18, 2015.
Chaudhuri et al., “An Overview of Business Intelligence Technology,” Communications of the ACM, Aug. 2011, vol. 54, No. 8.
Chen et al., “A Novel Emergency Vehicle Dispatching System,” 2013 IEEE 77th Vehicular Technology Conference, IEEE, Jun. 2, 2013, 5 pages.
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.
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.
Cohn, et al., “Semi-supervised clustering with user feedback,” Constrained Clustering: Advances in Algorithms, Theory, and Applications 4.1 (2003): 17-32.
Conner, Nancy, “Google Apps: The Missing Manual,” May 1, 2008, pp. 15.
Countly Mobile Analytics, <http://count.ly/> Printed Jul. 18, 2013 in 9 pages.
Definition “Identify”, downloaded Jan. 22, 2015, 1 page.
Definition “Overlay”, downloaded Jan. 22, 2015, 1 page.
Devanbu et al., “Authentic Third-party Data Publication”, http://www.cs.ucdavis.edu/˜devanbu/authdbpub.pdf, p. 19, 2000.
Distimo—App Analytics, <http://www.distimo.com/app-analytics> Printed Jul. 18, 2013 in 5 pages.
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.
Dreyer et al., “An Object-Oriented Data Model for a Time Series Management System,” Proceedings of the 7th International Working Conference on Scientific and Statistical Database Management, Charlottesville, Virginia USA, Sep. 28-30, 1994, pp. 12.
Eklund et al., “A Dynamic Multi-source Dijkstra's Algorithm for Vehicle Routing,” Intelligent Information Systems, 1996, pp. 329-333.
“E-MailRelay,” <http://web.archive.org/web/20080821175021/http://emailrelay.sourceforge.net/> Aug. 21, 2008, pp. 2.
Fischer et al., “Populating a Release History Database From Version Control and Bug Tracking Systems,” Software Maintenance, 2003, ICSM 2003, Proceedings International Conference, pp. 1-10.
Flurry Analytics, <http://www.flurry.com/> Printed Jul. 18, 2013 in 14 pages.
Galliford, Miles, “SnagIt Versus Free Screen Capture Software: Critical Tools for Website Owners,” <http://www.subhub.com/articles/free-screen-capture-software>, Mar. 27, 2008, pp. 11.
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.
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.
Google Analytics Official Website—Web Analytics & Reporting, <http://www.google.com/analytics.index.html> Printed Jul. 18, 2013 in 22 pages.
Gorr et al., “Crime Hot Spot Forecasting: Modeling and Comparative Evaluation”, Grant 98-IJ-CX-K005, May 6, 2002, 37 pages.
Goswami, Gautam, “Quite Writly Said!,” One Brick at a Time, Aug. 21, 2005, pp. 7.
“GrabUp—What a Timesaver!” <http://atlchris.com/191/grabup/>, Aug. 11, 2008, pp. 3.
Griffith, Daniel A., “A Generalized Huff Model,” Geographical Analysis, Apr. 1982, vol. 14, No. 2, pp. 135-144.
Gu et al., “Record Linkage: Current Practice and Future Directions,” Jan. 15, 2004, pp. 32.
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.
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, Jan. 29, 2015, 3 pages.
Hart et al., “A Formal Basis for the Heuristic Determination of Minimum Cost Paths,” IEEE Transactions on Systems Science and Cybernetics, IEEE, vol. 1, No. 2, Jul. 1, 1968, pp. 100-107.
Hibbert et al., “Prediction of Shopping Behavior Using a Huff Model Within a GIS Framework,” Healthy Eating in Context, Mar. 18, 2011, pp. 16.
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.
Hua et al., “A Multi-attribute Data Structure with Parallel Bloom Filters for Network Services”, HiPC 2006, LNCS 4297, pp. 277-288, 2006.
Huang et al., “Systematic and Integrative Analysis of Large Gene Lists Using DAVID Bioinformatics Resources,” Nature Protocols, 4.1, 2008, 44-57.
Huff et al., “Calibrating the Huff Model Using ArcGIS Business Analyst,” ESRI, Sep. 2008, pp. 33.
Huff, David L., “Parameter Estimation in the Huff Model,” ESRI, ArcUser, Oct.-Dec. 2003, pp. 34-36.
“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.
JetScreenshot.com, “Share Screenshots via Internet in Seconds,” <http://web.archive.org/web/20130807164204/http://www.jetscreenshot.com/>, Aug. 7, 2013, pp. 1.
Johnson, Maggie, “Introduction to YACC and Bison,” CS143, Handout 13, Jul. 8, 2005, pp. 11.
Johnson, Steve, “Access 2013 on demand,” Access 2013 on Demand, May 9, 2013, Que Publishing.
Jotshi et al., “Dispatching and Routing of Emergency Vehicles in Disaster Mitigation Using Data Fusion.” Socio-Economic Planning Sciences, Pergamon, Amsterdam, Netherlands, vol. 43, No. 1, Mar. 1, 2009, 24 pages.
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.
Keylines.com, “KeyLines Datasheet,” Mar. 2014, <http://keylines.com/wp-content/uploads/2014/03/KeyLines-datasheet.pdf> downloaded May 12, 2014 in 2 pages.
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.
Kontagent Mobile Analytics, <http://www.kontagent.com/> Printed Jul. 18, 2013 in 9 pages.
Kwout, <http://web.archive.org/web/20080905132448/http://www.kwout.com/> Sep. 5, 2008, pp. 2.
Li et al., “Interactive Multimodal Visual Search on Mobile Device,” IEEE Transactions on Multimedia, vol. 15, No. 3, Apr. 1, 2013, pp. 594-607.
Lim et al., “Resolving Attribute Incompatibility in Database Integration: An Evidential Reasoning Approach,” Department of Computer Science, University of Minnesota, 1994, <http://reference.kfupm.edu.sa/content/r/e/resolving_attribute_incompatibility_in_d_531691.pdf> pp. 1-10.
Litwin et al., “Multidatabase Interoperability,” IEEE Computer, Dec. 1986, vol. 19, No. 12, http://www.lamsade.dauphine.fr/˜litwin/mdb-interoperability.pdf, pp. 10-18.
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.
Localytics—Mobile App Marketing & Analytics, <http://www.localytics.com/> Printed Jul. 18, 2013 in 12 pages.
Manno et al., “Introducing Collaboration in Single-user Applications through the Centralized Control Architecture,” 2010, pp. 10.
Manske, “File Saving Dialogs,” <http://www.mozilla.org/editor/ui_specs/FileSaveDialogs.html>, Jan. 20, 1999, pp. 7.
Map Builder, “Rapid Mashup Development Tool for Google and Yahoo Maps!” <http://web.archive.org/web/20090626224734/http://www.mapbuilder.net/> printed Jul. 20, 2012 in 2 pages.
Map of San Jose, CA. Retrieved Oct. 2, 2013 from http://maps.yahoo.com.
Map of San Jose, CA. Retrieved Oct. 2, 2013 from http://maps.bing.com.
Map of San Jose, CA. Retrieved Oct. 2, 2013 from http://maps.google.com.
Mentzas et al. “An Architecture for Intelligent Assistance in the Forecasting Process,” Proceedings of the Twenty-Eighth Hawaii International Conference on System Sciences, Jan. 3-6, 1995, vol. 3, pp. 167-176.
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.
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.
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.
Microsoft Windows, “Microsoft Windows Version 2002 Print Out 2,” 2002, pp. 1-6.
Microsoft, “Introduction to Versioning,” <http://office.microsoft.com/en-us/sharepointtechnolgy/HA010021576.aspx?mode=print>, 2007 in 3 pages.
Microsoft, “How Word Creates and Recovers the AutoRecover files,” <http://support.microsoft.com/kb/107686>, Article ID: 107686, printed Feb. 11, 2010 in 3 pages.
Microsoft, “Managing Versions and Checking Documents In and Out (Windows SharePoint Services 2.0),” <http://technet.microsoft.com/en-us/library/cc287876.aspx>, Aug. 22, 2005 in 2 pages.
Microsoft, “Registering an Application to a URI Scheme,” <http://msdn.microsoft.com/en-us/library/aa767914.aspx>, printed Apr. 4, 2009 in 4 pages.
Microsoft, “Using the Clipboard,” <http://msdn.microsoft.com/en-us/library/ms649016.aspx>, printed Jun. 8, 2009 in 20 pages.
Mitzenmacher, Michael, “Compressed Bloom Filters,” IEEE/ACM Tranactions on Networking, vol. 10, No. 5, Oct. 2002, pp. 604-612.
Mixpanel—Mobile Analytics, <https://mixpanel.com/> Printed Jul. 18, 2013 in 13 pages.
Mohring et al., “Partitioning Graphs to Speedup Dijkstra's Algorithm,” ACM Journal of Experimental Algorithmics, Association of Computing Machinery, New York, New York, vol. 11, Jan. 1, 2006, 29 pages.
“Money Laundering Risks and E-Gaming: A European Overview and Assessment,” 2009, http://www.cf.ac.uk/socsi/resources/Levi_Final_Money_Laundering_Risks_egaming.pdf.
Nadeau et al., “A Survey of Named Entity Recognition and Classification,” Jan. 15, 2004, pp. 20.
Nierman, “Evaluating Structural Similarity in XML Documents”, 6 pages, 2002.
Nin et al., “On the Use of Semantic Blocking Techniques for Data Cleansing and Integration,” 11th International Database Engineering and Applications Symposium, 2007, pp. 9.
Nitro, “Trick: How to Capture a Screenshot as PDF, Annotate, Then Share It,” <http://blog.nitropdf.com/2008/03/04/trick-how-to-capture-a-screenshot-as-pdf-annotate-it-then-share/>, Mar. 4, 2008, pp. 2.
Nolan et al., “MCARTA: A Malicious Code Automated Run-Time Analysis Framework,” Homeland Security, 2012 IEEE Conference on Technologies for, Nov. 13, 2012, pp. 13-17.
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/.
Online Tech Tips, “Clip2Net—Share files, folders and screenshots easily,” <http://www.online-tech-tips.com/free-software-downloads/share-files-folders-screenshots/>, Apr. 2, 2008, pp. 5.
Open Web Analytics (OWA), <http://www.openwebanalytics.com/> Printed Jul. 19, 2013 in 5 pages.
O'Reilly.com, http://oreilly.com/digitalmedia/2006/01/01/mac-os-x-screenshot-secrets.html published Jan. 1, 2006 in 10 pages.
Palantir Technolgies, “Palantir Labs—Timeline,” Oct. 1, 2010, retrieved from the internet https://www.youtube.com/watch?v=JCgDW5bru9M retrieved on Aug. 19, 2015.
Palmas et al., “An Edge-Bunding Layout for Interactive Parallel Coordinates” 2014 IEEE Pacific Visualization Symposium, pp. 57-64.
Perdisci et al., “Behavioral Clustering of HTTP-Based Malware and Signature Generation Using Malicious Network Traces,” USENIX, Mar. 18, 2010, pp. 1-14.
Piwik—Free Web Analytics Software. <http://piwik.org/> Printed Jul. 19, 2013 in18 pages.
Plá{hacek over (s)}il et al., “An Architectural View of Distributed Objects and Components in CORBA, Java RMI and COM/DCOM,” Software—Concepts & Tools, vol. 19, No. 1, Jun. 1, 1998, pp. 14-28.
“Potential Money Laundering Warning Signs,” snapshot taken 2003, https://web.archive.org/web/20030816090055/http:/finsolinc.com/ANTIMONEY%20LAUNDERING%20TRAINING%20GUIDES.pdf.
Pythagoras Communications Ltd., “Microsoft CRM Duplicate Detection,” Sep. 13, 2011, https://www.youtube.com/watch?v=j-7Qis0D0Kc.
Qiang et al., “A Mutual-Information-Based Approach to Entity Reconciliation in Heterogeneous Databases,” Proceedings of 2008 International Conference on Computer Science & Software Engineering, IEEE Computer Society, New York, NY, Dec. 12-14, 2008, pp. 666-669.
Quest, “Toad for ORACLE 11.6—Guide to Using Toad,” Sep. 24, 2012, pp. 1-162.
Reedy, Sarah, “Policy and Charging Rules Function (PCRF),” Sep. 13, 2010, http://www.lightreading.com/document.asp?doc_id=680015 printed Dec. 10, 2013 in 4 pages.
“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, retrieved on May 18, 2015.
Rouse, Margaret, “OLAP Cube,” <http://searchdatamanagement.techtarget.com/definition/OLAP-cube>, Apr. 28, 2012, pp. 16.
Schroder, Stan, “15 Ways to Create Website Screenshots,” <http://mashable.com/2007/08/24/web-screenshots/>, Aug. 24, 2007, pp. 2.
Schwieger, V., “Sensitivity Analysis as a General Tool for Model Optimisation-Examples for Trajectory Estimation,” 3rd IAG/12th FIG Symposium, Baden, Germany, May 22-24, 2006, Published by IAG, 2006, pp. 10.
Schwieger, V., “Variance-Based Sensitivity Analysis for Model Evaluation in Engineering Surveys,” INGEO 2004 and FIG Regional Central and Eastern European Conference on Engineering Surveying, Nov. 11-13, 2004, Published by INGEO, Bratislava, Slovakia, 2004, pp. 10.
Sekine et al., “Definition, Dictionaries and Tagger for Extended Named Entity Hierarchy,” May 2004, pp. 1977-1980.
Shi et al., “A Scalable Implementation of Malware Detection Based on Network Connection Behaviors,” 2013 International Conference on Cyber-Enabled Distributed Computing and Knowledge Discovery, IEEE, Oct. 10, 2013, pp. 59-66.
SnagIt, “SnagIt 8.1.0 Print Out 2,” Software release date Jun. 15, 2006, pp. 1-3.
SnagIt, “SnagIt 8.1.0 Print Out,” Software release date Jun. 15, 2006, pp. 6.
SnagIt, “SnagIt Online Help Guide,” <http://download.techsmith.com/snagit/docs/onlinehelp/enu/snagit_help.pdf>, TechSmith Corp., Version 8.1, printed Feb. 7, 2007, pp. 284.
StatCounter—Free Invisible Web Tracker, Hit Counter and Web Stats, <http://statcounter.com/> Printed Jul. 19, 2013 in 17 pages.
Symantec Corporation, “E-Security Begins with Sound Security Policies,” Announcement Symantec, Jun. 14, 2001.
TestFlight—Beta Testing on the Fly, <http://testflightapp.com/> Printed Jul. 18, 2013 in 3 pages.
Thompson, Mick, “Getting Started with GEO,” Getting Started with GEO, Jul. 26, 2011.
Traichal et al., “Forecastable Default Risk Premia and Innovations,” Journal of Economics and Finance, Fall 1999, vol. 23, No. 3, pp. 214-225.
trak.io, <http://trak.io/> printed Jul. 18, 2013 in 3 pages.
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.
CMSC 341, “Introduction to Trees,” <http://www.csee.umbc.edu/courses/undergraduate/341/fall07/Lectures/Trees/TreeIntro.pdf>, Power Point Presentation, Baltimore, Maryland, Aug. 3, 2007, pp. 29.
UserMetrix, <http://usermetrix.com/android-analytics> printed Jul. 18, 2013 in 3 pages.
“Using Whois Based Geolocation and Google Maps API for Support Cybercrime Investigations,” http://wseas.us/e-library/conferences/2013/Dubrovnik/TELECIRC/TELECIRC-32.pdf.
Valentini et al., “Ensembles of Learning Machines”, M. Marinaro and R. Tagliaferri (Eds.): WIRN VIETRI 2002, LNCS 2486, pp. 3-20.
Vose et al., “Help File for ModelRisk Version 5,” 2007, Vose Software, pp. 349-353. [Uploaded in 2 Parts].
Wagner et al., “Dynamic Shortest Paths Containers,” Electronic Notes in Theoretical Computer Science, vol. 92, No. 1, 2003, pp. 1-19.
Wahl, “How to Create a small Multiple Masterpiece in Tableau,” Nov. 10, 2014, in 16 pages.
Wang et al., “Research on a Clustering Data De-Duplication Mechanism Based on Bloom Filter,” IEEE 2010, 5 pages.
Warren, Christina, “TUAW Faceoff: Screenshot apps on the firing line,” <http://www.tuaw.com/2008/05/05/tuaw-faceoff-screenshot-apps-on-the-firing-line/>, May 5, 2008, pp. 11.
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.
Wikipedia, “Multimap,” Jan. 1, 2013, https://en.wikipedia.org/w/index.php?title=Multimap&oldid=530800748.
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.
Xobni, “About Page, ” http://www.xobni.com/about/ printed Jun. 26, 2014 in 2 pages.
Xobni, “Blog,” http://blog.xobni.com/ printed Jun. 26, 2014 in 11 pages.
Xobni, http://www.xobni.com/ printed Jun. 26, 2014 in 5 pages.
Yahoo, <http://web.archive.org/web/20020124161606/http://finance.yahoo.com/q?s=%5eIXIC&d=c . . . > printed Mar. 6, 2012 in 2 pages.
Yang et al., “An Enhanced Routing Method with Dijkstra Algorithm and AHP Analysis in GIS-based Emergency Plan,” Geoinformatics, 2010 18th International Conference on, IEEE, Piscataway, New Jersey, Jun. 18, 2010, 6 pages.
Yang et al., “HTML Page Analysis Based on Visual Cues”, A129, pp. 859-864, 2001.
Zhao et al., “Entity Matching Across Heterogeneous Data Sources: An Approach Based on Constrained Cascade Generalization,” Data & Knowledge Engineering, vol. 66, No. 3, Sep. 2008, pp. 368-381.
International Search Report and Written Opinion for Patent Application No. PCT/US2008/056439 dated Jun. 8, 2009.
International Search Report and Written Opinion for Patent Application No. PCT/US2008/077244 dated Nov. 28, 2008.
International Search Report and Written Opinion for Patent Application No. PCT/US2009/056700 dated Apr. 15, 2010.
International Search Report and Written Opinion for Patent Application No. PCT/US2009/056703 dated Mar. 15, 2010.
International Search Report and Written Opinion for Patent Application No. PCT/US2009/056705 dated Mar. 26, 2010.
International Search Report and Written Opinion for Patent Application No. PCT/US2009/056707 dated Mar. 2, 2010.
International Search Report and Written Opinion for Patent Application No. PCT/US2009/056738 dated Mar. 29, 2010.
International Search Report and Written Opinion for Patent Application No. PCT/US2009/056742 dated Apr. 19, 2010.
Notice of Acceptance for Australian Patent Application No. 2014250678 dated Oct. 7, 2015.
Notice of Allowance for U.S. Appl. No. 12/556,318 dated Nov. 2, 2015.
Notice of Allowance for U.S. Appl. No. 13/196,788 dated Dec. 18, 2015.
Notice of Allowance for U.S. Appl. No. 13/826,228 dated Mar. 27, 2015.
Notice of Allowance for U.S. Appl. No. 13/922,212 dated Mar. 9, 2016.
Notice of Allowance for U.S. Appl. No. 14/102,394 dated Aug. 25, 2014.
Notice of Allowance for U.S. Appl. No. 14/108,187 dated Aug. 29, 2014.
Notice of Allowance for U.S. Appl. No. 14/135,289 dated Oct. 14, 2014.
Notice of Allowance for U.S. Appl. No. 14/148,568 dated Aug. 26, 2015.
Notice of Allowance for U.S. Appl. No. 14/149,608 dated Aug. 5, 2014.
Notice of Allowance for U.S. Appl. No. 14/192,767 dated Dec. 16, 2014.
Notice of Allowance for U.S. Appl. No. 14/225,084 dated May 4, 2015.
Notice of Allowance for U.S. Appl. No. 14/265,637 dated Feb. 13, 2015.
Notice of Allowance for U.S. Appl. No. 14/268,964 dated Dec. 3, 2014.
Notice of Allowance for U.S. Appl. No. 14/294,098 dated Dec. 29, 2014.
Notice of Allowance for U.S. Appl. No. 14/302,279 dated Apr. 5, 2016.
Notice of Allowance for U.S. Appl. No. 14/319,161 dated May 4, 2015.
Notice of Allowance for U.S. Appl. No. 14/323,935 dated Oct. 1, 2015.
Notice of Allowance for U.S. Appl. No. 14/326,738 dated Nov. 18, 2015.
Notice of Allowance for U.S. Appl. No. 14/473,552 dated Jul. 24, 2015.
Notice of Allowance for U.S. Appl. No. 14/473,860 dated Jan. 5, 2015.
Notice of Allowance for U.S. Appl. No. 14/479,863 dated Mar. 31, 2015.
Notice of Allowance for U.S. Appl. No. 14/486,991 dated May 1, 2015.
Notice of Allowance for U.S. Appl. No. 14/504,103 dated May 18, 2015.
Notice of Allowance for U.S. Appl. No. 14/552,336 dated Nov. 3, 2015.
Notice of Allowance for U.S. Appl. No. 14/616,080 dated Apr. 2, 2015.
Notice of Allowance for U.S. Appl. No. 14/746,671 dated Jan. 21, 2016.
Notice of Allowance for U.S. Appl. No. 14/923,364 dated May 6, 2016.
Notice of Allowance for U.S. Appl. No. 15/066,970 dated Jun. 29, 2016.
Official Communication for Australian Patent Application No. 2014201506 dated Feb. 27, 2015.
Official Communication for Australian Patent Application No. 2014201507 dated Feb. 27, 2015.
Official Communication for Australian Patent Application No. 2014201511 dated Feb. 27, 2015.
Official Communication for Australian Patent Application No. 2014202442 dated Mar. 19, 2015.
Official Communication for Australian Patent Application No. 2014203669 dated May 29, 2015.
Official Communication for Australian Patent Application No. 2014210604 dated Jun. 5, 2015.
Official Communication for Australian Patent Application No. 2014210614 dated Jun. 5, 2015.
Official Communication for Australian Patent Application No. 2014213553 dated May 7, 2015.
Official Communication for Australian Patent Application No. 2014250678 dated Jun. 17, 2015.
Official Communication for Canadian Patent Application No. 2846414 dated Apr. 13, 2016.
Official Communication for European Patent Application No. 08730336.8 dated Jun. 6, 2012.
Official Communication for European Patent Application No. 08839003.4 dated Aug. 14, 2012.
Official Communication for European Patent Application No. 09813700.3 dated Apr. 3, 2014.
Official Communication for European Patent Application No. 09813693.0 dated Apr. 8, 2014.
Official Communication for European Patent Application No. 13157474.1 dated May 28, 2013.
Official Communication for European Patent Application No. 14158861.6 dated Jun. 16, 2014.
Official Communication for European Patent Application No. 14158958.0 dated Jun. 3, 2014.
Official Communication for European Patent Application No. 14158977.0 dated Jun. 10, 2014.
Official Communication for European Patent Application No. 14158977.0 dated Apr. 16, 2015.
Official Communication for European Patent Application No. 14159418.4 dated Oct. 8, 2014.
Official Communication for European Patent Application No. 14159464.8 dated Jul. 31, 2014.
Official Communication for European Patent Application No. 14162372.8 dated Apr. 30, 2015.
Official Communication for European Patent Application No. 14180142.3 dated Feb. 6, 2015.
Official Communication for European Patent Application No. 14180281.9 dated Jan. 26, 2015.
Official Communication for European Patent Application No. 14180321.3 dated Apr. 17, 2015.
Official Communication for European Patent Application No. 14180432.8 dated Jun. 23, 2015.
Official Communication for European Patent Application No. 14186225.0 dated Feb. 13, 2015.
Official Communication for European Patent Application No. 14187739.9 dated Jul. 6, 2015.
Official Communication for European Patent Application No. 14187996.5 dated Feb. 12, 2015.
Official Communication for European Patent Application No. 14189344.6 dated Feb. 20, 2015.
Official Communication for European Patent Application No. 14189347.9 dated Mar. 4, 2015.
Official Communication for European Patent Application No. 14189802.3 dated May 11, 2015.
Official Communication for European Patent Application No. 14191540.5 dated May 27, 2015.
Official Communication for European Patent Application No. 14197879.1 dated Apr. 28, 2015.
Official Communication for European Patent Application No. 14197895.7 dated Apr. 28, 2015.
Official Communication for European Patent Application No. 14197938.5 dated Apr. 28, 2015.
Official Communication for European Patent Application No. 14199182.8 dated Mar. 13, 2015.
Official Communication for European Patent Application No. 14200246.8 dated May 29, 2015.
Official Communication for European Patent Application No. 14200298.9 dated May 13, 2015.
Official Communication for European Patent Application No. 15155845.9 dated Oct. 6, 2015.
Official Communication for European Patent Application No. 15155846.7 dated Jul. 8, 2015.
Official Communication for European Patent Application No. 15165244.3 dated Aug. 27, 2015.
Official Communication for European Patent Application No. 15175106.2 dated Nov. 5, 2015.
Official Communication for European Patent Application No. 15175151.8 dated Nov. 25, 2015.
Official Communication for European Patent Application No. 15181419.1 dated Sep. 29, 2015.
Official Communication for European Patent Application No. 15183721.8 dated Nov. 23, 2015.
Official Communication for European Patent Application No. 15184764.7 dated Dec. 14, 2015.
Official Communication for Great Britain Patent Application No. 1318666.3 dated Mar. 25, 2014.
Official Communication for Great Britain Patent Application No. 1318667.1 dated Mar. 28, 2014.
Official Communication for Great Britain Patent Application No. 1404457.2 dated Aug. 14, 2014.
Official Communication for Great Britain Patent Application No. 1404486.1 dated May 21, 2015.
Official Communication for Great Britain Patent Application No. 1404486.1 dated Aug. 27, 2014.
Official Communication for Great Britain Patent Application No. 1404489.5 dated May 21, 2015.
Official Communication for Great Britain Patent Application No. 1404489.5 dated Aug. 27, 2014.
Official Communication for Great Britain Patent Application No. 1404499.4 dated Jun. 11, 2015.
Official Communication for Great Britain Patent Application No. 1404499.4 dated Aug. 20, 2014.
Official Communication for Great Britain Patent Application No. 1408025.3 dated Nov. 6, 2014.
Official Communication for Great Britain Patent Application No. 1411984.6 dated Dec. 22, 2014.
Official Communication for Great Britain Patent Application No. 1413935.6 dated Jan. 27, 2015.
Official Communication for Netherlands Patent Application No. 2012417 dated Sep. 18, 2015.
Official Communication for Netherlands Patent Application No. 2012421 dated Sep. 18, 2015.
Official Communication for Netherlands Patent Application No. 2012436 dated Nov. 6, 2015.
Official Communication for Netherlands Patent Application No. 2012438 dated Sep. 21, 2015.
Official Communication for Netherlands Patent Application No. 2013134 dated Apr. 20, 2015.
Official Communication for Netherlands Patent Application No. 2013306 dated Apr. 24, 2015.
Official Communication for New Zealand Patent Application No. 616212 dated May 7, 2014.
Official Communication for New Zealand Patent Application No. 616212 dated Oct. 9, 2013.
Official Communication for New Zealand Patent Application No. 622389 dated Mar. 20, 2014.
Official Communication for New Zealand Patent Application No. 622404 dated Mar. 20, 2014.
Official Communication for New Zealand Patent Application No. 622439 dated Mar. 24, 2014.
Official Communication for New Zealand Patent Application No. 622439 dated Jun. 6, 2014.
Official Communication for New Zealand Patent Application No. 622473 dated Jun. 19, 2014.
Official Communication for New Zealand Patent Application No. 622473 dated Mar. 27, 2014.
Official Communication for New Zealand Patent Application No. 622513 dated Apr. 3, 2014.
Official Communication for New Zealand Patent Application No. 622517 dated Apr. 3, 2014.
Official Communication for New Zealand Patent Application No. 623323 dated Apr. 17, 2014.
Official Communication for New Zealand Patent Application No. 623323 dated Jun. 6, 2014.
Official Communication for New Zealand Patent Application No. 624557 dated May 14, 2014.
Official Communication for New Zealand Patent Application No. 627962 dated Aug. 5, 2014.
Official Communication for New Zealand Patent Application No. 628161 dated Aug. 25, 2014.
Official Communication for New Zealand Patent Application No. 628263 dated Aug. 12, 2014.
Official Communication for New Zealand Patent Application No. 628495 dated Aug. 19, 2014.
Official Communication for New Zealand Patent Application No. 628585 dated Aug. 26, 2014.
Official Communication for New Zealand Patent Application No. 628840 dated Aug. 28, 2014.
Official Communication for U.S. Appl. No. 12/210,947 dated Jul. 1, 2013.
Official Communication for U.S. Appl. No. 12/210,947 dated Aug. 19, 2014.
Official Communication for U.S. Appl. No. 12/210,947 dated Nov. 28, 2014.
Official Communication for U.S. Appl. No. 12/210,947 dated Apr. 8, 2011.
Official Communication for U.S. Appl. No. 12/210,980 dated Mar. 10, 2015.
Official Communication for U.S. Appl. No. 12/556,318 dated Jul. 2, 2015.
Official Communication for U.S. Appl. No. 12/556,321 dated Feb. 25, 2016.
Official Communication for U.S. Appl. No. 12/556,321 dated Oct. 6, 2016.
Official Communication for U.S. Appl. No. 12/556,321 dated Jul. 7, 2015.
Official Communication for U.S. Appl. No. 13/079,690 dated Sep. 11, 2013.
Official Communication for U.S. Appl. No. 13/079,690 dated Jan. 29, 2014.
Official Communication for U.S. Appl. No. 13/079,690 dated Mar. 5, 2015.
Official Communication for U.S. Appl. No. 13/196,788 dated Oct. 23, 2015.
Official Communication for U.S. Appl. No. 13/196,788 dated Nov. 25, 2015.
Official Communication for U.S. Appl. No. 13/218,238 dated Nov. 21, 2013.
Official Communication for U.S. Appl. No. 13/218,238 dated Oct. 25, 2013.
Official Communication for U.S. Appl. No. 13/218,238 dated Jul. 29, 2013.
Official Communication for U.S. Appl. No. 13/218,238 dated Jan. 6, 2014.
Official Communication for U.S. Appl. No. 13/247,987 dated Apr. 2, 2015.
Official Communication for U.S. Appl. No. 13/247,987 dated Sep. 22, 2015.
Official Communication for U.S. Appl. No. 13/657,635 dated Jul. 10, 2014.
Official Communication for U.S. Appl. No. 13/669,274 dated May 6, 2015.
Official Communication for U.S. Appl. No. 13/728,879 dated Mar. 17, 2015.
Official Communication for U.S. Appl. No. 13/799,535 dated Jul. 29, 2014.
Official Communication for U.S. Appl. No. 13/799,535 dated Feb. 3, 2014.
Official Communication for U.S. Appl. No. 13/827,491 dated Dec. 1, 2014.
Official Communication for U.S. Appl. No. 13/827,491 dated Jun. 22, 2015.
Official Communication for U.S. Appl. No. 13/827,491 dated Mar. 30, 2016.
Official Communication for U.S. Appl. No. 13/827,491 dated Oct. 9, 2015.
Official Communication for U.S. Appl. No. 13/835,688 dated Jun. 17, 2015.
Official Communication for U.S. Appl. No. 13/839,026 dated Aug. 4, 2015.
Official Communication for U.S. Appl. No. 13/922,212 dated Jan. 5, 2015.
Official Communication for U.S. Appl. No. 13/937,063 dated Apr. 22, 2016.
Official Communication for U.S. Appl. No. 14/141,252 dated Oct. 8, 2015.
Official Communication for U.S. Appl. No. 14/148,568 dated Oct. 22, 2014.
Official Communication for U.S. Appl. No. 14/148,568 dated Mar. 26, 2015.
Official Communication for U.S. Appl. No. 14/196,814 dated May 5, 2015.
Official Communication for U.S. Appl. No. 14/225,006 dated Sep. 10, 2014.
Official Communication for U.S. Appl. No. 14/225,006 dated Sep. 2, 2015.
Official Communication for U.S. Appl. No. 14/225,006 dated Dec. 21, 2015.
Official Communication for U.S. Appl. No. 14/225,006 dated Feb. 27, 2015.
Official Communication for U.S. Appl. No. 14/225,084 dated Sep. 11, 2015.
Official Communication for U.S. Appl. No. 14/225,084 dated Sep. 2, 2014.
Official Communication for U.S. Appl. No. 14/225,084 dated Feb. 20, 2015.
Official Communication for U.S. Appl. No. 14/225,084 dated Jan. 4, 2016.
Official Communication for U.S. Appl. No. 14/225,160 dated Feb. 11, 2015.
Official Communication for U.S. Appl. No. 14/225,160 dated Aug. 12, 2015.
Official Communication for U.S. Appl. No. 14/225,160 dated May 20, 2015.
Official Communication for U.S. Appl. No. 14/225,160 dated Oct. 22, 2014.
Official Communication for U.S. Appl. No. 14/225,160 dated Jul. 29, 2014.
Official Communication for U.S. Appl. No. 14/265,637 dated Nov. 18, 2014.
Official Communication for U.S. Appl. No. 14/265,637 dated Sep. 26, 2014.
Official Communication for U.S. Appl. No. 14/268,964 dated Sep. 3, 2014.
Official Communication for U.S. Appl. No. 14/289,596 dated Jul. 18, 2014.
Official Communication for U.S. Appl. No. 14/289,596 dated Jan. 26, 2015.
Official Communication for U.S. Appl. No. 14/289,596 dated Apr. 30, 2015.
Official Communication for U.S. Appl. No. 14/289,599 dated Jul. 22, 2014.
Official Communication for U.S. Appl. No. 14/289,599 dated May 29, 2015.
Official Communication for U.S. Appl. No. 14/289,599 dated Sep. 4, 2015.
Official Communication for U.S. Appl. No. 14/294,098 dated Aug. 15, 2014.
Official Communication for U.S. Appl. No. 14/294,098 dated Nov. 6, 2014.
Official Communication for U.S. Appl. No. 14/302,279 dated Sep. 24, 2015.
Official Communication for U.S. Appl. No. 14/306,138 dated Sep. 14, 2015.
Official Communication for U.S. Appl. No. 14/306,138 dated Feb. 18, 2015.
Official Communication for U.S. Appl. No. 14/306,138 dated Sep. 23, 2014.
Official Communication for U.S. Appl. No. 14/306,138 dated Dec. 24, 2015.
Official Communication for U.S. Appl. No. 14/306,138 dated May 26, 2015.
Official Communication for U.S. Appl. No. 14/306,138 dated Dec. 3, 2015.
Official Communication for U.S. Appl. No. 14/306,147 dated Feb. 19, 2015.
Official Communication for U.S. Appl. No. 14/306,147 dated Dec. 24, 2015.
Official Communication for U.S. Appl. No. 14/306,147 dated Aug. 7, 2015.
Official Communication for U.S. Appl. No. 14/306,147 dated Sep. 9, 2014.
Official Communication for U.S. Appl. No. 14/306,154 dated Mar. 11, 2015.
Official Communication for U.S. Appl. No. 14/306,154 dated May 15, 2015.
Official Communication for U.S. Appl. No. 14/306,154 dated Nov. 16, 2015.
Official Communication for U.S. Appl. No. 14/306,154 dated Jul. 6, 2015.
Official Communication for U.S. Appl. No. 14/306,154 dated Sep. 9, 2014.
Official Communication for U.S. Appl. No. 14/319,161 dated Jan. 23, 2015.
Official Communication for U.S. Appl. No. 14/319,765 dated Sep. 10, 2015.
Official Communication for U.S. Appl. No. 14/319,765 dated Jun. 16, 2015.
Official Communication for U.S. Appl. No. 14/319,765 dated Nov. 25, 2014.
Official Communication for U.S. Appl. No. 14/319,765 dated Feb. 4, 2015.
Official Communication for U.S. Appl. No. 14/323,935 dated Jun. 22, 2015.
Official Communication for U.S. Appl. No. 14/323,935 dated Nov. 28, 2014.
Official Communication for U.S. Appl. No. 14/323,935 dated Mar. 31, 2015.
Official Communication for U.S. Appl. No. 14/326,738 dated Dec. 2, 2014.
Official Communication for U.S. Appl. No. 14/326,738 dated Jul. 31, 2015.
Official Communication for U.S. Appl. No. 14/326,738 dated Mar. 31, 2015.
Official Communication for U.S. Appl. No. 14/451,221 dated Oct. 21, 2014.
Official Communication for U.S. Appl. No. 14/463,615 dated Sep. 10, 2015.
Official Communication for U.S. Appl. No. 14/463,615 dated Nov. 13, 2014.
Official Communication for U.S. Appl. No. 14/463,615 dated May 21, 2015.
Official Communication for U.S. Appl. No. 14/463,615 dated Jan. 28, 2015.
Official Communication for U.S. Appl. No. 14/463,615 dated Dec. 9, 2015.
Official Communication for U.S. Appl. No. 14/473,552 dated Feb. 24, 2015.
Official Communication for U.S. Appl. No. 14/479,863 dated Dec. 26, 2014.
Official Communication for U.S. Appl. No. 14/483,527 dated Jun. 22, 2015.
Official Communication for U.S. Appl. No. 14/483,527 dated Jan. 28, 2015.
Official Communication for U.S. Appl. No. 14/483,527 dated Oct. 28, 2015.
Official Communication for U.S. Appl. No. 14/486,991 dated Mar. 10, 2015.
Official Communication for U.S. Appl. No. 14/490,612 dated Aug. 18, 2015.
Official Communication for U.S. Appl. No. 14/504,103 dated Mar. 31, 2015.
Official Communication for U.S. Appl. No. 14/504,103 dated Feb. 5, 2015.
Official Communication for U.S. Appl. No. 14/516,386 dated Feb. 24, 2016.
Official Communication for U.S. Appl. No. 14/516,386 dated Apr. 27, 2017.
Official Communication for U.S. Appl. No. 14/516,386 dated Jun. 30, 2016.
Official Communication for U.S. Appl. No. 14/516,386 dated Nov. 4, 2016.
Official Communication for U.S. Appl. No. 14/552,336 dated Jul. 20, 2015.
Official Communication for U.S. Appl. No. 14/562,524 dated Nov. 10, 2015.
Official Communication for U.S. Appl. No. 14/562,524 dated Sep. 14, 2015.
Official Communication for U.S. Appl. No. 14/562,524 dated Feb. 18, 2016.
Official Communication for U.S. Appl. No. 14/571,098 dated Nov. 10, 2015.
Official Communication for U.S. Appl. No. 14/571,098 dated Mar. 11, 2015.
Official Communication for U.S. Appl. No. 14/571,098 dated Aug. 24, 2015.
Official Communication for U.S. Appl. No. 14/571,098 dated Aug. 5, 2015.
Official Communication for U.S. Appl. No. 14/579,752 dated Aug. 19, 2015.
Official Communication for U.S. Appl. No. 14/579,752 dated May 26, 2015.
Official Communication for U.S. Appl. No. 14/618,213 dated May 16, 2017.
Official Communication for U.S. Appl. No. 14/631,633 dated Sep. 10, 2015.
Official Communication for U.S. Appl. No. 14/639,606 dated Oct. 16, 2015.
Official Communication for U.S. Appl. No. 14/639,606 dated May 18, 2015.
Official Communication for U.S. Appl. No. 14/639,606 dated Jul. 24, 2015.
Official Communication for U.S. Appl. No. 14/676,621 dated Oct. 29, 2015.
Official Communication for U.S. Appl. No. 14/676,621 dated Jul. 30, 2015.
Official Communication for U.S. Appl. No. 14/715,834 dated Apr. 13, 2016.
Official Communication for U.S. Appl. No. 14/715,834 dated Jun. 28, 2016.
Official Communication for U.S. Appl. No. 14/715,834 dated Feb. 29, 2016.
Official Communication for U.S. Appl. No. 14/726,211 dated Apr. 5, 2016.
Official Communication for U.S. Appl. No. 14/726,353 dated Sep. 10, 2015.
Official Communication for U.S. Appl. No. 14/746,671 dated Nov. 12, 2015.
Official Communication for U.S. Appl. No. 14/800,447 dated Dec. 10, 2015.
Official Communication for U.S. Appl. No. 14/813,749 dated Sep. 28, 2015.
Official Communication for U.S. Appl. No. 14/816,599 dated Dec. 22, 2016.
Official Communication for U.S. Appl. No. 14/816,599 dated May 31, 2017.
Official Communication for U.S. Appl. No. 14/842,734 dated Nov. 19, 2015.
Official Communication for U.S. Appl. No. 14/923,374 dated May 23, 2016.
Official Communication for U.S. Appl. No. 14/923,374 dated Feb. 9, 2016.
Official Communication for U.S. Appl. No. 15/017,324 dated Apr. 22, 2016.
Restriction Requirement for U.S. Appl. No. 13/839,026 dated Apr. 2, 2015.
International Search Report and Written Opinion for Patent Application No. PCT/US2009/056700 dated Apr. 19, 2010.
Notice of Allowance for U.S. Appl. No. 14/516,386 dated Sep. 1, 2017.
Notice of Allowance for U.S. Appl. No. 14/715,834 dated Sep. 27, 2017.
Notice of Allowance for U.S. Appl. No. 15/144,602 dated Sep. 7, 2017.
Official Communication for European Patent Application No. 12181585.6 dated Sep. 4, 2015.
Official Communication for European Patent Application No. 12181585.6 dated Jan. 7, 2013.
Official Communication for European Patent Application No. 14158861.6 dated Nov. 2, 2016.
Official Communication for European Patent Application No. 14158958.0 dated Apr. 16, 2015.
Official Communication for European Patent Application No. 15159520.4 dated Jul. 20, 2016.
Official Communication for New Zealand Patent Application No. 616299 dated Oct. 9, 2013.
Official Communication for U.S. Appl. No. 12/556,321 dated Jun. 30, 2017.
Official Communication for U.S. Appl. No. 14/562,420 dated Jul. 3, 2017.
Official Communication for U.S. Appl. No. 14/618,213 dated Oct. 24, 2017.
Official Communication for U.S. Appl. No. 14/715,834 dated Aug. 28, 2017.
Related Publications (1)
Number Date Country
20160335342 A1 Nov 2016 US
Provisional Applications (1)
Number Date Country
61955054 Mar 2014 US
Continuations (3)
Number Date Country
Parent 15066970 Mar 2016 US
Child 15220021 US
Parent 14581902 Dec 2014 US
Child 15066970 US
Parent 14254773 Apr 2014 US
Child 14581902 US