Declaration Of Imaginary Component of Assembly

latest update: 2017-10-23     

DeclarationOfImaginaryComponentOfAssembly

NARRATIVE

An imaginary Individual has a component unknown to the source application. Use this TIP always in case the component is not being declared explicitly in the source application.

Example - A centrifugal pump has one or more IMPELLERs that is not declared as such in the source application. But we need that impeller in order to attribute its DIAMETER to it.

NOTE 1 - It is ESSENTIAL to give a subIdentifier (of your own fantasy) to the component, because in its lifetime it must be possible to fetch it by its GUID via a query using its subIdentifier.

NOTE 2 - The choice of the correct "composed object" will be wizard-assisted, e.g. the user calls for "centrifugal pump" and the wizard will find the correct class for the declaration of that pump. That class shall be as high as meaningful in the class hierarchy, so that a later change will not cause problems.

ISO 15926 calls for explicit modeling, making visible what is hidden in most information carriers. Applications often do not support that explicity and do not store components as such. For example: "a CENTRIFUGAL PUMP has an ImpellerDiameter" is implicit, whereas: "a CENTRIFUGAL PUMP has an IMPELLER, and that impeller has a diameter" is explicit. That is not a trivial difference when you need to put on record that the impeller has been exchanged. In the implicit version there is no impeller.

 

INFORMATION MODEL

SIGNATURE

tip:DeclarationOfImaginaryComponentOfAssembly

Role No

Role Variable

Description of Variable

Example of value

1

var_WholeIdentifierValue

Identifier of imaginary Individual that is the 'whole' in the assembly

P-101

2

var_PartObjectTypeId

"Declaration Class" that represents the function (not the role) of the 'part' imaginary Individual

rdl:RDS428894

3

var_PartIdentifierSuffix

Identifier suffix of the 'part' imaginary Individual in the assembly

-IMP

4

var_dateTime

The effectivity xsd:dateTime of the information represented here

2017-09-10T14:57:00Z

PICK-LIST

For Role2 refer to applicable pick-list, selected via the wizard, e.g. a pick-list for all recorded parts of a centrifugal pump. For Requirements Classes these pick-lists are to be based on the RDL 1).

1) These ontologies do not yet exist in the RDL, but are planned.

GENERIC CODE

  

# DECLARED OBJECT (check existence and if label not existing: declare)

  

:id({var_WholeIdentifierValue}{var_PartIdentifierSuffix}) rdf:type <entityTypeOf(var_WholeIdentifierValue)>, dm:WholeLifeIndividual, <var_PartObjectTypeId>  

    rdfs:label  "var_WholeIdentifierValuevar_PartIdentifierSuffix" ;

    meta:valEffectiveDate "var_dateTime"^^xsd:dateTime .

 

# DECLARED TEMPLATE

:var_TemplateId1 rdf:type tpl:AssemblyOfAnIndividual ;

    tpl:hasWhole :id(var_WholeIdentifierValue) ;

    tpl:hasPart :id({var_WholeIdentifierValue}{var_PartIdentifierSuffix}) ;

    meta:valEffectiveDate "var_dateTime"^^xsd:dateTime .