Views on information about a Class or Individual

latest update 2023-04-25  

Introduction

In this topic a method of defining Classes, including instances of ClassOfInformationObject, with ISO 15926-7 Templates. This method is required in cases where we need a view on the integrated life-cycle information.

The use of ClassOfTemporalWholePart

A class-of-temporal-part Class can be given an effectiveDate and a deprecationDate. These dates indicate in which period in time the Class is relevant/valid in its context. This sets it apart from specialization (subClassOf) in that the subClasss lives, like all classes, eternally.

The life-cycle information is stored in a consolidating triple store. For particular activities we need a view on that information. That can be to collect certain data as input for some engineering program, but also to generate an information set for procurement reasons (LSN node [50]).

Such views are called a class-of-temporal-part of the Class of interest. The creation of the information content of such views is possible by means of the use of EnumeratedSetOfClass, as will be shown below.

The entity type ClassOfTemporalWholePart allows us to create versions of any class-of-temporal-whole Class.

Whenever we need a view of the life-cycle information, that is valid at a given dateTime, we create one with one or more instances of EnumeratedSetOfClass, one of the ISO 15926-2 entity types. The templates of interest are being typed with an instance of EnumeratedSetOfClass, that actually serves as a collector.

This collection helps us to define a Class with information that is indirectly attributed to that class. For example, the Asset Requirements Class for our proverbial pump P101 is defined with an instance of the API610 Datasheet for Centrifugal Pump that has sections for:

This could typically be set up as follows:

For further details about the data in the above "chapters" see the topic Classes and Individuals

Code example

ex:559a945f-e276-453b-b198-2e4e45c6c29f rdf:type tpl:TemplateSetAboutClass ;
    tpl:hasClass ex:acf933f4-900e-4a78-8bcc-3eb83db60532  ; #API 610 for B14-P101
    tpl:hasInfoSet ex:76614415-94fe-4de6-bd7d-eee9871de5a5  ;
    meta:valEffectivedate "2022-04-13T12:05:00Z"^^xsd:dateTime .    

ex:76614415-94fe-4de6-bd7d-eee9871de5a5  rdf:type dm:EnumerateSetOfClass ;
    rdfs:label "ESOC FOR CONSTRUCTION rev0" ;
    meta:valEffectivedate "2022-04-13T12:05:00Z"^^xsd:dateTime .

ex:a105b6d8-76a2-4288-ad4e-2f9f17ab5989 rdf:type tpl:EnumerationOfClass ;
    tpl:hasClassified ex:4d9983c1-7b7f-4a88-9e3b-e7d0618b4b81 ; # PUMP CASING CLASS is an AXIAL SPLIT CASING
    tpl:hasClassifier ex:76614415-94fe-4de6-bd7d-eee9871de5a5 ;
    meta:valEffectivedate "2022-04-13T12:05:00Z"^^xsd:dateTime .

ex:96cfedb2-b0d8-423c-9418-e428fbfc1c65 rdf:type tpl:EnumerationOfClass ;
    tpl:hasClassified ex:7c5a7289-0f6a-4281-b2e4-7596ac2c26b1 ; # PUMP CASING CLASS is an SINGLE VOLUTE TYPE CASING
    tpl:hasClassifier ex:76614415-94fe-4de6-bd7d-eee9871de5a5 ;
    meta:valEffectivedate "2022-04-13T12:05:00Z"^^xsd:dateTime .

ex:4eda78cd-d7a3-48e1-9bfd-95e8d8eba667 rdf:type tpl:EnumerationOfClass ;
    tpl:hasClassified ex:93da71cc-0bd9-4c86-86f9-ccb12a8e1b9e ; # CAPACITY OF 530 gpm AT 1150 rpm IMPELLER SPEED
    tpl:hasClassifier ex:76614415-94fe-4de6-bd7d-eee9871de5a5 ;
    meta:valEffectivedate "2022-04-13T12:05:00Z"^^xsd:dateTime .
etc

Alternatively the following is possible:

ex:a105b6d8-76a2-4288-ad4e-2f9f17ab5989 rdf:type tpl:EnumerationOfClass ;
    tpl:hasClassified ex:4d9983c1-7b7f-4a88-9e3b-e7d0618b4b81, ex:7c5a7289-0f6a-4281-b2e4-7596ac2c26b1, 
	ex:93da71cc-0bd9-4c86-86f9-ccb12a8e1b9e ;
    tpl:hasClassifier ex:76614415-94fe-4de6-bd7d-eee9871de5a5 ;
    meta:valEffectivedate "2022-04-13T12:05:00Z"^^xsd:dateTime .
For this the cardinality of the property 'hasClassified' will be set at 1..n.

This type of structure can be used for both the applicable Asset Requirements Class as well as for the related representation in a Technical Specification, where the first template in above listing has a different UUID and a different 'hasClass' role filler.

When using XML Schemas for specifications one could envisage the population of those specifications with predefined SPARQL queries on the templates in the applicable Asset Requirements Class - revision.

Moving from revison 0 to revision1

Keep in mind that all the template instances that are used for a Class definition, including those for documents, never are leaving the big bulk of life-cycle information. They are referred to in such definitions, not embedded.
So, to visualize it we assume that the code below defines revision 0 of the Requirements Class CO-B14-P101:

ex:559a945f-e276-453b-b198-2e4e45c6c29f rdf:type tpl:TemplateSetAboutClass ;
    tpl:hasClass ex:acf933f4-900e-4a78-8bcc-3eb83db60532  ; #API 610 for CO_B14-P101
    tpl:hasInfoSet ex:76614415-94fe-4de6-bd7d-eee9871de5a5  ;
    meta:valEffectivedate "2022-04-13T12:05:00Z"^^xsd:dateTime .    

ex:76614415-94fe-4de6-bd7d-eee9871de5a5  rdf:type dm:EnumerateSetOfClass ;
    rdfs:label "ESOC FOR CONSTRUCTION rev0" ;
    meta:valEffectivedate "2022-04-13T12:05:00Z"^^xsd:dateTime .

:a105b6d8-76a2-4288-ad4e-2f9f17ab5989 rdf:type tpl:EnumerationOfClass ;
    tpl:hasClassified ex:4d9983c1-7b7f-4a88-9e3b-e7d0618b4b81, ex:7c5a7289-0f6a-4281-b2e4-7596ac2c26b1, 
	ex:93da71cc-0bd9-4c86-86f9-ccb12a8e1b9e ;
    tpl:hasClassifier :76614415-94fe-4de6-bd7d-eee9871de5a5 ;
    meta:valEffectivedate "2022-04-13T12:05:00Z"^^xsd:dateTime .

where, amongst others, the UUID ex:93da71cc-0bd9-4c86-86f9-ccb12a8e1b9e stands for:
ex:93da71cc-0bd9-4c86-86f9-ccb12a8e1b9e
    rdf:type tpl:ClassOfIndividualHasConditionalIndirectPropertyWithValue ;
    tpl:hasMultidimensionalPropertyType rdl:RDS2225972 ; # PUMP CAPACITY(volume flow rate) AT IMPELLER SPEED
    tpl:hasPossessorType ex:d3bdc308-7179-424c-918f-8c1fd743c970 ; # CO_B14-P101
    tpl:hasIndirectPropertyType rdl:RDS7354248 ; # CAPACITY (volume flow rate)
    tpl:valPropertyValue "530"^^xsd:decimal ;
    tpl:hasScale rdl:RDS1346759 ; # US GALLON PER MINUTE
    tpl:hasConditionPossessorType ex:f14ce469-1822-477c-b99a-7dd1ea2709ce ; # CO_B14-P101-IMP
    tpl:hasConditionPropertyType rdl:RDS361034 ; # ROTATIONAL SPEED
    tpl:valConditionPropertyValue "1150"^^xsd:decimal ;
    tpl:hasConditionScale rdl:RDS1342304 ; # REVOLUTION PER MINUTE
    meta:valEffectiveDate "2022-03-17T16:53:00Z"^^xsd:dateTime .
On December 15th, 2022 this information has been changed into:
ex:42930be0-12b1-486b-ba8e-1f35b1693cfa
    rdf:type tpl:ClassOfIndividualHasConditionalIndirectPropertyWithValue ;
    tpl:hasMultidimensionalPropertyType rdl:RDS2225972 ; # PUMP CAPACITY(volume flow rate) AT IMPELLER SPEED
    tpl:hasPossessorType ex:d3bdc308-7179-424c-918f-8c1fd743c970 ; # CO_B14-P101
    tpl:hasIndirectPropertyType rdl:RDS7354248 ; # CAPACITY (volume flow rate)
    tpl:valPropertyValue "550"^^xsd:decimal ;
    tpl:hasScale rdl:RDS1346759 ; # US GALLON PER MINUTE
    tpl:hasConditionPossessorType ex:f14ce469-1822-477c-b99a-7dd1ea2709ce ; # CO_B14-P101-IMP
    tpl:hasConditionPropertyType rdl:RDS361034 ; # ROTATIONAL SPEED
    tpl:valConditionPropertyValue "1200"^^xsd:decimal ;
    tpl:hasConditionScale rdl:RDS1342304 ; # REVOLUTION PER MINUTE
    meta:valEffectiveDate "2022-12-15T13:04:00Z"^^xsd:dateTime .

On January 24th, 2023 prepare the update to revision 1

We run the Class query another time with the revision 1 publication date as reference. We find template instances that have an unchanged UUID, and added 'newcomers', which we can mark in some fashion as a rev1 revision.

In this example we find that the UUID ex:93da71cc-0bd9-4c86-86f9-ccb12a8e1b9e has been replaced by ex:42930be0-12b1-486b-ba8e-1f35b1693cfa, because the Literals in the signature changed.

A new ESOC instance and new instances of tpl:TemplateSetAboutClass and tpl:EnumerationOfClass are created with SPARQL CONSTRUCT:

ex:a07c90e7-1cdf-4c18-a382-210d738ff194 rdf:type tpl:TemplateSetAboutClass ;
    tpl:hasClass ex:acf933f4-900e-4a78-8bcc-3eb83db60532  ; #API 610 for CO_B14-P101
    tpl:hasInfoSet ex:73763c36-87e3-4769-b77e-7bb72cada464  ;
    meta:valEffectivedate "2023-01-24T11:27:00Z"^^xsd:dateTime .    

ex:73763c36-87e3-4769-b77e-7bb72cada464  rdf:type dm:EnumerateSetOfClass ;
    rdfs:label "ESOC FOR CONSTRUCTION rev1" ;
    meta:valEffectivedate "2023-01-24T11:27:00Z"^^xsd:dateTime .

ex:c62f8b15-fa40-499d-b3e6-ef61b6e78e75 rdf:type tpl:EnumerationOfClass ;
    tpl:hasClassified ex:4d9983c1-7b7f-4a88-9e3b-e7d0618b4b81, ex:7c5a7289-0f6a-4281-b2e4-7596ac2c26b1, 
	ex:42930be0-12b1-486b-ba8e-1f35b1693cfa ;
    tpl:hasClassifier ex:73763c36-87e3-4769-b77e-7bb72cada464 ;
    meta:valEffectivedate "2023-01-24T11:27:00Z"^^xsd:dateTime .

Views on data about an Individual

Similar to the above, it is possible to create views on the data about an instance of PossibleIndividual. Then the entity type TemporalWholePart must be used. Since the template instances are instance of ClassOfInformationRepresentation, they can be members of EnumeratedSetOfClass as well. In this case use the template TemplateSetAboutIndividual (WorkInProgress).