Distributed

Building business objects and business software applications using dynamic object definitions of ingrediential objects

6789252

Abstract

A method and system are provided for providing an open and extensible object definition framework that manages business object definitions as specifications. This framework may be used to dynamically define any object that is to be processed by a computer. Objects can include Properties, Classifications, Knowledge, Business Objects, and Business Rules to name a few. Some examples of typical Business Objects include: business and social entities; locations, including spaces, places and channels; activities, including events and processes; items, including products and services; and business records, including orders and other forms of demand, inventory, jobs, deliverables, statements, transaction history et. al. The method and system may be used to define any object that is to be processed by a computer. Objects can include Properties, Classifications, Knowledge, Business Objects, and Business Rules to name a few. Typical Business Objects include: Business and social entities; Locations including spaces, places, and channels; Activity including events and processes; Items including products and services; Business Records including orders and other forms of demand, inventory, jobs, deliverables, statements, transaction history et. al.


Claims

What is claimed is:

1. A method for creating a computer-processable definition of a business object, the method comprising:

naming the business object;

defining one or more ingrediential objects within a specification construct including revision control for providing content effectivity and composition effectivity; and

relating each of the ingrediential objects to the business object to define the business object.

2. The method according to claim 1 wherein the step of relating each of the ingrediential objects to the business object comprises:

selecting an ingrediential object context to be used in the business object definition for the ingrediential object;

placing the ingrediential object within the selected ingrediential object context;

assigning a relationship role to the ingrediential object; and

assigning one or more attributing values to the ingrediential object in its relationship role.

3. The method according to claim 2 wherein the step of selecting the ingrediential object context comprises selecting an ingrediential object context partition for providing the context under which the ingrediential object participates in the object definition and for allowing associative grouping of ingrediential objects.

4. The method according to claim 3 wherein the step of assigning one or more attributing values to the ingrediential object includes assigning a context partition slot and a context partition slot position.

5. The method according to claim 4 wherein the step of assigning a context partition slot position comprises assigning a slot position having a use of a priority sequence, an alternate choice, a set processing sequence, or a multi-valued attribute.

6. The method according to claim 4 further comprising processing the ingrediential objects as an ordered list using the context partition, the context partition slot and the context partition slot position.

7. The method according to claim 6 wherein the step of processing the ingrediential objects as an ordered list comprises processing the ingrediential objects using the relationship role assigned to each of the ingrediential objects within the context partition.

8. The method according to claim 3 further comprising:

selecting one or more additional context partitions, thereby resulting in a plurality of context partitions; and

dynamically defining an ordered list presentation of the context partitions in the plurality of context partitions.

9. The method according to claim 3 further including assigning the context partition a normal presentation sequence for display comprising:

selecting a parent model template; and

specifying in the parent model template a normal context partition presentation sequence for business objects instantiated from the selected parent model.

10. The method according to claim 9 wherein the sequence presentation of an object's ingrediential object definition content within a partition is dynamically controlled by a user, the method further comprising:

assigning a sequence of ingrediential objects within a context partition.

11. The method according to claim 2 wherein the step of assigning a relationship role to the ingrediential object comprises assigning a role for defining the nature of the relationship between the ingrediential object and the business object.

12. The method according to claim 11 wherein the step of assigning a role for defining the nature of the relationship between the ingrediential object and the business object comprises further attributing the ingrediential object.

13. The method according to claim 12 wherein the step of further attributing the ingrediential object comprises assigning one or more attributing values selected, depending on the ingrediential object's type, from the group including Object Identifier, Big Decimal, Integer, Time Stamped, Date, Time, Currency, Boolean, Derivation Expression, String, URL, Big Text, and Blob.

14. The method according to claim 13 wherein the step of assigning one or more attributing values comprises assigning a Boolean value that is restricted to true or false or undecided.

15. The method according to claim 13 wherein:

the step of assigning one or more attributing values comprises using numeric values to capture date values and time values as part of ingrediential object attribution as appropriate; and

the method further comprises presetting in the parent model template or accepting user entry of one or more of a minimum date, a minimum time, a nominal date, a nominal time, a maximum date and a maximum time.

16. The method according to claim 15 further comprising supporting the attributed ingrediential object's date, time, and timestamp values with an edit mask definition within the parent model template for restricting storage of the values to a format specified by the edit mask definition.

17. The method according to claim 13 wherein numeric values are used to capture currency amounts using minimum, nominal, and maximum numeric fields in conjunction with an entered or preset currency and a storage currency, the method further comprising as appropriate the steps of:

presetting in the parent model template or accepting user entry of a minimum amount, a nominal amount, a maximum amount, a currency and currency unit of measure;

automatically converting the entered or preset amounts to their corresponding storage amounts; and

automatically converting the entered or preset currency and its currency unit of measure to their corresponding storage currency and storage currency unit of measure.

18. The method according to claim 17 wherein currency values are stored in their entered unit of measure and concurrently dynamically converted and stored in a user's pre-selected standard currency unit of measure.

19. The method according to claim 13 further comprising assigning to the attributed ingrediential object an ingrediential object logical operator for allowing ingrediential objects to participate in derivations or validations of ingrediential object values.

20. The method of claim 19 wherein the logical operator is selected from the group of AND, OR, NOT and =.

21. The method according to claim 13 further comprising including an ingrediential object value operator for making comparisons of the ingrediential object value to a string value as part of participating in a proposition or a formula.

22. The method of claim 21 wherein the value operator is selected from the group of <, >, =, >=, <=, <>.

23. The method according to claim 13 wherein the ingrediential object have a string value for participating in a proposition or formula or derivation.

24. The method of claim 23 wherein the string value is selected from the group of If, Then; Else; Endif; For; Until; Endfor; and Next; plus Constrain, error; Assign; Expression; Exists; Hide; NoEntry; NoPrompt; Required; Table; Table, row, col, cell; Find, where; Join, With, Identifier; And; Or; Null; Min; Max; Nom; Value; Uom; Currency; Returning, objects; True, false.

25. The method of claim 13 wherein the ingrediential object's value can be a derivation expressed as a combination of a logical expression and a SQL query expressed using conventional mathematical syntax and SQL syntax and tailored to cope with the use of context partition and attribute and attribute's numerical value representations, the method comprising:

expressing the logic derivation expression in textual form following derivation syntax;

selecting the specification that is to use the derivation;

storing it as the value of an ingrediential object; and

using context partition and attribute names and roles that correspond with any business object specification that is to use or be involved in the derivation.

26. The method of claim 25 wherein the native derivation expression syntax supports constraints, efficacy checks, validations, formulas, attribute search and where used functions.

27. The method according to claim 25 wherein one or more specification objects or attribute objects or attribute object values participate in or are derived by the specification manipulation language derivation expression.

28. The method of claim 25 wherein the assigned value is a derivation expression within the specification manipulation language for creating custom rules and behaviors is comprised of:

string values;

variables used to refer to values in the list of source objects;

source objects optionally qualified by Context Partition, Role, and Instance Occurrence;

comments;

formulas;

conditional statements;

find statements;

with and where clauses

return clauses

source objects made up of any specification known to prompting in the current prompting session or retrieved during the session;

operators; and

derivation syntax.

29. The method of claim 25 wherein the native derivation syntax include a method selected from a group including Create, Clone, Compose, Compare, Combine, and Comply methods.

30. The method according to claim 25 further comprising attributing one or more ingrediential objects in an object specification template as executable logic expressions by the steps including:

selecting a template specification;

naming a context partition;

naming an instance of the context partition and an instance alternate;

entering the ingrediential object as a derivation expression;

assigning an appropriate role to the ingrediential object; and

releasing the specification for use.

31. The method according to claim 25 wherein an ingrediential object's value is dynamically filled by a derivation object inherited from a specification object's parent model template during business object specification content collection prompting.

32. The method of claim 25 further comprising parsing the native form derivation in memory for dynamic execution.

33. The method in accordance with claim 25 wherein a refined ingrediential domain member is further refined by attributing it with governing dimensions, the method further comprising:

selecting the refined attribute ingrediential object whose dimensions are to be bounded; and

providing the bounded limits using the minimum and maximum dimensional attributes and their operators.

34. The method in accordance with claim 33 wherein the values within a refined domain bounds equate to a modulus such that the only valid domain values are those that are the product of stated modulus increment times an integer where the product remains within the range.

35. The method in accordance with claim 33 wherein the specific and normally inclusive Lower Domain Value limit and/or the specific normally inclusive Upper Domain Value limit are excluded from the domain range from the domain range comprises

Optionally assigning an Exclude Lower Bound Value option to the refined domain ingrediential attribute object's minimum value; and/or

Optionally assigning an Exclude Upper Bound Value option to the refined domain ingrediential attribute object's maximum value.

36. The method of claim 25 wherein individual logic aspects of the derivation are collected and stored as individual ingrediential object logic expressions within a set.

37. The method according to claim 25 wherein the component parts of a proposition, constraint, validation, derivation or formula can be stored as individual ingrediential logic expressions, the method comprising the steps of:

using numerical operators as appropriate;

using value operators as appropriate;

using a logical operator;

using an object identifier value; and

using a Boolean value.

38. The method according to claim 37 wherein the object processing set includes, in combination, one or more of:

set processing applicabilities;

constraint expressions;

logic expressions;

formula specifications;

capability bounds;

efficacy bounds; and

other purposes configured by a user.

39. The method of claim 13 wherein the derivation expression expressed in its native syntactical form is stored in a single ingrediential object in textual form.

40. The method according to claim 13 wherein assignable rules control the visualization of attributes and their attribution and their behavior, the assignable rules being selected from the group comprising

radio button versus select list threshold;

partition sequence and page breaks;

attribute presentation sequence;

display control type, the control type being selected from the group including:

check box,

select list,

radio button, or

multi select;

override display name;

max entry length;

initial value;

require entry;

hide attribute;

disallow entry;

disallow label;

disallow duplicates;

disallow multiples;

bypass prompting; and

enforce domains.

41. The method according to claim 40 wherein assignable visualization rules are applied to the entry of minimum and/or nominal or and/or maximum numeric values.

42. The claim according to claim 13 wherein optional tolerances are configured for numeric values, the optional tolerances being selected from the group comprising:

require minus tolerance;

require plus tolerance;

display minus tolerance;

display plus tolerance;

hide minus tolerance;

hide plus tolerance; and

disallow separate tolerances.

43. The method according to claim 13 wherein derivation expressions are used to dynamically alter attribute object visualization rules during a prompting session.

44. The method according to claim 13 wherein the display form for an ingrediential object's values is dynamically defined by a user, the method further comprising the steps of:

selecting an appropriate model template specification;

selecting an appropriate ingrediential object; and

selecting the display form for the ingrediential object's values.

45. A method according to claim 13 for capturing two dimensional array data as an object specification, the method further comprising:

registering a new two dimensional array object specification;

using a rows context partition and context partition slot to identify and capture row entries;

using a columns context partition and context partition slot position to identify and capture column entries; and

using a cell context partition and context partition slot and slot position to identify and capture cell entries.

46. The method according to claim 45 wherein two-dimensional array data is presented in table form in support of update and display.

47. The method according to claim 45 wherein two dimensional array data stored as an object specification is converted to a conventional spreadsheet view usable as both the display and the entry view.

48. A method according to claim 45 wherein the step of capturing two dimensional array data in object specification form is qualified as to its use, the method further comprising the steps of:

adding one or more additional context partitions with ingrediential object values for qualifying the use, hence applicability, of the two dimensional array data for a specific business use; and

using the attributes at time of retrieval to determine applicability, hence a this time usability, of the two dimensional array object specification.

49. A method according to claim 45 wherein the ingrediential attribute objects that provide the qualification data are used to represent "n" dimensional array data allowing an object specification of type Two Dimension Array Specification to be an "n" Dimension Array Specification, the method further comprising the steps of:

naming and instantiating a two dimensional specification;

capturing the final two dimensions as Two Dimensional Array Data;

selecting the specification designated control Partition;

adding the remaining "n" dimension data not represented in the Two-Dimensional Array as ingrediential objects in the control Partition;

attributing the ingrediential objects with data values; and

qualifying the data values with other appropriate qualifying attribution.

50. A method according to claim 45 wherein multi-tiered search specifications are used to dynamically retrieve data contained in "n" dimensional object specifications.

51. A method according to claim 45 wherein derivation expressions are used to dynamically retrieve data contained in "n" dimensional object specifications.

52. A method according to claim 45 for providing for a dynamic constraint check of an Ingrediential object value where the constraint values are contained in a two dimensional array specification, the method further comprising the steps of:

configuring an ingrediential object processing set to include the conditions under which the constraint applies and the logic in the form of attributed ingrediential objects that will apply the constraint; and

specifying a method of triggering execution of the constraint.

53. A method according to claim 45 further comprising using the two dimensional array data cell to store a capability limit.

54. The method according to claim 45 further comprising filling an ingrediential object value by selecting a value from values contained in the two dimensional array specification object.

55. The method according to claim 45 wherein multiple values stored in a cell are returned from a cell.

56. The method according to claim 13 wherein new object role behavior is dynamically defined and configured by users, as derivation expressions following the syntax of the specification manipulation language for formulating derivation expressions.

57. The method according to claim 2 wherein the step of assigning a relationship role to the ingrediential object comprises assigning a role for defining the behavior of the ingrediential object in relation to the business object.

58. The method according to claim 2 wherein one or more interactions between definitions of structure and process are defined, the method comprising the steps of:

selecting a process object or a process step object;

selecting or creating a context partition to act as a resource utilization context partition for the process or process step;

populating the utilized resources partition with one or more context partitions from an ontology having ingrediential object content that provides structural ingrediential objects and other resources to the process object; and

using the one or more ingrediential object context partitions as context partition views in each item or each process specification that is to provide structural and other resources to the process step.

59. The method of claim 58 wherein a context partition preexisting in a product or item or the parent process specification that contains ingrediential objects representing structural and other ingrediential object content needed by the process object is added to the process object's utilized resources partition, the method further comprising:

selecting the process specification;

selecting the process specification's utilized resources partition; and

adding a product or item or parent process context partition for providing resources for the process object to its utilized resources context partition.

60. The method according to claim 58 wherein a process or process step retrieves or displays structural and process data needed from the item being acted upon by the process step, the method further comprising:

identifying the item that the process is acting on;

using each process step's resource utilization context partition name to retrieve the relevant ingrediential resource content, if any, that the item provides to the step;

using each process step's resource utilization context partition name to retrieve the relevant ingrediential content, if any, that the process step's parent process definition provides to the step;

using each process step's resource utilization context partition name to retrieve the relevant ingrediential content, if any, that the process step specification itself provides to the step; and

listing the retrieved resources.

61. The method according to claim 58 wherein the retrieved ingrediential structural and process data for the step is displayed by context partition and ingrediential role name and other sequences made possible by the set's ordered list and presentation sequence attributes.

62. The method according to claim 1 further comprising specifying the business object definition for use as a model template for instantiating instances of the defined business object including adding instantiation rules, specification content collection rules and derivation rules.

63. The method according to claim 62 wherein content of the object definition is preset in a parent model template to be inherited by objects instantiated from the parent model template.

64. The method according to claim 63 further comprising:

specifying the ingrediential object as user derivable in the parent model definition;

displaying a derive button next to any instantiated object's displayed ingrediential object when "user derivable" is true; and

invoking the ingrediential object or ingrediential object set processing method when the button is activated by a user;

whereby execution of the ingrediential object or the object processing set is invoked by a derive button associated with the ingrediential object.

65. The method according to claim 63 wherein during update an instantiated object dynamically refers to its parent model for current collection and derivation rules.

66. The method according to claim 63 wherein an instantiated object physically inherits its collection and derivation rules from the parent model at the time of the object's instantiation.

67. The method in accordance with claim 63 wherein dynamic definition and modification of specification content and content rules is preset in derivation expressions inherited from a specification model and executed when encountered during prompting and maintenance of specifications.

68. The method according to claim 62 wherein the model template is configured to the benefit of the model's future instantiated objects to use a tiered search method to dynamically locate and append additional salient ingrediential content, the method comprising:

selecting an object model template;

formulating an ingrediential object derivation expression to use a tiered search to dynamically locate and append additional salient ingrediential object content;

using named preset and derived attributes and prompted attributes as finders to support the tiered search;

naming common attributes of the tiered search;

naming attributes that constrain each level of the tiered search;

adding two or more search templates to the ingrediential object derivation expressions; and

providing for triggering of the ingrediential object expression that dynamically appends content to an object.

69. The method according to claim 62 wherein the step of specifying the business object definition for use as an object model template, the method further comprising the steps of:

registering the business object as an object model template;

optionally enabling revision control for the object model template;

formulating ingrediential objects for the object model template;

providing instantiation rules including collection rules and derivation rules for the ingrediential objects; and

releasing the object model template for use.

70. The method of claim 62 wherein the step of providing collection rules and derivation rules for the ingrediential objects comprises specifying collection rules and derivation rules for each ingrediential object that will appear in objects instantiated from the object model template.

71. The method of claim 62 wherein ordered list and other presentation criteria configured in the model template are specified for an ingrediential object that will appear in objects instantiated from the model template.

72. A method according to claim 62 wherein a leaf model in a model hierarchy is given model template status allowing it to be used to instantiate business object instances that conform to the instantiation criteria of the model template.

73. A method according to claim 72 wherein a business object stored in a hierarchy of business objects can be selected and launched while traversing the hierarchy.

74. A method in accordance with claim 62 for creating a business object specification from a parent model template, the method comprising:

selecting the parent model template;

naming a new business object specification;

prompting for content missing from the new business object;

adding or modifying ingrediential objects to the business object;

running the content and derivation completeness checks inherited from parent model template;

running one or more efficacy checks inherited from the parent model template; and

releasing the business object for use.

75. The method according to claim 62 wherein a new sub-model template definition is created using the create method, the method further comprising:

selecting an existing model template object;

providing an identifier for the new model template object;

executing the create method to instantiate the new model bypassing content that is specific to the source model;

automatically capturing model parentage;

making modifications and additions to the instantiated model's ingrediential content; and

releasing the new model template object.

76. The method according to claim 62 applied for instantiating a new object model template definition, the method further comprising:

selecting an existing model template object;

providing an identifier for the new model template object;

executing the clone method to create a copy of the model using the new identifier while bypassing content that is specific to the source model;

automatically copying the source model's parentage;

making modifications and additions to the cloned model's ingrediential content; and

releasing the new model template object.

77. A method according to claim 62 for storing an object model template and an object model sub-template in a hierarchy of object model templates, the method comprising:

opening a pending revision of the sub template model object;

setting the object model's model parent; and

releasing the object model template.

78. A method according to claim 162 for instantiating a new business object from an object model template, the method further comprising:

providing an identifier for the new business object;

selecting the object model template;

executing a create method for instantiating the new business object with ingrediential objects and rules for capturing and deriving ingrediential object content and ingrediential object content values inherited by the created object;

initializing revision control for the created object;

completing registration of the new business object in a prompting session; and

releasing the business object specification for use.

79. The method according to claim 178 wherein some ingrediential objects represent model template specific data and therefore are not considered when instantiating an object instance's ingrediential object content during the create event.

80. A method for creating a search template according to claim 62 comprising:

registering a new business object;

typing the new business object as a search template;

specifying search criteria as bounded ingrediential objects;

optionally providing additional ingrediential objects for locating and managing the search template; and

releasing the business object.

81. A method according to claim 80 for converting a business object to a search template object, the method comprising:

selecting the business object to be converted;

providing an identifier for the new search template object;

cloning the business object to instantiate the new search template object;

converting any attribute nominal values in the instantiated search template object having plus or minus tolerances to range limit values;

adding Boolean criteria to the search template ingrediential objects as required for the search; and

releasing the search template object.

82. The method according to claim 1 wherein the step of relating each of the ingrediential objects to the business object comprises relating the ingrediential object acting in the capacity of one or more of an attribute object, a relationship role object, a rendering object, a network connection between the business object's ingrediential role objects, a reference object, and a proposition or derivation expression or SQL find or formula component.

83. The method according to claim 82 wherein:

the step of relating the ingrediential object comprises relating the ingrediential object to act in the capacity of an attribute object or a relationship object; and

the method further comprises attributing the ingrediential object by assigning an object identifier value.

84. The method according to claim 82 applied for defining a network of ingrediential objects, the method further comprising:

selecting the business object;

selecting a decomposition context consistent with the type of the network being defined for decomposing the business object into constituent ingrediential objects;

decomposing the business object into the constituent ingrediential objects;

entering the constituent ingrediential objects as ingrediential objects within a selected decomposition context partition;

attributing each ingrediential object as appropriate for use in the network;

then selecting or creating a network context partition; and

forming network connections within the selected network context partition;

whereby the ingrediential objects are connected to form the network.

85. The method according to claim 1 wherein a set of attributes collaborate to produce a behavior to the definitional benefit of the business object, the method further comprising:

selecting the business object definition that is to include the set of attributes;

selecting a set of attributes to be processed individually or as a set to achieve the behavior;

assigning the attributes to a context partition slot;

sequencing the attributes using presentation sequence;

assigning a role to each attribute;

assigning values to complete each attribute's role in the processing set, the values being selected from the group of values including object values, object value operators, minimum numerical values, nominal numerical values and maximum numerical values and corresponding numeric value operators, Boolean values, string values, derivation expressions, and attribute logical operators; and

providing a rule or rules where needed triggering their execution.

86. The method according to claim 85 wherein:

the step of assigning one or more attributing values comprises assigning attributing values of Integer and Big Decimal for providing dimensional physical relatum; and

the method further comprises providing a unit of measure and entering one or more of a minimum numeric value, a nominal numeric value and a maximum numeric value.

87. The method according to claim 86 further comprising:

optionally assigning a numeric value operator to each of the ingrediential object attribute's minimum numeric value, nominal numeric value and maximum numeric value;

optionally entering one or more of the minimum numeric value operator, the nominal numeric value operator and the maximum numeric value operator; and

using each of the ingrediential object's entered numeric values and unit of measure and its corresponding numeric value operator to participate in dimensional descriptions and logical expressions.

88. The method according to claim 86 further comprising supporting the unit of measure and numeric values with a definition of precision for Big Decimal.

89. The method according to claim 86 wherein numeric values can be represented as decimal values or fractional mixed numbers in ingrediential attribution and in derivation logic expressions.

90. The method according to claim 86 further comprising dynamically converting at time of entry each of the entered minimum numeric value, the entered nominal numeric value, the entered maximum numeric value and the entered unit of measure to corresponding preset converted storage values.

91. The method according to claim 86 wherein numeric values are stored in their entered unit of measure and concurrently dynamically converted and stored in a user's pre-selected standard unit of measure.

92. The method according to claim 86 further comprising making available to the nominal numeric value a Standard Tolerance UOM, a Tolerance UOM Operator, and a Standard Tolerance Operator provided there is no use of minimum or maximum numeric values.

93. The method according to claim 92 wherein new ingrediential object derivation rules for creating attribute objects and their values are accomplished dynamically without user regard for disparate units of measure that exist for the various values used in a derivation.

94. The method according to claim 86 wherein no nominal numeric value is used and an additional tolerance operator is provided for one or both of a minimum numeric value or a maximum numeric value to support plus/minus variations on one or both of the minimum numeric value and the maximum numeric value.

95. The method according to claim 86 wherein currency conversion rules are dynamically created and extended in support of automatic data conversion.

96. The method according to claim 86 wherein Unit of Measure and tolerance representation rules are dynamically created and extended in support of automatic data conversion.

97. A method according to claim 85 wherein an object efficacy criterion is captured as a specification, the method further comprising the steps of:

registering a new business object;

assigning the new business object an object type of efficacy specification;

selecting and using appropriate efficacy context partitions from ontology context partition names and ingrediential object terms that correspond to those used in object specifications that invoke the efficacy specification;

formulating the ordered set of attributed ingrediential objects that set the efficacy bounds criteria; and

releasing the specification for use.

98. The methods claim 97 wherein the step of executing the requisite validations, including collection and completeness validation or specification efficacy conformance validation or ingrediential network connection efficacy or ingrediential object participation applicability, is performed in response to a user request or an application function or as a validation sub-method within specification revision release.

99. A method according to claim 97 for listing one or more efficacy object specifications for execution by the specification release method to ascertain whether or not the business object specification's content allows it to meet its intended purpose, the method further comprising the steps of:

selecting the model template;

selecting or creating appropriate efficacy objects; and

listing the efficacy objects in a context partition named release validation checks.

100. The method according to claim 97 for using collection and derivation rules inherited from a parent model template to ascertain collection and derivation completeness for the business object specification, the method further comprising:

applying the rules for collection and derivation inherited from the parent template model to the business object's ingrediential content; and

setting the result to a state of pass or fail depending on the conformance of the business object's ingrediential content to the inherited collection and derivation rules.

101. The method according to claim 97 wherein the step of executing the efficacy check or the manufacturing capability assessment method is performed in response to a user request or an application function or a specification release event.

102. The method according to claim 97 wherein an efficacy specification is formulated with a role of manufacturing capability, the method further comprising the steps of:

instantiating an object of type manufacturing capability using the create method;

formulating the manufacturing capability object following the conventions for creating and applying efficacy specifications.

103. The method according to claim 97 wherein a manufacturing capability specification object is used in an ingrediential object processing set to check the manufacturability of the business object specification in which the ingrediential object processing set appears.

104. The method according to claim 85 wherein an ingrediential object's value is dynamically validated as to its efficacy by one or more efficacy objects inherited from a specification object's parent model template comprising the steps of:

selecting the appropriate model template;

selecting or creating one or more efficacy object specifications to be used to dynamically check the efficacy of the business object specification including as appropriate its attribute and relationship object identifier values;

selecting or creating one or more efficacy derivation expressions to be used to dynamically check the efficacy of the business object specification including as appropriate its attribute and relationship object identifier values;

adding the efficacy object specifications and derivation expressions to the model template specification;

setting the derivation ingrediential objects to be inherited during create; and

setting the rules to dynamically trigger execution of the efficacy checking derivation expressions.

105. The method of claim 85 wherein the efficacy specification when applied as an ingrediential object in another specification fulfills a role of constraint check.

106. The method according to claim 85 wherein the Efficacy Bounds criteria takes the form of a single ingrediential object derivation expression within the object specification or within other object specifications known to the object.

107. A method in accordance with claim 85 for creating an applicability object specification for capturing object applicability bounds criteria, the method comprising:

instantiating a new object;

assigning the new object an object type of applicability specification;

using in the new object appropriate context partition names and ingrediential object terms that correspond to context partition names and ingrediential object terms used in object specifications that invoke the applicability specification;

formulating an ordered set of attributed ingrediential objects that set the applicability bounds criteria; and

releasing the specification for use.

108. The method according to claim 85 wherein the Applicability criteria takes the form of a single ingrediential object derivation expression.

109. The method according to claim 85 for providing a type specific extension to an existing model template object, the method further comprising:

Selecting or creating the type specific extension as a model template object;

typing it as an extension template object model;

selecting the existing model to be augmented;

opening a new revision of the existing base model;

making the new extension template object an ingrediential object of the model that it extends;

giving it a role of extension template; and

releasing the newly augmented template object model.

110. A method in accordance with claim 109 wherein the instantiation of a new business object from a model currently augmented with an extension object model template automatically instantiates a consonant instance of extension business object specification object, the method further comprising:

selecting a source model;

running the create method to instantiate a new business object;

observing the existence of an extension model;

running the create method to instantiate an instance of the extension specification; and

replacing the ingrediential extension model ID in the newly created business object with the newly created instance of extension specification ID.

111. The method according to claim 110 further comprising providing for the automatic display of an extension specification icon for any business object that has an extension specification.

112. A method according to claim 110 further comprising the step of providing for display of a consonant extension specification comprising:

displaying the extension specification for viewing or updating when the user initiates the display by clicking on a displayed extension specification icon contained within the base specification display.

113. A method according to claim 110 for providing for the automatic display of a consonant extension specification, the method further comprising:

automatically detecting the existence of an extension specification; and

automatically providing a window for viewing or updating the extension specification.

114. The method according to claim 110 for providing augmenting type specific content, the method further comprising the additional steps of setting content owner to system or a named system content provider or the installation's standard lexicon equivalent; and

setting the role to system owned object extension specification or the installation's standard lexicon equivalent.

115. The method according to claim 110 for creating an additional extension specification model object that is owned and used by a user to extend system-provided base specification content, the method further comprising:

setting content owner to user's company; and

setting the role to company owned object extension specification.

116. The method according to claim 85 wherein the ingrediential object itself is another independently managed reusable specification that is appended as an ingrediential object to the business object with an assigned role of sub-specification or similarly behaving role.

117. The method of claim 85 for controlling format and content consistency of business objects of a specified object type, the method further comprising setting a rule for the object type requiring that business objects of the object type must be instantiated from a model template.

118. The method according to claim 1 wherein:

the step of relating each of the ingrediential objects to the business object comprises referencing the object's relationship with an external object identifier; and

the step of referencing the ingrediential object's relationship with an external object identifier comprises:

selecting the business object to be referenced;

creating a reference object;

selecting a reference type for the reference object;

selecting or providing a reference context partition for a reference value;

entering the reference value;

entering a reference owner for the reference value;

entering a role for the reference value with respect to the referenced business object;

entering a reference revision for the reference value, when appropriate; and

automatically providing a beginning content effectivity revision for the reference and automatically initializing an ending content effectivity revision for the reference for defining a range of revisions.

119. The method according to claim 118 further comprising closing out the applicability of the reference revision to a current range of revisions of the referenced object, the step of closing out the applicability comprising:

selecting the reference object; and

setting the reference's referenced object's ending content effectivity revision to the last released revision that is to apply.

120. The method according to claim 118 wherein the step of selecting a reference type for the reference object comprises providing an alias role for specifying the reference object for alias processing.

121. The method according to claim 118 wherein step of selecting a reference type for the reference object comprises providing a topical reference role for processing the reference type as a topical reference.

122. The method according to claim 118 wherein step of selecting a reference type for the reference object comprises providing an index role for processing the reference type as a referential index.

123. The method according to claim 118 further comprising recording a physical location in response to the receipt of a physical manifestation of the reference object.

124. The method according to claim 1 wherein business object definitions are dynamically created or modified by a user without any requirement for intervention or assistance of a programmer or database administrator.

125. The method according to claim 1 wherein any needed definition objects including attributes and context partitions and ingrediential object roles are dynamically created as object definition specifications using a create event.

126. A method according to claim 1 for providing revision control for a computer-processable business object definition, whether the object definition is for an object model template, an object instantiated from an object model template, or an object cloned from an existing object, the method further comprising:

naming the business object;

enabling the revision control;

opening a next revision of the business object;

defining one or more ingrediential objects within a specification construct;

relating each of the ingrediential objects to the business object to define the business object;

making additions or modifications to the open revision of the business object; and

releasing the open revision of the business object for use.

127. The method according to claim 126 for optionally enabling the business object's formal participation in revision control at any time in the object's life cycle, the method further comprising:

providing an ingrediential attribute in the specification for setting the enablement of revision control, the attribute including an affirmative state and a negative state;

selecting an enable revision control event for the business object at any time in the business object's life cycle;

setting an ingrediential attribute in the specification for setting the enablement of revision control, the attribute including an affirmative state and a negative state;

setting a revision control parameter to a state for activating use of an open next revision event and a release definition revision event; and

activating the display of a latest released revision legend and a pending revision legend for the business object.

128. The method according to claim 126 for reverting a business object currently participating in revision control to a user perceived state of not being under revision control, the method further comprising:

selecting a disable revision control event for the business object;

setting a revision control parameter to a state for deactivating use of an open next revision event and a release definition revision event;

automatically opening a pending revision to receive changes and additions to the definition in the event that there is currently no pending revision in existence; and

optionally disabling the display of a latest released revision legend and a pending revision legend for the object.

129. The method according to claim 126 for opening a new revision of the business object under revision control for updates, the method further comprising:

selecting the business object;

selecting an open new revision event;

optionally providing an override release date and time;

automatically validating that the business object is under revision control;

instantiating the new revision;

attributing the new revision with salient revision data including an open revision date and time and release agent; and

setting the now open revision to a pending state.

130. A method according to claim 126 for allowing user change of an object revision's revision status, the method further comprising:

selecting the business object;

selecting the business object revision;

selecting a revision event;

executing the event;

validating the ability to change the status; and

setting or resetting revision status as appropriate; and

sending a lifecycle state change event to the object.

131. The method according to claim 126 further comprising automatically setting an object's revision status by another event, the other event being from a group including an open new revision event or a release revision event.

132. The method according to claim 126 for releasing for use an instantiated business object using revision control, the method further comprising:

selecting the release event;

optionally providing a release date and time;

validating that approvals have been completed;

automatically attributing the revision with release history attributes including a release date, a release time and a release agent;

moving the pending release number to the latest released revision in the registration record;

clearing the pending release number in the registration record; and

setting the revision status to the active state.

133. The method according to claim 126 further comprising, upon releasing a revision, executing a definition content validation and an efficacy check comprising:

executing each definition validation and efficacy check method listed, in a content validation and efficacy check partition inherited from the object instance's parent model template;

executing each definition validation and efficacy check method listed in a content validation and efficacy check partition added to the object during its lifecycle prior to the release; and

providing an appropriate response should a validation or efficacy check method fail to validate the definition revision for release.

134. The method according to claim 126 wherein a user invokes definition content completeness validation or efficacy and manufacturing capability checks to assess current completeness of the process of capturing and deriving object specification definition content, the method further comprising:

selecting the object to be validated;

selecting the object revision;

selecting a content validation event; and

providing in a user format the result of the user executed validation method.

135. The method according to claim 126 further comprising canceling a pending revision and resetting the object definition to its previous state.

136. The method of claim 135 wherein the canceled revision was a pending revision resulting in the physical deletion of its ingrediential object definition content effective for the pending revision.

137. The method of claim 135 wherein the canceled revision causes an ingrediential object participating in the immediately preceding released revision to have its previous ingrediential revision content ending effectivity reset to its previous value.

138. The method of claim 135 wherein the step of canceling a pending revision of comprises physically deleting the object if the object has no previous released revision.

139. The method of claim 135 wherein a previously released revision is cancelled resulting in a new revision status of canceled attributed with author and a time stamp.

140. The method according to claim 135 wherein the step of canceling the object comprises using a cancel revision method that cancels each of the object's revisions in reverse succession, with the latest revision being canceled first.

141. A method according to claim 135 for tracking the participation of an ingrediential object and its attributed content in an object definition by specification revision, the method further comprising the:

selecting the object to be updated;

opening a pending revision unless there is already a pending revision ready to accept updates;

adding or modifying ingrediential object definition content;

attributing the ingrediential object addition or modification with a beginning content effectivity revision corresponding to the pending revision and an ending content effectivity revision corresponding to infinity.

142. The method according to claim 135 further comprising the step of terminating the participation of an ingrediential object in an object definition comprising:

selecting the object;

selecting the ingrediential object;

opening a pending revision of the object unless there is already a pending revision ready to accept updates;

selecting the pending revision applying the delete event to the ingrediential object thereby physically deleting any ingrediential object content applying to the pending revision from the object definition; and

setting an ending content effectivity revision for any immediately preceding released revision to the current pending revision number minus one in the event that the ingrediential object has a previous released revision.

143. The method according to claim 135 wherein an ingrediential object is given a specific stipulated revision that is to be effective for a range of object revisions beginning with the current open revision, the method further comprising:

selecting the object to be updated;

opening a pending revision unless there is already a pending revision ready to accept content definition data;

selecting the ingrediential object;

providing the ingrediential object with a specific ingrediential object revision;

setting beginning content effectivity revision to the pending revision; and

setting ending content effectivity to a value corresponding to infinity.

144. The method according to claim 143 wherein a stipulated ingrediential object revision is modified or cleared for future revisions, further comprising the steps of:

selecting the object to be updated;

opening a pending revision unless there is already a pending revision ready to accept updates;

selecting the ingrediential object; and

changing the ingrediential object's revision.

145. The method according to claim 143 wherein the ingrediential object revision is managed as a range of revisions that is effective for a range of revisions of the object being defined.

146. A method according to claim 135 wherein specification to specification operations of Create, Clone, Compose, Combine, and Renew automatically initialize or reinitialize revision control in the target specification .

147. The method according to claim 146 wherein the business object is revision controlled and the specification to specification method automatically opens a new revision of the target business object to accept object content and content rules.

148. The method according to claim 146 further comprising allowing a user to request that the automatically opened revision of the business object be automatically released at the conclusion of the specification to specification method.

149. The method according to claim 146 wherein using an application function to run the specification to specification method will automatically release the pending revision provided the application function automatically opened the pending revision.

150. A method according to claim 135 wherein future objects instantiated from a given business object specification template will be automatically placed under revision control, the method further comprising:

providing an ingrediential attribute in the specification template for setting the enablement of revision control for objects instantiated from the model template object, the attribute including an affirmative state and a negative state;

selecting the business object template specification; and

presetting the attribute state to affirmative for enablement of revision control for each object subsequently instantiated from the model template object.

151. A method according to claim 126 wherein future business objects instantiated from a given business object specification template will not be automatically placed under revision control, the method further comprising:

providing an ingrediential attribute in the specification template for setting the enablement of revision control for objects instantiated from the model template object, the attribute including an affirmative state and a negative state;

selecting the business object template specification; and

presetting the attribute state to the negative for enablement of revision control for each object subsequently instantiated from the model template object.

152. A method according to claim 1 for instantiating a new business object from an existing source business object, the method further comprising:

providing an identifier for the new business object;

naming as a source object a business object specification or a model template object specification;

executing a clone method for instantiating the new business object from the source object by copying the source object ingrediential objects with its rules for capturing and deriving ingrediential object content and ingrediential object content values;

copying parent model heritage and/or compose heritage if any;

initializing revision control for the cloned object; and

automatically releasing the new business object specification for use.

153. The method according to claim 152 wherein some ingrediential objects represent object specific data and thereby are not considered by the clone event.

154. The method according to claim 1 wherein the execution of functions and methods in support of this claim are performed in response to a user request.

155. The method according to claim 1 wherein the execution of methods in support of this claim is performed in response to an application function.

156. A method for constraining values of an object by a domain, the method comprising:

providing a domain;

attaching the domain to an object to domain the object; and

automatically performing an object value domain check wherever the domained object is used in a capacity of attribute object.

157. The method of claim 156 wherein the step of providing a domain specification is comprised of:

creating an object;

typing the object as a domain specification;

selecting a context partition;

adding domain values as ingrediential objects;

giving each ingrediential object a role; and

releasing the specification for use.

158. The method of claim 156 wherein the step of providing a named partition and a named role uses specific partition names and role names that allow the specified domain values to be specific to specification attributes having those context and/or role assignments.

159. The method of claim 156 wherein the step of providing domain values takes the form of attribution refinements.

160. The method in accordance with claim 156 wherein providing the domain includes naming an external domain taking the form of a relational table.

161. A method according to claim 156 using an object specification to use a refined subset of an object's domain values, further comprising:

selecting the object that is to use the refined subset of domain values;

selecting the subset of the refined object domain values that are to used;

giving each added domain refinement value a context partition;

giving each added domain refinement value a role;

adding the subset of domain values as refinement ingrediential objects; and

releasing the specification for use.

162. The method according to claim 161 wherein the same attribute within another context can be given a different subset of domain values.

163. The method according to claim 161 wherein the same attribute within another role can be given a different subset of domain values.

164. A method according to claim 161 wherein an attribute's value is matched to refinement domain values through a sequence of choices, the method further comprising:

running a scan of the domain refinements for

a match on context partition and role;

a match on context partition and a role of "Any Role"

a match on role and a context of "Any Partition";

a match on "Any Partition", the "Generic Attribute" and "Any Role";

stopping the scan at any time that a match is made and using the refinement domain; and

returning a "domain non-match" when the scan fails to find a match.

165. The method according to claim 156 further comprising the step of associating a domain object with a specification attribute, the step of associating comprising:

selecting the object specification;

selecting the ingrediential attribute object that is to be domained; and

assigning the domain object to the object's specification attribute via its attribution record.

166. The method according to claim 156 wherein a superset of domain values can be shared across multiple roles and contexts and in different specifications while specific values in the domain superset are excluded based on named context or role or specification, the method further comprising:

selecting the specification that requires a subset of an existing domain;

selecting the attribute that requires the domain;

assigning the domain specification to the attribute;

adding a refined domain ingrediential attribute object for the domain value that is to be excluded;

setting the added refined domain's Exclude Value to "Yes" or "True".

167. The method according to claim 156 wherein the set of finite contiguous domain values can be represented by a single refined domain ingrediential attribute object comprising the steps of

selecting the specification that requires the bounded enumerated domain;

adding a refined domain ingrediential attribute object;

setting the added attribute object's minimum value with the lower bounds of the enumerated domain; and

setting the added attribute object's maximum value with the upper bounds of the enumerated domain.

168. The method according to claim 156 further comprising associating a domain query box with the ingrediential object to be domained for facilitating user selection of a valid domain value.

169. The method according to claim 156 wherein a domain value listed in a domain specification is generalized In order to provide the same domain to an attribute that exists in multiple partitions or with multiple roles, the method further comprising the steps of:

Selecting the domain specification;

Selecting the domain value whose use is to be generalized;

Using "Any" as a reserved word for a Partition to signify a Partition that will match every Partition name to which it is compared;

Using "Any" as a reserved word for a Role to signify a Role that will match every Role name to which it is compared;

Releasing the domain specification for use.

170. The method according to claim 156 wherein a domain value listed in a domain specification is generalized in order to provide the same domain to an attribute that has name variations all of which share a domain, further comprising:

specifying a generic attribute in a class to value rule for a primitive class; and

providing the rule with a unique default attribute class unique for the primitive class to facilitate a match with every attribute of that type to which it is compared.

171. The method according to claim 156 wherein an object has assigned to it a combination of domains consisting of domains maintained for objects used as specification attribute objects and/or domain specifications assigned to an attribute object in a specification as part of the attribute object's attribution including taxonomy domains, and/or domain refinements maintained in the specification itself.

172. The method according to claim 156 wherein the integrity of the domain process is assured by requiring that any external domain attached to an ingrediential attribute object be a subset of the object domain and that any domain refinements should they exist be a subset of the external domain should it exist and should it not exist they must be a subset of the attribute object's domain should it exist.

173. The method according to claim 156 wherein domains for different but related attributes are organized in a hierarchy of domains further comprising:

instantiating a specification of type domain hierarchy;

laying out the hierarchy of attribute domains;

assigning each of the ingrediential attribute objects a unique number;

entering the attributes and their values as specification ingrediential attribute objects;

using the unique attribute numbers as the ingrediential attribute slot instance numbers for their respective attributes;

giving each attribute a hierarchical parent by using the selected attribute parent's unique number as the ingrediential attribute object's slot alternate instance number;

repeating the previous step until all attributes except the apex attribute have hierarchical parents; and

releasing the specification for use.

174. The method according to claim 156 wherein a taxonomic domain specification conforming to a selected taxonomy domain hierarchy is populated with domain values, the method further comprising:

instantiating a specification of type taxonomy domain;

using the selected hierarchy domain as the assigned taxonomy domain hierarchy;

selecting an attribute domain within the taxonomy hierarchy to load;

selecting its parent attribute's unique instance number from the taxonomy domain hierarchy specification loading attribute values using the next available Taxonomy Domain Specification Instance Number and the parent attribute's unique instance number as the alternate slot instance number;

repeating the previous three steps until there are no more attribute domain values to load; and

releasing the specification for use.

175. The method according to claim 174 wherein a taxonomy domain contains a singular attribute domain that when used works in concert with the domain hierarchy specification that it references.

176. The method according to claim 174 wherein a taxonomic domain specification is applied to specification attributes to govern valid attribute value to attribute value combinations, the method further comprising:

selecting a specification whose attribute values are to be governed by attribute values within the taxonomic domain specification;

attaching the taxonomic domain specification to each attribute object that is to use the taxonomic domain.

177. The method according to claim 176 wherein user selection of any taxonomy domain value in a transaction is limited to values contained within the controlling taxonomic domain specification.

178. The method according to claim 174 wherein attributes and attribute values participating in a taxonomic domain specification are displayed for user consideration during transaction processing comprising the steps of providing a drop down control for each attribute participating in the taxonomic domain specification;

displaying all attribute values in the drop down control list;

highlighting values in the drop down that are no longer usable given the complement of other user entries that were previously made; and

sorting domain values such that values that are valid based on current attribute selections are shown at the top of the drop down lists and values that are not valid are shown at the end of the list with prefix of "x" or other means of highlighting these values as invalid; and

displaying each attribute's current attribute value if any with its validity highlighting if any in its control box.

179. The method according to claim 174 wherein taxonomic domain validation is triggered by user selection of a value from a taxonomy domain drop box, the method further comprising:

initializing each of the taxonomic domain drop lists;

accepting a domain value for validation;

verifying its existence in the appropriate taxonomic domain drop list;

marking the selected domain value as "valid";

using the governing taxonomic domain hierarchy proceed to the drop list representing the immediate next higher parent domain specified in the domain hierarchy specification;

marking each value found at this level as "valid" if the immediate preceding sub level contains a "valid" child for the parent value;

repeating the previous two steps until the apex domain has been processed;

beginning at the apex, processing each sub node drop list moving from top to bottom in the taxonomy domain hierarchy marking each value at a lower child level as "invalid" if it has a parent domain value marked as "invalid" and "valid" if it has a parent marked as "valid";

returning the processed domain value drop lists with all temporarily invalidated domain values identified to the user display.

180. The method according to claim 156 wherein the selection of the applicable domain value from the set of possible domain specifications is derived at run time via a priority sequence consideration of sources, the method further comprising:

first looking at the current specification for value refinements for the attribute;

if any are found that are inclusive at any level of generalization, stopping the search and using the domain;

if any exclude refinements are encountered, accumulating them;

then giving consideration to a domain specification assigned to the attribute object as part of its attribution record;

if an external domain specification is found, searching across all levels of generalization;

if any inclusive refinements are encountered, stopping the search and apply accumulated excludes;

if there are no inclusive refinements, accumulating any exclude refinements encountered;

if the domain has not been resolved on the external specification, making a search for a refinement specification on the attribute object itself;

if there is a refinement specification on the attribute, retrieving and searching across all levels of generalization;

whereby all inclusive refinements will have the excludes removed to form the domain that is used.

181. A method for composing a new business object from a base object and a supplementing object, the method further comprising:

selecting the base object;

selecting the supplementing object;

providing an identifier for the new business object;

selecting a fill rule for causing an ingrediential object in the supplementing object that matches a corresponding ingrediential object in the base object to fill the base ingrediential object's attribution with the supplementing object's attribution;

optionally setting an augmentation rule to cause ingrediential objects in the supplementing object that do not appear in the base object to be added to the new business object;

executing a compose method against the base object and the supplementing object for composing the new business object using the fill rule and the augmentation rule;

initializing revision control for the cloned object; and

automatically releasing the new object specification for use.

182. The method according to claim 181 wherein the fill rule overlays or combines the base object's ingrediential object attribution values and rules with the supplementing object's ingrediential object attribution values and rules.

183. The method according to claim 181 wherein the fill rule replaces the base object's attribution with the supplementing object's attribution.

184. The method according to claim 181 wherein the fill rule fills the base object's numeric attribution with a tightest value of the attribution numeric values of the base object and the supplementing object.

185. The method according to claim 181 wherein the fill rule fills the base object's numeric attribution with a loosest numeric value of the attribution numeric values of the base object and the supplementing object.

186. The method according to claim 181 wherein the fill rule combines non-numeric attribution of the base object and a non-numeric attribution of the supplementing object resulting in an additional ingrediential object values in the base object.

187. The method according to claim 181 wherein the new business object specification is the base object specification.

188. The method according to claim 181 wherein a multi-level compose method is used for composing a plurality of business objects together in one event to produce a result specification, the method further comprising:

selecting a base object;

selecting or creating an ordered list of supplementing compose objects for composing into the base object to produce the result specification;

naming or selecting the result specification; and

executing a multi-compose method for composing the result specification.

189. The method of claim 188 wherein the ordered list of supplementing compose objects comprises a partition set of ingrediential objects appearing in the base object specification.

190. The multi-level compose method of claim 188 wherein one or more ingredients in the ordered list comprises a sequence of tiered search templates used by the multi-level compose method to dynamically locate multiple objects that provide the additional plurality of business objects that are to augment the base object.

191. The multi-level compose method of claim 188 wherein the ordered list of supplementing compose objects comprises one or more logic expressions each given a role in providing or retrieving the supplementing compose objects.

192. The multi-level compose method of claim 188 wherein the ordered list of supplementing compose objects comprise one or more logic expressions each given a role in providing or retrieving the supplementing compose objects.

193. The multi-level compose method of claim 188 wherein at least one of the ingrediential objects configured in the ingrediential object ordered list comprises an attribute used as a finder by search template objects that follow the finder in the ingrediential object set.

194. The multi-level compose method of claim 188 wherein an ingrediential object ordered list configured as part of a parent model template of the base object includes criteria required for running the multi-level object compose method.

195. The multi-level compose method according to claim 188 wherein the ingrediential object ordered list includes an ingrediential object filling the role of search template finder that requires dynamic user prompting to collect its object values.

196. The multi-level compose method of claim 188 wherein one or more ingrediential objects sequenced at the beginning of the ingrediential object ordered list are used to dynamically determine the appropriateness of using any subsequent compose sources included in the ingrediential object processing set.

197. The multi-level compose method according to claim 188 wherein ingrediential objects in the ingrediential object ordered list filling a role of set applicability attribute requires dynamic user prompting to collect its object values.

198. The method of claim 188 wherein the step of executing the multi-level compose method is triggered during user specification content capture prompting.

199. A method for combining two business object specifications to obtain a result specification that causes matching ingrediential objects having numeric values to have a minimum and a maximum but no nominal values where the minimum is the least of the minimum and the nominal values and the maximum is the greatest of the maximum and nominal values, and wherein matching ingrediential object non-numeric valued objects are both included in the result specification as multi instance ingredients; and wherein non matched ingrediential objects from the base and the supplement specification together are included in the result specification, the method comprising the steps of:

identifying a specification as the base object;

identifying a specification as the supplementing object;

selecting the combine event; and

executing the combine method.

200. A method for comparing a first business object definition with a second business object definition to ascertain differences or similarities between the first business object definition and the second business object definition, the method comprising the steps of:

selecting the first business object definition;

selecting the second business object definition;

setting comparison rules for comparing attributes and attribute values of the first business object definition with attributes and attribute values of the second business object definition; and

executing a compare method between the first object definition and the second object definition based on the compare rules.

201. A method in accordance with claim 200 wherein the degree of comparison are scored by putting a weight on a partition context and by putting a weight on ingrediential attribute objects and their values within a context partition.

202. The compare method according to claim 200 wherein the compare method is used to determine whether the first business object definition is a true subset of the second business object definition.

203. A method for refreshing the ingrediential object content of a business object, the content including instantiation rules, preset values, collection rules, and derivation rules, so that the ingrediential object content of the business object is consistent with the ingrediential object instantiation content of a parent model template from which the business object was instantiated, the method comprising

selecting the business object to be renewed;

selecting a renew event;

optionally designating a desired revision of the parent model template in place of a latest active released revision of the parent model template; and

running a renew method to refresh the business object by synchronizing the business object's instantiation rules, preset values, collection rules and derivation rules with those of the parent model template.

204. The method according to claim 203 further comprising running the renew method to refresh in mass a plurality of existing instances of business objects instantiated from a given parent model template in response to a user request.

205. The method according to claim 204 wherein the step of running the renew method to refresh in mass comprises:

selecting a mass renew event;

providing the mass renew event with a list of business object instances to be refreshed; and

running the renew method for each object instance in the list of business object instances in accordance with the each object instance's parent model template.

206. A method for locating uses of a specific object of interest as an ingrediential object within a business object definition, the method comprising:

naming the object of interest;

selecting a where used event;

optionally requesting only uses of the object of interest that occur in a specific context partition;

optionally requesting only uses of the object that occur for a specific ingrediential object role;

optionally requesting only uses of the object that occur for a specific ingrediential object revision;

considering only the business object's latest revision or only the business object's open pending revisions;

executing the where used method; and

returning a displayed list of using business objects each with the context partition name and role in which the object of interest is used as an ingrediential object.

207. A method for performing a search of a plurality of business objects to find business objects that conform to designated search criteria, the method comprising:

providing the designated search criteria; and

executing a search method to search the plurality of business objects for business objects that conform to the designated search criteria.

208. The method of claim 207 wherein the step of providing the selected search criteria comprises providing one or more attribute objects wherein each attribute object is qualified by a value or a range of values.

209. The method of claim 207 wherein the step of providing one or more attribute objects comprises weighting selected attribute objects according to their importance in the search.

210. The method of claim 207 wherein the step of providing the selected search criteria comprises adding additional criteria by qualifying the attribute object with its context partition or its role.

211. The method of claim 207 wherein the step of providing the designated search criteria comprises providing one or more relationship objects each optionally qualified by a named partition context, a specific role or a specific revision.

212. The method of claim 207 wherein the execution also searches an ingrediential object's textual values for use of designated objects each optionally qualified by their context partition, their values, and their roles.

213. The method of claim 207 wherein the step of providing the designated search criteria comprises providing one or more rendering objects each optionally qualified by a named partition context, a specific topic or a specific owner.

214. The method of claim 207 wherein the step of providing the designated search criteria comprises providing reference objects each optionally qualified by a named partition context, a specific role or a specific owner.

215. A method according to claim 207 applied to a multi-tiered search to produce a list of result specifications containing one or more common attributes, the method further comprising:

providing a list of search templates having one or more common attributes;

sequencing the list of search templates;

naming one or more common attributes;

identifying constraining attributes for each level of the tiered search; and

executing the tiered search method.

216. A method according to claim 207 where a search is imbedded within a derivation expression using the specification manipulation language find syntax.

217. A method for prompting a user for object specification content during a specification capture session, the method comprising:

selecting an object specification;

triggering a prompted collection and derivation session;

prompting the user by context partition for entry of ingrediential objects or their values, or both; and

repeating the prompting until all specification definition content is completed or the prompting session is abandoned.

218. The method according to claim 217 wherein the method is invoked by a user or by an application function.

219. The method according to claim 217 wherein the prompted context partition can be a page of context partitions, the method further comprising including an ingrediential object in the last partition in the page whose role is page break.

220. The method according to claim 217 applied for prompted definition capture to always display certain ingrediential content objects during a prompted specification capture session regardless of their current state of definitional completeness, the method further comprising:

selecting the appropriate object template specification;

selecting an ingrediential object; and

setting the rule for "always include this ingrediential object in a prompt session".

221. The method according to claim 217 wherein a prompted object definition content session prompts only for missing object definition content for those objects instantiated from a particular model, the method further comprising:

selecting the particular object model template;

setting the prompting mode rule to display only objects within a context partition having missing or incomplete specification content; and

running the prompted definition capture session in the exception mode for any object specification instantiated from the model.

222. The method according to claim 217 wherein an ingrediential object's no-prompt attribution rule value is dynamically set or reset during a prompting session by a derivation expression contained within the same specification.

223. The method according to claim 217 wherein a partition can be given the status of page header for prompted object definition display and for other rendering of object specifications, the method further comprising:

selecting an object specification;

selecting or creating a partition to behave as a page header;

setting the partition rule option for display as a page header; and

releasing the object specification for use.

224. The method according to claim 217 wherein a partition can be prompted a variable number of times in accordance with a user response to an iteration count question encountered during a prompting session, the method further comprising:

adding an additional ingrediential object whose attribution content comprises:

a partition name named for the partition that is to contain the iteration count question that the user answers

an appropriately named iteration count attribute object;

a role of partition iteration;

the name of the target partition that is to be prompted multiple times; and

a presentation sequence number to position it for display;

adding appropriate domain refinements to the specification to bound the entered iteration count value; and

providing for dynamic execution of the Partition Iteration method upon entry of the iteration count.

225. The method according to claim 217 wherein a partition having one or more attributing objects can be dynamically invoked for participation and display in a prompting session by the entry of a single domained attribute object value, the method further comprising:

adding an additional ingrediential object whose attribution content comprises

the Partition name that is to contain the Partition Selection attribute object;

an appropriately named attribute object whose entered value is to trigger the in-line display of the Partition;

a presentation sequence number to position it for display; and

the ID for the target partition that will be invoked;

a Role of Partition Iteration;

adding appropriate domain refinements to the specification to bound the entered attribute object value; and

providing for dynamic execution of the Partition Selection method that will providing for the in-line display of the target partition upon entry of the single domained attribute object value.

226. A method according to claim 217 for using an applicability object expression positioned within a partition to determine the relevance of automatically at the moment bypassing prompting or executing of other ingrediential objects within the partition, the method further comprising:

adding an additional ingrediential object whose attribution content comprises:

a Partition name equating to the Partition that is bypassed;

an appropriately named text attribute object;

a Role of Partition Applicability;

and a value that contains the derivation expression applicability criteria; and

providing for dynamic execution of the Partition Applicability method when the Partition is encountered during a prompting session.

227. The method according to claim 217 wherein there can be multiple Partition Applicability expressions within a Partition.

228. The method according to claim 217 wherein a derivation expression is dynamically executed immediately prior to the display of a page during a prompting session, the method further comprising:

adding an ingrediential object to the specification whose attribution content comprises:

a Partition name named for a Partition within the page whose immediate pending display is to trigger the precondition derivation expression object;

an appropriately named text attribute object;

a Role of Partition Precondition; and

a derivation expression that contains the derivation expression;

providing for dynamic execution of the Partition Applicability method when the Partition is encountered during a prompting session.

229. The method according to claim 228 wherein there can be multiple Partition Precondition expressions within a Partition.

230. The method according to claim 217 wherein during a prompting session, a derivation expression is dynamically executed immediately after the completion of user visible attribute objects contained on a prompting page and before proceeding to a next page, the method further comprising:

adding an ingrediential object to the specification whose attribution content comprises:

a Partition name named for a Partition within the page whose prompting completion triggers the Post Condition derivation expression object;

an appropriately named text attribute object;

a Role of Partition Post Condition; and

a derivation expression that contains the post condition derivation expression; and

providing for dynamic execution of the Partition Post Condition method when the Partition is completed during a prompting session.

231. The method according to claim 230 wherein there can be multiple Partition Post Condition expressions within a Partition.

232. The method according to claim 217 wherein during a prompting session a derivation expression is dynamically executed immediately prior to the display of a Partition to validate the efficacy of the Partition's data content, the method further comprising:

adding an ingrediential object to the specification whose attribution content comprises:

a Partition name named for a Partition whose data content is to be validated prior to its display in a prompting session;

an appropriately named text attribute object;

a Role of Partition Validation; and

a derivation expression that will verify the efficacy of the Partition data; and

providing for dynamic execution of the Partition Validation method when the Partition is encountered during a prompting session.

233. The method according to claim 217 wherein during a prompting session a combination of ingrediential objects within an attribution instance set provides the criteria for dynamic creation and prompting of a next specification, the method further comprising:

selecting or adding a prompting partition to the appropriate specification model;

selecting an instance number to serve as a Next Prompt Specification Set;

optionally adding an attribute object with a Role of Applicability to the Next Specification set whose Derivation expression provides dynamic determination of the appropriateness of running the next prompt specification set;

optionally adding an attribute object with a Role of Preparation to the Next Specification set that provides a Derivation expression to dynamically prepare for Next Specification prompting including optional selection of the Next Specification Model;

optionally adding an attribute object with a Role of Reuse to the Next Specification set to permit an existing specification with the same designated parent model to serve in the capacity of Next Specification; and

providing an ingrediential attribute object with a Role of Next Specification to the Next Specification set to hold the dynamically created next specification instance.

234. The Method according to claim 233, wherein within the specification's Prompting Partition there can be multiple Next Prompt Spec sets containing multiple Applicability and Preparation attribute objects.

235. The Method according to claim 233 wherein specifications created by the Next Prompt Specification are hierarchically linked in a sub specification capacity forward and backward.

236. A system for creating a computer-processable definition of a business object, the system comprising:

a processor programmed to:

name the business object;

define one or more ingrediential objects within a specification construct including revision control for providing content effectivity and composition effectivity; and

relate each of the ingrediential objects to the business object to define the business object.

237. The method according to claim 97 wherein an ingrediential object's value is dynamically validated as to its efficacy, such as manufacturability, using a limit dynamically retrieved from a two-dimensional data array domain.


Description

COPYRIGHT NOTIFICATION

Portions of this patent application include materials that are subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document itself, or of the patent application as it appears in the files of the United States Patent and Trademark Office, but otherwise reserves all copyright rights whatsoever in such included copyrighted materials.

FIELD OF THE INVENTION

This invention relates generally to computer systems that capture, manage and share business enterprise information. More specifically, it relates to a method and apparatus for creating and applying dynamically defined business objects used in such computer systems, for using such business objects to configure business software applications, and for facilitating the automated sharing of business information across a business enterprise or with other business enterprises or customers.

BACKGROUND

Due to the convergence of technology advances and socioeconomic forces, global electronic commerce is becoming a reality. The Internet, based on high-bandwidth communications technologies, is the vital network platform that enables all consumers and businesses on a global basis to transact business with one another. High-performance systems hardware and software provide the computing power to enable new automated commerce processes. Object-oriented software technologies enable the construction and operation of new types of rules-based business objects, applications and processes.

Notwithstanding these advances, however, a significant barrier to the automation of global commerce has remained. The proliferation of applications and information systems built on differing data, information, logic, functional, process and computing models has continued. Consequently, significant resources are wasted because of the lack of automated interaction between individuals, enterprises and computer systems.

The Need to Share Business Information

Every business transaction involves a complex communication between the buyer and the seller. There is assumed to be a mutual understanding of both what is being acquired and what is being exchange for it. As businesses have sought to automate business transactions, efforts have been made to provide that communication and record keeping via computer systems.

One result of prior efforts to automate exchanges of fixed format definitions was the development of Electronic Data Interchange (EDI), which involves the transfer of data directly conforming to agreed message standards from computer to computer by electronic means. EDI, however, suffers from significant shortcomings. Although EDI provides a mutually agreed upon format for stating the item requested, the quantity, the date required, and so forth, it does not allow the syntax to be understood by two independent computer systems. EDI does not provide a definition of the specifications of the item requested by the buyer or of the specifications of the item being offered by the seller to satisfy the buyer's request. Nor does it address dynamic object definition extension or creation and exchange of processable definitions across functional and company boundaries. Rather, EDI defines a limited number of message records as fixed arrangements of data fields. In contrast, in accordance with the invention, traditional records are replaced with dynamically created and applied definitions consisting of the defined object's relationship to other ingrediential objects.

When the communication breaks down or the standard EDI record definition fails to keep pace, and there is a mismatch between the specifications of the buyer and the seller, an expensive process of "product returns" begins. Most of this can be attributed to manual transposition and inadequate product requirements definition and to cultural differences in terms. This problem can be completely avoided if the specifications are shared and compared as part of the business transaction. To accomplish this there must be a machine processable mechanism to store and compare specifications that relies on the ability to process to a shared ontology. The problem of semantic communication between parties is exacerbated by the requirement to forward the communication to all the supply chain participants since that implies that the seller's item's component specifications must then be shared with the seller's supplier.

In any business enterprise, information that is critical to the business needs to be exchanged or shared across the enterprise. Manufacturing companies, in particular depend upon an integrated source of product, process and facility information to run and or automate their operational and order management systems. This information must be consistent in form and accurate in content to facilitate the ordering and delivery of quality products. Unfortunately, there is a history of business enterprise information systems optimized around functional responsibilities that give secondary importance to managing product and specification data. The result is that each enterprise has a number of different systems that deal with varying aspects of the same product and specification information differently from each other. For example, the marketing system stores the marketing information one way. The manufacturing system stores some of the information. The MRP system stores some of the information. The MES system stores some of the information. The purchasing system holds some of the information. This disparity leads to information not readily exchangeable or processible by computer systems. This results in a requirement for human interfaces that introduce translation errors and time delays.

For a business enterprise to conduct business interactively on the Internet with its consumers and suppliers, there is a need for capturing and storing information in a consistent and organized fashion so that it can be processed by computer systems across separate business enterprises or by computer systems within a given enterprise. There are many benefits from having such processible specifications. For example, customers need to compare the specifications of competitors' products in making decisions based on those specifications, such as which product to purchase. Because the present invention makes specifications processible, one can automatically verify whether a requested specification is manufacturable. In addition, information known by an enterprise's knowledge workers can be captured and applied within the enterprise or shared with others in object specification form. For example, quality information can now be captured and managed automatically so that quality can be evaluated on the basis of what changes occurred in both specifications and processes. Consequently, quality and consistency across different work teams and time can be realized.

The ability for an object definition system invention to define anything makes it possible to create objects that can form the foundation for the ultimate order entry system, the ultimate Product Composition System, the ultimate data warehousing system, and the ultimate business collaboration framework, among others.

Specifications and the Collaboration Problem

Until now, there has been no effective way to automate the process of comparing specifications across an industry. Computers have been largely used up to the present time in an environment of departmental acquiescence in a program-by-program, task isolated environment. Nowhere is this truer than in product definitions and specifications. Different departments within a business enterprise have used and continue to use diverse formats and representations of specification information depending on their functional responsibility within the enterprise. It follows that when there is no effective way to manage the sharing of specifications across responsibilities, each department will tend to sub-optimize the specification around its particular needs and culture. This often presents difficulties in understanding, applying, and translating specification content to those who need the information but who are outside of the engineering discipline.

Also, there has been no effective way to deal with the evolution of specifications. Attributes of an object that were not relevant to the business when a system is first used become relevant as the object finds new applications. Consider a simple example of a screw as the type of product. When the screw was first introduced as a product, it may have had only one type of configuration for the head, e.g. slotted, so there was no need for a purchaser or supplier of screws to differentiate one screw head configuration from another. However, as new screw head configurations were developed, e.g. the Phillips head, it then became important to the purchaser and supplier to differentiate the screws by their head type. A new attribute had to be added to the product specification for a screw to differentiate types of screws. Subsequently, it was discovered that a screw may make an effective control mechanism. At that point, screw thread thickness and gap needed to be added to the screw's product specification. The lesson learned is that once successful use of an object is experienced, it and its specification will evolve.

The Internet and Web Based Commerce

The growth of commerce over the Internet and emerging supply-chain web environments, has created an even greater demand for a change to integrated access, definition, and execution that can transcend company and organizational dimensions. Success of supply chain and web-based market interactions will depend on the ability to exchange, compare and collaborate on specifications. To realize the full potential of Web-based commerce requires an integrated solution covering the entire value chain, i.e., an integrated solution applying to the cycles of creating new products and bringing them to market as well as to the interactions of buyers and sellers in the market. This requires a shared vision across a company out into the marketplace for the exchange and collaboration of the definitions and specifications that are the basis for web based commerce.

Disparate definitions and specifications spanning products and the capabilities that produce them are not easily reconciled into a shared ontological form. The reasons are many. First, there is an information explosion as products and capabilities become more sophisticated at an ever faster pace. Second, mechanisms offering integrative assimilation into a useful form have not yet become available. Third, should they become available they must be of a new form that will facilitate the rigor and discipline necessary to provide a repository of content that transcends individual corporate cultures and definitional preferences.

All object definitions/specifications have the potential of interrelating with other definitions/specifications within and across company boundaries. This produces an urgent mandate for a definition system that can be configured for an industry or industry group to provide a common ontology for applying and exchanging object definitions and specifications. Such a system must support end user creation of definitions/specifications through a consistent user interface for viewing, understanding, exchanging, and processing such definitions/specifications. Successful supply chains will increasingly depend on the future ability to exchange and compare specifications within a shared ontology.

Goals of the Invention

Thus, there is a need for a method and apparatus to solve the needs described above. Accordingly, it is a goal of this invention to provide a method and apparatus for defining, programming, configuring and executing computer processible business objects, which can transcend organizations, cultures, and engineering disciplines.

Another goal of the invention is to provide a system and method that can define, program, configure and execute a set of business objects that provide a common model of people, places, things and activities, the commerce interactions between them, the rules that govern those interactions and the business information models that result from these interactions. Such a combination of a definition system and a set of business objects can enable seamless global electronic commerce.

It is another goal of the invention to provide a method and apparatus that can define and manage the evolution of business object definitions.

It is another goal of the invention to provide a method and apparatus that is open and extensible.

It is another goal of the invention to provide a method and apparatus for specification collaboration that facilitates business between members of a supply-chain.

It is still another goal of the invention to provide a system that provides dynamic object definition.

It is still another goal of the invention to provide a system that provides dynamic definition of attributes and object relationships.

It is still another goal of the invention to provide a system that provides dynamic definition of relationships to external objects.

It is still another goal of the invention to provide a system that provides dynamic rendering relationships.

It is still another goal of the invention to provide a system that provides optional revision control with content and composition effectivities for attributes and all relationships.

It is still another object of the invention to provide a system that can build business software applications by combining these dynamic object definitions.

It is still another goal of the invention to provide a method and system for defining business objects across a company out into the marketplace for the exchange and collaboration of the definitions and specifications within a shared ontology. Such a system will become key to web-based commerce.

It is another goal of the present invention, therefore, to provide a specification management system that enables the dynamic definition and execution of all business objects required in the conduct of business.

Another goal of the present invention is to provide a demand satisfaction system that is used to model, define and execute the life cycle of a variety of demands that exist in global commerce, both within and between enterprises.

Yet another goal of the present invention is to provide the ability to extend the definition of the apparatus itself in order to define and build new commerce actors and processes.

Additional goals and advantages of the invention will be set forth in the description, which follows, and in part will be apparent from the description, or may be learned by practice of the invention. The goals and advantages of the invention may be realized and obtained by means of the instrumentalities and combinations pointed out in the appended claims.

SUMMARY

To achieve the foregoing goals, and in accordance with the purposes of the invention as embodied and broadly described in this document, we have provided a method and system for creating and applying business objects that take the form of dynamically managed definitions. The method and system is based on an open and extensible object definition framework that manages definitions as specifications. The method and system provides the means for defining any business object needed in a business system regardless of its scope and type.

In accordance with the invention, an open and extensible object definition framework is provided for managing business object definitions as specifications. The framework is based on the assumption that that the definition of anything and everything will evolve over time. Attributes of business objects that are not relevant when a system is first used may become relevant as the object finds new applications.

All object definitions/specifications have the potential of interrelating with other definitions/specifications within and across company boundaries. This produces an urgent mandate for a definition system that can be configured for an industry or industry group to provide a common ontology a collaborative environment for applying and exchanging object definitions and specifications. Such a system must support end user creation of definitions/specifications through a consistent user interface for the viewing, understanding, exchanging, and processing said definitions/specifications.

A system in accordance with the invention provides the means for defining any object regardless of its scope and type. When applied to a specific object environment, the business object definition system can be used to build a business application, such as a Product Composition System (PCS) for managing the definition of products, specifications, customer preferences, processes, manufacturing and facility capabilities, resources, drawings, instructions, and industry standards. Other environments include customer profiles, application software objects such as orders and inventory, location networks, et. al. Additional uses of the system include: Product Definitions, Specification Management, Product Catalogs, Process Directory, Situational Index, Expert Assistant/Advisor, Problem Identification, Problem Resolution and an Education/Training Application Menu.

The invention provides a shared vision across a company out into the marketplace for the exchange and collaboration of the definitions and specifications that are the basis for web based commerce. It provides a framework for an integrated solution covering the entire value chain to provide a total solution. An integrated solution applying to the cycles of creating new products and bringing them to market as well as to the interactions of buyers and sellers in the market. The invention provides the ability to exchange and compare and collaborate on specifications, on which the success of supply chain and web based market interactions will depend.

The invention may be used to define any object that is to be processed by a computer. Objects can include Properties, Classifications, Knowledge, Business Objects, and Business Rules to name a few. Typical Business Objects include: Business and social entities; Locations including spaces, places, and channels; Activity including events and processes; Items including products and services; Business Records including orders and other forms of demand, inventory, jobs, deliverables, statements, transaction history et. al.

The present invention allows one to formally define the themes, then to define each instance as a combination of objects and instance variables within a context and a role. In addition, one can define specification attributes as individual values or derive them via formula or Boolean logic that considers other attributes of the specification. When one makes the formulas part of the criteria that are inherited by individual specification instances, one can effectively create unique, fully complete specifications by simply entering the variation parameter values.

The applicability of an aspect of definition content can be defined as a specification to control and/or assist in the creation of appropriate content. Such applicabilities can take into account the content of other objects. By way of example, capability models and specifications can be set up for each manufacturing facility. Having done so, one can check each generated specification to insure that it is still within the processing capabilities of the manufacturing facilities.

The capabilities of this invention include ontology definition and execution, defining and applying business objects, providing a common view of products and processes, demand satisfaction management, and providing a common view of supply and demand. A brief discussion of each of these capabilities follows.

In accordance with the invention, industry-specific ontologies, consisting of object taxonomies, attributes and attribute values can be defined and can be executed. In understanding and applying the invention to the task of managing industry and company ontologies as well in applying an ontology to the definition and creation of business objects definitions of the terms "ontology," "taxonomy" and "business lexicon" are useful. An "ontology" is a set of abstract concepts that defines the area of common interest within a particular community. It is the theory of what the world is, or "contains." A "taxonomy" is a division into ordered groups or categories, such as a classification of objects in an ordered system that indicates or features natural relationships. Industry-specific ontologies, consisting of object taxonomies, attributes and attribute values can be defined. Attributes can be organized into specifications. These specifications can be organized into various conceptual structures that represent the taxonomies of a given industry vertical or product group. This ontology definition drives a dynamic user interface that enables the user to create, extend and use the ontology to process specifications. A "business lexicon" is the set of actual terms used within a particular human activity system, where a term can be a word or a set of words.

Also in accordance with the invention, attributes can be organized into specifications that define any object or area of knowledge. Examples of such specifications include industry standards, organization profiles, products, processes, customer preferences, logistics requirements and financial arrangements, among others. The invention provides advanced functionality that operates on these specifications. Examples of such functionality include defining, finding, selecting, copying, comparing, combining and many others. The invention provides many sample definitions of business objects. Some illustrative examples of such business objects include customer, product, location, demand, order and workflow, among many others.

In accordance with the invention, all expressions of buyer preferences and requirements and seller offerings and capabilities, as well as the commerce processes buyers and sellers use to interact, can be stored as specifications. Thus, the invention provides all users with a common view of product and process. This capability is further enhanced where there is agreement within a company or an industry or globally for using the same ontology lexicon source.

In accordance with the invention, one can model, define and execute commerce processes used to satisfy the demands that exist between buyers and sellers. These demand life cycles are the core processes of commerce. Examples include Customer Order, Purchase Order and many others. In accordance with the invention, one can define and build new commerce types. It includes several built examples, including "Buy From Inventory," "Make-To-Order" and "Negotiated Bid." The invention includes a workflow component that automates these processes.

In addition to common definitions of product and process, the invention provides a common view of supply and demand. Buyers and sellers transact business using a common view of demand satisfaction. The invention captures and summarizes all interactions between buyers and sellers.

Because of these capabilities, the invention enables users to participate in automated commerce based on well-defined, computer processable business objects that provide a common definition and execution of commerce processes. As a result of the specification management system, the demand satisfaction system and the underlying method for defining, programming, configuring and executing computer processible business objects, this method enables electronic commerce to be automated and seamless.

The invention provides the capability to build business applications for any market (e.g., private/public, buy/sell), anyone (e.g., Buyer, Seller, Broker, Market maker), anywhere (e.g., having currency, language and unit-of-measure independence), anytime (24.times.7, Internet, Extranet, Intranet), for any demand (e.g., sales order, purchase order), for any product (MTS, MTO, ATO, ETO), for an service (e.g., advertising, consulting, people, etc.) and for any process (from simple to complex).

One exemplary embodiment of an application constructed in accordance with the invention is a Product Composition System application for managing the definition of products, specifications, customer preferences, processes, manufacturing and facility capabilities, resources, drawings, instructions, and industry standards. The Product Composition System can be applied to the products and specifications of any supply chain business environment.

Another exemplary embodiment of an application constructed in accordance with the invention is an Internet-enabled order management system for complex, attribute-based products and business processes. The order management system can capture an order and direct the order through the supply chain of an enterprise and extended enterprise. The order management system is uniquely suited to providing order management in non-SKU environments in process industries such as metals, paper and pulp, and textiles, as well as being suited to providing order management in SKU environments.

Yet another exemplary embodiment of an application constructed in accordance with the invention is a customer ordering system, which provides a system for customer self-service order management. With the customer application, product suppliers can post their product catalog on the Internet, making it directly available to their customers. Those customers can then use the Internet to browse or search through posted inventory and create orders for selected products.

Another exemplary embodiment of an application constructed in accordance with the invention is a customer ordering application, which provides order entry over the Internet, allowing customers direct and easy access to the order management system.

Still another exemplary embodiment is managed bid or negotiated bid application, which enables buyers and sellers to negotiate for products and services over a computer network, such as the Internet, by creating postings, bidding on postings, and countering these bids.

The invention can be used to support design collaboration among and between engineers and designers in different collaborating companies in a supply chain. In fact, the invention could be used to in any business system to manage products and specifications as the core data that serve to automate pricing based on product attributes, scheduling, promising, capacity commitment, material allocation and the like.

The invention, however, is not limited in its application only to the exemplary areas or environments. Rather, it can be applied to any business environment. Some examples of other such business environments include customer profiles, application software objects such as orders and inventory, location networks, and business system processes. Additional uses of the system can include product definitions, specification management, product catalogs, process directory, situational index, expert assistant/advisor, problem identification, and problem resolution education/training curricula.

Because of the capabilities provided by the invention, all users of this invention can participate in automated commerce based on well-defined computer processable business objects that provide a common definition and execution of commerce processes. As a result of the specification management system, the demand satisfaction system and the underlying method for defining, programming, configuring and executing computer processible business objects, the invention enables global electronic commerce to be automated and seamless.

In summary, the characteristics of the invention include providing a single point for exchanging definitions and specifications involving products, capabilities, processes, and capacities. All objects have the same definitional form making it possible to compose and/or to compare them. The form of object definitions/specifications is consistent across functional and organizational boundaries. An ontology can be applied or will evolve providing a shared language for all participants of the business that results in synergistic activity. Knowledge can be managed as non-redundant chunks of applied or composable knowledge. Benefits include standardization and consistency of definition. Definitions are an intuitive read because the ontology and definition approach allows one to avoid cryptic codes. A company can share one ontology across all systems, including legacy systems that import or export business object definition system definitions. Moreover, ontologies can be shared at industry and global levels in business-to-business settings. Terms in the ontology can be used directly, thus avoiding reliance on cryptic codes.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate the presently preferred embodiments and methods of the invention and, together with the general description given above and the detailed description of the preferred embodiments and methods given below, serve to explain the principles of the invention.

FIG. 1 is a block diagram depicting what information can be known about any object, such as a business object, and the aspects from which the object can be viewed.

FIG. 2 is a block diagram showing a Demand Satisfaction Model for modeling a business.

FIG. 3 is a block diagram showing how an Industry Supply Chain Operational Reference (SCOR) model view of a business can be translated to the Demand Satisfaction Model of FIG. 3.

FIG. 4 depicts the business object definition in accordance with the invention for defining the business objects that can participa