Introduction
A "document" in this context is structured such a spreadsheet, a set of tables, a P&ID, etc.
This topic explains a way to model such a document in ISO 15926-8 format.
Procedure
Mapping is done in four steps:
- Find all placeholders of information in the document and declare those (see topic Declaring a Tag, a Stream, and a Commodity Product);
- Draft an information model, in which all placeholders are interrelated, thus forming one integrated network;
- Map those relations to ISO 15926-7 templates (see Template Specifications);
- Attribute all information in the document to its placeholder, also using ISO 15926-7 templates.
Example Information Model
Below is an example information model of a part of a pump data sheet.
CASING SPLIT | ![]() |
![]() |
|||
CASING TYPE | ![]() |
![]() |
![]() |
||
CASING PRESSURE kg/cm2g | ![]() |
145 | ![]() |
235 | @ 38 °C |
On the data sheet the following data are being attributed to the pump casing:
- CASING SPLIT: ONEOF[AXIAL, RADIAL]
- CASING TYPE: ONEOF[SINGLE VOLUTE, DOUBLE VOLUTE, DIFFUSER]
- CASING PRESS (kg/cm2g): MAX ALLOW@PT (PT = Pumping Temperature)
- CASING PRESS (kg/cm2g): HYDRO @ 38 °C
This translates to the following template types:
- CASING SPLIT: SpecializationOfClassOfIndividual
- CASING TYPE: SpecializationOfClassOfIndividual
- CASING PRESS (kg/cm2g): MAX ALLOW@PT
- CASING PRESS (kg/cm2g): HYDRO @ 38 °C :
using the following identifiers from the RDL:
- CASING SPLIT: ONEOF[ rdl:RDS881279, rdl:RDS881324];
- CASING TYPE: ONEOF[ rdl:RDS1013264, rdl:RDS1013219, rdl:RDS881414];
- CASING PRESS (kg/cm2g): MAX ALLOW@PT : rdl:RDS2225991;
- CASING PRESS (kg/cm2g): HYDRO @ 38 °C: rdl:RDS361349
Example Code Listing
# DECLARATION OF INFORMATION PLACEHOLDERS # Declaration of PUMP REQUIREMENTS CLASS :acf933f4-900e-4a78-8bcc-3eb83db60532 rdf:type dm:ClassOfInanimatePhysicalObject ; rdfs:subClassOf rdl:RDS327239 ; # PUMP rdfs:label "CO_P-101" ; meta:valEffectivedate "2015-07-24T00:00:00Z"^^xsd:dateTime . # Declaration of PUMP CASING CLASS :6e182328-9d74-4ddf-8148-8599b3a30c7d rdf:type dm:ClassOfInanimatePhysicalObject ; rdfs:subClassOf rdl:RDS461204 ; # PUMP CASING rdfs:label "P-101-CAS" ; # subtag, user-defined meta:valEffectivedate "2015-07-24T00:00:00Z"^^xsd:dateTime . # Declaration of the hydrostatic tesing activity class :ecf00085-1fd4-4bcd-a4f9-3e0dedc03b42 rdf:type dm:ClassOfActivity ; rdfs:subClassOf rdl:RDS9706787 ; # HYDROSTATIC TESTING rdfs:label "P-101-HYA" ; meta:valEffectiveDate "2015-07-24T00:00:00Z"^^xsd:dateTime . # Declaration of test liquid class :a1b7ff81-d6fc-4fe4-85d2-a4e008e8f6af rdf:type dm:ClassOfCompound ; rdfs:subClassOf rdl:RDS427094 ; # LIQUID COMPOUND rdfs:label "P-101-HYF" ; meta:valEffectiveDate "2015-07-24T00:00:00Z"^^xsd:dateTime . # DECLARATION OF TEMPLATES DEFINING THE INTERRELATIONS BETWEEN PLACEHOLDERS # PUMP CASING CLASS is a (class of) part of PUMP REQUIREMENTS CLASS :79d7ab72-f608-446f-a8d8-d635d9dd4a2e rdl:type tpl:ClassOfAssemblyDefinition ; tpl:hasClassOfWhole :acf933f4-900e-4a78-8bcc-3eb83db60532 ; tpl:hasClassOfPart :6e182328-9d74-4ddf-8148-8599b3a30c7d ; tpl:hasCardinalityOfWhole rdl:RDS222625 ; # ONE TO ONE tpl:hasCardinalityOfPart rdl:RDS222625 ; # ONE TO ONE meta:valEffectivedate "2015-07-24T00:00:00Z"^^xsd:dateTime . # DECLARATION OF TEMPLATES DEFINING THE INFORMATION ATTRIBUTED TO THE PLACEHOLDERS OTHER THAN ABOVE INTERRELATIONS # CASING SPLIT is AXIAL :4d9983c1-7b7f-4a88-9e3b-e7d0618b4b81 rdf:type tpl:SpecializationOfClassOfIndividual ; tpl:hasSubClass :6e182328-9d74-4ddf-8148-8599b3a30c7d ; tpl:hasSuperClass rdl:RDS881279 ; # AXIAL SPLIT CASING meta:valEffectivedate "2015-07-24T00:00:00Z"^^xsd:dateTime . # CASING TYPE is SINGLE VOLUTE :7c5a7289-0f6a-4281-b2e4-7596ac2c26b1 rdf:type tpl:SpecializationOfClassOfIndividual ; tpl:hasSubClass :6e182328-9d74-4ddf-8148-8599b3a30c7d ; tpl:hasSuperClass rdl:RDS1013264 ; # SINGLE VOLUTE TYPE CASING meta:valEffectivedate "2015-07-24T00:00:00Z"^^xsd:dateTime . # CASING PRESS is MAXIMUM ALLOWABLE at PT :93da71cc-0bd9-4c86-86f9-ccb12a8e1b9e rdf:type tpl:ClassOfIndividualHasConditionalIndirectPropertyWithValue ; tpl:hasMultidimensionalPropertyType rdl:RDS2225991; # MAWP AT REFERENCE TEMPERATURE tpl:hasPossessorType :6e182328-9d74-4ddf-8148-8599b3a30c7d ; # PUMP CASING CLASS tpl:hasIndirectPropertyType rdl:RDS13113437 ; # UPPER LIMIT ALLOWABLE WORKING PRESSURE tpl:valPropertyValue "145"^^xsd:decimal ; tpl:hasScale rdl:RDS2223604 ; # KILOGRAM PER SQUARE CENTIMETRE GAUGE tpl:hasConditionPossessorType :c13c9b0c-1376-4b7a-9789-23dddd55577b ; # STREAM CLASS contained by CASING (not declared here) tpl:hasConditionPropertyType rdl:RDS357119 ; # OPERATING TEMPERATURE tpl:valConditionPropertyValue "95"^^xsd:decimal ; tpl:hasConditionScale rdl:RDS1322684 ; # DEGREE CELSIUS meta:valEffectiveDate "2015-07-24T00:00:00Z"^^xsd:dateTime . # Participation of tested object in hydrostatic testing activity :e5957623-a437-45ad-aaa3-6e3fdf6a717e rdf:type tpl:ClassOfParticipationDefinition ; tpl:hasActivityType :ecf00085-1fd4-4bcd-a4f9-3e0dedc03b42 ; # declared hydrostatic testing activity class tpl:hasParticipantType :6e182328-9d74-4ddf-8148-8599b3a30c7d ; # PUMP CASING CLASS tpl:hasParticipantRole rdl:RDS2221130 ; # TESTED OBJECT tpl:hasCardinalityOfActivity rdl:RDS222625 ;# ONE TO ONE tpl:hasCardinalityOfParticipant rdl:RDS222625 ; # ONE TO ONE meta:valEffectiveDate "2015-07-24T00:00:00Z"^^xsd:dateTime . # Participation of test liquid class in hydrostatic testing activity class :97232fe2-a91c-4bf0-ab28-ba00df3d6789 rdf:type tpl:ClassOfParticipationDefinition ; tpl:hasActivityType :ecf00085-1fd4-4bcd-a4f9-3e0dedc03b42 ; # declared testing activity class tpl:hasParticipantType :a1b7ff81-d6fc-4fe4-85d2-a4e008e8f6af ; ; # declared test liquid class tpl:hasParticipantRole rdl:RDS2221131 ; # TEST FLUID tpl:hasCardinalityOfActivity rdl:RDS222624 ; # ZERO TO ONE tpl:hasCardinalityOfParticipant rdl:RDS222625 ; # ONE TO ONE meta:valEffectiveDate "2015-07-24T00:00:00Z"^^xsd:dateTime . # Defining the type of test liquid :fc090f68-68b4-42bc-8f04-b0c295eba0a5 rdf:type tpl:SpecializationByCompoundType ; tpl:hasSubClass :a1b7ff81-d6fc-4fe4-85d2-a4e008e8f6af ; # declared test liquid class tpl:hasSuperClass rdl:RDS1012769 ; # WATER meta:valEffectiveDate "2015-07-24T00:00:00Z"^^xsd:dateTime . # Defining the pressure of members of the test liquid class :799a7716-a125-4e4c-b7a4-86d340853f09 rdf:type tpl:ClassOfIndividualHasPropertyWithValue ; tpl:hasPossessorType :a1b7ff81-d6fc-4fe4-85d2-a4e008e8f6af ; tpl:hasPropertyType rdl:RDS7345161 ; # GAUGE PRESSURE tpl:valPropertyValue "100"^^xsd:decimal ; tpl:hasScale rdl:RDS2223604 ; # KILOGRAM PER SQUARE CENTIMETRE GAUGE meta:valEffectivedate "2015-07-24T00:00:00ZZ"^^xsd:dateTime .
Collecting all templates of a class or document
In case you want to publish the document as such, it is useful to collect all its templates or a view thereof as required for a certain activity, such as sizing.
This can be done by using an instance of dm:EnumeratedSetOfClass and make those templates a member of it.
We use the template tpl:EnumerationOfClass for that, one template at a time. When done this way we can find out what the difference is between two revisions of that document, see the topic 'Set Operations', see also the topicViews on information about a Class or Individual.
The code of the (partial) template collection of above Requirements Class CO-P101 is as follows:
:559a945f-e276-453b-b198-2e4e45c6c29f rdf:type tpl:TemplateSetAboutClass ; tpl:hasClass :acf933f4-900e-4a78-8bcc-3eb83db60532 ; # Requirements Class CO_P101 tpl:hasInfoSet :76614415-94fe-4de6-bd7d-eee9871de5a5 ; meta:valEffectivedate "2023-04-13T12:05:00Z"^^xsd:dateTime . :76614415-94fe-4de6-bd7d-eee9871de5a5 rdf:type dm:EnumerateSetOfClass ; rdfs:label "A view on the information content of Requirements Class CO-P101_20230413" ; meta:valEffectivedate "2023-04-13T12:05:00Z"^^xsd:dateTime . :25385702-4a4d-40ac-9ba2-6994d1c52fa2 rdf:type tpl:EnumerationOfClass ; tpl:hasClassified :79d7ab72-f608-446f-a8d8-d635d9dd4a2e, :4d9983c1-7b7f-4a88-9e3b-e7d0618b4b81, :7c5a7289-0f6a-4281-b2e4-7596ac2c26b1, :93da71cc-0bd9-4c86-86f9-ccb12a8e1b9e, :e5957623-a437-45ad-aaa3-6e3fdf6a717e, :97232fe2-a91c-4bf0-ab28-ba00df3d6789, :fc090f68-68b4-42bc-8f04-b0c295eba0a5, :799a7716-a125-4e4c-b7a4-86d340853f09 ; tpl:hasClassifier :76614415-94fe-4de6-bd7d-eee9871de5a5 ; meta:valEffectivedate "2023-04-13T12:05:00Z"^^xsd:dateTime .
Pick-lists
A pick-list is an instance of dm:EnumeratedSetOfClass of which one to many classes are members by means of one of two template types.
Examples are:
#Declaration of EnumeratedSetOfClass instance that is the core of a pick-list: :895f8236-13d1-4436-ae3a-fcfe95ad8800 rdf:type dm:EnumerateSetOfClass ; rdfs:label "Picklist for ASME B16.5 END SIZE CLASSES for Project P1234" ; meta:valEffectivedate "2017-09-09T00:00:00Z"^^xsd:dateTime . #Declaration of templates that each allocate one size to above pick-list :6673144a-6aa7-436b-96cd-465538fbb4a6 rdf:type tpl:EnumerationOfClass ; tpl:hasClassified asme:RDS248849 ; # ASME B16.5 NPS 1 END SIZE CLASS tpl:hasClassifier :895f8236-13d1-4436-ae3a-fcfe95ad8800 ; meta:valEffectivedate "2017-09-02T00:00:00Z"^^xsd:dateTime . :e6d6e61b-912b-42b2-a2ee-5b3db8b0fd11 rdf:type tpl:EnumerationOfClass ; tpl:hasClassified asme:RDS249209 ; # ASME B16.5 NPS 2 END SIZE CLASS tpl:hasClassifier :895f8236-13d1-4436-ae3a-fcfe95ad8800 ; meta:valEffectivedate "2017-09-02T00:00:00Z"^^xsd:dateTime . :84c641f8-bd42-4bd6-bc59-cab5c631374e rdf:type tpl:EnumerationOfClass ; tpl:hasClassified asme:RDS249479 ; # ASME B16.5 NPS 4 END SIZE CLASS tpl:hasClassifier :895f8236-13d1-4436-ae3a-fcfe95ad8800 ; meta:valEffectivedate "2017-09-02T00:00:00Z"^^xsd:dateTime . :a94bf081-07d1-4633-add6-9a576d88516e rdf:type tpl:EnumerationOfClass ; tpl:hasClassified asme:RDS249569 ; # ASME B16.5 NPS 6 END SIZE CLASS tpl:hasClassifier :895f8236-13d1-4436-ae3a-fcfe95ad8800 ; meta:valEffectivedate "2017-09-02T00:00:00Z"^^xsd:dateTime .or, in short-form format:
#Declaration of EnumeratedSetOfClass instance that is the core of a pick-list: :895f8236-13d1-4436-ae3a-fcfe95ad8800 rdf:type dm:EnumerateSetOfClass ; rdfs:label "Picklist for ASME B16.5 END SIZE CLASSES for Project P1234" ; meta:valEffectivedate "2017-09-09T00:00:00Z"^^xsd:dateTime . #Declaration of templates that each allocate one size to above pick-list :6673144a-6aa7-436b-96cd-465538fbb4a6 rdf:type tpl:EnumerationOfClass ; tpl:hasClassified asme:RDS248849, asme:RDS249209, asme:RDS249479, asme:RDS249569 ; tpl:hasClassifier :895f8236-13d1-4436-ae3a-fcfe95ad8800 ; meta:valEffectivedate "2017-09-02T00:00:00Z"^^xsd:dateTime .