The present invention relates to a method and system for searching electronic documents based on their similarity rates in relation to a primary electronic document. More particularly, the present invention relates to a method and system for calculating the similarity rates while conducting a document search.
Enterprise Content Management (ECM) and Document Management (DMS) systems are known methods for searching documents using key-words or exact phrases with additional criteria such as a Boolean operations and proximity. But in some cases, the user wants to search documents by similarity between documents. It includes similarity by semantic meaning, phrases and parts of the text. Some technologies like TF-ID may search documents based on a measurement of word/term frequency occurred in a document. The frequency of words occurrence, however, doesn't always reflect meanings of texts in the document linguistically and semantically.
Thus, there is a need for searching documents based on other factors, such as similarity rates between documents.
A system for searching electronic documents in at least one database is disclosed. The system comprises a user interface for receiving instructions entered by a user to search, among a plurality of electronic documents stored in the at least one database, electronic documents of which similarity rates in relation to a primary electronic document meet desired criteria, a search engine interactive with the user interface and a computing device to conduct a search within the at least one database, the computing device for accessing the plurality of electronic documents stored in the at least one database and for comparing the plurality of electronic documents with the primary electronic document to obtain the similarity rates of the plurality of electronic documents in relation to the primary electronic document, and an output device for outputting the compared electronic document if the similarity rate of the compared electronic document in relation to the reference electronic documents meet the desired criteria.
In accordance with the disclosed embodiments, the computing device calculates each of the similarity rates based on the number of matching phrases between the reference electronic document and a compared electronic document among the plurality of electronic documents, and respective distances between subsequent matching phrases in the primary electronic document and between subsequent matching phrases in the compared electronic document.
The computing device according to the disclosed embodiments further comprises a counting component for counting a number of matching phrases between the primary electronic document and the compared electronic document, wherein the matching phrases include exactly-matched phrases and similarly-matched phrases, and wherein the similarly-match phrases have a same length and include at least one matched word, a distance calculating component for measuring distances between subsequent matching phrases in the primary electronic document and in the compared electronic document, and a similarity rate calculating unit for obtaining the similarity rate of the compared electronic document in relation to the primary electronic document based on the number of matching phrases determined by the counting component and the distances measured by the distance calculating component.
The computing device comprises a first proximity parameter calculating component for obtaining at least one first proximity parameter for the matching phrases of the compared electronic document, wherein each respective matching phrase among the matching phrases has one corresponding first proximity parameter, and wherein the corresponding first proximity parameter is determined by a number of matched words within the respective matching. The computing device further comprises a second proximity parameter calculating component for obtaining at least one second proximity parameter, each of which is calculated based on the distances between the subsequent matching phrases in the reference electronic document and in the compared electronic document measured by the distance calculating component, and a similarity rate calculating component for obtaining the similarity rate of the compared electronic document in relation to the reference electronic document, wherein the similarity rate of the compared electronic document in relation to the reference electronic document is calculated by summing up products of each of the first proximity parameters and a corresponding length of the respective matching phrase, plus the at least one second proximity parameter.
A method for searching electronic documents based on similarity rates is also disclosed. The method comprises receiving an electronic document as a reference electronic document, receiving instructions received from a user through a user interface, wherein the instructions include searching electronic documents of which similarity rates in relation to a reference electronic document meet a desired range, searching at least one database to determine whether there are electronic documents stored in the at least one database meet the similarity rate criteria, and comparing the reference electronic document with a plurality of electronic documents stored in a database.
For each of the plurality of electronic documents to be compared with the reference electronic document, the method comprises counting a number of matching phrases between the reference document and the compared electronic document, wherein the matching phrases include exactly-matched phrases and similarly-matched phrases, and wherein the similarly-match phrases have the same lengths and include at last one matched word, measuring distances between subsequent matching phrases in the reference electronic document and in the compared electronic document, obtaining a similarity rate of the compared electronic document in relation to the reference electronic document based on the number of matching phrases and the measured distances between the subsequent matching phrases in the reference document and in the compared electronic document, and retrieving a number of electronic documents, of which the similarity rates in relation to the reference document meets the desired similarity rate range.
In obtaining the similarity rate, the method further comprises obtaining at least one first parameter for the matching phrases, wherein each respective matching phrase has one corresponding first proximity parameter, and wherein the corresponding first proximity parameter is determined by a number of matched words within the respective matching phrase, obtaining at least one second proximity parameter based on the measured distances of the matching phrases in the reference electronic document and the compared electronic document, and obtaining the similarity rate by summing up products of each of the first proximity parameters and a corresponding length of the respective matching phrase, plus the at least one second proximity parameter.
A method for retrieving electronic documents similar to a reference electronic document is further disclosed. The method receives user instructions through a user interface to search electronic documents stored in a database of which similarity rates in relation to a source electronic document falling within a predetermined range, counts a number of matching phrases between each of the electronic documents stored in the database and the source electronic document, wherein the matching phrases include exactly-matched phrases and similarly-matched phrases, and the similarly-match phrases have a same length and include at last one matched word, and obtains obtaining at least one first proximity parameter based on a percentage of matched words in each of the matching phrases. In addition, the method measures distances between subsequent matching phrases in each of the stored electronic documents that have at least one matching phrase with the source electronic document and distances between subsequent matching phrases in the source electronic document, and obtains at least one second proximity parameter based on the distances measured in the source electronic document and in each of the stored electronic document. The method also calculates similarity rates of each of the stored electronic documents that have at least one matching phrase based on the first and second proximity parameters, retrieves electronic documents of which the similarity rate in relation to the source electronic document fall within the predetermined range, and displays the retrieved electronic documents is a search result list.
Various other features and attendant advantages of the present invention will be more fully appreciated when considered in conjunction with the accompanying drawings.
Reference will now be made in detail to specific embodiments of the present invention. Examples of these embodiments are illustrated in the accompanying drawings. Numerous specific details are set forth in order to provide a thorough understanding of the present invention. While the embodiments will be described in conjunction with the drawings, it will be understood that the following description is not intended to limit the present invention to any one embodiment. On the contrary, the following description is intended to cover alternatives, modifications, and equivalents as may be included within the spirit and scope of the appended claims. Numerous specific details are set forth in order to provide a thorough understanding of the present invention.
The preferred embodiments of the present invention measure similarity rates based on the number of matching phrases and proximity parameters between two electronic documents. In accordance with the disclosed embodiments, measuring the similarity rates facilitates a user to search documents stored in a database that are similar to a primary electronic document (or reference electronic document) in a faster and more accurate way. The measurement of the similarity rates is particularly useful with a search engine for searching similar documents.
Most of existing solutions of the document search are based on entering keywords by the user. An advanced search, supported by query languages like Microsoft Dialect 1, allows the user to define Boolean operations, exact phrase and near-by proximity criteria of the search. The full text search goes across entire text, when every word has been indexed. For example, document search criteria used by Microsoft Dialect 1 by defining key-words and phrases may include searching all matched words, searching an exact phrase, searching any of specific words and/or searching none of specific words. Such document search, however, is incapable of searching documents based on their similarity rates in relation to a primary (reference) document. Also, the search result comes in a format of a list with references to individual documents, or search results. The total number of documents after an initial search can be as large as tens of thousands of electronic documents, sometimes over dozens of pages to be reviewed by the user. This process is cumbersome and not very effective.
The disclosed embodiments compare two documents by counting the number of matching phrases and analyzing each pair of matching phrases to obtain proximity parameters based on their sematic meanings and similar text and phrases sequences. By measuring the similarity rates between different electronic documents, the disclosed embodiments are able to search documents that have similar texts, phrases, and semantic meanings by analyzing the matching phrases and obtaining proximity parameters of the matching phrases. Thus, the search result can be more accurate and less cumbersome in the respect for the user.
Search management system 100 also includes computing device 110 that interacts with search engine 120 and user interface 130 to conduct similarity rate calculations and to search electronic documents 104 based on their similarity rates in relation to reference electronic document 142. Reference electronic document 142 may be received at input device 140 and be inputted to computing device 110 as a primary electronic document for comparison. Input device 140 may also receive instructions from user interface 130. In some embodiments, input device 140 may be a general term of a combination of an input device and a user interface. In accordance with the disclosed embodiments, reference electronic document 142 may be a scanned electronic document sent from a scanner/printing device, which may be the same type as scanner/printing device 160 or a different scanner/printing device, or an electronic document stored in a database that may be or may not be document storage 102, selected by a user as a reference electronic document for comparison.
Search engine 120 also interacts with user interface 130 to search documents based on user instructions 132 received from the user through user interface 130. User instructions 132 may include searching documents with search criteria, such as key-words, exact phrases, similarity rate range in relation to reference electronic document 142, changing searching criteria, selecting documents for review, outputting selected documents and so on. The disclosed embodiments will focus on desired similarity rate or desired similarity rate range, as described below with
Computing device 110, once receiving user instructions 132 from user interface 130, works in conjunction with search engine 120 to retrieve electronic documents 104 from document storage 102. Computing device 110 then compares each electronic document 104 with reference electronic document 142 and obtains a similarity rate of each electronic document 104 in relation to reference electronic document 142. Computing device 110 may also decide if the obtained similarity rate meets the search criteria set by the user, such as a desired similarity rate or a desired similarity rate range. Electronic documents of which the similarity rates meet the user's search criteria will be sent to output device 150.
Output device 150 may be a display screen that displays a list of electronic documents having desired similarity rates as required by user prompt instructions 132. Based on received user instructions, output device 150 may also display a full image of one or more electronic documents from the list for the user's review. Further, based on user instructions, output device 150 may send selected documents to printing device 160 to be printed out.
Printing device 160 may be any multi-functional printing device or image forming apparatus that performs various functions, such as printing, scanning, storing, copying, and the like. Printing device 160 also may refer to a scanner or device implement optical character recognition to capture data about documents corresponding to electronic documents 104.
Similarity rate calculating system 200 includes input device 140 for receiving first electronic document 104 retrieved from document storage 102 and reference electronic document 142. In the preferred embodiments of
Computing device 110 may be a CPU (Central Processing Unit) for executing instructions received from input device 140. In this instance, computing device 110 compares reference electronic document 142 and first electronic document 104A by extracting features detected in electronic documents 142 and 104A. In accordance with the disclosed embodiments, the features may include the number of matching phrases, sematic meanings of texts, sequences of phrases, and distances between subsequent matching phrases contained in documents 142 and 104A. Computing device 110 analyzes the extracted features to determine their similarity rate.
Output device 150 may be a display screen that displays first electronic document 104A if the similarity rate of the first electronic document 104A meets a predetermined range. It is known that a computer screen may functions as an input screen as well as an output screen. Thus, input device 140 and output device 150 may be combined as an input/output device (I/O device). The following descriptions will describe these devices separately for illustrative purposes.
In the disclosed embodiments, first electronic document 104A may be sent to printing device 160 to be printed out based on the user instructions. In preferred embodiments, computing device 110 continues comparing the next electronic document retrieved from document storage 102, such as second electronic document 104B and obtaining a similarity rate of second electronic document 104B in relation to reference electronic document 142. The comparing process will continue until all stored documents are compared, or a required number or required categories of stored documents are compared. In preferred embodiments, as there are thousands of documents stored in document storage 102, the user may enter instructions including keywords, document categories, exact matching phrases, number of pages, a first page, business documents such as accounting, invoices, and legal document, etc., together with Boolean operation, to limit the number of electronic documents to be compared and to reduce the processing time.
In alternative embodiments, first and second electronic documents 104A and 104B may be sent from a local computer or a scanner/printing device or from a remote device via an internet network (not shown). For example, first electronic document 104A may be a scanned document received from printing device 160 (
Printing device 160 may be referred to by the disclosure of
As illustrated in
Printing device 160 also includes a finisher 311 and one or more paper cassettes 312. Finisher 311 also may perform additional actions, such as sorting the finished papers, binding sheets of papers with staples, doubling, creasing, punching holes, folding, and the like. Paper cassettes 312 supply paper to various components 320, 322, 324, and 326 to create the image formed surfaces on the papers.
Document feeder tray 330 may be the physical components of printing device 160 to receive papers and documents to be processed. A document is placed on or in document processor input feeder tray 330, which moves the document to other components within printing device 160. The movement of the document from document processor input feeder tray 330 may be controlled by the instructions input by the user. As shown in
Memory unit 306 includes memory 314 to store instructions 315. Instructions 315 are executable on CPU 302 or other processors associated with printing device 160, such as any processors within components 320, 322, 324, or 326. Memory unit 306 also may store information for various programs and applications, as well as data specific to printing device 160.
Computing platform 301 may host one or more processors, such as CPU 302. These processors are capable of executing instructions 315 stored at one or more storage locations 314. By executing these instructions, the processors cause printing device 160 to perform various operations. The processors also may incorporate processing units for specific purposes, such as application-specific integrated circuits (ASICs) and field programmable gate arrays (FPGAs). Other processors may be included for executing operations particular to components 320, 322, 324, and 326. In other words, the particular processors may cause printing device 160 to act as a printer, copier, scanner, and a facsimile device.
Printing device 160 also includes an operations panel 308, which may be connected to computing platform 301. Operations panel 308 may include a display unit 316 and an input unit 317 for facilitating interaction with a user to provide commands to printing device 160.
Printing device 160 also includes network communication processing unit 318. Network communication processing unit 318 may establish a network communication using network communication interface 310, such as a wireless or wired connection with one or more other image forming apparatuses or network service. CPU 302 may instruct network communication processing unit 318 to transmit or retrieve information over a network using network communication interface 310. As data is received at computing platform 301 over a network, network communication processing unit 318 decodes the incoming packets and delivers them to CPU 302. CPU 302 may act accordingly by causing operations to occur on printing device 160. CPU 302 also may retrieve information stored in memory unit 306, such as settings for printing device 160.
Printing device 160 also includes engine 360. Engine 360 may be a combination of hardware, firmware, or software components that act accordingly to accomplish a task. For example, engine 360 is comprised of the components and software to print a document. It may receive instructions from computing platform 301 after user input via operations panel 308. Alternatively, engine 360 may receive instructions from other attached or linked devices.
Engine 360 manages and operates the low-level mechanism of the printing device engine, such as hardware components that actuate placement of toner onto paper. Raster image processor (RIP) firmware 390 that interprets the page description languages (PDLs) would transmit and send instructions down to the lower-level engine 360 for actual rendering of an image and application of the toner onto paper during operations on printing device 160.
Printing device 160 may include one or more sensors 362 that collect data and information to provide to computing platform 301 or CPU 302. Each sensor 362 may be used to monitor certain operating conditions of printing device 160. Sensors 362 may be used to indicate a location of a paper jam, failure of hardware or software components, broken parts, operating system problems, document miss-feed, toner level, as well as other operating conditions. Sensors 362 also may detect the number of pages printed or processed by printing device 160. When a sensor 362 detects an operational issue or failure event, it may send a signal to CPU 302. CPU 302 may generate an error alert associated with the problem. The error alert may include an error code.
In some embodiments, printing device 160 communicates with user interface 130 through REST API, which allows the server to collect data from multiple devices within content management system 100. REST API and SOAP are application protocols used to submit data in different formats, such as files, XML messages, JSON messages, and the like. By utilizing applicable network communication protocols and application protocols, printing device 160 submits and receives data from user interface 130 and computing device 110.
Computing device 110 includes matching phrase counting unit 111, first proximity parameter calculating unit 112, distance measurement unit 113, second proximity parameter calculating unit 114, and similarity rate calculating unit 115.
Matching phrases counting unit 111 is adapted to count the number of matching phrases between reference electronic document 142 and first electronic document 104A. The number of matching phrases may be one or more than one. If there is no matching phrase in first electronic document, the first electronic document will be discarded and computing device 110 compares next electronic document (e.g., second electronic document retrieved from document storage 102) inputted by input device 140. In accordance with the disclosed embodiments, the matching phrase may be an exact-matched phrase or a partial-matching phrase and the matching phrase may follow a same sequence as that in reference electronic document. Further, the matching phrase has a same length (i.e, same number of words in the phrase) as that in reference electronic document 142. In some cases, there may be more than one matching phrase. For example, there may be one matching phrase that has 10 words in length, and another matching phrase that has only 5 words in length. When more than one matching phrase are found, computing device 110 processes each matching phrase individually to determine a first proximity parameter 10 for each matching phrase and combines all first proximity parameters together at the end.
Further, according to the disclosed embodiments, as the lengths of compared electronic documents may be largely different, the count of matching phrases needs to be normalized based on the lengths of the documents. Otherwise, it will be difficult to compare a 1-page document with a 100-page document.
First proximity parameter calculating unit 112 determines first proximity parameter/parameters 10 based on the number of matching phrases in first electronic document 104A. In the disclosed embodiments, the first proximity parameter/parameters 10 may be calculated based on the number of matching words in each pair of matching phrases between reference electronic document 142 and first electronic document 104A. For example, a pair of matching phrases between reference electronic document 142 and first electronic document 140A both have 10 words following a same sequence, except one word that does not match between the pair of matching phrases. Thus, for first electronic document 104A, first proximity parameter calculating unit 112 determines that first proximity parameter 10 of the matching phrase (in the pair of matching phrases) contained in first electronic document 104 will be count as 0.9. First proximity parameter calculating unit 112 may determine more than one first proximity parameter if there are different pairs of matching phrases with more than one words unmatched. For example, if two words are unmatched from a 10-word-length matching phrase, the first proximity parameter 10 of this matching phrase will be 0.8. Further, when exact-matched phrases are found, the first proximity parameters 10 for these exact-matched phrases will be 1.
That is, the first proximity parameter 10 can be obtained by the following equation:
First pair of matching phrases 502 and 502′ is shown, as follow:
Phrases “Thank you very much” 502 and “Thank you so much” 502′ do not match exactly, but will have a close similarity rate because only one word out of four does not match. As there are three matched words in a pair of four-word matching sentences between document A and document B, the first proximity parameter for this pair of matching phrases 502-502′ will be ¾=0.75. The first proximity parameters reflect both the number of missing words and the number of matched words.
In the same manner, the other pair of matching phrases 504-504′ will have a first proximity parameter of 1 as the phrases “Please contact us” 504 and 504′ in both documents A and B are exactly matched.
It is noted that the more the matching phrases are, the higher the similarity rate will be. Also, the more words contained in a matching phrase are, the more weight of the matching phrase the similarity rate will be considered.
Back to
The distance between subsequent matching phrases may be measured by counting how many phrases existed between the subsequent matching phrases, like the following example.
According to the disclosed embodiments, distance measuring unit 113 measures the distances between subsequent matching phrases in reference electronic document 142 and first electronic document 104A, respectively. If these two documents consist of long texts with only two matching phrases, there will be only one second proximity parameter 20 and a value of the second proximity parameter will depend on how close these two matching phrases are.
In the embodiment of
First proximity parameters 10 and second proximity parameter 20 will be considered by similarity rate calculating unit 115 to calculate and obtain a similarity rate between reference electronic document 142 and first electronic document 104A, as shown in
As described above, in the example of
Thus, the similarity rate between document A and B is 4*0.75+3*1+⅛, which can be deemed as 6.125%.
Please note that equations (1)-(3) as shown above are illustrated for exemplary purposes only. Other mathematical operations which can obtain relative values of the matching words in each matching phrase and the distances between subsequent matching phrases between a primary/reference electronic document and an electronic document to be compared with the primary/reference electronic document can also be used without limitation.
In accordance with the disclosed embodiments, the user may further select electronic documents which have desired similarity rates in relation to document A (e.g., a reference electronic document such as document 142) through user interface 130 or input device 140. For example, the user may choose to select all documents that have similarity rates of 75% and up in relation to document A. In this scenario, document B will be ignored as its similarity rate is only 6.125%. Computing device 110 would compare next document, such as second electronic document 104B of
Step 602 executes by receiving a reference electronic document at similarity rate calculating system 200. The reference electronic document may be a scanned document received from printing device 160 or an electronic document retrieved from a document storage, e.g., document storage 102 in
Step 604 executes by entering user instructions at input device 140 through user interface 130 to search documents using search engine 120 among at least one document storage, such as storage 102. Step 606 executes by searching document storage 102 upon receiving the user instructions. As described above, the user instructions may include searching electronic documents of which the similarity rates in relation to reference electronic document 142 meets a desired range, selecting these electronic documents, displaying these electronic documents, and outputting these electronic documents.
Step 608 executes by receiving a number of electronic documents at computing device 110 that are to be compared with the reference electronic document 142. The number of electronic documents may be retrieved from document storage 102. Step 608 also executed by computing device 110 comparing the number of electronic documents with the reference electronic document 142 serially or simultaneously. In the following steps 610-616, computing device 110 compares the number of electronic documents one at a time for example.
Step 610 executes by counting the number of matching phrases between the reference electronic document and the compared electronic document. The matching phrases between the two documents may include exactly-matched phrases and partial-matched phrases and contain same number of words (length of a matching phrase.)
Step 612 executes by counting matched words in the matching phrases and calculating a ratio of the number of matched words with the length of the matching phrase to obtain a first proximity parameter. In some cases, there would be more than one matching phrases. When more than one matching phrase occurs, step 612 executes by calculating a respective first proximity parameter for respective matching phrases.
In addition to counting the number of matching phrases, step 614 further executes by measuring distances between subsequent matching phrases in the reference electronic document. Step 614 also executes by measuring distances between subsequent matching phrases in the compared electronic document. These steps are important for deciding the similarity rate because the distances between subsequent matching phrases may be very close in one document, but very far in the other document. Taking the distances into account, the similarity rate can be obtained more accurately.
Next, step 616 executes by calculating at least one second proximity parameter based on the measured distances obtained from step 614. In accordance with the disclosed embodiments, the second proximity parameter may be obtained by a ratio of the measured distance in the reference electronic document and the measured distance in the compared electronic document. For example, if the distance between subsequent matching phrases in the reference electronic document is 10 and the distance in the compared electronic document is 80, the second proximity parameter will be ⅛. Other mathematical operations to determine the relationship of the measure distances in the reference electronic document and the compared electronic document can also be applied to obtain the second proximity parameter. It is noted that when there are more than two matching phrases between the reference electronic document and the compared electronic document, there will be more than one second proximity parameter.
Next, step 618 executes by calculating the similarity rate of the compared electronic document in relation to the reference electronic document based on the first and second proximity parameters obtained in steps 612 and 616. The calculation of the similarity rate may be referred to the above-mentioned equation (3).
As described above, the user may enter instructions to review the first electronic document if the similarity rate thereof is at or above a desire range. Thus, step 702 executes by determining if the similarity rate obtained in step 618 meets the desired range. If the answer is No, the compared electronic document will be discarded at step 704. Step 706 then executes by computing device 110 comparing next electronic document and flowchart 700 repeats steps 610-618.
It the answer of step 702 is Yes, step 710 executes by computing device 110 selecting the compared electronic document and saving the compared electronic document in a search result list. Alternatively, computing device 110 may send the compared electronic document to output device 150 for display upon user's request.
After all of the electronic documents retrieved from document storage 102 are compared and those electronic documents of which the similarity rates meets the desired range are saved in the search result list, step 712 executes by displaying the search result list on output device 150.
Next, step 714 executes by user selecting electronic documents in the search result list and displaying the selected electronic documents.
Step 716 executes by outputting the selected electronic documents. For example, the user may selected certain electronic documents to be sent to printing device 160 to be printed or to be scanned and saved in a memory unit.
According to the disclosed embodiments, user interface 130 has several options for automatic search. The user needs not to enter keywords for searching, but defines options how to calculate the similarity rate between the primary (source or reference) document and other documents. As shown in
The system and method in accordance with the disclosed embodiments obtain similarity rates between electronic documents based on the number of matching phrases and the distances between subsequent matching phrases. The similarity rates can be useful in searching electronic documents that have similar styles and meanings to a primary document. As a database may store thousands of documents, it may be time-consuming to compare all stored documents with a primary electronic document when using the similarity rate as one of searching criteria. Thus, the disclosed embodiments may focus only on business documents (e.g., accounting, legal documents, etc.) or documents in specific categories to limit the number of compared documents. The disclosed embodiments may also limit to compare only first pages of the documents, or a portion of documents that are considered important.
Alternatively, if the system and method of the disclosed embodiment are used to compare structural documents, in which each field of the documents can be defined by its name and value (i.e., key-value pairs,) the similarity rate can be calculated for each field separately. The total similarity rate will then be determined based on the number of the fields and the sizes thereof. For example, a field “SHIP TO” can be defined as a text string with 512 characters (words) and a filed “DESCRIPTION” may have a much longer size, e.g., 4K byte. These sizes will be taken in account when calculating similarity rates of both the “SHIP TO” field and the field “DESCRIPTION”.
In some cases where documents with different types and structures are compared, for example, an invoice v.s. a travel report, a user may enter user instructions to map fields between two types of documents before comparing the fields.
As will be appreciated by one skilled in the art, the present invention may be embodied as a system, method or computer program product. Accordingly, 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, the present invention may take the form of a computer program product embodied in any tangible medium of expression having computer-usable program code embodied in the medium.
Any combination of one or more computer usable or computer readable medium(s) may be utilized. The computer-usable or computer-readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific examples (a non-exhaustive list) of the computer-readable 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 transmission media such as those supporting the Internet or an intranet, or a magnetic storage device. Note that the computer-usable or computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, or otherwise processed in a suitable manner, if necessary, and then stored in a computer memory.
Computer program code for carrying out operations 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).
The present invention is described 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.
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.
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 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, specific 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.
Embodiments may be implemented as a computer process, a computing system or as an article of manufacture such as a computer program product of computer readable media. The computer program product may be a computer storage medium readable by a computer system and encoding a computer program instructions for executing a computer process. When accessed, the instructions cause a processor to enable other components to perform the functions disclosed above.
The corresponding structures, material, acts, and equivalents of all means or steps 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 are 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 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 embodiments with various modifications as are suited to the particular use contemplated.
One or more portions of the disclosed networks or systems may be distributed across one or more content management systems coupled to a network capable of exchanging information and data. Various functions and components of the content management system may be distributed across multiple client computer platforms, or configured to perform tasks as part of a distributed system. These components may be executable, intermediate or interpreted code that communicates over the network using a protocol. The components may have specified addresses or other designators to identify the components within the network.
It will be apparent to those skilled in the art that various modifications to the disclosed may be made without departing from the spirit or scope of the invention. Thus, it is intended that the present invention covers the modifications and variations disclosed above provided that these changes come within the scope of the claims and their equivalents.