Redefinition of the Template Model

Latest update: 2014-12-07      


  

Introduction

In Part 8 subclause 7.2 we find:

7.2 Template model

A template instance is member of a specialized template, by the rdf:type relationship.

A specialized template is a subclass of a specialized template or a core template, by the rdfs:subclassOf relationship.

A core template is a subclass of a template class, by the rdfs:subclassOf relationship.

A template class is a subclass of the Multidimensional Object class, by the rdfs:subclassOf relationship.

A template class is a subclass of the Information Representation class, by the rdfs:subclassOf relationship.

The Multidimensional Object class is of entity data type class of multidimensional object.

.............

How it all fits together is shown in a series of examples (see Annex H). (which is only very partly true)

Careful examination of the above, of Annex H, And of the tm listing leads to the conclusion that there is room for improvement. This paper describes a proposal for that.

A known problem is an incompatibility between Part 2 And OWL with respect to the OWL representation of the Part 2 rule-ridden construct of ClassOfMultidimensionalObject plus its member MultidimensionalObject. For this incompatibility a workaround has been created in Part 8. The proposal hereunder gives an OWL-compliant solution.

In steps the path from the 'roles' + dm:RoleAndDomain of ClassOfMultidimensionalObject And 'elements' + dm:Thing to a template signature is being detailed below.

Referring to the Architecture paper, below an example, ClassifiedDescriptionOfClassOfIndividual, is detailed.

Diagram

A picture says more that a thousand words.

Note that some names used in Part 8 have been adapted in order to be in line with the Part 8 naming conventions for Part 2 entity types:

  • p7tm:Template is now tm:ClassOfTemplate;
  • p7tm:TemplateStatement is now tm:Template.

The Template Library and Project Data this diagram translate into code as follows:

IN THE tpl ONTOLOGY

<owl:ObjectProperty rdf:about="hasDescribed">

    <rdf:type rdf:resource="&owl;FunctionalProperty"/>

</owl:ObjectProperty>

 

<owl:ObjectProperty rdf:about="hasDescriptionType">

    <rdf:type rdf:resource="&owl;FunctionalProperty"/>

</owl:ObjectProperty>

 

<owl:DatatypeProperty rdf:about="valDescriptor">

    <rdf:type rdf:resource="&owl;FunctionalProperty"/>

</owl:DatatypeProperty>

 

<owl:Class rdf:about="ClassifiedDescriptionOfClassOfIndividual">

    <rdf:type  rdf:resource="http://rds.posccaesar.org/2008/02/OWL/ISO-15926-2_2003#ClassOfMultidimensionalObject"/>

    <rdf:type  rdf:resource="http://rds.posccaesar.org/2008/02/OWL/ISO-15926-2_2003#ClassOfClassOfInformationRepresentation"/>

    <rdf:type  rdf:resource="TemplateForIndirectPropertyOfClass"/>

    <owl:equivalentClass rdf:resource="http://data.posccaesar.org/tm/TM_ClassifiedDescriptionOfClassOfIndividual"/>

    <tm:valFOLCode rdf:datatype="http://www.w3.org/2001/XMLSchema#string"><![CDATA[ ClassifiedDescriptionOfClassOfIndividual(x1, x2, x3) <-> ClassOfIndividual(x1) & ExpressString(x2) & ClassOfClassOfDescription(x3) & exists u1 exists u2( ClassofIndividual(u1) & ClassOfTemporalWholePartTemplate(u1, x1) & ClassOfDescriptionTriple(u2, x2, u1) & ClassificationTemplate(u2, x3)) . ]]></tm:valFOLCode>
    <rdfs:subClassOf>

        <owl:Class>

            <owl:intersectionOf rdf:parseType="Collection">

                <owl:Restriction>

                    <owl:onProperty rdf:resource="hasDescribed"/>

                    <owl:allValuesFrom rdf:resource="http://standards.iso.org/iso/15926/dm#ClassOfIndividual"/>

                </owl:Restriction>

            </owl:intersectionOf>

        </owl:Class>

    </rdfs:subClassOf>

    <rdfs:subClassOf>

        <owl:Class>

            <owl:intersectionOf rdf:parseType="Collection">

                <owl:Restriction>

                    <owl:onProperty rdf:resource="valDescriptor"/>

                    <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>

                </owl:Restriction>

            </owl:intersectionOf>

        </owl:Class>

    </rdfs:subClassOf>

    <rdfs:subClassOf>

        <owl:Class>

            <owl:intersectionOf rdf:parseType="Collection">

                <owl:Restriction>

                    <owl:onProperty rdf:resource="hasDescriptionType"/>

                    <owl:allValuesFrom rdf:resource="http://standards.iso.org/iso/15926/dm#ClassOfClassOfDescription"/>

                </owl:Restriction>

            </owl:intersectionOf>

        </owl:Class>

    </rdfs:subClassOf>

</owl:Class>

<owl:Class rdf:about="ServiceDescriptionOfClassOfIndividual">

    <rdfs:subClassOf rdf:resource="ClassifiedDescriptionOfClassOfIndividual"/>
    <rdfs:subClassOf>
        <owl:Class>
            <owl:intersectionOf rdf:parseType="Collection">
                <owl:Restriction>
                    <owl:onProperty rdf:resource="hasDescriptionType"/>
                    <owl:
hasValue rdf:resource="http://data.posccaesar.org/rdl/RDS2229180"/>
                </owl:Restriction>
            </owl:intersectionOf>
        </owl:Class>
    </rdfs:subClassOf>
</owl:Class>

 

IN A PROJECT DATA ONTOLOGY

:T89f34360-7df8-11e4-b4a9-0800200c9a66 rdf:type tpl:ClassifiedDescriptionOfClassOfIndividual ;

    rdfs:label "PUMP class CO_P-101 is described with 'P-101 - Boiler Feedwater to E-103' that is a SERVICE DESCRIPTION."

    tpl:hasDescribed :CO_P-101 ;

    tpl:valDescriptor "P-101 - Boiler Feedwater to E-103" ;

    tpl:hasDescriptionType rdl:RDS2229180 ;

    meta:valEffectiveDate "2012-10-16T13:36:00Z"^^xsd:dateTime .

 


  BELOW IS A COMPLETE LISTING OF THE UPPER PART OF THE DIAGRAM - JUST FOR PROOF, NOT FOR DAY-TO-DAY WORK

The Part 2 basis

As explained elsewhere a "lowered" template has a list of predicates. The ISO 15926-2 entity type MultidimensionalObject is used to represent such a list.

In Part 2 the following can be found:

A <class_of_multidimensional_object> is a <class> whose members are instances of <multidimensional_object>. The role played by each position in the classified <multidimensional_object> is specified at the same position in the <roles> attribute.

A <multidimensional_object> is an <abstract_object> that is an ordered list of <thing>. The significance of the <multidimensional_object> is determined by being a member of a <class_of_multidimensional_object> that indicates the role played by each of its elements.

This can be represented with the following diagram:

NOTES

  1. In EXPRESS only instances of entity types can be classified;
  2. The specialization_by_role And specialization_by_domain are subtypes of specialization.

The Part 8 implementation

Since OWL doesn't know a list construct the roles [1:?] And elements [1:?] are translated to hasRole1, hasRole2, etc. as subProperty of dm:hasRoles And dm:hasElements.

As an example a (ClassOf)TemplateWith3Predicates is created:

 

Populating the Roles And Elements

According Part 8 a Template is a subtype of MultidimensionalObject (a kind of List) And of ClassOfInformationRepresentation. The 'Elements' are defined by classifying that MultidimensionalObject with a ClassOfMultidimensionalObject, of which the 'Roles' are defined by RoleAndDomain.

In the RDL subtypes of RoleAndDomain are defined, that match with the requirements of the templates (in practice they will, if necessary, be reverse engineered from those requirements).

In fact the RoleAndDomain is the intersection between Role And Class, that limits the number of instances of a given Class that can be used in a given role.

The code for the tm ontology can be found here.


Mapping to Template Ontology tpl

Since neither in EXPRESS nor in OWL attributes respectively Properties of a subtype/subclass may differ from those of its supertype/superclass, the hasElement properties cannot simply be replaced with the properties of a Part 7 template signature. That has to be done by mapping.

Normally speaking that mapping would be from the tm version of a template (where the names are preceeded by TM_ ) to the tpl version. However, the user requirements are being formalized in Template Specifications, as required by both Part 7 And 8. It appeared to be simpler to map bottom up, from a template signature to an OWL file representing that signature. This formally links the templates to the ISO 15926-2 data model.


NOTE about data types

For DatatypeProperties the following must be observed:

The Part 2 RepresentationOfGregoriAndateAndUtcTime and the subtypes of Part 2 ClassOfExpressInformationRepresentation are used only in the upper ontologies.

In the RDL they are instantiated to the applicable datatypes of XML Schema Part 2, e.g. &xsd;string  rdfs:subClassOf  &dm:ExpressString.

AnnotationProperties may directly be of the latter format, because these are not modeled to the ISO 15926-2 data model, e.g.:

    <meta:valEffectiveDate rdf:datatype="&xsd;dateTime">2013-06-30T13:15:00Z</meta:valEffectiveDate>