Patent Publication Number: US-2010114628-A1

Title: Validating Compliance in Enterprise Operations Based on Provenance Data

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
     The present application is related to the U.S. patent applications respectively identified as: (i) attorney docket no. YOR920080508US1, entitled “Processing of Provenance Data for Automatic Discovery of Enterprise Process Information;” (ii) attorney docket no. YOR920080588US1, entitled “Extracting Enterprise Information through Analysis of Provenance Data;” and (iii) attorney docket no. YOR920080592US1, entitled “Influencing Behavior of Enterprise Operations During Process Enactment Using Provenance Data,” all of which are filed concurrently herewith, and the disclosures of which are incorporated by reference herein in their entirety. 
    
    
     FIELD OF THE INVENTION 
     The present invention relates to provenance data and, more particularly, to techniques for validating compliance with enterprise operations based on provenance data. 
     BACKGROUND OF THE INVENTION 
     Today&#39;s enterprise applications span multiple systems and organizations, integrating legacy and newly developed software components to deliver value to enterprise operations. The Sarbanes-Oxley Act mandates the documentation of significant enterprise processes and associated control points. As enterprise processes change, new control points need to be created and the existing control points have to be evaluated. 
     Many organizations compliance assurance is a manual task which requires a lot of labor and investment. Every time a new control point is introduced, a new cost is added without the capability of reuse. Many such organizations increase their productivity by automating their enterprise processes and deploying systems to manage their operations. In many cases, however, these systems are designed and developed independent of their contractual agreements and regulations. Hence, validating a rule or a regulation over an existing and already running system is costly and requires manual efforts. 
     SUMMARY OF THE INVENTION 
     Illustrative embodiments of the invention provide techniques for validating compliance with enterprise operations based on provenance data. 
     For example, in one embodiment, a computer-implemented method for validating that an enterprise process is in compliance with a rule comprises the following steps. Provenance data is generated, wherein the provenance data is based on collected data associated with an actual end-to-end execution of the enterprise process and is indicative of a lineage of one or more data items. A provenance graph is generated that provides a visual representation of the generated provenance data, wherein nodes of the graph represent records associated with the collected data and edges of the graph represent relations between the records. A correlation is generated between one or more entities in the rule and one or more record types in the provenance data. One or more control points are generated in accordance with the generated correlation. A validation is performed as to whether the enterprise process is in compliance with the rule using the one or more control points. 
     In another embodiment, a computer-implemented method of validating that an enterprise process is in compliance with an enterprise rule comprising the steps of transforming the enterprise rule expressed in a natural language form into one or more control points expressed in terms of runtime transactions; and validating that the enterprise process is in compliance with the enterprise rule using the one or more control points. 
     Advantageously, illustrative embodiments of the invention provide for determining which enterprise transactions are relevant for a particular control point. Consequently, the cost of analyzing vast amounts of information created by transactions between runtime system components to determine relevancy is reduced. Control points are expressed in terms of runtime transactions and can be computed to determine compliance. Another advantage is that illustrative embodiments of the invention provide for transforming unstructured business rules into control points. Hence, compliance is verified by processing the control point that is generated from a rule expressed in natural language. 
     These and other objects, features, and advantages of the present invention will become apparent from the following detailed description of illustrative embodiments thereof, which is to be read in connection with the accompanying drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  illustrates a system for processing provenance data for automatic discovery of enterprise process information, according to an embodiment of the invention. 
         FIG. 2  illustrates a provenance record, according to an embodiment of the invention. 
         FIG. 3  illustrates a provenance data model, according to an embodiment of the invention. 
         FIG. 4A  illustrates an enterprise application scenario used to generate sample provenance graph, according to am embodiment of the invention. 
         FIG. 4B  illustrates a provenance graph extracted from an enterprise scenario, according to an embodiment of the invention. 
         FIG. 4C  illustrates a provenance sub-graph that represents a control-point, according to an embodiment of the invention. 
         FIG. 5  illustrates a provenance graph enrichment process, according to an embodiment of the invention. 
         FIG. 6  illustrates a compliance verification system, according to an embodiment of the invention. 
         FIG. 7  illustrates a process of mapping parsed entries of a rule onto provenance graph entries, according to an embodiment of the invention. 
         FIG. 8  illustrates a comparison of atomic relations or predicates extracted from a provenance graph with datalog syntax and corresponding natural language expressions, according to an embodiment of the invention. 
         FIG. 9  illustrates a process of creating a rule for a control point based on datalog syntax and an associated graph pattern, according to an embodiment of the invention. 
         FIG. 10  illustrates a computer system in accordance with which one or more components/steps of the techniques of the invention may be implemented, according to an embodiment of the invention. 
     
    
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS 
     As used herein, the term “enterprise” is understood to broadly refer to any entity that is created or formed to achieve some purpose, examples of which include, but are not limited to, an undertaking, an endeavor, a venture, a business, a concern, a corporation, an establishment, a firm, an organization, or the like. Thus, “enterprise processes” are processes that the enterprise performs in the course of attempting to achieve that purpose. By way of one example only, enterprise processes may comprise business processes. 
     As used herein, the term “provenance” is understood to broadly refer to an indication or determination of where something, such as a unit of data, came from or an indication or determination of what it was derived from. That is, the term “provenance” refers to the history or lineage of a particular item. Thus, “provenance information” or “provenance data” is information or data that provides this indication or results of such determination. By way of one example only, enterprise provenance data may comprise business provenance data. 
     It has been realized that actual enterprise operations often differ from their original design resulting in enterprise integrity lapses and compliance failures with significant penalties. The cost of compliance with regulatory mandates such as HIPAA (Health Insurance Portability and Accountability Act) or the Sarbanes-Oxley Act has been higher than most companies expected. According to a survey, an average Fortune 1000 company spent more than $2 million and logged more than 10,000 hours of compliance assurance work in 2005. 
     It has therefore been realized that, in order to reduce the cost of compliance assurance, companies should seek to automate manual process controls and reduce the amount of internal and consulting labor. Further, it is realized that compliance solutions should be an integral part of organization&#39;s enterprise process and enable a proactive approach to reduce risk. Such a solution should not rely merely on enterprise models but should be based on the actual execution trace of end-to-end enterprise operations. This way, operational aspects of the enterprise are captured, operational risks are measured, compliance to enterprise rules and regulations can be assured, risk points are identified and actions are taken for remediation. 
     It is also realized that tracking provenance as part of enterprise process management is particularly important in the area of compliance, where the majority of spending goes to the labor of auditors and consultants to document and track the lineage of business tasks and items. Thus, generation and use of enterprise provenance data provides the traceability of end-to-end enterprise operations (i.e., a full lifecycle) in a flexible and cost effective way. 
     Provenance helps to understand what actually happened during the lifecycle of a process by examining how data is produced, what resources are involved and which tasks are invoked. Accurate tracking of the lineage of the process executions is essential to determine the root cause of compliance failures, but as computers get faster and applications become more complex, tracking and processing large volumes of data is an expensive proposal. Fortunately, in case of a specific compliance problem or to achieve a particular performance goal, it is not necessary to track all the events. The provenance of relevant data can be identified and tracked selectively in order to reduce the complexity of the solution. 
     Below, the detailed description, in Section I, provides illustrative embodiments of an enterprise provenance approach that provides for creation and maintenance of a provenance data model and graph. This approach is disclosed in the above-referenced U.S. patent application identified as attorney docket no. YOR920080508US1, entitled “Processing of Provenance Data for Automatic Discovery of Enterprise Process Information,” filed concurrently herewith and incorporated by reference herein in its entirety. Section II of the detailed description below then provides illustrative embodiments for validating compliance with enterprise operations based on provenance data. 
     I. Provenance Data Model and Graph 
     We define an enterprise provenance approach as one that comprises capturing and managing the lineage of enterprise artifacts to discover functional, organizational, data and resource aspects of an enterprise. Examining enterprise provenance data gives insight into the chain of cause and effect relations and facilitates understanding the root causes of the resultant event. 
     In one embodiment of the invention, our approach comprises the following steps: (1) identifying the control points, relevant enterprise artifacts and required correlations; (2) probing the actual execution of the enterprise process to collect data; (3) correlating and enriching the collected data and the relations among them to create a provenance graph; (4) analyzing aggregated information to enable enterprise activity monitoring or to interfere with the execution by generating alerts; and (5) providing access to information stored in the graph for detailed investigation and root cause analysis. 
       FIG. 1  shows a system for capturing and processing provenance data for automatic discovery of enterprise process information, according to an embodiment of the invention. The enterprise process information discovery system comprises storage unit  101 , multi-capturing/recording components  103 , provenance data management sub-system  107 , rules library  109 , provenance graph enrichment engine  111 , text analysis engine  110 , enterprise data repository  120 , provenance data query interface  113 , graph visualizer  117  and dashboard  115 . 
     The provenance data management component  107  supports the specification of the provenance data model  105 , i.e., the list of enterprise objects to be captured and the level of details. It is also used to define the correlation rules between two data records. Capturing/recording components  103  are used to capture, process, and reformat application events of the underlying information system  100  (including, for example, computers, servers, repositories, email systems and other enterprise systems) and record the meta-data of enterprise operations into the provenance store. Hence, capturing/recording components  103  map the captured event data onto the data model defined ( 122 ) by provenance data management component  107 . The information is then transferred ( 121 ) to storage unit  101 , which is the store for provenance data. 
     Provenance data management component  107  generates rules ( 130 ) that are stored in rules library  109  for provenance graph enrichment engine  111 . The rules define a correlation between the enterprise artifacts which is then used to connect them in the provenance graph representation. 
     Provenance graph enrichment engine  111  links and enriches the collected data to produce the provenance graph. To do so, provenance graph enrichment engine  111  accesses ( 126 ) the content of the provenance store  101  through provenance data query interface  113  as well as the original enterprise data. It also employs text analysis engine  110  to discover relationships among data records by analyzing the unstructured text contained in some of the data records. As an example, the analysis of e-mail may reveal that it is a rejection and is used to establish a link between the e-mail and an approval task. 
     The enriched enterprise data is accessed through query interface  113  and is used to display information about actual enterprise operations. This can be done in one of several ways. One way is to deploy a query into the provenance store which emits the results in real-time, feeding an existing dashboard  115  in order to display key performance indicators as an example. Secondly, a query front-end enables visualization and navigation through the provenance graph by using graph visualizer component  117 . 
     The central component of the architecture is data store  101  where the provenance graph and the associated data records are kept. When the probed event data coming from the runtime systems  100  is transformed into provenance data by capturing/recording component  103 , they are written to the store through a database connection ( 121 ). As new data are captured and recorded, provenance graph enrichment engine  111  is notified via connection  124 . Provenance graph enrichment engine  111  examines the new data records and run associated rules from the rules library, utilizes the existing enterprise data as well as text analysis engine  110  to determine a possible correlation. If new data items or relations are discovered, they are written to the province store via query interface  113 . 
     Ensuring compliance through the information system  100  requires laying out a data model that covers the relevant aspects of the enterprise operations. Creating a data model is the first step to bridge enterprise operations to information systems. The data model should support relevant and salient aspects of the enterprise. 
       FIG. 2  illustrates a comprehensive, generic data model that can be extended to meet the domain specific needs. As shown, the data of enterprise artifacts stored in the provenance store, depicted as Provenance Record  210 , falls into one of the following five dimensions or classes: 
     Data Record  230 : A data record is the representation of an enterprise artifact that was produced or changed during execution of an enterprise process. Typically, those artifacts include documents, e-mails, and database records. In the provenance store, each version of such an artifact is represented separately. 
     Task Record  220 : A task record is the representation of the execution of one particular task. Such task might be part of a formally defined enterprise process or be stand alone; it might be fully automated or manual. 
     Process Record  240 : A process record represents one instance of a process. In automated enterprise management systems, tasks are executed by processes. Hence, each task is associated to the corresponding process record. 
     Resource Record  215 : A resource record represents a person, a runtime or a different kind of resource that is relevant to the selected scope of enterprise provenance, e.g., as actor of a particular task. 
     Custom Records  250 : Custom records provide the extension point to capture domain specific, mostly virtual artifacts such as compliance goals, alerts, checkpoints, etc. This will be explained in greater detail below. 
     These five classes of records represent the nodes of the provenance graph. To define the correlation between two records, Relation Records  260  represent the edges. These are the records generally produced as a result of relation analysis among the collected records. For simplicity of explanation, we only consider binary relations between records. However, relations between relation records are possible and such higher degree relation could be expressed in accordance with illustrative principles of the invention. Some relations are rather basic on the IT (information technology) level, such as the read and write between tasks and data. Other relations are derived from the context, such as that between manager and achieved challenge. 
     As mentioned above, the inventive enterprise provenance solution provides a generic data model that can be extended to meet the application domain specific needs. 
       FIG. 3  depicts the UML (Unified Modeling Language) representation of the provenance graph data model. Basically, the provenance graph comprises six different sets of records, namely, Process  310 , Data  320 , Task  330 , Resource  340 , Relation  380  and Custom  350  record types. Each record is an extensible XML data structure and all records share common attributes: id and type are used to identify and classify the record within the graph; the appId (application specific id) and display name refer to characteristics of the corresponding enterprise artifact. These attributes are inherited from a parent record type, RecordType  370 . Data, task and process records are added to the provenance graph as the business operations are executed. Resource and custom records are often added after the fact by analytics. Those five record classes represent the nodes of the provenance graph. A semantic relation between two enterprise artifacts is expressed by an edge between the corresponding nodes materialized as a relation record.  FIG. 3  shows several specializations of the basic record types. The challenge document and key control point type, however, are specific to a particular application. 
     ProcessRecordType  310  is differentiated from the other record types by trigger, startTime, endTime, runtime and model attributes. DataRecordType  320 , on the other hand, has creator, creation Time, location, hash Value attributes. These attributes are consistent with the original purpose of having these records in the graph. In  FIG. 3 , two data record types are exemplified which are specific to a particular application; EmailRecordType  322  and ChallengeDocumentType  324 . Email record type contains all the attributes necessary to represent an e-mail document such as subject, from, to, cc, bcc, sendTime, receiveTime, reference, attachments while ChallengeDocumentType represents an application specific document attributes. 
     Relations connect to provenance records. Hence, a RelationRecordType  380  has source and target attributes. Various other relation types are also depicted as extensions of RelationRecordType in  382 . 
     In order to keep the data model generic and flexible, CustomRecordType  350  is introduced and KeyControlPointType  352  is shown as an example to a custom record type. KeyControlPointType  352  is used to relate records to a particular compliance control point. ProvenanceGraphType  360  is introduced to represent the attributes of the graph which are listed as relations, dataRecords, taskRecords, processRecords, resourceRecords, customRecords. In addition to the graph attributes, the domainId attribute is introduced to specify the particular domain for which this provenance graph is generated. EmployeeRecordType  344  contains the attributes that define an employee within the organization. These attributes are listed as an email address, a userid, indicator of being a manager or not, the name of employee&#39;s manager and employee&#39;s role in executing the tasks. A recordType  370  is the parent of all record types from where they inherit id, type, application id, display name and xml attributes. The children of recordType  370  are ProcessRecordType  310 , DataRecordType  320 , TaskrecordType  330 , CustomRecordType  350  and RelationRecordType  370 , as mentioned previously. Following the concept of object oriented modeling, ExtensibleType  394  can be considered the ancestor of all types which has three children, namely, RecordType ( 370 ), RecordReferenceType ( 390 ) and ContentReferenceType ( 396 ). ExtensibleType passes one attribute, extensions, to the children. This attribute gives flexibility to have multiple extensions of the same model. The content and record reference types, ContentReferenceType  396  and RecordReferenceType  390  are used to refer to the location of actual data. Note that the provenance graph is a meta-information repository and the actual data resides within the enterprise at the addresses specified in record and content reference types. Resource RecordType ( 340 ) has two children. That is, there are two kinds of resource records, employees and machines. These are the entities that activate task items. In the model, employee resource is represented by EmployeeRecordType  344  and machine resources are represented as RuntimeRecordType ( 346 ). 
     In order to demonstrate how a provenance graph captures various aspects of the enterprise, we take a closer look at a sample scenario related to distribution of variable compensation of sales employees. Our example represents a simplified version of the actual process seen in a customer engagement. The process can be described as follows: A sales employee receives commissions for the generated revenue or profit as variable part of his income. To align these incentives specifically to the line of business, geography, and individual situation of the employees, managers create challenges. A challenge is a document that describes in detail each sales target and the associated compensation. If an employee is able to provide evidence about the achievement of a particular challenge, commission is added to his next payment statement as an incentive. 
     Although from modeling point of view there is one end-to-end process instance that spans all activities from the creation of a particular challenge to the issuance of the corresponding payment statement, in practice, various distributed systems are involved in the execution of the process. Processing structured as well as unstructured documents and running formal sub-processes as well as ad-hoc tasks increases the operational complexity.  FIG. 4A  illustrates this scenario. 
     In the first step, the manager creates the challenge (1) using a Web-front-end to the central record management system. This task triggers an automated email informing the employee about the challenge. To claim the achievement, the employee has to provide evidence (2)—which can take various forms: a contract or receipt, a fax from the sales customer, a pointer to a different revenue database, etc. Typically, the evidence is available electronically and it is attached to an e-mail sent to his manager by the employee. Upon reviewing the evidence, the manager evaluates the challenge and, in case of achievement, marks its status (3). Periodically, the latest achievement data is collected and fed into the payroll system (4). Finally, the paycheck is issued to the employee (5). 
     In order to assure the compliance of the overall process with legal accounting regulations, various control points are introduced. Each control point reflects one locally verifiable requirement is validated today manually for a small number of sampled transactions by internal and/or external auditors. Typically, control points are established for the interaction of various systems and the verification of the control point requires the correlation of structured and/or unstructured data. In  FIG. 4A , the two control points are shown. Control point A requires the manager to obtain, evaluate carefully, and maintain the evidence of any achieved challenge. Control point B requires the paycheck to reflect the accumulated commissions correctly. 
     To verify control point A, an auditor selects an achieved challenge, requests the evidence, and compares the sales targets with the documented achievements. This seemingly simple task has proven to be quite complicated in practice. Firstly, the evidence is not directly linked to the challenge. In some cases, it is not even stored in a central repository but kept locally by the manager. The auditor therefore has to contact the manager, and the manager has to find the right documents. Our observations have shown compliance failure rate of 70%, largely because the evidence could not be located. Also, we have observed lengthy email exchanges between an auditor and a manager until the correct evidence could be identified. As a result of this cumbersome process, only a small fraction of the total number of transactions can be sampled, which implies a high number of undetected questionable situations and possibly fraud. In addition, there had been no support available to track down the root-cause once a questionable situation was detected. This is a major drawback of the existing auditing method. To enable an enterprise to prevent future wrongdoing or simply to detect a pattern of fraudulent behavior, it is essential to answer the following question: “Why did this happen?” Our proposed enterprise provenance approach targets exactly this question. 
     In the given example, one might argue that the process is not well designed. But regardless how carefully an application is architected, there will always be gaps between the different systems involved, there will always be data that does not fit into predefined forms, and there will always be exceptions in the execution. Rather than requiring a full scale, heavyweight data integration, our approach focuses on the recording of meta-data of relevant objects and events into a centralized and easily accessible store with links into the original systems; the automated correlation of those meta-data to establish execution traces, versioning histories, and other relevant relations; and finally the deep analysis to detect situations after the fact, raise alerts while monitoring continuously, and even interfere with the execution to prevent compliance violations. 
       FIG. 4B  depicts the provenance graph for the scenario explained above. The relevant enterprise artifacts and their relations with respect to the scenario are illustrated. DataRecord types are identified by cylindrical shapes while ResourceRecord types are hexagonal, and TaskRecord types are rectangular. Thus, with respect to the scenario in  FIG. 4A , the corresponding task records are represented in  FIG. 4B  as ChallengeProcess node  470 , CreateChallenge node  420 , and MarkAchievenment node  410 . Further, the corresponding resource records are represented as SalesManager node  450  and SalesEmployee node  460 . Corresponding data records are represented as OfferedChallenge node  430  and AchievedChallenge node  440 . The diamond shapes on the edges between nodes represent the corresponding relation records: partOf  422 , writes  426 , priorVersion  432 , reads  434 , priorTask  424 , actor  452 , partOf  472 , actor  458 , managerOf  454 , writes  412 , managerOf  456 , employeeOf  462 . 
     The provenance sub-graph of  FIG. 4C  shows how to represent a control point (in particular, control point A shown in  FIG. 4A ) which indicates a requirement that sales manager must obtain and review the supporting document that supports the achieved challenge. Representing control points at the IT level enables computing compliance automatically. 
     More particularly, with respect to the scenario in  FIG. 4A , the corresponding task record is represented in the sub-graph of the control point ( 468 ) in  FIG. 4C  as SendClaim node  476 . Further, the corresponding resource records are represented as SalesManager node  470  and SalesEmployee node  471 . Corresponding data records are represented as AchievedChallenge node  472 , ClaimEmail node  474 , and SupportingDocument node  478 . Again, the diamond shapes on the edges between nodes represent the corresponding relation records. For the sake of simplicity, they have not been separately numbered since their specific relationships to the nodes they attach are dependent on the process being modeled (and fully understood from the scenario explained above in the context of  FIG. 4A ). 
       FIG. 5  shows the process of enriching the provenance graph. Provenance graph  500  is enriched by finding the relations among existing provenance records and discovering the new ones. The relations among the provenance records are defined by the rule files stored in the rule library  109 . As an example, a simple rule may indicate that if the value of “From” field of an e-mail document is equal to the e-mail address of a person record, “sender” relation is set between the e-mail DataRecord and the person ResourceRecord. For every new item created in the graph, provenance graph enrichment engine  111  is notified via a graph event listener  510 . The attributes of these newly created records are queried through graph query interface  520  and the received information is passed to the analytics component  540 . 
     The main function of the analytics is to find relations or new records by computing the rules stored in the rules library  109  over the attributes of provenance records. Existing enterprise data  120  could also be used to find new relations, such as management or organizational relations. Text analysis engine  110  is employed when rules require the analysis of an unstructured content. 
     II. Validating Rule Compliance 
     In the illustrative embodiments described herein, a system is described for utilizing the actual execution traces of an enterprise operation in order to verify compliance. The execution trace is captured in the form a graph from the instances of enterprise operations in a manner as described above in section I. Recall from  FIG. 1  that the graph data is stored in the provenance store  101  and accessed through a query interface  113 . 
     In one embodiment, a methodology transforms enterprise rules that are expressed in the form of natural language into business control points that are written in terms of runtime transactions. Control points can then be computed for verification. This is done by creating semantic relations between the wording of the regulations/rules and the provenance data model. Hence, there is a linkage between the rules to be monitored and the data model to be created. The link is established by the domain expert who utilizes the results of natural language analysis of the rules and mapping them onto enterprise record types. Once the entities of the rule are mapped onto the nodes and the edges of provenance graph, a control point can be expressed in terms of the execution data. 
     Hence, an important aspect of the invention is to generate a control point which is expressed in terms of the graph entities from rules expressed in natural language. This feature separates the roles of non-technical people who are familiar with the rules and regulations, but are not familiar with the underlying IT (information technology) systems and the developers who can focus on IT level details and data modeling. 
     Principles of the invention establish a connection between the rules and operation execution traces to verify compliance by using an approach that is applicable to different domains. Hence, the solution is not particular to a specific enterprise process or application. The methodology described in this invention enables the validation of an enterprise (business) or operation rule that is expressed in natural language by using the execution traces or events captured from the IT system components. In summary, principles of the invention teach how to create control points for rules that can be computed against the execution trace to verify compliance. 
       FIG. 6  shows main components of a compliance verification system, according to an illustrative embodiment of the invention. As shown, the business or the operational rules to be verified against the execution trace of the enterprise process are entered as natural language expressions through a user interface ( 610 ). The rule expression is then parsed and parts-of-speech tags for the parsed entities are generated ( 630 ). A parts-of-speech tagger is a main component of a text analysis system which assigns a syntax class such as noun, verb, adjective, adverb, to every word in a sentence. There are several different kinds of language parsing software applications available that can be employed here. The invention is not intended to be limited to any particular one. One other linguistic tool often used in text analysis is a vocabulary extractor ( 632 ) which identifies the domain specific vocabulary in a document. Generally, dictionaries are used to establish the semantic relations between extracted nouns and verbs and the business context. WorldNet is such a dictionary for English language and available under BSD license freely to the developers. 
     Hence, the rule is analyzed linguistically by using components  630  and  632  to produce language entities. These language entities are then mapped onto provenance data record types in ( 634 ). The mapping is done initially by a domain expert manually to bootstrap the overall process. The mapping process will be explained below within the context of  FIG. 7 . 
     Before explaining the process of mapping the rules onto control points, recall the following about the provenance data model (as explained in section I). The provenance data model is a generic data model designed to capture the lineage information of various aspects of enterprise operational data. The execution traces are formed by collecting business events and converting them into provenance records as described above. Recall that  FIG. 2  illustrates the different provenance record types which reflect the five dimensions of an enterprise process. 
     Recall that a data record (shown as cylinder shape) is the representation of an enterprise artifact that was produced or changed during execution of an enterprise process. Typically, those artifacts include documents, e-mails, and database records. In the provenance store, each version of such an artifact is represented separately. Thus, two data records for the same challenge document can be seen in  FIG. 9 : one representing the challenge in the state offered and another in the later state achieved. 
     Recall that a task record (shown as rectangle) is the representation of the execution of one particular task. Such task might be part of a formally defined process or might be stand alone, and might be fully automated or manual. In  FIG. 9 , both task records are part of the challenge process. As a task manipulates data, a relationship is created between the corresponding task record has relations to and the affected data records. 
     Recall that a process record (shown as rounded rectangle) represents one instance of a process. In automated business management systems, tasks are executed by processes. Hence, each task record is associated to the corresponding process record. 
     Recall that a resource record (shown as hexagon) represents a person, a runtime or a different kind of resource that is relevant to the selected scope of enterprise provenance, e.g., as actor of a particular task. In  FIG. 9 , one employee and his/her manager are represented, both related to the achieved challenge. 
     Recall that a custom record provides the extension point to capture domain specific, mostly virtual artifacts such as compliance goals, alerts, checkpoints, etc. The next section will provide greater details. 
     Those five classes of records represent the nodes of the provenance graph. To define the correlation between two records, Relation Records are created that represent the edges. These are the records generally produced as a result of relation analysis among the collected records. Some relations are rather basic on the IT level, such as the read and write between tasks and data. Other relations are derived from the context. As explained above, this is a generic data model that can be extended to meet the specific needs of an enterprise process. 
     As result of mapping execution data onto provenance data records, a graph is formed, which is called a provenance graph. Recall that  FIG. 4B  shows a sample trace of the enterprise operations in terms of a provenance graph that comprises different provenance record types as illustrated in  FIG. 2 . In the example provenance graph depicted in  FIG. 4B , SalesManager and SalesEmployee are resource records; MarkAchievement and CreateChallenge are task records; ChallengeProcess is a process record; and OfferedChallenge and AchievedChallenge are data records. The edges of the graph show the relations between various record types. In the illustrative embodiments of section II, principles of the invention utilize this process execution, expressed in terms of a graph, to answer compliance related questions. 
       FIG. 7  demonstrates the mapping process denoted by block  634  in  FIG. 6 . The mapping process need not be completely automated. A subject matter expert  620 , who knows the provenance data model and the semantic associated to the provenance records, employs the results of text analysis to realize mapping as illustrated in  FIG. 7 . This is the initial manual bootstrapping. 
     A control point is created from a rule stated as “A sales challenge can be considered achieved after first line manager receives the supporting document attached to the claim e-mail sent by the employee” ( 710 ). As a first step towards creating a control point, extracted nouns and subjects are used to identify resource records, extracted verbs are used to identify task or relation records. As a result of applying this approach, for the example given in  FIG. 7 , the following mapping in Table 1 is realized between the parsed language entities and the data records: 
     
       
         
           
               
             
               
                 TABLE 1 
               
             
            
               
                   
               
               
                 Mapping language entities to provenance record types 
               
            
           
           
               
               
            
               
                 Parsed Language Entities 
                 Provenance records 
               
               
                   
               
               
                 Achieved (Adj) 
                 AchievedChallenge (DataRecord) 
               
               
                 First Line Manager (Noun) 
                 SalesManager (Resource Record) 
               
               
                 Supporting Document (Noun) 
                 SupportingDocument (Data Record) 
               
               
                 Claim e-mail (Noun) 
                 ClaimEmail (Data Record) 
               
               
                 Sent (Verb) 
                 Sender (Relation Record) 
               
               
                   
               
            
           
         
       
     
     Before we explain how to perform mapping between the rules and control points, it is important to understand the semantic interpretation of the edges in the graph. Every connection between two graph nodes represents a simple relation, called an atom or a predicate. The mapping helps to express each atomic relation in the form of natural language. Each atom can also be represented by using datalog logic programming notation. 
       FIG. 8  shows each atom in three different formats, namely, provenance graph, datalog and natural language formats. The datalog format is known and disclosed in, for example, S Ceri et al., “What you always wanted to know about Datalog (and never dared to ask),” IEEE Transactions on Knowledge and Data Engineering 1(1), 1989, pp. 146-66; and Datalog User Manual, John D. Ramsdell of The MITRE Corporation, 2004, the disclosures of which are incorporated by reference herein in their entirety. 
     This is an important aspect of the invention where the relationship between a rule expressed in natural language and the provenance graph is established. Note that any rule can be built by using the atoms described above. An atom is a predicate and the combinations of these atoms can form a complex conditional statement. The atoms are used to generate if-then conditions. In general, a goal is represented as the combination of sub-goals where a sub-goal is an atom. Based on this technique, first the truth value of each sub goal is evaluated to determine if a goal is satisfied. 
     Following the approach described above, an enterprise rule is considered a goal and it can be represented in terms of sub-goals or atoms. Once the mapping is completed, then the subject matter expert  620  ( FIG. 6 ) builds a sub-graph out of atomic relations that represents the rule. This is called the control point patterns  636 . If the sub-graph that represents the control point pattern exists in the provenance graph, then it is an indication that the associated compliance goal is satisfied. The subject matter expert may query (using provenance graph query interface  660 ) to existing provenance graph ( 685 ) to see actual patterns, relations and record types before finalizing a control point pattern. 
       FIG. 9  shows how a control point pattern is build by using datalog syntax and the associated sub-graph. First, the rule is divided into atoms or sub-goals and a logical condition is created. In the example depicted by  FIG. 9 , the goal is “Challenge is achieved” and it is represented by Achieved(challenge) which is the head of the rule. All the sub-goals that must be satisfied in order to satisfy the main goal are expressed by using datalog syntax. The goal reads as follows by using datalog syntax: 
     If (SalesManager receives ClaimEmail) AND (the sender of ClaimEmail is SalesEmployee) AND (the SupportingDocument is attached to the ClaimEmail AND (the SupportingDocument supports the Challenge) THEN the “Challenge is Achieved). 
     The sub-graph  900  in  FIG. 9  is the representation of the conditional statement above in graph form. Principles of the invention create a transformation from rules expressed in natural language into a sub-graph. The control point patterns are generated in block  636  by the subject matter expert  620  initially as a manual bootstrapping. Control points are sub-graphs and stored in the control point library  625 . After initial manual bootstrapping by the subject matter expert, control points can be generated automatically. 
     Referring again back to  FIG. 6 , the evaluation engine  650  searches the provenance graph stored in  680  through the provenance graph query interface  660 . The rule is validated if a matching pattern is found in the graph corresponding to the associated control point that resides in the library  625 . The results are displayed through result viewer  670 . 
     Lastly,  FIG. 10  illustrates a computer system in accordance with which one or more components/steps of the techniques of the invention may be implemented. It is to be further understood that the individual components/steps may be implemented on one such computer system or on more than one such computer system. In the case of an implementation on a distributed computing system, the individual computer systems and/or devices may be connected via a suitable network, e.g., the Internet or World Wide Web. However, the system may be realized via private or local networks. In any case, the invention is not limited to any particular network. 
     Thus, the computer system shown in  FIG. 10  may represent one or more of the components/steps shown and described above in the context of in  FIGS. 1 through 9 . For example, the computer system may be used to implement one or more of the components of the compliance verification system depicted in  FIG. 6 . 
     The computer system may generally include a processor  1001 , memory  1002 , input/output (I/O) devices  1003 , and network interface  1004 , coupled via a computer bus  1005  or alternate connection arrangement. 
     It is to be appreciated that the term “processor” as used herein is intended to include any processing device, such as, for example, one that includes a CPU and/or other processing circuitry. It is also to be understood that the term “processor” may refer to more than one processing device and that various elements associated with a processing device may be shared by other processing devices. 
     The term “memory” as used herein is intended to include memory associated with a processor or CPU, such as, for example, RAM, ROM, a fixed memory device (e.g., hard disk drive), a removable memory device (e.g., diskette), flash memory, etc. The memory may be considered a computer readable storage medium. 
     In addition, the phrase “input/output devices” or “I/O devices” as used herein is intended to include, for example, one or more input devices (e.g., keyboard, mouse, etc.) for entering data to the processing unit, and/or one or more output devices (e.g., display, etc.) for presenting results associated with the processing unit. 
     Still further, the phrase “network interface” as used herein is intended to include, for example, one or more transceivers to permit the computer system to communicate with another computer system via an appropriate communications protocol. 
     Accordingly, software components including instructions or code for performing the methodologies described herein may be stored in one or more of the associated memory devices (e.g., ROM, fixed or removable memory) and, when ready to be utilized, loaded in part or in whole (e.g., into RAM) and executed by a CPU. 
     In any case, it is to be appreciated that the techniques of the invention, described herein and shown in the appended figures, may be implemented in various forms of hardware, software, or combinations thereof, e.g., one or more operatively programmed general purpose digital computers with associated memory, implementation-specific integrated circuit(s), functional circuitry, etc. Given the techniques of the invention provided herein, one of ordinary skill in the art will be able to contemplate other implementations of the techniques of the invention. 
     Although illustrative embodiments of the present invention have been described herein with reference to the accompanying drawings, it is to be understood that the invention is not limited to those precise embodiments, and that various other changes and modifications may be made by one skilled in the art without departing from the scope or spirit of the invention.