This invention relates to the field of user-generated content. In particular, the invention relates to popularity prediction of user-generated content.
Recent years have witnessed a tremendous increase in the amount of user-generated content available on the web. Many Web 2.0 applications have emerged to provide an open stage for users to publicly share their ideas and opinions with others. For example, blogging web services such as Blogger (www.blogger.com) (Blogger is a trade mark of Google Inc.) and ReadWriteWeb (www.readwriteweb.com) (ReadWriteWeb is a trade mark of ReadWriteWeb), have become popular media for personal content publication.
More recently, microblogging services, such as Twitter (www.twitter.com) (Twitter is a trade mark of Twitter, Inc.), let users publish short comments about breaking world news as well as daily updates about themselves. Furthermore, such social media sites have been recognized as an important arena in which user-generated content can be directly used to shape public opinion and trends, and to influence the attitudes of potential customers by applying commercial marketing campaigns.
As the popularity of social media services increases, identifying those sites with high “content quality” becomes more difficult due to the enormous amount of new content that is continually published on those sites. Typically, due to the large amounts of data, only a small fraction of new content is expected to gain popularity. Consequently, only a small amount of user-generated content will be read, commented, or rated by others, while most of the content will be ignored.
The quality of user-generated content is usually measured in several dimensions such as the author's reputation, objectivity, and reliability, as well as content relevancy, completeness, and accuracy. The most successful indicators for user content quality are the amount of user feedback and the number of citations the post has. These approaches usually rely on explicit and publicly available feedback such as comments, ratings, recommendations, and tagging, as well as implicit feedback such as click-through data.
User feedback is indeed very valuable for identifying high quality content. However, there remains a gap in user-generated content quality evaluation when no feedback is available, especially for freshly published content. When user feedback does not exist, evaluation approaches are mostly based on the author's reputation, as reflected by the popularity of the author's previous posts. However, such methods are strongly biased to popular contributors in the past, and underestimate the content published by unfamiliar contributors.
According to a first aspect of the present invention there is provided a method for popularity prediction of user-generated content, comprising: measuring the novelty of a user-generated content; predicting the popularity of the user-generated content based on the measured novelty; wherein said steps are implemented in either: computer hardware configured to perform said identifying, tracing, and providing steps, or computer software embodied in a non-transitory, tangible, computer-readable storage medium.
According to a second aspect of the present invention there is provided a computer program product for popularity prediction of user-generated content, the computer program product comprising: a computer readable storage medium having computer readable program code embodied therewith, the computer readable program code comprising: computer readable program code configured to: measuring the novelty of a user-generated content; predicting the popularity of the user-generated content based on the measured novelty.
According to a third aspect of the present invention there is provided a system for popularity prediction of user-generated content, comprising: a processor; a novelty measuring component for measuring the novelty of a user-generated content; and a predictor for predicting the popularity of the user-generated content based on the measured novelty.
According to a fourth aspect of the present invention there is provided a service to a customer over a network for popularity prediction of user-generated content, comprising: measuring the novelty of a user-generated content; predicting the popularity of the user-generated content based on the measured novelty; wherein said steps are implemented in either: computer hardware configured to perform said identifying, tracing, and providing steps, or computer software embodied in a non-transitory, tangible, computer-readable storage medium.
The subject matter regarded as the invention is particularly pointed out and distinctly claimed in the concluding portion of the specification. The invention, both as to organization and method of operation, together with objects, features, and advantages thereof, may best be understood by reference to the following detailed description when read with the accompanying drawings in which:
It will be appreciated that for simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference numbers may be repeated among the figures to indicate corresponding or analogous features.
In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the invention. However, it will be understood by those skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, and components have not been described in detail so as not to obscure the present invention.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.
A method, system and computer program product are described for predicting popularity of user-generated content based on novelty of the content.
User-generated content may be any content made available publicly via a network by a user, including, but not limited to, blog content, microblog content, web posted articles, academic papers, etc.
The novelty of a user-generated content plays an important role in affecting its popularity. Three dimensions of novelty types are described which are used for prediction of the popularity of the user-generated content.
The first type of novelty, termed contemporaneous novelty, models the relative novelty embedded in new user-generated content with respect to contemporary content generated by others. It is hypothesized that non-novel user contents are less popular since they fail to explore new valuable information for the content consumers (e.g., blog readers).
The second type of novelty, termed self novelty, models the relative novelty embedded in new user-generated content with respect to the user's own contribution history. Self novelty measures the novelty of a new user content with respect to previous contents published on the same content source (user). Self novelty contributes to content popularity, probably due to the fact that authors who repeat themselves and fail to innovate, lose their readers over time.
The third novelty type, termed discussion novelty, relates to the novelty of the feedback (e.g., comments, tags, ratings) associated by readers with previous user contents published on the same content source. The feedback of each previous user content is compared to their associated content for measuring the amount of information the feedback added to the original user content. The assumption behind this measure is that a new content, contributed by an author with a history of high discussion novelty, is also likely to initiate a stimulating on-line discussion that will affect the content's popularity.
The novelty features described above do not require existing user feedback. Therefore, they can enhance existing popularity estimation techniques for new user-generated contents, which are currently based primarily on the author's reputation and on textual analysis.
Furthermore, the contemporaneous novelty feature can even be used to predict the popularity of new user contents provided by unfamiliar contributors with no history at all. Such an estimation of fresh content, prior to the availability of any user feedback, is of extreme importance.
Referring to
The blogosphere 100 is a set of blogs 110, 120, 130, with each blog 110, 120, 130 being formed of a stream of blog posts 111-115, 121-127, 131-136.
Each blog post 112 may have comments 151-153 posted by readers of the blog post.
A new blog post 115 is shown in
Contemporaneous blog posts 126, 127, 136 in different blogs 120, 130 within a given time as the new blog post 115 can be used to determine contemporaneous novelty of the new blog post 115. The time period Tc 142 from which contemporaneous blog posts 126, 127, 136 are used, is determined by an administrator and may be varied.
Comments 151-153 on a blog post 112 may be used to determine discussion novelty.
A domain of user-generated content is defined B={b1, b2, . . . , bn} as a set of streams of content, where each stream of content bεB is a stream of user-generated post updates (posts for short), usually contributed by the same author, or a community of authors who share a stream of content on the same topic. Let pb denote a single post published on stream of content b. It is assumed that each post pb has a timestamp t(ph) that captures its publication time.
Each post can further have zero to many comments from its readers. In this embodiment, comments are used as representative of the stream of content popularity. Other types of user feedback (ratings, tags, citations, reviews, annotations, etc.) can be used for this purpose in a similar way to the comments.
The sequence of comments to a post pb is denoted by C(pb)={cl, . . . , ck}, where each comment ci has its own publication time t(ci). Obviously, the publication time for any comment cεC(pb) satisfies t(c)>=t(pb).
Three sets are defined that will be used later on to derive the proposed novelty features.
Definition 1—Self Novelty Set.
Given a post pb, define SN(pb, T) to be the set of all posts that were published on the same stream of content b previous to post pb, within a given time window T. Formally:
SN(pb,T)={(pb|t(pb)−T≦t(pb)}
The self novelty set 161 is as applied to the blog posts of
Definition 2—Contemporaneous Novelty Set.
Given a post pb, and a time window T, define CN(pb, T) to be the set of all posts pb′ that were contemporary published with post pb on other streams of content within the time window T. Formally:
CN(pb,T)={pb|b′εB\{b}t(pb)−T≦t(pb)≦t(pb)}
The contemporaneous novelty set determines all posts in the content domain that were published on other streams of content, contemporary with post pb in a given time window. This set of posts as applied to the blog posts of
Definition 3—Discussion Novelty Set.
Given a post pb, a sequence of comments to the post C(pb), and a timestamp t, define DN(pb, t) to be the set of all comments for post pb that were submitted up to time t. Formally:
DN(pb,t)={c|cεC(pb)t(c)≦t}
The discussion novelty set 163 for a given post as applied to the blog posts of
Novelty Measurement
The novelty of a post is measured over three contextual dimensions, which are hypothesized as contributing to predicting its popularity. All three forms of novelty measurement are not always required. A combination of only two forms or even only one form may be used.
A distance measurement of two textual strings is required in the novelty measurements. In the described embodiment, a distance measure is utilized that is derived from information theory, known as the normalized compression distance (NCD). Other forms of distance measurement may be used, for example, an alternative form of distance measurement may be based on the cosine similarity measurement between two text strings (1−cos(x,y)).
Given a compressor M and two strings x and y, the NCD is defined as:
NCD(x,y)=[M(xy)−min(M(x),M(y))]/max(M(x),M(y))
where M(x), M(y) and M(xy) are the bitwise sizes of the resulting sequences when using M to compress x, y, and the concatenation of x and y, respectively. In one embodiment, the 7ZA-compression algorithm is used for the compressor M, due to its ability to utilize a large buffer which is well suited for large text. Other forms of compressor may also be use.
NCD estimates the distance between two text strings by measuring the improvement achieved by compressing one string using the information found in the other string. It has been proved to serve as an approximation of Kolmogorov complexity.
Novelty-Based Features
Several novelty features for predicting content popularity are described. This set of features can be further used along with more traditional features of the content as described further below. In the described embodiment, novelty is measured along three contextual dimensions, coined self novelty, contemporaneous novelty, and discussion novelty.
Self Novelty
This measure models the relative novelty embedded in new user-generated content with respect to the user's own contribution history. Self novelty measures the novelty of a new post with respect to previous posts published on the same stream of content. It is hypothesized that self novelty contributes to post popularity, probably due to the fact that authors who fail to innovate and to “surprise” their readers, lose their popularity over time.
Given a post pb of some stream of content bεB, and a time window Ts; let SN(pb, Ts) be the corresponding self novelty set (reference 161 in
nov
s(pb,Ts)=NCD(pb,concat(SN(pb,Ts)))
Note that pb represents the content of the given post and concat(SN(pb, Ts)) is the concatenation of all post contents in the SN set.
Contemporaneous Novelty
This measure evaluates the novel contribution of a stream of content post with respect to other posts submitted in the same time period. It is hypothesized that non-novel posts are less popular as they fail to explore new valuable information for their readers.
Given a post pb, and a time window Tc; let CN(pb, Tc) be the corresponding contemporaneous-novelty set (see reference 161 in
nov
c(pb,Tc)=NCD(pb,concat(CN(pb,Tc)))
Discussion Novelty
This type relates to the novelty of the comments associated by readers with previous posts on the same stream of content. The comments of each previous post are compared to the original post content to measure their novelty in terms of the amount of information they add to the original post. The intuition behind this measure is that a new post on a stream of content with high discussion novelty, is more likely to initiate an interesting fruitful discussion that will affect the post's popularity.
Given a post pb on some stream of content bεB. Let b′={p′bεb|t(p′b)<t(pb)} be the set of all posts in b prior to pb. The discussion novelty of pb is measured by the average novelty of comments on previous posts on the same stream of content. More formally:
where |b′| represents the number of previous posts on b, and concat(D(p′b,t(pb))) is the concatenation of all comments to post pb′ that were given prior to publication time of pb.
Referring to
Basic features are extracted 202 from the content (for example, the basic features may include text, tags, timestamp, author identity, etc.).
Using a document source identity (for example, author identity), retrieve 203 the content history of that source (for example, the last K content items generated on that source or items generated within some defined window of time). The retrieved content history of the source may include associated content (for example, comments, tags, etc.) from the content history.
Retrieve 204 contemporaneous content published on other sources (authors) with respect to the given content to evaluate. Contemporaneous content may be retrieved that was published within some time window, or K last updates from each source may be retrieved.
Novelty is measured 205 for user-generated content including generating novelty features. The novelty measure uses three novelty contexts of self novelty 206, contemporaneous novelty 207, and discussion novelty 208. Not all of the novelty contexts need to be used. For example, one of the novelty contexts may be used, a combination of two of the novelty contexts may be used, or all three novelty contexts may be used. Measuring the novelty in each case applies a distance measurement between the user-generated content and reference content.
Given the basic features from step 202 and the novelty features from step 205, a predictor predicts 209 the popularity of the content. Predicting the popularity of the user-generated content may be based on the prediction of the expected number of references to the user-generated content, such as comments, citations, tags, etc.
Referring to
A source history retriever 303 retrieves content history from the same source as the subject content using the subject content's source identity within a defined time window. This may include retrieving all associated content such as comments, tags, etc.
A contemporaneous contents retriever 304 retrieves contemporaneous content published on other sources with respect to a defined time window.
A novelty measuring component 310 includes three sub-components for measuring self novelty 311, contemporaneous novelty 312, and discussion novelty 313 for the subject content. One or more of the sub-components 311, 312, 313 may be used for a given subject content.
A predictor 320 is provided including a classifier 321 for classifying the subject content with respect to a pre-defined popularity measure. For example, based on the number of comments or citations on the subject content. The predictor 320 uses the basic features 322 from the basic features extractor 302 and the novelty features 323 from the novelty measuring component 310.
A settings component 305 enables input of user settings, including: the time windows used by the source history retriever 303 and the contemporaneous contents retriever 304, the novelty measurement algorithm to be used by the novelty measuring component 310, the prediction classifier algorithm to be used by the classifier 321, and the pre-defined popularity measure used by the predictor 320.
Referring to
The memory elements may include system memory 402 in the form of read only memory (ROM) 404 and random access memory (RAM) 405. A basic input/output system (BIOS) 406 may be stored in ROM 404. System software 407 may be stored in RAM 405 including operating system software 408. Software applications 410 may also be stored in RAM 405.
The system 400 may also include a primary storage means 411 such as a magnetic hard disk drive and secondary storage means 412 such as a magnetic disc drive and an optical disc drive. The drives and their associated computer-readable media provide non-volatile storage of computer-executable instructions, data structures, program modules and other data for the system 400. Software applications may be stored on the primary and secondary storage means 411, 412 as well as the system memory 402.
The computing system 400 may operate in a networked environment using logical connections to one or more remote computers via a network adapter 416.
Input/output devices 413 can be coupled to the system either directly or through intervening I/O controllers. A user may enter commands and information into the system 400 through input devices such as a keyboard, pointing device, or other input devices (for example, microphone, joy stick, game pad, satellite dish, scanner, or the like). Output devices may include speakers, printers, etc. A display device 414 is also connected to system bus 403 via an interface, such as video adapter 415.
The following is a description of the features used by the novelty-based predictor based on basic features and described novelty features. Two example embodiments are described based on two use cases. In the first example embodiment, a future blog post popularity is determined as indicated by the number of its expected comments. In the second example embodiment, it is shown how the prediction can be applied to other domains, focusing on the task of predicting academic paper citation volume.
In the first example embodiment of the blog post popularity prediction, several basic features are extracted from each blog post to be used by the popularity predictor. These features include the post's raw text, the time, the date of its publication, the number of comments it received, as well as the comments' raw text and publication time, the number of tags the post was tagged with as well as its average rating value. The relative activity of the blog's author was also measures (average and standard deviation). Table 1 below shows the features used in the prediction including the three novelty based features described above.
The goal in the first example embodiment is to predict whether a new blog post would receive a total of N or more comments in the future, by learning a predictor that is based on the features described in Table 1.
In this embodiment, two binary classifiers are used for prediction: Linear Regression and a Decision Tree. The goal of the classifier is to separate those blog posts with N or more comments from all other posts. Given a new blog post, the predictor will then classify it into either of the two classes.
Ten-fold cross validation was used to reduce the chance of over-fitting. The accuracy of each predictor can be measured by the area under the corresponding ROC (receiver operating characteristic) curve.
The performance of the predictor can be analyzed for different parameter settings. In order to obtain the self novelty and contemporaneous novelty features, time windows for which the SN and CN sets are derived respectively must be determined.
It has been observed that the area under the ROC curve tends to saturate at around 120 days for every value of N, and any improvement thereafter is relatively small. This indicates that the effective horizon for blog posts is approximately 4 months, with longer horizons adding relatively little information. The effect of Tc was also examined in a similar manner, and was found to reach a plateau at Tc=10 days. Its overall effect on the ROC was negligible.
Table 2 below shows the different thresholds (N) on the number of comments estimated in the first embodiment, as well as the fraction of blog posts with at least this number of comments, and the area under the ROC curve that the linear regression predictor reached. The ROC area is given for Ts=120 days and Tc=10 days. Note that the threshold determines whether the blog post will have at least N comments. Therefore, the predictor for N≧1 also predicts the complementary decision of no comments at all.
Table 2 shows that it is easier to identify blog posts with many expected comments than to distinguish between blog posts which will not be commented to and those blog posts which will have at least one comment. This is attributed to the fact that most blog posts that receive many comments tend to come from blogs which have a persistent following over time.
Looking deeper into the predictor performance analysis, the most influential features used by the predictor were identified by normalizing each feature to zero mean and unit variance, and ranking the weights learned by the predictor in decreasing order of absolute magnitude. Using this method, the most influential features (in decreasing order of importance) were: 1) Discussion-novelty; 2) Self-novelty; 3) Average number of comments to previous posts; 4) Standard deviation of discussion-novelty.
The relative contribution of each of these features can be estimated by building a predictor with the most influential feature, the two most influential features, etc. According to analysis, even when using a single feature, it is easier to identify posts which will receive many (more than 10) comments, compared to posts which will receive one or more comments. Furthermore, the average number of comments to previous posts is mostly influential when identifying blog posts which will receive 10 or more comments, and self-novelty contributes more to this prediction task.
A second example embodiment, illustrates how the novelty-based predictor can be generalized to the task of citation prediction for academic papers.
In this embodiment, the dataset is publications made by a single academic community, and it is assumed that enough time has passed since the publication of the last paper in the collection to allow reasonable exposure time.
For each paper, similar features were extracted to those described in Table 1. The first set of features included the average and standard deviation of the past number of citations for papers by the author, the number of unique authors who cited papers by the same author, and the paper length. If there were several co-authors for a paper, the maximum, minimum, and average of the attributes for each author was taken. Given a paper and time windows Ts and Tc, papers were identified that belong to its self novelty set and contemporaneous novelty set, respectively, from which the paper self novelty and contemporaneous novelty features were calculated. In this embodiment for papers, the discussion novelty is not measured since paper citations are not accompanied with text compared to blog post comments.
The required prediction was if the number of citations that a paper will have in the future will be N or more. Ten-fold cross validation was used to reduce the chance of over-fitting. Because of the relatively short time span of the data, the time periods were set as Ts=5 years and Tc=1 year. Two classifiers were used for prediction: Linear Regression and a Decision Tree.
Table 3 below shows the thresholds at which the predictor was evaluated, as well as the resulting area under the ROC curve, while setting Ts=5 years and Tc=1 years. It can be observed from Table 4 that, overall, similar results are obtained to those for blogs, with a relatively high prediction accuracy for the number of citations. Finally, similarly to the analysis for blogs, for papers it was found that the most influential features of the predictor at a threshold of N≧10 were (in decreasing order of importance): 1) The minimum (between authors) of the average contemporaneous novelty; 2) The maximum (between authors) of contemporaneous novelty; 3) The maximum (between authors) of the number of papers published by the author; 4) The maximum (between authors) of self novelty.
Content providers should provide novel writing in order to get attention to their content. Attractive posts are those that are novel with respect to contemporaneous published content, as well as novel with respect to previous content published on the same source. In addition, posts that are able to trigger stimulating on-line discussion have high potential to become popular. By measuring the three novelty dimensions of a post it is demonstrated how the novelty features can contribute to the task of predicting the amount of expected comments. The same novelty-based features can assist in predicting the popularity of other user-generated content, such as citation volume of academic papers.
The task of predicting user-generated content popularity as reflected by the amount of expected user feedback is described, including new generated content that has not yet received feedback. The proposed prediction method can be used to derive many useful applications, such as the following:
Using real-world blog data, the effectiveness has been demonstrated of the novelty measures described in assisting to predict the number of comments expected for new blog posts. The novelty-based predictor is able to predict posts that will not be commented on at all with an accuracy (as measured by the area under the ROC curve) of 66%; posts with at least 5 comments with an accuracy of 73%; and highly commented on posts (with more than 10 comments) with an accuracy of 77%. Based on the assumption that the amount of feedback reflects blog post quality, the novelty-based predictor is able to identify high-quality blog posts with high precision.
The novelty features described above do not require existing user feedback. Therefore, they can enhance existing popularity estimation techniques for new user-generated contents, which are currently based primarily on the author's reputation and on textual analysis.
Furthermore, the contemporaneous novelty feature can even be used to predict the popularity of new user contents provided by unfamiliar contributors with no history at all. Such an estimation of fresh content, prior to the availability of any user feedback, is of importance.
For example, the success of commercial marketing campaigns in the blogosphere strongly depends on identifying those blogs expected to a have high potential for reaching large audiences and influencing their readers. This is also true for recommendation services, which recommend interesting blogs to their customers. Most existing blogging websites recommend a short list of high quality blog posts on their main page. This list is usually composed of the latest top-rated and commented posts, as well as new posts of authors who were popular in the past. Given the ability to predict the expected volume of comments for new posts will enable better identification of high quality posts in advance, when no feedback is available yet. It will also allow those recommendation tools to identify interesting blog-posts immediately after publication, independent of their future recognition by the society.
A popularity prediction of user-generated content may be provided as a service to a customer over a network.
As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Aspects of the present invention are described above with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.