| |
Trilogys
focus on product leadership, customer success and continuous
improvement produces significant innovation. Such innovation
has caused the U.S. Trademark and Patent Office to grant
the Trilogy family of companies a number of patents.
Trilogys US patents as of July 1, 2006, are listed
below. Please follow the links to the US Patent and
Trademark Office to review a full copy of each patent. In providing the Trilogy Services, Trilogy may utilize technology embodying one or more of the following US Patents:
Method
and apparatus for goal processing memory management
Method
and apparatus for configuring systems
Method
and apparatus for configuring systems
Automated
client/server development tool using drag-and-drop
metaphor
Method
and apparatus for maintaining and configuring systems
Method
and apparatus for pricing products in multi-level
product and organizational
groups
Method
and apparatus for configuring systems
Flash
configuration cache
Method
and apparatus for transparent backtracking
Method
and apparatus for maintaining and configuring systems
Flash
configuration cache
Method
and apparatus for transparent backtracking
Method
for compiling and selecting data attributes
Method
and apparatus for pricing products in multi-level
product and organizational groups
Method
and apparatus for providing peer ownership of shared
objects
Classification
based content management system
Method
and apparatus for determining commission
Interactive data-bound
control
Method
and apparatus for maintaining and configuring systems
Master
data maintenance tool for single source data
System
and method for extracting knowledge from documents
Logical
and constraint based browse hierarchy with propagation
features
Classification
engine for managing attribute-based data
Rule
based configuration engine for a database
Method
and apparatus for attribute selection
Hierarchical interface
to attribute based database
Distributed secrets
for validation of gaming transactions
Rules
based custom catalogs generated from a central catalog
database for multiple entities
System
and method for product configuration using numerical
clauses and inference procedures
Method
and apparatus for configuring systems
Efficient technique
for matching hierarchies of arbitrary size and structure
without regard to ordering of elements
Method and apparatus for goal processing
memory management
The present invention
is a method and apparatus for managing memory in goal
processing. The present invention creates search states
that contain an alternative subgoal (i.e., subgoal with
alternatives) and non-alternative subgoals. Problem
state modifications associated with the goals contained
in a search state are associated with a search state
object. A search state object contains information about
the search process and the goals included in the search
state, and a pointer to previous search state objects.
Processed goals are kept on a goal stack, and the search
state object points to the first and last goal stack
entry included in the search state object. A search
state object includes a list of alternatives available
in the search state. When a goal processing failure
occurs, an alternative solution search begins with the
latest search state object until an alternative is found,
or a determination is made that no alternatives exist
and the goal cannot be satisfied. When a goal processing
failure occurs, an alternative subgoal is directly accessible
without visiting each subgoal individually. Goals included
in the failed processing may be collectively popped
from the goal stack. Problem state modifications associated
with the failed processing may be collectively undone
from the problem state. Goal processing reverts to a
state prior to the failed state without examining each
goal within the failed state, individually removing
the failed state's modifications, and individually releasing
the memory used by the failed state.
top
Method and apparatus for configuring
systems
The present invention
employs a generative approach for configuring systems
such that a system may be configured based on component
or resource requests, or input in the form of need.
The present invention provides a constraint-based configuration
system using a structural model hierarchy. The structural
aspects of the model provide the ability to define a
model element as being contained in, or by, another
model element. In addition, the structural model provides
the ability to identify logical datatype and physical
interconnections between elements and establish connections
between elements. To configure a system, the present
invention accepts input in the form of requests (e.g.,
component or resource) or needs, such as an expression
of a need for a desktop computer system to be used in
a CAD (i.e., computer-aided design) environment. Using
this information, the present invention configures a
system by identifying the resource and component needs,
constraints imposed on or by the resources or components
identified, and the structural aspects of the system.
top
Method and apparatus for configuring
systems
The present invention
employs a generative approach for configuring systems
such that a system may be configured based on component
or resource requests, or input in the form of need.
The present invention provides a constraint-based configuration
system using a structural model hierarchy. The structural
aspects of the model provide the ability to define a
model element as being contained in, or by, another
model element. In addition, the structural model provides
the ability to identify logical datatype and physical
interconnections between elements and establish connections
between elements. To configure a system, the present
invention accepts input in the form of requests (e.g.,
component or resource) or needs, such as an expression
of a need for a desktop computer system to be used in
a CAD (i.e., computer-aided design) environment. Using
this information, the present invention configures a
system by identifying the resource and component needs,
constraints imposed on or by the resources or components
identified, and the structural aspects of the system.
top
Automated client/server development tool
using drag-and-drop metaphor
A tool for the
development of multiple-table database applications
for client/server environments automates both capture
of system requirements and code production. A client
portion of a multiple-table, client/server database
application for processing requests against a server
database, is developed by first storing in a repository
a description of the server database describing database
entities within the server database and relationships
between those database entities. Representations of
the database entities are displayed, and an application
drawing window is provided. The user drags and drops
within the application drawing window one of said representations
that represents a particular database entity. The tool
then creates within the repository an entry for the
particular database entity, and draws within the drawing
window a representation of the particular database entity.
For each database entity for which an entry within the
repository has been created, the tool checks the description
of the server database stored in the repository to determine
whether a relationship exists between the particular
database entity and the database entity being checked.
If a relationship does exist between the particular
database entity and the database entity being checked,
the tool then creates within the repository an entry
for that relationship, and draws within the drawing
window a connector representing that relationship. The
foregoing drag-and-drop sequence is repeated multiple
times. When the design is complete, the tool, using
information stored in the repository, automatically
generates the client portion of the multiple-table,
client/server database application.
top
Method and apparatus for maintaining
and configuring systems
The invention provides
the ability to interactively select and configure a
product among a set of related products based on availability
and compatibility of features and options. It does not
impose an order in the selection of products, features
or options; only valid selections can be made at any
time. To create an electronic representation of the
product information to achieve the above goal, the invention
provides a framework for defining a systems by defining
the components of the system using elements contained
in a parts catalog and defining relationships between
the components of a system. A configuration system validates
a configuration using the system definition, the current
state of the configuration and user input.
top
Method and apparatus for pricing products
in multi-level product and organizational groups
The invention organizes
various pricing tables and price adjustment tables and
various products and purchasing organizations based
on "who" (i.e. which purchasing organization)
is purchasing "what" (i.e. which product).
The invention utilizes a denormalized table to relate
the "who" to the "what" using denormalized
numbers. The invention further organizes various purchasing
organizations and products into hierarchical tables.
These hierarchical tables are called organizational
groups and product groups. Various price adjustments
may be specified for each level of the organizational
groups and product groups hierarchies. The price adjustments
for a particular purchasing organization are determined
by retrieving the price adjustments for that particular
purchasing organization as well as the price adjustments
for organizational groups above the particular purchasing
organization in the organizational groups hierarchy.
Likewise, the price adjustments for a particular product
are determined by retrieving the price adjustments for
that particular product as well as the price adjustments
for product groups above the particular product in the
product groups hierarchy. The invention sorts the various
pricing adjustments applicable to a particular product
offered to a particular purchasing group based on several
criteria. After the sorting is accomplished the pricing
adjustments are applied in sequence to arrive at a final
price at which a particular product can be sold to a
particular purchasing organization.
top
Method and apparatus for configuring
systems
The present invention
employs a generative approach for configuring systems
such that a system may be configured based on component
or resource requests, or input in the form of need.
The present invention provides a constraint-based configuration
system using a structural model hierarchy. The structural
aspects of the model provide the ability to define a
model element as being contained in, or by, another
model element. In addition, the structural model provides
the ability to identify logical datatype and physical
interconnections between elements and establish connections
between elements. To configure a system, the present
invention accepts input in the form of requests (e.g.,
component or resource) or needs, such as an expression
of a need for a desktop computer system to be used in
a CAD (i.e., computer-aided design) environment. Using
this information, the present invention configures a
system by identifying the resource and component needs,
constraints imposed on or by the resources or components
identified, and the structural aspects of the system.
top
Flash
configuration cache
The present invention
employs a generative approach for configuring systems
such that a system may be configured based on component
or resource requests, or input in the form of need.
The present invention provides a constraint-based configuration
system using a structural model hierarchy. The structural
aspects of the model provide the ability to define a
model element as being contained in, or by, another
model element. In addition, the structural model provides
the ability to identify logical datatype and physical
interconnections between elements and establish connections
between elements. To configure a system, the present
invention accepts input in the form of requests (e.g.,
component or resource) or needs, such as an expression
of a need for a desktop computer system to be used in
a CAD (i.e., computer-aided design) environment. Using
this information, the present invention configures a
system by identifying the resource and component needs,
constraints imposed on or by the resources or components
identified, and the structural aspects of the system.
In one embodiment, a flash configuration cache is utilized
to speed up the process of configuring an end product,
such as a user computer. In another embodiment, a bundling
cache is used to speed up the process of bundling.
top
Method and apparatus
for transparent backtracking
A technique is
used in embodiments of the invention such that backtracking
programs can be written in a general purpose computer
language (e.g., C++ or Java) without requiring the control
structure of the program to reflect the structure of
the decision tree. A data state and a control state
are restored during backtracking. For restoring the
data state, embodiments of the invention keep track
of the changes made to variables and the point in execution
at which the changes are made. When backtracking occurs,
the data state can be restored by undoing the changes
to the desired point in execution. For restoring the
control state, the method of the invention provides
a "failure" exception state that is invoked
upon failure in the program (e.g., a failure to find
a solution in a search program).. The failure exception
is "caught" by catch points established in
the execution stack. The failure exception is passed
up the execution stack until a point is reached prior
to the failure at which execution should be re-initiated.
Since the control structure of the search program need
not have the same form as the decision tree, part of
the control state for the desired decision point may
no longer exist on the execution stack, so the catch
point may not be directly associated with the desired
point but merely preceed it. The remaining part of the
control state is restored by re-executing the program
in a special re-execution mode until the desired state
is achieved and another alternative may be chosen.
top
Method and apparatus for maintaining
and configuring systems
The invention provides
the ability to interactively select and configure a
product among a set of related products based on availability
and compatibility of features and options. It does not
impose an order in the selection of products, features
or options; only valid selections can be made at any
time. To create an electronic representation of the
product information to achieve the above goal, the invention
provides a framework for defining a systems by defining
the components of the system using elements contained
in a parts catalog and defining relationships between
the components of a system. A configuration system validates
a configuration using the system definition, the current
state of the configuration and user input.
top
Flash configuration cache
The present invention
employs a generative approach for configuring systems
such that a system may be configured based on component
or resource requests, or input in the form of need.
The present invention provides a constraint-based configuration
system using a structural model hierarchy. The structural
aspects of the model provide the ability to define a
model element as being contained in, or by, another
model element. In addition, the structural model provides
the ability to identify logical datatype and physical
interconnections between elements and establish connections
between elements. To configure a system, the present
invention accepts input in the form of requests (e.g.,
component or resource) or needs, such as an expression
of a need for a desktop computer system to be used in
a CAD (i.e., computer-aided design) environment. Using
this information, the present invention configures a
system by identifying the resource and component needs,
constraints imposed on or by the resources or components
identified, and the structural aspects of the system.
In one embodiment, a flash configuration cache is utilized
to speed up the process of configuring an end product,
such as a user computer. In another embodiment, a bundling
cache is used to speed up the process of bundling.
top
Method and apparatus for transparent
backtracking
A technique is
used in embodiments of the invention such that backtracking
programs can be written in a general purpose computer
language (e.g., C++ or Java) without requiring the control
structure of the program to reflect the structure of
the decision tree. A data state and a control state
are restored during backtracking. For restoring the
data state, embodiments of the invention keep track
of the changes made to variables and the point in execution
at which the changes are made. When backtracking occurs,
the data state can be restored by undoing the changes
to the desired point in execution. For restoring the
control state, the method of the invention provides
a "failure" exception state that is invoked
upon failure in the program (e.g., a failure to find
a solution in a search program). The failure exception
is "caught" by catch points established in
the execution stack. The failure exception is passed
up the execution stack until a point is reached prior
to the failure at which execution should be re-initiated.
Since the control structure of the search program need
not have the same form as the decision tree, part of
the control state for the desired decision point may
no longer exist on the execution stack, so the catch
point may not be directly associated with the desired
point but merely preceed it. The remaining part of the
control state is restored by re-executing the program
in a special re-execution mode until the desired state
is achieved and another alternative may be chosen.
top
Method
for compiling and selecting data attributes
A system and method
for compiling data defining objects such as, but not
necessarily limited to, components to be configured
into a personal computer system. With respect to such
components, a predetermined array of attributes is established
to characterize particular components. At least two
operators, or agents, independently acquire, from a
global source of relevant data, values for the attributes.
In a preferred embodiment, the agents are provided with
a finite set of predetermined values, or ranges of values,
that is deemed to include a value that is accurate for
the attribute under consideration. The agents then respectively
select values for the attribute, with the selection
based on the acquired values considered with respect
to the predetermined values. The respective values are
error checked and then compared for equality. If the
values selected by the agents are equal, a value for
the attribute is written into an attribute database.
If the values are not equal, the discrepancy is resolved
empirically. A compilation of data defining the component
is then extracted from the attribute database. In order
to enhance accuracy, the global source of relevant data
is regularly analyzed to, for example, identify updated
attribute values.
top
Method and apparatus for pricing products
in multi-level product and organizational groups
The system organize
various pricing tables and price adjustment tables and
various products and purchasing organizations based
on "who" (i.e. which purchasing organization)
is purchasing "what" (i.e. which product).
The system and method utilizes a denormalized table
to relate the "who" to the "what"
using denormalized numbers. The system and method organizes
various purchasing organizations and products into hierarchical
tables. These hierarchical tables are called organizational
groups and product groups. Various price adjustments
may be specified for each level of the organizational
groups and product groups hierarchies. The price adjustments
for a particular purchasing organization are determined
by retrieving the price adjustments for that particular
purchasing organization as well as the price adjustments
for organizational groups above the particular purchasing
organization in the organizational groups hierarchy.
Likewise, the price adjustments for a particular product
are determined by retrieving the price adjustments for
that particular product as well as the price adjustments
for product groups above the particular product in the
product groups hierarchy. The system and method the
various pricing adjustments applicable to a particular
product offered to a particular purchasing group based
on several criteria. After the sorting is accomplished
the pricing adjustments are applied in sequence to arrive
at a final price at which a particular product can be
sold to a particular purchasing organization.
top
Method
and apparatus for providing peer ownership of shared
objects
A method and apparatus
for providing peer ownership of shared objects. In the
invention, shared objects are implemented as a shell
object with shared object state stored in shared memory.
Each process that shares the object is granted a shell
object within their process space which points to the
object state in shared memory. All processes share equal
access to the shared object, with no single process
determining the lifetime of the shared object. The shutdown
of any single process results in the termination of
that process's respective shell object, without the
necessary termination of the shared object state in
shared memory. There is therefore no shutdown problem.
Further, performance is enhanced because all processes
access the shared object state in shared memory in what
is essentially an in-process call. In an embodiment
of the invention, a peer ownership manager acts as the
object server for all shared objects whose object state
resides in shared memory. A global table is maintained
within the peer ownership manager which contains the
shared memory offset location of each object's state
referenced by the GID (global identifier number) of
the object. Also, for each process, a shell table is
maintained in which existing shell objects for a given
process are referenced by the offset value for the object's
state in shared memory. Methods are provided for supporting
object webs in shared memory, and for putting dynamically
sized data and standard non-peer objects into shared
objects in shared memory.
top
Classification based content management
system
A classification
based content management system provides a content management
system in which large amounts of content may be quickly
and easily managed. More specifically, the classification
based content management system of the present invention
uses metadata to classify the content in such a way
that the content may be quickly and easily managed.
The classification based content management system provides
advantages in a variety of aspects of the operation
of the system. The aspects of the operation of the system
include storage, retrieval, access control and workflow
management.
top
Method
and apparatus for determining commission
The invention provides
for a method and apparatus for determining the commission
to be paid to a sales representative or sales team.
Whenever a sale occurs, a Transaction describing the
sale is created and inputted into the Commission system
of one embodiment of the invention. Based on a set of
Allocation Rules that specify the credit an individual
is to receive from a Transaction, the Transactions are
converted into several Allocations for individual Sales
Representatives or Sales Teams. One or more Quotas specify
a target or goal that must be reached to earn commission
for each Sales Team. A Quota State indicates the current
performance of a Sales Representative with respect to
a particular Quota within a particular time frame. The
Quotas are used to convert the Allocations/Transactions
into Quota Details that specify how to increment or
decrement the Quota State. A Promotion specifies the
reward or commission that is received upon attaining
a desired level of performance. Once a Quota State reaches
a level necessary to receive a Commission or reward
as set by a specific Promotion, a ledger item indicating
the amount to be paid to a particular Sales Team is
created. A user interface may be used to create Allocation
Rules, Quotas, and Promotions that are awarded for performance
over a specified time period. In this manner, a business
may set up incentive plans and determine commissions
easily and accurately.
top
Interactive data-bound control
A computer system
including a server computer system and a client computer
system connected to one another over a computer network,
such as the Internet, so that graphical controls displayed
and able to be manipulated by a user on the client computer
system correspond to data stored on the server computer
system. When the user makes changes to the graphical
controls, the corresponding data is changed on the server
computer system. The interactive graphical control binds
the data on the server computer system to the graphic
controls displayed on the client computer system without
use of additional plug-in or other compiled code on
the client computer system other than standard browser
software such as Microsoft Explorer or Netscape Navigator.
top
Method and apparatus for maintaining
and configuring systems
The invention provides
the ability to interactively select and configure a
product among a set of related products based on availability
and compatibility of features and options. It does not
impose an order in the selection of products, features
or options; only valid selections can be made at any
time. To create an electronic representation of the
product information to achieve the above goal, the invention
provides a framework for defining a systems by defining
the components of the system using elements contained
in a parts catalog and defining relationships between
the components of a system. A configuration system validates
a configuration using the system definition, the current
state of the configuration and user input.
top
Master data maintenance tool for single
source data
A maintenance tool
is used to import and centrally maintain the data and
metadata representing catalog items in a catalog database.
The maintenance tool is further used to create and maintain
constraint-based rule sets defining custom catalogs
that are subsets of the items in the database, constraint-based
pricing profiles that define custom pricing schemes
to be applied by the items in the database, and a primary
browse hierarchy that represents the items in the database.
The maintenance tool is used to create and maintain
accounts for organizations and to assign to each organization
a custom catalog and a pricing profile. The maintenance
tool republishes the data on a periodic basis to update
the custom catalogs and pricing profiles based on additions
and modifications to the database, the rule sets, and
the pricing profiles, and to generate new custom browse
hierarchies from the primary hierarchy. The maintenance
tool may be used to generate physical manifestations
of the custom catalogs, pricing information and browse
hierarchies for exportation to organizations not directly
coupled to the catalog database through a network.
top
System and method for extracting knowledge
from documents
A program product
characterizes a set of information to determine common
characteristics among subsets of the set of information.
The program product includes computer instructions which
obtain characteristic data that describe characteristics
of an entity. For example, the characteristic data may
include titles of individuals within an organization.
The computer instructions also obtain a set of information
associated with the entity (e.g. a set of e-mail messages,
Web pages, business memoranda, etc.) The computer instructions
identify key terms within the set of information and
classify the set of information into at least first
and second subsets. In addition, the computer instructions
characterize the first subset as more important than
the second subset, based on the key terms and the characteristic
data. For example, a subset of documents associated
with officers of a company may be characterized as more
important than a subset of documents associated with
temporary employees.
top
Logical
and constraint based browse hierarchy with propagation
features
A logical and constraint-based
hierarchical approach provides a highly flexible and
expressive way in which to browse items stored in a
database. The logical and constraint-based approach
permits a user to create an arbitrary number of hierarchical
representations of the items in a database. The approach
permits items to be logically grouped on one level and
grouped based on attribute/value constraints on the
next. The hierarchical representation consists of nodes
that are related to one another in a tree-like structure
starting with a root node. Each node has a unique label,
preferably indicative of the items in the database that
it represents. Each node has a list of the labels of
the nodes that are its children. Each node can only
be the child of one parent node. Nodes may optionally
express constraints based on attributes and their values
that serve to define the scope of database items that
fall under the node in the hierarchy. Each node inherits
the constraints of its ancestors and therefore the scope
of items in a database that that fall underneath a given
node are defined by the aggregation of the constraints
from the given node up to and including the root. A
node that does not specify constraints instead specifies
a logical grouping of items that cannot be specified
by one or more constraints. The constraints are implicitly
ANDed together in the aggregate. A logical grouping
represents the equivalent of a logical ORing of constraints,
but without the need for specifying attribute values
or performing the function. A user browsing a database
using the hierarchy triggers a search of the database
by selecting one of the leaf nodes in the hierarchy.
The constraints are aggregated and a rule is established
that includes all of the database items that meet the
aggregation of constraints. A database query is derived
from the rule, and the database is searched for all
items that meet the aggregated constraints. A set of
items is returned and displayed for the user.
top
Classification
engine for managing attribute-based data
A classification
engine provides flexible support for manipulation of
attribute-based data by dynamic generation of SQL with
classifiers constructed from different schema objects
representing different database schemas. The classifiers
may be constructed by defining classifiers corresponding
to the database schema, and mapping the classifiers
to columns on tables in the database. The invention
also allows a classification system to modify the database
structure and easily conform the classification engine
to the modified structure without recompiling the engine
or rewriting the application that use the classification
system. The engine is conformed to the new structure
by constructing a second schema object for the modified
database. The schema objects are preferably defined
using a field-based language such as extensible markup
language (XML).
top
Rule based configuration engine for a
database
The invention provides
the ability to test rules in a rule-based system for
configuring a product. The configuration system defines
the components of a product using elements contained
in a parts catalog and rules that define relationships
between the components of a product. The user provides
test cases that select at least one part to include
in the product configuration, and the configuration
tester processes the rule to determine whether the at
least one part selected in the test case conflicts with
the plurality of parts previously included in the product
configuration.
top
Method and apparatus for attribute selection
The invention provides
a method and apparatus for selecting desired attributes
for system configuration. The invention uses one or
more rule sets to define rules that are met when a configuration
is valid. A rule set may specify the interrelation of
attribute values within a product or between two or
more products. If the combination of attribute values
that specify a product conform to at least one rule
in each of the rule sets that apply to that product,
that combination of attribute values is considered to
specify a valid product. If the combination of attribute
values that specify all of the products of an assembly
conform to at least one rule in each of the rule sets
that apply to that assembly, that combination of attribute
values is considered to specify a valid assembly.
top
Hierarchical interface to attribute based
database
The present invention
provides a hierarchical interface to an attribute based
database. The method includes organizing a number of
classifiers of data into a hierarchical structure and
organizing the data into the hierarchical data structure
according to the classifiers to which the data is linked.
The hierarchical data structure can be a file system
directory tree structure. The files system directory
tree structure can be according to the NFS protocol.
A request is received from a client, the request formatted
according to the NFS protocol. The request is translated
into a database query. A result is produced which is
formatted according to the NFS protocol and the result
is sent to the client. The present invention allows
data to be presented in rearrange-able order based on
a client view and classifiers, bound and unbound. The
present invention also restricts access to files in
a flexible manner.
top
Distributed secrets for validation of
gaming transactions
Nested commit/reveal
sequences using randomized inputs from each participant
in a gaming transaction (e.g., the house and each player)
may be employed to provide a selection of outcome or
outcomes that can be verified by each participant as
free from cheating. In general, techniques may be employed
in a variety of distributed gaming transaction environments
and as a verification facility for any of a wide variety
of games in which the risk of player collusion can be
eliminated. Nonetheless, several variations on a distributed
card dealing method are illustrative and will be appreciated
by persons of ordinary skill in the art as applicable
in other gaming environments, including games employing
outcomes denominated in die (or dice) rolls, coin toss,
wheel spins, blind selection or other ostensibly random
selection of an outcome from a predefined set thereof.
top
Rules based custom catalogs generated
from a central catalog database for multiple entities
An arbitrary number
of custom catalogs for an arbitrary number of customers
can be published from a centrally maintained database
of seller catalog data. The custom catalogs are subsets
of the catalog database, and are generated in accordance
with a set of rules that defines the scope of the content
of the custom catalog. The rule sets define a series
of sequential searches by which a subset of the item
SKUs contained in the database are returned. For extranet
buyers, the subsets for each rule set are maintained
in a subset table. Whenever a user authorized by a particular
buyer wishes to browse the unique catalog subset assigned
to that buyer, any queries regarding the catalog will
result first in a search of the full catalog database,
and the results from the full search are pared down
to only those items the SKUs for which have entries
in the subset table associated with the buyer's assigned
subset. A buyer-authorized user browses the catalog
using a standard PC and browser, and SKUs returned to
the user based on the user's query will include descriptive
information such as descriptive text, pictures etc.,
which are displayed by the browser. Buyers who are not
coupled to the seller via an extranet connection can
have customized subsets of the total catalog database
produced in accordance with their own rule sets, and
formatted and delivered off-line for incorporation into
their web sites and procurement networks.
top
System and method for product configuration
using numerical clauses and inference procedures
A system and method
for product configuration represents a product using
a configuration model having numerical clauses. Features
of the product are associated with literals in the numerical
clauses. The numerical clauses may specify a number
of literals to determine whether the numerical clause
is satisfied, satisfiable, or unsatisfiable. Numerical
clauses represent constraints that govern the configuration
of the product. Resolving numerical clauses and user
choices involves one or more inference procedures. In
one embodiment, unit clauses represent user choices,
and a configuration engine asserts the unit clause and
performs numerical unit resolution between the unit
clause and all numerical clauses containing the complement
(generally a negation) of the unit clause. Complementary
literals are eliminated from the current state of the
configuration model. In one embodiment, if the uneliminated
literals in a numerical clause causes the clause to
be satisfied, the uneliminated literals are recursively
asserted. The configuration engine then performs numerical
unit resolution between the recursively asserted, uneliminated
literals and numerical clauses containing the complements
of the uneliminated literals. Numerical clauses may
also function as literals. Numerical clauses may include
negations of consumer literals and positive provider
literals. If a user chooses a consumer feature, by knowing
the consumer and provider weights, the configuration
engine can determine which provider literals should
be included, excluded, or remain selectable. Embodiments
of the invention can implement a logic-based truth maintenance
system and numerical unit resolution.
top
Method
and apparatus for configuring systems
The present invention
employs a generative approach for configuring systems
such that a system may be configured based on component
or resource requests, or input in the form of need.
The present invention provides a constraint-based configuration
system using a structural model hierarchy. The structural
aspects of the model provide the ability to define a
model element as being contained in, or by, another
model element. In addition, the structural model provides
the ability to identify logical datatype and physical
interconnections between elements and establish connections
between elements. To configure a system, the present
invention accepts input in the form of requests (e.g.,
component or resource) or needs, such as an expression
of a need for a desktop computer system to be used in
a CAD (i.e., computer-aided design) environment. Using
this information, the present invention configures a
system by identifying the resource and component needs,
constraints imposed on or by the resources or components
identified, and the structural aspects of the system.
top
Efficient technique for matching hierarchies
of arbitrary size and structure without regard to ordering
of elements
An element order
independent comparison of hierarchically organized data
structures may be performed efficiently using a transformation
operation that orthogonally and recursively encodes
child node information. In some implementations, a hash
table is defined for which values are encoded as powers
of two. Each value is therefore orthogonal when combined
using simple binary addition. At any particular node,
a concatenation of node-specific information with a
sum of child-node hashes is, itself, hashed and associated
with the node. Orthogonal encodings ensure that a combination
(e.g., an additive combination) of values corresponding
to elements of a sub-hierarchy is insensitive to ordering
of the elements. Recursion can be employed to fold in
information contributions at successive layers of an
information hierarchy.
top
|