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.
A template represents a complex n-ary relationship between independent objects. There are four types of template:
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:
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.
Orthogonally to the above two types of template are Lifted and Lowered 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:
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.
If we consider the template ClassOfParticipationDefinition we can show the Lifted and the Lowered Template:
Graph of Lifted Template
Graph of Lowered Template
For the above (lowered) template ClassOfParticipationDefinition the signature is:
Template signature of ClassOfParticipationDefinition
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:
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:
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".