Let's discuss
Mapping
First we'll have a look at a diagram that covers all aspects:

which is acually the same as shown in the very first lesson. It boils down to:
- All applications/systems that are used during the life of a plant get an ISO 15926 Adapter that has two different parts:
- mapping, validating, and uploading the information that has been generated by that application/system ;
- querying and mapping information, required as input and produced elsewhere, to the internal format of the application/system ;
- The mapping output file is uploaded to a triple store that contains the data produced by a discipline, department, group, etc. ;
- Once that discipline, department or group deems their information to be good enough for sharing with others, they upload that information to a consolidating triple store, for example for a project ;
- The API of that triple store does the necessary housekeeping ;
- When a user of an application starts a new task, a SPARQL query can be launched, fetching that information from the consolidating triple store ;
- The query results are being mapped to the internal format of the application/system ;
- No rekeying has to be done.
- Data are to be exported and made accessible to the mapping software, for example by means of using ETL from a Data Lake to specialized templates ;
- For each data element (occasionally a combination of data elements) a Data Engineer defines the applicable template specialization to the point that only data that are actually there can be inserted ;
- The OOIs (Object Of Interest) need to be declared, whereby a query to the federated triple stores must check whether or not that placeholder already exists, and if so fetch its UUID ;
- The results of above are combined in a Turtle file as we have seen already, with declarations and template instances ;
- In the RDL/Reference Ontology we store typical SHACL 'shapes', that are used in the SHACL validation ;
- In case the test is passed the Turtle file is converted to N-triples (standard routine) and stored as such in the Group Store ;
- In case the group releases their triples for sharing with others, an API takes care of things, like deprecating older templates.
Here is an example of a screen of an ETL tool:

Implicit vs Explicit
Keep in mind that most information in documents and databases is implicit, i.e. it leaves out details that the user and/or the software is supposed to know. But in the context of information integration and sharing there will be users and software that have no clue what is meant. So we strive to explicitness to the maximum extent (but still being defendable from a business perspective).
Mapping Scope
You shouldn't map everything, because not everything needs to be computer-processable for future users. So analyze which information possibly would be required in the future, for example for revamps, debottlenecking, energy optimalization, CO2 reduction, etc. Strive for a hybrid solution between documents and data. See the topic Mixing data and documents .
Mapping Procedure
My procedure is roughly as follows:
- Determine what the OOI(s) (Object Of Interest) is(are)
- Write a narrative about the information about those OOI's that you have to map
- Is an instance thereof a Class or an Individual? This determines the choice of template category: Templates for Class or Templates for Individual
- If the latter, is it NonActualIndividual or an ActualIndividual? And is it a WholeLifeIndividual or do you specifically require a temporal part?
- Declare the OOI(s) - if later it appears that it(they) already exist(s) they will be ignored
- Determine what kind of information it is that you map; look at the column 'Aspect' in Template Specifications
- Select the proper Template, where that shall be one for which you do have the data to fill the signature AND that represents the semantics of your narrative
Using AI
In order to assist you in finding a template type that matches with the data element(s) you want to map, the use of AI may be considered. In particular AI that can compare the semantics of the definition of your data element(s) with the definitions of the approx. 200 Template Specifications, and come up with a "semantic similarity rating" between 0 and 1. The ultimate selection is to be made by you. See also here.
Homework
As stated in last session here is some homework.
Exercise 1
Tell in your own words what the information contents of the following ISO 15926-8 exchange file is:
@prefix ex: <http://www.example.org/> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix owl: <http://www.w3.org/2002/07/owl#> . @prefix skos: <http://www.w3.org/2004/02/skos/core#> . @prefix dm: <http://data.15926.org/dm/> . @prefix lci: <http://data.15926.org/lci/> . @prefix meta: <http://data.15926.org/meta/> . @prefix tpl: </templates/> . @prefix rdl: <http://data.15926.org/rdl/> . ex:3f7433c7-b915-4651-b6f8-1ea91c41ed130 rdf:type lci:InanimatePhysicalObject, dm:WholeLifeIndividual, lci:NonActualIndividual, rdl:RDS414674 ; rdfs:label "21-V-320" ; meta:valEffectiveDate "2021-07-23T14:43:00z"^^xsd:dateTime . ex:3b0ef235-2e60-4b3d-a969-be8abf622958 rdf:type lci:InanimatePhysicalObject, dm:WholeLifeIndividual, lci:NonActualIndividual, rdl:RDS2195143051 ; rdfs:label "21-V-320-N2" ; meta:valEffectiveDate "2021-07-23T14:43:00z"^^xsd:dateTime . ex:e6b1cf6e-eea6-4ee2-b131-098eca0c4acb rdf:type dm:Stream, dm:WholeLifeIndividual, lci:NonActualIndividual, rdl:RDS2227031 ; rdfs:label "STRM-4935" ; meta:valEffectiveDate "2021-07-13T09:13:00z"^^xsd:dateTime . ex:c76e7745-dec1-46e6-b422-85ae7727cfca rdf:type tpl:ClassificationOfIndividual ; tpl:hasClassified ex:3f7433c7-b915-4651-b6f8-1ea91c41ed130 ; tpl:hasClassifier rdl:RDS5785737 ; meta:valEffectiveDate "2021-07-23T14:43:00z"^^xsd:dateTime . ex:3b61b9e5-d8e5-45fd-9873-00d477fcb753 rdf:type tpl:ClassificationOfIndividual ; tpl:hasClassified ex:3b0ef235-2e60-4b3d-a969-be8abf622958 ; tpl:hasClassifier rdl:RDS43168245130 ; meta:valEffectiveDate "2021-07-23T14:43:00z"^^xsd:dateTime . ex:773eeb6e-5966-4945-bc62-7684f628e418 rdf:type tpl:AssemblyOfAnIndividual ; tpl:hasWhole ex:3f7433c7-b915-4651-b6f8-1ea91c41ed130 ; tpl:hasPart ex:3b0ef235-2e60-4b3d-a969-be8abf622958 ; meta:valEffectiveDate "2021-07-23T14:43:00z"^^xsd:dateTime . ex:5ccdefb6-4c79-4263-b976-b9d1862bfb8f rdf:type tpl:ContainmentOfAnIndividual ; tpl:hasContainer ex:3f7433c7-b915-4651-b6f8-1ea91c41ed130 ; tpl:hasContained ex:e6b1cf6e-eea6-4ee2-b131-098eca0c4acb ; meta:valEffectiveDate "2021-07-24T11:37:00z"^^xsd:dateTime . ex:186eb09e-52d3-4601-b73b-f201dcbd1fca rdf:type tpl:IndividualHasIndirectPropertyWithValue ; tpl:hasPropertyPossessor ex:3f7433c7-b915-4651-b6f8-1ea91c41ed130 ; tpl:hasIndirectPropertyType rdl:RDS2228787 ; tpl:valPropertyValue "4.8"^^xsd:decimal ; tpl:hasScale rdl:RDS1349099 ; meta:hasStatus rdl:RDS2224442 ; # normally not done at this level, but to show that it is possible meta:valEffectiveDate "2021-08-26T12:38:00z"^^xsd:dateTime . ex:d5109a5f-6f50-49ee-bc8d-e1f19834ba17 rdf:type tpl:PropertyOfStreamAtRelativeLocation ; tpl:hasStream ex:e6b1cf6e-eea6-4ee2-b131-098eca0c4acb ; tpl:hasLocator ex:3b0ef235-2e60-4b3d-a969-be8abf622958 ; tpl:hasPropertyType rdl:RDS355859 ; tpl:valPropertyValue "57.9"^^xsd:decimal ; tpl:hasScale rdl:RDS1322684 ; meta:hasStatus rdl:RDS2224442 ; meta:valEffectiveDate "2021-08-26T12:38:00z"^^xsd:dateTime . #EOF
ADDENDUM
Below is the set of triples for above listing (neatly sorted for you, normally random):
<http://www.example.org/3f7433c7-b915-4651-b6f8-1ea91c41ed130> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://data.15926.org/dm/WholeLifeIndividual> .
<http://www.example.org/3f7433c7-b915-4651-b6f8-1ea91c41ed130> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://data.15926.org/lci/NonActualIndividual> .
<http://www.example.org/3f7433c7-b915-4651-b6f8-1ea91c41ed130> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://data.15926.org/rdl/RDS5785737> <http://data.15926.org/rdl/RDS5785737> .
<http://www.example.org/3f7433c7-b915-4651-b6f8-1ea91c41ed130> <http://www.w3.org/2000/01/rdf-schema#label> "21-V-320" .
<http://www.example.org/3f7433c7-b915-4651-b6f8-1ea91c41ed130> <http://data.15926.org/meta/valEffectiveDate> "2021-07-23T14:43:00z"^^<http://www.w3.org/2001/XMLSchema#dateTime> .
<http://www.example.org/3b0ef235-2e60-4b3d-a969-be8abf622958> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://data.15926.org/lci/InanimatePhysicalObject> .
<http://www.example.org/3b0ef235-2e60-4b3d-a969-be8abf622958> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://data.15926.org/dm/WholeLifeIndividual> .
<http://www.example.org/3b0ef235-2e60-4b3d-a969-be8abf622958> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://data.15926.org/lci/NonActualIndividual> .
<http://www.example.org/3b0ef235-2e60-4b3d-a969-be8abf622958> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://data.15926.org/rdl/RDS2195143051> .
<http://www.example.org/3b0ef235-2e60-4b3d-a969-be8abf622958> <http://www.w3.org/2000/01/rdf-schema#label> "21-V-320-N2" .
<http://www.example.org/3b0ef235-2e60-4b3d-a969-be8abf622958> <http://data.15926.org/meta/valEffectiveDate> "2021-07-23T14:43:00z"^^<http://www.w3.org/2001/XMLSchema#dateTime> .
<http://www.example.org/e6b1cf6e-eea6-4ee2-b131-098eca0c4acb> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://data.15926.org/dm/Stream> .
<http://www.example.org/e6b1cf6e-eea6-4ee2-b131-098eca0c4acb> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://data.15926.org/dm/WholeLifeIndividual> .
<http://www.example.org/e6b1cf6e-eea6-4ee2-b131-098eca0c4acb> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://data.15926.org/lci/NonActualIndividual> .
<http://www.example.org/e6b1cf6e-eea6-4ee2-b131-098eca0c4acb> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://data.15926.org/rdl/RDS2227031> .
<http://www.example.org/e6b1cf6e-eea6-4ee2-b131-098eca0c4acb> <http://www.w3.org/2000/01/rdf-schema#label> "STRM-4935" .
<http://www.example.org/e6b1cf6e-eea6-4ee2-b131-098eca0c4acb> <http://data.15926.org/meta/valEffectiveDate> "2021-07-13T09:13:00z"^^<http://www.w3.org/2001/XMLSchema#dateTime> .
<http://www.example.org/c76e7745-dec1-46e6-b422-85ae7727cfca> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://data.15926.org/tpl/ClassificationOfIndividual> .
<http://www.example.org/c76e7745-dec1-46e6-b422-85ae7727cfca> <http://data.15926.org/tpl/hasClassified> <http://www.example.org/3f7433c7-b915-4651-b6f8-1ea91c41ed130> .
<http://www.example.org/c76e7745-dec1-46e6-b422-85ae7727cfca> <http://data.15926.org/tpl/hasClassifier> <http://data.15926.org/rdl/RDS5785737> .
<http://www.example.org/c76e7745-dec1-46e6-b422-85ae7727cfca> <http://data.15926.org/meta/valEffectiveDate> "2021-07-23T14:43:00z"^^<http://www.w3.org/2001/XMLSchema#dateTime> .
<http://www.example.org/3b61b9e5-d8e5-45fd-9873-00d477fcb753> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://data.15926.org/tpl/ClassificationOfIndividual> .
<http://www.example.org/3b61b9e5-d8e5-45fd-9873-00d477fcb753> <http://data.15926.org/tpl/hasClassified> <http://www.example.org/3b0ef235-2e60-4b3d-a969-be8abf622958> .
<http://www.example.org/3b61b9e5-d8e5-45fd-9873-00d477fcb753> <http://data.15926.org/tpl/hasClassifier> <http://data.15926.org/rdl/RDS43168245130> .
<http://www.example.org/3b61b9e5-d8e5-45fd-9873-00d477fcb753> <http://data.15926.org/meta/valEffectiveDate> "2021-07-23T14:43:00z"^^<http://www.w3.org/2001/XMLSchema#dateTime> .
<http://www.example.org/773eeb6e-5966-4945-bc62-7684f628e418> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://data.15926.org/tpl/AssemblyOfAnIndividual> .
<http://www.example.org/773eeb6e-5966-4945-bc62-7684f628e418> <http://data.15926.org/tpl/hasWhole> <http://www.example.org/3f7433c7-b915-4651-b6f8-1ea91c41ed130> .
<http://www.example.org/773eeb6e-5966-4945-bc62-7684f628e418> <http://data.15926.org/tpl/hasPart> <http://www.example.org/3b0ef235-2e60-4b3d-a969-be8abf622958> .
<http://www.example.org/773eeb6e-5966-4945-bc62-7684f628e418> <http://data.15926.org/meta/valEffectiveDate> "2021-07-23T14:43:00z"^^<http://www.w3.org/2001/XMLSchema#dateTime> .
<http://www.example.org/5ccdefb6-4c79-4263-b976-b9d1862bfb8f> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://data.15926.org/tpl/ContainmentOfAnIndividual> .
<http://www.example.org/5ccdefb6-4c79-4263-b976-b9d1862bfb8f> <http://data.15926.org/tpl/hasContainer> <http://www.example.org/3f7433c7-b915-4651-b6f8-1ea91c41ed130> .
<http://www.example.org/5ccdefb6-4c79-4263-b976-b9d1862bfb8f> <http://data.15926.org/tpl/hasContained> <http://www.example.org/e6b1cf6e-eea6-4ee2-b131-098eca0c4acb> .
<http://www.example.org/5ccdefb6-4c79-4263-b976-b9d1862bfb8f> <http://data.15926.org/meta/valEffectiveDate> "2021-07-24T11:37:00z"^^<http://www.w3.org/2001/XMLSchema#dateTime> .
<http://www.example.org/186eb09e-52d3-4601-b73b-f201dcbd1fca> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://data.15926.org/tpl/IndividualHasIndirectPropertyWithValue> .
<http://www.example.org/186eb09e-52d3-4601-b73b-f201dcbd1fca> <http://data.15926.org/tpl/hasPropertyPossessor> <http://www.example.org/3f7433c7-b915-4651-b6f8-1ea91c41ed130> .
<http://www.example.org/186eb09e-52d3-4601-b73b-f201dcbd1fca> <http://data.15926.org/tpl/hasIndirectPropertyType> <http://data.15926.org/rdl/RDS2228787> .
<http://www.example.org/186eb09e-52d3-4601-b73b-f201dcbd1fca> <http://data.15926.org/tpl/valPropertyValue> "4.8"^^<http://www.w3.org/2001/XMLSchema#decimal> .
<http://www.example.org/186eb09e-52d3-4601-b73b-f201dcbd1fca> <http://data.15926.org/tpl/hasScale> <http://data.15926.org/rdl/RDS1349099> .
<http://www.example.org/186eb09e-52d3-4601-b73b-f201dcbd1fca> <http://data.15926.org/meta/hasStatus> <http://data.15926.org/rdl/RDS2224442> .
<http://www.example.org/186eb09e-52d3-4601-b73b-f201dcbd1fca> <http://data.15926.org/meta/valEffectiveDate> "2021-08-26T12:38:00z"^^<http://www.w3.org/2001/XMLSchema#dateTime> .
<http://www.example.org/d5109a5f-6f50-49ee-bc8d-e1f19834ba17> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://data.15926.org/tpl/PropertyOfStreamAtRelativeLocation> .
<http://www.example.org/d5109a5f-6f50-49ee-bc8d-e1f19834ba17> <http://data.15926.org/tpl/hasStream> <http://www.example.org/e6b1cf6e-eea6-4ee2-b131-098eca0c4acb> .
<http://www.example.org/d5109a5f-6f50-49ee-bc8d-e1f19834ba17> <http://data.15926.org/tpl/hasLocator> <http://www.example.org/3b0ef235-2e60-4b3d-a969-be8abf622958> .
<http://www.example.org/d5109a5f-6f50-49ee-bc8d-e1f19834ba17> <http://data.15926.org/tpl/hasPropertyType> <http://data.15926.org/rdl/RDS355859> .
<http://www.example.org/d5109a5f-6f50-49ee-bc8d-e1f19834ba17> <http://data.15926.org/tpl/valPropertyValue> "57.9"^^<http://www.w3.org/2001/XMLSchema#decimal> .
<http://www.example.org/d5109a5f-6f50-49ee-bc8d-e1f19834ba17> <http://data.15926.org/tpl/hasScale> <http://data.15926.org/rdl/RDS1322684> .
<http://www.example.org/d5109a5f-6f50-49ee-bc8d-e1f19834ba17> <http://data.15926.org/meta/hasStatus> <http://data.15926.org/rdl/RDS2224442> .
<http://www.example.org/d5109a5f-6f50-49ee-bc8d-e1f19834ba17> <http://data.15926.org/meta/valEffectiveDate> "2021-08-26T12:38:00z"^^<http://www.w3.org/2001/XMLSchema#dateTime> .
For each template type a typical format is given in the template specifications. For example the last above template:
<[EssentialType] individual [hasStream] in or at [EssentialType] individual [hasLocator] has a [hasPropertyType] of [valPropertyValue] [hasScale]
that would result in a rather precise description:
[LIQUID STREAM] individual [STRM-4935] in or at [LIQUID OUTLET PORT] individual [21-V-320-N2] has a [TEMPERATURE] of [57.9] [DEGREE CELSIUS]
but of course other presentations, for example in tabular form, are possible and OK.