Mapping of structured documents

latest update 2022-11-03  

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:

Example Information Model

Below is an example information model of a part of a pump data sheet.

CASING SPLIT AXIAL RADIAL  
CASING TYPE SINGLE VOLUTE DOUBLE VOLUTE DIFFUSER  
CASING PRESSURE kg/cm2g MAX. ALLOWABLE @ PT 145 HYDRO 235 @ 38 °C

On the data sheet the following data are being attributed to the pump casing:

This translates to the following template types:

using the following identifiers from the RDL:

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 "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 MAX  ALLOW@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 .

Pick-lists

On ISO 15926 standard pick-lists will be set-up and be accessible on endpoint http://data.15926.org/esoc/. For example all ASME B16.5 Flange sizes (or: the ASME B16.5 Flange sizes that you need on your project as is shown below).

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 .

Mapping

For each data element in the document that needs to be mapped (by the way, that is, from a business point of view, not always required) a script must be written that, in many cases, uses the value of one or more other data elements.

The data on data sheets are either: