Declaration Of Actual Component of Assembly

latest update: 2017-10-23     

DeclarationOfActualComponentOfAssembly

NARRATIVE

An Actual 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 PUMP has a CASING that is not declared as such in the source application. But we need that CASING in order to attribute its type to it (e.g. SPLIT CASING).

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 classes for the declaration of components of a centrifugal 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.

 

INFORMATION MODEL

SIGNATURE

tip:DeclarationOfActualComponentOfAssembly

Role No

Role Variable

Description of Variable

Example of value

1

var_WholeIdentifierValue

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

LV-101

2

var_PartObjectTypeId

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

rdl:RDS428894

3

var_PartIdentifierSuffix

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

-PLUG

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 control valve. In case the supplier has a library defining the parts of his products, e.g. based on IEC 61360, that may be used instead, if those parts have their own URI.

GENERIC CODE

  

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

  

:id({var_WholeIdentifierValue}{var_PartIdentifierSuffix}) rdf:type <entityTypeOf(var_WholeIdentifierValue)>, dm:WholeLifeIndividual, dm:ActualIndividual, <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 .