Latest update: 2018-05-05
In Part 8 Annex C we find:
Where in OWL resources are normally not declared, this is mandatory in this part of ISO 15926.
The only exception is that any temporal part, being the rdf:object of a template property, shall not be explicitly declared.
(side note: now a classOf(Temporal)Part of an Class should be added, see also here).
This paper deals with that declaration requirement.
There was a dispute about declaration. Some members of the 15926 community were of the opinion that by using the ClassificationOfIndividual template that PossibleIndividual is well enough declared:
:593F4EF8DAF9400D83327BFB6FFE8731 rdf:type tpl:ClassificationOfIndividual ;
tpl:hasClassified :C8A372E23B124B44AB32E32065507A85 ; # P-101
tpl:hasClassifier rdl:RDS327239 ; # PUMP
meta:valEffectiveDate "2004-11-24T14:57:00Z"^^xsd:dateTime .
This is not enough, because it does not define whether C8A372E23B124B44AB32E32065507A85 is a FunctionalPhysicalObject or a MaterializedPhysicalObject, or wether or not it is a WholeLifeIndividual or an ActualIndividual or an ImaginaryIndividual.
In ISO 15926 declaring objects means that the objects are typed with one or more applicable ISO 15926-2 entity types, thus firmly founding these objects. The dispute has been settled.
When an instance of a (Part 2) Class is declared the following information must be given:
A typical example is the code for knock out drum class.
First it is declared as being a member of VESSEL, and then it is made a KNOCK OUT VESSEL, being a specialization of VESSEL. The reason for this two-step approach is that a template can easily be replaced with another one, but changing the type of a declared object is complicated.
NOTE: Use an instance of ClassOfFunctionalObject unless that is not in the RDL, else the highest in the hierarchy of relevant instances of the applicable subclass of ClassOfPhysicalObject.
Assume that, for some reason (for example in case someone else gave a different ID to what appears the same thing), the ID is changed from AECD286079EF4CB394554D4D2342CCD5 to 926AC172CB4E48F7BA2FF9DA823D5DC0 at a later date, then the following happens:
In cases where the new ID has been created independently, by error or else, and is not deprecating the old ID, both ID's can co-exist (for a while). owl:sameAs is transitive, so information about the one also applies to the other. Ultimately though, the sooner the better, one of both shall be deprecated and the still valid templates about it shall be referring to the remaining ID. This can be done with SPARQL Update DELETE/INSERT.
Deprecating a Class
In case the relevance of any instance of Part 2 ClassOfIndividual ends, this shall be recorded as follows:
The validity of all templates in which this Class plays a role are, as a consequence, also ended, i.e. invalid as of the given valDeprecationDate. The software shall take care of that.
When an instance of a (Part 2) PhysicalObject is declared the following information must be given:
The order is not important, because the related triples are randomly stored.
NOTE - unless that is not in the RDL, then use the highest in the hierarchy of relevant instances of ClassOfInanimatePhysicalObject.
A typical example is:
Now the vessel can be classified as being a member of KNOCK OUT DRUM and as being a member a "requirements class" as defined in a specification.
Ending a PossibleIndividual
In case the existence of any instance of Part 2 PossibleIndividual ends, this shall be recorded as follows:
The validity of all templates in which this individual plays a role are, as a consequence, also ended, i.e. invalid as of the given valDeprecationDate.
When the need for reasoning with OWL-based tools arises, this is to be mapped to an instance of the EndingOfIndividual template: