Latest update: 2017-07-09
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.
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:
The Template Library and Project Data this diagram translate into code as follows:
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:
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.
AnnotationProperties may directly be of the latter format, because these are not modeled to the ISO 15926-2 data model, e.g.:
meta:valEffectiveDate "2013-06-30T13:15:00Z"^^xsd:dateTime .