Catalog options

latest update 2023-04-08  

Introduction

In product catalogs we often see "options".
Options in a product catalog are ways in which a product may be configured.

EXAMPLES

  1. A PUMP model comes in a series of sizes, materials, etc.
  2. A car model comes in a series of colors, engine types, accessories, etc.

Modeling

A generic model with three variants:

This diagram is a part of the"topic Plant Life0cycle Model.

[59] is the 'anchor' Class, and [61] the version of the year.

The diagram shows three options [62], [63], [64] , that one by one are a specialization of [61].

We select options 1 and 3. These are made members of an dm:EnumeratedSetOfClass [65].

Now we have to take out the doubles, caused by the fact that the information of [61] is being inherited more than once. This is done by union, and the result is represented by [66].

Example of catalog options

Assume we select a car and use a "Configurator" as can be found on many websites.
For this example a random choice was made for a BMW with the following standard and optional features, where the selected options are in red:

CHOOSE YOUR MODEL
    SE Pro 
    M Sport and M Sport Pro Edition
    Sport Pro 
    M Models

The selected SE Pro model comes standard with:

17" V-spoke style 778 light alloy wheels
Acoustic glass
Active Guard Plus
Adaptive LED Headlights
Ambient Lighting
Automatic Air Conditioning
BMW Online Services
BMW TeleServices
Cloth upholstery
Cruise Control
DAB Radio
Folding Wing Mirrors with Auto-dimming
Front LED Foglights
High-gloss Black Interior Trim
Live Cockpit Professional
Non-metallic exterior colour
Parking Assistant
Rear Folding Headrests
Rear-view Mirror with Auto dimming
Split folding rear seats
Sport Leather Steering Wheel
CHOOSE YOUR ENGINE
    Petrol Plug-in Hybrid (2)
        BMW 330e SE Pro Touring
        BMW 330e xDrive SE Pro Touring
    Petrol (2)
        BMW 318i SE Pro Touring
        BMW 320i SE Pro Touring
    Diesel (3)
        BMW 320d SE Pro Touring
        BMW 320d xDrive SE Pro Touring
        BMW 318d SE Pro Touring


EXTERIOR COLOURS
    NON-METALLIC
        Alpine White
        Jet Black
    METALLIC
        Black Sapphire metallic
        Melbourne Red
        Glacier Silver metallic
        Mineral White metallic
        Mineral Grey metallic
        PhytonicBlue metallic
        Blue Ridge Mountain metallic
ALLOY WHEELS
    17" V-spoke style 778 light alloy wheels
    18" Bicolour Orbit Grey Double-spoke
          style 782 alloy wheels


UPHOLSTERY
    CLOTH
        Anthracite cloth
    LEATHERETTE
        Black Sensatec (Only available with
        additional optional equipment
        (see SE PLUS PACK) )

INTERIOR TRIMS
   High-gloss Black Interior Trim
   Quartz Silver Interior Trim
   Oak Grain Open-pored Interior Trim
   Ash Grey-brown Interior Trim

OPTIONAL EQUIPMENT
    Towbar
    Panoramic Glass Sunroof
    Sun Protection Glass
    Harman/Kardon Audio System
    Additional Storage Compartment

PACKAGES
    SE PLUS PACK with:
        Black Sensatec
        Front Heated Seats
    COMFORT PACK with:
        Additional Storage Compartment
        Extended Storage Contents
        Comfort Access
        Heated Steering Wheel
    VISIBILITY PACK
        Laserlights
        High-Beam Assistant
    TECHNOLOGY PACK
        Enhanced Bluetooth with Wireless Charging
        WiFi Hotspot
        Harman/Kardon Audio System
        Head-Up Display
    TECHNOLOGY PLUS PACK
        Enhanced Bluetooth with Wireless Charging
        WiFi Hotspot
        Harman/Kardon Audio System
        Head-Up Display
        Parking Assistant Plus
        Driving Assistant Professional
        Drive Recorder
        Gesture Control

This can be modeled as shown below, where lots of above details have to be left out for space reasons.

Please note that, as an example, "Jet Black" means: BMW SERIES 3 WITH 21 STANDARD FEATURES, that has a non-metallic Jet Black exterior colour.

Taking the far left sliver the code, from top to bottom of above diagram, is:

bmw:dfc74e50-de8c-4067-b74e-1b3b1a304efc
	rdf:type dm:ClassOfInanimatePhysicalObject ;
	rdfs:subClassOf rdl:RDS11526424 ;  # CAR
	rdfs:label "BMW SERIES 3" ;
	meta:valEffectiveDate "2020-09-01T00:00:00Z"^^xsd:dateTime .

bmw:3efd919a-9de7-42cb-9a99-43ce1ec97181
	rdf:type dm:ClassOfInanimatePhysicalObject ;
	rdfs:subClassOf bmw:dfc74e50-de8c-4067-b74e-1b3b1a304efc ;
	rdfs:label "BMW SERIES 3 TOURING" ;
	meta:valEffectiveDate "2020-09-01T00:00:00Z"^^xsd:dateTime .

bmw:0a761a0a-0140-4f82-8e0e-93ba7acd59a4
	rdf:type dm:ClassOfInanimatePhysicalObject ;
	rdfs:subClassOf bmw:3efd919a-9de7-42cb-9a99-43ce1ec97181 ;
	rdfs:label "BMW SERIES 3 TOURING WITH 21 STANDARD FEATURES" ;
	meta:valEffectiveDate "2020-09-01T00:00:00Z"^^xsd:dateTime .

bmw:c134c357-a0c2-4c8b-a634-45f36e1d35c4
	rdf:type dm:ClassOfInanimatePhysicalObject ;
	rdfs:subClassOf bmw:0a761a0a-0140-4f82-8e0e-93ba7acd59a4 ;
	rdfs:label "BMW SERIES 3 TOURING WITH ENGINE OPTIONS" ;
	meta:valEffectiveDate "2020-09-01T00:00:00Z"^^xsd:dateTime .

bmw:7b448c69-0569-4e8b-8d1f-1569c58b500f
	rdf:type dm:ClassOfInanimatePhysicalObject ;
	rdfs:subClassOf bmw:c134c357-a0c2-4c8b-a634-45f36e1d35c4 ;
	rdfs:label "Petrol Plug-in Hybrid" ;
	meta:valEffectiveDate "2020-09-01T00:00:00Z"^^xsd:dateTime .

bmw:f9aead82-d354-4eef-88c6-f9bb7bb29ded
	rdf:type dm:ClassOfInanimatePhysicalObject ;
	rdfs:subClassOf  bmw:7b448c69-0569-4e8b-8d1f-1569c58b500f ;
	rdfs:label "BMW 330e xDrive SE Pro Touring" ;
	meta:valEffectiveDate "2020-09-01T00:00:00Z"^^xsd:dateTime .

bmw:2768272a-e95c-4618-8a1f-3f3d7aa552e4
	rdf:type  dm:EnumeratedSetOfClass ;
	rdfs:label  "MY SELECTED OPTIONS" ;
	meta:valEffectiveDate "2020-09-01T00:00:00Z"^^xsd:dateTime .

bmw:51095fb0-3363-461b-9bb8-3aa4029ac7a6
	rdf:type  tpl:ClassificationOfClassOfIndividual ;
	tpl:hasClassified  bmw:f9aead82-d354-4eef-88c6-f9bb7bb29ded  ;  # "BMW 330e xDrive SE Pro Touring"
	tpl:hasClassifier  bmw:2768272a-e95c-4618-8a1f-3f3d7aa552e4  ;  # "MY SELECTED OPTIONS"
	meta:valEffectiveDate "2020-09-01T00:00:00Z"^^xsd:dateTime .

bmw:e43de9b3-6b1a-4a48-b229-63fe01078387
	rdf:type  tpl:IntersectionOfEnumeratedSetOfClass ; # provides the semantic link with the output information. Grab the EnumeratedSetOfClass members from there.
	tpl:hasInput  bmw:2768272a-e95c-4618-8a1f-3f3d7aa552e4  ; # ”MY SELECTED OPTIONS”
	tpl:hasResult  bmw:5f1f07cb-ec95-45f6-8693-63383c1d81b0  ; # "MY FULLY DETAILED SERIES 3 CAR"
	meta:valEffectiveDate "2020-09-01T00:00:00Z"^^xsd:dateTime .

bmw:5f1f07cb-ec95-45f6-8693-63383c1d81b0
	rdf:type  dm:ClassOfInanimatePhysicalObject ;
	rdfs:subClassOf rdl:RDS11526424 ;  # CAR
	rdfs:label "MY FULLY DETAILED SERIES 3 CAR" ;
	meta:valEffectiveDate "2020-09-01T00:00:00Z"^^xsd:dateTime .