Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
DOCUMENT SEARCHING METHOD AND THE SYSTEMS THEREOF
Document Type and Number:
WIPO Patent Application WO/2020/174297
Kind Code:
A1
Abstract:
A computer implemented 'algorithmic search method' to search the plain text to extract informa7on. The 'Search-Inputs' can be keywords or phrases. One 'Search-Input' is added per search iteration. The first search iteration is performed on the whole plain text. The subsequent search iterations are confined to the result-set generated in the immediate preceding iteration; thus with each search iteration, the relevant information is narrowed down. The 'algorithmic search method' has a provision to utilize the slider and the shuffle mechanisms. After entering at least one 'Search-Input', the use of slider mechanism dynamically alters 'scope of the search', and automatically re-performs the search on the whole plain text. After entering at least two 'Search-Inputs', the use of the shuffle mechanism realigns the order of already entered 'Search-Inputs', and automatically re-performs the search on the whole plain text with the renewed order.

Inventors:
NAIDU B S BHARATH KUMAR (IN)
Application Number:
PCT/IB2020/050717
Publication Date:
September 03, 2020
Filing Date:
January 30, 2020
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
NAIDU B S BHARATH KUMAR (IN)
International Classes:
G06F17/30
Foreign References:
US20160078102A12016-03-17
US5392428A1995-02-21
Download PDF:
Claims:
Claims

1. A computer-implemented search method for searching the‘Raw-Text’ (Plain Text), obtained from file/files, to extract relevant content in the form of‘Context-Result- Snippets’, wherein the method comprises of : a. Receiving‘Raw-Text’ extracted from file/files such as electronic documents - including TXT, MS WORD, PDF, MS EXCEL, PPT, etc -, image files that contain text, audio and video files that contain speech; b. Receiving the value signified by the slider position - the slider being at the default position or at the user selected position -, to determine both the parameters i.e., the‘scope of the search’ and the size of each‘Context-Result- Snippet’; c. Receiving the first keyword or phrase entered by the user as‘Search-Input’ and parsing it into a pattern; performing the first search iteration on the‘Raw-Text’ with the pattern to generate first set of‘Context-Result-Snippets’; d. In the second and the subsequent search iterations, the existing pattern is updated by appending it with the newly received‘ Search-Input’ to generate a new-pattern; after‘n’ number of search iterations, the pattern contains all the‘n’ number of ‘ Search-Inputs’ cumulatively in an interconnected fashion; e. In the second and the subsequent search iterations, the search process can be progressed in any or both of the below approaches, comprising:

Approach 1 :

The search is performed on the set of‘Context-Result-Snippets’ generated in the immediate preceding search iteration. All the‘Context-Result-Snippets’, containing at least one match with the new-pattern are populated to the user as the new set of‘Context-Result-Snippets’.

Approach 2:

The search is freshly performed on the whole‘Raw-Text’. All the matches of the new-pattern, found in the‘Raw-Text’, are built into a new set of‘Context- Result-Snippets’ and populated to the user.

2. The method according to claim 1, wherein generation of ‘Context-Result-Snippets’ by addition of the first‘Search-Input’ comprising:

a. Receiving the first keyword or phrase entered by the user as‘Search-Input’ and parsing it into a pattern;

b. Searching the whole ‘Raw-Text’ with the pattern: all the matches-of-the- pattern found in the whole‘Raw-Text’ are captured;

c. Taking every match-of-the-pattern separately, to append and prepend respectively with characters immediately preceding and succeeding it, in order to generate a‘Context-Result- Snippet’;

d. In the‘Context-Result-Snippet’, the number of characters occurring back and forth of each match-of-the-pattern are equal; the number itself being equal to the number signified by the position of the slider;

e. Each‘Context-Result-Snippet’ provides context for corresponding match-of- the-pattern;

f. The number of‘Context-Result-Snippets’ generated is equal to the number of matches-of-the-pattem found in the‘Raw-Text’;

thus, the first‘Search-Result-Set’ containing the total number of ‘Context-Result- Snippets’ generated in the first search iteration are populated to the user.

3. The method according to claim 1, wherein the second and subsequent searches of the search process are performed on the set of‘Context-Result-Snippets’ generated in the immediate preceding search iteration, the operations comprising:

a. In the search process, the‘Context-Result-Snippets’ generated after the first search iteration are taken as the base for the second search iteration; b. In the second search iteration, the pattern generated in the first search iteration - containing the first‘Search-Input’ - is to be updated; the second‘Search- Input’ is parsed and the pattern is updated; the new-pattern contains the first and the second‘Search-Inputs’ cumulatively in an interconnected fashion;

c. The search with the new-pattern is performed only on the‘Context-Result- Snippets’ generated after the first search iteration; all the‘Context-Result- Snippets’ containing at least one match with the new-pattern are populated as the second‘Search-Result- Set’ of‘Context-Result-Snippets’;

d. The ‘Context-Result-Snippets’ contained in the second ‘Search-Result-Set’ forms the base for the third search iteration. similarly, the process of narrowing down the‘Context-Result-Snippets’ with each iteration continues for all the subsequent search iterations of the search process.

4. The method according to claim 1, wherein the second and subsequent searches of the search process are performed on the whole‘Raw-Text’, the operations comprising:

a. In the second search iteration, the pattern generated in the first search iteration - containing the first‘Search-Input’ - is to be updated; the second‘Search- Input’ is parsed and the pattern is updated; the new-pattern contains the first and the second‘Search-Inputs’ cumulatively in an interconnected fashion;

b. The search is freshly performed, with the new-pattern, on the whole‘Raw- Text’; all the matches of the new-pattern found in the whole‘Raw-Text’ are captured and built into‘Context-Result-Snippets’; the new set of ‘Context- Result-Snippets’ are populated to the user as the second‘Search-Result-Set’;

similarly, in all the subsequent search iterations, the process of updating the pattern generated in the immediate preceding iteration and then freshly performing the search on the‘Raw-Text’ with the new-pattern is continued.

5. The method according to claim 1, wherein the provision of a slider comprises:

a. Establishing user control on the‘scope of the search’ and the size of the ‘ Context-Result-Snippets’ ; b. Capturing the user‘movements of the slider’ at the beginning of the search process, before entering any‘Search-Input’, to determine both the parameters i.e.,‘scope of the search’ and the size of each‘Context-Result-Snippet’; both the parameters are reflected when the search process is initiated i.e., when the first‘Search-Input’ is entered;

c. Capturing the user‘movements of the slider’ in the middle of the search process, after entering at least one‘Search-Input’, to dynamically alter both the parameters i.e., the‘scope of the search’ and the size of each‘Context- Result-Snippet’; the search is freshly performed on the whole‘Raw-Text’ with the altered parameters;

thus, in the middle of the search process, back and forth‘movements of the slider’ result in automatic re-performing of the search, to possibly generate new set of‘Context-Result- Snippets’ .

6. The method according to claim 1, wherein the provision for shuffling’ comprises:

a. Establishing user control on the order of the already entered‘Search-Inputs’: the listed‘Search-Inputs’ are provided with active controls to enable‘drag and drop’ mechanism;

b. Enabling user control to shuffle when more than one‘Search-Input’ is entered; the‘Search-Inputs’ can be shuffled by using‘drag and drop’ mechanism;

c. Capturing the‘drag and drop’ shuffle-movements performed by the user to alter the order of the already entered‘Search-Inputs’;

d. The renewed order of‘Search-Inputs’ are taken together to be parsed into a pattern; the search is freshly performed on the whole‘Raw-Text’ with the pattern; so, the search performed automatically with the renewed order can possibly generate alternative‘Context-Result-Snippets’ with different context.

7. A computer-implemented search method to generate‘Context-Result-Snippets’ after receiving one or more‘Search-Inputs’ from the user, the method comprising: a. Receiving the value signified by the slider position - the slider being at the default position or at the user selected position - to determine both the parameters i.e., the‘scope of the search’ and the size of each‘Context-Result- Snippet’; b. Receiving the first keyword or phrase entered by the user as‘Search-Input’ and parsing it into a pattern; performing the first search iteration on the‘Raw- Text’ with the pattern to generate first set of‘Context-Result-Snippets’; c. In the second and the subsequent search iterations, the existing pattern is updated by appending it with the newly received‘Search-Input’ to generate a new-pattern; after‘n’ number of search iterations, the pattern contains all the ‘n’ number of‘Search-Inputs’ cumulatively in an interconnected fashion;

d. In the second and the subsequent search iterations, the search process can be progressed in any or both of the below approaches, comprising:

Approach 1 :

The search is performed on the set of‘Context-Result-Snippets’ generated in the immediate preceding search iteration. All the‘Context-Result-Snippets’, containing at least one match with the new-pattern are populated to the user as the new set of‘Context-Result-Snippets’.

Approach 2:

The search is freshly performed on the whole‘Raw-Text’. All the matches of the new-pattern, found in the‘Raw-Text’, are built into a new set of‘Context- Result-Snippets’ and populated to the user.

8. A computer-implemented search method, wherein the‘Context-Result-Snippets’ are generated by‘movements of the slider’ comprising:

a. Capturing the‘movements of the slider’ done by the user in the middle of the search process after entering one or more‘Search-Inputs’;

b. Altering the parameters of‘scope of the search’ and the size of the‘Context- Result-Snippets’ in accordance to the corresponding‘movement of the slider’; c. After reflecting the altered parameters, automatically re-performing the search on the whole‘Raw-Text’, with the existing order of ‘Search-Inputs’ taken together as a pattern, to generate‘Context-Result-Snippets’.

9. A computer-implemented search method, wherein the‘Context-Result-Snippets’ are generated by shuffle-movements comprising:

a. Capturing the shuffle-movements done by the user;

b. Reordering the listed ‘Search-Inputs’ in accordance to the corresponding shuffle-movement;

c. Automatically re-performing the search on the whole‘Raw-Text’ with the renewed order of ‘Search-Inputs’ taken together as a pattern, to build alternative‘Context-Result-Snippets’ with different context.

Description:
DOCUMENT SEARCHING METHOD AND THE SYSTEMS THEREOF

BACKGROUND

Field of the Invention:

The present innovation in the technical field is a computer-implemented‘algorithmic search method’ which uses the hardware and processing power of computers, mobiles and other electronic devices like tablets etc to perform the search. The invention aims to improve the quality of search and analysis of information retrieved from file/files such as electronic documents, images, audio files and video files.

Description of the Related Art:

As a result of digitalization, today’s interconnected world, throws huge data to every sector in the form of electronic files such as electronic documents, images, audio files and video files, the efficient use of which is essential to the success of any industry. The information contained in these electronic files is obtained from various sources such as software applications, e-mails, internet, scanned documents etc. Speed and efficiency in search, information extraction and analysis from large number of files is the need of the hour.

Many existing‘algorithmic search methods’ can retrieve relevant information from electronic files which are stored on or accessed from the computer-local system, server-remote systems, cloud based environment, Internet-web environment etc. Information retrieval is primarily based on‘Search-Input’ which typically is a keyword i.e., a single word or a phrase i.e., a combination of multiple words; the‘Search-Input’ typically retrieves all the possible occurrences of that particular keyword/phrase contained within the file/files. Disadvantages:

In the existing‘algorithmic search methods’:

1. The focus is on full-search of either a single file or multiple files throughout the search process. During the search process, each occurrence of the‘Search-Input’ is simply highlighted on the whole file/files. This approach is very ineffective to derive the context signified by each occurrence of the‘Search-Input’.

2. All the‘Search-Inputs’ are mutually exclusive and no relation can be established between them. There is no provision for designing a search process which uses synergy i.e., to connect and facilitate the interaction of individual‘Search-Inputs’ to produce a combined effect that is greater than the effect produced by the simple sum of non-interacting ‘Search-Inputs’.

3. When the search is performed, all the occurrences of the ‘Search-Input’ are merely highlighted on the full file/files. It is not possible to take each occurrence of the‘Search- Input’ separately, to append and prepend it, respectively with characters immediately preceding and succeeding it, in order to create a bundle. These‘bundles of characters’ i.e.,‘packets of text’, also called as‘Context-Result-Snippets’, provide context for each occurrence of the‘Search-Input’; so, the inexistence of provision for‘bundling’ negates the possibility of obtaining context.

4. There is no provision to populate a single‘Search-Result- Set’ containing multiple results, with each result corresponding to one ‘Context-Result-Snippet’; this negates the possibility to differentiate between multiple‘Context-Result-Snippets’. Because of the aforementioned limitation, the size of each of the‘Context-Result-Snippets’ can’t be increased; this denies the possibility to derive more content with better context. 5. In the search process, all the search iterations with all the‘Search-Inputs’ are performed on the whole file/files. There is no provision for performing the first search iteration on the whole file/files and then the subsequent search iterations on the‘Search-Result-Set’ containing the‘Context-Result-Snippets’ generated in the immediate preceding iteration; the absence of the aforementioned provision denies the possibility to filter and narrow down the required content with each search iteration.

6. The‘scope of the search’ encompasses the whole file/files for all search iterations. There is no provision to customize i.e., to decrease or increase the‘scope of the search’ in the middle of the search process.

7. There is no mechanism for interconnecting the entered‘Search-Inputs’, in exact order of their entry, to build a pattern; this negates the possibility to shuffle and reorder the ‘Search-Inputs’ to build new patterns. The inability to create and search with multiple new patterns negates the possibility to generate alternative ‘Search-Result- Sets’, containing‘Context-Result- Snippets’ with different contexts.

SUMMARY OF THE INVENTION

The widely used electronic files today are electronic documents such as - including but not limited to TXT, MS WORD, PDF, MS EXCEL, PPT -, image files that contain text, audio and video files that contain speech. Due to the short comings in the existing‘algorithmic search methods’, the effort required for search, extraction and analysis of relevant information from these electronic files is extremely tedious and likely to lead to missing important information. Therefore, there is a need for efficient‘algorithmic search method’ which redefines the entire paradigm of the processes of search and analysis to improve the relevancy of the retrieved information. The proposed‘algorithmic search method’ extracts relevant information by searching the text acquired from the file/files such as electronic documents, images, audio files and video files. The primary input to the‘algorithmic search method’ is text; thus, can be applied on text acquired from the speech contained in audio files and video files and text ingrained in images to extract information.

Salient features of the Invention

The core part of the invention is an‘algorithmic search method’ which extracts information by progressive addition of keywords/phrases - the‘Search-Inputs’. The‘algorithmic search method’ establishes a synergy i.e., aligns the individual ‘Search-Inputs’ to interact and produce a combined effect that is greater than the effect achieved by the simple sum of non-interacting ‘Search-Inputs’.

The ‘algorithmic search method’ inherently contains a provision for utilizing a slider to determine the two parameters i.e.,‘scope of the search’ and size of the results at the beginning and alter them - increase or decrease - in the middle of the search process.

The‘algorithmic search method’ has a built in provision to take advantage of shuffling the ‘Search-Inputs’ in the middle of the search process. This realignment allows the possibility for achieving alternative information with different context.

The above mentioned tasks are performed on a Graphical User Interface (GUI), which is essentially a display medium for the working of the Invention. Advantages of the proposed method:

In the proposed‘algorithmic search method’:

1. In the beginning of the search process, the focus is on full search of either a single file or multiple files; as the search progresses, the focus shifts to relevant parts of the file/files. During the search process, instead of simply highlighting each occurrence of the‘Search- Input’ on the whole file/files, the part of the file/files containing each occurrence of the ‘Search-Input’ are separated and populated individually; this approach is very effective to derive the context signified by each occurrence of the‘Search-Input’.

2. For all the‘Search-Inputs’ to act as a combined whole, a relation can be established between them. There is a provision for designing the search process which uses synergy i.e., to connect and facilitate the interaction of individual‘Search-Inputs’ to produce a combined effect that is greater than the effect produced by simple sum of non-interacting ‘Search-Inputs’.

3. When the search is performed, each occurrence of the‘Search-Input’ is taken separately, to be appended and prepended respectively with characters immediately preceding and succeeding it, in order to create a bundle. These‘bundles of characters’ i.e.,‘packets of text’, also called as‘Context-Result- Snippets’, provide context for each occurrence of the ‘Search-input’.

4. There is a provision to populate a single‘Search-Result- Set’ containing multiple results, with each result corresponding to one ‘Context-Result-Snippet’; this differentiates between multiple ‘Context-Result-Snippets’. Because of the aforementioned differentiation, the size of each of the‘Context-Result-Snippets’ can be increased later to derive more content with better context. 5. The first search iteration of the search process is performed on the whole file/files and then the subsequent search iterations are performed on the‘Search-Result- Set’ containing the ‘Context-Result- Snippets’ generated in the immediate preceding iteration; this provision enables the ability to narrow down and filter the required content with each search iteration.

6. The ‘scope of the search’ can encompass the whole file/files or can be confined to relevant parts of the file/files. Also, the ‘scope of the search’ can be decreased or increased in the middle of the search process. These provisions enhance control and customizability on the search process.

7. There is a mechanism for interconnecting the entered‘Search-Inputs’, in exact order of their entry, to build a pattern. The‘Search-Inputs’ can be shuffled and reordered to build new patterns. The ability to create and search with multiple new patterns enables the possibility to generate alternative ‘Search-Result- Sets’, containing ‘Context-Result- Snippets’ with different contexts.

BRIEF DESCRIPTION OF THE DRAWINGS

Figure-1 : Flow chart illustrating the search process, the slider mechanism and the shuffling of keywords/phrases - the‘Search-Inputs’.

Figure 2a: Typical screenshot of the graphical user interface depicting the Document-Load-Area prior to the search according to the embodiment of the disclosure.

Figure 2b: Typical screenshot of the graphical user interface depicting the slider, Result-Display- Area and Shuffle- Area prior to the search according to the embodiment of the disclosure. Figure 3: Typical screenshot of the graphical user interface at the beginning of the search process according to the embodiment of the invention.

Figure 4a, 4b, 4c: Typical screenshots of the graphical user interface while performing the progressive addition of‘Search-Inputs’ according to the embodiment of the invention.

Figure 5: Typical screenshots of the graphical user interface describing the function of the slider mechanism according to the embodiment of the invention.

Figure 6: Typical screenshot of the graphical user interface demonstrating the shuffling of the ‘Search-Inputs’ according to the embodiment of the invention.

DETAILED DESCRIPTION

It is to be understood that the embodiments of the invention herein described are merely illustrative of the application of the principles of the invention. Reference herein to details of the illustrated embodiments is not intended to limit the scope of the claims, which themselves recite those features regarded as essential to the invention.

A display is provided for the working of the‘algorithmic search method’ describing the search process including the slider and the shuffling mechanisms. The invention is implemented through the use of source code.

Outline of the search process

The outline of the activity of search process comprises the following steps. However, the invention can still be arrived at by modifying the order of the steps while retaining the most of the essential features of the invention. The computer implemented‘algorithmic search method’ is not limited to the following steps of activities alone. Flow chart illustrating the search process, the slider mechanism and the shuffling of keywords/ phrases - the‘Search-Inputs’ is described in Figure-1.

Step-1: Launch the application (101).

Step-2: Load the file/files (102):

A wide variety of file formats including but not limited to PDF, MS-Word, TXT, PPT, XLS, XLSX, CSV, Image, Audio and Video files are supported. These files are computed and compiled in the background to generate ‘Raw-Text’ (plain text) using third party libraries. The ‘Algorithmic search method’ accepts this‘Raw-Text’ as input for performing the search process including the slider and the shuffling mechanisms.

Step-3: Enter the keywords/phrases - the‘Search-Inputs’ (103):

The algorithmic search method takes these‘Search-Inputs’ as the basis to mine the‘Raw-Text’ to generate appropriate information - the‘Context-Result-Snippets’.

Scenario-1 : If the ‘Search-Inputs’ leads to relevant ‘Context-Result-Snippets’ (104) to a satisfactory level, stop the search process (111).

Scenario-2: If the retrieved‘Context-Results-Snippets’ are not convincing, there is a provision of a slider mechanism (105). When the slider is moved forward, the ‘scope of the search’ is increased and the search is automatically re-performed; the search may generate additional ‘Context-Results-Snippets’ (106) with better insight. The resultant‘Context-Result- Snippets’ are bigger in size and larger in content owing to the increased value of the new slider position. If the ‘movements of the slider’ lead to relevant‘Context-Result-Snippets’ (107) to a satisfactory level, stop the search process (111). Scenario-3: Even after using the slider mechanism, if the freshly arrived set of‘Context-Result- Snippets’ are not fully convincing, use the shuffle mechanism (108). When the order of‘Search- Inputs’ is altered by shuffling mechanism, the search is automatically re-performed with the renewed order; the search may generate alternative ‘Context-Results- Snippets’ (109) with different context. If the alternative ‘Context-Result-Snippets’ are convincing (110) to a satisfactory level, stop the search process (111).

If the‘Context-Result-Snippets’ are still not convincing, repeat step-3 with new/additional set of ‘Search-Inputs’; continue the process till the desired level of relevancy is achieved.

The aforementioned three scenarios in step-3 are portrayed linearly only for ease of understanding. The dynamism of the‘algorithmic search method’ allows non linear traversing between entering‘Search-Inputs’, the use of the slider and the use of shuffling mechanism in any order.

Graphical user interface before search

Typical screenshot of the graphical user interface depicting the Document-Load- Area prior to the search according to the embodiment of the disclosure is described in Figure-2a.

Typical screenshot of the graphical user interface depicting the slider, Result-Display-Area and Shuffle-Area prior to the search according to the embodiment of the disclosure is described in Figure-2b.

The Graphical User Interface (GUI) may consist of the following features. The‘Document’ tab contains‘Browse and Load’ button (201) which allows the user to load the file/files. The file/ files is then processed and converted into‘Raw- Text’ and displayed in the Document-Load- Area (202). Then, the control automatically moves to the‘Workspace’ tab. The‘Workspace’ tab contains an Input- Text-Box (203) to enter the‘Search-Inputs’. The‘Search- Inputs’ are listed in the Search-Input-Display-Area (204). Shuffling the‘Search-Inputs’ is done in the Search-Input-Display-Area (204). The‘Search-Result-Set’ - the‘Context-Result-Snippets’ - are displayed in the Search-Result-Display- Area (205). A Slider (206) is provided, with provision for forward and backward movement, to correspondingly increase and decrease the‘scope of the search’ and the size of each individual‘Context-Result-Snippet’.

The working of the invention is illustrated with the following example; however the invention is not limited to the functions performed in these examples alone.

Graphical user interface at the beginning of the search process

Typical screenshot of the graphical user interface at the beginning of the search process according to the embodiment of the invention is described in Figure-3.

In this embodiment (301): using the‘Browse and Load’ button, the file is loaded into the Document-Load-Area as‘Raw- Text’ (Plain Text). This‘Raw- Text’ is extracted by processing the file/files with the help of third party libraries and is displayed in the‘Text- Area’.

Graphical user interface while performing the search process

Typical screenshots of the graphical user interface while performing the progressive addition of ‘Search-Inputs’ according to the embodiment of the invention is described in Figure-4a, 4b, 4c.

In the search process, the first search iteration with the first‘Search-Input’ is performed on the whole‘Raw-Text’. In subsequent search iterations, a new‘Search-Input’ is entered and the search is confined to the‘Search-Result- Set’ i.e., ‘Context-Result-Snippets’ generated in the immediate preceding search iteration. Thus, with progressive addition of ‘Search-Inputs’, the required content is narrowed down with decrease in number and increase in relevance of the ‘ Context-Result-Snippets’ .

In the first search iteration, the first ‘Search-Input’ is parsed into a regular expression - ‘Combined-Search-Input’. In the‘Combined-Search-Input’, the first‘Search-Input’ exists as a pattern. The’algorithmic search method’ searches the whole‘Raw- Text’ for a match with the pattern contained in the‘Combined-Search-Input’; all the matches-of-the-pattern found in the whole‘Raw- Text’ are captured.

In order to create the first‘Context-Result-Snippet’, the first match-of-the-pattern found in the ‘Raw- Text’ is taken separately and is bundled with characters back and forth of it. To create the bundle, equal number of characters are prepended and appended to the first match-of-the-pattern; this number is equal to the number signified by the position of the slider. The first match-of-the- pattern is prepended with characters immediately preceding it and appended with characters immediately succeeding it. The resultant‘bundle of characters’ -‘packet of text’ - is the first ‘ Context-Result-Snippet’ .

The above process is repeated for all the captured matches-of-the-pattern to generate the first ‘Search-Result-Set’ of ‘Context-Result-Snippets’. The number of ‘Context-Result-Snippets’ in the first‘Search-Result-Set’ is equal to the number of matches-of-the-pattern captured in the whole‘Raw- Text’.

The second search iteration confines the search to the first‘Search-Result-Set’, i.e., the set of ‘Context-Result-Snippets’ generated in the first search iteration.

In the second search iteration, the second‘Search-Input’ is parsed and the regular expression - ‘Combined-Search-Input’ - is updated. Now, the updated‘Combined-Search-Input’ contains the first‘Search-Input’ and the second‘Search-Input’ together as the new-pattern. The‘algorithmic search method’ searches all the‘Context-Result- Snippets’ contained in the first‘Search-Result- set’ for a match with the new-pattern.

All the‘Context-Result-Snippets’ in the first‘Search-Result- Set’ that don’t have a match with the new-pattern are discarded. All the‘Context-Result- Snippets’ containing at least one match of the new-pattern are populated as the second‘Search-Result-Set’ of‘Context-Result-Snippets’.

The third search iteration confines the search to the second‘Search-Result-Set’, i.e., the set of ‘Context-Result-Snippets’ generated in the second search iteration.

This process continues for all subsequent search iterations with all progressive additions of ‘Search-Inputs’; thus, by narrowing down the number of relevant‘Context-Result- Snippets’ with each search iteration, the relevant content is achieved.

Alternative search process:

The aforementioned search process above can also be performed alternatively in the following approach:

In the first search iteration the first ‘Search-Input’ is parsed into a regular expression - ‘Combined-Search-Input’. In each of the subsequent search iterations, a new‘Search-Input’ is added and the‘Combined-Search-Input’ is updated. After‘n’ number of search iterations, the pattern contains all the‘n’ number of‘Search-Inputs’ cumulatively in an interconnected fashion.

In all the search iterations, a new‘Search-Input’ is added and the regular expression is updated; the search is performed on the whole‘Raw- Text’ with the updated pattern. The‘Context-Result- Snippets’ are generated directly from the‘Raw- Text’ in every search iteration. In any search iteration, the‘Context-Result-Snippets’ generated in the immediate preceding search iteration are not considered for the search. Illustration with an Example:

The file‘SteveJobs.docx’ is loaded into the Graphical User Interface of the application. This file is a Microsoft- Word-Document containing brief information about Steve Jobs, the founder of Apple Inc. Third party libraries extract‘Raw-Text’ (plain text) from the file‘SteveJobs.docx’. ‘Raw- Text’ is displayed in the Document-Load- Area.

Description of Figure 4a:

In this embodiment (401), the first search iteration is described. The Slider is set at its default starting position of 200 characters. The first‘Search-Input’- the keyword‘steve’ - is entered into the Input- Text-Box. The‘Search-Input’‘steve’ is parsed into a regular expression -‘Combined- Search-Input’. In the ‘Combined-Search-Input’, ‘steve’ exists as a pattern. The’algorithmic search method’ searches the whole‘Raw- Text’ for a match with the pattern contained in the ‘Combined-Search-Input’; all the 64 matches-of-the-pattern found in the whole‘Raw-Text’ are captured.

The first match-of-the-pattern‘steve’ is prepended with 200 characters immediately preceding it and appended with 200 characters immediately succeeding it. The resultant ‘bundle of characters’ - ‘packet of text’ - is the first ‘Context-Result-Snippet’. The above process is repeated for all the 64 matches-of-the-pattern to generate the first‘Search-Result-Set’ containing 64‘Context-Result-Snippets’.

Description of Figure 4b:

In this embodiment (402), the second search iteration is described. The second‘Search-Input’- the keyword‘Apple’ - is entered into the Input-Text-Box. ‘Apple’ is parsed and the regular expression -‘Combined-Search-Input’ - is updated. Now, the updated‘Combined-Search-Input’ contains ‘steve’ and ‘Apple’ together as the new-pattern. The ‘algorithmic search method’ searches all the 64‘Context-Result-Snippets’ contained in the first‘Search-Result-set’ for a match with the new-pattern; all the 28‘Context-Result-Snippets’ containing at least one match with the new-pattern are populated as the second‘Search-Result-Set’.

Description of Figure 4c:

In this embodiment (403), the third search iteration is described. The third‘Search-Input’- the keyword Tpod’ - is entered into the Input-Text-Box. Tpod’ is parsed and the regular expression - ‘Combined-Search-Input’ - is updated. Now, the updated ‘Combined-Search-Input’ contains ‘steve’, ‘Apple’ and Tpod’ together as the latest-pattern. The ‘algorithmic search method’ searches all the 28‘Context-Result-Snippets’ contained in the second‘Search-Result-set’ for a match with the latest-pattern; all the 3‘Context-Result-Snippets’ containing at least one match of the latest-pattern are populated as the third‘Search-Result-Set’.

Now the Search-Result-Display-Area contains only 3‘Context-Result-Snippets’ with very high degree of relevancy. Adding‘Search-Inputs’ further is not necessary as the required specificity is already achieved. In all the three search iterations, the slider was set at its default position and the‘scope of the search’ was limited to a narrow range of 200 characters. By moving the slider forward, there is a need to increase the‘scope of the search’ to check if any additional‘Context- Result-Snippets’ can be generated.

Graphical user interface: Describing the function of the slider mechanism

Typical screenshots of the graphical user interface describing the function of the slider mechanism according to the embodiment of the invention is described in Figure- 5.

The ‘algorithmic search method’ inherently contains a provision for utilizing the slider mechanism. The number signified by the position of the slider determines the two parameters i.e.,‘scope of the search’ and the size of each of the‘Context-Result- Snippet’ at the beginning of the search process. The aforementioned parameters can be altered - increased or decreased - dynamically by moving the slider in the middle of the search process.

When the Slider is moved forward from its default position, the number signified by the new position is received as new- value by the‘algorithmic search method’ to alter the‘scope of the search’.

Case 1 : If the‘movements of the slider’ happen at the beginning of the search process i.e., before entering any‘Search-Inputs’, the new-value is simply updated. This updated value is reflected as and when the search process begins i.e., when the first‘Search-Input’ is entered.

Case 2: If the‘movements of the slider’ happen in the middle of the search process i.e., after entering at least one or more than one‘Search-Inputs’ then:

a) The‘algorithmic search method’ receives the new-value as the new scope of search; b) A‘Combined-Search-Input’ is constructed. This‘Combined-Search-Input’ contains all the ‘Search-Inputs’ together as a pattern; c) The’algorithmic search method’, with the new‘scope of the search’, automatically re-performs the search on the whole‘Raw-Text’;

The patterns in the‘Raw-Text’, matching with the pattern contained in the‘Combined-Search- Input’ are built into‘Context-Result-Snippets’, with the size signified by the new-value.

Illustration with an Example:

The slider is moved from its default position of 200 to its maximum end position of 1000 Description of Figure 5:

In this embodiment (501), when the Slider is moved to its maximum end position of 1000 characters, the‘algorithmic search method’ dynamically alters the‘scope of the search’ to 1000. All the three‘Search-Inputs’ i.e.,‘steve’,’Apple’ and’Ipod’ are taken together and constructed as a pattern in the‘Combined-Search-Input’. The search is freshly performed on the whole‘Raw- Text’, with the pattern contained in the‘Combined-Search-Input’, with altered scope of search i.e., 1000. The patterns in the‘Raw- Text’, matching with the pattern contained in the‘Combined- Search-Input’ are captured.

While building the‘Context-Result-Snippets’ for all matches-of-the-pattern found in the‘Raw- Text’, the first‘Search-Input’‘steve’ is taken as the basis; the size of each‘Context-Result- Snippet’ is determined by the new slider position i.e., 1000. The‘Search-Input’‘steve’ itself is 5 characters long; so, the total length of each new/enhanced‘Context-Result-Snippet’ is the sum of length of the‘Search-Input’‘steve’, 1000 characters immediately preceding‘steve’ and 1000 characters immediately succeeding‘steve’ i.e., 2005 characters.

In Figure 4c and embodiment (403), the set of ‘Search-Inputs’ i.e.,‘steve’,’Apple’ and’Ipod’ which populated 3 results with the slider being at its default minimum position of 200 characters, now populate 14 results because of increase in the‘scope of the search’. The additional results achieved through the‘movement of the slider' ensure that no relevant content is missed.

Between the minimum and maximum range of the slider i.e., 200 and 1000 characters, there are many intermediate positions with interval-range-difference of 50 characters between each of them i.e., 200, 250,300, .1000.

The Slider’s starting range of 200, the intervals of 50 and the maximum range of 1000 characters are shown as fixed only for illustrative purposes; the ranges can be altered to suit the requirements; say for example, the starting range can be 100, the interval-range-difference can be 100 and the maximum range can be 2000 characters.

The‘Slider’ can be moved back and forth to correspondingly increase and decrease the‘scope of the search’ and the resultant‘Context-Result-Snippets’ at any stage in the search process.

The progressive addition of‘Search-Inputs’‘steve’,‘Apple’ and Tpod’ creates a sequential order for the‘algorithmic search method’ to derive relevant‘Context-Result-Snippets’. The order of these‘Search-Inputs’ can be realigned dynamically by the use of shuffle mechanism, to generate alternative‘ Context-Result- Snippets’ .

Graphical user interface: Describing the function of the shuffle mechanism

Typical screenshot of the graphical user interface demonstrating the shuffling of the‘Search- Inputs’ according to the embodiment of the invention is described in Figure-6.

The‘algorithmic search method’ takes advantage of shuffling mechanism, to reorder the already entered‘Search-Inputs’, in the middle of the search process.

Shuffling is not possible when no‘Search-Inputs’ are entered or when only one‘Search-Input’ is entered.

After entering‘n’ number of‘Search-Inputs’ -‘n’ being greater than one -, the listed‘Search- Inputs’ are provided with active controls to enable‘drag and drop’ mechanism. The‘Search- Inputs’ can be shuffled by using‘drag and drop’ mechanism.

Shuffling creates a new order of‘Search-Inputs’ and thus requires: a) The‘algorithmic search method’ captures‘x’ - the number signified by the position of the slider. The number‘x’ determines the‘scope of the search’ and the size of the ‘ Context-Result-snippets’ ; b) The pattern contained in the‘Combined-Search-Input’ is reconstructed to reflect the new order achieved through shuffling. This reconstructed‘Combined- Search-Input’ contains all the‘Search-Inputs’ together in the new order; c) The search, with the pattern contained in the reconstructed‘Combined- Search-Input’, is automatically re-performed on the whole‘Raw- Text’, with the scope signified by the number‘x’; d) The patterns in the‘Raw- Text’, matching with the pattern contained in the reconstructed ‘Combined-Search-Input’ are built into‘Context-Result-Snippets’, with the size signified by the number‘x’.

The content and context of the alternative‘Context-Result- Snippets’ generated because of the new order of ‘Search-Inputs’, is different from the originally generated ‘Context-Result- snippets’.

Illustration with an Example:

The order of the‘Search-Inputs’‘steve’,‘Apple’ and Tpod’ are shuffled to achieve a renewed, realigned order‘Apple’, Tpod’,‘steve’.

Description of Figure 6:

In this embodiment (601), in the‘Search-Input-Display- Area’, the‘Search-Inputs’ are listed with active controls on individual listings to enable shuffling. The order of the‘Search-Inputs’‘steve’, ‘Apple’ and Tpod’ are shuffled to achieve a renewed, realigned order‘Apple’, Tpod’,‘steve’. In Figure 4c and embodiment (403), the old order of‘steve’,‘Apple’, Tpod’, with default position of the slider at 200 characters, had achieved 3 ‘Context-Result-Snippets’. The new order of ‘Apple’, Tpod’,‘steve’, with default position of the slider at 200 characters, has achieved 4 ‘Context-Result-Snippets’ which are different both in content and context.

With a set of 3 keywords, 6 different orders of ‘Search-Inputs’ can be created to generate differ ent/alternative‘Context-Result- Snippets’ in each case.

Shuffling completes the search process in its entirety. The‘algorithmic search method’ relies on interconnection of ‘Search-Inputs’ i.e., synergy, to extract highly relevant content. Shuffling provides this power of synergy to all combinations of a particular set of‘Search-Inputs’ to ensure complete extraction of relevant content.

Algorithm approach:

The following excerpts illustrate the pseudo codes for the implementation of the‘Algorithmic Search Method’ :

The coding example for loading the File/Files:

Define string global Raw- Text;

Function Data_Load_Process()

Begin

If(Loading a single file) then

Load the file into the system;

Parse the file using third party libraries and extract the‘Raw- Text’;

Elseif (Loading multiple files) then

Load the files into the system;

Parse each file using third party libraries and extract the plain text;

Merge extracted plain text from all the files to create‘Raw-Text’; End if

End

Define string global Search-Input = The Keyword/Phrase entered by the user is stored in the form of a Regular Expression;

Define global Combined-Search-Input = It’s a collection of all‘Search-Inputs’ as a pattern in the form of a Regular Expression;

Define Integer global Slider-Position;

Define string Renewed-Order-of-Search-Inputs = It’s a collection of all‘Search-Inputs’ as a pattern in the form of a Regular Expression;

Define array global Array- Of-Results = the list of‘Context-Result-Snippets’ generated after each search iteration are passed into this array;

/* the below method is triggered when user provides‘Search-Input’ */

Function Progressive Search Process (Search-Input, Raw- Text, Slider-Position)

Begin

Combined- S ear ch-Input. append(S earch-Input) ;

/* When a‘Search-Input’ is entered, the new‘Search-Input’ is appended to the regular expression‘Combined-Search-Input’. Thus, the pattern contained in‘Combined-Search- Input’ is updated */

If (Combined-Search-Input holds more than one Search-Input) then

Search Process (Combined-Search-Input, Array-of-Results, Slider-Position);

Else:

Search Process (Combined-Search-Input, Raw- Text, Slider-Position);

End /* Data-Set is an array that holds‘Raw-Text’ during the first search iteration. In the subsequent search iterations, Data-Set holds‘Array- of-Results’ containing‘Context-Result-Snippets’ generated in previous search iteration. */

Function search_process (Combined-Search-Input, Data-Set, Slider-Position)

Begin

Define array Context-Result-Snippet;

For Each match-of-the-pattern of the‘Combined-Search-Input’ found in‘Data-Set’ set Do:

String-Back = Pass characters immediately preceding the match-of-the-pattern. The number of characters to be passed is equal to the number captured in the variable‘Slider-Position’;

String-Front = Pass characters immediately succeeding the match-of-the-pattern. The number of characters to be passed is equal to the number captured in the variable‘Slider-Position’;

Pattern-Match- Text = Pass match-of-the-pattern as a string

Context-Result-Snippet = concatenate (String-Back, Pattern-Match- Text, String- Front);

Done;

global Array-of-Results = Push all the generated‘Context-Result-Snippet’ to this array; Return List of all the generated‘Context-Result-Snippet’ contained in‘Array-of-Results’ to the Graphical User interface;

End;

The coding example for the‘Movements of the Slider’ before/ in-between the Search Process:

/* Below method is triggered when user changes the‘Slider-Position’ */ Function slider_movement_search_process (Slider-Position)

Begin

If (Combined-Search-Input is empty) then:

global Slider-Position = User modified new‘Slider-Position’ value is updated in the global variable;

Return empty‘Context-Result-Snippets’ to the Graphical User Interface;

Else:

global Slider-Position = User modified new‘Slider-Position’ value is updated in the global variable;

search_process (Combined-Search-Input, Raw- Text, Slider-Position);

End;

The coding example for the Shuffling Search Process

In the Graphical User Interface, when the‘Search-Inputs’ are shuffled by‘drag and drop’ mechanism, a new order of‘Search-Inputs’ is obtained. This renewed order of‘Search-Inputs’ is passed into the regular expression‘Renewed-Order-of-Search-Inputs’.

/* Below method is triggered when user reorders the‘Search-Inputs’ list */ function shuffle_search_process(Renewed-Order-of-Search-Inputs)

Begin

global Combined-Search-Input = Renewed- Combined- Search-Input;

search_process (Combined- Sear