Patents by Inventor Mark Proctor
Mark Proctor has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 11928609Abstract: Aspects and features of the present disclosure can reconcile node sharing within a production rule network that is fully coded in a compiled language. As an example, the shared, stateless class can represent constraints shared by the alpha node of a rete network. Code can be post processed to create a shared stateless class defined in memory. When the rule engine is executed and the rule network is produced, the shared stateless class can be referenced to evaluate a constraint shared by a node of the production rule network, reducing the number of classes stored in memory. Garbage collection can be used within the shared stateless class, deleting objects from memory structure when no longer used, further improving storage efficiency.Type: GrantFiled: November 17, 2020Date of Patent: March 12, 2024Assignee: RED HAT, INC.Inventors: Luca Molteni, Mark Proctor
-
Publication number: 20220156616Abstract: Aspects and features of the present disclosure can reconcile node sharing within a production rule network that is fully coded in a compiled language. As an example, the shared, stateless class can represent constraints shared by the alpha node of a rete network. Code can be post processed to create a shared stateless class defined in memory. When the rule engine is executed and the rule network is produced, the shared stateless class can be referenced to evaluate a constraint shared by a node of the production rule network, reducing the number of classes stored in memory. Garbage collection can be used within the shared stateless class, deleting objects from memory structure when no longer used, further improving storage efficiency.Type: ApplicationFiled: November 17, 2020Publication date: May 19, 2022Inventors: Luca Molteni, Mark Proctor
-
Patent number: 10817268Abstract: Methods, systems, and computing systems are provided for providing a visual representation of a domain model. An example method includes providing a class corresponding to a first stencil. The class is annotated to include a definition, a property, and a rule. A visual representation of the first stencil is provided in a graphical user interface, where the annotated definition and the annotated property modify the visual representation that is displayed. When the visual representation is moved, by a user, in relation to a second stencil, a determination is made, based on the location of the moved first stencil and the second stencil, that the first stencil violates the rule. The visual representation of the moved first stencil is modified to indicate the violation of the rule.Type: GrantFiled: August 10, 2017Date of Patent: October 27, 2020Assignee: RED HAT, INC.Inventors: Roger Martinez Palleja, Mark Proctor
-
Patent number: 10755186Abstract: Systems and methods for allowing pluggable knowledge types to be discovered, registered, and added to a rule engine are disclosed. An example method may include retrieving, by a processing device executing a rule engine, a list of pluggable services associated with a specified knowledge type; identifying a first pluggable service on the list of pluggable services; identifying one or more knowledge types that the first pluggable service is configured to process, wherein the one or more knowledge types comprise the specified knowledge type; and indexing, by the processing device, the first pluggable knowledge in the service registry by information identifying the one or more knowledge types.Type: GrantFiled: August 24, 2016Date of Patent: August 25, 2020Assignee: Red Hat, Inc.Inventors: Mark Proctor, Mario Fusco
-
Patent number: 10430234Abstract: A processing device executes a multi-threaded rule engine having multiple threads. A first thread is associated with user interactions. A second thread is associated with timing events. A third thread is associated with asynchronous execution of the rule engine. A rule engine core is accessible to the second and third threads. The processing device receives user input and generates a first command to perform a first action in view of the user input while executing the first thread. The processing device stores the first command in a queue where the first command is one of multiple commands stored in the queue. The processing device retrieves the multiple commands from the queue and processes the multiple commands using the rule engine core while executing the third thread. The rule engine core is inaccessible to the second thread while in use by the third thread.Type: GrantFiled: February 16, 2016Date of Patent: October 1, 2019Assignee: Red Hat, Inc.Inventors: Mark Proctor, Mario Fusco
-
Patent number: 10339454Abstract: A processing device executing a rule engine receives a first object. The processing device determines whether the first object is represented by a relational model or an object-oriented model. The first object is determined to be represented by the relational model responsive to the first object lacking a reference to a nested object. The first object is determined to be represented by the object-oriented model responsive to the first object including a reference to a nested object. If the first object is represented by the relational model, a join is performed between the first object and a second object based on a relationship between the objects using a first node. If the first object is represented by the object-oriented model, an expression of the first object is evaluated to navigate to a third object that is a first nested object of the first object using a second node.Type: GrantFiled: January 7, 2016Date of Patent: July 2, 2019Assignee: Red Hat, Inc.Inventors: Mark Proctor, Mario Fusco
-
Publication number: 20190050207Abstract: Methods, systems, and computing systems are provided for providing a visual representation of a domain model. An example method includes providing a class corresponding to a first stencil. The class is annotated to include a definition, a property, and a rule. A visual representation of the first stencil is provided in a graphical user interface, where the annotated definition and the annotated property modify the visual representation that is displayed. When the visual representation is moved, by a user, in relation to a second stencil, a determination is made, based on the location of the moved first stencil and the second stencil, that the first stencil violates the rule. The visual representation of the moved first stencil is modified to indicate the violation of the rule.Type: ApplicationFiled: August 10, 2017Publication date: February 14, 2019Inventors: Roger Martinez Palleja, Mark Proctor
-
Patent number: 10061758Abstract: Disclosed herein are systems, methods, and non-transitory computer-readable storage media for managing spreadsheets with decision tables. The exemplary method includes generating an underlying data model associated with a visual data model of a spreadsheet containing a decision table, populating the underlying data model based on information contained in the visual data model and based on the decision table, generating a first index for mapping cells in the visual data model to cells in the underlying data model consistent with the decision table, and generating a second index for mapping cells in the underlying data model to cells in the visual data model consistent with the decision table.Type: GrantFiled: March 29, 2012Date of Patent: August 28, 2018Assignee: Red Hat, Inc.Inventors: Michael Anstis, Mark Proctor
-
Publication number: 20170236062Abstract: A processing device executes a multi-threaded rule engine having multiple threads. A first thread is associated with user interactions. A second thread is associated with timing events. A third thread is associated with asynchronous execution of the rule engine. A rule engine core is accessible to the second and third threads. The processing device receives user input and generates a first command to perform a first action in view of the user input while executing the first thread. The processing device stores the first command in a queue where the first command is one of multiple commands stored in the queue. The processing device retrieves the multiple commands from the queue and processes the multiple commands using the rule engine core while executing the third thread. The rule engine core is inaccessible to the second thread while in use by the third thread.Type: ApplicationFiled: February 16, 2016Publication date: August 17, 2017Inventors: Mark Proctor, Mario Fusco
-
Publication number: 20170200083Abstract: A processing device executing a rule engine receives a first object. The processing device determines whether the first object is represented by a relational model or an object-oriented model. The first object is determined to be represented by the relational model responsive to the first object lacking a reference to a nested object. The first object is determined to be represented by the object-oriented model responsive to the first object including a reference to a nested object. If the first object is represented by the relational model, a join is performed between the first object and a second object based on a relationship between the objects using a first node. If the first object is represented by the object-oriented model, an expression of the first object is evaluated to navigate to a third object that is a first nested object of the first object using a second node.Type: ApplicationFiled: January 7, 2016Publication date: July 13, 2017Inventors: Mark Proctor, Mario Fusco
-
Publication number: 20170061289Abstract: Systems and methods for allowing pluggable knowledge types to be discovered, registered, and added to a rule engine are disclosed. An example method may include retrieving, by a processing device executing a rule engine, a list of pluggable services associated with a specified knowledge type; identifying a first pluggable service on the list of pluggable services; identifying one or more knowledge types that the first pluggable service is configured to process, wherein the one or more knowledge types comprise the specified knowledge type; and indexing, by the processing device, the first pluggable knowledge in the service registry by information identifying the one or more knowledge types.Type: ApplicationFiled: August 24, 2016Publication date: March 2, 2017Inventors: Mark Proctor, Mario Fusco
-
Patent number: 9361582Abstract: Some embodiments of efficient binary protocol marshalling for rule engine sessions have been presented. In one embodiment, a set of marshalling plug-ins is provided to a rule engine. Each of the set of marshalling plug-ins is customized for a type of user objects. In response to encountering a user object, the rule engine selects a marshalling plug-in out of the set of marshalling plug-ins based on a type of the user object to marshall in or to marshall out the user object.Type: GrantFiled: September 4, 2012Date of Patent: June 7, 2016Assignee: Red Hat, Inc.Inventors: Mark Proctor, Edson Tirelli
-
Patent number: 9286570Abstract: A processing device executing a Rete rule engine modifies a particular property of an object that has traversed a Rete network. The processing device associates a first data structure with the object, the first data structure indicating that the particular property of the object has been modified. The processing device then determines whether the particular property is a constraint relevant to a node of the Rete network based on comparing the first data structure to a second data structure associated with the node, wherein the second data structure identifies one or more modifiable properties that are constraints relevant to the node. If the particular property is a constraint relevant to the node, the processing device evaluates the object with the node. If the particular property is not a constraint relevant to the node, the processing device determines not to evaluate the object with the node.Type: GrantFiled: January 11, 2013Date of Patent: March 15, 2016Assignee: Red Hat, Inc.Inventors: Mark Proctor, Mario Fusco
-
Patent number: 9213942Abstract: Some embodiments of pattern behavior support in a rule engine have been presented. In one embodiment, a behavior builder registry is stored on a computer-readable storage device in a server. The behavior builder registry includes a set of behaviors supported by a rule engine and a set of builders associated with the behaviors. A compiler running on the server may compile a set of rules using the behavior builder registry to generate a network having a set of nodes. In response to a data object asserted propagating into a node of the network, the rule engine may first check one or more behaviors at the node before applying one or more regular constraints at the node on the data object asserted.Type: GrantFiled: August 12, 2009Date of Patent: December 15, 2015Assignee: Red Hat, Inc.Inventors: Mark Proctor, Edson Tirelli
-
Patent number: 8930297Abstract: Some embodiments of using left and right unlinking by an example rule engine have been presented. A rule engine can create a network having a number of nodes to evaluate a set of rules in a knowledge base. The rule engine may initialize a session to be processed using the network to allow each of the nodes to be logically left unlinked and logically right unlinked at the same time during the session.Type: GrantFiled: November 30, 2010Date of Patent: January 6, 2015Assignee: Red Hat, Inc.Inventors: Mark Proctor, Edson Tirelli
-
Patent number: 8881064Abstract: A method of providing a user interface for controlling a system (1;27) includes observing a presence of a body or body part of a user in a certain environment of a device (6,14-17;30). At least a perceptible part (28,34) of the user interface is made available to the user in association with a particular functionality for interacting with the system (1;27) controlled by the user interface in dependence on a rate of displacement of the body or body part of the user observed in the certain environment.Type: GrantFiled: November 21, 2008Date of Patent: November 4, 2014Assignee: Koninklijke Philips N.V.Inventors: Lucas Jacobus Franciscus Geurts, Gavin Mark Proctor, Stuart Ronald Pill, Angus David Dick, Daniel Karl Pezzutti, Floris Maria Hermansz Crompvoets
-
Publication number: 20140310621Abstract: A method of providing a user interface for controlling a system includes observing a presence of a body or body part of a user in a certain environment of a device. At least a perceptible part of the user interface is made available to the user in association with a particular functionality for interacting with the system controlled by the user interface in dependence on a rate of displacement of the body or body part of the user observed in the certain environment.Type: ApplicationFiled: June 20, 2014Publication date: October 16, 2014Inventors: Lucas Jacobus Franciscus Geurts, Gavin Mark Proctor, Stuart Ronald Pill, Angus David Dick, Daniel Karl Pezzutti, Floris Maria Hermansz Crompvoets
-
Publication number: 20140201124Abstract: A processing device executing a Rete rule engine modifies a particular property of an object that has traversed a Rete network. The processing device associates a first data structure with the object, the first data structure indicating that the particular property of the object has been modified. The processing device then determines whether the particular property is a constraint relevant to a node of the Rete network based on comparing the first data structure to a second data structure associated with the node, wherein the second data structure identifies one or more modifiable properties that are constraints relevant to the node. If the particular property is a constraint relevant to the node, the processing device evaluates the object with the node. If the particular property is not a constraint relevant to the node, the processing device determines not to evaluate the object with the node.Type: ApplicationFiled: January 11, 2013Publication date: July 17, 2014Applicant: RED HAT, INC.Inventors: Mark Proctor, Mario Fusco
-
Patent number: 8756049Abstract: Some embodiments of a simulation and test framework for a rule engine have been presented. In one embodiment, a simulator runs a simulation in a time-aware environment. A rule engine, coupled to the simulator, may execute a set of business logic in response to the simulation in order to test behavior of the business logic. The business logic may include rules, workflow, and event processing.Type: GrantFiled: July 13, 2010Date of Patent: June 17, 2014Assignee: Red Hat, Inc.Inventor: Mark Proctor
-
Patent number: 8712949Abstract: A method to support multi-dimensional tuples in rule engines having rule engine executed by a processing device can evaluate facts in a working memory stored on a data storage device against a rule with repetitions. The rule engine may create a multi-dimensional tuple to hold a set of the facts that matches the rule. The multi-dimensional tuple has a set of elements and an index for each of the elements. Each element of the multi-dimensional tuple is a single fact or a tree structure for holding a set of facts of a repetition group that matches the rule with repetitions.Type: GrantFiled: December 2, 2010Date of Patent: April 29, 2014Assignee: Red Hat, Inc.Inventors: Mark Proctor, Edson Tirelli