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: 8645296
    Abstract: Some embodiments of knowledgebase partitioning for implementing parallelization in a rule engine have been presented. In one embodiment, a compiler divides a knowledgebase into a set of virtual partitions. The knowledgebase includes a network constructed according to rules added to the knowledgebase. A rule engine may execute the virtual partitions of the partitioned knowledgebase in parallel using threads obtained from a pool of threads.
    Type: Grant
    Filed: August 12, 2009
    Date of Patent: February 4, 2014
    Assignee: Red Hat, Inc.
    Inventors: Mark Proctor, Edson Tirelli
  • Patent number: 8600914
    Abstract: Some embodiments of implementing left and right unlinking for a shared knowledge base in an exemplary rule engine have been presented. A rule engine can create a network to evaluate a set of rules in a knowledge base. The network includes at least one multiple-input node, such as a beta node having two inputs. The rule engine may process data in multiple sessions simultaneously using the network. The rule engine may further logically unlink a first node in the network from a second node in the network for a first session while keeping the first node linked to the second node for a second session.
    Type: Grant
    Filed: November 30, 2010
    Date of Patent: December 3, 2013
    Assignee: Red Hat, Inc.
    Inventors: Mark Proctor, Edson Tirelli
  • Patent number: 8589322
    Abstract: Some embodiments of a method to reduce churn caused by excessive linking and unlinking 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 unlink a node in the network in response to an input of the node becoming empty in a session. The rule engine may then wait a predetermined period of time before allowing the node to be unlinked again during the session.
    Type: Grant
    Filed: November 30, 2010
    Date of Patent: November 19, 2013
    Assignee: Red Hat, Inc.
    Inventors: Mark Proctor, Edson Tirelli
  • Publication number: 20130262974
    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: Application
    Filed: March 29, 2012
    Publication date: October 3, 2013
    Applicant: RED HAT, INC.
    Inventors: Michael Anstis, Mark Proctor
  • Patent number: 8538905
    Abstract: Some embodiments of a method to lazily enable truth maintenance in a rule engine have been presented. A rule engine can enable truth maintenance on an object type basis. In response to a working memory action involving a particular object type, the rule engine may check a truth maintenance parameter of the object type involved to determine if truth maintenance for the object type has to be enabled. If so, the rule engine may enable truth maintenance for the object type.
    Type: Grant
    Filed: December 2, 2010
    Date of Patent: September 17, 2013
    Assignee: Red Hat, Inc.
    Inventors: Mark Proctor, Edson Tirelli
  • Patent number: 8418135
    Abstract: Some embodiments of a method and an apparatus to abstract away rule languages from a rule engine have been presented. In one embodiment, rules written in a first rule language are parsed into descriptor classes, which are used to model concepts that can be expressed in a rule engine. An intermediate structure is generated from the parsed rules. The intermediate structure is input to a core of the rule engine, which is operable to execute the rules.
    Type: Grant
    Filed: May 31, 2007
    Date of Patent: April 9, 2013
    Assignee: Red Hat, Inc.
    Inventors: Mark Proctor, Edson Tirelli, Robert K. McWhirter
  • Patent number: 8417659
    Abstract: Some embodiments of a method to support multi-result set calculation in a rule engine have been presented. A rule engine can compile a set of rules to build a network for evaluating facts against the rules. The rules include at least one rule requiring multiple calculations to be executed for the same set of facts. The rule engine can create a single multi-result set calculation node for this rule in the network. The multi-result set calculation node can generate a set of results and add the set of results to a tuple to be propagated to a second node connected to an output of the multi-result set calculation node.
    Type: Grant
    Filed: December 2, 2010
    Date of Patent: April 9, 2013
    Assignee: Red Hat, Inc.
    Inventors: Mark Proctor, Edson Tirelli
  • Patent number: 8352402
    Abstract: Some embodiments of a multiple entry point network for stream support in an exemplary rule engine have been presented. In one embodiment, a stream of events is asserted into a working memory of a rule engine, which supports event processing. The rule engine, running on a server, processes the stream of events against a set of rules retrieved from a rule repository of the rule engine. To process the events, the rule engine may construct a network having multiple root nodes, each being an entry point into the network, through which the events may enter the network and propagate through the network.
    Type: Grant
    Filed: August 12, 2009
    Date of Patent: January 8, 2013
    Assignee: Red Hat, Inc.
    Inventors: Edson Tirelli, Mark Proctor
  • Publication number: 20120330877
    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: Application
    Filed: September 4, 2012
    Publication date: December 27, 2012
    Applicant: RED HAT, INC.
    Inventors: Mark Proctor, Edson Tirelli
  • Patent number: 8315967
    Abstract: Some embodiments of a sequential mode in a Rete rule engine have been presented. In one embodiment, a Rete rule engine is configured to enter into a sequential mode. Using the Rete rule engine configured, a rule set having a set of rules is evaluated against a set of data objects in a stateless manner.
    Type: Grant
    Filed: August 31, 2007
    Date of Patent: November 20, 2012
    Assignee: Red Hat, Inc.
    Inventor: Mark Proctor
  • Patent number: 8271419
    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: August 26, 2009
    Date of Patent: September 18, 2012
    Assignee: Red Hat, Inc.
    Inventors: Mark Proctor, Edson Tirelli
  • Publication number: 20120143811
    Abstract: Some embodiments of a method to support multi-dimensional tuples in rule engines have been presented. A rule engine running on 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: Application
    Filed: December 2, 2010
    Publication date: June 7, 2012
    Inventors: Mark Proctor, Edson Tirelli
  • Publication number: 20120143812
    Abstract: Some embodiments of a method to support multi-result set calculation in a rule engine have been presented. A rule engine can compile a set of rules to build a network for evaluating facts against the rules. The rules include at least one rule requiring multiple calculations to be executed for the same set of facts. The rule engine can create a single multi-result set calculation node for this rule in the network. The multi-result set calculation node can generate a set of results and add the set of results to a tuple to be propagated to a second node connected to an output of the multi-result set calculation node.
    Type: Application
    Filed: December 2, 2010
    Publication date: June 7, 2012
    Inventors: Mark Proctor, Edson Tirelli
  • Publication number: 20120143809
    Abstract: Some embodiments of a method to lazily enable truth maintenance in a rule engine have been presented. A rule engine can enable truth maintenance on an object type basis. In response to a working memory action involving a particular object type, the rule engine may check a truth maintenance parameter of the object type involved to determine if truth maintenance for the object type has to be enabled. If so, the rule engine may enable truth maintenance for the object type.
    Type: Application
    Filed: December 2, 2010
    Publication date: June 7, 2012
    Inventors: Mark Proctor, Edson Tirelli
  • Publication number: 20120136821
    Abstract: Some embodiments of using left and right unlinking simultaneously by an exemplary 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: Application
    Filed: November 30, 2010
    Publication date: May 31, 2012
    Inventors: Mark Proctor, Edson Tirelli
  • Publication number: 20120136820
    Abstract: Some embodiments of a method to reduce churn caused by excessive linking and unlinking 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 unlink a node in the network in response to an input of the node becoming empty in a session. The rule engine may then wait a predetermined period of time before allowing the node to be unlinked again during the session.
    Type: Application
    Filed: November 30, 2010
    Publication date: May 31, 2012
    Inventors: Mark Proctor, Edson Tirelli
  • Publication number: 20120136811
    Abstract: Some embodiments of implementing left and right unlinking for a shared knowledge base in an exemplary rule engine have been presented. A rule engine can create a network to evaluate a set of rules in a knowledge base. The network includes at least one multiple-input node, such as a beta node having two inputs. The rule engine may process data in multiple sessions simultaneously using the network. The rule engine may further logically unlink a first node in the network from a second node in the network for a first session while keeping the first node linked to the second node for a second session.
    Type: Application
    Filed: November 30, 2010
    Publication date: May 31, 2012
    Inventors: Mark Proctor, Edson Tirelli
  • Publication number: 20120016831
    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: Application
    Filed: July 13, 2010
    Publication date: January 19, 2012
    Inventor: Mark Proctor
  • Patent number: 8024281
    Abstract: Some embodiments of alpha node hashing in an exemplary rule engine have been presented. In one embodiment, constraints are added into a constraint set in response to requests from one or more users of a rule engine. The rule engine then determines which constraints within the constraint set are mutually exclusive. Furthermore, the rule engine dynamically enables hashing of facts asserted into a working memory of the rule engine in response to a current number of the mutually exclusive constraints.
    Type: Grant
    Filed: February 29, 2008
    Date of Patent: September 20, 2011
    Assignee: Red Hat, Inc.
    Inventors: Mark Proctor, Edson Tirelli
  • Patent number: 7991727
    Abstract: Some embodiments of a fact type abstraction mechanism of a rule engine have been presented. In one embodiment, a fact type abstraction layer is provided to a rule engine core to allow the rule engine core to access facts of multiple different types. Further, the rule engine core is used to process the facts of multiple different types against a predetermined set of rules without converting the facts of multiple different types into a native type.
    Type: Grant
    Filed: February 27, 2008
    Date of Patent: August 2, 2011
    Assignee: Red Hat, Inc.
    Inventors: Mark Proctor, Edson Tirelli