Templates - an introduction

latest update: 2016-09--11    

Introduction

In ISO 15926-7 and -8 the concept of template has been defined. This paper gives an introduction in that concept.

ISO 15926-7 & -8

In case the basic FOL concepts are of interest, the reading of ISO 15926-7 and of ISO 15926-8 is highly recommended. In this topic we may not violate the copyright owned by ISO. But we may discuss template matters nevertheless.

Templates

A template represents a complex n-ary relationship between independent objects. There are four types of template:

Proto-templates

Basically these are representing all ISO 15926-2 entity data types that have one or more attributes. These are listed in ISO 15926-7 Annex D. A typical example of a proto-template is the one for CompositionOfIndividual:

Proto-template

First Role

Second Role

CompositionOfIndividualTemplate

hasPart

hasWhole

PossibleIndividual

PossibleIndividual

This means that the first role of the template is "hasPart" and instances of the first role must be instances of the entity type PossibleIndividual. The second role is "hasWhole" and instances of this role must also be instances of the entity type PossibleIndividual.

In the template language this is represented by:

     CompositionOfIndividualTemplate(y, z) <-> exists u(CompositionOfIndividualTriple(u, y, z))

      CompositionOfIndividualTriple(x, y, z) <-> CompositionOfIndividual(x) & hasPart(x, y) & hasWhole(x, z)

For the full ontology click here.

Templates

A Template has only ISO 15926-2 and or ISO 15926-3 entity data types in the expansion of its template axiom. See here for a typical template expressed in OWL.

Orthogonally to the above two types of template are Lifted and Lowered Templates:

Lifted Templates

Lifted templates represent information in a manner that fully complies with ISO 15926-2. Lifted templates serve as a reference for the exact semantics of the lowered templates.

Lifted templates can be instantiated by applying the First Order Logic axiom, specified in the applicable Template Specification, to the instantiated lowered template. An instance of a lifted template can be used for:

  • providing the full semantics for OWL reasoning;
  • mapping to another format, for example as defined in ISO 10303-21 (so-called "Part 21 files");
  • validating entity data types of data connected to the template (be it not with OWL tools!);
  • storing and/or exchanging in full lifted format.

Lowered Templates

Lowered templates represent information in the form of an n-ary relationship, a collector of n unary relations with independent external things. These things also form the "leafs" of the companion lifted template graph.

NOTE - By convention we mean Lowered Template when we say Template.

Example

If we consider the template ClassOfParticipationDefinition we can show the Lifted and the Lowered Template:

Combined graph

Graph of Lifted Template

Graph of Lowered Template

Example of a Template Signature

For the above (lowered) template ClassOfParticipationDefinition the signature is:

Order

Role Name

Role Object Type

1

hasActivityType

dm:ClassOfActivity

2

hasParticipantType

dm:ClassOfIndividual

3

hasParticipantRole

dm:Role

4

hasDefined dm:ClassOfParticipation

5

hasCardinalityOfActivity

dm:Cardinality

6

hasCardinalityOfParticipant

dm:Cardinality

Template signature of ClassOfParticipationDefinition

Template Language

As we have seen above a template is defined as follows:

"A template is a set comprising of a first-order logic predicates for which a definition is stated as an axiom, a template signature and a template axiom expansion.".

The reduced set of symbols used in the template language are:

Operator

Symbol

conjunction

&

equivalence

<->

existential quantification

exists

Example of an Axiom

The definition of an axiom is:  "An axiom is a self-consistent statement about the primitive terms that form the basis for discourse. A first-order theory consists of a set of axioms in a particular first-order signature. The set of axioms is often finite."

Below is the axiom for above template ClassOfParticipationDefinition:

    ClassOfParticipationDefinition(x1, x2, x3, x4, x5, x6) <->
    ClassOfActivity(x1) & 
    ClassOfIndividual(x2) & 
    Role(x3) &
    Cardinality(x5) &
    Cardinality(x6) &
    exists u1 exists u2 exists u3(
          ClassOfActivity(u1) &
          ClassOfTemporalWholePartTemplate(u1, x1) &
          ClassOfIndividual(u2) &
          ClassOfTemporalWholePartTemplate(u2, x2) &
          ParticipatingRoleAndDomain(u3) &
          SpecializationByDomainTemplate(u3, u2) &
          SpecializationByRoleTemplate(u3, x3) & 
          ClassOfParticipationTriple(x4, u3, u1) &
          end1Cardinality(x4, x6) &
          end2Cardinality(x4, x5)) .

Representation and Storage in triple format

The representation of the above mentioned template ClassOfParticipationDefinition in triple format is shown below:

<http://www.p1234.xyz-corp.com/T3759787283FB45028BAB9B5DB2982E9C>

<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>

<http://data.posccaesar.org/tpl/ClassOfParticipationDefinition> .

<http://www.p1234.xyz-corp.com/T3759787283FB45028BAB9B5DB2982E9C>

<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>

<http://www.w3.org/2002/07/owl#Thing> .

<http://www.p1234.xyz-corp.com/T3759787283FB45028BAB9B5DB2982E9C>

<http://data.posccaesar.org/tpl/hasActivityType>

<http://data.posccaesar.org/rdl/RDS9706787> .

<http://www.p1234.xyz-corp.com/T3759787283FB45028BAB9B5DB2982E9C>

<http://data.posccaesar.org/tpl/hasParticipantType>

<http://data.posccaesar.org/rdl/RDS430694> .

<http://www.p1234.xyz-corp.com/T3759787283FB45028BAB9B5DB2982E9C>

<http://data.posccaesar.org/tpl/hasParticipantRole>

<http://data.posccaesar.org/rdl/RDS24374382> .

<http://www.p1234.xyz-corp.com/T3759787283FB45028BAB9B5DB2982E9C>

<http://data.posccaesar.org/tpl/hasDefined>

<http://data.posccaesar.org/rdl/RDS40405459> .

<http://www.p1234.xyz-corp.com/T3759787283FB45028BAB9B5DB2982E9C>

<http://data.posccaesar.org/tpl/hasCardinalityOfActivity>

<http://data.posccaesar.org/rdl/RDS6754984> .

<http://www.p1234.xyz-corp.com/T3759787283FB45028BAB9B5DB2982E9C>

<http://data.posccaesar.org/tpl/hasCardinalityOfParticipant>

<http://data.posccaesar.org/rdl/RDS7093093> .

<http://www.p1234.xyz-corp.com/T3759787283FB45028BAB9B5DB2982E9C>

<http://data.posccaesar.org/meta/valEffectiveDate>

"2014-06-22T00:00:00+00:00"^^<http://www.w3.org/2001/XMLSchema#dateTime> .

Example of storage of an instance of ClassOfParticipationDefinition in triple format

In this format all information is stored in an ISO 15926-9 (work in progress) compliant "triple store" called "Fašade".