Abstract: The present invention describes a method and system (300, 700) for data processing. The system (300, 700) is configured to create a set of identifier-values pertaining to a number of data elements that correspond to one or more data-groups. A plurality of pairs of identifier values are considered for a comparison between the identifier values within each of said pairs, such that the identifier values within each of said pairs correspond to a pair of related data elements. In case of an inequality between identifier-values in any pair, one or more of identifier-values are substituted with one or more specific identifier-values to create updated pairs. Thereafter, the updated as well as non-updated pairs are again considered for comparison between the identifier values till the identifier values in each pair assume a uniform relationship. Thereafter, the current identifier values across all pairs are designated as representing final data groups.
Claims:We Claim:
1. A method of processing data comprising:
(a) creating (step 102) at least one set of identifier-values pertaining to a plurality of data elements, wherein said data elements correspond to one or more data-groups;
(b) considering (step 104) a plurality of pairs of identifier values for a comparison between the identifier values within each of said pairs, wherein the identifier values within each of said pairs correspond to a pair of related data elements;
(c) in case of an inequality between identifier-values within one or more particular pairs of said plurality of pairs, substituting (step 106) at least one identifier-value within said particular pairs with one or more specific identifier-values to produce one or more updated pairs;
(d) re-executing (step 108) the step (b) by considering said plurality of pairs comprising said updated pairs and non-updated pairs; and
(e) upon having achieved a uniform relationship between identifier-values in each of said plurality of pairs, designating (step 110) current identifier-values as representing new data groups.
2. The method as claimed in claim 1, wherein each of said data elements refers to a node of an undirected graph and related data elements denote connected nodes within said graph, said graph representing an overall data to be processed.
3. The method as claimed in claim 2, wherein said data elements correspond to same or different data groups and said identifier values in step (a) represents data-element cluster identifiers..
4. The method as claimed in claim 1, wherein said data groups denote default-clusters of data elements, said data groups having been formed using one or more default criteria.
5. The method as claimed in preceding claims 1-4, wherein each of said new data group denotes a data-element cluster that is bigger than or equal in size as compared to the default-clusters of data elements associated with each of data groups referred in step (a).
6. The method as claimed in claim 1-4, wherein each of said new data groups denotes a combination of one or more of data groups referred in step (a).
7. The method as claimed in claim 1, wherein said current identifier values in step (e) correspond to either the values of the first step as represented in step (a) or updated values as a result of said substitution in step (c).
8. The method as claimed in claim 1, wherein said inequality observation in step (c) between said identifier values in said particular pair results in consideration of said specific identifier value as being a lesser or a greater value within said particular pair .
9. The method as claimed in claim 8, wherein said substitution in step (c) of said at least one identifier value in said particular pair comprises substitution with either the lesser value or the greater value within said particular pair.
10. The method as claimed in claim 1, wherein said uniform relationship denotes an equality of both identifier values in each of said plurality of pairs.
11. A system (300) for processing data comprising:
a memory (304)
a processor (302) operationally connected to said memory, said processor (302) configured to:
(a) create at least one set of identifier-values pertaining to a plurality of data elements, wherein said data elements correspond to one or more data-groups;
(b) consider a plurality of pairs of identifier values for a comparison between the identifier values within each of said pairs, wherein the identifier values within each of said pairs corresponds to a pair of related data elements;
(c) in case of an inequality between one or more identifier-values within one or more particular pairs of said plurality of pairs, substitute at least one identifier-value within said particular pairs with one or more specific identifier-values to produce one or more updated pairs ;
(d) re-execute the step (b) by considering said plurality of pairs comprising said updated pairs and non-updated pairs; and
(e) upon having achieved a uniform relationship between corresponding identifier-values each of said plurality of pairs, designate the current identifier-values as representing new data groups.
12. A method of processing data comprising:
(a) creating (step 402) at least one set of identifier-values pertaining to a plurality of data elements, wherein said data elements correspond to one or more data-groups;
(b) further creating (step 404) a plurality of pairs of identifier values, wherein the identifier values within each of said pairs correspond to a pair of related data elements; .
(c) with respect to each application of a plurality of applications, allocating (step 406) apre-defined number of pairs out of said plurality of pairs and performing the steps of:
(i) creating (step 408) at least one set of identifier-values pertaining to the data elements within the allocated pairs, wherein said set is derivable from the set created in step (a);
(ii) considering (step 410) pairs of the identifier values in step (i) for a comparison between the identifier values within each of said pairs, wherein the identifier values within each of said pairs correspond to the pair of related data elements;
(iii) in case of inequality between the identifier values within one or more particular pairs of said plurality of pairs, substituting (step 412) at least one identifier-value within said particular pairs with one or more specific identifier-values based on a first predetermined criteria to produce one or more updated pairs;
(iv) re-executing (step 414) the step (ii) by considering said plurality of pairs comprising said updated pairs and non-updated pairs; and
(v) upon having achieved a uniform relationship between corresponding identifier-values in each of said pairs created in step (i), designating (step 416) the current identifier-values as representing allocated data groups in the corresponding application.
(d) creating (step 418) a unified set from the current identifier-values of each of said plurality of applications based on a second pre-determined criteria;
(e) in case of inequality between identifier values in the created set of step (a) and corresponding identifier-values in said unified set, substituting (step 420) the identifier values of said created set by specific identifier-values of the unified set;
(f) re-executing (step 422) the steps (c) to (e) by considering the created set of identifier-values comprising the substituted values; and
(g) upon achieving an equality between the identifier values in the created set of step (a) and corresponding identifier-values in said unified set, designating (step 424) the current identifier-values of the created set as representing new data groups.
13. The method as claimed in claim 12, wherein said first pre-determined criteria comprises considering said one or more specific values as greater or lesser identifier-values.
14. The method as claimed in claim 12, wherein said second pre-determined criteria comprises extracting a set of least or greatest values based on a comparison among the current identifier values associated with each of the plurality of applications for creating the unified set.
15. A method of processing data comprising:
(a) creating (step 802) at least one set of identifier-values pertaining to a plurality of data elements, wherein said data elements correspond to one or more data-groups;
(b) further creating (step 804) a plurality of pairs of identifier values, wherein the identifier values within each of said pairs correspond to a pair of related data elements;
(c) with respect to each application of a plurality of applications, allocating (step 806) a pre-defined number of pairs out of said plurality of pairs based on at least one pre-defined parameter and performing the steps of:
(i) creating (step 808) at least one set of identifier-values pertaining to the data elements within the allocated pairs, wherein said set is derivable from the set as created in step (a);
(ii) considering (step 810) pairs of the identifier values in step (i) for a comparison between the identifier values within each of said pairs, wherein the identifier values within each of said pairs correspond to related data elements;
(iii) in case of inequality between the identifier values within one or more particular pairs of said plurality of pairs, substituting (step 812) at least one identifier-value within said particular pairs with one or more specific identifier-values based on a first pre-determined criteria to produce one or more updated pairs;
(iv) re-executing (step 814) the step (ii) by considering said plurality of pairs comprising said updated pairs and non-updated pairs ; and
(v) upon having achieved a uniform relationship between corresponding identifier-values in each of said pairs created in step (i), designating (step 816) the current identifier-values as representing allocated data groups in the corresponding application;.
(d) creating (step 818) a unified set from the current identifier-values of each of said plurality of applications based on a second pre-determined criteria;
(e) in case of inequality between identifier values in the created set of step (a) with corresponding identifier-values in said unified set, substituting (step 820) the identifier values of said created set by specific identifier values of the unified set;
(f) re-executing (step 822) the steps (c) to (e) by considering the created set of identifier-values comprising the substituted values; and
(g) upon achieving an equality between the identifier values in the created set of step (a) and corresponding identifier-values in said unified set, designating (step 824) the current identifier-values of the created set as representing new data groups.
16. The method as claimed in claim 15, wherein the pre-defined parameter denotes a category of one or more pairs of and differs across the plurality of applications.
17. The method as claimed in claim 15, wherein said first pre-determined criteria comprises considering said one or more specific values as greater or lesser identifier-values.
18. The method as claimed in claim 15, wherein said second pre-determined criteria comprises extracting a set of least or greatest values based on a comparison among the current identifier values of each of the plurality of applications for creating the unified set.
19. A system (700) for processing data comprising:
a memory (704);
a processor (702) operationally connected to said memory; said processor (702) configured to:
(a) create at least one set of identifier-values pertaining to a plurality of data elements, wherein said data elements correspond to one or more data-groups within said data;
(b) further create a plurality of pairs of identifier values, wherein the identifier values within each of said pairs correspond to a pair of related data elements .
(c) with respect to each application of a plurality of applications, allocate a pre-defined number of pairs out of said plurality of pairs and performing the steps of:
(i) create at least one set of identifier-values pertaining to the data-elements within the allocated pairs, wherein said set is derivable from the set created in step (a);
(ii) consider pairs of the identifier values in step (i) for a comparison between the identifier values within each of said pairs, wherein the identifier values within each of said pairs correspond to related data elements;
(iii) in case of inequality between the identifier values within one or more particular pairs of said plurality of pairs , substitute at least one identifier-value within said particular pairs with one or more specific identifier-values based on a first predetermined criteria to produce one or more updated pairs;
(iv) re-execute the step (ii) by considering said plurality of pairs comprising said updated pairs and non-updated pairs; and
(v) upon having achieved a uniform relationship between corresponding identifier-values in each of said pairs created in step (i), designate the current identifier-values as representing allocated data groups in the corresponding application.
(d) create a unified set from the current identifier-values of each of said plurality of applications based on a second pre-determined criteria;
(e) in case of inequality between identifier values in the created set of step (a) and corresponding identifier-values in said unified set, substitute the identifier values of said created set by specific identifier-values of the unified set;
(f) re-execute the steps (c) to (e) by considering the created set of identifier-values comprising the substituted values; and
(g) upon achieving an equality between the identifier values in the created set of step (a) and corresponding identifier-values in said unified set, designate the current identifier-values of the created set as representing new data groups.
20. The system (700) as claimed in claimed in claim 19, wherein the processor (702) is configured to allocate said pre-defined number of pairs to each of said applications based on at least one pre-defined parameter.
, Description:
FIELD OF THE INVENTION:
The present invention relates to data processing and in particular relates to data that corresponds to an undirected graphical representation.
BACKGROUND OF THE INVENTION:
Traversing various nodes of graphical representation of data as a part of data processing is a known phenomenon. While a particular type of data may be organized such that is its graphical representation amounts to a directed graph, other type of data may only be represented through an undirected graph or a tree shaped data structure, i.e. a data pattern that is wayward in nature and suffers from a discontinuous variation. Accordingly, data processing techniques in respect of the undirected graphical form generally involve resolving the undirected graphical representation into lesser complex forms and thereafter using such forms for retrieving the actual data. One of the known techniques for such type of data processing may be based on the principle of recursion.
However, the currently available data processing techniques that operate upon the graphical representation of the data are configured to deal with small data case , i.e. cases where the data size is in mega-bytes (MB’s) or even lesser. As a result, in case of big data cases, the conventional techniques requires a substantial share of processing capability of a processor in a computing system, thereby compromising the performance of the system.
Moreover, the conventional processing techniques operating upon the graphical data representations end up occupying a fairly large memory size of the main memory.
Furthermore, the conventional data processing techniques operating upon the graphical data representations are not compatible to process data cumulatively, in case the graphical data representations are dispersed across various systems in a distributed computing environment.
SUMMARY OF THE INVENTION:
This summary is provided to introduce a selection of concepts in a simplified format that are further described in the detailed description of the invention. This summary is not intended to identify key or essential inventive concepts of the claimed subject matter, nor is it intended for determining the scope of the claimed subject matter.
Accordingly, in accordance with the purposes of the invention, the present invention as embodied and broadly described herein provides a method and system for processing data. In accordance with a first embodiment, the method as executed by the system comprises the steps of: (a) creating at least one set of identifier-values pertaining to a plurality of data elements, wherein said data elements correspond to one or more data-groups; (b) considering a plurality of pairs of identifier values for a comparison between the identifier values within each of said pairs, wherein the identifier values within each of said pairs correspond to a pair of related data elements; (c) in case of an inequality between identifier-values within one or more particular pairs of said plurality of pairs, substituting at least one identifier-value within said particular pairs with one or more specific identifier-values to produce one or more updated pairs; (d) re-executing the step (b) by considering said plurality of pairs comprising said updated pairs and non-updated pairs; and (e) upon having achieved a uniform relationship between identifier-values in each of said plurality of pairs, designating current identifier-values as representing new data groups.
In a second embodiment, the method as executed by the system comprises the steps of: a) creating at least one set of identifier-values pertaining to a plurality of data elements, wherein said data elements correspond to one or more data-groups; (b) further creating a plurality of pairs of identifier values, wherein the identifier values within each of said pairs correspond to a pair of related data elements; (c) with respect to each application of a plurality of applications, allocating a pre-defined number of pairs out of said plurality of pairs and performing the steps of:
(i) creating at least one set of identifier-values pertaining to the data elements within the allocated pairs, wherein said set is derivable from the set created in step (a);
(ii) considering pairs of the identifier values in step (i) for a comparison between the identifier values within each of said pairs, wherein the identifier values within each of said pairs correspond to the pair of related data elements;
(iii) in case of inequality between the identifier values within one or more particular pairs of said plurality of pairs, substituting at least one identifier-value within said particular pairs with one or more specific identifier-values based on a first predetermined criteria to produce one or more updated pairs;
(iv) re-executing the step (ii) by considering said plurality of pairs comprising said updated pairs and non-updated pairs; and
(v) upon having achieved a uniform relationship between corresponding identifier-values in each of said pairs created in step (i), designating the current identifier-values as representing allocated data groups in the corresponding application.
Continuing with the second embodiment, the method further comprises the steps of: (d) creating a unified set from the current identifier-values of each of said plurality of applications based on a second pre-determined criteria; (e) in case of inequality between identifier values in the created set of step (a) and corresponding identifier-values in said unified set, substituting the identifier values of said created set by specific identifier-values of the unified set; (f) re-executing the steps (c) to (e) by considering the created set of identifier-values comprising the substituted values; and (g) upon achieving an equality between the identifier values in the created set of step (a) and corresponding identifier-values in said unified set; designating the current identifier-values of the created set as representing new data groups.
At least by virtue of aforesaid, the present subject matter described herein requires substantially low processing capabilities of an executing processor and is more memory efficient, thereby leaving enough room for the execution of other tasks to be performed by the computing system. Moreover, the present subject matter is capable of being executed through a distributed computing environment, thereby being able to operate upon data irrespective of data size or presence of a distributed computing environment.
To further clarify advantages and features of the present invention, a more particular description of the invention will be rendered by reference to specific embodiments thereof, which is illustrated in the appended drawings. It is appreciated that these drawings depict only typical embodiments of the invention and are therefore not to be considered limiting of its scope. The invention will be described and explained with additional specificity and detail with the accompanying drawings.
BRIEF DESCRIPTION OF FIGURES:
These and other features, aspects, and advantages of the present invention will become better understood when the following detailed description is read with reference to the accompanying drawings in which like characters represent like parts throughout the drawings, wherein:
Figure 1 illustrates a method corresponding to a first embodiment of the invention;
Figure 2 shows an exemplary control flow diagram in accordance with Fig. 1;
Figure 3 shows a detailed internal construction of the system in accordance with the first embodiment of the present invention;
Figure 4 illustrates a method corresponding to a second embodiment of the present invention;
Figure 5 shows an exemplary control flow diagram in accordance with Fig. 4;
Figure 6 shows an exemplary representation corresponding to the second embodiment of the present invention;
Figure 7 shows a detailed internal construction of a system in accordance with the second embodiment of the present invention;
Figure 8 illustrates a method in accordance with a third embodiment of the invention;
Figure 9 shows an exemplary control flow diagram in accordance with Fig. 8;
Figure 10 shows an exemplary representation corresponding to the third embodiment of the present invention;
Figure 11-14 illustrate an exemplary application pertaining to the aforesaid embodiments of the present invention; and
Figure 15 illustrates an implementation of the systems illustrated in Figure 3 and 7 in a computing-environment.
Further, skilled artisans will appreciate that elements in the drawings are illustrated for simplicity and may not have been necessarily been drawn to scale. For example, the flow charts illustrate the method in terms of the most prominent steps involved to help to improve understanding of aspects of the present invention. Furthermore, in terms of the construction of the device, one or more components of the device may have been represented in the drawings by conventional symbols, and the drawings may show only those specific details that are pertinent to understanding the embodiments of the present invention so as not to obscure the drawings with details that will be readily apparent to those of ordinary skill in the art having benefit of the description herein.
DETAILED DESCRIPTION:
For the purpose of promoting an understanding of the principles of the invention, reference will now be made to the embodiment illustrated in the drawings and specific language will be used to describe the same. It will nevertheless be understood that no limitation of the scope of the invention is thereby intended, such alterations and further modifications in the illustrated system, and such further applications of the principles of the invention as illustrated therein being contemplated as would normally occur to one skilled in the art to which the invention relates.
It will be understood by those skilled in the art that the foregoing general description and the following detailed description are exemplary and explanatory of the invention and are not intended to be restrictive thereof.
Reference throughout this specification to “an aspect”, “another aspect” or similar language means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, appearances of the phrase “in an embodiment”, “in another embodiment” and similar language throughout this specification may, but do not necessarily, all refer to the same embodiment.
The terms "comprises", "comprising", or any other variations thereof, are intended to cover a non-exclusive inclusion, such that a process or method that comprises a list of steps does not include only those steps but may include other steps not expressly listed or inherent to such process or method. Similarly, one or more devices or sub-systems or elements or structures or components proceeded by "comprises... a" does not, without more constraints, preclude the existence of other devices or other sub-systems or other elements or other structures or other components or additional devices or additional sub-systems or additional elements or additional structures or additional components.
Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. The system, methods, and examples provided herein are illustrative only and not intended to be limiting.
Embodiments of the present invention will be described below in detail with reference to the accompanying drawings.
Now referring to Figure 1, it can be seen that the present invention provides a method of processing data. The method comprises creating (step 102) at least one set of identifier-values pertaining to a plurality of data elements, wherein said data elements correspond to one or more data-groups within said data. While the data elements may be nodes of an undirected graph, the data groups are default clusters of such data-elements. The data groups may have been formed based on similar or different criteria.. A number of pairs of all of the created identifier values are considered (step 104) for a comparison between the identifier values within each of said pairs. The identifier values within each of said pairs correspond to a pair of related data elements. Upon observing an inequality between the identifier-values in particular number of pairs out of the entire number of pairs, at least one identifier value within each particular pair is substituted (step 106) with a specific value to result in one or more updated pairs.. Since one or more pairs have been updated in step 106, the steps 104 and 106 are repeated in respect of the updated pairs as well as non-updated pairs as a part of step 108.
Finally, upon having achieved a uniformity in relationship between the identifier-values in each pair, all of the current identifier-values are designated (step 110) as representing final or new data groups in step 102. These current identifier values may be the latest values (updated or non-updated) in each of the pairs, such that updates wherever applicable in the pairs have taken place owing to steps 106 and/or step 108. In other terms, the final data groups also represent a hybrid version of the initial data groups or in an unlikely scenario may be equivalent to the initial data groups only. Overall, the final data groups represent sub-graphs within the entire undirected graphical representation of data.
Figure 2 shows an exemplary control flow diagram in accordance with Fig. 1. More specifically, each of step in Fig. 2 represents an exemplification of the steps as recited in Fig. 1.
At step 202, a graphical representation of the data to be processed is considered. The representation includes a plurality of nodes, say m distinct nodes xi, i=1,...,m, wherein the set of xi represents nodes of an undirected graph and corresponds to either similar or different data-groups. Each xi denotes a default identifier-value of a node present in specific group, such any two xi may or may not relate to same data-group. The nodes may also be referred as data elements. Accordingly, the data groups may also be regarded as default clusters of data elements.
Each xi may be by default linked to one or more other nodes from the same set, wherein such another node may be represented by xj . Like xi, xj also denotes default identifier value of such another node. For example, a particular xi (i=1,…,m) and a particualr xj (j=1,…,m) may be a pair of connected vertices in a undirected graph of nodes. Accordingly, pairs may be indicated as Pij = {xi, xj} to relate every xi with one or more xj.
The present step 202 acts as a precursor to the step 102 of the claimed subject matter.
At step 204, a set of identifier values are generated in respect of the xi. Said set, or in other words a mapping, is represented by C(xi), i=1,…,m,. Each value in the mapping C(xi) denotes a particular identifier value which is related to one or more of the default identifier value xi. The identifier value may also be regarded as a data-element cluster identifier, i.e. a cluster of one or more default identifier values. Specifically, each default identifier value xi gets associated with C(xi), and the mapping C(xi) in turn covers all the default identifier values, or in other words, all nodes of an undirected graph. The present step corresponds to the step 102 of claimed subject matter.
At step 206, C(xi) is compared with a corresponding C(xj) in line with the data-element relation as present within the pairs Pij in the step 202. The step 206 corresponds to the step 104.
At step 208, wherever C(xj)< C(xi) with respect to a particualr data element pair Pij, then the corresponding C(xi) is replaced by C(xj). Accordingly, an updated C(xi) gets created after being substituted by specific values from C(xj) and leads to update of one or more pairs of identifier values including pair Pij . The step 208 corresponds to the step 106.
Additionally, as denoted within step 208, wherever C(xi) < C(xj) with respect to another particular pair Pij, then the corresponding C(xj) is replaced by C(xi). Accordingly, an updated C(xj) gets created after being substituted by specific values from C(xi), and thereby also corresponds to the step 106. The update of C(xj) also refers to the update of the overall mapping C(xi) as has been generated in step 204 and in turn also refers to an update of one or more identifier value pairs.
The criteria as adopted in the present step 208 may also be referred as the first pre-determined criteria.
At step 210, in case there has been even a single instance wherein the value within the mapping C(xi) , i=1,…,m, has been updated, then the steps 206, 208 are repeated again and now take into consideration the updated C(xi). In other words, occurrence of update even in a single identifier value pair out of all the identifier value pairs leads to said repetition of steps 206 and 208 with respect to the updated identifier values. Step 210 accordingly corresponds to the step 108.
At step 212, the current identifier values of updated C(xi) for i=1,…,m, are considered as denoting the final or new data groups. At this point, with respect to every data element pair Pij, C(xi) becomes equal to C(xj). Step 212 accordingly corresponds to the step 110.
Each of the final identifier values denotes a data-element cluster bigger or equal in size as compared to the default cluster of the corresponding data-elements as reprsented by initial data groups. In other example, the data-element cluster represented by each of final identifier value may be a combination of one or more of default cluster of data–elements.
Accordingly, the new data groups as constituted by the final identifier values are usually bigger than the default-clusters of data elements associated with each of the initial data groups. Yet in an extereme scneario, where not even once an update takes place with respect to the steps 206 and 208, the new data groups may remain equal in size as compared to the initial data groups.
In other example, the comparison performed in steps 208 may be based on a “greater than relationship” and accordingly, the substitution in mapping C(xi) with respect to any pair Pij amounts to substitution by greater values.
Fig. 3 illustrates a detailed internal construction of a system 300 in accordance with the embodiment of the present invention. The system 300 includes a processing module 302 that performs the steps 102 till step 110, while the memory 304 stores the default identifier values (default-identifier values pertaining to the data elements or nodes), the initial set of identifier values created in step 102 (pertaining to the first and second data groups), the updated set of identifier values created in step 106 and the final identifier values (pertaining to the final data groups) as obtained in step 110. Likewise, there may be other modules within the system 300 that facilitate the operational interconnection between the processing module 302 and the memory 304 for performing other ancillary-functions.
Now referring to Figure 4, it can be seen that the present invention provides a method of processing data in accordance with a second embodiment. The method comprises creating (step 402) at least one set of identifier-values pertaining to a plurality of data elements, wherein said data elements correspond to one or more data-groups within said data, wherein the created set corresponds to a single set of identifier values pertaining to all of the data groups associated with the data to be processed. At step 404, a plurality of pairs of the identifier values, as created in step 402, are further created with respect to every data-element pair Pij.
As step 406, with respect to each application of a plurality of simultaneous/concurrently executable applications, the identifier value pairs with respect to every data-element pair Pij={xi, xj} are distributed across the applications, such that each application is allocated a pre-defined number of identifier value pairs. Accordingly, as a part of step 408, each of the application creates a specific initial set of identifier values pertaining to the data elements within the allocated identifier-value pairs. Such set of specific identifier values is a sub-set of the set of identifier values created in the step 402.
The steps 408, 410, 412, 414, and 416 are analogous to the steps 104, 106, 108, and 110 of Fig. 1 or steps 204 till 212 of Fig. 2. Accordingly, the current identifier values in step 416 denote new data groups with respect to every application that operates concurrently with other application. Yet, as may be observed from forthcoming explanation, such new data groups act as intermediate data groups to evolve further new data groups.
At step 418, upon having obtained current identifier values with respect to every application, a unified set is created from the current identifier-values of said plurality of applications. The unified set is created based on a second pre-determined criteria, such that the unified set includes a greatest or lowest of current identifier values related to every default identifier value present as a precursor to the step 402. Accordingly, the unified set includes either a set of lowest values or the greatest values, the number of identifier-values within the unified set being equal to the number of default identifier values related to the original data groups. The aforesaid second pre-determined criteria used for aggregation, i.e. finding the greatest or lowest of current identifier values in respect of every default identifier value, is identical to the criteria as have been followed in steps 206 and 208, which illustrate comparison between the mapping values C(xi) and C(xj) with respect to every data-element pair Pij and finding out the greater or lesser value.
At step 420, the created set in step 402 is compared against the unified set to compare each of the identifier values in the created set with its counterpart value in the unified step. Accordingly, such identifier values in the created set of step 402 that are not equal to the corresponding value in the unified set are replaced by the corresponding identifier value of the unified set.
Step 422 denotes repetition of steps 404 till 420. The ‘created set’ of step 402 gets substituted with new values, every time a substitution takes place in the last undertaken step 420, and the created set in the updated form is considered for the purposes of steps 404 till 420. Due to this, the unified set also assumes new values with every iteration, and accordingly the contents of the created step and the unified step in a particular iteration are different from another iteration.
Finally, the step 424 denotes a moment wherein after having had one or more iterations due to repetition of steps 402 till 420, the values in the ‘created set’ become equal to the values in the unified set. Accordingly, the latest identifier values in the unified set C’(xi) or the updated set C (xi) are considered as final identifier values, each of which pertains to a combination of plurality of default identifier values as available in the step 402. Moreover, since each of the default identifier-values available to the step 402 are associated with default data groups, each of the final identifier value itself represents a new data group in itself that is not only different from the initial data groups present in the step 402 but in fact also represents a hybrid version of such initial data groups.
Figure 5 shows an exemplary control flow diagram in accordance with Fig. 4. More specifically, each of the step in Fig. 5 represents an exemplification of the steps as recited in Fig. 4.
The steps 502 and 504 are respectively equivalent to the steps 202 and 204. Moreover the step 504 corresponds with step 402. The identifier value set as created in the step 504 may be referred as C(xi).
At step 506, the identifier value pairs with respect to the data element pairs Pij={xi,xj} (as aforernentioned, Pij indicates pairs of connected nodes originating from the same or different data groups) are created as illustrated under step 404. Thereafter, as part of the step 506 only, said created identifier value pairs with respect to every data element pair Pij={xi,xj} are distributed across a number of concurrently executable applications, such that a pre-defined number of identifier value pairs get allocated to a particular application. Based upon the pairs allocated to every application, subsets are derived from the identifier-value set of step 504. Such subsets may be the initial set of identifier values for a particular application. In other words, local copies of C(xi) are created for every application.
Thereafter, for each application, current identifier values are obtained from the initial set of identifier values (i.e. temp Cl(xi) for i=1,…,m) through the same procedure as outlined under the steps 206 to 212. In addition, each application outputs the current identifier values in the form of key value pairs {xi, temp Cl (xi)}, i.e. pairs of one default identifer value with a corresponding current identifier value. In other words, for every default identifer value, there is obtained one current identifer value by each application. As aforesaid, the comparison between C(xi) and C(xj) as adopted in step 208 may be either based on a “lesser than relationship” or a “greater than relationship. The type of comparison as adopted should be uniform across the applications in question and influences the step 508 as illustrated later.
The present step 506 corresponds to the steps 408 till 416.
At step 508, the key-value pairs from each application are obtained. Accordingly, the current identifier values from every application are obtained and aggregated in respect of each default identifier value. The aggregation involves finding a minimum or maximum of all the current identifier values with respect to every default identifier, based on whether the type of comparison between C(xi) and C(xj) as adopted in step 506 relares to a “lesser than relationship” or a “greater than relationship”, resepctively. Accordingly, in case the comparison as done in step 506 has been based on “lesser than relationship”, then a minimum of all the current identifier values with respect to every default identifier is identified as a part of aggregation. Accordingly, the present step 508 outputs another type of key-value pairs that may be represented by {xi, min( temp Cl (xi))}or {xi, max( temp Cl (xi))}. In other words, the step 508 results in a unified set of current identifier values, wherein said unified set may be represented by C’(xi) . The present step 508 corresponds to the step 418.
At step 510, C’(xi) is compared with the C(xi) of step 504. The present step 510 corresponds to the step 420.
At step 512, wherever C’(xi) is not equal to C(xi), then the corresponding C(xi) is replaced by C’(xi). Accordingly, an updated C(xi) gets created after having been substituted by specific values from C’(xi). The present step 512 corresponds to the step 420.
At step 514, it is checked whether there has been any substitution in step 512 as a result of comparison done therein. Accordingly, in case there has been such substitution, then the steps as denoted by steps 506 till 512 are repeated again taking into consideration the updated C(xi). Accordingly, in a particular iteration, the initial set of identifier values for each application in the step 506 also get automatically updated due to being derivatives of the updated C(xi), and so does the finally attained unified set C’(xi). The present step 514 corresponds to the step 422.
At step 516, the currently updated C(xi), after undergoing numerous iterations as disclosed aforesaid, achieves an equality with the currenlty updated unified set or C’(xi). Accordingly, at such moment, the currently updated C(xi) or C’(xi).are considered as representing the final or new data groups that are different from the initial data groups in the step 502. In other words, the identifier values in the currently updated C(xi) represent a combination of one or more default identifier values in the initial most step 502. The final data group is a hybrid version of the initial- data-groups and accordingly represents a sub-graph. The present step 516 corresponds to the step 424.
Fig. 6 illustrates another control flow diagram to illustrate the process in Fig. 5.
As a precursor to the process depicted in present Fig. 6, the default identifier values with respect to the data groups are retrieved from a ‘dictionary’ (as mentioned in present figure) that includes mapping between default identifier values and the data-group members (i.e. data elements or nodes in the graphical representation). The default identifier values, i.e. xi and xj, are selected from the “dictionary”, paired as per the relation between them, and thereafter such pairs as provided as “input” (as mentioned in present figure). In an implementation, Hadoop map-reduce function may be used to create the dictionary in case the default identifier values are distributed across various systems. The ‘index’ that is provided is actually C(xi) corresponding to the step 504.
The step 602 corresponds to the step 506, and accordingly leads to creation of temp Cl (xi) with respect to every application through the steps as described in Fig. 1.‘Replacement’ denotes substitution of the initial set of identifier values and ‘local clusering’ denotes formation of the set of ‘current identifer values’. Accordingly, since temp Cl (xi) is with respect to every xi, key-value pairs get generated as {xi, temp Cl (xi)}.
The step 604 corresponds to the step 508 and leads to outputting of another key-value pairs, that may be represented by {xi, min( temp Cl (xi))}or {xi, max( temp Cl (xi))}, depending upon whether the type of comparison between C(xi) and C(xj) has been done in step 602 in terms of the “lesser than relationship” or a “greater than relationship”, respectively. The step 604 and 606 may jointly represent a Hadoop map-reduce function, such that each application may be executed by a separate computing entity in a distributed computing environment. Accordingly, the step 606 results in a creation of C’(xi).
The step 606 corresponds to the steps 512 and 514. Accordingly, wherever necessary, C(xi) is substituted by C’(xi), and a modified index is obtained. The updated C(xi) or the modified index is again sent as input to the step 602.
Finally, the step 608 corresponds to the step 516 and provides a final ‘index’ as currently updated C(xi). The final index is a set of cluster ids and accordingly represents final data groups.
Fig. 7 illustrates a detailed internal construction of a system 700 in accordance with the embodiment of the present invention. The system 700 includes a processing module 702 that performs the steps 402 till step 424, while memory 704 stores the default identifier values, the initial set of identifier values created in step 408, the unified set of identifier values created in step 418 and the final identifier values (pertaining to the final or new data groups) as obtained in step 424. Likewise, there may be other modules within the system 700 that facilitate the operational interconnection between the processing module 702 and the memory 704 for performing other ancillary-functions.
Now referring to Figure 8, it can be seen that the present invention provides a method of processing data in accordance with a third embodiment. The method steps 802, 804, 806, 808, 810, 812, 814, 816, 818, 820, 822, and 824 are analogous to the steps 402, 404, 406, 408, 410, 412, 414, 416, 418, 420, 422 and 424.
Yet, the step 806 differs from the step 406 in that the allocation of pairs of default identifier values are guided by a certain parameter. For example, all the pairs of identifier values pointing to data elements located in a certain portion of the graphical representation may be allocated to particular application. Accordingly, while one application may have identifier value pairs belonging to portion 1 and portion 2 of the graphical representation, the other application will have identifier value pairs belonging to the portions 3 and portion 4. As an advantage, the current identifier values obtained in step 816 and step 824 may be obtained in lesser iterations as compared to the description in the second embodiment.
Figure 9 shows an exemplary control flow diagram in accordance with Fig. 8. More specifically, each of the step in Fig. 9 represents an exemplification of the steps as recited in Fig. 8. The method steps 902, 904, 906, 908, 910, 912, 914 and 916 are analogous to the steps 502, 504, 506, 508, 510, 512, 514 and 516. However, as illustrated further, the step 906 follows a different procedure as compared to the step 506.
The step 906 differs from step 506 due to a criteria of distribution of the identifier value pairs across a number of concurrently executable applications. In other words, the pairs of identifier values with respect to the data element pairs Pij are distributed across the concurrently executable applications based on a criteria that is otherwise not depicted within the step 506. Such criteria may correspond to a parameter that collectively represents certain pairs of data elements or in other words pair of default identifier values. For example, ai may represent a number of default identifier value pairs (xi, xj). Likewise, aj may denote a different set of default identifier-value pairs than ai. Accordingly, a particular application is allocated identifier value pairs that may be segregated under a1, a2, a3…., while another application may be allocated pairs with respect to a4, a5, a6…..
Based upon the identifier value pairs associated to every application, subsets are derived from the identifier-value set of step 904 as initial set of identifier values. In other words, local copies of C(xi) are created for every application, wherein each local copy of C(xi) is associated with a particular ai. Thereafter, for each application, a current identifier value is obtained from the initial set of identifier values through the procedure as outlined under the steps 206 to 212. In addition, like the step 506, each application outputs the current identifier values in the form of key value pairs {xi, temp Cl (xi)}, i.e. pairs of one default identifier value with a corresponding current identifier value. In other words, for every default identifier, there is obtained at least one current identifier value, in terms of a particular application.
Fig. 10 illustrates another control flow diagram to illustrate the process in Fig. 9. The precursor in respect of the Fig. 10 is similar to Fig. 6. The ‘index’ as provided is C(xi) and corresponds to the output of step 904.
The step 1002 corresponds to the step 906, and accordingly denotes creation of key value pairs {ai, Pij}, wherein Pij itself is a pair of {xi, xj} that pertains to the corresponding ai.
The step 1004 also corresponds to step 906 and is equivalent to the step 604. As a result of step 1004, the generated key value pair {xi, temp Cl (xi)} is appended with an ‘intermediate file’.
The steps 1002 and 1004 jointly represent a first Hadoop map-reduce function, such that each application may be executed by a separate computing entity in a distributed computing environment
Ths step 1006 corresponds to the step 908, and processes the intermediate file to extract the key-value pair {xi, temp Cl (xi)}.
The step 1008 corresponds to the step 908 and is equivalent to the step 606.
Thereafter, the step 1010 corresponds to the steps 912 and 914. Specifically, wherever necessary, C(xi) is substituted by C’(xi), and a modified index is obtained. The updated C(xi) or the modified index is again sent as input to the step 1002.
The steps 1008 and 1010 may jointly represent a second Hadoop map-reduce function, such that each application may be executed by a separate computing entity in a distributed computing environment.
Finally, the step 1012 corresponds to the step 916 and provides the final index as currently updated C(xi).
The detailed internal construction of the system 700 in accordance with the second embodiment of the present invention may be also configured to execute the method of the third embodiment of the present invention. The processing module 702 may be configured to perform the steps 802 till step 824, while memory 704 stores the default identifier values (identifier values pertaining to the data groups), the initial set of identifier values created in step 808, the unified set of identifier values created in step 818 and the final identifier values (pertaining to the final data groups) as obtained in step 824.
Fig 11 to 14 represent an exemplary implementation of the invention as covered in the embodiments as described so far. However, the present implementation shall not be construed as limiting the scope of the present invention as many more implementations are equally conceivable.
More specifically, the method as described in any of described embodiments has been applied for identifying households (or identifier values representing final data groups) in an insurance portfolio of various customers. The term “household”, in this context, refers to a group of customers who are likely to be part of a same extended family. The basis used to identify households is a relation between proposer of an insurance policy and the person insured by the same policy. The identification may be further augmented by further including other criteria like contact details.
To start with, default identifier values xi, may denote individual customer id’s in an insurance portfolio. These customer id’s include id’s for both-owners as well as insured persons in the said insurance portfolio. It may be understood that a given customer id uniquely identifies a person who is the owner or insured person or both with respect to one or more insurance policies in this portfolio. Further, an exemplary list of contact detail fields that may be used to include postal address, mobile number, email id, etc.
Now coming to Fig. 11, a flowchart has been depicted based on the application of the present invention.
As per step 1102, the pairs of related customer id’s (acting as pairs Pij of default identifier values {xi, xj} are created based on the owner-insured relationship in individual insurance policies. Each policy number results in one pair of related customer id’s. While owner cust ID and insured cust ID are data groups, their elements i.e. xi, xj are default identifier-values. Regard may be had to the table depicted in Fig. 12a
At step 1104, the method steps of Fig 1 (or Fig. 2 or Fig. 3) are executed over the default identifier values to create a set of cluster id’s referred by policy linkage id. In other words, policy linkage id denotes a finally obtained C(xi). Specifically, the inequality is iteratively tested between the C(xi) and C(xj), and the lowest value between the two is considered for deciding a particular cluster id for both members in the pair. Each of said cluster id is associated with each xi or in other words with each policy number. Regard may be had to the table depicted in Fig. 12a to refer the policy linkage id.
At step 1106, a parameter ‘HH id’ may be set as the policy linkage id.
At step 1108, a set of identifiers may be created as owner id 1 for the data group represented by ‘owner address’. Such set of identifiers is created in such a way that policy A and policy B have the same owner id, in case policy A and policy B have the same owner address. Accordingly, the set of identifiers in the present case has been created by referring only one data group, i.e. the owner address. However, in case contact details (e.g. mobile number and email), are used to generate owner id1, then owner id 1 is decided based on the combination of all parameters. Regard may be had to Fig 12b to refer the various exemplary values in owner id 1.
At step 1110, pairs of {HH id, owner id i} are created for each policy number to act as pairs {xi, xj}. The HH id’s and owner id’s may be regarded as nodes or data element of a single undirected graph: xi where i=1,…m and the pairs Pij = {xi, xj}are created to indicate relation between HH id and owner id. Then method steps of Fig. 1 or Fig. 2 or Fig. 3 are executed over these pairs of data elements to create another set of cluster id, i.e. a set comprising a temp HH id for each policy number. In other words, temp HH id denotes a finally obtained C(xi). Regard may be had to Fig. 13a to refer the Temp HH id.
At step 1112, temp HH id is set as the new HH id
At step 1114, the data group ‘insured address’ is used to create another set of identifier values i.e. insured id1 for each policy number in such a way that policy A and policy B have the same insured id, in case policy A and policy B have the same value for insured contact address. Regard may be had to Fig. 13b to refer the various exemplary values in insured id 1.
At step 1116, pairs of {HH id, insured id} are created for each policy number to act as Pij or pairs of data elements. Thereafter, the method steps of Fig. 1 or Fig. 2 or Fig. 3 are executed over these pairs to create another set of cluster id i.e. a set comprising a temp HH id for each policy number. In other words, the temp HH id denotes a finally obtained C(xi).
At step 1118, the temp HH id obtained in step 1116 is set as a new HH id. Such new HHid is set as the final HH id and accordingly represents the desired household id. Regard may be had to Fig. 14.
Referring to figure 15, yet another typical hardware configuration of the system 300, 700 in the form of a computer system 1500 is shown. The computer system 1500 can include a set of instructions that can be executed to cause the computer system 1500 to perform any one or more of the methods disclosed. The computer system 1500 may operate as a standalone device or may be connected, e.g., using a network, to other computer systems or peripheral devices.
In a networked deployment, the computer system 1500 may operate in the capacity of a server or as a client user computer in a server-client user network environment, or as a peer computer system in a peer-to-peer (or distributed) network environment. The computer system 1500 can also be implemented as or incorporated across various devices, such as a personal computer (PC), a tablet PC, a personal digital assistant (PDA), a mobile device, a palmtop computer, a laptop computer, a desktop computer, a communications device, a wireless telephone, a land-line telephone, a web appliance, a network router, switch or bridge, or any other machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while a single computer system 1500 is illustrated, the term "system" shall also be taken to include any collection of systems or sub-systems that individually or jointly execute a set, or multiple sets, of instructions to perform one or more computer functions.
The computer system 1500 may include a processor 1502 e.g., a central processing unit (CPU), a graphics processing unit (GPU), or both. The processor 1502 is equivalent to the processor 302 and 702 and may be a component in a variety of systems. For example, the processor 1502 may be part of a standard personal computer or a workstation. The processor 1502 may be one or more general processors, digital signal processors, application specific integrated circuits, field programmable gate arrays, servers, networks, digital circuits, analog circuits, combinations thereof, or other now known or later developed devices for analysing and processing data The processor 1502 may implement a software program, such as code generated manually (i.e., programmed).
The computer system 1500 may include a memory 1504, such as a memory 1504 that can communicate via a bus 1508. The memory 1504 corresponds to the memory 304, 704 of the previous Fig. 3 and 7 and may be a main memory, a static memory, or a dynamic memory. The memory 1504 may include, but is not limited to computer readable storage media such as various types of volatile and non-volatile storage media, including but not limited to random access memory, read-only memory, programmable read-only memory, electrically programmable read-only memory, electrically erasable read-only memory, flash memory, magnetic tape or disk, optical media and the like. In one example, the memory 1504 includes a cache or random access memory for the processor 1502. In alternative examples, the memory 1504 is separate from the processor 1502, such as a cache memory of a processor, the system memory, or other memory. The memory 1504 may be an external storage device or database for storing data. Examples include a hard drive, compact disc ("CD"), digital video disc ("DVD"), memory card, memory stick, floppy disc, universal serial bus ("USB") memory device, or any other device operative to store data. The memory 1504 is operable to store instructions executable by the processor 1502. The functions, acts or tasks illustrated in the figures or described may be performed by the programmed processor 1502 executing the instructions stored in the memory 1504. The functions, acts or tasks are independent of the particular type of instructions set, storage media, processor or processing strategy and may be performed by software, hardware, integrated circuits, firm-ware, micro-code and the like, operating alone or in combination. Likewise, processing strategies may include multiprocessing, multitasking, parallel processing and the like.
As shown, the computer system 1500 may or may not further include a display unit 1510, such as a liquid crystal display (LCD), an organic light emitting diode (OLED), a flat panel display, a solid state display, a cathode ray tube (CRT), a projector, a printer or other now known or later developed display device for outputting determined information. The display 1510 may act as an interface for the user to see the functioning of the processor 1502, or specifically as an interface with the software stored in the memory 1504 or in the drive unit 1516.
Additionally, the computer system 1500 may include an input device 1512 configured to allow a user to interact with any of the components of system 1500. The input device 1512 may be a number pad, a keyboard, or a cursor control device, such as a mouse, or a joystick, touch screen display, remote control or any other device operative to interact with the computer system 1500.
The computer system 1500 may also include a disk or optical drive unit 1516. The disk drive unit 1516 may include a computer-readable medium 1522 in which one or more sets of instructions 1524, e.g. software, can be embedded. Further, the instructions 1524 may embody one or more of the methods or logic as described. In a particular example, the instructions 1524 may reside completely, or at least partially, within the memory 1504 or within the processor 1502 during execution by the computer system 1500. The memory 1504 and the processor 1502 also may include computer-readable media as discussed above.
The present invention contemplates a computer-readable medium that includes instructions 1524 or receives and executes instructions 1524 responsive to a propagated signal so that a device connected to a network 1526 can communicate voice, video, audio, images or any other data over the network 1526. Further, the instructions 1524 may be transmitted or received over the network 1526 via a communication port or interface 1520 or using a bus 1508. The communication port or interface 1520 may be a part of the processor 1502 or may be a separate component. The communication port 1520 may be created in software or may be a physical connection in hardware. The communication port 1520 may be configured to connect with a network 1526, external media, the display 1510, or any other components in system 1500, or combinations thereof. The connection with the network 1526 may be a physical connection, such as a wired Ethernet connection or may be established wirelessly as discussed later. Likewise, the additional connections with other components of the system 1500 may be physical connections or may be established wirelessly. The network 1526 may alternatively be directly connected to the bus 1508.
The network 1526 may include wired networks, wireless networks, Ethernet AVB networks, or combinations thereof. The wireless network may be a cellular telephone network, an 802.11, 802.16, 802.20, 802.1Q or WiMax network. Further, the network 1526 may be a public network, such as the Internet, a private network, such as an intranet, or combinations thereof, and may utilize a variety of networking protocols now available or later developed including, but not limited to TCP/IP based networking protocols.
In an alternative example, dedicated hardware implementations, such as application specific integrated circuits, programmable logic arrays and other hardware devices, can be constructed to implement various parts of the system 1500.
Applications that may include the systems can broadly include a variety of electronic and computer systems. One or more examples described may implement functions using two or more specific interconnected hardware modules or devices with related control and data signals that can be communicated between and through the modules, or as portions of an application-specific integrated circuit. Accordingly, the present system encompasses software, firmware, and hardware implementations.
The system described may be implemented by software programs executable by a computer system. Further, in a non-limited example, implementations can include distributed processing, component/object distributed processing, and parallel processing. Alternatively, virtual computer system processing can be constructed to implement various parts of the system.
The system is not limited to operation with any particular standards and protocols. For example, standards for Internet and other packet switched network transmission (e.g., TCP/IP, UDP/IP, HTML, HTTP) may be used. Such standards are periodically superseded by faster or more efficient equivalents having essentially the same functions. Accordingly, replacement standards and protocols having the same or similar functions as those disclosed are considered equivalents thereof.
At least by virtue of aforesaid, the data processing as illustrated by the present invention requires substantially low processing capabilities and is more memory efficient as compared to the conventional techniques. Moreover, the present subject matter is capable of being executed through a distributed computing environment, thereby being able to operate upon data irrespective of data size or presence of a distributed computing environment. Moreover, the sub-graphs resulted as an outcome of the present invention are broad enough to cover a wide variety of related data.
While specific language has been used to describe the disclosure, any limitations arising on account of the same are not intended. As would be apparent to a person in the art, various working modifications may be made to the method in order to implement the inventive concept as taught herein.
The drawings and the forgoing description give examples of embodiments. Those skilled in the art will appreciate that one or more of the described elements may well be combined into a single functional element. Alternatively, certain elements may be split into multiple functional elements. Elements from one embodiment may be added to another embodiment. For example, orders of processes described herein may be changed and are not limited to the manner described herein.
Moreover, the actions of any flow diagram need not be implemented in the order shown; nor do all of the acts necessarily need to be performed. Also, those acts that are not dependent on other acts may be performed in parallel with the other acts. The scope of embodiments is by no means limited by these specific examples. Numerous variations, whether explicitly given in the specification or not, such as differences in structure, dimension, and use of material, are possible. The scope of embodiments is at least as broad as given by the following claims.
Benefits, other advantages, and solutions to problems have been described above with regard to specific embodiments. However, the benefits, advantages, solutions to problems, and any component(s) that may cause any benefit, advantage, or solution to occur or become more pronounced are not to be construed as a critical, required, or essential feature or component of any or all the claims.
| # | Name | Date |
|---|---|---|
| 1 | Form 5 [19-02-2016(online)].pdf | 2016-02-19 |
| 2 | Form 3 [19-02-2016(online)].pdf | 2016-02-19 |
| 3 | Drawing [19-02-2016(online)].pdf | 2016-02-19 |
| 4 | Description(Complete) [19-02-2016(online)].pdf | 2016-02-19 |
| 5 | Power of Attorney [27-04-2016(online)].pdf | 2016-04-27 |
| 6 | Form 6 [27-04-2016(online)].pdf | 2016-04-27 |
| 7 | Assignment [27-04-2016(online)].pdf | 2016-04-27 |
| 8 | Other Patent Document [19-08-2016(online)].pdf | 2016-08-19 |
| 9 | Form 18 [22-08-2016(online)].pdf | 2016-08-22 |
| 10 | Other Patent Document [29-08-2016(online)].pdf | 2016-08-29 |
| 11 | 201621005925-GENERAL POWER OF ATTORNEY-(02-5-2016).pdf | 2018-08-11 |
| 12 | 201621005925-FORM 30-010916.pdf | 2018-08-11 |
| 13 | 201621005925-Form 1-010916.pdf | 2018-08-11 |
| 14 | 201621005925-Correspondence-010916.pdf | 2018-08-11 |
| 15 | 201621005925-CORRESPONDENCE-(02-5-2016).pdf | 2018-08-11 |
| 16 | 201621005925-ASSIGNMENT-(02-5-2016).pdf | 2018-08-11 |
| 17 | 201621005925-FER.pdf | 2020-03-04 |
| 18 | 201621005925-RELEVANT DOCUMENTS [02-09-2020(online)].pdf | 2020-09-02 |
| 19 | 201621005925-PETITION UNDER RULE 138 [02-09-2020(online)].pdf | 2020-09-02 |
| 20 | 201621005925-FORM-26 [03-09-2020(online)].pdf | 2020-09-03 |
| 21 | 201621005925-OTHERS [04-09-2020(online)].pdf | 2020-09-04 |
| 22 | 201621005925-FORM-26 [04-09-2020(online)].pdf | 2020-09-04 |
| 23 | 201621005925-FER_SER_REPLY [04-09-2020(online)].pdf | 2020-09-04 |
| 24 | 201621005925-DRAWING [04-09-2020(online)].pdf | 2020-09-04 |
| 25 | 201621005925-COMPLETE SPECIFICATION [04-09-2020(online)].pdf | 2020-09-04 |
| 26 | 201621005925-CLAIMS [04-09-2020(online)].pdf | 2020-09-04 |
| 27 | 201621005925-ABSTRACT [04-09-2020(online)].pdf | 2020-09-04 |
| 28 | 201621005925-US(14)-HearingNotice-(HearingDate-01-02-2023).pdf | 2022-12-14 |
| 29 | 201621005925-Correspondence to notify the Controller [30-01-2023(online)].pdf | 2023-01-30 |
| 30 | 201621005925-FORM-26 [31-01-2023(online)].pdf | 2023-01-31 |
| 31 | 201621005925-Written submissions and relevant documents [16-02-2023(online)].pdf | 2023-02-16 |
| 32 | 201621005925-PatentCertificate02-02-2024.pdf | 2024-02-02 |
| 33 | 201621005925-IntimationOfGrant02-02-2024.pdf | 2024-02-02 |
| 1 | SearchStrategy(2)E_03-03-2020.pdf |