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: 11928609
    Abstract: 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: Grant
    Filed: November 17, 2020
    Date of Patent: March 12, 2024
    Assignee: RED HAT, INC.
    Inventors: Luca Molteni, Mark Proctor
  • Publication number: 20220156616
    Abstract: 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: Application
    Filed: November 17, 2020
    Publication date: May 19, 2022
    Inventors: Luca Molteni, Mark Proctor
  • Patent number: 10817268
    Abstract: 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: Grant
    Filed: August 10, 2017
    Date of Patent: October 27, 2020
    Assignee: RED HAT, INC.
    Inventors: Roger Martinez Palleja, Mark Proctor
  • Patent number: 10755186
    Abstract: 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: Grant
    Filed: August 24, 2016
    Date of Patent: August 25, 2020
    Assignee: Red Hat, Inc.
    Inventors: Mark Proctor, Mario Fusco
  • Patent number: 10430234
    Abstract: 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: Grant
    Filed: February 16, 2016
    Date of Patent: October 1, 2019
    Assignee: Red Hat, Inc.
    Inventors: Mark Proctor, Mario Fusco
  • Patent number: 10339454
    Abstract: 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: Grant
    Filed: January 7, 2016
    Date of Patent: July 2, 2019
    Assignee: Red Hat, Inc.
    Inventors: Mark Proctor, Mario Fusco
  • Publication number: 20190050207
    Abstract: 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: Application
    Filed: August 10, 2017
    Publication date: February 14, 2019
    Inventors: Roger Martinez Palleja, Mark Proctor
  • Patent number: 10061758
    Abstract: 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: Grant
    Filed: March 29, 2012
    Date of Patent: August 28, 2018
    Assignee: Red Hat, Inc.
    Inventors: Michael Anstis, Mark Proctor
  • Publication number: 20170236062
    Abstract: 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: Application
    Filed: February 16, 2016
    Publication date: August 17, 2017
    Inventors: Mark Proctor, Mario Fusco
  • Publication number: 20170200083
    Abstract: 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: Application
    Filed: January 7, 2016
    Publication date: July 13, 2017
    Inventors: Mark Proctor, Mario Fusco
  • Publication number: 20170061289
    Abstract: 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: Application
    Filed: August 24, 2016
    Publication date: March 2, 2017
    Inventors: Mark Proctor, Mario Fusco
  • Patent number: 9361582
    Abstract: 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: Grant
    Filed: September 4, 2012
    Date of Patent: June 7, 2016
    Assignee: Red Hat, Inc.
    Inventors: Mark Proctor, Edson Tirelli
  • Patent number: 9286570
    Abstract: 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: Grant
    Filed: January 11, 2013
    Date of Patent: March 15, 2016
    Assignee: Red Hat, Inc.
    Inventors: Mark Proctor, Mario Fusco
  • Patent number: 9213942
    Abstract: 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: Grant
    Filed: August 12, 2009
    Date of Patent: December 15, 2015
    Assignee: Red Hat, Inc.
    Inventors: Mark Proctor, Edson Tirelli
  • Patent number: 8930297
    Abstract: 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: Grant
    Filed: November 30, 2010
    Date of Patent: January 6, 2015
    Assignee: Red Hat, Inc.
    Inventors: Mark Proctor, Edson Tirelli
  • Patent number: 8881064
    Abstract: 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: Grant
    Filed: November 21, 2008
    Date of Patent: November 4, 2014
    Assignee: 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: 20140310621
    Abstract: 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: Application
    Filed: June 20, 2014
    Publication date: October 16, 2014
    Inventors: Lucas Jacobus Franciscus Geurts, Gavin Mark Proctor, Stuart Ronald Pill, Angus David Dick, Daniel Karl Pezzutti, Floris Maria Hermansz Crompvoets
  • Publication number: 20140201124
    Abstract: 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: Application
    Filed: January 11, 2013
    Publication date: July 17, 2014
    Applicant: RED HAT, INC.
    Inventors: Mark Proctor, Mario Fusco
  • Patent number: 8756049
    Abstract: 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: Grant
    Filed: July 13, 2010
    Date of Patent: June 17, 2014
    Assignee: Red Hat, Inc.
    Inventor: Mark Proctor
  • Patent number: 8712949
    Abstract: 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: Grant
    Filed: December 2, 2010
    Date of Patent: April 29, 2014
    Assignee: Red Hat, Inc.
    Inventors: Mark Proctor, Edson Tirelli