All things, that are involved in any information, shall first be declared and identified as "Ur" objects (see https://en.wiktionary.org/wiki/ur-). The idea can be explained using the pump P-101 as an example.
All objects, including the Ur objects, shall have an immutable ID that always stays with that object. It is advisable to use GUIDs for that, because these are globally unique, with a neglecible chance of duplication, even more so because they are used inside a, guaranteed unique, namespace.
There are many flavors of UUID/GUID.
Next to the GUID many things get one or more user-memorizable identifiers, such as tag number, serial number, asset number, line number, equipment number, etc. These identifiers are, in the context of ISO 15926, of utmost importance, because they are the starting point of most queries. Therefore a consistent format of them is important.
The GUID can easily be fetched with a simple SPARQL query using an identifier as search criterium and hence doesn't have to be stored in the source system.
The "PhysicalObjectType" calls for a selection from three possibilities:
*) In cases where the object is being declared as a WholeLifeIndividual use the instance of ClassOfFunctionalObject "UNDEFINED FUNCTION" (rdl:RDS2220000). Example: A Person is not born as engineer. Add the functional aspect by declaring a temporal part with TIP "DeclarationOfTemporalFunctionalPartOfImaginaryIndividual". Exception to that rule are instances of lci:InanimatePhysicalObject that exist for a functional reason.
The "Declaration Class" is important and shall be selected carefully. It is the class of which the declared imaginary Individual is a member. It is the class that is ALWAYS valid as long as the declared object hasn't been deprecated. If the Declaration Class is changed the Individual is no longer valid and all information is frozen. So use PUMP and not CENTRIFUGAL PUMP, because it may change to POSITIVE DISPLACEMENT PUMP. Granted, it isn't likely to happen, but better safe than sorry. Later the specialization or classification with CENTRIFUGAL PUMP can be done with a template which can, when necessary, be deprecated and changed to POSITIVE DISPLACEMENT PUMP with a new template. The anchor remains PUMP then.
For Role 2 refer to http://data.15926.org/tip/DeclarationOfImaginaryIndividual.var_EntityType or create a local subset.
For Role 3 refer to http://data.15926.org/lci/FunctionalObject or create a local subset.
# DECLARED OBJECT (check existence and if label not existing: declare)
:id(var_IdentifierValue)rdf:type <var_PhysicalObjectType>, <var_EntityType>, <var_ObjectTypeId>, dm:WholeLifeIndividual ;
rdfs:label "var_IdentifierValue" ;
meta:valEffectiveDate "var_dateTime"^^xsd:dateTime .