Abstract:
A system and method for identifying hidden connections among non-sentiment phrases are presented. The method includes identifying all connections among a plurality of non-sentiment phrases based on at least one proximity rule; determining direct connections among the identified connections, wherein each direct connection meets a predetermined correlation; filtering out the determined direct connections from the identified connections to yield hidden connections among the identified connections; analyzing the hidden connections to identify a common phrase, wherein the common phrase is associated with at least two hidden connections; generating a new hidden connection among the plurality of non-sentiment phrases based on the common phrase; and associating a sentiment phrase with at least two non-sentiment phrases having a hidden connection, wherein the association is a term taxonomy.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application is a continuation of U.S. patent application Ser. No. 13/279,673 filed on Oct. 24, 2011, now allowed. The Ser. No. 13/279,673 Application is a continuation-in-part of U.S. patent application Ser. No. 13/050,515, filed on Mar. 17, 2011, now U.S. Pat. No. 8,930,377, which claims the benefit of U.S. Provisional Application No. 61/316,844 filed on Mar. 24, 2010. The Ser. No. 13/279,673 Application is also a continuation-in-part of U.S. patent application Ser. No. 13/214,588, filed on Aug. 22, 2011, now U.S. Pat. No. 8,965,835, which is a continuation-in-part of the Ser. No. 13/050,515 Application. The contents of each of the above-referenced applications are incorporated herein by reference. 
     
    
     TECHNICAL FIELD 
       [0002]    The disclosure generally relates to the generation of term taxonomies based on information available on the Internet, and more specifically to the generation of taxonomies with respect to phrases that are indirectly connected. 
       BACKGROUND 
       [0003]    There is an abundance of information available on the Internet through content on web pages, social networks, user generated content, as well as other sources of information, which are accessible via the world-wide web (WWW). Search systems make the access to such information speedy and generally cost effective. However, there are also certain disadvantages, one of which is the fact that even targeted searches to generally available information result in large amounts of ‘hits’ requiring the user to sift through a lot of unwanted information. The search is static by nature and over time, as more and more irrelevant data is available, the more difficult it is to get to meaningful information. 
         [0004]    Various users of information are interested in more elaborate analysis of the information available through the Internet as well as the time-value of such information. That is, older information may be less important than newer information and the trends relating to the information may be more interesting than the data relating to the information at any given point in time. Current solutions monitor online behavior, rather than attempting to reach intents. For example, today advertisers attempting to target customers can merely do so based on where they go, what they do, and what they read on the web. For example, a user reading about the difficulties of a car manufacturer might be targeted for an advertisement to purchase that manufacturer&#39;s car, which would not necessarily be appropriate. In other words, today&#39;s available solutions are unable to distinguish this case from an article where the same company presents a new model of a car. Likewise, the prior art solutions are unable to correlate items appearing in such sources of information to determine any kind of meaningful relationship. 
         [0005]    Today, advertising is all about demographics and does not handle true intent. Advertisers are trying to target people based on, for example, their age and music preferences, rather than capturing the target audience&#39;s true intentions. In search advertising, for example, when searching for “Shoes” the age and/or the gender of the user submitting the search query cannot necessarily affect the content of the advertisements displayed to the user. Advertisements for shoes are provided merely because searchers have the intent for shoes. However, this intent based approach is limited in scope and inaccurate in targeting the required audiences. 
         [0006]    An ability to understand human trends dynamically and in real-time, as they are expressed, would be of significant advantage to advertisers, presenters, politicians, chief executive officers (CEOs) and others who may have an interest in deeper understanding of the information and the target of an audience&#39;s intent. Tools addressing such issues are unavailable today. Hence it would be therefore advantageous to provide such tools. 
       SUMMARY 
       [0007]    A summary of several example embodiments of the disclosure follows. This summary is provided for the convenience of the reader to provide a basic understanding of such embodiments and does not wholly define the breadth of the disclosure. This summary is not an extensive overview of all contemplated embodiments, and is intended to neither identify key or critical elements of all embodiments nor to delineate the scope of any or all aspects. Its sole purpose is to present some concepts of one or more embodiments in a simplified form as a prelude to the more detailed description that is presented later. For convenience, the term “some embodiments” may be used herein to refer to a single embodiment or multiple embodiments of the disclosure. 
         [0008]    The disclosed embodiments include a method for identifying hidden connections among non-sentiment phrases. The method comprises: identifying all connections among a plurality of non-sentiment phrases based on at least one proximity rule; determining direct connections among the identified connections, wherein each direct connection meets a predetermined correlation; filtering out the determined direct connections from the identified connections to yield hidden connections among the identified connections; analyzing the hidden connections to identify a common phrase, wherein the common phrase is associated with at least two hidden connections; generating a new hidden connection among the plurality of non-sentiment phrases based on the common phrase; and associating a sentiment phrase with at least two non-sentiment phrases having a hidden connection, wherein the association is a term taxonomy. 
         [0009]    The disclosed embodiments also include a system for identifying hidden connections among non-sentiment phrases. a processor; and a memory, the memory containing instructions that, when executed by the processor, configure the system to: identify all connections among a plurality of non-sentiment phrases based on at least one proximity rule; determine direct connections among the identified connections, wherein each direct connection meets a predetermined correlation; filter out the determined direct connections from the identified connections to yield hidden connections among the identified connections; analyze the hidden connections to identify a common phrase, wherein the common phrase is associated with at least two hidden connections; generate a new hidden connection among the plurality of non-sentiment phrases based on the common phrase; and associate a sentiment phrase with at least two non-sentiment phrases having a hidden connection, wherein the association is a term taxonomy. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0010]    The subject matter disclosed herein is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The foregoing and other objects, features, and advantages of the disclosed embodiments will be apparent from the following detailed description taken in conjunction with the accompanying drawings. 
           [0011]      FIG. 1  is a schematic diagram of a system for creation of term taxonomies by mining web based user generated content. 
           [0012]      FIG. 2  is an overview block diagram of the operation of the system. 
           [0013]      FIG. 3  is a detailed block diagram of the operation of the system depicted in  FIGS. 1 and 2 . 
           [0014]      FIG. 4  is a flowchart describing a method for creation of term taxonomies by mining web based user generated content. 
           [0015]      FIG. 5  is a flowchart describing a method for real-time detection of direct and hidden connections between phrases according to an embodiment. 
           [0016]      FIG. 6  is a flow chart describing details of the method for identification of hidden connection between phrases according to an embodiment. 
       
    
    
     DETAILED DESCRIPTION 
       [0017]    It is important to note that the embodiments disclosed herein are only examples of the many advantageous uses of the innovative teachings herein. In general, statements made in the specification of the present application do not necessarily limit any of the various claimed embodiments. Moreover, some statements may apply to some inventive features but not to others. In general, unless otherwise indicated, singular elements may be in plural and vice versa with no loss of generality. In the drawings, like numerals refer to like parts through several views. 
         [0018]    Non-limiting and exemplary embodiments include a system and methods thereof for real-time detection of hidden connections between terms based on term taxonomies of user generated content. Phrases that appear in proximity maybe unrelated, but the proximity of mention may provide an indication that there is a likelihood of impact, negative or positive, from one to the other, resulting in an indirect connection. This could be referred to as a ‘hidden connection’ as it is not a straightforward connection resulting from similarities between two phrases. 
         [0019]    For example, a celebrity mentioned as being seen in a particular restaurant may cause determination of a hidden connection between the celebrity&#39;s name and the restaurant name. Such a hidden connection may be brought to the attention of an advertiser to place an advertisement for that restaurant when the celebrity is mentioned. 
         [0020]    While this first degree of a ‘hidden connection’ is possible, a more complex degree of connection can be also detected. For example, a group of persons may discuss the phrase ‘eggs’ and mention the phrase ‘bananas’ in that context. Another group of persons may mention the terms ‘bananas’, but also the phrase ‘cats’. Therefore, there is detected a hidden connection between the phrases ‘cats’ and ‘eggs’ that may be of interest to, e.g., an advertiser. Hence, the system according to an embodiment, can detect at least a first degree separation of non-sentiment phrases and/or at least a first degree separation of two different non-sentiment phrases that are associated with a common non-sentiment phrase. 
         [0021]    In one embodiment, the system analyzes a textual content of a brand name from a data source, for example, a social network on the web, and collects the terms that appear in proximity to the brand name even though they are not directly connected to one another. For example, if the term “shoes” repeatedly appears in predefined proximity limitations to the term “pepsi®”, the system identifies a hidden between these two phrases. The proximity may be determined by a number of words or characters between mentions, existence on the same web page, a number of web pages within a website between the at least two non-sentiment phrases, and other appropriate measures of proximity of text objects, or any combination thereof. 
         [0022]    In another embodiment, the system identifies a hidden connection between several non-sentiment phrases that repeatedly appear in proximity to each other by subtracting the phrases connected directly from the total phrases that appear in proximity of each other. For example, if the non-sentiment phrases “shoes” and “cola” repeatedly appear in proximity, the system detects the direct connections between the non-sentiment phrases “cola” and “pepsi®” and subtracts the phrase “cola,” thereby identifying the hidden connection between the terms “shoes” and “pepsi®.” 
         [0023]      FIG. 1  depicts an exemplary and non-limiting schematic diagram of a system  100  for creation of term taxonomies according to an embodiment. To a network  110  there are connected various components that comprise the system  100 . The network  110  can be a local area network (LAN), a wide area network (WAN), a metro area network (MAN), the world wide web (WWW), the Internet, the likes, and combinations thereof. 
         [0024]    A phrase database  120  is connected to the network  110  and contains identified phrases that are either preloaded to the phrase database  120  or, that were detected during operation of the system as such phrases, and as further explained in greater detail herein below. Phrases may contain, but are not limited to, terms of interest, brand names, and the like. A data warehouse  130  is also connected to the network  110 , for storing processed information respective of phrases and as further explained in greater detail herein below. The operation of the system  100  is controlled by a control server  140  having executable code stored in a memory  145 , such that the control server  140  may perform the tasks discussed in more detail herein below. The memory  145  may be any form of tangible memory. 
         [0025]    While the processing may be performed using solely the control server  140 , embodiments may include one or more processing units  170 - 1  through  170 -N which allow for handling of the vast amount of information needed to be processed, without departing from the scope of the disclosed embodiments. 
         [0026]    Also connected to the network  110  are one or more sources of information  150 - 1  through  150 -N. These may include, but are not limited to, social networks, e.g., Facebook®, Twitter™, web pages, blogs, and other sources of textual information. Typically, a plurality of users using user nodes  160 - 1  through  160 -R access the information sources  150 - 1  through  150 -N periodically and provide their own comments and information therein. According to the teachings disclosed herein, it is these types and pieces of information that are used by the system  100  for its operation which is described in further detail with respect of  FIG. 2 . These types and pieces of information are processed by the system  100 . 
         [0027]    A user node  160 -j (j=1, . . . , R) is a computing device operated by a user and includes, but is not limited to, a personal computer, a smart phone, a mobile phone, a tablet computer, or any type of device that enables connectivity to the Internet. 
         [0028]      FIG. 2  shows an exemplary and non-limiting overview block diagram  200  of the operation of the system  100 . One or more data sources  210 , including, but not limited to, social networks and other user provided sources of information  210  are checked and or regularly supplied for text to be provided to a mining process. These types and pieces of information are processed by the system  100  process. The access to the data sources  210  is through the network  110  by means of a network interface (not shown). In an embodiment, the mining process can be executed by a mining unit of the system  200 . 
         [0029]    The task of the mining process is to extract from the text all irrelevant data that cannot be effectively used in the analysis that is performed by the system. Basically, the mining task is to identify sentiment phrases and non-sentiment phrases. In addition to sentiment extraction, the mining process “cleans” the data collected. Sentiment phrases may include, but not by way of limitation, words such as “love”, “hate”, “great”, “disaster”, “beautiful”, “ugly” and the like, but also “not good”, “great time”, “awfully good”, and more. Cleaning of data may include phrases common in social networks such as, but of course not limited to, conversion of “GRREEEAT!” into “great” and so on. In addition, cleaning may include removing conjunctions and words that appear with extremely high frequency or are otherwise unknown or irrelevant. While single words have been shown here, multiple words grouped as a phrase may also be treated as a sentiment phrase, such as but not by way of limitation “great experience”, “major issues”, “looks great” and more. These words describe a sentiment typically applied to a non-sentiment phrase. 
         [0030]    The text coming in from the one or more data source(s)  210  is mined for such phrases, for example, by using a reference for phrases stored in a database, such as the phrase database  120 . The mining process includes understanding that a complex phrase such as “I hate I Love Lucy” actually contains a sentiment phrase “love” and a non-sentiment phrase “I Love Lucy”, where the word “love” in the non-sentiment phrase is not to be analyzed as a standalone phrase. Furthermore, the sentence “I saw the movie I love Lucy” does not comprise any sentiment phrase, and therefore would not cause the mining unit  220  using the mining process to associate a sentiment phrase to the non-sentiment phrase. The phrases database  120 , in one embodiment, is a preloaded database and is updated periodically. However, it is also possible to automatically update the phrase database  120  upon detection of a phrase as being either one of a sentiment phrase or a non-sentiment phrase. Furthermore, a sentiment phrase within a non-sentiment phrase is ignored for this purpose as being a sentiment phrase and is only treated as part of the non-sentiment phrase. It should therefore be understood that a term taxonomy is created by association of a non-sentiment phrase with a sentiment phrase. Hence, for example, in the context of the phrase “I hate I Love Lucy” the sentiment phrase is “hate”, the non-sentiment phrase is “I Love Lucy” and the phrases are associated together in accordance with the principles of the disclosed embodiments to create a taxonomy. 
         [0031]    According to another embodiment, a comparative numerical value is associated with each sentiment. For example, the word “love” may have a score of “10”, the word “indifferent” the score of “0” and “hate” the score of “−10”. Hence, positive sentiments would result in a positive score while negative sentiments would result in a negative score. Such score associations may be performed initially manually by a user of the system, but over time the system  100 , based on a feedback provided by, e.g., a tuning mechanism  290 , can position the sentiment phrases relative to each other to determine an ever changing score value to every sentiment phrase. This is of high importance as language references change over time and references which may be highly positive can become negative or vice versa, or decline or incline as the case may be. This can be achieved by aggregation of sentiments with respect to a specific non-sentiment phrase resulting in a taxonomy that reflects the overall sentiment to the non-sentiment phrase. 
         [0032]    In an embodiment, a weighted sentiment score corresponding to a plurality of sentiment phrases collected for a respective non-sentiment phrase is generated. That is, within a specific context, the plurality of sentiments associated with a non-sentiment phrase is collected, and then an aggregated score is generated. The aggregated score may be further weighted to reflect the weight of each of the individual scores with respect to other scores. 
         [0033]    The cleaned text that contains the phrases is now processed using an analysis process which in an embodiment is performed by an analysis unit  230  of the system  200 . The analysis may provide based on the type of process information needed, the likes of alerts and financial information. An alert may be sounded by an alert system  250  if it is determined that a certain non-sentiment phrase, for example, a certain brand name, is increasingly associated with negative sentiment phrases. This may be of high importance as the manufacturer associated with the brand name would presumably wish to act upon such negative information as soon as possible in real-time. Likewise, a positive sentiment association may be of interest for either supporting that sentiment by certain advertising campaigns to further strengthen the brand name, or by otherwise providing certain incentives to consumers of products of the brand name. Those of ordinary skill in the art would readily realize the opportunities the system  100  and embodiment  200  provide. 
         [0034]    Returning to  FIG. 2 , the analyzed data is stored in a data warehouse  240 , shown also as data warehouse  130  in  FIG. 1 . Through a dashboard utility  270  it is possible to provide queries to the data warehouse  240 . An advertisement network interface  280  further enables advertising related management, for example providing advertisements relative to specific phrases used. In addition, the information is tuned by a tuning mechanism  290  thereby allowing for feedback to enable better mining of the data by the mining unit  220 . In the case of an advertisement a success rate, for example conversion rates, is also provided to the analysis process for better analysis of the cleaned text by creating real time taxonomies. 
         [0035]    An analysis may further include grouping and classification of terms in real-time, as they are collected by the system. Furthermore, current trends can be analyzed and information thereof provided, including, without limitation, an inclining trend and a declining trend with respect to the sentiment phrase associated with a non-sentiment phrase. Moreover, using the analysis process performed by the analysis unit  230  it is possible to detect hidden connections, i.e., an association between non-sentiment phrases that have a proximity correlation. The analysis unit  230  hence detects direct and hidden connections between non-sentiment phrases, and all connections between the non-sentiment phrases. As will be described below connections are identified based one or more proximity rules. In an embodiment, non-sentiment phrases that that have a hidden connection can be associated with a sentiment phrase. For example, if a web site of a talk show refers more positively or more frequently to a brand name product, the analysis unit  230  can find the correlation or connection between non-sentiment phrases that have a hidden connection and then compare the sentiment phrases thereof. That way, if the talk show web site tends to favor and recommend the brand name product it would make more sense to spend, for example, advertisement money there, than if the sentiment phrase would be a negative one. In one embodiment a hidden connection is any one of a first degree separation of two non-sentiment phrases, and a first degree separation of the two different non-sentiment phrases that are associated with a common non-sentiment phrase. 
         [0036]      FIG. 3  shows an exemplary and non-limiting detailed block diagram of the operation of a system  300  according to the principles of the disclosed embodiments. Data sources  305 , including the web sites and web services such as Facebook® and Twitter™, but not limited thereto, are probed periodically by agents  310  of the system  300 . The agents  310 , in one embodiment, are operative under the control of the control server  140  or on any one of the processing units  170 , when applicable. A load balancing queue  315 , operative for example on the control server  140 , balances the loads of the agents  310  on the execution units such that their operation does not overload any one such unit. In the exemplary and non-limiting implementation, two processing paths are shown, however, more may be used as may be necessary. 
         [0037]    In one embodiment, the loading of an agent  310  is also a function of the periodic checking of the respective data source  305 . Each processing unit, for example, processing units  170 , performs a preprocessing using the preprocessing module  325 . The preprocessing, which is the mining of phrases as explained hereinabove, is performed respective of a phrase database  320  to which such processing units  170  are coupled to by means of the network  110 . A database service utility  330 , executing on each processing node  170 , stores the phrases in the data warehouse  345 , shown in  FIG. 1  as the data warehouse  130 . An early warning system  335 , implemented on one of the processing units  170  or on the control server  140 , is communicatively connected with the database service utility  330 , and configured to generate early warning based on specific analysis. For example, an increase of references to a brand name product above a threshold value may result in an alarm. In one embodiment, this happens only when the source of such an increase is a specific source of interest. This is done because some sources  305  are more meaningful for certain non-sentiment phrases than others, and furthermore, some sentiment phrases are more critical when appearing in one source  305  versus another. 
         [0038]    The second portion of the system  300  depicted in  FIG. 3 , concerns the ability to query the data warehouse  345  by one or more query engines  350 , using a load balancing queue  355  as may be applicable. The queries may be received from a plurality of sources  365  including, but not limited to, a dashboard for web access, an advertisement network plugin, and a bidding system. The sources  365  are connected to a distribution engine that receives the queries and submits them to the load balancing queue  355  as well as distributing the answers received thereto. The distribution engine further provides information to a fine tuning module, executing for example on the control server  140 , and then to an exemplary and non-limiting tuning information file  395 . Other subsystems such as a monitor  370  for monitoring the operation of the system  300 , a control  375 , and a billing system  380  may all be used in conjunction with the operation of the system  300 . 
         [0039]      FIG. 4  shows an exemplary and non-limiting flowchart  400 , a method for creation of term taxonomies. In S 410  the system, for example and without limitations, any one of the systems  100 ,  200  and  300  described hereinabove, receives textual content from one or more information sources. As shown above this can be performed by using the agents  310 . In S 420 , phrase mining is performed. The phrase mining includes at least the detection of phrases in the received content and in S 430  identification and separation of sentiment and non-sentiment phrases. In S 440 , sentiment phrases are associated with non-sentiment phrases as may be applicable. In S 450 , the taxonomies are created by association of sentiment phrases to their respective non-sentiment phrases, including but not limited to, aggregation of sentiment phrases with respect to a non-sentiment phrase. The created taxonomies then are stored, for example, in the data warehouse  130 . This enables the use of the data in the data warehouse by queries as also discussed in more detail hereinabove. In S 460 , it is checked whether additional text content is to be gathered, and if so execution continues with S 410 ; otherwise, execution terminates. 
         [0040]      FIG. 5  shows an exemplary and non-limiting flowchart  500  of a method for identification of direct and hidden connections between terms based on term taxonomies. In S 510  the system, for example and without limitations, any one of the systems  100 ,  200  and  300  described hereinabove, receives textual content from one or more information sources. As shown above, the textual collection can be performed by using the agents  310 . The information sources may include, but are not limited to, social networks, web blogs, news feeds, and the like. The social networks may include, for example, Google+®, Facebook®, Twitter®, and so on. 
         [0041]    In S 520 , a phrase mining process is performed for at least the detection of non-sentiment and sentiment phrases in the received textual content. In S 530 , identification and separation of sentiment and non-sentiment phrases is performed by the mining process. The separated non-sentiment phrases are saved in the data warehouse storage and/or a phrase database. In S 540 , identification of hidden connections between non-sentiment phrases is generated as described in greater detail herein below with respect of  FIG. 6 . 
         [0042]    In  FIG. 6  an exemplary and non-limiting flowchart  600  depicts a method for identification of hidden connections between phrases in accordance with an embodiment. In S 540 - 10 , one or more proximity rules are defined, for example, by a user of the system. A proximity rule may be, but is not limited to, distance measured in number of words or characters between two or more non-sentiment phrases, number of web pages within a web site between the non-sentiment phrases, the number of mentions of the non-sentiment phrases in a web page, different web pages, and/or a piece of collected text, any combinations thereof, and so on. For example, the user may define a value ‘1 to 4’ as the number of words between two non-sentiment phrases, so that phrases will be considered in proximity. Thus, for the following post on a social network page “my shoes are full with cola”, the phrases “shoes” and “cola” are considered in proximity. 
         [0043]    In S 540 - 20 , all connections between the non-sentiment phrases are identified. Specifically, in an embodiment, such connections are identified for at least two non-sentiment phrases in a database that meet one or more of the proximity rules defined in S 540 - 20 . For instance, the non-sentiment phrase “shoes” and “cola” discussed in the above example are considered as connected. It should be noted that a connection may be determined if the phrases comply with more than one proximity rule. For example, an additional rule may require that the phrases “shoes” and “cola” must be mentioned in 50 different web pages and in distance of up to 3 words from each other in order to be considered as connected. All the identified connections (e.g., pairs of non-sentiment phrases) are saved in the data warehouse storage. 
         [0044]    In S 540 - 30 , from the connections detected at S 540 - 20 , all directly connected phrases are identified. Non-sentiment phrases having direct connections contain phrases that are correlative by nature. This may include, for example, non-sentiment phrases that are similar, include the same word(s), are derivatives of the same word(s), and so on. For example, the non-sentiment phrases “football” and “football equipment” are directly connected. The identified direct connections are saved in the data warehouse storage. 
         [0045]    In S 540 - 40 , all hidden connections between phrases are determined by filtering out the directly connected non-sentiment phrases from all the connected phrases (identified in S 540 - 20 ), namely all non-sentiment phrases determined to be in proximity. In an embodiment, S 540 - 40  may include deleting from the data warehouse storage pairs of potentially hidden connected phases that are identified as being directly connected. 
         [0046]    In one embodiment, all hidden connections (found in S 530 ) are analyzed to identify at least two hidden connections having at least one common non-sentiment phrase. If such connections are found, a new hidden connection is created by subtracting the at least one common phrase from the at least two hidden connections. In S 540 - 40 , the hidden connections between the non-sentiment phrases are saved in the data warehouse. 
         [0047]    Returning to  FIG. 5 , in S 550  sentiment phrases are optionally associated with indirectly connected non-sentiment phrases as may be applicable. In S 560 , term taxonomies are created by association of sentiment phrases to their respective non-sentiment phrases, including by, but not limited to, aggregation of sentiment phrases with respect to a non-sentiment phrase. The created taxonomies are then stored, for example, in the data warehouse storage  130 . This enables the use of the data in the data warehouse storage by means of queries as discussed in more detail hereinabove. In S 560 , it is checked whether additional textual content is to be gathered, and if so execution continues with S 510 ; otherwise, execution terminates. 
         [0048]    The various embodiments disclosed herein can be implemented as hardware, firmware, software, or any combination thereof. Moreover, the software is preferably implemented as an application program tangibly embodied on a program storage unit or computer readable medium consisting of parts, or of certain devices and/or a combination of devices. The application program may be uploaded to, and executed by, a machine comprising any suitable architecture. Preferably, the machine is implemented on a computer platform having hardware such as one or more central processing units (“CPUs”), a memory, and input/output interfaces. The computer platform may also include an operating system and microinstruction code. The various processes and functions described herein may be either part of the microinstruction code or part of the application program, or any combination thereof, which may be executed by a CPU, whether or not such computer or processor is explicitly shown. In addition, various other peripheral units may be connected to the computer platform such as an additional data storage unit and a printing unit. Furthermore, a non-transitory computer readable medium is any computer readable medium except for a transitory propagating signal. 
         [0049]    All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the principles of the disclosed embodiments and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions. Moreover, all statements herein reciting principles, aspects, and embodiments of the disclosed embodiments, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future, i.e., any elements developed that perform the same function, regardless of structure.