I well understand inheritance and composition.
The main difference between Frederic's solution and inheritance is how to retrieve the combined specification (ResourceSpecEntityA+ResourceSpecEntityB in your example).
In Frederic's solution you need a dedicated Task resource: POST ~/resourceSpecification/ResourceSpecEntityA/aggregate
Original Message:
Sent: Mar 23, 2023 04:13
From: Matthieu Hattab
Subject: Template for Resource Specifications
example of inheritance:
I create entity "ProdSpecEntityA" with 2 characteristics:
colour
size
I create entity "ProdSpecEntityB" which 1 characteristic:
weight
If I connect SpecEntityB as a "child" (for lack of better word) of ProdSpecEntityA, ProdSpecEntityBautomatically inherits ProdSpecEntityB characteristics
I create a product offering and I assign product spec: ProdSpecEntityB
that product offering, when presented through UI, API etc would have 3 characteristics
colour
size
weight
product offering is not aware of ProdSpecEntityA
composite
routerSpecEntityC has 2 characteristics:
speed
port
shiptoSpecEntityD has 4 characteristics:
address line 1
post code
etc
I bundle the above 2 specs into a composite productspec: bundleSpecEntityE
I create a product offering and I assign product spec: bundleSpecEntityE
the product offering is aware that there are 2 distinct productspecs, which I can use in the UI to construct a different user experience during order capture.
sorry I couln't help you.
------------------------------
Kind regards,
Matthieu Hattab
Lyse Platform
Original Message:
Sent: Mar 22, 2023 13:42
From: Opher Yaron
Subject: Template for Resource Specifications
Hello Matthieu,
Thanks again.
I do not understand what the difference is between what you propose ("create multiple distinct resourceSpecs and then for most of them create a relationship towards the commonResourceSpec") and Frederic's solution.
To the best of my understanding Frederic suggests the same mechanism, but with one further detail - to assign to the "relationshipType" a special value, e.g. "inheritsFrom".
Another question is about instantiation. As you pointed out, for products it is the desired behavior to instantiate both the composite and the bundled productspec. For resourceSpecs with common characteristicSpecs I find this behavior undesirable.
Best regards,
------------------------------
Opher Yaron
Proximus SA
Original Message:
Sent: Mar 22, 2023 13:13
From: Matthieu Hattab
Subject: Template for Resource Specifications
Ah! I didn't know about this note in GB922 resource, good catch.
I also checked the API for product (620) and resource (634) and I see the same. bundle and relationship for productspecs but only relationship for resourcespec.
For product, it does make sense to instantiate the composite and the bundled productspec (the composite productspec doesn't have any characteristic, it's only a container), it's exactly what we want.
If you create multiple distinct resourceSpecs and then for most of them create a relationship towards the commonResourceSpec, would that not work?
regarding Frederic's solution, I have, a long time ago, used a CRM that offered inheritance between productSpecs (and versioning) but I had a complicated experience with this solution. It was simple for the first setup but after a few months, when the first changes, exceptions etc. came around, it became increasingly difficult to manage.
------------------------------
Kind regards,
Matthieu Hattab
Lyse Platform
Original Message:
Sent: Mar 22, 2023 11:22
From: Opher Yaron
Subject: Template for Resource Specifications
Hello Matthieu,
Thank you.
The challenge I have with the approach you propose is that when instantiating a CompositeResource, I would need to also instantiate additional Resources - one for each ProductSpecification that is grouped under the CompositeResourceSpecification. Is that correct? This is something I would really like to avoid.
Also, when looking in "GB922 - Resource" I find the following note:

So it's back to ResourceSpecificationRelationship...
Best regards,
------------------------------
Opher Yaron
Proximus SA
Original Message:
Sent: Mar 22, 2023 09:58
From: Matthieu Hattab
Subject: Template for Resource Specifications
another approach is to group specifications (CompositeProductSpecification). You can also group characteristics (ProductSpecCharRelationship) to create a composite although I have a little doubt about characteristics because xxxxRelationship in the information framework is normally used to create dependencies between characteristics.
at least, that 's one recommended approach described in GB922 - Product. I suspect the same exist for service and resource since they use the same entitySpec pattern.
------------------------------
Kind regards,
Matthieu Hattab
Lyse Platform
Original Message:
Sent: Mar 20, 2023 08:16
From: Opher Yaron
Subject: Template for Resource Specifications
Hello experts,
I am working on modeling parts of our network as Resources and Resource Specifications, and encountered the following need:
There are sets of multiple Resource Specifications that share a sizeable list of common Characteristic Specifications. For example, different models of a product, that have many types of characteristics in common (but also many other characteristics that are unique to each model).
We would strongly prefer to avoid the need to duplicate the list of common Characteristic Specifications in each Resource Specification that needs it. This is where the idea of a Resource Specification Template comes to mind, but I could not identify in the Resource Specification model a natural mechanism to do it.
I believe this need is also relevant to Service Specifications and Product Specifications, so might have already been considered and addressed by members of this community.
Any ideas and feedback will be much appreciated.
Sincerely,
------------------------------
Opher Yaron
Proximus SA
------------------------------