Declaration Of Feature Of ClassOfIndividual

latest update: 2017-11-27     

DeclarationOfFeatureOfClassOfIndividual

NARRATIVE

General

A ClassOfIndividual has a component ClassOfFeature. Use this TIP always in case the component is not being declared explicitly in the source application.

Example - VALVE BODY has a COATING that is not declared as such in the source application. But we need that coating in order to attribute its characteristic to it.

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.

NOTE  - 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.

INFORMATION MODEL

SIGNATURE

tip:DeclarationOfFeatureOfClassOfIndividual

Role No

Role Variable

Description of Variable

Example of value

1

var_WholeIdentifierValue

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

LV-101_CO

2

var_PartObjectTypeId

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

rdl:RDS738306981

3

var_PartIdentifierSuffix

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

-COAT

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 coatings of a control valve. For Requirements Classes these pick-lists are to be based on the RDL 1), for Product Classes on an ISO 13584-based library of the supplier, if available.

1) These ontologies do not yet exist in the RDL.

GENERIC CODE

  

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

  

:id({var_WholeIdentifierValue}{var_PartIdentifierSuffix})rdf:type <entityTypeOf(var_WholeIdentifierValue)> ;

    rdfs:subClassOf <var_PartObjectTypeId> ;

    rdfs:label  "var_WholeIdentifierValuevar_PartIdentifierSuffix" ;

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

 

# DECLARED TEMPLATE

:var_TemplateId1 rdf:type tpl:ClassOfFeatureWholePartDefinition ;

    tpl:hasClassOfWhole :id(var_WholeIdentifierValue) ;

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

    tpl:hasCardinalityOfWhole rdl:RDS222625 ;

    tpl:hasCardinalityOfPart rdl:RDS222625 ;

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