Sign In to Follow Application
View All Documents & Correspondence

Metadata Based Rule Processing System

Abstract: Methods and systems for processing metadata based rules are disclosed herein. The method includes parsing metadata based rules to identify entities associated with the metadata based rules. The metadata based rules may include a rule criteria and a rule action. The rule action is based on the rule criteria. The method further includes retrieving data, from a database (108), that is associated with the entities. Further, the data may include at least one of entity attributes, entity storage, and entity relationship. Moreover, the retrieved data may be populated in the metadata based rules to generate corresponding populated rules. The method also includes transforming the populated rules into a format specific to a rule engine to generate transformed rules. The transformed rules are executable by the rule engine.

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
28 September 2012
Publication Number
14/2014
Publication Type
INA
Invention Field
COMPUTER SCIENCE
Status
Email
Parent Application
Patent Number
Legal Status
Grant Date
2022-05-23
Renewal Date

Applicants

TATA CONSULTANCY SERVICES LIMITED
Nirmal Building  9th Floor  Nariman Point  Mumbai  Maharashtra

Inventors

1. DASH  Hemanta Kumar
Plot No 35  Chandaka Industrial Estate Patia  Bhubaneswar  Orissa 751024
2. BASU  Kuntal Kumar
Plot No 35  Chandaka Industrial Estate Patia  Bhubaneswar  Orissa 751024
3. MISHRA  Ratan
Plot No 35  Chandaka Industrial Estate Patia  Bhubaneswar  Orissa 751024
4. AGRAWAL  Abhishek
Plot No 35  Chandaka Industrial Estate Patia  Bhubaneswar  Orissa 751024

Specification

FORM 2
THE PATENTS ACT, 1970
(39 of 1970)
&
THE PATENTS RULES, 2003
COMPLETE SPECIFICATION
(See section 10, rule 13)
1. Title of the invention: METADATA BASED RULE PROCESSING SYSTEM
2. Applicant(s)
NAME NATIONALITY ADDRESS
TATA CONSULTANCY Indian Nirmal Building, 9th Floor,
SERVICES LIMITED Nariman Point,Mumbai,
Maharashtra 400021, India
3. Preamble to the description
COMPLETE SPECIFICATION
The following specification particularly describes the invention and the manner in which it
is to be performed.

TECHNICAL FIELD
[0001] The present subject matter relates, in general, to processing of rules and, in particular, but not exclusively, to management and processing of metadata based rules .
BACKGROUND
[0002] Business procedures vary according to the type of business and the type of process involved. For example, a bank business procedure in processing a loan is different from the same bank's procedure in ordering stationery supplies. Naturally, procedures vary widely across industries as well. A bank's set of procedures are likely to differ from that of an automobile dealership that also has the requirements to process loans and buy stationery. Generally, to accommodate such variations in business procedures, policies or business rules are employed.
[0003] Typically, such rules are complex logics and expressions that describe and control the processes, operations, and behavior of how the business, and the applications that support the business, performs. Rules define, constrain or validate aspects of a business through evaluation of conditions and context of the rule invoker. Rules employ a wide range of contextual information that encompasses an extensive scope of knowledge. For example, the rules represent thresholds for actions, express acceptable business practices, and influence configuration, customization and personalization activities. Further, rules assert influence over business behavior by recommending actions to be undertaken. Therefore, rules provide a generalized mechanism for officiating and specifying evolving business procedures.
[0004] The implementation and execution of the rules generally occur within a rule engine. A rule engine allows the execution logic of a process to be modeled in a straightforward and declarative manner based on the defined rules. Rule engines also provide a platform to execute complex decision-making logic and work with data sets too large for individuals to effectively use and implement. Particularly, the rule engines facilitate execution of defined rules by separating the source code to be utilized for the execution from the rule. This provides the

capability to allow frequent and recursive changes in rules without changing the source code to be utilized for execution.
SUMMARY
[0005] This summary is provided to introduce concepts related to metadata based rule processing system. The concepts are further described below in the detailed description. This summary is not intended to identify essential features of the claimed subject matter nor is it intended for use in determining or limiting the scope of the claimed subject matter.
[0006] Method(s) and system(s) for processing metadata based rules is disclosed herein. The method may include parsing at least one metadata based rule to identify at least one entity associated with the at least one metadata based rule. The at least one metadata based rule may include a rule criteria and a rule action. Further, the rule action may be based on the rule criteria. The method further includes retrieving data, from a database that may be associated with the at least one entity. Further, the data may include at least one of entity attributes, entity storage, and entity relationship. Moreover, the retrieved data may be populated in the at least one metadata based rule to generate a corresponding populated rule.
[0007] The method may also include transforming the at least one populated rule into a format specific to a rule engine to generate at least one transformed rule. The at least one transformed rule may be executed by the rule engine. Further, results obtained from execution of the transformed rule may be communicated to other systems, users, and may also be stored in the database.
BRIEF DESCRIPTION OF THE DRAWINGS
[0008] The detailed description is described with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The same numbers are used throughout the drawings to reference like features and components.
[0009] Fig. 1 illustrates a network environment implementing a rule processing system, in accordance with an embodiment of the present subject matter.

[0010] Fig. 2 illustrates a method for processing at least one metadata based rule, in accordance with an embodiment of the present subject matter.
[0011] It should be appreciated by those skilled in the art that any block diagrams herein represent conceptual views of illustrative systems embodying the principles of the present subject matter. Similarly, it will be appreciated that any flow charts, flow diagrams, state transition diagrams, pseudo code, and the like represent various processes which may be substantially represented in computer readable medium and so executed by a computer or processor, whether or not such computer or processor is explicitly shown.
DETAILED DESCRIPTION
[0012] Method(s) and system(s) for management and processing of business rules based on rule metadata are described. In one implementation, rules metadata may be created based on rule criteria and rule actions in a generalized manner that may be independent of any rule engine language and attributes. The methods can be implemented in systems that include, but are not limited to, desktop computers, hand-held devices, laptops or other portable computers, mobile phones, and the like. Although the description herein is with reference to certain computing devices, the methods and systems may be implemented in other devices and systems as well, albeit with a few variations, as will be understood by a person skilled in the art.
[0013] Generally, in a business procedure, different processes are followed based on different and varied rules. Such rules are often manually implemented by employees of an organization. However, in many complex situations where either the logic to be implemented is complex, or the data processing required for the implementation of the logic is enormous, rules are executed by a rule engine. Rule engines allow evaluation of different rule criterion to identify an action and their execution based on the evaluation.
[0014] Different rule engines may be used by different organizations based on needs of the organizations. Sometimes, even one organization may implement different business processes with several different rules. The realized rule engines to evaluate and process various rules, may work on different computer languages with different set of pre-defined attributes. However, to execute rules on such rule engines, the rules should be defined in a language that is

compatible with the rule engine in use, for which, an understanding of the language and method of rule defining is necessary. Therefore, the rules may be required to be defined in different computer languages corresponding to utilized rule engines with different set of attributes.
[0015] Further, knowledge of the computer language on which a rule engine is based on, prior to defining of the rules may also be required for processing of the rule with the rule engine. With multiple rule engines working on different computer languages, either an organization may be required to employ rule definers with varied skill sets or multiple rule definers for multiple rule engines which may be cumbersome as well as extremely difficult. Also, the attributes utilized to define a rule are generally pre-defined and therefore can not be changed at runtime. Any amendment in the attributes either requires a change of the rule engine, or modification in source code of the system which may be a cumbersome, and difficult task.
[0016] Generally, to define rules, rule definers either utilize a dedicated user interface (UI) of a rule engine, or define the rules in a pre-defined format and save the defined rules in the form of a file readable by the rule engine. Therefore, it may so happen that to define rules for different rule engines, a rule definer may have to utilize different interfaces, each corresponding to a different rule engine. Further, the rule definer may also have to save the rules in different file formats to be executed by different rule engines. Utilizing multiple interfaces or saving rules in different file formats may not only be time consuming but also require enormous efforts.
[0017] According to an implementation of the present subject matter, systems and methods for management and processing of business rules based on rule metadata are described. The rule definer(s) who define the rules of different business processes for different rule engines are referred to as developer(s) hereinafter. The present subject matter is further described with reference to rule management in a business environment, which is only an example for the ease of explanation and it will be understood that the concepts explained in context thereof can be extended to other management applications associated with rule management as well. The described methods may provide a rule metadata based rule engine to evaluate and execute rules irrespective of the rule format and language.
[0018] In an implementation, a developer may define rules, rules criteria, and associated actions in a format independent of any rule engine. The rules may be defined based on rule

metadata to store information regarding the rule, such as the entities to be involved in the rule, the criteria of rule evaluation, and action of the rule based on the evaluation of the criteria. Therefore, the rule metadata may provide information about one or more aspects of the actual rule which may be defined based on the rule metadata itself. The rule metadata may include a rule criteria and a rule action. The rule criteria is evaluated at the time of execution of the rule. Further, the rule action is performed if the evaluated rule criteria is true or false. In said implementation, the rule metadata may allow the developers to create rules through a user interface irrespective of the rule engine utilized to evaluate and execute the defined rules.
[0019] In another implementation, the developers may also define/modify attributes associated with a rule based on modification in the rule metadata. For example, general rules may be defined based on 3 attributes. The same may have been defined in the rule metadata where the rules are defined based on 3 attributes. However, in situations where a rule may be needed to be defined based on only 2 attributes, the rule metadata can be modified to define 2 attributes instead of 3. Upon such a modification, a rule based on 2 attributes may be defined without any actual change in the code. It will be evident that when an attribute is added or deleted, the logic to populate that attribute will also change. Further, a rule file for accommodating or removing the new attribute may also change. In the present implementation of the present subject matter, when a new attribute is added or deleted, the developer may only need to modify the metadata. The system may facilitate in populating the rule at runtime with the new attribute and generate corresponding rule language.
[0020] In operation, at least one metadata based rule may be received from a user. It will be evident that the user may be a developer. Further, the at least one metadata based rule may be parsed to identify at least one entity associated with the at least one metadata based rule. It will be understood that the at least one metadata based rule may include a rule criteria and a rule action. The rule action may be based on the rule criteria. For example, the user may define a rule action for situations when the rule criteria is met or not met. Further, data associated with the at least one entity may be retrieved from a database. The data may include at least one of entity attributes, entity storage, and entity relationship. Moreover, the retrieved data may be populated in the at least one metadata based rule to generate a corresponding populated rule. Thereafter, the at least one populated rule may be transformed into a format specific to a rule engine in use.

Therefore, at least one transformed rule may be generated that may be executed by the rule engine.
[0021] It will also be understood that the execution of the transformed rule may include evaluation of the rule criteria defined by the user. Based on the evaluation, the rule engine may determine whether the rule criteria is met or not met. Accordingly, the rule engine may perform the rule action as may be defined the user.
[0022] According to an implementation, the rules defined by developers may be translated in a computer language corresponding to the rule engine in which the rule would be evaluated and executed. In one implementation, the translation may be based on the rule engine to be utilized for evaluation and execution of the defined rule. For example, the defined rule may be translated in computer language ‘a’ if the rule engine to be utilized works on computer language ‘a’ and, the rule may be translated in a computer language ‘b’ if the rule engine to be utilized works on computer language ‘b’. It would be understood that the translation may be done in any computer language on which the associated rule engine works on. In addition, the rules defined by the developers may be stored using format defined by the rule metadata.
[0023] Further, in one implementation, since the translation of the defined rules may be done to any computer language based on the rule engine, a rule engine may also be selected based on requirement, availability, and efficiency of the rule engine. In other words, from multiple available rule engines, a particular rule engine may be selected based on parameters, such as computational requirement, availability, and efficiency and; the defined rules may be translated based on the selected rule engine.
[0024] In another implementation, the action of the executed rules may be saved in a database. It would be understood that the action may be performed by the rule engine based on the evaluation of the rule. Further, in said implementation, the action may also be notified to different users and network system through various notification mechanisms, such as e-mail, Short Service Message (SMS), popup message, and alarming sound. In yet another implementation, the present system may be plugged with any rule engine, such that the rules and metadata created for one rule engine may be used with other rule engines as well.

[0025] The described subject matter of business rule processing based on rule metadata may provide an automated, generic, and easier platform for rule defining irrespective of any rule engine and a computer language. And hence, the efforts for defining rules for different rule engines in different formats and various computer languages may also eliminated. Also, since the rules are defined based on rule metadata, the pre-defined attributes for rule defining may also be modified without any change in the source code.
[0026] It should be noted that the description merely illustrates the principles of the present subject matter. It will thus be appreciated that those skilled in the art will be able to devise various arrangements that, although not explicitly described herein, embody the principles of the present subject matter and are included within its spirit and scope. Furthermore, all examples recited herein are principally intended expressly to be only for pedagogical purposes to aid the reader in understanding the principles of the present subject matter and the concepts contributed by the inventor(s) to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions. Moreover, all statements herein reciting principles, aspects, and embodiments of the present subject matter, as well as specific examples thereof, are intended to encompass equivalents thereof.
[0027] It will also be appreciated by those skilled in the art that the words during, while, and when as used herein are not exact terms that mean an action takes place instantly upon an initiating action but that there may be some small but reasonable delay, such as a propagation delay, between the initial action and the reaction that is initiated by the initial action. Additionally, the word “connected” is used throughout for clarity of the description and can include either a direct connection or an indirect connection.
[0028] While aspects of described systems and methods for efforts assessment can be implemented in any number of different computing devices, environments, and/or configurations, the embodiments are described in the context of the following exemplary system(s).
[0029] Fig. 1 illustrates a network environment 100 implementing a rule processing system 102, hereinafter referred to as system 102, in accordance with an embodiment of the present subject matter. In one implementation, the network environment 100 can be a public

network environment, including a large number of personal computers, laptops, various servers, such as blade servers, and other computing devices. In another implementation, the network environment 100 can be a private network environment with a limited number of personal computers, servers, laptops and other computing devices. In yet another implementation, the network environment 100 may be a combination of a private and a public network.
[0030] The system 102 may be communicatively connected to a plurality of user devices 104-1, 104-2,...104-N, collectively referred to as the user devices 104 and individually referred to as a user device 104, through a network 106. In one implementation, a plurality of users, such as developers may use the user devices 104 to communicate with the system 102.
[0031] The system 102 and the user devices 104 may be implemented as any of a variety of conventional computing devices, including, servers, a desktop personal computer, a notebook or portable computer, a workstation, a mainframe computer, a mobile computing device, and a laptop. Further, in one implementation, the system 102 may itself be a distributed or centralized network system in which different computing devices may host one or more of the hardware or software components of the system 102. In another implementation, the various components of the system 102 may be implemented as a part of the same computing device.
[0032] The system 102 may be connected to the user devices 104 over the network 106 through one or more communication links. The communication links between the system 102 and the user devices 104 are enabled through a desired form of communication, for example, via dial-up modem connections, cable links, digital subscriber lines (DSL), wireless or satellite links, or any other suitable form of communication.
[0033] The network 106 may be a wireless network, a wired network, or a combination thereof. The network 106 can also be an individual network or a collection of many such individual networks, interconnected with each other and functioning as a single large network, e.g., the Internet or an intranet. The network 106 can be implemented as one of the different types of networks, such as intranet, local area network (LAN), wide area network (WAN), the internet, and such. The network 106 may either be a dedicated network or a shared network, which represents an association of the different types of networks that use a variety of protocols, for example, Hypertext Transfer Protocol (HTTP), Transmission Control Protocol/Internet

Protocol (TCP/IP), etc., to communicate with each other. Further, the network 106 may include network devices, such as network switches, hubs, routers, for providing a link between the system 102 and the user devices 104. The network devices within the network 106 may interact with the system 102 and the user devices 104 through the communication links.
[0034] The network environment 100 further comprises a database 108 associated with the system 102, which stores details pertaining to different business processes and their related constraints. Although the database 108 is illustrated external to the system 102, it will be understood that the database 108 may be internal to the system 102 as well. Further, the database 108 can be implemented as, for example, a single repository, a distributed repository or a collection of distributed repositories.
[0035] In an implementation, the system 102 can receive rules for various business processes by various developers from one or more of the user devices 104 over the network 106. The rules may be provided by the developers, through a corresponding user device, through an independent UI. In said implementation, the user devices 104 may either provide a direct access to the system 102 through the means of an application, or may provide a web portal to the developers to define rules.
[0036] Upon receiving the rules from different user devices, the system 102 may translate the rules defined by the developers in a computer language corresponding to a rule engine to be evaluated and executed. For this purpose, the system 102 includes one or more processor(s) 110, interfaces 112, and a memory 114 coupled to the processor(s) 110. The processor(s) 110 may be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, and/or any devices that manipulate signals based on operational instructions. Among other capabilities, the processor(s) 110 are configured to fetch and execute computer-readable instructions and data stored in the memory 114.
[0037] The functions of the various elements shown in the figure, including any functional blocks labeled as “processor(s)”, may be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software. When provided by a processor, the functions may be provided by a single dedicated

processor, by a single shared processor, or by a plurality of individual processors, some of which may be shared. Moreover, explicit use of the term “processor” should not be construed to refer exclusively to hardware capable of executing software, and may implicitly include, without limitation, digital signal processor (DSP) hardware, network processor, application specific integrated circuit (ASIC), field programmable gate array (FPGA), read only memory (ROM) for storing software, random access memory (RAM), non-volatile storage. Other hardware, conventional and/or custom, may also be included.
[0038] The interface(s) 112 may include a variety of software and hardware interfaces, for example, interface for peripheral device(s), such as a keyboard, a mouse, an external memory, and a printer. Further, the interface(s) 112 may enable the system 102 to communicate over the network 106, and may include one or more ports for connecting the system 102 with other computing devices, such as web servers and external databases. The interface(s) 112 may facilitate multiple communications within a wide variety of protocols and networks, such as a network, including wired networks, e.g., LAN, cable, etc., and wireless networks, e.g., WLAN, cellular, satellite, etc.
[0039] The memory 114 may include any computer-readable medium known in the art including, for example, volatile memory, such as static random access memory (SRAM) and dynamic random access memory (DRAM), and/or non-volatile memory, such as read only memory (ROM), erasable programmable ROM, flash memories, hard disks, optical disks, and magnetic tapes. The system 102 also includes modules 116 and data 118.
[0040] The modules 116 include routines, programs, objects, components, data structures, etc., which perform particular tasks or implement particular abstract data types. The modules 116 further include a communication module 120, a parsing module 122, a processing module 124, and other modules 126. The other modules 126 may include programs or coded instructions that supplement applications and functions on the system 102, for example, programs in the operating system.
[0041] The data 118, amongst other things, serves as a repository for storing data processed, received, and generated by one or more of the modules 116. The data 118 includes parameter metadata 128, rules 130, and other data 132. The other data 132 may include entity

data and data generated as a result of the execution of one or more modules in the other modules 126.
[0042] Although, the metadata 128 has been illustrated internal to the system 102; however, it will be understood that the metadata 128 may be hosted on external memory device(s) or external computing device(s) communicatively connected to the system 102.
[0043] In one implementation of the present subject matter, the communication module 120 may provide a UI to one or more users, such as an administrator and a developer, for defining metadata based rules. The communication module 120 may enable the users to define metadata based rules irrespective of the rule engine (not shown) that may be associated with the system 102. In said implementation, the metadata may include information about various parameters, such as rules and entities that may be defined by the users to participate in the rules.
[0044] Accordingly, the metadata may include rule metadata and entity metadata. The rule metadata may define rules based on criteria of rules and actions to be taken upon evaluation of the criteria. The rule metadata may include rule criteria and rule action that may be defined by the developers. The rule criteria may define a condition that needs to be met when the rule may be executed. Further, the rule action may be performed which is to be performed if the criteria evaluated is true.
[0045] The entity metadata may include information about various entities that may be involved in the defining and execution of the rules. In an aspect, the entity metadata may include entity attributes that may be used for defining the rule criteria and/or rule action. The entity metadata may further include address of storage location from where the entity attributes may be retrieved and/or stored. In an example, the entity attributes may be stored in the database 108. As the database 108 is made from tables that contain columns and relationships between the tables, information about structure of the database 108 needs to be pre-defined. Therefore, the address may indicate the particular tables, columns, and the like, where the information is stored. In another example, the entity attributes may be stored in a different file system or any other source. Further, the entity metadata may include information about relationships between entities in case multiple entities are defined in a rule. Moreover, the metadata defined by the developers may be saved in data 118 as the metadata 128.

[0046] Also, in one implementation, the metadata 128 may be imported by the communication module 120 from different files and documents already defined by the developers. In an implementation, the metadata 128 may be imported from other systems. In another implementation, the developers may modify the metadata 128 from time to time based on requirement and need of the business process. Also, the communication module 120 may facilitate the developers to modify the metadata 128 in runtime. The communication module 120 may be configured to facilitate the users, such as the developers to modify the metadata about the entity and the rule to add one or more new attributes. It will be understood that since the entities may already be loaded and the rules are converted to a specific rule language at run time, this change may take effect in the next execution. In other words, the developers may modify the criteria of rule development, the actions to be taken and the attributes that are likely to be associated while evaluation of the rules or while their execution is in process. As would be appreciated by those skilled in the art that any change in the attributes to define a rule may require modification in code. In said implementation, the communication module 120 is configured to facilitate in modifying attributes associated with the entities. Thereafter, the communication module 120 may implement the change in the attributes when the metadata based rule may be executed for the next time. This may provide an effective and easy alteration option for modification of rules to developers while defining rules and even during runtime.
[0047] Further, the communication module 120 may be configured to provide the UI to a user for providing one or more metadata based rules to be evaluated and executed based on the metadata 128. For example, a user may define a metadata based rule "award 10 points to a member when the purchase amount exceeds INR 2000". As described above, the rules may include the rule criteria and the rule action. Further, the rule criteria and the rule action may be defined by means of attributes for which the metadata is pre-defined by the administrator. The UI as provided by the communication module 120 may facilitate the users to define rules based on the pre-defined metadata. Further, the communication module 120 may be configured to store the one or more metadata based rules as the rules 130. The communication module 120 may also facilitate the users to import and export the metadata rules
[0048] In an implementation, the parsing module 122 is configured to parse the at least one metadata based rule as defined by the user, to identify at least one entity that may be

associated with the at least one metadata based rule. As described above, the at least one metadata based rule may include the rule criteria and the rule action. The rule action may be based on the rule criteria. For example, a rule may define an action that needs to be performed when the rule criteria is met or not met. Based on the identification of the entities associated with the at least one metadata based rule, the parsing module 122 may determine location of data that may be associated with the entities. In the present implementation, the data may include information about entity attributes, entity storage, and entity relationships.
[0049] Accordingly, the parsing module 122 may identify the attributes associated with the metadata based rule and the entities that may be involved in the rule. Considering the above example, the parsing module 122 may parse the rule "award 50 points to a member when the purchase amount exceeds INR 2000" defined by the user and may identify "purchase amount" as the attributes for defining the rule criteria and "Award points" as the attributes for defining the rule action.
[0050] Thereafter, the parsing module 122 may retrieve data associated with the entities for evaluating the at least one metadata based rule. It will be understood that the parsing module 122 may determine the location or address of the data from the metadata 128. For example, the metadata 128 may store the location of the data in the database 108 in a tabular format as shown below.

Table_Name Column_Name
invoice total_amount
invoice member_id
account_summary total_points
account_summary member_id
member member_id
Table 1

[0051] The table 1 may indicate that the data for the attributes "purchase amount" of the rule criteria are stored in the table named 'invoice' and column named total_amount. In a similar manner, details about attributes may be interpreted from the metadata 128 and hence from the database 108. The above table 1 also indicates relationship between entities. For example, a member ID for a specific member may be derived from the database table column member_id. Based on this member ID, the purchase amount may be derived from the database table column total_amount. Also, total points for that member may be updated in the database table column total_points using the member ID. Further, the parsing module 122 may populate the at least one metadata based rule with the data retrieved from the database 108 to generate at least one populated rule.
[0052] In an implementation, the system 102 may be associated with a plurality of rule engines. Each rule engine from amongst the plurality of rule engines may be based on a different coding language. In this case, the parsing module 122 may be configured with a language and format of the rule engine with which the system 102 may be associated. For example, the rule engine may support a language such as Java, Extensible Markup Language (XML), and Structured Query Language (SQL). In cases where one rule engine is configured with the system 102, an administrator may provide instructions to the parsing module 122 about the language supported by the rule engine.
[0053] In another implementation, the system 102 may be associated with one or more rule engines. The one or more rule engines may or may not be using the same computer language. Further, the user may not wish to process the metadata based rules on all rule engines that may be associated with the system 102. In this case, the parsing module 122 may determine the rule engine relevant for the user and also identify the language that may be supported by that rule engine. The parsing module 122 may further be configured to communicate the language of the rule engine to the processing module 124.
[0054] Once identified, the processing module 124 may transform the at least one populated rule into a format specific to the rule engine. To do so, the processing module 124 may first generate an entity map as a generic object. Again referring to the above example, the processing module 124 may generate the entity map like

{[“Purchase Amount”, 250], [“Total Points”, 50]}.
[0055] Thereafter, the processing module 124 may convert the rule metadata to the rule engine specific language. For example, for Drools rule engine, the processing module 124 may convert the metadata based rule as mentioned below:
$metaData : $metaDataMap[Purchase Amount >= 2000];
Then
$metaData : $metaDataMap[Total Points] += 50;
End
[0056] For the Drool rule engine, the aforementioned rule may be created and stored in a Java string. Thereafter, the processing module 124 may invoke rule engine by providing the entity map and the rule language to the rule engine. This may result in generation of a transformed rule. In an implementation, apart from transforming into the specific language, the processing module 124 may convert the populated rule into a format that may be acceptable by the rule engine. Once converted, the processing module 124 may provide the transformed rule to the rule engine for execution.
[0057] It will be appreciated by those skilled in the art that at the time of execution, the rule engine may evaluate the rule based on the rule criteria. Based on whether the rule criteria is met or not, the rule engine may execute the rule to perform the rule action as specified in the rule. Again considering the above example, the rule engine may determine whether the rule criteria, i.e., purchase amount is greater than or equal to INR 2000. If the rule criteria is satisfied, the rule engine may initiate the rule action, in this case, awarding points to the member.
[0058] In an implementation, the system 102 may facilitate in storing the results that may be obtained upon execution of the at least one populated rule in the database 108. As described above, the metadata 128 may store location of the database 108 where the results may need to be saved. For example, the parameter metadata 128 may store the table and column names along with their relation where the results of the executed populated rule may need to be stored. These results may later be retrieved from the database 108.

[0059] In another implementation, the results obtained upon execution of the at least one populated rule may be notified to the users devices 104 and network systems through various notification mechanisms, such as e-mail, SMS, pop-up message, and an alarming sound.
[0060] In yet another implementation, the system 102 facilitates use of the metadata 128 and the rules 130 for different rule engines. In other words, the entities and the rules that are defined for one rule engine may be used for different rule engines associated with the system 102.
[0061] Accordingly, the system 102 may provide an automated, generic, and easier platform for defining metadata based rules irrespective of any rule engine and the computer language supported by the rule engine. This may facilitate in reducing the time and efforts that may be spent for defining rules for different rule engines in different formats and various computer languages. Also, since the rules are defined based on metadata, the pre-defined attributes for defining the rules may also be modified without any change in the source code.
[0062] Fig. 2 illustrates a method 200 for managing at least one metadata based rule, in accordance with an embodiment of the present subject matter. According to an aspect, the concepts of rule processing are described with reference to the system 102 described above.
[0063] The method(s) may be described in the general context of computer executable instructions. Generally, computer executable instructions can include routines, programs, objects, components, data structures, procedures, modules, functions, etc., that perform particular functions or implement particular abstract data types. The method may also be practiced in a distributed computing environment where functions are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, computer executable instructions may be located in both local and remote computer storage media, including memory storage devices.
[0064] The order in which the method is described is not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement the method 200, or an alternative method. Additionally, individual blocks may be deleted from the methods without departing from the spirit and scope of the subject matter described herein. Furthermore, the method 200 can be implemented in any suitable hardware,

software, firmware, or combination thereof. The method 200 is explained with reference to the system 102, however, it will be understood that the method 200 can be implemented in other systems as well.
[0065] At block 202, at least one metadata based rule may be received from a user. The user may define the at least one metadata based rule by means of a UI. As described above, the UI may be provided through the communication module 120 of the system 102. Further, the metadata based rules may include a rule criteria and a rule action. It will be evident that the at least one metadata base rule may be associated with at least one entity on which the rule criteria may be applied for performing a specified rule action.
[0066] Further, the rule criteria and the rule action may be defined by means of attributes for which the metadata is pre-defined by an administrator. The UI as provided by the communication module 120 may therefore facilitate the users to define rules based on the predefined metadata. The metadata defined by the administrator for a specific rule engine may be stored as metadata 128 in the system 102. Further, the communication module 120 may be configured to store the one or more metadata based rules as rules 130. The communication module 120 may facilitate the users to import and export the metadata rules
[0067] At block 204, the at least one metadata based rule may be parsed, for example, by the parsing module 122. The parsing module 122 may identify the at least one entity that may be associated with the at least one metadata based rule.
[0068] At block 206, data associated with the at least one entity may be retrieved from a database 108. The data may include entity attributes, entity storage information, and entity relationships. Further, the data may include any other data that may associated with the rule. The parsing module 122 may retrieve the data from the database 108. The parsing module 122 may also be configured to identify similar rules for being imported from the database 108.
[0069] At block 208, the data may be populated in the at least one metadata based rule, by the parsing module 122 to generate a corresponding populated rule. Further, the system 102 may be configured to be associated with a plurality of rule engines. Each rule engine from amongst the plurality of rule engines may be based on a different coding language. In this case,

the parsing module 122 may also be configured to identify the coding language of a rule engine where the user may wish to execute the metadata based rule.
[0070] At block 210, the at least one populated rule may be transformed, for example, by the processing module 124, into a format specific to a rule engine. To do so, the processing module 124 may first generate an entity map as a generic object. Thereafter, the processing module 124 may convert the rule metadata to the rule engine specific language.
[0071] Further, the processing module 124 may invoke rule engine by providing the entity map and the rule language to the rule engine. This may result in generation of a transformed rule. In an implementation, apart from transforming into the specific language, the processing module 124 may convert the populated rule into a format that may be acceptable by the rule engine. Once converted, the processing module 124 may provide the transformed rule to the rule engine for execution.
[0072] The processing module 124 may generate at least one transformed rule which may be executed by the rule engine. It will be evident that the execution may include evaluation of the rule criteria and perform the rule action based upon whether the rule criteria is met or not. In an implementation, the method 200 may further include storing results that may be obtained by executing the transformed rule by the rule engine. Further, the results may be shared with a plurality of users or network systems.
[0073] Although embodiments for methods and systems for processing the metadata based rules have been described in a language specific to structural features and/or methods, it is to be understood that the invention is not necessarily limited to the specific features or methods described. Rather, the specific features and methods are disclosed as exemplary embodiments for processing the metadata based rules.

I/We claim:
1. A method for processing metadata based rules, the method comprising:
parsing at least one metadata based rule to identify at least one entity associated with the at least one metadata based rule, wherein the at least one metadata based rule comprises a rule criteria and a rule action, and wherein the rule action is based on the rule criteria;
retrieving data, from a database (108), associated with the at least one entity, wherein the data comprises at least one of entity attributes, entity storage, and entity relationship, and wherein the retrieved data is populated in the at least one metadata based rule to generate a corresponding populated rule; and
transforming the at least one populated rule into a format specific to a rule engine to generate at least one transformed rule, wherein the at least one transformed rule is executable by the rule engine.
2. The method as claimed in claim 1 further comprising storing results obtained by the execution of the at least one transformed rule in the database (108).
3. The method as claimed in claim 1 further comprising communicating results obtained by the execution of the at least one transformed rule to at least one user.
4. The method as claimed in claim 1, wherein the retrieving comprises identifying location of the data, associated with the at least one entity, within the database (108).
5. A rule processing system (102) comprising:
a processor (110);
a parsing module (122) coupled to the processor (110), the parsing module (122) configured to,
analyze at least one metadata based rule to identify at least one entity associated with the at least one metadata based rule, wherein the at least one

metadata based rule comprises a rule criteria and a rule action, and wherein the rule action is based on the rule criteria;
identify location of the data, associated with the at least one entity, in a database (108); and
retrieve the data, from the database (108), associated with the at least one
entity, wherein the data comprises at least one of entity attributes, entity storage,
and entity relationship, and wherein the retrieved data is populated in the at least
one metadata based rule to generate a corresponding populated rule; and
a processing module (124) coupled to the processor (110), the processing module
(124) configured to transform the populated rule into a format specific to a rule engine to
generate at least one transformed rule, wherein the at least one transformed rule is
executable by the rule engine
6. The rule processing system (102) as claimed in claim 5, wherein the processing module (124) is further configured to store results obtained by the execution of the at least one transformed rule, in the database (108).
7. The rule processing system (102) as claimed in claim 5, wherein the processing module (124) is further configured to communicate results obtained by the execution of the at least one transformed rule to at least one user.
8. The rule processing system (102) as claimed in claim 7, wherein the processing module (124) is configured to communicate the results through an e-mail, short message service (SMS), popup message, and alarming sound.
9. The rule processing system (102) as claimed in claim 5 is configured to be associated with a plurality of rule engines, wherein each rule engine from amongst the plurality of rule engines is based on a different coding language.

10. The rule processing system (102) as claimed in claim 9, wherein a rule engine is selected from the plurality of rule engines based on at least a computational requirement, an availability, and efficiency of the rule engine.
11. The rule processing system (102) as claimed in claim 5 further comprising a communication module (120) configured to facilitate one or more users to interact with the rule processing system (102).
12. A non-transitory computer-readable medium having embodied thereon a computer program for executing a method comprising:
parsing at least one metadata based rule to identify at least one entity associated with the at least one metadata based rule, wherein the at least one metadata based rule comprises a rule criteria and a rule action, and wherein the rule action is based on the rule criteria;
retrieving data, from a database (108), associated with the at least one entity, wherein the data comprises at least one of entity attributes, entity storage, and entity relationship, and wherein the retrieved data is populated in the at least one metadata based rule to generate a corresponding populated rule; and
transforming the at least one populated rule into a format specific to a rule engine to generate at least one transformed rule, wherein the at least one transformed rule is executed by the rule engine.

Documents

Orders

Section Controller Decision Date

Application Documents

# Name Date
1 2884-MUM-2012-FORM 26(30-10-2012).pdf 2012-10-30
1 2884-MUM-2012-IntimationOfGrant23-05-2022.pdf 2022-05-23
2 2884-MUM-2012-PatentCertificate23-05-2022.pdf 2022-05-23
2 2884-MUM-2012-CORRESPONDENCE(30-10-2012).pdf 2012-10-30
3 ABSTRACT1.jpg 2018-08-11
3 2884-MUM-2012-Response to office action [26-04-2022(online)].pdf 2022-04-26
4 2884-MUM-2012-US(14)-HearingNotice-(HearingDate-05-07-2021).pdf 2021-10-03
4 2884-MUM-2012-FORM 18(3-10-2012).pdf 2018-08-11
5 2884-MUM-2012-Written submissions and relevant documents [14-07-2021(online)].pdf 2021-07-14
5 2884-MUM-2012-FORM 1(4-10-2012).pdf 2018-08-11
6 2884-MUM-2012-CORRESPONDENCE(4-10-2012).pdf 2018-08-11
6 2884-MUM-2012-Correspondence to notify the Controller [01-07-2021(online)].pdf 2021-07-01
7 2884-MUM-2012-CORRESPONDENCE(3-10-2012).pdf 2018-08-11
7 2884-MUM-2012-ABSTRACT [18-03-2019(online)].pdf 2019-03-18
8 2884-MUM-2012-Form 5.pdf 2018-09-18
8 2884-MUM-2012-CLAIMS [18-03-2019(online)].pdf 2019-03-18
9 2884-MUM-2012-Form 3.pdf 2018-09-18
9 2884-MUM-2012-COMPLETE SPECIFICATION [18-03-2019(online)].pdf 2019-03-18
10 2884-MUM-2012-DRAWING [18-03-2019(online)].pdf 2019-03-18
10 2884-MUM-2012-Form 2.pdf 2018-09-18
11 2884-MUM-2012-FER.pdf 2018-09-27
11 2884-MUM-2012-FER_SER_REPLY [18-03-2019(online)].pdf 2019-03-18
12 2884-MUM-2012-OTHERS [18-03-2019(online)].pdf 2019-03-18
13 2884-MUM-2012-FER.pdf 2018-09-27
13 2884-MUM-2012-FER_SER_REPLY [18-03-2019(online)].pdf 2019-03-18
14 2884-MUM-2012-DRAWING [18-03-2019(online)].pdf 2019-03-18
14 2884-MUM-2012-Form 2.pdf 2018-09-18
15 2884-MUM-2012-COMPLETE SPECIFICATION [18-03-2019(online)].pdf 2019-03-18
15 2884-MUM-2012-Form 3.pdf 2018-09-18
16 2884-MUM-2012-CLAIMS [18-03-2019(online)].pdf 2019-03-18
16 2884-MUM-2012-Form 5.pdf 2018-09-18
17 2884-MUM-2012-ABSTRACT [18-03-2019(online)].pdf 2019-03-18
17 2884-MUM-2012-CORRESPONDENCE(3-10-2012).pdf 2018-08-11
18 2884-MUM-2012-Correspondence to notify the Controller [01-07-2021(online)].pdf 2021-07-01
18 2884-MUM-2012-CORRESPONDENCE(4-10-2012).pdf 2018-08-11
19 2884-MUM-2012-FORM 1(4-10-2012).pdf 2018-08-11
19 2884-MUM-2012-Written submissions and relevant documents [14-07-2021(online)].pdf 2021-07-14
20 2884-MUM-2012-US(14)-HearingNotice-(HearingDate-05-07-2021).pdf 2021-10-03
20 2884-MUM-2012-FORM 18(3-10-2012).pdf 2018-08-11
21 ABSTRACT1.jpg 2018-08-11
21 2884-MUM-2012-Response to office action [26-04-2022(online)].pdf 2022-04-26
22 2884-MUM-2012-PatentCertificate23-05-2022.pdf 2022-05-23
22 2884-MUM-2012-CORRESPONDENCE(30-10-2012).pdf 2012-10-30
23 2884-MUM-2012-IntimationOfGrant23-05-2022.pdf 2022-05-23
23 2884-MUM-2012-FORM 26(30-10-2012).pdf 2012-10-30

Search Strategy

1 2884SEARCH_27-09-2018.pdf

ERegister / Renewals

3rd: 25 May 2022

From 28/09/2014 - To 28/09/2015

4th: 25 May 2022

From 28/09/2015 - To 28/09/2016

5th: 25 May 2022

From 28/09/2016 - To 28/09/2017

6th: 25 May 2022

From 28/09/2017 - To 28/09/2018

7th: 25 May 2022

From 28/09/2018 - To 28/09/2019

8th: 25 May 2022

From 28/09/2019 - To 28/09/2020

9th: 25 May 2022

From 28/09/2020 - To 28/09/2021

10th: 25 May 2022

From 28/09/2021 - To 28/09/2022

11th: 25 May 2022

From 28/09/2022 - To 28/09/2023

12th: 14 Sep 2023

From 28/09/2023 - To 28/09/2024

13th: 10 Sep 2024

From 28/09/2024 - To 28/09/2025

14th: 17 Sep 2025

From 28/09/2025 - To 28/09/2026