Operational modes and Catalog options

latest update: 2018-06-01    

Introduction

In plant design we sometimes have to model "operational modes", whereas in product catalogs we often see "options". Both are in fact identical.

An operational mode is a way the facility must function, and hence be configured.

EXAMPLES 

  1. A plant must be able to accept two different feed stocks as input;
  2. A TV set must be able to handle 100 channels;
  3. A computer must be able to handle a range of programs.

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:

The ClassOfPhysicalObject (COPO) (1) covers everything that is common for all options, so without any option.

The COPOs (2), (3), and (4) are defining the options (there may be fewer or more options of all different types, car catalogs usually are that option-rich).

Each of those COPOs (2), (3), and (4) inherit the common definitions of (1).

Now we have to collect all selected options (here (2) and (4)) by classifying them with the same instance of EnumeratedSetOfClass (5). NOTE - In the template implementation below (5) is included in the template UnionOf2Classes (there will be such templates for 3, 4, etc Classes)

Finally we create a union of those enumerated classes (2) and (4) , thus eliminating the multiplicity of the inherited information of (1), to result in what we were after: the configured instance of COPO.

The definition of the options is done with templates, as shown below for the configuration of a pump model:

Example

# In the catalog of XYZ Corp:

# DECLARATIONS

# Declaration of XYZ Corp

:bcfb7ee7-aa72-41d3-968e-ebc0ffcfd614 rdf:type lci:Organization, dm:WholeLifeIndividual, dm:ActualIndividual, rdl:RDS2221111 ; # MANUFACTURING ORGANIZATION

   rdfs:label "XYZ Corp" ;

   meta:valEffectiveDate "1967-01-09T00:00:00Z"^^xsd:dateTime .

 

# Declaration of XYZ Corp "Ur" pump model H875

:7a8c8d5e-d8df-4ec5-84c4-b56eeb0036a9 rdf:type dm:ClassOfInanimatePhysicalObject ;

   rdfs:subClassOf rdl:RDS327239 ; # PUMP ASSEMBLY

   rdfs:label "H875-2018" ;

   meta:valEffectiveDate "2018-01-01T00:00:00Z"^^xsd:dateTime .

 

# Declaration of XYZ Corp pump model H875 for the year 2018 - functional characteristics

:d5c1a5ee-67d2-4cee-8d43-135c2010c13b rdf:type dm:ClassOfInanimatePhysicalObject ;

   rdfs:subClassOf rdl:RDS327239 ; # PUMP ASSEMBLY

   rdfs:label "H875-2018-FUN" ;

   meta:valEffectiveDate "2018-01-01T00:00:00Z"^^xsd:dateTime .

 

# Declaration of XYZ Corp pump model H875 for the year 2018

:86f95ce0-e545-49a9-a35d-d39a76503738 rdf:type dm:ClassOfInanimatePhysicalObject ;

   rdfs:subClassOf :d5c1a5ee-67d2-4cee-8d43-135c2010c13b ; # H875-2018-FUN

   rdfs:label "H875-2018" ;

   meta:valEffectiveDate "2018-01-01T00:00:00Z"^^xsd:dateTime .

 

# Declaration of XYZ Corp pump model H875 for the year 2018 with Option 1 alone

:aa7b0131-9f0b-49fd-b8f6-b9a42494bdc8 rdf:type dm:ClassOfInanimatePhysicalObject ;

   rdfs:subClassOf rdl:RDS327239 ; # PUMP ASSEMBLY

   rdfs:label "H875-2018-OPT-1" ;

   meta:valEffectiveDate "2018-01-01T00:00:00Z"^^xsd:dateTime .

 

# Declaration of XYZ Corp pump model H875 for the year 2018 with Option 2 alone

:e1734560-91cb-4f1c-be2f-2f4429d73c73 rdf:type dm:ClassOfInanimatePhysicalObject ;

   rdfs:subClassOf rdl:RDS327239 ; # PUMP ASSEMBLY

   rdfs:label "H875-2018-OPT-2" ;

   meta:valEffectiveDate "2018-01-01T00:00:00Z"^^xsd:dateTime .

 

# Declaration of XYZ Corp pump model H875 for the year 2018 with Option 3 alone

:1fe48e74-4eb0-49bf-b35f-91b23bdf5663 rdf:type dm:ClassOfInanimatePhysicalObject ;

   rdfs:subClassOf rdl:RDS327239 ; # PUMP ASSEMBLY

   rdfs:label "H875-2018-OPT-3" ;

   meta:valEffectiveDate "2018-01-01T00:00:00Z"^^xsd:dateTime .

 

# Declaration of XYZ Corp configured pump model H875 for the year 2018 with Options 1 and 3

:45f113c2-9a7b-471d-9e78-e3d4fb6eaf7c rdf:type dm:ClassOfInanimatePhysicalObject ;

   rdfs:subClassOf rdl:RDS327239 ; # PUMP ASSEMBLY

   rdfs:label "H875-2018-1-3" ;

   meta:valEffectiveDate "2018-01-01T00:00:00Z"^^xsd:dateTime .

 

# Declaration of the XYZ Corp "Ur" Product Specification for model H875

:ed42b85d-6e19-4ef6-b701-e4339982c56f rdf:type dm:ClassOfInformationObject ;

   rdfs:subClassOf rdl:RDS222349 ; # PRODUCT SPECIFICATION

   rdfs:label "PS-H875" ;

   meta:valEffectiveDate "2018-01-01T00:00:00Z"^^xsd:dateTime .

 

# Declaration of the XYZ Corp Product Specification for model H875-2018-rev0

:df6a96a7-12f2-4946-8edf-da738a45f1b0 rdf:type dm:ClassOfInformationObject ;

    rdfs:subClassOf rdl:RDS222349 ; # PRODUCT SPECIFICATION

    rdfs:label "PS-H875-2018-rev0" ;

    meta:valEffectiveDate "2018-01-01T00:00:00Z"^^xsd:dateTime .

 

# DECLARATION OF TEMPLATES

# Definition of IP ownership

:2936cf4f-fc2f-4a6e-ae0c-c232120ba8ba rdf:type tpl:ReferenceRelationshipBetweenIndividualAndClassOfIndividual ;

    tpl:hasSubject :bcfb7ee7-aa72-41d3-968e-ebc0ffcfd614 ; # XYZ Corp

    tpl:hasObject :7a8c8d5e-d8df-4ec5-84c4-b56eeb0036a9 ;

    tpl:hasRelationshipType rdl:RDS2225810 ;

    meta:valEffectiveDate "2018-06-01T00:00:00Z"^^xsd:dateTime .

 

# Definition of H875-2018-FUN being a class of temporal part of "Ur" H875

:1fd1898c-69ab-46d7-8192-00db2e409a66 rdf:type tpl:ClassOfTemporalPartOfClassOfIndividual ;

    tpl:hasClassOfWhole :7a8c8d5e-d8df-4ec5-84c4-b56eeb0036a9 ;

    tpl:hasClassOfPart :d5c1a5ee-67d2-4cee-8d43-135c2010c13b ;

    meta:valEffectiveDate "2018-06-01T00:00:00Z"^^xsd:dateTime .

 

# Definition of H875-2018 being a class of temporal part of "Ur" H875

:f5be4848-e33c-495b-a914-47b30e93861a rdf:type tpl:ClassOfTemporalPartOfClassOfIndividual ;

    tpl:hasClassOfWhole :7a8c8d5e-d8df-4ec5-84c4-b56eeb0036a9 ;

    tpl:hasClassOfPart :86f95ce0-e545-49a9-a35d-d39a76503738 ;

    meta:valEffectiveDate "2018-06-01T00:00:00Z"^^xsd:dateTime .

 

# Definition of H875-2018-OPT-1 being a subclass of H875-2018

:a6c37f16-4d10-4a48-ab88-7fbc998ceffa rdf:type tpl:ClassOfTemporalPartOfClassOfIndividual ;

    tpl:hasClassOfWhole :86f95ce0-e545-49a9-a35d-d39a76503738 ;

    tpl:hasClassOfPart :aa7b0131-9f0b-49fd-b8f6-b9a42494bdc8 ;

    meta:valEffectiveDate "2018-06-01T00:00:00Z"^^xsd:dateTime .

 

# Definition of H875-2018-OPT-2 being a subclass of H875-2018

:2a052607-2435-4095-89b2-7b1c627f0071 rdf:type tpl:ClassOfTemporalPartOfClassOfIndividual ;

    tpl:hasClassOfWhole :86f95ce0-e545-49a9-a35d-d39a76503738 ;

    tpl:hasClassOfPart :e1734560-91cb-4f1c-be2f-2f4429d73c73 ;

    meta:valEffectiveDate "2018-06-01T00:00:00Z"^^xsd:dateTime .

 

# Definition of H875-2018-OPT-3 being a subclass of H875-2018

:28a9ed3e-446f-4af6-9821-ae07d4428fb6 rdf:type tpl:ClassOfTemporalPartOfClassOfIndividual ;

    tpl:hasClassOfWhole :86f95ce0-e545-49a9-a35d-d39a76503738 ;

    tpl:hasClassOfPart :1fe48e74-4eb0-49bf-b35f-91b23bdf5663 ;

    meta:valEffectiveDate "2018-06-01T00:00:00Z"^^xsd:dateTime .

 

# Definition of H875-2018-OPT-1-3 being the union of H875-2018-OPT-1 and H875-2018-OPT-3

:d4fac95a-cddb-4f33-b202-743e8f533f3e rdf:type tpl:UnionOf2Classes ;

    tpl:hasClass1 :aa7b0131-9f0b-49fd-b8f6-b9a42494bdc8 ; # H875-2018-1

    tpl:hasClass2 :1fe48e74-4eb0-49bf-b35f-91b23bdf5663 ; # H875-2018-3

    tpl:hasClassUnion :45f113c2-9a7b-471d-9e78-e3d4fb6eaf7c ; # H875-2018-1-3

    meta:valEffectiveDate "2018-06-01T00:00:00Z"^^xsd:dateTime .

 

# Definition of PS-H875-2018-rev0 being a class of temporal part of "Ur" PS-H875

:ad3d78a0-e4da-43b2-b5b9-4c9be1525e1f rdf:type tpl:ClassOfTemporalPartOfClassOfIndividual ;

    tpl:hasClassOfWhole :ed42b85d-6e19-4ef6-b701-e4339982c56f ;

    tpl:hasClassOfPart :df6a96a7-12f2-4946-8edf-da738a45f1b0 ;

    meta:valEffectiveDate "2018-06-01T00:00:00Z"^^xsd:dateTime .

 

# Definition of H875-2018-1-3 being represented on Product Specification PS-H875-2018-rev0

:81e43306-53f4-4d3d-9fe2-c69700eacfbc rdf:type tpl:ReferenceToClassOfIndividualOnDocument ;

    tpl:hasReferred :45f113c2-9a7b-471d-9e78-e3d4fb6eaf7c ;

    tpl:hasDocument :df6a96a7-12f2-4946-8edf-da738a45f1b0 ;

    meta:valEffectiveDate "2018-06-01T00:00:00Z"^^xsd:dateTime .

 

Modes of Operation

Information about Modes of Operation can be anything, from different Properties of a stream, or open or closed valves, to different line-ups for Operations and Regeneration, etc.

All can expressed in terms of classes, and hence use the above model. An example will be published in due time.