COOM Language Profiles¶
The COOM language offers a rich set of elements designed to articulate product configuration knowledge. However, not all elements are essential for every project. For instance, simpler dependencies between configurable components might only require more basic relations being formed by very basic language elements. This variability allows for different implementations of reasoners that cater to the varying complexities of knowledge elements. As a result, more efficient reasoners can be developed specifically for knowledge bases only using particular language elements. Furthermore, it is not necessary for all COOM reasoner implementations to support every language feature.
graph LR
classDef exampleClass fill:#f2dea5
classDef profileClass fill:#c1d6f7
classDef categoriesClass fill:#d9dbde
CORE:::categoriesClass -->|0..1| NUM;
CORE -->|0..1| CARDINALITIES;
CORE -->|0..1| DEFAULTS;
click CORE "../profile_core" _blank;
subgraph NUM
direction LR;
N-OUT(N-OUT):::profileClass -.- WeightyBike{{WeightyBike}}:::exampleClass;
N-LIN(N-LIN):::profileClass -.- ComfortBike{{ComfortBike}}:::exampleClass;
N-LIN --> N-FULL(N-FULL):::profileClass;
N-FULL -.- SundayBike{{SundayBike}}:::exampleClass;
click N-LIN "../profile_N-LIN" _blank
click N-OUT "../profile_N-OUT" _blank
click N-FULL "../profile_N-FULL" _blank
end
subgraph CARDINALITIES
direction LR;
C-FIX(C-FIX):::profileClass -.- ShoppingBike{{ShoppingBike}}:::exampleClass;
C-USER(C-USER):::profileClass -.- CityBike{{CityBike}}:::exampleClass;
C-OPEN(C-OPEN):::profileClass -.- CargoBike{{CargoBike}}:::exampleClass;
click C-FIX "../profile_C-FIX" _blank
click C-USER "../profile_C-USER" _blank
click C-OPEN "../profile_C-OPEN" _blank
end
subgraph DEFAULTS
direction LR;
D-BASE(D-BASE):::profileClass -.- WhiteBike{{WhiteBike}}:::exampleClass;
D-BASE --> D-COND(D-COND):::profileClass;
D-COND -.- SoftBrakesBike{{SoftBrakesBike}}:::exampleClass;
D-COND -.- PoorLightBike{{PoorLightBike}}:::exampleClass;
click D-BASE "../profile_D-BASE" _blank
click D-COND "../profile_D-COND" _blank
end
We introduce profiles for the COOM language handling specific aspects of the knowledge representation.
- Core (CORE)
- N: Numerical calculations
- C: Cardinalities and instances
- D: Defaults
Please note, that the CORE profile is a required COOM profile, whereas variances of N, C, and D can be combined with each other.
We illustrate each profile by a small demonstration implementation, each introducing a new type of bike.