Easy To Use Patents Search & Patent Lawyer Directory

At Patents you can conduct a Patent Search, File a Patent Application, find a Patent Attorney, or search available technology through our Patent Exchange. Patents are available using simple keyword or date criteria. If you are looking to hire a patent attorney, you've come to the right place. Protect your idea and hire a patent lawyer.


Search All Patents:



  This Patent May Be For Sale or Lease. Contact Us

  Is This Your Patent? Claim This Patent Now.



Register or Login To Download This Patent As A PDF




United States Patent Application 20170286837
Kind Code A1
LIGHTNER; Scott ;   et al. October 5, 2017

METHOD OF AUTOMATED DISCOVERY OF NEW TOPICS

Abstract

The present disclosure relates to a method for performing automated discovery of new topics from unlimited documents related to any subject domain, employing a multi-component extension of Latent Dirichlet Allocation (MC-LDA) topic models, to discover related topics in a corpus. The resulting data may contain millions of term vectors from any subject domain identifying the most distinguished co-occurring topics that users may be interested in, for periodically building new topic ID models using new content, which may be employed to compare one by one with existing model to measure the significance of changes, using term vectors differences with no correlation with a Periodic New Model, for periodic updates of automated discovery of new topics, which may be used to build a new topic ID model in-memory database to allow query-time linking on massive data-set for automated discovery of new topics.


Inventors: LIGHTNER; Scott; (Leesburg, VA) ; WECKESSER; Franz; (Spring Valley, OH) ; BODDHU; Sanjay; (Dayton, OH) ; FLAGG; Robert; (Portland, ME)
Applicant:
Name City State Country Type

QBASE, LLC

Reston

VA

US
Family ID: 1000002683179
Appl. No.: 15/489560
Filed: April 17, 2017


Related U.S. Patent Documents

Application NumberFiling DatePatent Number
14919631Oct 21, 20159626623
15489560
14873635Oct 2, 2015
14919631
14558076Dec 2, 20149177262
14873635
61910763Dec 2, 2013

Current U.S. Class: 1/1
Current CPC Class: G06N 5/022 20130101; G06F 17/20 20130101; G06F 17/2705 20130101; G06N 99/005 20130101; G06F 17/30598 20130101; G06N 5/04 20130101; G06F 17/30011 20130101
International Class: G06N 5/02 20060101 G06N005/02; G06N 99/00 20060101 G06N099/00; G06F 17/30 20060101 G06F017/30; G06N 5/04 20060101 G06N005/04; G06F 17/20 20060101 G06F017/20; G06F 17/27 20060101 G06F017/27

Claims



1. A computer-implemented method comprising: extracting, by a computer, from a document corpus, data associated with a plurality of co-occurring topics; in response to extracting the data associated with the plurality of co-occurring topics, extracting, by the computer, a plurality of topic identifiers from the plurality of co-occurring topics; generating, by the computer, a periodic topic model comprising a set of one or more term vectors by comparing topic significance among the plurality of topic identifiers; periodically creating, by the computer, new topic ID models using data content in the periodic topic model by identifying a similarity of topics; generating, by the computer, fuzzy keys for the new topic ID models; and indexing, by the computer, data in the new topic ID models based on the fuzzy keys for non-exclusionary searching and automated discovery of new topics.

2. The computer-implemented method of claim 1, further comprising identifying, by the computer, in one or more document corpora of a data source, a topic of interest based upon one or more concurring topics identified in the one or more document corpora.

3. The computer-implemented method of claim 2, further comprising automatically extracting, by the computer, from the document corpus, data associated with the plurality of co-occurring topics based on the topic of interest.

4. The computer-implemented method of claim 1, further comprising determining, by the computer, a relationship of corresponding term vectors from the plurality of co-occurring topics, each co-occurring topic of the plurality of co-occurring topics containing one or more term vectors.

5. The computer-implemented method of claim 4, further comprising generating, by the computer, a master topic computer model comprising a first set of one or more term vectors identified in text of the document corpus upon determining the relationship of the corresponding term vectors from the plurality of co-occurring topics.

6. The computer-implemented method of claim 5, further comprising selecting, by the computer, one or more new topics by identifying one or more term vectors from the set of the one or more term vectors in the periodic new topic computer model that has no correlation with the first set of one or more term vectors in the master topic computer model.

7. The computer-implemented method of claim 5, further comprising adding, via the computer, the one or more new topics to the master topic computer model.

8. The computer-implemented method of claim 1, wherein comparing the topic significance among the plurality of topic identifiers is based on a predetermined significance threshold.

9. The computer-implemented method of claim 5, wherein the master topic computer model is a multi-component extension of a Latent Dirichlet Allocation (MC-LDA) topic model.

10. The computer-implemented method of claim 1, wherein the periodic new topic computer model is a multi-component extension of a Latent Dirichlet Allocation (MC-LDA) topic model.

11. The computer-implemented method of claim 1, wherein the set of the one or more term vectors in the periodic new topic computer model corresponds to a second set of the one or more term vectors.

12. A system comprising: a database source computer module configured to store a document corpus; and one or more computers comprising one or more processors configured to: extract from the document corpus, data associated with a plurality of co-occurring topics; extract a plurality of topic identifiers from the plurality of co-occurring topics in response to extracting the data associated with the plurality of co-occurring topics; generate a periodic topic model comprising a set of one or more term vectors by comparing topic significance among the plurality of topic identifiers; periodically create new topic ID models using data content in the periodic topic model by identifying a similarity of topics; generate fuzzy keys for the new topic ID models; and index data in the new topic ID models based on the fuzzy keys for non-exclusionary searching and automated discovery of new topics.

13. The system of claim 12, wherein the one or more computers are further configured to identify in one or more document corpora of a data source, a topic of interest based upon one or more concurring topics identified in the one or more document corpora.

14. The system of claim 13, wherein the one or more computers are further configured to automatically extract from the document corpus, data associated with the plurality of co-occurring topics based on the topic of interest.

15. The system of claim 12, wherein the one or more computers are further configured to determine a relationship of corresponding term vectors from the plurality of co-occurring topics, each co-occurring topic of the plurality of co-occurring topics containing one or more term vectors.

16. The system of claim 15, wherein the one or more computers are further configured to generate a master topic computer model comprising a first set of one or more term vectors identified in text of the document corpus upon determining the relationship of the corresponding term vectors from the plurality of co-occurring topics.

17. The system of claim 16, wherein the one or more computers are further configured to select one or more new topics by identifying one or more term vectors from the set of the one or more term vectors in the periodic new topic computer model that has no correlation with the first set of one or more term vectors in the master topic computer model.

18. The system of claim 16, wherein the one or more computers are further configured to add the one or more new topics to the master topic computer model.

19. The system of claim 12, wherein comparing the topic significance among the plurality of topic identifiers is based on a predetermined significance threshold.

20. The system of claim 16, wherein the master topic computer model is a multi-component extension of a Latent Dirichlet Allocation (MC-LDA) topic model, and wherein the periodic new topic computer model is a multi-component extension of a Latent Dirichlet Allocation (MC-LDA) topic model.
Description



CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application is a continuation of U.S. patent application Ser. No. 14/919,631, entitled "Method of Automated Discovery of New Topics," filed Oct. 21, 2015, which is a continuation of U.S. patent application Ser. No. 14/873,635, entitled "Method of Automated Discovery of New Topics," filed Oct. 2, 2015, which is a continuation of U.S. patent application Ser. No. 14/558,076, entitled "Method for Automated Discovery of New Topics," filed on Dec. 2, 2014, now U.S. Pat. No. 9,177,262, issued on Nov. 3, 2015, which is a non-provisional patent application that claims the benefit of U.S. Provisional Application No. 61/910,763, entitled "Method for Automated Discovery of New Topics," filed Dec. 2, 2013, each of which are hereby incorporated by reference herein in their entirety.

[0002] This application is related to U.S. application Ser. No. 14/557,794, entitled "Method for Disambiguating Features in Unstructured Text," filed Dec. 2, 2014; U.S. application Ser. No. 14/558,300, entitled "Event Detection Through Text Analysis Using Trained Event Template Models," filed Dec. 2, 2014; and U.S. application Ser. No. 14/557,906, entitled "Method of Automated Discovery of Topic Relatedness," filed Dec. 2, 2014; each of which are hereby incorporated by reference in their entirety.

FIELD OF THE DISCLOSURE

[0003] The present disclosure relates in general to data storage and more specifically to a method for performing automated discovery of new topics in a corpus.

BACKGROUND

[0004] As storage and availability of data grows, a large amount of time is spent identifying data relationships for discovery of new topics. Conventionally, the discovery of new topics is oftentimes performed manually by repetitive work leading to wasting valuable time of users.

[0005] Information can have great value. Assembling and maintaining a database to store information involves real costs, such as the costs to acquire information, the costs associated with physical assets used to house, secure, and make the information available, and labor costs to manage the information.

[0006] As computer processors are becoming more powerful, it would be particularly useful to save the time that an individual conventionally spends discovering new topics and identifying relationship criteria with existing models, or between the source and the target.

[0007] Oftentimes there are simple transformations, or complex topic identification across a large corpus of documents from any subject domain, requiring a lot of user's time for discovery of relationships associated with existing data.

[0008] Thus, there is a need for a simple and flexible method which assists users in connection with performing automated discovery of new topics, employing a new topic database for comparison with the existing topics for new application environments.

SUMMARY

[0009] Embodiments of the present disclosure provide a method for performing automated discovery of new topics from unlimited documents related to any subject domain, employing a multi-component extension of Latent Dirichlet Allocation (MC-LDA) topic models, to discover related topics in a corpus. The resulting data may contain millions of term vectors from any subject domain identifying the most distinguished co-occurring topics that users may be interested in, which may be employed to create a Master Topic Model.

[0010] In accordance with one aspect of the present disclosure, the method for automated discovery of new topics may include multiple topic identification models with different number of term vectors and other parameters. For example a topic identification model with 64 term vectors may provide a broader topic scope, while models with 256, 1024, or 16K term vectors may provide more specific fine-grained topics.

[0011] According to another embodiment, a new data may contain a large number of entities/topics in a database, which may be used periodically to parse and extract data from topics that users may be interested in. This method may identify term vectors to change detection using term vector differences with no correlation in the Master Topic Model to compare and measure the significance of these changes, based on established thresholds to identify the similarity of the topics found by comparing one by one with topics from Periodic New model.

[0012] The present disclosure may provide a method for automated discovery of new topics in a corpus, using new content and comparing it to the existing model for periodically building new topic ID model database compressed into the smallest memory footprint possible, for providing fuzzy indexing to allow query-time linking on massive data sets, providing reliability and fault-tolerance through data, which may prevent software and hardware redundancy.

[0013] In one embodiment, a method comprises automatically extracting, by a database source computer, from a document corpus, data associated with a plurality of co-occurring topics; in response to automatically extracting the plurality of co-occurring topics, extracting, by a synchronizing framework computer, a plurality of topic identifies from the plurality of co-occurring topics; creating, by the synchronizing framework computer, a master topic computer model for the document corpus from a first plurality of term vectors; creating, by the synchronizing framework computer, a periodic new topic computer model by comparing topic significance among the plurality of topic identifiers, the periodic new topic computer model including a second plurality of term vectors; and selecting, by the synchronizing framework computer, one or more new topics by identifying one or more term vectors from the second plurality of term vectors in the periodic new topic computer model that have no correlation with the first plurality of term vectors in the master topic computer model.

[0014] In another embodiment, a system comprises a database source computer module configured to extract data associated with a plurality of co-occurring topics in a document corpus; and a synchronizing framework computer module configured to: (a) extract a plurality of topic identifies from the plurality of co-occurring topics; (b) create a master topic computer model for the document corpus from a first plurality of term vectors; (c) create a periodic new topic computer model by comparing topic significance among the plurality of topic identifiers, the periodic new topic computer model including a second plurality of term vectors; and (d) select one or more new topics by identifying one or more term vectors from the second plurality of term vectors in the periodic new topic computer model that have no correlation with the first plurality of term vectors in the master topic computer model.

[0015] In another embodiment, a non-transitory computer readable medium having stored thereon computer executable instructions executed by a processor comprises automatically extracting, by a processor executing a database source computer module, from a document corpus data associated with a plurality of co-occurring topics; in response to automatically extracting the plurality of co-occurring topics, extracting, by the processor executing a synchronizing framework computer module, a plurality of topic identifies from the plurality of co-occurring topics; creating, by the processor executing the synchronizing framework computer, a master topic computer model for the document corpus from a first plurality of term vectors; creating, by the processor executing the synchronizing framework computer, a periodic new topic computer model by comparing topic significance among the plurality of topic identifiers, the periodic new topic computer model including a second plurality of term vectors; and selecting, by the processor executing the synchronizing framework computer, one or more new topics by identifying one or more term vectors from the second plurality of term vectors in the periodic new topic computer model that have no correlation with the first plurality of term vectors in the master topic computer model.

[0016] Numerous other aspects, features, and benefits of the present disclosure may be made apparent from the following detailed description taken together with the drawing features.

BRIEF DESCRIPTION OF THE DRAWINGS

[0017] The present disclosure can be better understood by referring to the following figures. The components in the figures are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the disclosure. In the figures, reference numerals designate corresponding parts throughout the different views.

[0018] FIG. 1 is a diagram illustrating a system for automated discovery of new topics, according to an exemplary embodiment.

[0019] FIG. 2 is an exemplary flowchart of a computer executed method for automated discovery of new topics, according to an exemplary embodiment.

[0020] FIG. 3 is a diagram illustrating an embodiment of a directed graphical representation of a multi-component, conditionally-independent Latent Dirichlet Allocation (MC-LDA) topic model executed by one or more special purpose computer modules of FIG. 1, according to an exemplary embodiment.

DETAILED DESCRIPTION

[0021] The present disclosure is here described in detail with reference to embodiments illustrated in the drawings, which form a part hereof. Other embodiments may be used and/or other changes may be made without departing from the spirit or scope of the present disclosure. The illustrative embodiments described in the detailed description are not meant to be limiting of the subject matter presented herein.

[0022] Glossary of Terms

[0023] As used herein, the following terms have the following definitions:

[0024] "Parse" refers to analyzing the source code of a computer program to make sure that it is structurally correct before it is compiled and turned into machine code.

[0025] "Term vector" refers to an algebraic model for representing text documents (and any objects, in general) as vectors of identifiers, such as, for example, index terms. It is used in information filtering, information retrieval, indexing, and relevancy rankings.

[0026] "Database" refers to any system including any combination of clusters and modules suitable for storing one or more collections and suitable to process one or more queries.

[0027] "Document" refers to a discrete electronic representation of information having a start and end.

[0028] "Multi-Document" refers to a document with its tokens, different types of named entities, and key phrases organized into separate "bag-of-surface-forms" components.

[0029] "Corpus" refers to a collection of one or more documents.

[0030] "Feature" refers to any information which is at least partially derived from a document.

[0031] "Cluster" refers to a collection of features.

[0032] "Memory" refers to any hardware component suitable for storing information and retrieving said information at a sufficiently high speed.

[0033] "Module" refers to a computer software and/or hardware component suitable for carrying out one or more defined tasks.

[0034] "Topic" refers to a set of thematic information which is at least partially derived from a corpus.

[0035] "Query" refers to a request to retrieve information from one or more suitable databases.

[0036] Description of Exemplary Embodiments

[0037] Various aspects of the present disclosure describe a system and method for automated discovery of new topics in a corpus based on a concept of co-occurring topics from different pre-built topic models. These different topic models are built with different levels of granularity of topics, vocabulary and converging parameters, thus providing a vertical hierarchy/scalability over a specific domain of interest. Embodiments of the present disclosure extend the conventional LDA topic modeling to support multi component LDA, where each component is treated as conditionally-independent, given document topic proportions. These components can include features like terms, key phrases, entities, facts, among others. Thus, this approach provides a concept of horizontal scalability of the topic models over a specific domain. The combination of the vertical vocabulary and horizontal feature selection in the pre-built topic models, provides varied dimensions of co-occurring topics, which on appropriate clustering and differential training via MEMDB can produce new topics. These new topics would not exists in the pre-built topic models to begin with, but could be discovered by running the documents in parallel across all the pre-built topic models.

[0038] Embodiments of the present disclosure describe a computer executed method for automated discovery of new topics that may facilitate the automated determination of relationships of corresponding term vectors from any subject domain identifying the most distinguished co-occurring topics that users may be interested in, which may be employed to create a Master Topic Model.

[0039] According to an embodiment, a term vector component may be a search component configured to return information about documents. In the term vector space model of information retrieval, the documents are modeled as vectors in a high-dimensional space of millions of terms. The terms are derived from words and phrases in the document, which are weighted by their importance within the document and within the corpus of documents. Each document's vector seeks to represent the document in a "vector space," allowing comparison with vectors derived from other sources, for example, queries, or other documents. Term vectors may be used as the basis of successful algorithms for document ranking, document filtering, document clustering, and relevance feedback.

[0040] The embodiments recite a procedure for automated discovery of new topics in a corpus based on a concept of co-occurring topics from different pre-built topic models. These different topic models are built with different levels of granularity of topics, vocabulary, and converging parameters, thereby providing a vertical hierarchy/scalability over a specific domain of interest. The embodiments can extend LDA topic modeling to support multi-component LDA, where each component is treated as conditionally-independent, given document topic proportions. These components can include features, such as terms, key phrases, entities, facts, etc. Thus, this approach can provide a concept of horizontal scalability of the topic models over a specific domain. The combination of the vertical vocabulary and horizontal feature selection in the pre-built topic models provides varied dimensions of co-occurring topics, which on appropriate clustering and differential training via an in-memory database can produce new topics. These new topics would not exist in the pre-built topic models, to begin with, but could be discovered by running the documents in parallel across all the pre-built topic models.

[0041] A System for Automated Discovery of New Topics

[0042] FIG. 1 illustrates a simplified block diagram of a system architecture 100 configured for automated discovery of new topics, from millions of documents related to any subject domain utilizing a Multi-Component Latent Dirichlet Allocation (MC-LDA) topic computer model, or similar suitable process to discover related topics in a corpus for periodically building new topic ID models, using new content and comparing it to the existing model.

[0043] In accordance with one aspect of the present disclosure, the system for automated discovery of new topics may include one or more central servers having a plurality of special purpose software and hardware computer modules, including a database source module 102 which may contain a large number of entities/topics that users may be interested in. The resulting data may contain a large number of term vectors from any subject domain identifying the most distinguished co-occurring topics that users may be interested in, which may be employed to implement a Master Topic Model computer module 104.

[0044] Although the system architecture 100 includes a single database source module 102 and a single destination in-memory database module 112, it is to be understood and appreciated that the novel functionality of a system and method for automatic discovery of new topics may be employed with any number of sources and/or destination components, which may be remotely located and accessed.

[0045] Embodiments of the present disclosure may be directed to a system and method for automated discovery of new topics, which may include multiple topic identification models with different numbers of term vectors and other parameters. For example, a topic identification model with 64 term vectors may provide a broader topic scope, while models with 256, 1024, or 16K term vectors may provide more specific fine-grained topics. Each topic or document may be analyzed on co-occurring topics across models to discover related topics characterized by a particular set of term vectors, making each individual word exchangeable, having good probabilities of generating new term vectors facilitating the automated discovery of new topics.

[0046] According to principles of the present disclosure, the system and method for automated discovery of new topics periodically may use new data in the database source module 102 to select data of interest or item feature.

[0047] This information may be used periodically to parse and extract data from topics that users may be interested in, to compare all term vectors from Master Topic Model module 104 with no correlation with term vectors of Periodic New Model module 106 employing a Detector of Term Vector Differences module 108. The system measures the significances of the changes by comparing each term vector one by one, selecting the more specific term vectors that do not correlate or have similarities with Master Topic Model 104, employing different methods or any suitable method existing for this type of comparison.

[0048] An embodiment of the present disclosure may include a synchronization frame work computer module 110 which may be a framework of data collection interfaces that may communicate with database source computer module 102 and pull data items that may contain relevant information to a project. Employing this process may generate a new set of topics to produce from zero to unlimited number of topics, which may be added to Master Topic Model 104 for periodical updates of automated discovery of new topics in a corpus, using the new content and comparing it to the existing model for periodical building of new topic ID model in-memory database 112. The in-memory database 112 may be compressed into the smallest memory footprint possible for providing fuzzy indexing to allow query-time linking on massive data-sets, providing reliability and fault tolerance through data for automated discovery of new topics in a corpus.

[0049] The actual software code or specialized control hardware used to implement these systems, modules and methods are not limiting the invention. Thus, the operation and behavior of the systems, modules and methods were described without reference to the specific software code, being understood that software and control hardware may be designed to implement the systems, modules and methods based on the description herein.

[0050] A Method for Automated Discovery of New Topics

[0051] FIG. 2 illustrates a flowchart 200 of an embodiment of the methodology for automated discovery of new topics in accordance with one aspect of the present disclosure. For purposes of simplicity of explanation, one or more methodologies shown in the form of a flowchart may be described as a series of steps. It is to be understood and appreciated that the subject disclosure is not limited by the order of the steps, as some steps may occur in accordance with the present disclosure or in a different order and/or concurrency with other steps shown and described here. For example, those skilled in the art may understand and appreciate the methodology which may be represented as a series of interrelated states or events, such as in a state diagram. Moreover, not all illustrated acts may be required to implement a methodology in accordance with the present disclosure.

[0052] As may be seen in FIG. 2 the method for automatic discovery of new topics, may initiate data extraction in step 202, which may be configured to allow for custom entity extraction workflows for automated discovery of new topics. In an embodiment, a database source module 102 may be used to parse and extract data 204 of most distinguished concurring topics that a user may be interested in, employing LDA or similar suitable method to discover topics in a corpus, which, in step 206, may be employed by the synchronizing framework module 110 (FIG. 1) to create a Master Topic Model. Term vectors may be used as the basis of successful algorithms for document ranking and filtering.

[0053] In step 208, the method may periodically run a new set of data to select topics of interest from a very large collection of co-occurring entities extracted from a document corpus of the targeted domain. This new data may be analyzed to discover a relationship between data elements. In addition, topic identifiers may be extracted to improve precision for creation of a Periodic New Model, step 210, using a Detector of Term Vectors Differences module 108 of the synchronizing framework module 110 to compare and measure the significance of topics based on established thresholds, for periodically building new topic ID models using new content to identify the similarity of topics found. In step 212, term vectors from Periodic New Model having no correlation with term vectors of Master Topic Model are identified, where all term vectors are compared one by one with topics from Master Topic Model. In step 214, all differences may change detection of term vector differences.

[0054] The next step 216 involves the addition of selected topics to Master Topic Model, which, in step 218, may be used to periodically build a new topics ID model to compress data into smallest memory possible configured to fit into in-memory database 112. In embodiments, the in-memory database 112 may have an advanced searching and imbedded record linking capabilities to provide fuzzy indexing, matching and match scores and non-exclusionary searching to provide in-database analytics and to allow query-time linking on massive data-set for automated discovery of new topics.

[0055] FIG. 3 illustrates an embodiment of a multi-component, conditionally-independent Latent Dirichlet Allocation (MC-LDA) topic model executed by a special purpose computer module, such as Topic Modules 104, 106 discussed above in connection with FIG. 1, and initialized in accordance with the set forth parameters. In the illustrated embodiment, the MC-LDA model computer module provides a computer executed framework for horizontal scalability to add different components based on varied features, including entities, facts, key-phrases, and terms.

[0056] In FIG. 3, [0057] J=number of multi-document components. [0058] V.sup.(j)=number of terms in the vocabulary of the jth component. [0059] D=number of documents. [0060] N=number of tokens in (a component) of a document (actually depends on both j and d). [0061] K=number of topics. [0062] .varies.=hyperparameter on the mixing proportions (K-vector or scalar if symmetric). [0063] n.sup.(j)=hyperparameter on the mixture proportions (V.sup.(j)-vector or scalar if symmetric). [0064] .theta..sub.d=the topic mixture proportion for document d. [0065] O.sub.k.sup.(j)=mixture component for the jth component of the kth topic. [0066] z(j)=mixture indicator that chooses the topic for the nth word in jth component of document d. [0067] d,n [0068] .omega..sub.d,n.sup.(j)=term indicator for the nth word in jth component of document d d n

[0069] The foregoing method descriptions and the process flow diagrams are provided merely as illustrative examples and are not intended to require or imply that the steps of the various embodiments must be performed in the order presented. As will be appreciated by one of skill in the art the steps in the foregoing embodiments may be performed in any order. Words such as "then," "next," etc. may not be intended to limit the order of the steps; these words are simply used to guide the reader through the description of the methods. Although process flow diagrams may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination may correspond to a return of the function to the calling function or the main function.

[0070] The various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.

[0071] Embodiments implemented in computer software may be implemented in software, firmware, middleware, microcode, hardware description languages, or any combination thereof. A code segment or machine-executable instructions may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.

[0072] The actual software code or specialized control hardware used to implement these systems and methods is not limiting of the invention. Thus, the operation and behavior of the systems and methods were described without reference to the specific software code being understood that software and control hardware can be designed to implement the systems and methods based on the description herein.

[0073] When implemented in software, the functions may be stored as one or more instructions or code on a non-transitory computer-readable or processor-readable storage medium. The steps of a method or algorithm disclosed herein may be embodied in a processor-executable software module which may reside on a computer-readable or processor-readable storage medium. A non-transitory computer-readable or processor-readable media includes both computer storage media and tangible storage media that facilitate transfer of a computer program from one place to another. A non-transitory processor-readable storage media may be any available media that may be accessed by a computer. By way of example, and not limitation, such non-transitory processor-readable media may comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other tangible storage medium that may be used to store desired program code in the form of instructions or data structures and that may be accessed by a computer or processor. Disk and disc, as used herein, include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media. Additionally, the operations of a method or algorithm may reside as one or any combination or set of codes and/or instructions on a non-transitory processor-readable medium and/or computer-readable medium, which may be incorporated into a computer program product.

[0074] The preceding description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the following claims and the principles and novel features disclosed.

* * * * *

File A Patent Application

  • Protect your idea -- Don't let someone else file first. Learn more.

  • 3 Easy Steps -- Complete Form, application Review, and File. See our process.

  • Attorney Review -- Have your application reviewed by a Patent Attorney. See what's included.